31 lines
965 B
Python
31 lines
965 B
Python
from typing import Literal
|
|
from pydantic_settings import BaseSettings
|
|
from pydantic import Field, ConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
llm_provider: Literal["openai", "gemini"] = "openai"
|
|
llm_model: str = "gpt-4o-mini"
|
|
embedding_model: str = "text-embedding-3-large"
|
|
|
|
openai_api_key: str = Field(default="", json_schema_extra={"env": "OPENAI_API_KEY"})
|
|
gemini_api_key: str = Field(default="", json_schema_extra={"env": "GEMINI_API_KEY"})
|
|
api_secret_key: str = Field(
|
|
default="secret", json_schema_extra={"env": "API_SECRET_KEY"}
|
|
)
|
|
|
|
chroma_persist_dir: str = "./storage/chroma"
|
|
top_k: int = 30
|
|
top_n_context: int = 6
|
|
max_tokens_completion: int = 1024
|
|
langgraph_tracing: bool = False
|
|
service_lang: str = "ru"
|
|
sales_rep_name: str = "Команда Консоль.Про"
|
|
chunk_size: int = 500
|
|
chunk_overlap: int = 100
|
|
|
|
model_config = ConfigDict(env_file=".env")
|
|
|
|
|
|
settings = Settings()
|