config.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. """
  2. Big Agent 配置文件
  3. ================
  4. 此配置文件包含了Big Agent系统的所有核心配置信息,包括:
  5. - API密钥配置(DeepSeek等)
  6. - 工作流参数设置
  7. - 路径配置
  8. - 环境变量加载
  9. 主要功能:
  10. 1. 从环境变量或.env文件加载API密钥
  11. 2. 定义系统工作流的基本参数
  12. 3. 配置项目文件路径
  13. 4. 验证配置完整性
  14. 作者: Big Agent Team
  15. 版本: 1.0.0
  16. 更新时间: 2024-12-18
  17. """
  18. import os
  19. from dotenv import load_dotenv
  20. # ============================================================================
  21. # 环境变量加载
  22. # ============================================================================
  23. # 从.env文件加载环境变量,确保敏感信息不被硬编码到源码中
  24. load_dotenv()
  25. # ============================================================================
  26. # DeepSeek API 配置
  27. # ============================================================================
  28. # API密钥配置 - 优先从环境变量读取,支持通过.env文件配置
  29. DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
  30. if not DEEPSEEK_API_KEY:
  31. print(f"从环境变量中获取 DEEPSEEK_API_KEY 失败,使用默认值")
  32. DEEPSEEK_API_KEY = "sk-d9526c1f01dc488d9aae9624ce4bba14"
  33. # API基础URL配置 - 默认使用DeepSeek官方API地址
  34. DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com")
  35. # ============================================================================
  36. # 规则引擎 API 配置
  37. # ============================================================================
  38. # 规则引擎基础URL配置 - 用于指标计算和知识库访问
  39. RULES_ENGINE_BASE_URL = os.getenv("RULES_ENGINE_BASE_URL", "http://10.192.72.11:31809")
  40. # ============================================================================
  41. # 项目路径配置
  42. # ============================================================================
  43. # 定义项目中各个功能模块的数据存储路径
  44. PATHS = {
  45. "json_configs": "json_files", # JSON配置文件目录 - 存储指标计算配置
  46. "knowledge_base": "knowledge_base", # 知识库目录 - 存储生成的知识文档
  47. "logs": "logs", # 日志目录 - 存储系统运行日志
  48. "api_results": "api_results" # API结果目录 - 存储所有API调用结果
  49. }
  50. # ============================================================================
  51. # 目录初始化
  52. # ============================================================================
  53. # 确保所有必要的目录都存在,避免文件操作时的路径错误
  54. for path in PATHS.values():
  55. os.makedirs(path, exist_ok=True)
  56. # ============================================================================
  57. # 配置验证函数
  58. # ============================================================================
  59. def validate_config():
  60. """
  61. 验证系统配置是否正确
  62. 此函数检查所有必要的配置项是否已正确设置,包括:
  63. - API密钥是否存在
  64. - API URL格式是否正确
  65. Returns:
  66. list: 配置错误列表,如果为空则表示配置正确
  67. """
  68. errors = []
  69. # 检查API密钥
  70. if not DEEPSEEK_API_KEY:
  71. errors.append("DEEPSEEK_API_KEY环境变量未设置")
  72. # 检查API URL格式
  73. if not DEEPSEEK_BASE_URL.startswith("https://"):
  74. errors.append("DEEPSEEK_BASE_URL必须是HTTPS URL")
  75. return errors
  76. # ============================================================================
  77. # 配置状态标识
  78. # ============================================================================
  79. # 全局配置状态标识,True表示配置正确,False表示存在配置问题
  80. CONFIG_VALID = len(validate_config()) == 0
  81. # 数据打标引擎入参映射(行业 -> ID)
  82. DATA_CLASSIFY_ENGINE_PARAM_MAPPER = {
  83. "农业": "metric-农业分类打标-1230"
  84. }
  85. # 千问32B模型配置
  86. qwen3_32B_model = {
  87. "name": "Qwen3-32B",
  88. "api_key": "",
  89. "base_url": "http://10.192.72.12:9996/v1"
  90. }
  91. # deepseek模型配置
  92. deepseek_v3_model = {
  93. "name": "deepseek-chat",
  94. "api_key": DEEPSEEK_API_KEY,
  95. "base_url": DEEPSEEK_BASE_URL
  96. }