RAG 复杂场景下的工作流程和构建知识库的解析方法

RAG 复杂场景下的工作流程

召回模式(选择数据集) → 混合检索(同时进行语义检索和关键词搜索) → 重排序(合并和归一化检索结果)

  • 召回模式主要是用于选出与用户问题最相关的数据集,在应用内关联了多个数据集时,可以使用N选1、N选M和多路等召回模式。
    • N 选 1 召回
    • N 选 M 召回
    • 多路召回
  • 语义检索是当前主流的向量检索,通过语义相关度进行匹配;关键词搜索是传统的搜索算法,用于精确匹配;混合检索是分别通过两种检索方式在文档中检索出最相关的文本。
  • 重排序模型(Rerank Model)用于对查询结果进行语义排序,在混合检索模式下的查询结果需要进行合并和归一化(将数据转换为统一的标准范围或分布,以便更好地进行比较、分析和处理),然后再一起提供给大模型。

RAG 中构建知识库的解析方法

RAGFlow 是一款基于深度文档理解构建的开源 RAG 引擎,内置了丰富地文档解析方法,可以帮助用户快速构建知识库。

  • 基于 Tokens 数进行分割
  • 问答对(两列数据,一个提出问题,另一个用于答案)
  • 简历(不进行拆分,而是将简历解析为结构化数据)
  • 手册(使用最低的部分标题作为对文档进行切片的枢轴,同一部分中的图和表不会被分割,块大小可能会很大)
  • 表格(表数据,第一行必须是列标题,列标题必须是有意义的术语,以便我们的大语言模型能够理解)
  • 论文(按章节进行拆分,例如摘要、1.1、1.2等)
  • 书籍(为每本书设置页面范围、排队无用地部分)
  • 法律(法律文件有非常严格的书写格式,使用文本特征来检测分割点)
  • 演示文稿(每个页面都将被视为一个块。 并且每个页面的缩略图都会被存储)
  • 图像(如果图片中有文字,则应用 OCR 提取文字作为其文字描述;如果 OCR 提取的文本不够,使用视觉 LLM 来获取描述)
  • One(对于一个文档,它将被视为一个完整的块,根本不会被分割)

Elmo Chat - Your AI Web Copilot

Elmo Chat

概述

Elmo 是您的 AI 网络副驾驶,可创建摘要、洞察和扩展知识。

免费且无需 GPT/OpenAI 帐户和多语言支持。

功能亮点:

✅ 总结网站:将网络内容转换为快速、简短的摘要。

✅ 总结 YouTube:通过视频快速洞察和导航。

✅ 总结 Google Docs:高效创建 Google Docs 的简洁摘要。

✅ 与 PDF 聊天:简化对大型文档的理解。

✅ 回答问题:从网页获得即时答案。

✅ 关键字探索:在浏览过程中无缝提取相关信息。

✅ 翻译:轻松将文本翻译成不同的语言。

✅ 改写段落:简化和澄清复杂的句子。

如何使用?

🔹 单击“添加到 Chrome”按钮并将其固定到工具栏。

🔹 单击图标或按 Cmd/Ctrl + Shift + E 激活 Elmo Chat。

🔹 Elmo Chat 将为您总结当前网页。

在 macOS 上安装 PostgreSQL

安装 PostgreSQL

下载

安装

Installation Directory: /Library/PostgreSQL/16
Server Installation Directory: /Library/PostgreSQL/16
Data Directory: /Library/PostgreSQL/16/data
Database Port: 5432
Database Superuser: postgres
Operating System Account: postgres
Database Service: postgresql-16
Command Line Tools Installation Directory: /Library/PostgreSQL/16
pgAdmin4 Installation Directory: /Library/PostgreSQL/16/pgAdmin 4
Stack Builder Installation Directory: /Library/PostgreSQL/16
Installation Log: /tmp/install-postgresql.log

使用默认设置安装即可。

Locale 我选择了 zh_CN,在创建数据库的时候遇到了错误:The

GLM-4V-9B

GLM-4V-9B

GLM-4V-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源多模态版本。 GLM-4V-9B 具备 1120 * 1120 高分辨率下的中英双语多轮对话能力,在中英文综合能力、感知推理、文字识别、图表理解等多方面多模态评测中均表现优异。

总结

相比 CogVLM2 能力还是不如。

  • 识别手写有问题
  • 识别复杂表格有问题
  • 识别化学的答案有问题

文字识别

识别中文

提示词:输出图像中的文字

