您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

rag_pipeline_entities.py 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. from typing import Literal, Optional
  2. from pydantic import BaseModel
  3. class IconInfo(BaseModel):
  4. icon: str
  5. icon_background: Optional[str] = None
  6. icon_type: Optional[str] = None
  7. icon_url: Optional[str] = None
  8. class PipelineTemplateInfoEntity(BaseModel):
  9. name: str
  10. description: str
  11. icon_info: IconInfo
  12. class RagPipelineDatasetCreateEntity(BaseModel):
  13. name: str
  14. description: str
  15. icon_info: IconInfo
  16. permission: str
  17. partial_member_list: Optional[list[str]] = None
  18. yaml_content: Optional[str] = None
  19. class RerankingModelConfig(BaseModel):
  20. """
  21. Reranking Model Config.
  22. """
  23. reranking_provider_name: str
  24. reranking_model_name: str
  25. class VectorSetting(BaseModel):
  26. """
  27. Vector Setting.
  28. """
  29. vector_weight: float
  30. embedding_provider_name: str
  31. embedding_model_name: str
  32. class KeywordSetting(BaseModel):
  33. """
  34. Keyword Setting.
  35. """
  36. keyword_weight: float
  37. class WeightedScoreConfig(BaseModel):
  38. """
  39. Weighted score Config.
  40. """
  41. vector_setting: VectorSetting
  42. keyword_setting: KeywordSetting
  43. class EmbeddingSetting(BaseModel):
  44. """
  45. Embedding Setting.
  46. """
  47. embedding_provider_name: str
  48. embedding_model_name: str
  49. class EconomySetting(BaseModel):
  50. """
  51. Economy Setting.
  52. """
  53. keyword_number: int
  54. class RetrievalSetting(BaseModel):
  55. """
  56. Retrieval Setting.
  57. """
  58. search_method: Literal["semantic_search", "fulltext_search", "keyword_search", "hybrid_search"]
  59. top_k: int
  60. score_threshold: Optional[float] = 0.5
  61. score_threshold_enabled: bool = False
  62. reranking_mode: str = "reranking_model"
  63. reranking_enable: bool = True
  64. reranking_model: Optional[RerankingModelConfig] = None
  65. weights: Optional[WeightedScoreConfig] = None
  66. class IndexMethod(BaseModel):
  67. """
  68. Knowledge Index Setting.
  69. """
  70. indexing_technique: Literal["high_quality", "economy"]
  71. embedding_setting: EmbeddingSetting
  72. economy_setting: EconomySetting
  73. class KnowledgeConfiguration(BaseModel):
  74. """
  75. Knowledge Base Configuration.
  76. """
  77. chunk_structure: str
  78. indexing_technique: Literal["high_quality", "economy"]
  79. embedding_model_provider: Optional[str] = ""
  80. embedding_model: Optional[str] = ""
  81. keyword_number: Optional[int] = 10
  82. retrieval_model: RetrievalSetting