基于 DeepSeek LLM 的智能聊天助手系统,支持工具调用、知识库检索、Web界面和统一对话管理。
pip install -r requirements.txt
创建 .env 文件:
DEEPSEEK_API_KEY=your_deepseek_api_key_here
python main.py
python app.py
demo2/
├── main.py # 统一聊天系统主程序
├── app.py # Flask Web应用
├── requirements.txt # 项目依赖
├── config/ # 配置管理
│ └── settings.py # 统一配置
├── tools/ # 工具模块
│ ├── calculator_tool.py # 计算器工具
│ ├── weather_tool.py # 天气工具
│ └── time_tool.py # 时间工具
├── agents/ # 智能体模块
│ └── tool_agent.py # 工具智能体
├── chains/ # 对话链模块
│ └── deepseek_chain.py # DeepSeek 对话链
├── llms/ # LLM 模块
│ └── deepseek_lcel.py # DeepSeek LLM 封装
├── memory/ # 记忆模块
│ └── dialogue_memory.py # 对话记忆管理
├── vectorstores/ # 向量存储模块
│ ├── vector_store.py # 向量存储管理
│ └── document_loader.py # 文档加载器
├── controller/ # 控制器模块
│ └── chat_controller.py # 聊天控制器
├── indexs/ # Web界面
│ ├── index.html # 主页面
│ └── static/ # 静态资源
├── docs/ # 文档目录(知识库)
└── examples/ # 示例文档
用户: 计算 2 + 3 * 4
助手: 计算结果: 2 + 3 * 4 = 14
用户: 北京今天天气怎么样?
助手: 城市: 北京
时间: 2024-01-15 14:30:25
天气: 晴天
温度: 18°C
用户: 现在几点了?
助手: 当前时间: 2024-01-15 14:30:25
用户: 什么是人工智能?
助手: [基于上传的文档内容回答]
在 config/settings.py 中可以调整以下参数:
DEFAULT_MAX_TOKENS: 最大输出token数 (默认: 2048)DEFAULT_TEMPERATURE: 模型温度 (默认: 0.5)DEFAULT_MAX_TURNS: 最大对话轮数 (默认: 10)DEFAULT_CHUNK_SIZE: 文档分块大小 (默认: 500)DEFAULT_RETRIEVAL_K: 知识库检索数量 (默认: 2)docs/ 目录中放入文档文件.env 文件中添加:QWEN_API_KEY=your_qwen_api_key_here
QWEN_SECRET_KEY=your_qwen_secret_key_here
tools/ 目录下创建新的工具文件@tool 装饰器定义工具函数tools/__init__.py 中导入新工具main.py 的 UnifiedChatSystem 中添加工具eval() 函数,生产环境建议使用更安全的计算库