一、环境准备
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 个字符