bpm-agent / config /settings.py
limonad's picture
Upload 24 files
1e49a59 verified
"""Settings and configuration management."""
import os
from pathlib import Path
from typing import Optional
from dotenv import load_dotenv
from pydantic import Field
from pydantic_settings import BaseSettings
# Load environment variables from .env file
load_dotenv()
class Settings(BaseSettings):
"""Application settings loaded from environment variables."""
# OpenAI Configuration
openai_api_key: str = Field(..., description="OpenAI API key")
openai_model: str = Field(default="gpt-4o-mini", description="OpenAI model to use")
temperature: float = Field(default=0.7, description="LLM temperature")
max_tokens: int = Field(default=1000, description="Maximum tokens in response")
# LangSmith Configuration (optional)
langchain_tracing_v2: bool = Field(default=False, description="Enable LangSmith tracing")
langchain_api_key: Optional[str] = Field(default=None, description="LangSmith API key")
langchain_project: str = Field(
default="langgraph-agent", description="LangSmith project name"
)
# Project Paths
project_root: Path = Field(
default_factory=lambda: Path(__file__).parent.parent,
description="Project root directory",
)
docs_dir: Path = Field(
default_factory=lambda: Path(__file__).parent.parent / "docs",
description="Documentation directory",
)
class Config:
"""Pydantic configuration."""
env_file = ".env"
env_file_encoding = "utf-8"
case_sensitive = False
def get_settings() -> Settings:
"""Get application settings instance."""
return Settings()
# Made with Bob