|
1 | | -# CLAUDE.md |
2 | 1 |
|
3 | | -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. |
4 | | - |
5 | | -## 项目概述 |
| 2 | +# 项目目录结构 (Project Overview) |
6 | 3 |
|
7 | 4 | Yuxi-Know 是一个基于大模型的智能知识库与知识图谱智能体开发平台,融合了 RAG 技术与知识图谱技术,基于 LangGraph v1 + Vue.js + FastAPI + LightRAG 架构构建。项目完全通过 Docker Compose 进行管理,支持热重载开发。 |
8 | 5 |
|
9 | | -## 开发环境管理 |
| 6 | +## 开发准则 |
10 | 7 |
|
11 | | -### 核心原则 |
12 | | -- 所有开发调试都应在运行的 Docker 容器环境中进行 |
13 | | -- 使用 `docker compose up -d` 启动完整开发环境 |
14 | | -- api-dev 和 web-dev 服务均配置热重载,本地修改代码后无需重启容器 |
15 | | -- 先检查 `docker ps` 确认服务状态,使用 `docker logs api-dev --tail 100` 查看日志 |
| 8 | +Avoid over-engineering. Only make changes that are directly requested or clearly necessary. Keep solutions simple and focused. |
16 | 9 |
|
17 | | -### 常用命令 |
| 10 | +Don't add features, refactor code, or make "improvements" beyond what was asked. A bug fix doesn't need surrounding code cleaned up. A simple feature doesn't need extra configurability. |
18 | 11 |
|
19 | | -#### 项目启动和停止 |
20 | | -```bash |
21 | | -# 启动所有服务 |
22 | | -make start |
23 | | -# 或 |
24 | | -docker compose up -d |
25 | | - |
26 | | -# 停止所有服务 |
27 | | -make stop |
28 | | -# 或 |
29 | | -docker compose down |
30 | | - |
31 | | -# 查看日志 |
32 | | -make logs |
33 | | -# 或 |
34 | | -docker logs --tail=50 api-dev |
35 | | -``` |
| 12 | +Don't add error handling, fallbacks, or validation for scenarios that can't happen. Trust internal code and framework guarantees. Only validate at system boundaries (user input, external APIs). Don't use backwards-compatibility shims when you can just change the code. |
36 | 13 |
|
37 | | -#### 后端开发(在 Docker 容器内) |
38 | | -```bash |
39 | | -# 代码检查和格式化 |
40 | | -make lint # 检查代码规范 |
41 | | -make format # 格式化代码 |
42 | | -make format_diff # 查看格式化差异 |
| 14 | +Don't create helpers, utilities, or abstractions for one-time operations. Don't design for hypothetical future requirements. The right amount of complexity is the minimum needed for the current task. Reuse existing abstractions where possible and follow the DRY principle. |
43 | 15 |
|
44 | | -# 运行测试 |
45 | | -make router-tests # 运行 API 路由测试 |
| 16 | +## 开发与调试工作流 (Development & Debugging Workflow) |
46 | 17 |
|
47 | | -# 直接在容器内执行命令 |
48 | | -docker compose exec api uv run python your_script.py |
49 | | -``` |
| 18 | +本项目完全通过 Docker Compose 进行管理。所有开发和调试都应在运行的容器环境中进行。使用 `docker compose up -d` 命令进行构建和启动。 |
50 | 19 |
|
51 | | -#### 前端开发 |
52 | | -```bash |
53 | | -# 在 web 目录下执行 |
54 | | -pnpm run dev # 开发模式(已通过 Docker 配置) |
55 | | -pnpm run build # 构建生产版本 |
56 | | -pnpm run lint # ESLint 检查 |
57 | | -pnpm run format # Prettier 格式化 |
58 | | -``` |
| 20 | +**核心原则**: 由于 api-dev 和 web-dev 服务均配置了热重载 (hot-reloading),本地修改代码后无需重启容器,服务会自动更新。应该先检查项目是否已经在后台启动(`docker ps`),查看日志(`docker logs api-dev --tail 100`)具体的可以阅读 [docker-compose.yml](docker-compose.yml). |
59 | 21 |
|
60 | | -#### 文档开发 |
61 | | -```bash |
62 | | -# 在 docs 目录下执行 |
63 | | -pnpm run docs:dev # 开发文档 |
64 | | -pnpm run docs:build # 构建文档 |
65 | | -``` |
| 22 | +### 前端开发规范 |
66 | 23 |
|
67 | | -## 项目架构 |
| 24 | +- API 接口规范:所有的 API 接口都应该定义在 web/src/apis 下面 |
| 25 | +- Icon 应该从 @ant-design/icons-vue 或者 lucide-vue-next (推荐,但是需要注意尺寸) |
| 26 | +- Vue 中的样式使用 less,非必要情况必须使用[base.css](web/src/assets/css/base.css) 中的颜色变量。 |
| 27 | +- UI风格要简洁,同时要保持一致性,不要悬停位移,不要过度使用阴影以及渐变色。 |
| 28 | +- 绝对不要尝试使用 npm/pnpm 等等运行前端开发服务器。 |
68 | 29 |
|
69 | | -### 技术栈 |
70 | | -- **后端**: FastAPI + Python 3.11+,使用 uv 管理依赖 |
71 | | -- **前端**: Vue 3.5 + Vite 7 + Ant Design Vue + Pinia |
72 | | -- **AI框架**: LangChain v1 + LangGraph v1 + LightRAG |
73 | | -- **数据库**: Neo4j (图数据库) + Milvus (向量数据库) + MinIO (对象存储) |
74 | | -- **容器化**: Docker Compose 多服务编排 |
75 | 30 |
|
76 | | -### 核心目录结构 |
77 | | -``` |
78 | | -├── server/ # FastAPI 后端服务 |
79 | | -├── web/ # Vue.js 前端应用 |
80 | | -├── src/ # 核心业务逻辑代码 |
81 | | -├── docs/ # 文档中心 (VitePress) |
82 | | -├── test/ # 测试代码 |
83 | | -├── docker/ # Docker 配置文件 |
84 | | -├── scripts/ # 脚本工具 |
85 | | -├── saves/ # 数据保存目录 |
86 | | -├── models/ # 模型文件目录 |
87 | | -└── docker-compose.yml |
88 | | -``` |
| 31 | +### 后端开发规范 |
89 | 32 |
|
90 | | -### 主要服务 |
91 | | -- `api-dev`: FastAPI 后端服务 (端口 5050) |
92 | | -- `web-dev`: Vue.js 前端服务 (端口 5173) |
93 | | -- `graph`: Neo4j 图数据库 (端口 7474, 7687) |
94 | | -- `milvus`: Milvus 向量数据库 (端口 19530) |
95 | | -- `minio`: MinIO 对象存储 (端口 9000, 9001) |
96 | | -- `mineru`: MinerU 文档解析服务 (可选) |
97 | | -- `paddlex`: PaddleX OCR 服务 (可选) |
| 33 | +```bash |
| 34 | +# 代码检查和格式化 |
| 35 | +make lint # 检查代码规范 |
| 36 | +make format # 格式化代码 |
98 | 37 |
|
99 | | -## 开发规范 |
| 38 | +# 直接在容器内执行命令 |
| 39 | +docker compose exec api uv run python test/your_script.py # 放在 test 文件夹 |
| 40 | +``` |
100 | 41 |
|
101 | | -### 前端开发规范 |
102 | | -- **API 接口**: 所有 API 接口定义在 `web/src/apis` 下,继承自 `apiGet/apiPost/apiRequest` |
103 | | -- **图标**: 从 `@ant-design/icons-vue` 或 `lucide-vue-next` 选取 |
104 | | -- **样式**: 使用 Less,优先采用 `web/src/assets/css/base.css` 中的颜色 |
105 | | -- **UI风格**: 简洁一致,避免悬停位移、过度阴影和渐变色 |
106 | | -- **组件库**: 基于 Ant Design Vue,保持组件一致性 |
| 42 | +注意: |
107 | 43 |
|
108 | | -### 后端开发规范 |
109 | | -- **包管理**: 使用 uv 管理依赖,调试时使用 `uv run` |
110 | | -- **代码规范**: 符合 Pythonic 风格,支持 Python 3.12+ 语法 |
111 | | -- **代码质量**: 使用 `make lint` 检查,`make format` 格式化 |
112 | | -- **API设计**: 遵循 RESTful 规范,使用 Pydantic 进行数据验证 |
113 | | - |
114 | | -### 通用开发规范 |
115 | | -- **文档更新**: 代码更新后同步更新 `docs/latest` 中的相关文档 |
116 | | -- **测试**: 测试脚本放在 `test/` 目录,从 Docker 容器中运行 |
117 | | -- **环境变量**: 配置通过 `.env` 文件管理 |
118 | | -- **数据安全**: 敏感数据不提交到版本控制 |
119 | | - |
120 | | -## 特色功能模块 |
121 | | - |
122 | | -### 智能体系统 |
123 | | -- 基于 LangGraph v1 的智能体框架 |
124 | | -- 支持多代理协作和工具调用 |
125 | | -- 提供完整的智能体开发套件 |
126 | | - |
127 | | -### 知识管理 |
128 | | -- 多模态文档解析 (PDF、Word、图片等) |
129 | | -- 知识图谱自动构建和可视化 |
130 | | -- 向量化存储和检索 |
131 | | - |
132 | | -### 数据处理 |
133 | | -- MinerU 文档解析集成 |
134 | | -- PaddleX OCR 文字识别 |
135 | | -- 支持多种模型提供商 (OpenAI、DeepSeek、阿里云等) |
136 | | - |
137 | | -## 调试和故障排除 |
138 | | - |
139 | | -### 常见问题排查 |
140 | | -1. **服务启动失败**: 检查端口占用和 Docker 服务状态 |
141 | | -2. **API 连接问题**: 确认 `VITE_API_URL` 环境变量配置 |
142 | | -3. **模型加载问题**: 检查 `models/` 目录和权限设置 |
143 | | -4. **数据库连接**: 确认 Neo4j 和 Milvus 服务健康状态 |
144 | | - |
145 | | -### 日志查看 |
146 | | -```bash |
147 | | -# 查看各服务日志 |
148 | | -docker logs api-dev --tail 100 |
149 | | -docker logs web-dev --tail 50 |
150 | | -docker logs graph --tail 50 |
151 | | -docker logs milvus --tail 50 |
152 | | -``` |
| 44 | +- Python 代码要符合 Python 的规范,符合 pythonic 风格 |
| 45 | +- 尽量使用较新的语法,避免使用旧版本的语法(版本兼容到 3.12+) |
153 | 46 |
|
154 | | -### 性能监控 |
155 | | -- 使用健康检查端点 `/api/system/health` |
156 | | -- 监控 GPU 使用情况 (如果使用 GPU 服务) |
157 | | -- 检查内存和磁盘使用情况 |
| 47 | +**其他**: |
158 | 48 |
|
159 | | -You MUST read `./AGENTS.md` |
| 49 | +- 使用 YUXI_SUPER_ADMIN_NAME / YUXI_SUPER_ADMIN_PASSWORD 调试接口 |
| 50 | +- 如果需要新建说明文档(仅开发者可见,非必要不创建),则保存在 `docs/vibe` 文件夹下面 |
| 51 | +- 代码更新后要检查文档部分是否有需要更新的地方,文档的目录定义在 `docs/.vitepress/config.mts` 中。文档应该更新最新版(`docs/latest`) |
0 commit comments