1773239962
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
本文件用于指导 Claude Code(claude.ai/code)在此仓库中开展工作。
|
||||
|
||||
## 技术栈
|
||||
|
||||
- Java:`21`(`<java.version>`)
|
||||
- 后端框架:Spring Boot `4.0.3`
|
||||
- 后端框架:Spring Ai `1.1.2`
|
||||
|
||||
## 开发规范
|
||||
|
||||
如果涉及改动对外提供的 RESTful API 需对 MCP 动态工具管理 API 文档进行及时更新。
|
||||
|
||||
开发 MCP 相关功能需要遵守 MCP 协议说明。
|
||||
|
||||
## 日志和注释
|
||||
|
||||
- 日志和注释使用中文
|
||||
- 关键位置须有日志,日志级别仅需要 `info` 和 `error` 两个级别
|
||||
- public 方法必须提供注释说明,关键位置也可以适量增加注释说明
|
||||
|
||||
## 测试规范(强约束)
|
||||
|
||||
- 新增功能、修复问题、修改业务行为:必须新增/更新对应的测试用例(优先单元测试),覆盖核心规则与边界条件
|
||||
- 修复 Bug:必须提供回归测试(修复前失败、修复后通过)
|
||||
- 纯代码格式/注释调整:可以不新增测试,但必须确保现有测试全部通过
|
||||
- 必要时才写集成测试(如持久化/序列化/校验):控制数量,避免把所有测试都写成 `@SpringBootTest`
|
||||
- 提交前必须在仓库根目录运行 `mvn test` 并确保全部通过;测试未通过禁止提交
|
||||
@@ -89,8 +89,6 @@ dify API 的研究。
|
||||
|
||||
DeepSeek-R1-Distill-Qwen-32B 工具调用。
|
||||
|
||||

