config.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. """
  2. 全局配置文件
  3. """
  4. import os
  5. import logging
  6. # --- 项目根目录 ---
  7. # /test/custom_react_agent/config.py -> /
  8. PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  9. # --- LLM 配置 ---
  10. # 在这里写死你的千问API Key
  11. # qwen-plus
  12. # qwen3-235b-a22b
  13. # qwen3-30b-a3b
  14. # sk-8f2320dafc9e4076968accdd8eebd8e9
  15. # my:"sk-db68e37f00974031935395315bfe07f0"
  16. QWEN_API_KEY = "sk-8f2320dafc9e4076968accdd8eebd8e9"
  17. QWEN_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
  18. QWEN_MODEL = "qwen3-235b-a22b"
  19. # --- Redis 配置 ---
  20. REDIS_HOST = "localhost"
  21. REDIS_PORT = 6379
  22. REDIS_DB = 0
  23. REDIS_PASSWORD = None
  24. REDIS_ENABLED = True # 是否启用Redis状态持久化(LangGraph的AsyncRedisSaver),用于保存对话历史和状态
  25. # 兼容性:保留REDIS_URL用于AsyncRedisSaver
  26. def _build_redis_url():
  27. """构建Redis连接URL"""
  28. if REDIS_PASSWORD:
  29. return f"redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/{REDIS_DB}"
  30. else:
  31. return f"redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_DB}"
  32. REDIS_URL = _build_redis_url()
  33. # --- 日志配置 ---
  34. LOG_LEVEL = logging.INFO
  35. LOG_FORMAT = '%(asctime)s - %(levelname)s - [%(filename)s:%(lineno)d] - %(message)s'
  36. # --- Agent 配置 ---
  37. DEFAULT_USER_ID = "guest"
  38. # --- StateGraph 配置 ---
  39. RECURSION_LIMIT = 100 # StateGraph递归限制
  40. # --- 网络重试配置 ---
  41. MAX_RETRIES = 3 # 最大重试次数(减少以避免与OpenAI客户端冲突)
  42. RETRY_BASE_DELAY = 3 # 重试基础延迟(秒)
  43. NETWORK_TIMEOUT = 60 # 网络超时时间(秒)- 增加到60秒以应对长上下文处理
  44. # --- HTTP连接管理配置 ---
  45. HTTP_MAX_CONNECTIONS = 10 # 最大连接数
  46. HTTP_MAX_KEEPALIVE_CONNECTIONS = 5 # 最大保持连接数
  47. HTTP_KEEPALIVE_EXPIRY = 30.0 # Keep-Alive过期时间(秒)- 设置为30秒避免服务器断开
  48. HTTP_CONNECT_TIMEOUT = 10.0 # 连接超时(秒)
  49. HTTP_POOL_TIMEOUT = 5.0 # 连接池超时(秒)
  50. # --- 调试配置 ---
  51. DEBUG_MODE = True # 调试模式:True=完整日志,False=简化日志
  52. MAX_LOG_LENGTH = 1000 # 非调试模式下的最大日志长度
  53. # --- State管理配置 ---
  54. MESSAGE_TRIM_ENABLED = True # 是否启用消息裁剪
  55. MESSAGE_TRIM_COUNT = 100 # 消息数量超过此值时触发裁剪,裁剪后保留此数量的消息
  56. MESSAGE_TRIM_SEARCH_LIMIT = 20 # 向前搜索HumanMessage的最大条数
  57. # --- Checkpoint管理配置 ---
  58. CHECKPOINT_KEEP_COUNT = 10 # 每个thread保留的checkpoint数量(API默认值)