# 基于Go仿星野App编写的AI对话系统 **Repository Path**: nordada/Aphrodite ## Basic Information - **Project Name**: 基于Go仿星野App编写的AI对话系统 - **Description**: 基于Go语言,仿星野App开发的AI对话系统,实现智能交互与多场景应用,为开发者提供高效、灵活的AI对话解决方案。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-30 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Aphrodite - 智能对话服务平台 ![输入图片说明](qrcode_for_gh_861ecb234cd0_430.jpg)
![Aphrodite Logo](https://img.shields.io/badge/Aphrodite-智能对话平台-blue?style=for-the-badge&logo=go) ![Go](https://img.shields.io/badge/Go-1.23+-00ADD8?style=for-the-badge&logo=go) ![Docker](https://img.shields.io/badge/Docker-容器化-2496ED?style=for-the-badge&logo=docker) ![Microservices](https://img.shields.io/badge/架构-微服务-6c5ce7?style=for-the-badge) **Aphrodite** 是一个基于 Go-Zero 微服务框架构建的智能对话服务平台,提供多模态对话、智能体管理、设备认证等核心功能。 [项目介绍](#项目介绍) • [功能特性](#功能特性) • [快速开始](#快速开始) • [部署指南](#部署指南) • [API文档](#api文档)
## 📋 目录 - [项目介绍](#项目介绍) - [功能特性](#功能特性) - [系统架构](#系统架构) - [快速开始](#快速开始) - [部署指南](#部署指南) - [API文档](#api文档) - [开发指南](#开发指南) - [贡献指南](#贡献指南) - [许可证](#许可证) ## 🚀 项目介绍 Aphrodite 是一个现代化的智能对话服务平台,旨在为企业提供可扩展的AI对话解决方案。项目采用微服务架构,支持多租户、设备管理、支付系统等企业级功能。 ### 核心能力 - 🤖 **智能对话** - 支持多种AI模型的多模态对话 - 🔧 **智能体管理** - 自定义智能体配置和系统提示词 - 📱 **设备认证** - 安全的设备注册和认证机制 - 💳 **支付系统** - 完整的订单和支付流程 - 📊 **监控告警** - 基于Prometheus的监控体系 ## ✨ 功能特性 ### 核心服务模块 | 服务模块 | 端口 | 功能描述 | |---------|------|----------| | **auth-api** | 8006 | 用户认证和权限管理 | | **agent-api** | 8001 | 智能体管理和配置 | | **chat-api** | 8003 | 智能对话服务 | | **message-api** | 8002 | 消息存储和推送 | | **device-api** | 8004 | 设备注册和认证 | | **order-rpc** | 9005 | 订单处理服务 | | **payment-rpc** | 9025 | 支付处理服务 | | **billing-rpc** | 9015 | 计费服务 | ### 技术特性 - 🏗️ **微服务架构** - 基于 Go-Zero 框架构建 - 🔒 **安全认证** - JWT + 设备HMAC认证 - 📈 **监控告警** - Prometheus + Grafana 监控 - 🐳 **容器化部署** - Docker + Docker Compose - 🔄 **CI/CD** - GitHub Actions 自动化部署 - 🗄️ **数据库支持** - MySQL + Redis + ETCD ## 🏗️ 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端应用 │ │ Nginx网关 │ │ 认证服务 │ │ (Web/App) │◄──►│ (Load Balancer)│◄──►│ (auth-api) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 对话服务 │ │ 消息服务 │ │ 设备服务 │ │ (chat-api) │ │ (message-api) │ │ (device-api) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ RPC服务层 │ │ 存储层 │ │ 监控层 │ │ (各种rpc服务) │ │ (MySQL/Redis) │ │ (Prometheus) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ## 🚀 快速开始 ### 环境要求 - Docker 20.10+ - Docker Compose 2.0+ - Git - 至少 4GB 可用内存 ### 一键启动开发环境 ```bash # 克隆项目 git clone https://github.com/your-org/aphrodite.git cd aphrodite # 复制环境配置文件 cp .env.example .env # 编辑环境变量(根据需要修改) vi .env # 启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps ``` ### 验证部署 访问以下服务确认部署成功: - **API网关**: http://localhost:8080 - **服务健康检查**: http://localhost:8080/health - **Prometheus监控**: http://localhost:9090 ## 📚 部署指南 ### 开发环境部署 #### 1. 环境准备 ```bash # 确保Docker服务运行 sudo systemctl start docker # 检查Docker版本 docker --version docker-compose --version ``` #### 2. 配置环境变量 编辑 `.env` 文件,配置必要的环境变量: ```bash # 时区配置 TZ=Asia/Shanghai # MySQL配置 MYSQL_USERNAME=root MYSQL_PASSWORD=123456 MYSQL_MANAGE_CONNECT_HOST=mysql MYSQL_MANAGE_CONNECT_PORT=3306 # Redis配置 REDIS_HOST=redis REDIS_PORT=6379 # API密钥配置 OPENAI_API_KEY=your_openai_api_key DASHSCOPE_API_KEY=your_dashscope_api_key DEVICE_SALT=random_device_salt_here # 认证配置 AUTH_SECRET=fake-secret-key-1234567890 ``` #### 3. 启动服务 ```bash # 构建并启动所有服务 docker-compose up -d --build # 查看服务日志 docker-compose logs -f # 检查服务健康状态 docker-compose ps ``` ### 生产环境部署 #### 1. 使用GitHub Actions自动化部署 项目配置了完整的CI/CD流水线: 1. **构建镜像** - 自动构建Docker镜像并推送到私有仓库 2. **部署服务** - 通过SSH自动部署到生产服务器 3. **健康检查** - 自动验证服务状态 #### 2. 手动部署到生产环境 ```bash # 克隆代码到生产服务器 git clone https://github.com/your-org/aphrodite.git cd aphrodite # 使用生产环境配置 cp .env.prod .env # 启动生产环境服务 docker-compose -f docker-compose.prod.yml up -d # 设置服务资源限制(根据服务器配置调整) docker-compose -f docker-compose.prod.yml up -d --scale chat-api=2 --scale chat-rpc=2 ``` #### 3. 服务器资源配置建议 对于不同规模的部署,建议的资源配置: | 服务器规格 | chat-api | chat-rpc | 总内存 | 总CPU | |-----------|----------|----------|--------|-------| | 2核4G | 1G内存, 1核 | 1G内存, 1核 | 2GB | 2核 | | 4核8G | 2G内存, 2核 | 2G内存, 2核 | 4GB | 4核 | | 8核16G | 4G内存, 4核 | 4G内存, 4核 | 8GB | 8核 | ### 服务配置说明 #### 资源限制配置 在 `docker-compose.yml` 中可以为每个服务配置资源限制: ```yaml chat-api: # 内存限制 mem_limit: 2G mem_reservation: 1G # CPU限制 cpus: 1.0 ``` #### 网络配置 项目使用自定义网络确保服务间通信安全: ```yaml networks: backend: driver: bridge ipam: config: - subnet: 172.20.0.0/16 ``` ## 📖 API文档 ### 主要API端点 #### 认证相关 - `POST /auth/login` - 用户登录 - `POST /auth/register` - 用户注册 - `GET /auth/verify` - Token验证 #### 对话相关 - `POST /chat/completions` - 创建对话 - `GET /chat/sessions` - 获取会话列表 - `DELETE /chat/sessions/{id}` - 删除会话 #### 智能体相关 - `GET /agent/list` - 获取智能体列表 - `POST /agent/create` - 创建智能体 - `PUT /agent/{id}` - 更新智能体 #### 设备相关 - `POST /device/register` - 设备注册 - `GET /device/list` - 设备列表 - `DELETE /device/{id}` - 删除设备 ### API测试 项目提供了完整的API测试文件: ```bash # 使用REST Client测试API code/Aphrodite-Server/api.rest # 或使用curl测试 curl -X GET "http://localhost:8080/health" \ -H "Content-Type: application/json" ``` ## 🔧 开发指南 ### 项目结构 ``` Aphrodite-Server/ ├── api/ # API定义文件 ├── app/ # HTTP服务处理层 ├── service/ # gRPC服务处理层 ├── proto/ # Protocol Buffer定义 ├── db/ # 数据库脚本 ├── common/ # 公共工具库 └── types/ # 数据类型定义 ``` ### 开发环境搭建 #### 1. 本地开发 ```bash # 安装Go依赖 go mod tidy # 生成代码 go generate ./... # 运行测试 go test ./... ``` #### 2. 代码生成 项目使用Go-Zero的代码生成工具: ```bash # 生成API代码 ./gen_api.sh # 生成gRPC代码 ./gen_rpc.sh # 生成模型代码 ./gen_model.sh ``` ### 数据库迁移 ```bash # 创建数据库 ./create_db.sh # 执行迁移脚本 mysql -u root -p < db/migrations/*.sql ``` ## 🤝 贡献指南 我们欢迎任何形式的贡献!请阅读以下指南: ### 提交Issue - 使用明确的标题描述问题 - 提供详细的重现步骤 - 包含相关日志和错误信息 ### 提交Pull Request 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启Pull Request ### 代码规范 - 遵循Go语言代码规范 - 提交前运行 `go fmt` 和 `go vet` - 添加必要的单元测试 - 更新相关文档 ## 📊 监控和日志 ### Prometheus监控 项目集成了Prometheus用于监控: - 服务健康状态 - 请求响应时间 - 错误率统计 - 资源使用情况 ### 日志配置 日志输出到标准输出,可通过Docker日志查看: ```bash # 查看特定服务日志 docker-compose logs -f chat-api # 查看所有服务日志 docker-compose logs -f ``` ## 🔒 安全考虑 ### 环境安全 - 使用 `.env` 文件管理敏感信息 - 生产环境使用 `.env.prod` 配置 - 定期更新API密钥和认证信息 ### 网络安全 - 服务间使用内部网络通信 - 对外暴露的端口有限制 - 使用HTTPS加密传输 ## 🐛 故障排除 ### 常见问题 #### 1. 服务启动失败 ```bash # 检查端口冲突 netstat -tulpn | grep :8080 # 检查Docker服务状态 sudo systemctl status docker ``` #### 2. 数据库连接问题 ```bash # 检查MySQL服务 docker-compose logs mysql # 检查网络连接 docker network ls docker network inspect aphrodite_backend ``` #### 3. 内存不足 调整服务资源限制: ```yaml # 在docker-compose.yml中调整 mem_limit: 1G mem_reservation: 512M cpus: 0.5 ``` ### 获取帮助 - 查看项目Wiki获取详细文档 - 提交Issue描述遇到的问题 - 联系开发团队获取支持 ## 📄 许可证 本项目采用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 感谢以下开源项目的支持: - [Go-Zero](https://go-zero.dev/) - 微服务框架 - [Docker](https://www.docker.com/) - 容器化平台 - [Prometheus](https://prometheus.io/) - 监控系统 - [MySQL](https://www.mysql.com/) - 数据库 - [Redis](https://redis.io/) - 缓存系统 ---
**Aphrodite** - 让智能对话更简单 [⬆ 返回顶部](#aphrodite---智能对话服务平台)