|
|
""" |
|
|
Application settings and configuration. |
|
|
""" |
|
|
from pydantic_settings import BaseSettings |
|
|
from pydantic import AnyHttpUrl, Field |
|
|
from typing import List |
|
|
import os |
|
|
from dotenv import load_dotenv |
|
|
|
|
|
|
|
|
load_dotenv() |
|
|
|
|
|
class Settings(BaseSettings): |
|
|
"""Application settings loaded from environment variables.""" |
|
|
|
|
|
|
|
|
APP_NAME: str = "Memory Chatbot API" |
|
|
APP_VERSION: str = "1.0.0" |
|
|
APP_DESCRIPTION: str = "A chatbot with long-term memory capabilities" |
|
|
|
|
|
|
|
|
HOST: str = "0.0.0.0" |
|
|
PORT: int = 8000 |
|
|
DEBUG: bool = False |
|
|
|
|
|
|
|
|
CORS_ORIGINS: List[str] = ["*"] |
|
|
CORS_CREDENTIALS: bool = True |
|
|
CORS_METHODS: List[str] = ["*"] |
|
|
CORS_HEADERS: List[str] = ["*"] |
|
|
|
|
|
|
|
|
API_V1_PREFIX: str = "/api/v1" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sambanova_api_key: str | None = Field(None, env="SAMBANOVA_API_KEY") |
|
|
nebius_api_key: str | None = Field(None, env="NEBIUS_API_KEY") |
|
|
|
|
|
|
|
|
MODEL_NAME: str = "llama-3.3-70b-versatile" |
|
|
TEMPERATURE: float = 0.0 |
|
|
ENV: str = Field("development", env="ENV") |
|
|
|
|
|
|
|
|
NEBIUS_API_KEY: str | None = Field(None, env="NEBIUS_API_KEY") |
|
|
NEBIUS_ENDPOINT: str | None = Field(None, env="NEBIUS_ENDPOINT") |
|
|
|
|
|
|
|
|
SAMBANOVA_API_KEY: str | None = Field(None, env="SAMBANOVA_API_KEY") |
|
|
SAMBANOVA_ENDPOINT: str | None = Field(None, env="SAMBANOVA_ENDPOINT") |
|
|
|
|
|
|
|
|
OPENAI_API_KEY: str | None = Field(None, env="OPENAI_API_KEY") |
|
|
|
|
|
|
|
|
GEMINI_API_KEY: str | None = Field(None, env="GEMINI_API_KEY") |
|
|
|
|
|
|
|
|
|
|
|
GITHUB_TOKEN: str | None = Field(None, env="GITHUB_TOKEN") |
|
|
|
|
|
|
|
|
POSTGRES_CONNECTION_STRING: str | None = Field(None, env="POSTGRES_CONNECTION_STRING") |
|
|
|
|
|
|
|
|
MCP_ALLOWED_DIRECTORIES: str = Field(".", env="MCP_ALLOWED_DIRECTORIES") |
|
|
|
|
|
class Config: |
|
|
env_file = ".env" |
|
|
env_file_encoding = "utf-8" |
|
|
case_sensitive = False |
|
|
|
|
|
|
|
|
settings = Settings() |