|
||||
|
||||
发指令 --》ibs-ai --> RAGflow --> 智能决策 a 工具 b 知识库
|
||||
|
||||
需要 MCP server Token 和 用户 Token。
|
||||
|
||||
@@ -0,0 +1,324 @@
|
||||
# 一、RAGFlow 部署前提
|
||||
|
||||
最低硬件要求:
|
||||
|
||||
- CPU ≥ 4 核
|
||||
- 内存 ≥ 16 GB
|
||||
- 磁盘 ≥ 50 GB
|
||||
- Docker ≥ 24
|
||||
- Docker Compose ≥ 2.26 ([ragflow.com.cn][1])
|
||||
|
||||
RAGFlow 默认依赖这些组件:
|
||||
|
||||
- MySQL
|
||||
- Redis
|
||||
- MinIO(对象存储)
|
||||
- Elasticsearch / Infinity(检索)
|
||||
- API Server
|
||||
|
||||
这些都已经写在 `docker-compose` 里。 ([ragflow.com.cn][2])
|
||||
|
||||
---
|
||||
|
||||
# 二、系统参数调整(必须)
|
||||
|
||||
RAGFlow 用 Elasticsearch,需要调内核参数:
|
||||
|
||||
```bash
|
||||
sysctl vm.max_map_count
|
||||
```
|
||||
|
||||
如果小于 **262144**:
|
||||
|
||||
```bash
|
||||
sudo sysctl -w vm.max_map_count=262144
|
||||
```
|
||||
|
||||
永久生效:
|
||||
|
||||
```bash
|
||||
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
|
||||
sysctl -p
|
||||
```
|
||||
|
||||
否则 ES 会启动失败。 ([ragflow.com.cn][1])
|
||||
|
||||
---
|
||||
|
||||
# 三、下载 RAGFlow
|
||||
|
||||
```bash
|
||||
git clone https://github.com/infiniflow/ragflow.git
|
||||
cd ragflow
|
||||
```
|
||||
|
||||
进入 docker 目录:
|
||||
|
||||
```bash
|
||||
cd docker
|
||||
```
|
||||
|
||||
目录结构大概:
|
||||
|
||||
```
|
||||
ragflow/
|
||||
├ docker/
|
||||
│ ├ docker-compose.yml
|
||||
│ ├ docker-compose-base.yml
|
||||
│ ├ .env
|
||||
│ └ service_conf.yaml.template
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 四、配置环境变量
|
||||
|
||||
编辑 `.env`
|
||||
|
||||
```bash
|
||||
nano .env
|
||||
```
|
||||
|
||||
主要配置:
|
||||
|
||||
```env
|
||||
# elasticsearch
|
||||
STACK_VERSION=8.11.3
|
||||
ELASTIC_PASSWORD=ragflow
|
||||
|
||||
# kibana
|
||||
KIBANA_USER=rag_flow
|
||||
KIBANA_PASSWORD=infini_rag_flow
|
||||
|
||||
# ports
|
||||
ES_PORT=1200
|
||||
KIBANA_PORT=6601
|
||||
```
|
||||
|
||||
如果需要修改 Web 端口:
|
||||
|
||||
编辑 `docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
ports:
|
||||
- "8080:80"
|
||||
```
|
||||
|
||||
访问地址就变成:
|
||||
|
||||
```
|
||||
http://服务器IP:8080
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 五、启动 RAGFlow
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml up -d
|
||||
```
|
||||
|
||||
查看容器:
|
||||
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
|
||||
正常会有这些容器:
|
||||
|
||||
```
|
||||
ragflow-server
|
||||
ragflow-worker
|
||||
mysql
|
||||
redis
|
||||
minio
|
||||
elasticsearch
|
||||
kibana
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 六、访问 RAGFlow
|
||||
|
||||
浏览器访问:
|
||||
|
||||
```
|
||||
http://服务器IP
|
||||
```
|
||||
|
||||
首次使用需要注册账号。
|
||||
|
||||
然后就可以:
|
||||
|
||||
1️⃣ 创建 Dataset(知识库)
|
||||
|
||||
2️⃣ 上传 PDF / Markdown / 文档
|
||||
|
||||
3️⃣ 自动解析
|
||||
|
||||
4️⃣ 创建 AI Chat
|
||||
|
||||
RAG 就跑起来了。
|
||||
|
||||
---
|
||||
|
||||
# 七、连接大模型
|
||||
|
||||
RAGFlow **本身不带 LLM**,需要接模型。
|
||||
|
||||
常见配置:
|
||||
|
||||
| 类型 | 推荐 |
|
||||
| ----- | -------------- |
|
||||
| 本地模型 | Ollama |
|
||||
| GPU推理 | vLLM |
|
||||
| API | OpenAI / Azure |
|
||||
| 国产 | DeepSeek |
|
||||
|
||||
例如接 **Ollama**
|
||||
|
||||
先装 Ollama:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
```
|
||||
|
||||
拉模型:
|
||||
|
||||
```bash
|
||||
ollama pull llama3
|
||||
```
|
||||
|
||||
然后在 RAGFlow UI:
|
||||
|
||||
```
|
||||
Settings → Model Providers
|
||||
```
|
||||
|
||||
添加:
|
||||
|
||||
```
|
||||
Provider: Ollama
|
||||
URL: http://host.docker.internal:11434
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 八、常用运维命令
|
||||
|
||||
查看日志
|
||||
|
||||
```bash
|
||||
docker logs ragflow-server -f
|
||||
```
|
||||
|
||||
停止
|
||||
|
||||
```bash
|
||||
docker compose down
|
||||
```
|
||||
|
||||
升级
|
||||
|
||||
```bash
|
||||
git pull
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 九、生产环境建议
|
||||
|
||||
推荐配置:
|
||||
|
||||
```
|
||||
8 CPU
|
||||
32GB RAM
|
||||
100GB SSD
|
||||
```
|
||||
|
||||
并且:
|
||||
|
||||
- Elasticsearch 单独部署
|
||||
- MinIO 使用对象存储
|
||||
- GPU + vLLM
|
||||
|
||||
RAGFlow 在企业环境一般是:
|
||||
|
||||
```
|
||||
Nginx
|
||||
│
|
||||
RAGFlow API
|
||||
│
|
||||
Elasticsearch
|
||||
Redis
|
||||
MySQL
|
||||
MinIO
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 十、很多人部署失败的 3 个原因
|
||||
|
||||
90% 卡在这里:
|
||||
|
||||
### 1 Docker 版本太低
|
||||
|
||||
必须:
|
||||
|
||||
```
|
||||
Docker ≥ 24
|
||||
Compose ≥ 2.26
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2 内存不足
|
||||
|
||||
RAGFlow 启动 ES + Python worker
|
||||
|
||||
最低:
|
||||
|
||||
```
|
||||
16GB
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3 vm.max_map_count 没改
|
||||
|
||||
ES 直接 crash。
|
||||
|
||||
---
|
||||
|
||||
# 十一、如果你是做 AI 产品(强烈建议)
|
||||
|
||||
我建议你这样部署 RAGFlow:
|
||||
|
||||
```
|
||||
RAGFlow
|
||||
│
|
||||
vLLM (推理)
|
||||
│
|
||||
Embedding Service
|
||||
│
|
||||
对象存储
|
||||
```
|
||||
|
||||
效果比默认好很多。
|
||||
|
||||
---
|
||||
|
||||
💡 如果你愿意,我可以再给你一份 **“RAGFlow 企业级部署架构”**(包括):
|
||||
|
||||
- GPU 推理架构
|
||||
- embedding 服务
|
||||
- chunk pipeline
|
||||
- RAGFlow + MCP
|
||||
- 和你现在的 **智能体架构怎么融合**
|
||||
|
||||
我可以直接画一张 **完整 RAG 系统架构图**。
|
||||
|
||||
[1]: https://ragflow.com.cn/docs?utm_source=chatgpt.com "快速入门 | RAGFlow 引擎"
|
||||
[2]: https://ragflow.com.cn/docs/dev/configurations?utm_source=chatgpt.com "配置 | RAGFlow 引擎"
|
||||
@@ -0,0 +1,29 @@
|
||||
RAGFlow的核心映像在早期版本(如v0.21.1)约为9GB,这主要是因为包含了内置的embedding模型。
|
||||
|
||||
## 镜像大小变化
|
||||
|
||||
从v0.22.0开始,RAGFlow 改为只发布 slim 版本,不再包含内置的 embedding 模型,镜像大小减少到约 2 GB。
|
||||
|
||||
当前版本(v0.24.0)的镜像信息:
|
||||
|
||||
- 下载大小:约2GB
|
||||
- 运行时展开大小:约7GB
|
||||
|
||||
## 9GB大小的原因
|
||||
|
||||
早期9GB的镜像包含:
|
||||
|
||||
- 内置的BCE embedding模型
|
||||
- 内置的BGE embedding模型
|
||||
- 完整的RAGFlow应用程序及其所有依赖
|
||||
|
||||
现在 slim 版本需要用户自行配置外部的大模型和 embedding 服务,因此镜像体积大幅减小。
|
||||
|
||||
---
|
||||
|
||||
| 服务 | 用途 | Docker镜像 |
|
||||
| ----------------- | --------- | -------------------------- |
|
||||
| **Elasticsearch** | 向量数据库(默认) | `elasticsearch:8.11.3` |
|
||||
| **Redis** | 缓存和消息队列 | `valkey:6.0.2` |
|
||||
| **MySQL** | 元数据存储 | `mysql:8.0.39` |
|
||||
| **MinIO** | 对象存储 | `minio:RELEASE.2025-06-13` |
|
||||
@@ -0,0 +1,30 @@
|
||||
```
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(./mvnw test:*)",
|
||||
"Bash(./mvnw dependency:get:*)",
|
||||
"Bash(curl:*)",
|
||||
"mcp__deepwiki__ask_question",
|
||||
"Bash(mvn test:*)",
|
||||
"mcp__deepwiki__read_wiki_structure",
|
||||
"mcp__deepwiki__read_wiki_contents",
|
||||
"Bash(python:*)",
|
||||
"Bash(mvn compile:*)",
|
||||
"Bash(mvn dependency:tree:*)",
|
||||
"Read(//c/Users/docke/.m2/repository/io/modelcontextprotocol/**)",
|
||||
"Read(//c/Users/docke/.m2/**)",
|
||||
"Bash(jar tf:*)",
|
||||
"Bash(javap:*)",
|
||||
"Bash(mvn clean:*)",
|
||||
"Bash(mvn spring-boot:run:*)",
|
||||
"Bash(jar:*)",
|
||||
"WebFetch(domain:spec.modelcontextprotocol.io)",
|
||||
"WebFetch(domain:spring.io)",
|
||||
"WebFetch(domain:developers.redhat.com)",
|
||||
"Bash(find \"D:\\\\MyCode\\\\Work\\\\yd-hy\\\\ibs-mcp\" -type f \\\\\\( -name \"*.sql\" -o -name \"schema*\" -o -name \"*schema*\" \\\\\\) 2>/dev/null | head -20)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
@@ -0,0 +1,14 @@
|
||||
```
|
||||
{
|
||||
"success": true,
|
||||
"message": "API Key 创建成功",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"apiKey": "c2f2956653614bc4ab05711c03f0ff36",
|
||||
"tenantCode": "tenant001",
|
||||
"description": "测试 API Key",
|
||||
"enabled": true,
|
||||
"createdAt": "2026-03-11T10:03:41.9902653"
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user