# 基于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 - 智能对话服务平台





**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---智能对话服务平台)