Update 5 files

- /rag/config_models.py
- /rag/utils/config_loader.py
- /rag/prompt_builder.py
- /rag/query_processor.py
- /template_bot_profile/data/fewshot_examples.json
This commit is contained in:
Markov Andrey
2026-06-30 14:57:03 +00:00
parent c00af40977
commit 67d86d6c1d
5 changed files with 298 additions and 55 deletions

View File

@@ -179,6 +179,12 @@ class AuthConfig(BaseModel):
api_key_env: str = Field("RAG_API_KEY", description="Имя переменной окружения с API-ключом для доступа к RAG-серверу")
class FewshotConfig(BaseModel):
"""Настройки few-shot примеров."""
max_examples: int = Field(3, description="Максимальное количество примеров, включаемых в промт")
examples_file: str = Field("data/fewshot_examples.json", description="Путь к файлу с примерами (относительно профиля)")
# ============================================================
# Главная модель конфигурации приложения
# ============================================================
@@ -219,6 +225,7 @@ class AppConfig(BaseModel):
prompts: PromptsConfig
web_scraper: WebScraperConfig = Field(default_factory=WebScraperConfig)
auth: AuthConfig = Field(default_factory=AuthConfig)
fewshot: FewshotConfig = Field(default_factory=FewshotConfig)
# Дополнительные поля для путей (заполняются при загрузке)
profile_dir: Optional[Path] = Field(None, description="Корень профиля")
@@ -527,5 +534,13 @@ class AppConfig(BaseModel):
def file_mode(self) -> int:
return int(self.file_permissions.mode, 8)
@property
def max_fewshot_examples(self) -> int:
return self.fewshot.max_examples
@property
def fewshot_examples_file(self) -> str:
return self.fewshot.examples_file
class Config:
extra = "forbid" # Запрещаем неизвестные поля