# jzjc_chatbot **Repository Path**: teemo/jzjc_chatbot ## Basic Information - **Project Name**: jzjc_chatbot - **Description**: 荆州机场chatbot - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-26 - **Last Updated**: 2025-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chainlit 智能助手应用 这是一个基于Chainlit构建的多功能智能助手应用,集成了多种AI服务,提供以下主要功能: 1. **知识库查询** - 基于阿里云百炼RAG技术的智能知识问答系统 2. **智能问答** - 集成DeepSeek AI的对话式问答助手 3. **工单助手** - 帮助用户通过对话方式创建工单,并通过API将其传递到工单系统 4. **智能运维助手** - 分析故障描述并基于技能和排班进行智能派单 ## 功能特点 ### 知识库查询 - 基于阿里云百炼RAG技术的智能问答 - 支持自然语言查询知识库内容 - 实时响应,准确理解用户意图 - 详细的API调用日志记录 ### 智能问答 - 集成DeepSeek AI的先进对话能力 - 支持多轮对话和上下文理解 - 智能识别用户意图并提供相关建议 - 可在对话中无缝切换到工单创建模式 ### 工单助手 - 通过自然语言对话创建工单 - 自动识别工单优先级和类别 - 与外部工单系统API集成 - 简洁友好的用户界面 ### 智能运维助手 - 通过对话方式分析故障描述 - 自动提取故障类型和地点 - 基于技能和排班进行智能派单 - 内置负载均衡和默认值保障机制 ## 安装 1. 克隆仓库 ```bash git clone cd chainlit_test ``` 2. 安装依赖 ```bash pip install -r requirements.txt ``` 3. 配置环境变量 复制`.env.example`文件为`.env`,并填写相关API配置: ```bash # 工单系统API配置 TICKET_API_URL=https://your-ticket-system-api-url.com/api TICKET_API_KEY=your_api_key_here # 阿里云百炼RAG配置 DASHSCOPE_API_KEY=your_dashscope_api_key ALIYUN_RAG_APP_ID=your_rag_app_id # DeepSeek AI配置 DEEPSEEK_API_KEY=your_deepseek_api_key DEEPSEEK_BASE_URL=https://api.deepseek.com ``` ## 使用方法 ### 主应用(集成所有功能) 1. 启动应用 ```bash chainlit run app.py -w ``` 2. 在浏览器中访问 http://localhost:8000 3. 选择功能模式: - 点击"查询知识库"按钮进入知识库查询模式 - 点击"智能问答"按钮进入AI对话模式 - 点击"创建工单"按钮进入工单创建模式 ### 知识库查询 进入知识库查询模式后,您可以: - "航显屏局部黑屏怎么处理?" - "网络设备故障排查步骤" - "系统维护注意事项" - 输入"退出"返回主菜单 ### 智能问答 进入智能问答模式后,您可以: - 进行自然语言对话 - 询问技术问题和解决方案 - 在对话中提及"创建工单"可自动切换到工单模式 - 输入"退出"返回主菜单 ### 工单助手 进入工单创建模式后,您可以: - "我需要创建一个工单" - "我想报告一个技术问题" - "我需要紧急帮助" ### 智能运维助手(独立应用) 1. 启动应用 ```bash chainlit run schedule_chainlit.py -w ``` 2. 在浏览器中访问 http://localhost:8000 3. 开始与智能运维助手对话,例如: - "航站楼B区的电脑无法开机,请尽快处理" - "候机厅的网络连接不稳定" - "会议室的投影仪显示颜色异常" ## 项目结构 ### 主应用文件 - `app.py`: 主应用文件,集成知识库查询、智能问答、工单创建等功能 - `ticket_api.py`: 工单系统API客户端,用于与工单系统API交互 - `test_api.py`: 工单API测试脚本 ### 智能运维助手(独立应用) - `schedule_chainlit.py`: 智能运维助手主应用文件,包含故障分析和派单逻辑 - `duty_roster.txt`: 工程师值班表 - `engineer_skills.json`: 工程师技能映射 - `test_schedule.py`: 智能运维助手测试脚本 ### 配置文件 - `.env`: 环境变量配置文件 - `.env.example`: 环境变量配置示例 - `requirements.txt`: 项目依赖 - `chainlit.md`: Chainlit应用配置 ### UI和样式 - `public/`: 静态资源目录 - `custom.css`: 自定义样式 - `logo_dark.png` / `logo_light.png`: 应用图标 - `theme.json`: 主题配置 ### 部署和管理 - `setup.sh`: 安装脚本 - `Dockerfile`: Docker容器配置 - `docker-compose.yml`: Docker Compose配置 - `chainlit_manager.sh` / `chainlit_manager.bat`: 应用管理脚本 ## 自定义配置 ### 知识库查询 您可以根据需要修改以下部分: - 在`.env`文件中配置`ALIYUN_RAG_APP_ID`以使用您的知识库 - 调整`handle_knowledge_query`函数中的查询逻辑 - 修改日志记录级别以控制输出详细程度 ### 智能问答 您可以根据需要修改以下部分: - 在`.env`文件中配置`DEEPSEEK_API_KEY`和`DEEPSEEK_BASE_URL` - 调整`handle_smart_qa`函数中的对话参数(如`max_tokens`、`temperature`) - 修改对话历史长度限制 ### 工单助手 您可以根据需要修改以下部分: - `ticket_api.py`: 调整API端点和参数以匹配您的工单系统 - `app.py`: 修改对话流程、模式识别或添加更多功能 - 自定义工单优先级和类别识别规则 ### 智能运维助手 您可以根据需要修改以下部分: - `duty_roster.txt`: 更新工程师值班表 - `engineer_skills.json`: 调整工程师技能映射 - `schedule_chainlit.py`: 修改故障类型识别规则或派单逻辑 ### UI自定义 您可以自定义界面外观: - `public/custom.css`: 修改样式和布局 - `public/theme.json`: 调整主题颜色和字体 - `public/logo_*.png`: 替换应用图标 - `chainlit.md`: 修改欢迎消息和应用描述 ## 技术特性 - **多模式切换**: 支持在知识库查询、智能问答、工单创建之间无缝切换 - **详细日志**: 完整的API调用和错误处理日志记录 - **错误恢复**: 健壮的错误处理机制,确保应用稳定运行 - **会话管理**: 智能的会话状态管理和对话历史维护 - **响应式UI**: 现代化的用户界面,支持深色/浅色主题 ## 注意事项 1. **API密钥安全**: 请确保不要将API密钥提交到版本控制系统 2. **网络连接**: 知识库查询和智能问答功能需要稳定的网络连接 3. **依赖版本**: 建议使用Python 3.8+以确保最佳兼容性 4. **日志文件**: 应用会生成详细的日志文件,请定期清理以节省磁盘空间 ## 外部访问配置 ### 公网服务器部署 如果您需要在公网服务器上部署应用并允许外部访问,我们已经为您配置好了相关设置: 1. **应用配置**: 所有启动脚本已添加 `--host 0.0.0.0` 参数 2. **防火墙配置**: 需要开放应用端口(默认8000) 3. **安全组配置**: 云服务器需要配置安全组规则 详细配置步骤请参考 [部署指南](DEPLOYMENT.md)。 ### 快速配置 ```bash # Ubuntu/Debian 防火墙配置 sudo ufw allow 8000 sudo ufw enable # 启动应用(支持外部访问) ./chainlit_manager.sh start 8000 ``` 启动后可通过以下地址访问: - 本地访问: `http://localhost:8000` - 外部访问: `http://[服务器IP]:8000` ## 故障排除 ### 外部访问问题 - **无法通过IP访问**: 检查防火墙和安全组配置 - **连接被拒绝**: 确认应用监听 `0.0.0.0` 而非 `127.0.0.1` - **端口不通**: 使用 `netstat -tlnp | grep :8000` 检查端口状态 ### 常见问题 1. **知识库查询失败** - 检查`DASHSCOPE_API_KEY`和`ALIYUN_RAG_APP_ID`是否正确配置 - 确认网络连接正常 - 查看日志文件获取详细错误信息 2. **智能问答无响应** - 检查`DEEPSEEK_API_KEY`是否有效 - 确认API配额是否充足 - 检查网络防火墙设置 3. **工单创建失败** - 验证工单系统API配置 - 检查API权限和认证信息 - 确认工单系统服务状态 ## 许可 [MIT](LICENSE)