1+ import os
2+
3+ from dotenv import load_dotenv
4+
5+ from biz .llm .factory import Factory
6+ from biz .utils .log import logger
7+
8+ # 指定环境变量文件路径
9+ ENV_FILE_PATH = "conf/.env"
10+ load_dotenv (ENV_FILE_PATH )
11+
12+
13+ REQUIRED_ENV_VARS = [
14+ "LLM_PROVIDER" ,
15+ ]
16+
17+ # 允许的 LLM 供应商
18+ LLM_PROVIDERS = {"zhipuai" , "openai" , "deepseek" , "ollama" }
19+
20+ # 每种供应商必须配置的键
21+ LLM_REQUIRED_KEYS = {
22+ "zhipuai" : ["ZHIPUAI_API_KEY" , "ZHIPUAI_API_MODEL" ],
23+ "openai" : ["OPENAI_API_KEY" , "OPENAI_API_MODEL" ],
24+ "deepseek" : ["DEEPSEEK_API_KEY" , "DEEPSEEK_API_MODEL" ],
25+ "ollama" : ["OLLAMA_API_BASE_URL" , "OLLAMA_API_MODEL" ],
26+ }
27+
28+
29+ def check_env_vars ():
30+ """检查环境变量"""
31+ missing_vars = [var for var in REQUIRED_ENV_VARS if var not in os .environ ]
32+ if missing_vars :
33+ logger .warning (f"缺少环境变量: { ', ' .join (missing_vars )} " )
34+ else :
35+ logger .info ("所有必要的环境变量均已设置。" )
36+
37+
38+ def check_llm_provider ():
39+ """检查 LLM 供应商的配置"""
40+ llm_provider = os .getenv ("LLM_PROVIDER" )
41+
42+ if not llm_provider :
43+ logger .error ("LLM_PROVIDER 未设置!" )
44+ return
45+
46+ if llm_provider not in LLM_PROVIDERS :
47+ logger .error (f"LLM_PROVIDER 值错误,应为 { LLM_PROVIDERS } 之一。" )
48+ return
49+
50+ required_keys = LLM_REQUIRED_KEYS .get (llm_provider , [])
51+ missing_keys = [key for key in required_keys if not os .getenv (key )]
52+
53+ if missing_keys :
54+ logger .error (f"当前 LLM 供应商为 { llm_provider } ,但缺少必要的环境变量: { ', ' .join (missing_keys )} " )
55+ else :
56+ logger .info (f"LLM 供应商 { llm_provider } 的配置项已设置。" )
57+
58+ def check_llm_connectivity ():
59+ client = Factory ().getClient ()
60+ logger .info (f"正在检查 LLM 供应商的连接..." )
61+ if client .ping ():
62+ logger .info ("LLM 可以连接成功。" )
63+ else :
64+ logger .error ("LLM连接可能有问题,请检查配置项。" )
65+
66+ def check_config ():
67+ """主检查入口"""
68+ logger .info ("开始检查配置项..." )
69+ check_env_vars ()
70+ check_llm_provider ()
71+ check_llm_connectivity ()
72+ logger .info ("配置项检查完成。" )
0 commit comments