57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
|
|
"""Configuration for X-Agents."""
|
||
|
|
|
||
|
|
import os
|
||
|
|
from pathlib import Path
|
||
|
|
from typing import Any
|
||
|
|
|
||
|
|
# 尝试加载 .env 文件
|
||
|
|
try:
|
||
|
|
from dotenv import load_dotenv
|
||
|
|
# 查找 .env 文件:从当前目录向上查找
|
||
|
|
env_paths = [
|
||
|
|
Path(__file__).parent.parent.parent / ".env", # X-Agents/.env
|
||
|
|
Path(__file__).parent.parent / ".env", # core/.env
|
||
|
|
Path(__file__).parent / ".env", # agents/.env
|
||
|
|
]
|
||
|
|
for env_path in env_paths:
|
||
|
|
if env_path.exists():
|
||
|
|
load_dotenv(env_path)
|
||
|
|
break
|
||
|
|
except ImportError:
|
||
|
|
pass # python-dotenv 未安装时跳过
|
||
|
|
|
||
|
|
|
||
|
|
class Config:
|
||
|
|
"""X-Agents configuration."""
|
||
|
|
|
||
|
|
# API settings
|
||
|
|
API_HOST: str = os.getenv("PYTHON_HOST", os.getenv("API_HOST", "0.0.0.0"))
|
||
|
|
API_PORT: int = int(os.getenv("PYTHON_PORT", os.getenv("API_PORT", "8001")))
|
||
|
|
|
||
|
|
# LLM settings
|
||
|
|
LLM_PROVIDER: str = os.getenv("PYTHON_LLM_PROVIDER", os.getenv("LLM_PROVIDER", "openai"))
|
||
|
|
LLM_MODEL: str = os.getenv("PYTHON_LLM_MODEL", os.getenv("LLM_MODEL", "gpt-4o"))
|
||
|
|
LLM_API_KEY: str = os.getenv("PYTHON_LLM_API_KEY", os.getenv("LLM_API_KEY", ""))
|
||
|
|
LLM_BASE_URL: str | None = os.getenv("PYTHON_LLM_BASE_URL", os.getenv("LLM_BASE_URL", None))
|
||
|
|
|
||
|
|
# Workspace
|
||
|
|
WORKSPACE: Path = Path(os.getenv("PYTHON_WORKSPACE", os.getenv("WORKSPACE", "./workspace")))
|
||
|
|
|
||
|
|
# Agent settings
|
||
|
|
MAX_ITERATIONS: int = int(os.getenv("PYTHON_MAX_ITERATIONS", os.getenv("MAX_ITERATIONS", "10")))
|
||
|
|
TEMPERATURE: float = float(os.getenv("PYTHON_TEMPERATURE", os.getenv("TEMPERATURE", "0.7")))
|
||
|
|
|
||
|
|
def __init__(self, **kwargs: Any):
|
||
|
|
"""Initialize config with overrides.
|
||
|
|
|
||
|
|
Args:
|
||
|
|
**kwargs: Configuration overrides
|
||
|
|
"""
|
||
|
|
for key, value in kwargs.items():
|
||
|
|
if hasattr(self, key):
|
||
|
|
setattr(self, key, value)
|
||
|
|
|
||
|
|
|
||
|
|
# Default config instance
|
||
|
|
config = Config()
|