# AgentDemo **Repository Path**: wallwind/agent-demo ## Basic Information - **Project Name**: AgentDemo - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-28 - **Last Updated**: 2025-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能对话助手 一个基于Go语言开发的智能对话系统,支持时间查询和数学计算功能。 ## 项目特性 - 🤖 **智能对话**: 基于DeepSeek大模型的自然语言处理 - 🌍 **时间查询**: 支持查询全球主要城市的当前时间 - 🧮 **数学计算**: 支持基本四则运算和数学函数 - 💾 **会话存储**: 基于Redis的聊天历史存储 - 🔄 **实时通信**: WebSocket支持实时消息推送 - 🎨 **现代界面**: 响应式Web界面设计 ## 技术架构 ### 后端技术栈 - **Go 1.21+**: 主要开发语言 - **Gin**: Web框架 - **Redis**: 数据存储 - **WebSocket**: 实时通信 - **DeepSeek API**: 大语言模型 ### 前端技术栈 - **HTML5/CSS3**: 页面结构和样式 - **JavaScript ES6+**: 交互逻辑 - **WebSocket**: 实时通信 ### MCP服务器 - **自定义MCP框架**: 基于JSON-RPC 2.0协议 - **工具系统**: 支持时间查询和计算工具 ## 项目结构 ``` demo2/ ├── config/ # 配置管理 │ └── config.go ├── server/ # 服务端代码 │ ├── main.go # 服务入口 │ ├── handlers/ # HTTP处理器 │ │ └── chat.go │ ├── services/ # 业务服务 │ │ ├── chat.go │ │ └── llm.go │ └── storage/ # 数据存储 │ └── redis.go ├── mcpserver/ # MCP服务器 │ ├── main.go # MCP服务入口 │ └── mcp/ # MCP框架 │ └── server.go ├── web/ # 前端页面 │ ├── index.html │ ├── style.css │ └── app.js ├── go.mod # Go模块文件 └── README.md # 项目文档 ``` ## 功能模块说明 ### 1. 配置管理 (config/) - 统一管理服务器、Redis、DeepSeek API等配置 - 支持环境变量配置 ### 2. Web服务器 (server/) - **main.go**: 服务启动入口,路由配置 - **handlers/chat.go**: 处理HTTP请求和WebSocket连接 - **services/chat.go**: 聊天业务逻辑 - **services/llm.go**: DeepSeek API集成 - **storage/redis.go**: Redis数据存储操作 ### 3. MCP服务器 (mcpserver/) - **main.go**: MCP服务器实现,提供时间查询和计算工具 - **mcp/server.go**: MCP协议框架实现 ### 4. 前端界面 (web/) - **index.html**: 主页面结构 - **style.css**: 响应式样式设计 - **app.js**: 交互逻辑和WebSocket通信 ## 支持的功能 ### 时间查询 支持查询以下城市的当前时间: - 亚洲:北京、上海、东京、新加坡、香港、台北、首尔、曼谷、雅加达、马尼拉、吉隆坡、河内、孟买、迪拜 - 欧洲:伦敦、巴黎、莫斯科 - 美洲:纽约、洛杉矶 - 大洋洲:悉尼 ### 数学计算 - 基本四则运算:+、-、*、/ - 数学函数:sqrt()(平方根)、pow()(幂运算) ## 安装和运行 ### 前置要求 - Go 1.21+ - Redis服务器 - DeepSeek API密钥 ### 1. 安装依赖 ```bash cd /Users/colinwang/workspace/project/mcp-go/demo2 go mod tidy ``` ### 2. 启动Redis ```bash redis-server ``` ### 3. 配置环境变量(可选) ```bash export DEEPSEEK_API_KEY="your-api-key" export REDIS_ADDR="localhost:6379" export SERVER_PORT="8080" ``` ### 4. 启动Web服务器 ```bash ./start.sh ``` ### 5. 启动MCP服务器(可选) ```bash ./start-mcp.sh ``` ### 6. 测试MCP服务器功能 ```bash ./test-mcp.sh ``` ### 7. 访问应用 打开浏览器访问:http://localhost:8080 ## API接口 ### REST API - `POST /api/chat` - 发送消息 - `GET /api/chat/:sessionId/history` - 获取聊天历史 - `DELETE /api/chat/:sessionId` - 清除聊天历史 ### WebSocket - `GET /api/ws/:sessionId` - WebSocket连接 ## 使用示例 ### 时间查询示例 - "现在北京时间是几点?" - "纽约现在几点了?" - "东京的当前时间" ### 计算示例 - "计算 15 + 27" - "100 除以 4 等于多少?" - "16的平方根是多少?" - "2的3次方" ## 开发说明 ### 添加新的时区支持 在 `mcpserver/main.go` 的 `timezones` 映射中添加新的城市和对应的时区。 ### 扩展计算功能 在 `mcpserver/main.go` 的 `Calculate` 方法中添加新的数学函数支持。 ### 自定义样式 修改 `web/style.css` 文件来调整界面样式。 ## 注意事项 1. **API密钥安全**: 请妥善保管DeepSeek API密钥,不要提交到版本控制系统 2. **Redis连接**: 确保Redis服务正常运行 3. **端口冲突**: 如果8080端口被占用,请修改配置 4. **CORS设置**: 生产环境请配置适当的CORS策略 ## 故障排除 ### 常见问题 1. **Redis连接失败**: 检查Redis服务是否启动 2. **API调用失败**: 检查DeepSeek API密钥是否正确 3. **WebSocket连接失败**: 检查防火墙设置 4. **页面无法访问**: 检查服务器是否正常启动 ### 日志查看 服务器日志会输出到控制台,包含详细的错误信息和调试信息。 ## 许可证 本项目仅供学习和演示使用。