rag-chu / backend /src /config.py
JTh34's picture
Update backend/src/config.py
81f7454 verified
import os
from pathlib import Path
from pydantic import Field
from pydantic_settings import BaseSettings
from typing import Optional
class Settings(BaseSettings):
"""Configuration centralisée de l'application RAG CHU"""
# API Keys
anthropic_api_key: Optional[str] = Field(None, env="ANTHROPIC_API_KEY")
openai_api_key: Optional[str] = Field(None, env="OPENAI_API_KEY")
langsmith_api_key: Optional[str] = Field(None, env="LANGSMITH_API_KEY")
# Application Configuration
app_title: str = "RAG CHU - Système médical intelligent"
app_description: str = "Application RAG pour l'analyse de documents médicaux"
app_version: str = "0.1.0"
debug: bool = Field(False, env="DEBUG")
# File Processing
max_file_size: int = Field(50 * 1024 * 1024, env="MAX_FILE_SIZE")
allowed_extensions: list = [".pdf", ".docx", ".jpg", ".jpeg", ".png"]
upload_dir: str = Field("uploads", env="UPLOAD_DIR")
# LLM Configuration
openai_model: str = Field("gpt-4o-mini", env="OPENAI_MODEL")
anthropic_model: str = Field("claude-3-5-haiku-latest", env="ANTHROPIC_MODEL")
embedding_model: str = Field("text-embedding-3-small", env="EMBEDDING_MODEL")
# RAG Configuration
chunk_size: int = Field(800, env="CHUNK_SIZE")
chunk_overlap: int = Field(100, env="CHUNK_OVERLAP")
retrieval_k: int = Field(6, env="RETRIEVAL_K")
class Config:
env_file = ".env"
env_file_encoding = "utf-8"
settings = Settings()
Path(settings.upload_dir).mkdir(exist_ok=True)