Files

1 line
5.1 KiB
JSON

{"repo": "123d56/ai-legion", "files": {"config/settings.py": {"65a9a10144276f8f623d9b88b52153731d20f867": {"t": 1785746921.2616265, "n": 2186, "h": "d132c9c3522bda59", "c": "\"\"\"\nAI Legion 全局配置\n从环境变量 / .env 文件中加载所有配置项\n\"\"\"\n\nfrom __future__ import annotations\n\nimport os\nfrom dataclasses import dataclass, field\nfrom dotenv import load_dotenv\n\nload_dotenv()\n\n\n@dataclass\nclass ProviderConfig:\n \"\"\"单个模型供应商的配置\"\"\"\n name: str\n api_key: str\n model: str\n base_url: str | None = None\n enabled: bool = True\n\n\n@dataclass\nclass Settings:\n \"\"\"全局设置\"\"\"\n\n # 服务\n host: str = field(default_factory=lambda: os.getenv(\"HOST\", \"0.0.0.0\"))\n port: int = field(default_factory=lambda: int(os.getenv(\"PORT\", \"8000\")))\n debug: bool = field(default_factory=lambda: os.getenv(\"DEBUG\", \"false\").lower() == \"true\")\n\n # 聚合策略\n strategy: str = field(default_factory=lambda: os.getenv(\"STRATEGY\", \"vote\"))\n\n # API 认证 Token(为空则跳过认证,开发模式友好)\n api_token: str = field(default_factory=lambda: os.getenv(\"API_TOKEN\", \"\"))\n\n def get_provider_configs(self) -> list[ProviderConfig]:\n \"\"\"\n 自动扫描环境变量,发现所有已配置的供应商。\n 规则:存在 {NAME}_API_KEY 且非空,即视为已启用。\n \"\"\"\n providers: list[ProviderConfig] = []\n\n provider_map = {\n \"OPENAI\": {\n \"name\": \"openai\",\n \"default_model\": \"gpt-4o\",\n },\n \"ANTHROPIC\": {\n \"name\": \"anthropic\",\n \"default_model\": \"claude-sonnet-4-20250514\",\n },\n \"GOOGLE\": {\n \"name\": \"google\",\n \"default_model\": \"gemini-2.0-flash\",\n },\n \"DEEPSEEK\": {\n \"name\": \"deepseek\",\n \"default_model\": \"deepseek-chat\",\n },\n }\n\n for prefix, info in provider_map.items():\n api_key = os.getenv(f\"{prefix}_API_KEY\", \"\")\n if api_key and not api_key.startswith(\"sk-xxx\") and api_key != \"xxx\":\n providers.append(\n ProviderConfig(\n name=info[\"name\"],\n api_key=api_key,\n model=os.getenv(f\"{prefix}_MODEL\", info[\"default_model\"]),\n base_url=os.getenv(f\"{prefix}_BASE_URL\"),\n )\n )\n\n return providers\n\n\n# 全局单例\nsettings = Settings()"}, "552caebf640ad1d04b62c1b463e10844c980f0fb": {"t": 1785769031.0963156, "n": 2071, "h": "f9bf9d2344175fb5", "c": "\"\"\"\nAI Legion 全局配置\n从环境变量 / .env 文件中加载所有配置项\n\"\"\"\n\nfrom __future__ import annotations\n\nimport os\nfrom dataclasses import dataclass, field\nfrom dotenv import load_dotenv\n\nload_dotenv()\n\n\n@dataclass\nclass ProviderConfig:\n \"\"\"单个模型供应商的配置\"\"\"\n name: str\n api_key: str\n model: str\n base_url: str | None = None\n enabled: bool = True\n\n\n@dataclass\nclass Settings:\n \"\"\"全局设置\"\"\"\n\n # 服务\n host: str = field(default_factory=lambda: os.getenv(\"HOST\", \"0.0.0.0\"))\n port: int = field(default_factory=lambda: int(os.getenv(\"PORT\", \"8000\")))\n debug: bool = field(default_factory=lambda: os.getenv(\"DEBUG\", \"false\").lower() == \"true\")\n\n # 聚合策略\n strategy: str = field(default_factory=lambda: os.getenv(\"STRATEGY\", \"vote\"))\n\n def get_provider_configs(self) -> list[ProviderConfig]:\n \"\"\"\n 自动扫描环境变量,发现所有已配置的供应商。\n 规则:存在 {NAME}_API_KEY 且非空,即视为已启用。\n \"\"\"\n providers: list[ProviderConfig] = []\n\n provider_map = {\n \"OPENAI\": {\n \"name\": \"openai\",\n \"default_model\": \"gpt-4o\",\n },\n \"ANTHROPIC\": {\n \"name\": \"anthropic\",\n \"default_model\": \"claude-sonnet-4-20250514\",\n },\n \"GOOGLE\": {\n \"name\": \"google\",\n \"default_model\": \"gemini-2.0-flash\",\n },\n \"DEEPSEEK\": {\n \"name\": \"deepseek\",\n \"default_model\": \"deepseek-chat\",\n },\n }\n\n for prefix, info in provider_map.items():\n api_key = os.getenv(f\"{prefix}_API_KEY\", \"\")\n if api_key and not api_key.startswith(\"sk-xxx\") and api_key != \"xxx\":\n providers.append(\n ProviderConfig(\n name=info[\"name\"],\n api_key=api_key,\n model=os.getenv(f\"{prefix}_MODEL\", info[\"default_model\"]),\n base_url=os.getenv(f\"{prefix}_BASE_URL\"),\n )\n )\n\n return providers\n\n\n# 全局单例\nsettings = Settings()"}}}}