RagFlow本地部署

一、环境准备

1. 系统&环境

  • 操作系统:Linux
  • Python 版本:3.8+
  • 硬件要求: cpu内存$\geq$8GB 或 gpu

2. 依赖

pip install ragflow

如果用 GPU 加速,还需要安装 PyTorch 和 Transformers 的 GPU 版本:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers sentence-transformers faiss-cpu

注意:需要更高效的向量检索,可以安装 faiss-gpu 替代 faiss-cpu


二、快速入门

1. 初始化项目

创建一个新的目录,并初始化 RagFlow 项目:

mkdir my_rag_project
cd my_rag_project
ragflow init

这将在当前目录下生成一个默认的配置文件 config.yaml 和示例数据集。

2. 准备数据

RagFlow 支持多种格式的数据源,包括 PDF、Markdown、TXT 和 CSV 文件。你可以将自己的文档放入 data/ 目录中。

例如,将一个 PDF 文件放入数据目录:

cp /path/to/your/document.pdf data/

然后运行以下命令对文档进行预处理和索引:

ragflow index

此命令会自动解析文档内容,将其分割为小段落,并生成向量索引以供后续检索使用。

3. 启动服务

完成数据索引后,启动 RagFlow 的问答服务:

ragflow serve

默认情况下,服务会监听 http://localhost:8000。你可以通过浏览器或 API 工具访问该地址。


三、使用 RagFlow 进行问答

1. Web 界面

打开浏览器,访问 http://localhost:8000,你会看到一个简洁的用户界面。在这里,你可以输入问题并获取由 RagFlow 生成的答案。

2. API 调用

如果你希望通过代码与 RagFlow 交互,可以使用其 RESTful API。例如,使用 curl 发送请求:

curl -X POST http://localhost:8000/query \
     -H "Content-Type: application/json" \
     -d '{"question": "什么是机器学习?"}'

返回结果可能如下所示:

{
  "answer": "机器学习是一种人工智能技术,通过算法让计算机从数据中学习模式并做出预测。",
  "sources": [
    {"title": "机器学习基础.pdf", "page": 5},
    {"title": "AI技术综述.md", "page": 2}
  ]
}

3. 自定义配置

如果需要调整 RagFlow 的行为,可以编辑 config.yaml 文件。例如,修改语言模型或检索参数:

model:
  name: "gpt-3.5-turbo"  # 使用 OpenAI 的 GPT 模型
retriever:
  top_k: 5                # 检索前 5 个最相关的段落

保存更改后,重新启动服务即可生效。


四、高级功能

1. 集成自定义模型

RagFlow 支持多种语言模型,包括 Hugging Face 的 Transformers 和本地部署的模型。你可以在 config.yaml 中指定自定义模型路径:

model:
  type: "local"
  path: "/path/to/your/model"

2. 数据更新

当有新文档加入时,只需将它们放入 data/ 目录并重新运行 ragflow index 即可更新索引。

3. 性能优化

为了提高检索速度,可以启用 GPU 加速或调整分块策略。例如,在 config.yaml 中设置更大的分块大小:

chunking:
  size: 500              # 每个段落包含约 500 个字符
  overlap: 100           # 段落之间重叠 100 个字符