# 智能客服 **Repository Path**: lhdxhl/intelligent ## Basic Information - **Project Name**: 智能客服 - **Description**: 智能客服主要使用Pyhton开发,使用langchain集成deepseek、GLM等大模型平台开发 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-12 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能客服系统 v2.0.0 这是一个支持多种大语言模型(GLM、DeepSeek)的增强版智能客服系统,集成了四大核心能力:多轮上下文对话、企业知识库问答、可扩展工具调用、私有化部署支持。 ## 核心能力 ✅ **多轮上下文对话** - 智能记住对话历史,保持上下文连贯性 ✅ **企业知识库问答** - 基于 RAG 架构,从企业知识库中精准检索信息 ✅ **可扩展 Agent/工具调用** - 灵活的 Agent 框架,支持 7 种内置工具和自定义工具扩展 ✅ **私有化部署** - 完全自主可控,支持本地部署,数据安全不出企业网络 ## 功能特性 - ✅ 支持智谱AI GLM-4 大语言模型 - ✅ 支持 DeepSeek 大语言模型 - ✅ 支持多轮对话,自动记录上下文 - ✅ 命令行交互界面 - ✅ 统一 Web 界面(推荐) - ✅ 对话历史管理(查看、清空) - ✅ **企业知识库 RAG 检索** 🆕 - ✅ **PostgreSQL 数据库存储** 🆕 - ✅ **本地文件上传到知识库** 🆕 - ✅ 7 种内置工具(天气、订单、价格计算等) - ✅ 友好的用户体验和错误处理 - ✅ 可配置的模型参数 - ✅ 统一启动脚本,一键启动所有功能 ## 技术栈 - **后端框架**: Python - **AI 模型**: - 智谱AI GLM-4 - DeepSeek - **Web 框架**: Flask - **数据库**: PostgreSQL(知识库存储)🆕 - **环境配置**: python-dotenv - **向量嵌入**: sentence-transformers ## 项目结构 ``` . ├── enhanced_customer_service.py # 增强版客服系统(集成所有核心能力) ├── knowledge_base_rag.py # RAG 知识库模块(ChromaDB 版) ├── knowledge_db.py # PostgreSQL 知识库模块 🆕 ├── agent_system.py # Agent 和工具调用系统 ├── web_service.py # Web 服务接口(RESTful API) ├── start.py # 统一启动脚本 ⭐ ├── init_db.py # 数据库初始化脚本 🆕 ├── customer_service.py # GLM 版命令行客服系统(旧版) ├── web_customer_service.py # GLM 版 Web 客服系统(旧版) ├── deepseek_customer_service.py # DeepSeek 版命令行客服系统(旧版) ├── deepseek_web_customer_service.py # DeepSeek 版 Web 客服系统(旧版) ├── requirements.txt # Python 依赖 ├── .env.example # 环境变量模板 ├── .gitignore # Git 忽略文件 ├── README.md # 项目说明文档 ├── README_CORE_CAPABILITIES.md # 核心能力详细文档 ├── DEPLOYMENT_GUIDE.md # 部署指南 └── templates/ ├── index.html # Web 界面模板(旧版) └── unified_with_kb.html # 统一 Web 界面(带知识库管理)🆕 ``` ## 快速开始 ### 前置要求 在启动系统之前,需要准备以下环境: 1. **AI 模型 API 密钥**(任选其一): - DeepSeek: [https://platform.deepseek.com/](https://platform.deepseek.com/) - GLM-4: [https://open.bigmodel.cn/](https://open.bigmodel.cn/) 2. **PostgreSQL 数据库**(用于知识库存储): - 安装 PostgreSQL 12 或更高版本 - 创建数据库用户和数据库 - 或使用 Docker 快速启动(见下方) ### 方式一:使用统一启动脚本(推荐)⭐ ```bash # 1. 安装依赖 pip install -r requirements.txt # 2. 配置环境变量 cp .env.example .env # 编辑 .env 文件,填入 API 密钥和数据库连接字符串 # 3. 初始化数据库(可选) python init_db.py # 4. 启动系统 python start.py # 5. 选择 1 - 启动 Web 服务 # 然后在浏览器中访问: http://localhost:5000/ui ``` ### PostgreSQL 快速启动(使用 Docker) 如果没有本地 PostgreSQL,可以使用 Docker 快速启动: ```bash # 1. 启动 PostgreSQL 容器 docker run -d \ --name intelligent-postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DB=intelligent_kb \ -p 5432:5432 \ postgres:15 # 2. 更新 .env 中的 DATABASE_URL # DATABASE_URL=postgresql://postgres:postgres@localhost:5432/intelligent_kb # 3. 运行数据库初始化 python init_db.py # 4. 启动系统 python start.py ``` ### 启动菜单 启动后,你将看到一个交互式菜单: ``` 请选择启动模式: 1. 启动 Web 服务(推荐)- 统一 Web 界面,集成所有功能 2. 启动命令行对话模式 - 交互式命令行界面 3. 演示知识库功能 - 测试 RAG 检索系统 4. 演示 Agent 系统 - 测试工具调用功能 5. 查看 API 文档 - 显示 RESTful API 使用说明 6. 查看部署指南 - 显示部署相关说明 0. 退出 ``` ### 方式二:命令行参数启动 ```bash # 启动 Web 服务 python start.py --mode web # 启动命令行模式 python start.py --mode cli # 演示知识库 python start.py --mode kb # 演示 Agent 系统 python start.py --mode agent ``` ### 环境变量配置 ```env # 模型选择(选择其中一个) AI_PROVIDER=deepseek # 或 zhipuai # GLM 模型配置 ZHIPUAI_API_KEY= ZHIPUAI_MODEL=glm-4 # 模型名称 # DeepSeek 模型配置 DEEPSEEK_API_KEY= DEEPSEEK_MODEL=deepseek-chat # 模型名称 # 通用配置 TEMPERATURE=0.7 # 温度参数 (0-1) MAX_TOKENS=2000 # 最大生成 token 数 # Web 服务配置 FLASK_HOST=0.0.0.0 FLASK_PORT=5000 FLASK_DEBUG=False # PostgreSQL 数据库配置 🆕 # 格式: postgresql://用户名:密码@主机:端口/数据库名 DATABASE_URL=postgresql://postgres:password@localhost:5432/intelligent_kb ``` ## 使用方法 ### 统一 Web 界面(推荐)⭐ **重要提示** 🚀: - 首次启动时,系统会自动预加载知识库模型(sentence-transformers),可能需要 1-3 分钟 - 启动完成后,访问网页将非常快速,无需等待加载时间 - 模型文件会缓存到本地,后续启动会更快 访问 http://localhost:5000/ui 体验完整的智能客服系统: **主要功能**: - 💬 实时对话交互 - 📚 **企业知识库问答** 🆕 - 🔧 工具调用(天气、订单、价格等) - 📝 对话历史管理 - 🎨 现代化 UI 设计 - 📤 **本地文件上传** 🆕 - 🔍 **知识库检索** 🆕 **知识库管理**: - 上传文件(TXT、MD、PDF、DOC、DOCX) - 添加文本文档 - 搜索知识库(支持分类筛选) - 查看所有文档 - 删除文档 - 查看知识库统计信息 ### RESTful API 服务启动后,可使用以下 API 端点: **基础端点**: ```bash # 健康检查 curl http://localhost:5000/health ``` **聊天相关**: ```bash # 发送消息 curl -X POST http://localhost:5000/chat \ -H "Content-Type: application/json" \ -d '{"message": "你好"}' # 清空历史 curl -X POST http://localhost:5000/clear # 获取历史 curl http://localhost:5000/history # 获取会话信息 curl http://localhost:5000/info ``` **知识库管理** 🆕: ```bash # 搜索知识库 curl -X POST http://localhost:5000/knowledge/search \ -H "Content-Type: application/json" \ -d '{"query": "产品价格", "top_k": 5}' # 获取文档列表 curl http://localhost:5000/knowledge/documents # 添加文档(文本) curl -X POST http://localhost:5000/knowledge/documents \ -H "Content-Type: application/json" \ -d '{"title": "文档标题", "content": "文档内容", "category": "general"}' # 上传文件 curl -X POST http://localhost:5000/knowledge/upload \ -F "file=@document.txt" \ -F "title=文档标题" \ -F "category=general" # 获取统计信息 curl http://localhost:5000/knowledge/stats # 获取分类列表 curl http://localhost:5000/knowledge/categories ``` **工具和会话**: ```bash # 获取工具列表 curl http://localhost:5000/tools ``` 详细的 API 文档请查看 `DEPLOYMENT_GUIDE.md` ### 命令行对话模式 ```bash python start.py # 选择 2 - 启动命令行对话模式 ``` **交互命令**: - 直接输入您的问题进行对话 - 输入 `clear` 清空对话历史 - 输入 `history` 查看对话历史 - 输入 `info` 查看会话信息 - 输入 `quit` 或 `exit` 退出程序 ### 数据库初始化 🆕 系统提供了两种数据库初始化脚本: **方式一:交互式初始化(推荐用于首次使用)** ```bash python init_db.py ``` 该脚本会: 1. 检查 PostgreSQL 连接 2. 创建数据库(如果不存在) 3. 创建数据表 4. 询问是否添加示例文档 **方式二:自动初始化(推荐用于脚本或 CI/CD)** ```bash python init_db_auto.py ``` 该脚本会自动执行所有步骤,无需交互: 1. 检查 PostgreSQL 连接 2. 创建数据库(如果不存在) 3. 创建数据表 4. 自动添加示例文档 5. 显示统计信息 ### 旧版文件(已弃用) 以下文件为旧版本,已集成到增强版中,不推荐使用: ```bash python customer_service.py # GLM 命令行(旧版) python web_customer_service.py # GLM Web(旧版) python deepseek_customer_service.py # DeepSeek 命令行(旧版) python deepseek_web_customer_service.py # DeepSeek Web(旧版) ``` 建议使用 `python start.py` 统一启动脚本。 ## 数据库架构 🆕 ### knowledge_documents 表 | 字段名 | 类型 | 说明 | |---------|------|------| | id | INTEGER (主键) | 文档 ID | | title | VARCHAR(500) | 文档标题 | | content | TEXT | 文档内容 | | category | VARCHAR(100) | 文档分类 | | file_name | VARCHAR(500) | 原始文件名 | | embedding | TEXT | 向量嵌入(逗号分隔)| | created_at | DATETIME | 创建时间 | | updated_at | DATETIME | 更新时间 | ### 支持的文件格式 🆕 - **文本文件**: .txt, .md - **文档文件**: .doc, .docx - **PDF 文件**: .pdf 最大文件大小: 16 MB ## 常见问题 ### Q: 如何获取智谱AI的API密钥? A: 访问 [智谱AI开放平台](https://open.bigmodel.cn/),注册账号后即可在控制台获取 API 密钥。 ### Q: 如何获取 DeepSeek 的 API 密钥? A: 访问 [DeepSeek 开放平台](https://platform.deepseek.com/),注册账号后即可获取 API 密钥。 ### Q: 如何配置 PostgreSQL 数据库? 🆕 A: 1. 安装 PostgreSQL 12+ 2. 创建数据库和用户 3. 更新 .env 文件中的 DATABASE_URL 4. 运行 `python init_db.py` 初始化数据库 或使用 Docker 快速启动: ```bash docker run -d --name intelligent-postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DB=intelligent_kb \ -p 5432:5432 postgres:15 ``` ### Q: 为什么回复很慢? A: 这可能是因为网络延迟或 API 服务器负载较高。可以尝试: 1. 检查网络连接 2. 使用更快的模型 3. 减少 `MAX_TOKENS` 值 ### Q: 知识库如何工作? 🆕 A: 1. 文档上传到 PostgreSQL 数据库 2. 使用 sentence-transformers 生成向量嵌入 3. 基于余弦相似度进行语义检索 4. 返回最相关的文档内容 ### Q: 如何部署到生产环境? A: 建议使用生产级 Web 服务器(如 Gunicorn + Nginx): ```bash pip install gunicorn gunicorn -w 4 -b 0.0.0.0:5000 web_service:app ``` 详见 `DEPLOYMENT_GUIDE.md` 获取完整的部署指南。 ### Q: 支持哪些模型? #### GLM 模型 - glm-4(最新模型) - glm-3-turbo - glm-4-flash - glm-4-air #### DeepSeek 模型 - deepseek-chat - deepseek-coder ## 扩展开发 ### 添加自定义知识库 🆕 ```python from knowledge_db import get_knowledge_base # 获取知识库实例 kb = get_knowledge_base() # 添加文档 doc_id = kb.add_document( title="我的文档", content="文档内容", category="custom" ) # 搜索文档 results = kb.search("搜索关键词", top_k=5) ``` ### 添加自定义工具 ```python from agent_system import Tool # 创建自定义工具 def custom_function(param): # 自定义逻辑 return "处理结果" custom_tool = Tool( name="custom_tool", description="自定义工具描述", function=custom_function, parameters={ "type": "object", "properties": { "param": { "type": "string", "description": "参数描述" } }, "required": ["param"] } ) # 注册工具 agent_manager.register_tool(custom_tool) ``` ### 添加语音输入/输出 可以集成语音识别和语音合成库实现语音交互。 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 联系方式 如有问题或建议,请提交 Issue。 ## 致谢 - [智谱AI](https://open.bigmodel.cn/) - 提供 GLM 大语言模型服务 - [DeepSeek](https://www.deepseek.com/) - 提供 DeepSeek 大语言模型服务 - [Flask](https://flask.palletsprojects.com/) - 轻量级 Web 框架 - [OpenAI](https://openai.com/) - 提供兼容的 API 格式 - [PostgreSQL](https://www.postgresql.org/) - 开源数据库系统 - [sentence-transformers](https://www.sbert.net/) - 语义向量嵌入模型