RAGFlow:基于OCR和文档解析的下一代 RAG 引擎
RAGFlow 的设计哲学是“高质量输入,高质量输出”,它通过提供可解释性和可控性的生成结果,让用户能够信任并依赖于系统提供的答案。
这里写目录标题
- RagFlow核心功能
- 1、文本切片
- 2、深度文档理解(DeepDoc)
- 3、兼容各类异构数据源
- DeepDoc
- LLM
- RagFlow核心架构
- 1、文档解析器
- 2、查询分析器
- 3、LLM
- 4、检索引擎
- 5、重排器
- RagFlow工作流程
RagFlow核心功能
1、文本切片
2、深度文档理解(DeepDoc)
3、兼容各类异构数据源
DeepDoc
DeepDoc的模型应该是基于paddleOCR的模型去微调训练的,开源出来的模型是onnx格式的
代码解析参考,后期可能从这里改要求的解析模板要求
LLM
在 RAGFlow 中,LLM(Large Language Models,大型语言模型)和嵌入模型(Embedding Models)扮演着至关重要的角色,它们共同协作以实现高效的信息检索和生成任务。
LLM的主要作用包括
1、理解用户查询
2、生成回答
3、提供可控性: LLM可以根据用户的指示生成特定风格或格式的回答,确保生成内容的可控性和准确性。
4、跨语言能力: 对于多语言环境下的RAG任务,LLM需要具备跨语言理解和生成的能力,以便在不同语言之间进行有效的信息检索和转换
Embedding的主要作用:
主要用于将文本数据转换为向量表示
1、文本向量化
2、相似性比较
3、检索数据
4、增强多模态处理能力
RagFlow核心架构
1、文档解析器
2、查询分析器
3、LLM
4、检索引擎
5、重排器
RagFlow工作流程
OK,到此为止RagFlow的理论基础大致有了一个概念,现在开始动手实操!
RagFlow使用教程
首先,需要在RagFlow中添加模型
chat模型用于测试,embedding模型用于分词做知识库
注意:url为自己ip地址加11434(Ollama默认服务端口)
查询自己的ip地址命令
时调整其输出的最大长度(max-tokens)
我填了2000,后期改参考这个
ipconfig
可能会报错
:请求连接失败
需要在Ubuntu上确保防火墙没有阻止Ollama使用的端口(例如11434)
sudo ufw allow 11434
sudo ufw reload