app_config.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. from dotenv import load_dotenv
  2. import os
  3. # 加载.env文件中的环境变量
  4. load_dotenv()
  5. # ===== 模型提供商类型配置 =====
  6. # LLM模型提供商类型:api 或 ollama
  7. LLM_MODEL_TYPE = "ollama" # api, ollama
  8. # Embedding模型提供商类型:api 或 ollama
  9. EMBEDDING_MODEL_TYPE = "ollama" # api, ollama
  10. # ===== 模型名称配置 =====
  11. # API LLM模型名称(当LLM_MODEL_TYPE="api"时使用:qwen 或 deepseek)
  12. API_LLM_MODEL = "qwen"
  13. # 向量数据库类型:chromadb 或 pgvector
  14. VECTOR_DB_TYPE = "pgvector"
  15. # ===== API LLM模型配置 =====
  16. # DeepSeek模型配置
  17. API_DEEPSEEK_CONFIG = {
  18. "api_key": os.getenv("DEEPSEEK_API_KEY"), # 从环境变量读取API密钥
  19. "model": "deepseek-reasoner", # deepseek-chat, deepseek-reasoner
  20. "allow_llm_to_see_data": True,
  21. "temperature": 0.7,
  22. "n_results": 6,
  23. "language": "Chinese",
  24. "enable_thinking": False # 自定义,是否支持流模式
  25. }
  26. # Qwen模型配置
  27. API_QWEN_CONFIG = {
  28. "api_key": os.getenv("QWEN_API_KEY"), # 从环境变量读取API密钥
  29. "model": "qwen-plus",
  30. "allow_llm_to_see_data": True,
  31. "temperature": 0.7,
  32. "n_results": 6,
  33. "language": "Chinese",
  34. "enable_thinking": False #自定义,是否支持流模式,仅qwen3模型。
  35. }
  36. #qwen3-30b-a3b
  37. #qwen3-235b-a22b
  38. #qwen-plus-latest
  39. #qwen-plus
  40. # ===== API Embedding模型配置 =====
  41. API_EMBEDDING_CONFIG = {
  42. "model_name": "BAAI/bge-m3",
  43. "api_key": os.getenv("EMBEDDING_API_KEY"),
  44. "base_url": os.getenv("EMBEDDING_BASE_URL"),
  45. "embedding_dimension": 1024
  46. }
  47. # ===== Ollama LLM模型配置 =====
  48. OLLAMA_LLM_CONFIG = {
  49. "base_url": "http://192.168.3.204:11434", # Ollama服务地址
  50. "model": "qwen3:32b", # Ollama模型名称,如:qwen3:32b, deepseek-r1:32b
  51. "allow_llm_to_see_data": True,
  52. "temperature": 0.7,
  53. "n_results": 6,
  54. "language": "Chinese",
  55. "timeout": 60 # Ollama可能需要更长超时时间
  56. }
  57. # ===== Ollama Embedding模型配置 =====
  58. OLLAMA_EMBEDDING_CONFIG = {
  59. "base_url": "http://192.168.3.204:11434", # Ollama服务地址
  60. "model_name": "bge-m3:567m", # Ollama embedding模型名称
  61. "embedding_dimension": 1024 # 根据实际模型调整
  62. }
  63. # 应用数据库连接配置 (业务数据库)
  64. APP_DB_CONFIG = {
  65. "host": "192.168.67.1",
  66. "port": 5432,
  67. "dbname": "bank_db",
  68. "user": os.getenv("APP_DB_USER"),
  69. "password": os.getenv("APP_DB_PASSWORD")
  70. }
  71. # ChromaDB配置
  72. # CHROMADB_PATH = "."
  73. # PgVector数据库连接配置 (向量数据库,独立于业务数据库)
  74. PGVECTOR_CONFIG = {
  75. "host": "192.168.67.1",
  76. "port": 5432,
  77. "dbname": "pgvector_db",
  78. "user": os.getenv("PGVECTOR_DB_USER"),
  79. "password": os.getenv("PGVECTOR_DB_PASSWORD")
  80. }
  81. # 训练脚本批处理配置
  82. # 这些配置仅用于 training/run_training.py 训练脚本的批处理优化
  83. TRAINING_BATCH_PROCESSING_ENABLED = True # 是否启用训练数据批处理
  84. TRAINING_BATCH_SIZE = 10 # 每批处理的训练项目数量
  85. TRAINING_MAX_WORKERS = 4 # 训练批处理的最大工作线程数
  86. # 训练数据路径配置
  87. # 支持以下格式:
  88. # 1. 相对路径(以 . 开头):
  89. # "./training/data" - 项目根目录下的training/data
  90. # "../data" - 项目根目录上级的data目录
  91. # 2. 绝对路径:
  92. # "/home/user/data" - Linux绝对路径
  93. # "C:/data" - Windows绝对路径
  94. # "D:\\training\\data" - Windows绝对路径(转义反斜杠)
  95. # 3. 相对路径(不以.开头):
  96. # "training/data" - 相对于项目根目录
  97. # "my_data" - 项目根目录下的my_data文件夹
  98. TRAINING_DATA_PATH = "./training/data"