Files
Cyrene_v2/README.md
T
Aska b69b74435a docs: add comprehensive README and update project structure
- Replace placeholder README with full project overview
- All DevDocs modules completed (7 backend + 4 cross-cutting)
- Development constraints document added
2026-08-09 20:21:54 +08:00

134 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Cyrene v2 — 昔涟
基于 LLM 的开源智能体平台。多人格对话、IoT 操控、长期记忆、语音交互、多平台桥接。
> **状态**:架构设计阶段 | **分支**:`dev` | **v1 参考**:[Cyrene](https://git.yeij.top/AskaEth/Cyrene)
---
## 架构
```
浏览器 / 第三方平台
│
REST + WebSocket + NATS
│
┌──────────▼──────────┐
│ Gateway (:8080) │ ← 唯一对外端口
│ JWT · RateLimit │
└──────────┬──────────┘
│ NATS 消息总线
┌───────┬───────┼───────┬───────┐
▼ ▼ ▼ ▼ ▼
AI-Core Memory Voice Bridge IoT Plugin
编排引擎 记忆 语音 多平台 设备模拟
┌─────────────────────┐
│ PostgreSQL+pgvector │
│ Redis · NATS · MinIO│
│ Qdrant · SearXNG │
└─────────────────────┘
```
**核心理念**:所有服务通过 NATS 消息总线通信。只有一个对外端口。
---
## 功能
- **多人格对话** — LLM 编排 + 角色扮演 + 子会话路由
- **IoT 操控** — 插件化设备控制(模拟 / Home Assistant / MQTT)
- **长期记忆** — pgvector 语义检索 + LLM 提取 + 衰减
- **语音交互** — DashScope STT + Edge-TTS 流式语音
- **多平台桥接** — QQ / Telegram / Discord / Webhook
- **知识库 RAG** — 文档管理 + 向量检索
- **自动化规则** — 定时/条件/Webhook 触发
- **管理面板** — 内置 React SPA(/admin),统一管理
- **PWA** — 可安装为桌面/移动应用
- **互联网搜索** — 自托管 SearXNG
---
## 快速开始
> 代码尚未就绪,以下为计划中的启动方式。
```bash
# 1. 配置
cp configs/.env.example .env
# 编辑 .env,至少配置 LLM_API_KEY
# 2. 启动基础设施
docker compose -f deployment/docker/docker-compose.dev.yml up -d
# 3. 启动 Cyrene
go run ./cmd/cyrene/
# 访问 http://localhost:8080
```
---
## 技术栈
| 层 | 技术 |
|----|------|
| 后端 | Go 1.26, Gin, NATS, slog |
| 前端 | React 19, TypeScript, Vite, Tailwind 4, Zustand 5 |
| 数据库 | PostgreSQL 16 + pgvector |
| 缓存/队列 | Redis 7, NATS 2 |
| 存储 | MinIO |
| 搜索 | SearXNG |
| 语音 | DashScope STT / Edge-TTS |
---
## 目录
```
Cyrene_v2/
├── backend/ # Go 后端(monorepo)
│ ├── cmd/cyrene/ # 唯一入口
│ ├── internal/ # 共享模块(config/logger/nats/plugin/auth)
│ ├── services/ # 微服务核心(gateway/ai-core/memory/voice/bridge)
│ └── plugins/ # 插件(iot-mock/calculator/web-search/...)
├── frontend/web/ # React SPA
├── services/rag-pipeline/ # Python RAG 增强(可选)
├── deployment/ # 多平台部署配置
├── scripts/ # 构建/迁移/语音处理
├── tests/ # 测试
├── configs/ # 配置模板
└── Docs/ # 用户文档
```
---
## 与 v1 的主要差异
| 维度 | v1 | v2 |
|------|-----|-----|
| 对外端口 | 6+ 个 | **1 个** |
| 服务间通信 | HTTP 硬编码 URL | **NATS 消息总线** |
| 管理面板 | Node.js 独立服务 | **React SPA 内建路由** |
| IoT 设备 | 硬编码系统服务 | **插件化(按需加载)** |
| 测试覆盖率 | < 5% | **目标 70%+** |
---
## 文档
| 文档 | 位置 | 说明 |
|------|------|------|
| 项目总览 | `DevDocs/00-overview.md` | 完整技术选型说明 |
| 多平台适配 | `DevDocs/01-cross-platform.md` | Linux/Win/macOS/Termux |
| 开发约束 | `DevDocs/02-development-constraints.md` | 编码规范+性能要求 |
| 模块设计 | `DevDocs/modules/*.md` | 每个模块的详细设计 |
| 设计决策 | `DevDocs/decisions/*.md` | 关键架构决策记录 |
> **注意**:`DevDocs/` 目录是开发文档,不进入版本控制(`.gitignore`)。供内部开发参考。
---
## License
Apache-2.0 © 2026 Aska