贵公司被认为中标人。中标价格为:307.6万元。 请贵公司在收到本中标通知书之日起30天内,携带所有签订合同所需的资料(包括但不限于法定代表人授权书、技术规范、技术图纸等),并按照招标文件和中标人的投标文件与项目单位订立书面合同。合同签订的安排由项目单位另行通知。 请贵公司收到本中标通知书后,签收并速回函确认。

  • ❌ 漏了
  • 👍 括号 () 识别成全角

识别手写英文

提示词:识别图像上的手写英文

I think student have many after-school classes is don't good for they. So I thing the student don't have after-school classes.

AutoGen

AutoGen

定义 Agent

from autogen import ConversableAgent

llm_config = {"model": "gpt-3.5-turbo"}

agent = ConversableAgent(
    name="chatbot",
    llm_config=llm_config,
    human_input_mode="NEVER",
)

reply = agent.generate_reply(
    messages=[{"content": "给我讲个笑话。", "role": "user"}]
)
print(reply)

// ...
为什么八卦杂志最爱讲床上故事?因为上面都有新闻!哈哈哈~
为什么兔子喜欢吃胡萝卜?因为胡萝卜有好处,营养丰富!

多智能体对话

双人笑话

Dify

Dify

介绍

Dify 是一款开源的大语言模型(LLM) 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。你可以基于任何模型自部署类似 Assistants API 和 GPTs 的能力,在灵活和安全的基础上,同时保持对数据的完全控制。

开发语言

语言 占比
TypeScript 49.9%
Python 45.5%
MDX 3.1%
CSS 0.9%
JavaScript 0.4%
SCSS 0.2%

配置兼容 OpenAI API(SiliconFlow)

Continue

Continue

介绍

Continue 使您能够在 IDE 中创建自己的 AI 代码助手。使用 VS CodeJetBrains 插件保持开发者的流畅体验,这些插件可以连接到任何模型、任何上下文以及任何其他你需要的东西。

  • 轻松理解代码部分
  • Tab 自动完成代码建议
  • 重构您正在编码的函数
  • 询问代码库相关问题
  • 快速使用文档作为上下文
  • 使用斜线命令启动操作
  • 将类、文件等添加到上下文
  • 立即了解终端错误

Continue 使您能够使用适合工作的模型,无论是开源还是商业,本地运行还是远程运行,用于聊天、自动完成或嵌入。它提供了许多配置点,以便您可以自定义扩展以适应您现有的工作流程。

开发语言

语言 占比
TypeScript 74.0%
Kotlin 11.8%
Rust 4.9%
CSS 3.6%
Scheme 2.5%
JavaScript 2.4%
Other 0.8%

贡献(Contributing)

使用

Ollama

开放 Ollama 服务

环境变量

  • OLLAMA_HOST: Ollama 服务器的 IP 地址(默认 127.0.0.1:11434)
  • OLLAMA_NUM_PARALLEL: 最大并行请求数(默认 1)
  • OLLAMA_MAX_LOADED_MODELS: 最大加载模型数量(默认 1)
  • OLLAMA_KEEP_ALIVE: 模型在内存中保持加载的持续时间(默认 5m),-1 表示永久保持加载。

Linux

  1. 安装 Ollama 服务。
curl -fsSL https://ollama.com/install.sh | sh

编辑 systemd 服务,调用 systemctl edit ollama.service。这将打开一个编辑器。 sudo systemctl edit ollama.service 对于每个环境变量,在 [Service] 部分下添加一行 Environment: [Service] Environment="OLLAMA_HOST=0.0.0.

LLM 技术栈

框架

[SGLang][SGLang]

SGLang 是一种专为大型语言模型 (LLM) 设计的结构化生成语言。它通过共同设计前端语言和运行时系统,使您与 LLM 的交互更快、更可控。

平台

[Dify][Dify]

Dify 是一个 UI 驱动的用于开发大语言模型应用程序的平台,它使原型设计更加容易访问。它支持用户使用提示词模板开发聊天和文本生成应用。此外,Dify 支持使用导入数据集的检索增强生成(RAG),并且能够与多个模型协同工作。我们对这类应用很感兴趣。不过,从我们的使用经验来看,Dify 还没有完全准备好投入大范围使用,因为某些功能目前仍然存在缺陷或并不成熟。但目前,我们还没有发现更好的竞品。

工具

[Continue][Continue]

Continue 使您能够在 IDE 中创建自己的 AI 代码助手。使用 VS Code 和 JetBrains 插件保持开发者的流畅体验,这些插件可以连接到任何模型、任何上下文以及任何其他你需要的东西。Continue 使您能够使用适合工作的模型,无论是开源还是商业,本地运行还是远程运行,用于聊天、自动完成或嵌入。它提供了许多配置点,以便您可以自定义扩展以适应您现有的工作流程。

[Ollama][Ollama] Ollama 是一个在本机上运行并管理大语言模型的工具。