Skip to content

Commit 10ad84a

Browse files
committed
Merge branch 'feature/documents'
2 parents c2ae4c7 + 339484f commit 10ad84a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+1103
-1003
lines changed

AGENTS.md

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,51 @@
11

22
# 项目目录结构 (Project Overview)
33

4-
Yuxi-Know 是一个基于知识图谱和向量数据库的智能知识库系统。它通过 FastAPI 提供后端 API,使用 Vue.js 构建前端界面,并利用 Docker Compose 进行整体服务的编排和管理
4+
Yuxi-Know 是一个基于大模型的智能知识库与知识图谱智能体开发平台,融合了 RAG 技术与知识图谱技术,基于 LangGraph v1 + Vue.js + FastAPI + LightRAG 架构构建。项目完全通过 Docker Compose 进行管理,支持热重载开发
55

6-
文档中心在 `docs` 文件夹下面。
6+
## 开发准则
7+
8+
Avoid over-engineering. Only make changes that are directly requested or clearly necessary. Keep solutions simple and focused.
9+
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.
11+
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.
13+
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.
715

816
## 开发与调试工作流 (Development & Debugging Workflow)
917

1018
本项目完全通过 Docker Compose 进行管理。所有开发和调试都应在运行的容器环境中进行。使用 `docker compose up -d` 命令进行构建和启动。
1119

12-
核心原则: 由于 api-dev 和 web-dev 服务均配置了热重载 (hot-reloading),本地修改代码后无需重启容器,服务会自动更新。应该先检查项目是否已经在后台启动(`docker ps`),查看日志(`docker logs api-dev --tail 100`)具体的可以阅读 [docker-compose.yml](docker-compose.yml).
20+
**核心原则**: 由于 api-dev 和 web-dev 服务均配置了热重载 (hot-reloading),本地修改代码后无需重启容器,服务会自动更新。应该先检查项目是否已经在后台启动(`docker ps`),查看日志(`docker logs api-dev --tail 100`)具体的可以阅读 [docker-compose.yml](docker-compose.yml).
1321

14-
前端开发规范
22+
### 前端开发规范
1523

16-
- API 接口规范:所有的 API 接口都应该定义在 web/src/apis 下面,并继承自 apiGet/apiPost/apiRequest 以及其他。
24+
- API 接口规范:所有的 API 接口都应该定义在 web/src/apis 下面
1725
- Icon 应该从 @ant-design/icons-vue 或者 lucide-vue-next (推荐,但是需要注意尺寸)
1826
- Vue 中的样式使用 less,非必要情况必须使用[base.css](web/src/assets/css/base.css) 中的颜色变量。
19-
- UI风格要简洁,同时要保持一致性,颜色要尽量参考 不要悬停位移,不要过度使用阴影以及渐变色。
27+
- UI风格要简洁,同时要保持一致性,不要悬停位移,不要过度使用阴影以及渐变色。
2028
- 绝对不要尝试使用 npm/pnpm 等等运行前端开发服务器。
2129

2230

23-
后端开发规范:
31+
### 后端开发规范
32+
33+
```bash
34+
# 代码检查和格式化
35+
make lint # 检查代码规范
36+
make format # 格式化代码
37+
38+
# 直接在容器内执行命令
39+
docker compose exec api uv run python test/your_script.py # 放在 test 文件夹
40+
```
41+
42+
注意:
2443

25-
- 项目使用 uv 来管理依赖,所以必须使用 uv run 来调试。
26-
- Python 代码要符合 Python 的规范,符合 pythonic 风格,尽量使用较新的语法,避免使用旧版本的语法(版本兼容到 3.12+),使用 make lint 检查 lint。使用 make format 来格式化代码。
44+
- Python 代码要符合 Python 的规范,符合 pythonic 风格
45+
- 尽量使用较新的语法,避免使用旧版本的语法(版本兼容到 3.12+)
2746

28-
其他
47+
**其他**
2948

