基于 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() 函数,生产环境建议使用更安全的计算库