| 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_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_provider: EmbeddingProvider = EmbeddingProvider.SENTENCE_TRANSFORMERS |
| sentence_transformer_model: str = "all-MiniLM-L6-v2" |
| |
| |
| 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 |
| 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() |