docs: 新增 README + 更新 Deploy.md + 整理 .gitignore
- 新增 README.md 完整项目概览(架构、功能、快速开始) - 更新 Deploy.md 修正过时的服务状态和端口信息 - 整理 .gitignore 补充缺失规则并移除无效项 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,106 +1,184 @@
|
||||
# Cyrene 部署指南
|
||||
|
||||
## 环境要求
|
||||
|
||||
- Go 1.21+
|
||||
- Node.js 20+
|
||||
- Docker & Docker Compose
|
||||
|
||||
## 快速启动
|
||||
|
||||
### 1. 启动基础设施
|
||||
基础设施包括 PostgreSQL (pgvector)、Redis、Qdrant (向量数据库)、MinIO (对象存储) 和 NATS (消息队列)。
|
||||
### 1. 环境变量配置
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.dev.db.yml up -d
|
||||
cp backend/.env.example backend/.env
|
||||
# 编辑 backend/.env,至少配置 LLM_API_KEY
|
||||
```
|
||||
|
||||
### 2. 编译并启动后端服务
|
||||
### 2. 启动基础设施
|
||||
|
||||
```bash
|
||||
# AI-Core (LLM 推理服务)
|
||||
docker compose -f docker-compose.dev.db.yml up -d
|
||||
```
|
||||
|
||||
此命令启动以下服务:
|
||||
|
||||
| 服务 | 端口 | 用途 |
|
||||
|------|------|------|
|
||||
| PostgreSQL + pgvector | 5432 | 关系数据库与向量检索 |
|
||||
| Redis | 6379 | 缓存与会话 |
|
||||
| Qdrant | 6333 (HTTP) / 6334 (gRPC) | 向量数据库 |
|
||||
| MinIO | 9000 (API) / 9001 (Console) | 对象存储 |
|
||||
| NATS | 4222 / 8222 (Monitoring) | 消息队列 |
|
||||
|
||||
### 3. 启动后端服务
|
||||
|
||||
推荐使用 DevTools 一键管理:
|
||||
|
||||
```bash
|
||||
./devtools.sh start all # 编译并顺序启动所有后端 + 前端
|
||||
./devtools.sh status # 查看各服务运行状态
|
||||
./devtools.sh restart gateway # 单独重启某个服务
|
||||
```
|
||||
|
||||
或手动逐服务启动(每个在新终端中):
|
||||
|
||||
```bash
|
||||
# 1) 记忆服务
|
||||
cd backend/memory-service && go build -o main ./cmd/main.go && ./main
|
||||
|
||||
# 2) 工具引擎
|
||||
cd backend/tool-engine && go build -o main ./cmd/main.go && ./main
|
||||
|
||||
# 3) IoT 调试服务 (模拟智能家居设备)
|
||||
cd backend/iot-debug-service && go build -o main ./cmd/main.go && ./main
|
||||
|
||||
# 4) 语音服务 (可选,需安装 whisper.cpp)
|
||||
cd backend/voice-service && go build -o main ./cmd/main.go && ./main
|
||||
|
||||
# 5) AI-Core (LLM 推理与对话编排)
|
||||
cd backend/ai-core && go build -o main ./cmd/main.go && ./main
|
||||
|
||||
# Gateway (API 网关)
|
||||
# 6) Gateway (API 网关,最后启动)
|
||||
cd backend/gateway && go build -o main ./cmd/main.go && ./main
|
||||
```
|
||||
|
||||
### 3. 安装依赖并启动前端
|
||||
### 4. 启动前端
|
||||
|
||||
```bash
|
||||
cd frontend/web && npm install && npm run dev
|
||||
```
|
||||
|
||||
### 4. 启动 DevTools (可选)
|
||||
访问 `http://localhost:5173`
|
||||
|
||||
### 5. 启动 DevTools 管理面板 (可选)
|
||||
|
||||
```bash
|
||||
cd devtools && npm install && npm start
|
||||
```
|
||||
|
||||
访问 `http://localhost:9090`
|
||||
|
||||
## 使用 Docker Compose 完整启动
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.dev.yml up -d
|
||||
```
|
||||
|
||||
此命令将启动所有基础设施服务以及 AI-Core 和 Gateway 后端服务。
|
||||
|
||||
## 生产环境部署
|
||||
### 开发环境
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.yml up -d
|
||||
docker compose -f docker-compose.dev.yml up -d
|
||||
```
|
||||
|
||||
生产环境额外包含 Caddy 反向代理(自动 TLS)。
|
||||
启动所有基础设施 + 6 个后端服务(AI-Core、Gateway、Memory Service、Tool Engine、Voice Service、IoT Debug Service),前端仍需本地启动。
|
||||
|
||||
## 环境变量
|
||||
### 生产环境
|
||||
|
||||
参考 `backend/.env.example` 配置以下变量:
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
| 变量 | 说明 |
|
||||
|------|------|
|
||||
| `ENV` | 运行环境 (`development` / `production`) |
|
||||
| `LLM_API_URL` | LLM API 地址 |
|
||||
| `LLM_API_KEY` | LLM API 密钥 |
|
||||
| `LLM_MODEL` | 主模型 (默认 `gpt-4o`) |
|
||||
| `LLM_FALLBACK_MODEL` | 回退模型 (默认 `gpt-4o-mini`) |
|
||||
| `POSTGRES_HOST` / `POSTGRES_PORT` / `POSTGRES_USER` / `POSTGRES_PASSWORD` / `POSTGRES_DB` | PostgreSQL 连接信息 |
|
||||
| `REDIS_HOST` / `REDIS_PORT` / `REDIS_PASSWORD` | Redis 连接信息 |
|
||||
| `JWT_SECRET` | JWT 签名密钥 |
|
||||
| `JWT_EXPIRY_HOURS` | JWT 过期时间 (默认 720 小时) |
|
||||
| `MINIO_ENDPOINT` / `MINIO_ACCESS_KEY` / `MINIO_SECRET_KEY` / `MINIO_BUCKET` | MinIO 对象存储配置 |
|
||||
| `VECTOR_DB_URL` / `VECTOR_DB_COLLECTION` | Qdrant 向量数据库配置 |
|
||||
| `ADMIN_USERNAME` / `ADMIN_PASSWORD` | 管理员账户 (开发阶段) |
|
||||
| `TTS_PROVIDER` / `TTS_VOICE` | TTS 语音合成配置 |
|
||||
| `ASR_PROVIDER` / `ASR_MODEL` | ASR 语音识别配置 |
|
||||
额外包含 Caddy 反向代理(自动 TLS),前端静态文件由 Gateway 直接托管。
|
||||
|
||||
## 项目结构
|
||||
## 项目架构
|
||||
|
||||
```
|
||||
Cyrene/
|
||||
├── frontend/web/ # React 前端 (Vite + TypeScript)
|
||||
├── backend/ai-core/ # AI 推理核心 (LLM 对话、记忆、人设)
|
||||
├── backend/gateway/ # API 网关 (路由、鉴权、WebSocket)
|
||||
├── backend/memory-service/ # 记忆服务 (规划中)
|
||||
├── backend/tool-engine/ # 工具引擎 (规划中)
|
||||
├── backend/voice-service/ # 语音服务 (规划中)
|
||||
├── backend/proto/ # Protobuf 定义 (规划中)
|
||||
├── devtools/ # 管理面板
|
||||
└── scripts/ # 辅助脚本
|
||||
├── frontend/web/ # React 前端 (Vite + TypeScript + Tailwind + Zustand)
|
||||
├── backend/
|
||||
│ ├── ai-core/ # AI 推理核心 (LLM 对话编排、人设注入、工具调用、后台思考)
|
||||
│ ├── gateway/ # API 网关 (JWT 认证、路由、限流、WebSocket Hub)
|
||||
│ ├── memory-service/ # 记忆服务 (CRUD、语义检索、LLM 提取)
|
||||
│ ├── tool-engine/ # 工具引擎 (12+ 内置工具:计算器、HTTP、IoT、文件等)
|
||||
│ ├── voice-service/ # 语音服务 (Edge-TTS + Whisper STT)
|
||||
│ ├── iot-debug-service/ # IoT 调试服务 (8 个模拟设备:灯/空调/窗帘/传感器/门锁)
|
||||
│ └── proto/ # Protobuf 定义 (预留)
|
||||
├── devtools/ # 开发管理面板 (Express)
|
||||
├── scripts/ # 辅助脚本
|
||||
├── test/ # E2E 测试 (CDP/Chromium)
|
||||
├── docs/ # 文档与调试记录
|
||||
├── debug/ # 诊断脚本
|
||||
├── docker-compose.dev.db.yml # 开发基础设施 (仅 DB)
|
||||
├── docker-compose.dev.yml # 开发环境 (DB + 后端服务)
|
||||
├── docker-compose.yml # 生产环境 (DB + 后端 + Caddy)
|
||||
└── Caddyfile # 反向代理配置
|
||||
```
|
||||
|
||||
## 端口
|
||||
## 服务端口
|
||||
|
||||
| 端口 | 服务 |
|
||||
|------|------|
|
||||
| 5173 | 前端开发服务器 (Vite) |
|
||||
| 5173 | 前端 (Vite) |
|
||||
| 8080 | Gateway API |
|
||||
| 8081 | AI-Core API |
|
||||
| 3001 | DevTools 管理面板 |
|
||||
| 8083 | IoT 调试服务 |
|
||||
| 8091 | 记忆服务 |
|
||||
| 8092 | 工具引擎 |
|
||||
| 8093 | 语音服务 |
|
||||
| 9090 | DevTools 管理面板 |
|
||||
| 5432 | PostgreSQL |
|
||||
| 6379 | Redis |
|
||||
| 6333 | Qdrant HTTP API |
|
||||
| 6334 | Qdrant gRPC API |
|
||||
| 9000 | MinIO S3 API |
|
||||
| 6333 | Qdrant HTTP |
|
||||
| 6334 | Qdrant gRPC |
|
||||
| 9000 | MinIO S3 |
|
||||
| 9001 | MinIO Console |
|
||||
| 4222 | NATS |
|
||||
| 8222 | NATS HTTP Monitoring |
|
||||
| 8222 | NATS Monitoring |
|
||||
|
||||
## 环境变量
|
||||
|
||||
参考 `backend/.env.example`:
|
||||
|
||||
| 变量 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| `ENV` | 运行环境 | `development` |
|
||||
| `LLM_API_URL` | LLM API 地址 | `https://api.openai.com/v1` |
|
||||
| `LLM_API_KEY` | LLM API 密钥 | — |
|
||||
| `LLM_MODEL` | 主模型 | `gpt-4o` |
|
||||
| `LLM_FALLBACK_MODEL` | 回退模型 | `gpt-4o-mini` |
|
||||
| `POSTGRES_HOST` | PostgreSQL 主机 | `localhost` |
|
||||
| `POSTGRES_PORT` | PostgreSQL 端口 | `5432` |
|
||||
| `POSTGRES_USER` | PostgreSQL 用户 | `cyrene` |
|
||||
| `POSTGRES_PASSWORD` | PostgreSQL 密码 | — |
|
||||
| `POSTGRES_DB` | PostgreSQL 库名 | `cyrene_ai` |
|
||||
| `REDIS_HOST` | Redis 主机 | `localhost` |
|
||||
| `REDIS_PORT` | Redis 端口 | `6379` |
|
||||
| `JWT_SECRET` | JWT 签名密钥 | — |
|
||||
| `JWT_EXPIRY_HOURS` | JWT 过期时间 | `720` |
|
||||
| `MINIO_ENDPOINT` | MinIO 地址 | `localhost:9000` |
|
||||
| `MINIO_ACCESS_KEY` | MinIO Access Key | — |
|
||||
| `MINIO_SECRET_KEY` | MinIO Secret Key | — |
|
||||
| `VECTOR_DB_URL` | Qdrant 地址 | `http://localhost:6333` |
|
||||
| `ADMIN_USERNAME` | 管理员账户 | `admin` |
|
||||
| `ADMIN_PASSWORD` | 管理员密码 | — |
|
||||
| `ADMIN_NICKNAME` | 昔涟对管理员的称呼 | `管理员` |
|
||||
| `REGISTRATION_ENABLED` | 开放注册 | `true` |
|
||||
| `ENABLE_BACKGROUND_THINKING` | 后台思考 | `true` |
|
||||
| `INTERNAL_SERVICE_TOKEN` | 内部服务通信 Token | — |
|
||||
| `WEBHOOK_API_KEY` | Webhook API Key | — |
|
||||
| `IOT_SERVICE_URL` | IoT 服务地址 | `http://localhost:8083` |
|
||||
| `TTS_PROVIDER` | TTS 引擎 | `edge-tts` |
|
||||
| `TTS_VOICE` | TTS 语音 | `zh-CN-XiaoxiaoNeural` |
|
||||
| `ASR_PROVIDER` | ASR 引擎 | `faster-whisper` |
|
||||
| `ASR_MODEL` | ASR 模型 | `medium` |
|
||||
|
||||
## 平台迁移
|
||||
|
||||
从 Linux 迁移到 Windows 的详细指南见 [Migration.md](Migration.md)。
|
||||
|
||||
Reference in New Issue
Block a user