import os from pydantic_settings import BaseSettings from enum import Enum class LLMProvider(str, Enum): GROQ = "groq" class EmbeddingProvider(str, Enum): SENTENCE_TRANSFORMERS = "sentence_transformers" HUGGINGFACE = "huggingface" class Settings(BaseSettings): # LLM Configuration llm_provider: LLMProvider = LLMProvider.GROQ groq_api_key: str = os.getenv("GROQ_API_KEY", "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") groq_model: str = "openai/gpt-oss-120b" # Embedding Configuration embedding_provider: EmbeddingProvider = EmbeddingProvider.SENTENCE_TRANSFORMERS sentence_transformer_model: str = "all-MiniLM-L6-v2" # Other settings github_token: str = os.getenv("GITHUB_TOKEN", "") redis_url: str = "redis://localhost:6379" vector_db_path: str = "./chroma_db" max_file_size: int = 1024 * 1024 # 1MB supported_extensions: list = [ ".py", ".js", ".ts", ".jsx", ".tsx", ".java", ".cpp", ".c", ".cs", ".go", ".rs", ".php", ".rb", ".swift", ".kt", ".scala", ".md", ".txt", ".json", ".yaml", ".yml", ".toml" ] class Config: env_file = ".env" settings = Settings()