diff --git a/api/services/entities/knowledge_entities/knowledge_entities.py b/api/services/entities/knowledge_entities/knowledge_entities.py index 6b0ecd7e33..37c0fb49e5 100644 --- a/api/services/entities/knowledge_entities/knowledge_entities.py +++ b/api/services/entities/knowledge_entities/knowledge_entities.py @@ -84,6 +84,22 @@ class RerankingModel(BaseModel): reranking_model_name: Optional[str] = None +class WeightVectorSetting(BaseModel): + vector_weight: float + embedding_provider_name: str + embedding_model_name: str + + +class WeightKeywordSetting(BaseModel): + keyword_weight: float + + +class WeightModel(BaseModel): + weight_type: str + vector_setting: Optional[WeightVectorSetting] = None + keyword_setting: Optional[WeightKeywordSetting] = None + + class RetrievalModel(BaseModel): search_method: Literal["hybrid_search", "semantic_search", "full_text_search"] reranking_enable: bool @@ -92,6 +108,7 @@ class RetrievalModel(BaseModel): top_k: int score_threshold_enabled: bool score_threshold: Optional[float] = None + weights: Optional[WeightModel] = None class MetaDataConfig(BaseModel):