Files
dify/api/core/rag/entities/retrieval_settings.py
corevibe555 2108c44c8b refactor(api): consolidate duplicate RerankingModelConfig and WeightedScoreConfig definitions (#34747)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-13 05:53:45 +00:00

52 lines
1.1 KiB
Python

from pydantic import BaseModel, ConfigDict, Field
class RerankingModelConfig(BaseModel):
"""
Canonical reranking model configuration.
Accepts both naming conventions:
- reranking_provider_name / reranking_model_name (services layer)
- provider / model (workflow layer via validation_alias)
"""
model_config = ConfigDict(populate_by_name=True)
reranking_provider_name: str = Field(validation_alias="provider")
reranking_model_name: str = Field(validation_alias="model")
@property
def provider(self) -> str:
return self.reranking_provider_name
@property
def model(self) -> str:
return self.reranking_model_name
class VectorSetting(BaseModel):
"""
Vector Setting.
"""
vector_weight: float
embedding_provider_name: str
embedding_model_name: str
class KeywordSetting(BaseModel):
"""
Keyword Setting.
"""
keyword_weight: float
class WeightedScoreConfig(BaseModel):
"""
Weighted score Config.
"""
vector_setting: VectorSetting
keyword_setting: KeywordSetting