Backend
Configuration
Overview

TKM AI Agency Platform Documentation

The Configuration component manages system and user-specific settings in the TKM AI Agency Platform, providing a centralized way to handle configurations for all agents and services.

Directory Structure

Backend/AI_Agency/Configuration/
├── config_manager.py     # Core configuration management implementation
├── config_router.py      # FastAPI endpoints for configuration
├── default/             # Default configuration templates
│   └── llm_config_default.yaml
└── user_configurations/ # User-specific configuration storage

Main Components

ConfigManager

The ConfigManager class implements a singleton pattern to ensure a single configuration instance across the system:

  • Manages default and user-specific configurations
  • Loads YAML configuration files
  • Provides agent-specific configuration access
  • Handles language support settings

Key methods:

  • get_user_config(user_id): Retrieves user-specific configuration
  • get_agent_config(agent_name, user_id): Gets agent-specific settings
  • get_supported_languages(): Returns available translation languages

Configuration Router

The config_router.py provides FastAPI endpoints for configuration management:

  • GET /api/config/user/{user_id}: Retrieve user configuration
  • PATCH /api/config/user/{user_id}: Update user configuration

Key Features

  1. Centralized Configuration

    • Single source of truth for system settings
    • Hierarchical configuration structure
    • Default fallback values
  2. User Configuration Management

    • User-specific settings override defaults
    • Dynamic configuration updates
    • Persistent storage in YAML format
  3. Agent Configuration

    • Agent-specific settings management
    • Language support configuration
    • LLM provider settings
  4. Error Handling

    • Graceful error recovery
    • Detailed error logging
    • HTTP exception handling

Integration

The Configuration component integrates with:

  • All agents through the ConfigManager singleton
  • FastAPI for configuration endpoints
  • Logging system for error tracking
  • YAML files for configuration storage

Best Practices

  1. Always access configurations through the ConfigManager
  2. Use type hints for configuration values
  3. Implement proper error handling
  4. Keep default configurations up-to-date
  5. Document configuration changes