from pydantic import Field from pydantic_settings import BaseSettings from typing import Dict, Any class MockStatus(): # Required for headless mode def update(self, *args, **kwargs): print("MockStatus update called with args: ", args, " and kwargs: ", kwargs) class Config(BaseSettings): hf_token: str = Field(...) hf_model: str = Field("InvestmentResearchAI/LLM-ADE-dev") # We need this because I can't get the model template out of the ollama model ollama_model: str = Field("llama3") headless: bool = Field(False, description="Run in headless mode.") status: Any = MockStatus() az_search_endpoint: str = Field("https://analysis-bank.search.windows.net") az_search_api_key: str = Field(...) az_search_idx_name: str = Field("analysis-index") az_search_top_k: int = Field(4, description="Max number of results to retrun") az_search_min_score: float = Field(9.0, description="Only results above this confidence score is used") chat_template: str = Field("chatml", description="Chat template for prompt formatting") num_fewshot: int | None = Field(None, description="Option to use json mode examples") max_depth: int = Field(3, description="Maximum number of recursive iteration") config = Config(_env_file=".env")