whFalsa / app /config.py
codeBOKER's picture
Merge main updates into huggingface-space-deployment
0445c27
Raw
History Blame Contribute Delete
1.83 kB
from functools import lru_cache
from pathlib import Path
from pydantic import Field, HttpUrl
from pydantic_settings import BaseSettings, SettingsConfigDict
BASE_DIR = Path(__file__).resolve().parent.parent
class Settings(BaseSettings):
model_config = SettingsConfigDict(
env_file=BASE_DIR / ".env",
env_file_encoding="utf-8",
extra="ignore",
)
app_name: str = "FALZH"
environment: str = "development"
app_timezone: str = "Asia/Aden"
log_level: str = "INFO"
supabase_url: HttpUrl
supabase_service_role_key: str = Field(min_length=1)
jina_api_key: str = Field(min_length=1)
jina_embedding_model: str = "jina-embeddings-v5-text-small"
jina_embedding_dimensions: int = 1024
jina_embedding_endpoint: str = "https://api.jina.ai/v1/embeddings"
jina_query_task: str = "retrieval.query"
jina_passage_task: str = "retrieval.passage"
groq_api_key: str = Field(min_length=1)
groq_model: str = Field(min_length=1)
groq_api_key_2: str | None = None
groq_model_2: str | None = None
google_ai_api_key: str | None = None
google_ai_model: str | None = None
openrouter_api_key: str = Field(min_length=1)
openrouter_model: str = Field(min_length=1)
ai_temperature: float = 0.2
ai_max_tool_iterations: int = 3
request_timeout_seconds: float = 20.0
whatsapp_graph_url: str = "https://graph.facebook.com"
whatsapp_api_version: str = "v20.0"
whatsapp_verify_token: str = Field(min_length=1)
whatsapp_app_secret: str = Field(min_length=1)
whatsapp_access_token: str = Field(min_length=1)
whatsapp_phone_number_id: str = Field(min_length=1)
admin_api_key: str = Field(min_length=1)
default_country_code: str = "967"
@lru_cache
def get_settings() -> Settings:
return Settings()