Files
ds_scp_task_solution/app/core/config.py
T
Aherobo Ovie Victor 0e3e22e8cb Initial commit
2025-07-17 22:20:25 +01:00

44 lines
1.5 KiB
Python

import os
from typing import Optional
from pydantic import BaseModel
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
class Settings(BaseModel):
"""Application settings loaded from environment variables."""
# Application information
APP_NAME: str = os.getenv("APP_NAME", "Mini SpecsComply Pro")
APP_VERSION: str = os.getenv("APP_VERSION", "0.1.0")
DEBUG: bool = os.getenv("DEBUG", "False").lower() in ("true", "1", "t")
# API keys
GROQ_API_KEY: Optional[str] = os.getenv("GROQ_API_KEY")
COHERE_API_KEY: Optional[str] = os.getenv("COHERE_API_KEY")
# Vector database settings
# Pinecone
PINECONE_API_KEY: Optional[str] = os.getenv("PINECONE_API_KEY")
PINECONE_INDEX_NAME: str = os.getenv("PINECONE_INDEX_NAME", "specscomply_documents")
# Weaviate
WEAVIATE_URL: Optional[str] = os.getenv("WEAVIATE_URL")
WEAVIATE_API_KEY: Optional[str] = os.getenv("WEAVIATE_API_KEY")
# Models
EMBEDDING_MODEL: str = "embed-english-v3.0" # Default embedding model
RERANKER_MODEL: str = "rerank-english-v2.0" # Default reranker model
REASONING_MODEL: str = "llama-3.3-70b-versatile" # Default reasoning model
PROCESSING_MODEL: str = "llama-3.3-70b-versatile" # Default quick processing model
# Vector database selector (pinecone or weaviate)
VECTOR_DB: str = os.getenv("VECTOR_DB", "pinecone").lower()
class Config:
env_file = ".env"
case_sensitive = True
# Create global settings instance
settings = Settings()