49+
- 使用 YUXI_SUPER_ADMIN_NAME / YUXI_SUPER_ADMIN_PASSWORD 调试接口
3050
- 如果需要新建说明文档(仅开发者可见,非必要不创建),则保存在 `docs/vibe` 文件夹下面
31-
- 测试脚本可以放在 test 文件夹下面,可以从 docker 中启动测试(不要使用本地 Python 环境)
3251
- 代码更新后要检查文档部分是否有需要更新的地方,文档的目录定义在 `docs/.vitepress/config.mts` 中。文档应该更新最新版(`docs/latest`

CLAUDE.md

Lines changed: 30 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,159 +1,51 @@
1-
# CLAUDE.md
21

3-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4-
5-
## 项目概述
2+
# 项目目录结构 (Project Overview)
63

74
Yuxi-Know 是一个基于大模型的智能知识库与知识图谱智能体开发平台,融合了 RAG 技术与知识图谱技术,基于 LangGraph v1 + Vue.js + FastAPI + LightRAG 架构构建。项目完全通过 Docker Compose 进行管理,支持热重载开发。
85

9-
## 开发环境管理
6+
## 开发准则
107

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.
169

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.
1811

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.
3613

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.
4315

44-
# 运行测试
45-
make router-tests # 运行 API 路由测试
16+
## 开发与调试工作流 (Development & Debugging Workflow)
4617

47-
# 直接在容器内执行命令
48-
docker compose exec api uv run python your_script.py
49-
```
18+
本项目完全通过 Docker Compose 进行管理。所有开发和调试都应在运行的容器环境中进行。使用 `docker compose up -d` 命令进行构建和启动。
5019

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).
5921

60-
#### 文档开发
61-
```bash
62-
# 在 docs 目录下执行
63-
pnpm run docs:dev # 开发文档
64-
pnpm run docs:build # 构建文档
65-
```
22+
### 前端开发规范
6623

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 等等运行前端开发服务器。
6829

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 多服务编排
7530

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+
### 后端开发规范
8932

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 # 格式化代码
9837

99-
## 开发规范
38+
# 直接在容器内执行命令
39+
docker compose exec api uv run python test/your_script.py # 放在 test 文件夹
40+
```
10041

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+
注意:
10743

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+)
15346

154-
### 性能监控
155-
- 使用健康检查端点 `/api/system/health`
156-
- 监控 GPU 使用情况 (如果使用 GPU 服务)
157-
- 检查内存和磁盘使用情况
47+
**其他**
15848

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`

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
PYTEST_ARGS ?=
55

66
start:
7+
@if [ ! -f .env ]; then \
8+
echo "Error: .env file not found. Please create it from .env.template"; \
9+
exit 1; \
10+
fi
711
docker compose up -d
812

913
stop:

docker/api.Dockerfile

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,40 @@
11
# 使用轻量级Python基础镜像
22
FROM python:3.12-slim
33
COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/
4+
COPY --from=node:20-slim /usr/local/bin /usr/local/bin
5+
COPY --from=node:20-slim /usr/local/lib/node_modules /usr/local/lib/node_modules
6+
COPY --from=node:20-slim /usr/local/include /usr/local/include
7+
COPY --from=node:20-slim /usr/local/share /usr/local/share
48

59
# 设置工作目录
610
WORKDIR /app
711

812
# 环境变量设置
913
ENV TZ=Asia/Shanghai \
10-
UV_LINK_MODE=copy \
14+
UV_PROJECT_ENVIRONMENT="/usr/local" \
15+
UV_COMPILE_BYTECODE=1 \
1116
DEBIAN_FRONTEND=noninteractive
1217

18+
RUN npm install -g npm@latest && npm cache clean --force
19+
1320
# 设置代理和时区,更换镜像源,安装系统依赖 - 合并为一个RUN减少层数
14-
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \
15-
# 更换为阿里云镜像源加速下载
16-
sed -i 's|http://deb.debian.org/debian|http://mirrors.tuna.tsinghua.edu.cn/debian|g' /etc/apt/sources.list.d/debian.sources && \
17-
sed -i 's|http://security.debian.org/debian-security|http://mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list.d/debian.sources && \
18-
# sed -i 's|mirrors.aliyun.com|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/debian.sources && \
19-
# 清理apt缓存并更新,避免空间不足问题
20-
apt-get clean && \
21-
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* && \
22-
apt-get update && \
23-
# 安装系统依赖,减少缓存占用
24-
apt-get install -y --no-install-recommends --fix-missing \
25-
python3-dev \
21+
RUN set -ex \
22+
# (A) 设置时区
23+
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
24+
# (B) 替换清华源 (针对 Debian Bookworm 的新版格式)
25+
&& sed -i 's|deb.debian.org|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/debian.sources \
26+
&& sed -i 's|security.debian.org/debian-security|mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list.d/debian.sources \
27+
# (C) 安装必要的系统库
28+
&& apt-get update \
29+
&& apt-get install -y --no-install-recommends --fix-missing \
30+
curl \
2631
ffmpeg \
2732
libsm6 \
2833
libxext6 \
29-
curl \
30-
&& apt-get autoremove -y && \
31-
apt-get autoclean && \
32-
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* /tmp/* /var/tmp/*
34+
# (D) 清理垃圾,减小体积
35+
&& apt-get clean \
36+
&& rm -rf /var/lib/apt/lists/*
37+
3338

3439
# 复制项目配置文件
3540
COPY ../pyproject.toml /app/pyproject.toml

0 commit comments

Comments
 (0)