Files
ailine/backend/app/config.py

90 lines
2.5 KiB
Python
Raw Normal View History

2026-04-21 11:02:16 +08:00
"""
环境变量集中管理模块
所有配置项统一定义避免散落在各个文件中
2026-04-21 18:41:14 +08:00
配置分组相关配置放在一起URL API Key 配对
所有配置直接从环境变量读取无默认值避免配置混乱
需要类型转换的配置在此处理
2026-04-21 11:02:16 +08:00
"""
import os
2026-04-21 18:41:14 +08:00
# ========== 辅助函数:类型转换 ==========
def _get_str(key: str) -> str | None:
"""获取字符串配置"""
return os.getenv(key)
2026-04-21 11:02:16 +08:00
2026-04-21 18:41:14 +08:00
def _get_int(key: str) -> int | None:
"""获取整数配置,自动转换"""
value = os.getenv(key)
if value is not None:
try:
return int(value)
except (ValueError, TypeError):
pass
return None
def _get_bool(key: str) -> bool | None:
"""获取布尔配置,自动转换"""
value = os.getenv(key)
if value is not None:
return value.lower() in ("true", "1", "yes", "on")
return None
# ========== 第三方 API 密钥 ==========
ZHIPUAI_API_KEY = _get_str("ZHIPUAI_API_KEY")
DEEPSEEK_API_KEY = _get_str("DEEPSEEK_API_KEY")
# ========== llama.cpp 服务配置URL + API密钥 配对) ==========
# 主 LLM 服务
VLLM_BASE_URL = _get_str("VLLM_BASE_URL")
LLM_API_KEY = _get_str("LLAMACPP_API_KEY")
# Embedding 服务 (用于 Mem0 的向量化)
LLAMACPP_EMBEDDING_URL = _get_str("LLAMACPP_EMBEDDING_URL")
LLAMACPP_API_KEY = _get_str("LLAMACPP_API_KEY")
# Reranker 服务
LLAMACPP_RERANKER_URL = _get_str("LLAMACPP_RERANKER_URL")
2026-04-21 11:02:16 +08:00
2026-04-21 18:41:14 +08:00
# ========== Qdrant 向量数据库配置URL + API密钥 配对) ==========
QDRANT_URL = _get_str("QDRANT_URL")
QDRANT_API_KEY = _get_str("QDRANT_API_KEY")
QDRANT_COLLECTION_NAME = _get_str("QDRANT_COLLECTION_NAME")
# ========== PostgreSQL 数据库配置(分离配置 + 完整URI ==========
# 分离配置(优先使用)
DB_HOST = _get_str("DB_HOST")
DB_PORT = _get_int("DB_PORT")
DB_USER = _get_str("DB_USER")
DB_PASSWORD = _get_str("DB_PASSWORD")
DB_NAME = _get_str("DB_NAME")
# 完整连接字符串(直接从环境变量读取)
DB_URI = _get_str("DB_URI")
2026-04-21 11:02:16 +08:00
# ========== 后端服务配置 ==========
2026-04-21 18:41:14 +08:00
BACKEND_PORT = _get_int("BACKEND_PORT")
2026-04-21 11:02:16 +08:00
2026-04-21 18:41:14 +08:00
# ========== Mem0 记忆层配置 ==========
# 记忆提取间隔:每 N 轮对话生成一次摘要
MEMORY_SUMMARIZE_INTERVAL = _get_int("MEMORY_SUMMARIZE_INTERVAL")
2026-04-21 11:02:16 +08:00
2026-04-21 18:41:14 +08:00
# ========== Graph 执行追踪配置 ==========
# 是否启用 Graph 流转追踪(通过环境变量控制)
ENABLE_GRAPH_TRACE = _get_bool("ENABLE_GRAPH_TRACE")
# ========== 日志配置 ==========
LOG_LEVEL = _get_str("LOG_LEVEL")
DEBUG = _get_bool("DEBUG")