1773239962

This commit is contained in:
Docker7530
2026-03-11 22:39:26 +08:00
parent cef89547a6
commit a85ad8447f
13 changed files with 680 additions and 142 deletions
+31
View File
@@ -0,0 +1,31 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
本文件用于指导 Claude Codeclaude.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 工具调用。
![](../../../attachment/images-paste/image-20260304153545122.png)
发指令 --》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 引擎"
+29
View File
@@ -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"
}
}
```