56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
"""
|
|
Configuration module for FactsDB service
|
|
Loads configuration from environment variables
|
|
"""
|
|
|
|
import os
|
|
from dataclasses import dataclass
|
|
from typing import Optional
|
|
|
|
@dataclass
|
|
class DatabaseConfig:
|
|
"""Database configuration"""
|
|
path: str = "./facts.db"
|
|
|
|
@dataclass
|
|
class AIEndpointConfig:
|
|
"""AI endpoint configuration"""
|
|
url: str = "http://example.com:4000/v1/chat/completions"
|
|
auth_token: str = "111"
|
|
|
|
@dataclass
|
|
class FTPServerConfig:
|
|
"""FTP server configuration"""
|
|
host: str = "0.0.0.0"
|
|
port: int = 2121
|
|
username: str = "factsdb"
|
|
password: str = "factsdb"
|
|
|
|
@dataclass
|
|
class SchedulerConfig:
|
|
"""Scheduler configuration"""
|
|
interval_minutes: int = 10
|
|
|
|
class Config:
|
|
"""Main configuration class"""
|
|
|
|
def __init__(self):
|
|
self.database = DatabaseConfig(
|
|
path=os.getenv('DATABASE_PATH', './facts.db')
|
|
)
|
|
|
|
self.ai_endpoint = AIEndpointConfig(
|
|
url=os.getenv('AI_ENDPOINT_URL', 'http://example.com:4000/v1/chat/completions'),
|
|
auth_token=os.getenv('AI_ENDPOINT_TOKEN', '111')
|
|
)
|
|
|
|
self.ftp_server = FTPServerConfig(
|
|
host=os.getenv('FTP_HOST', '0.0.0.0'),
|
|
port=int(os.getenv('FTP_PORT', '2121')),
|
|
username=os.getenv('FTP_USERNAME', 'factsdb'),
|
|
password=os.getenv('FTP_PASSWORD', 'factsdb')
|
|
)
|
|
|
|
self.scheduler = SchedulerConfig(
|
|
interval_minutes=int(os.getenv('SCHEDULER_INTERVAL', '10'))
|
|
) |