RAGFlow 学习笔记

0. 引言

这篇文章记录一下学习 RAGFlow 是一些笔记,方便以后自己查看和回忆。

1. RAGFlow 支持的文档格式

RAGFlow 支持的文件格式包括文档(PDF、DOC、DOCX、TXT、MD)、表格(CSV、XLSX、XLS)、图片(JPEG、JPG、PNG、TIF、GIF)和幻灯片(PPT、PPTX)。

2. 嵌入模型选择后不再允许改变

一旦您选择了嵌入模型并使用它来解析文件,您就不再允许更改它。明显的原因是我们必须确保特定知识库中的所有文件都使用相同的嵌入模型进行解析(确保它们在相同的嵌入空间中进行比较)。

3. 干预文件解析​

RAGFlow 具有可见性和可解释性,允许您查看分块结果并在必要时进行干预。

4. RAGFlow 与其他 RAG 产品有何不同? ​

尽管 LLMs 显着推进了自然语言处理 (NLP),但“垃圾进垃圾出”的现状仍然没有改变。为此,RAGFlow 引入了与其他检索增强生成 (RAG) 产品相比的两个独特功能。

  • 细粒度文档解析:文档解析涉及图片和表格,您可以根据需要灵活干预。
  • 可追踪的答案,减少幻觉:您可以信任 RAGFlow 的答案,因为您可以查看支持它们的引文和参考文献。

5. RAGFlow 支持哪些语言? ​

目前有英文、简体中文、繁体中文。

6. 哪些嵌入模型可以本地部署? ​

  • BAAI/bge-large-zh-v1.5
  • BAAI/bge-base-en-v1.5
  • BAAI/bge-large-en-v1.5
  • BAAI/bge-small-en-v1.5
  • BAAI/bge-small-zh-v1.5
  • jinaai/jina-embeddings-v2-base-en
  • jinaai/jina-embeddings-v2-small-en
  • nomic-ai/nomic-embed-text-v1.5
  • sentence-transformers/all-MiniLM-L6-v2
  • maidalun1020/bce-embedding-base_v1

7. 为什么RAGFlow解析文档的时间比LangChain要长? ​

RAGFlow 使用了视觉模型,在布局分析、表格结构识别和 OCR(光学字符识别)等文档预处理任务中投入了大量精力。这会增加所需的额外时间。

8. 为什么RAGFlow比其他项目需要更多的资源? ​

RAGFlow 有许多用于文档结构解析的内置模型,这些模型占用了额外的计算资源。

9. RAGFlow 支持哪些架构或设备? ​

目前,我们仅支持 x86 CPU 和 Nvidia GPU。

10. 可以通过URL分享对话吗? ​

是的,此功能现已可用。

11. 为什么我的 pdf 解析在接近完成时停止,而日志没有显示任何错误? ​

如果您的 RAGFlow 部署在本地,则解析进程可能会因 RAM 不足而被终止。尝试通过增加 docker/.env 中的 MEM_LIMIT 值来增加内存分配。

12. 为什么我无法将 10MB 以上的文件上传到本地部署的 RAGFlow? ​

您可能忘记更新 MAX_CONTENT_LENGTH 环境变量:

将环境变量 MAX_CONTENT_LENGTH 添加到 ragflow/docker/.env

MAX_CONTENT_LENGTH=100000000

更新 docker-compose.yml:

environment:
  - MAX_CONTENT_LENGTH=${MAX_CONTENT_LENGTH}

重新启动 RAGFlow 服务器:

docker compose up ragflow -d

现在您应该能够上传大小小于 100MB 的文件。

13. 如何增加RAGFlow响应的长度? ​

右键单击所需的对话框以显示“Chat Configuration(聊天配置)”窗口。

切换到Model Setting(模型设置)选项卡并调整Max Tokens(最大令牌)滑块以获得所需的长度。

单击“确定”确认您的更改。

14. Empty response(空响应)是什么意思?怎么设置呢? ​

如果从您的知识库中未检索到任何内容,则您可以将系统的响应限制为您在“Empty response(空响应)”中指定的内容。如果您没有在空响应中指定任何内容,您就可以让您的 LLM 即兴创作,给它一个产生幻觉的机会。

15. 如何配置 RAGFlow 以 100% 匹配的结果进行响应,而不是利用 LLM? ​

单击页面中间顶部的知识库。
右键单击所需的知识库以显示配置对话框。
选择“Q&A(问答)”作为块方法,然后单击“保存”以确认您的更改。

16. 使用 DataGrip 连接 ElasticSearch

curl -X POST -u "elastic:infini_rag_flow" -k "http://localhost:1200/_license/start_trial?acknowledge=true&pretty"

99. 功能扩展

99-1. 扩展支持本地 LLM 功能

vi rag/utils/__init__.py

---
# encoder = tiktoken.encoding_for_model("gpt-3.5-turbo")
encoder = tiktoken.encoding_for_model("gpt-4-128k")
---
vi api/settings.py

---
    "Local-OpenAI": {
        "chat_model": "gpt-4-128k",
        "embedding_model": "",
        "image2text_model": "",
        "asr_model": "",
    },    
---
vi api/db/init_data.py

---
factory_infos = [{
    "name": "OpenAI",
    "logo": "",
    "tags": "LLM,TEXT EMBEDDING,SPEECH2TEXT,MODERATION",
    "status": "1",
}, {
    "name": "Local-OpenAI",
    "logo": "",
    "tags": "LLM",
    "status": "1",
},
---

        # ---------------------- Local-OpenAI ------------------------
       
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值