新增DifyCompareTest.py文件以实现Dify新旧流程对比测试功能,并更新.gitignore以忽略新测试文件。

This commit is contained in:
2025-06-23 18:08:39 +08:00
parent eaf39e7bae
commit 4fab8874a5
3 changed files with 38 additions and 0 deletions
+1
View File
@@ -9,3 +9,4 @@ rag2_0/demo/Test.py
data/excel/*.xlsx data/excel/*.xlsx
rag2_0/demo/ProfessionalTermAnalyzer.py rag2_0/demo/ProfessionalTermAnalyzer.py
data/logs/* data/logs/*
rag2_0/dify/Test.py
+37
View File
@@ -457,3 +457,40 @@ class KnowledgeBaseClient(DifyClient):
data = {"segment": segment_data} data = {"segment": segment_data}
url = f"/datasets/{self._get_dataset_id()}/documents/{document_id}/segments/{segment_id}" url = f"/datasets/{self._get_dataset_id()}/documents/{document_id}/segments/{segment_id}"
return self._send_request("POST", url, json=data, **kwargs) return self._send_request("POST", url, json=data, **kwargs)
def retrieve(
self,
query: str,
retrieval_model: dict | None = None,
external_retrieval_model: dict | None = None,
**kwargs
):
"""
Retrieve from knowledge base.
:param query: Query keyword for retrieval
:param retrieval_model: Retrieval parameters (optional), example:
{
"search_method": "semantic_search", # One of: "keyword_search", "semantic_search", "full_text_search", "hybrid_search"
"reranking_enable": True, # Optional, whether to enable reranking
"reranking_mode": { # Optional, required if reranking_enable is True
"reranking_provider_name": "provider_name",
"reranking_model_name": "model_name"
},
"weights": 0.5, # Optional, weight for semantic search in hybrid search mode
"top_k": 10, # Optional, number of results to return
"score_threshold_enabled": True, # Optional, whether to enable score threshold
"score_threshold": 0.5 # Optional, score threshold value
}
:param external_retrieval_model: Unused field
:return: Response from the API
"""
data = {"query": query}
if retrieval_model is not None:
data["retrieval_model"] = retrieval_model
if external_retrieval_model is not None:
data["external_retrieval_model"] = external_retrieval_model
url = f"/datasets/{self._get_dataset_id()}/retrieve"
return self._send_request("POST", url, json=data, **kwargs)