from pydantic_settings import BaseSettings from typing import Optional import os from dotenv import load_dotenv load_dotenv() class Settings(BaseSettings): # API Keys COHERE_API_KEY: str = os.getenv('COHERE_API_KEY', '') PINECONE_API_KEY: str = os.getenv('PINECONE_API_KEY', '') # Model Settings MODEL_NAME: str = "facebook/opt-350m" # Using the finetuned model EMBEDDING_MODEL: str = "embed-english-v3.0" # Vector Store Settings VECTOR_DIMENSION: int = 768 # Default dimension for Cohere embeddings MAX_SEARCH_RESULTS: int = 5 # Pinecone Settings PINECONE_ENVIRONMENT: str = os.getenv('PINECONE_ENVIRONMENT', 'us-west1-gcp') PINECONE_INDEX_NAME: str = os.getenv('PINECONE_INDEX_NAME', 'marketing-assistant') # Content Generation Settings MAX_CONTENT_LENGTH: int = 500 TEMPERATURE: float = 0.7 TOP_P: float = 0.9 # Brand Style Settings BRAND_GUIDELINES_PATH: str = "data/style_guidelines/brand_guidelines.json" TONE_KEYWORDS_PATH: str = "data/style_guidelines/tone_keywords.json" # Storage Settings VECTOR_STORE_PATH: str = "data/vector_store" PAST_CAMPAIGNS_PATH: str = "data/past_campaigns" USER_QUERIES_PATH: str = "data/user_queries" # Finetuned Model Settings FINETUNED_MODEL_PATH: str = "../finetuned_model" class Config: env_file = ".env" case_sensitive = True # Create global settings instance settings = Settings()