/
pythonpractice
/
consultant-data-provider
Обзор
Документация
Войти
/
pythonpractice
/
consultant-data-provider
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
develop
src/cdp/config.py
42 строки
2 KB
Кузьма W600DEV Даждъбогин
TSKCNSLTNTDTP-1. base preparing. оживил проект. прописал базовые команды для мок-запроса и для реального.
15 май 2026, 16:09
15 май 2026, 16:09
cab050c
Код
Авторство
О чём код?
"""Настройки проекта с валидацией через Pydantic.""" from typing import Optional from pydantic import Field, SecretStr, ValidationError from pydantic_settings import BaseSettings # отдельный пакет, добавим import os class GigaChatConfig(BaseSettings): """Конфигурация для GigaChat с автоматической загрузкой из .env.""" # Поля с префиксом GIGACHAT_ в .env client_id: str = Field(alias="GIGACHAT_CLIENT_ID") client_secret: SecretStr = Field(alias="GIGACHAT_CLIENT_SECRET") auth_url: str = Field( default="https://ngw.devices.sberbank.ru:9443/api/v2/oauth", alias="GIGACHAT_AUTH_URL" ) api_url: str = Field( default="https://gigachat.devices.sberbank.ru/api/v1", alias="GIGACHAT_API_URL" ) model: str = Field(default="gigachat-lite", alias="GIGACHAT_MODEL") # Общие настройки timeout: int = Field(default=30, alias="LLM_TIMEOUT") max_retries: int = Field(default=3, alias="LLM_MAX_RETRIES") class Config: env_file = ".env" env_file_encoding = "utf-8" # Позволяет использовать префиксы case_sensitive = False def load_config() -> GigaChatConfig: """Загрузить конфигурацию с обработкой ошибок.""" try: config = GigaChatConfig() # Автоматически читает .env return config except ValidationError as e: print(f"❌ Ошибка в конфигурации: {e}") print("Проверь .env файл (скопируй из .env.example)") raise