Files
zhanghongyu_0626 1ddd44a6cb Add core database support and enhance documentation
- Introduced `MYSQL_CORE_DATABASE` in `.env.example` and `settings.py` for core database configuration.
- Added `CoreReadOnlyRepository` for read-only access to the `jinrong_core` database.
- Updated `AGENTS.md`, `README.md`, and various documentation files to reflect new agent onboarding processes and project structure.
- Revised requirements in `requirements.txt` to include `langgraph` and `langchain-core`.
- Enhanced `FLOW.md` with local bootstrap instructions for setting up the core simulation environment.
- Added new scripts for database creation and seeding for the core simulation library.
- Improved overall documentation for clarity on project architecture and memory management.
- Updated `TODO.md` to reflect current development priorities and tasks.
2026-09-05 17:39:16 +08:00

130 lines
5.7 KiB
Markdown
Raw Permalink 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.
# 技术栈与版本(已定)
> 更新日期:2026-09-05
> 环境:Windows 本机开发 · 内存 15.4 GB(可用约 3.7 GB)
> 原则:**日常开发走 Windows 原生安装**;Docker 仅作答辩/生产备选,不用于日常联调。
---
## 1. 组件一览
| 组件 | 版本 / 状态 | 备注 |
| --- | --- | --- |
| **后端** | Python 3.13.14 + FastAPI | 系统 Python;Agent 编排 **LangGraph** 1.2.x + `langchain-core` / `langchain-openai`(DeepSeek)/ `pymilvus` 3.0.1 |
| **关系库** | MySQL 8.0.46 | 原生安装,端口 **3306** ✓ |
| **缓存** | Redis 8.10.1 | 原生安装,路径 `F:\Redis\...`,端口 **6379** ✓ |
| **图库** | Neo4j 5.26.19(Enterprise) | Neo4j Desktop 2,已建库 ✓ |
| **向量库** | Milvus Lite(本地文件模式) | 见 §3 踩坑说明;Collection 设计见 [03-milvus-collections.md](../项目框架设计/表设计/03-milvus-collections.md) |
| **前端** | React 19 + Vite 7 + TS strict + Ant Design 5 + HashRouter + Vitest | 沿用既有前端栈;**不用**需求文档中的 Streamlit |
| **LLM 生成** | DeepSeek API | 对话 / 推理走云端 API |
| **LLM 向量化** | Ollama + **bge-m3**,**1024 维** | 本地运行;文档向量不出内网 |
| **对象存储** | **不使用 MinIO** | 文档落本地目录;元数据进 MySQL(可选 P1 索引表) |
| **容器** | Docker 29.7.2 Client | Daemon **未启动**;仅答辩/生产备选,**非日常开发** |
---
## 2. 部署方式:Windows 原生(已定)
### 2.1 为何不用 Docker 做日常开发
| 项 | 说明 |
| --- | --- |
| **本机内存** | 总计 15.4 GB,可用约 **3.7 GB**(使用率 ~75%) |
| **Docker 开销** | Docker Desktop WSL2 VM ~**2 GB** + Milvus 三容器(etcd / minio / milvus)~**3.5 GB** ≈ **5.5 GB** |
| **原生套件占用** | MySQL + Redis + Neo4j + Milvus Lite ≈ **1.9 GB** |
在现有内存下,**必须采用 Windows 原生部署**,否则 Milvus / Docker 与 IDE、浏览器、Neo4j 同时运行易 OOM。
### 2.2 日常开发启动顺序(建议)
```text
1. MySQL 8.0.46 → :3306
2. Redis 8.10.1 → :6379
3. Neo4j Desktop → 默认 bolt :7687
4. Ollama + bge-m3 → 本地 embedding
5. FastAPI 后端 → 连接上述服务 + Milvus Lite 文件
6. Vite 前端 → dev server
```
### 2.3 生产 / 答辩备选
- 可使用 Docker Compose 拉起完整 Milvus Standalone(etcd + minio + milvus),**与开发环境 Milvus Lite 通过同一 pymilvus API 切换 URI**。
- 对象存储生产环境可再评估 MinIO / OSS;当前阶段本地目录 + MySQL 元数据即可。
---
## 3. 连接与配置约定
| 服务 | 开发默认 | 环境变量示例 |
| --- | --- | --- |
| MySQL | `127.0.0.1:3306` | `MYSQL_HOST`, `MYSQL_PORT`, `MYSQL_DATABASE=jinrong_agent` |
| Redis | `127.0.0.1:6379` | `REDIS_URL=redis://127.0.0.1:6379/0` |
| Neo4j | Desktop 本地 | `NEO4J_URI=bolt://localhost:7687` |
| Milvus Lite | 项目内 `.milvus/` 或配置路径 | `MILVUS_URI=./data/milvus.db`(Lite 文件 URI 以 pymilvus 文档为准) |
| Ollama | `http://127.0.0.1:11434` | `OLLAMA_BASE_URL`, `EMBED_MODEL=bge-m3` |
| DeepSeek | HTTPS API | `DEEPSEEK_API_KEY`, `DEEPSEEK_BASE_URL` |
Agent 业务库脚本:[01-mysql-共用底座.sql](../项目框架设计/表设计/01-mysql-共用底座.sql)、[02-mysql-agent专用.sql](../项目框架设计/表设计/02-mysql-agent专用.sql)。
---
## 4. 向量与 RAG 对齐
| 项 | 约定 |
| --- | --- |
| Embedding 模型 | Ollama `bge-m3` |
| 向量维度 | **1024**(Milvus Collection `FLOAT_VECTOR(dim=1024)` 必须一致) |
| Python 客户端 | `pymilvus` 3.0.1 |
| 开发向量库 | Milvus Lite 单文件,免 etcd/minio |
| 共用 Collection | `kb_product_rules`(客户 + 代理人);`kb_business_ops`(代理人) |
---
## 5. 踩坑说明
### 5.1 Milvus:Lite vs Standalone
| 模式 | 适用 | 注意 |
| --- | --- | --- |
| **Milvus Lite**(当前) | 本机开发、内存受限 | 与 Standalone **数据不自动互通**;迁移需 re-embed + import |
| **Milvus Standalone**(Docker) | 答辩演示、生产 | 需额外 ~3.5 GB+ 内存;开发机日常不启 |
代码层通过 `MILVUS_URI` / 连接模式开关切换,**Collection 字段与 1024 维不变**。
### 5.2 不用 MinIO
- 原始 PDF/Word 存 **本地目录**(如 `data/kb/`)。
- Milvus 存 chunk 文本或本地文件相对路径;`source_doc_id` / `source_version` 进 MySQL 或 Milvus 标量字段(见 Collection 设计)。
- 后续若上云,再替换为 OSS 适配层,不改 Agent 业务接口。
### 5.3 前端栈与需求文档差异
- 需求/用户故事中可能出现的 Streamlit **不作为本项目前端**。
- 统一:**React 19 + Vite 7 + Ant Design 5**,四 Agent 可共用组件库与 HashRouter 多入口。
### 5.4 LLM 分工
| 能力 | 选型 | 数据出境 |
| --- | --- | --- |
| 对话 / 推理 / Tool 编排 | DeepSeek API + **LangGraph** StateGraph | 按 API 协议;敏感字段需脱敏 |
| 文档 Embedding | Ollama bge-m3 本地 | **不出内网** |
---
## 6. 与项目其他文档的关系
| 文档 | 关系 |
| --- | --- |
| [02-JWT-RBAC鉴权手册.md](./02-JWT-RBAC鉴权手册.md) | 鉴权与网关(FastAPI 中间件 / SDK) |
| [05-多Agent共用底座清单.md](../项目框架设计/表设计/05-多Agent共用底座清单.md) | MySQL / Redis / Milvus / Neo4j 底座 |
| [03-milvus-collections.md](../项目框架设计/表设计/03-milvus-collections.md) | 向量 Collection 字段 |
| [业务场景优先级清单.md](../需求拆解/业务场景优先级清单.md) | 业务 P0 范围 |
---
## 7. 版本变更记录
| 日期 | 变更 |
| --- | --- |
| 2026-09-05 | 初版:Windows 原生 + Milvus Lite + 不用 MinIO + React 前端栈 |