链载Ai

标题: 不要将你的 RAG 知识库限制在文本上 [打印本页]

作者: 链载Ai    时间: 4 小时前
标题: 不要将你的 RAG 知识库限制在文本上

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">在构建知识库时,一个常见的挑战是将所有内容转换为纯文本。在处理幻灯片、PDF、图像等媒体源时,这可能会有限制。

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">那么,我们如何充分利用非纯文本的数据呢?

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">得益于最近的AI进展,现在变得比以往任何时候都更容易和便宜。通过使用具有视觉能力的大型语言模型(LLMs),我们可以转录成千上万的图像,不仅捕捉文本,还理解内容之间的关系。这些模型甚至可以在需要时描述图像中的视觉对象,提供比OCR更丰富、更详细的转录。

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">我们将通过以下三个简单步骤开始:

    ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1">
  1. 收集数据:收集你计划使用的图像,确保它们组织良好且信息不过载。

  2. 上传数据:设置一个AWS S3存储桶来存储你的图像,确保基于云的AI模型可以在稍后访问它们。

  3. 转录数据:配置OpenAI API(或任何其他LLM API)来处理你的图像转录。

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">在设置好这些组件后,我们将讨论如何自动化整个过程,使在几分钟内转录数百张图像变得高效。

ingFang SC", Cambria, Cochin, Georgia, serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">收集数据

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">首先,收集您将用作数据源的图像。

ingFang SC", Cambria, Cochin, Georgia, serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">这些图像可以来自照片、幻灯片、PDF等。

尽量避免在单个图像中塞入大量信息——无论其来源是什么。这主要是为了避免给LLM带来负担,并减少出错或遗漏信息的可能性。

虽然自动化过程主要是为了处理如 .png、.jpg 和 .jpeg 等图像文件,但也可以适应其他文件类型。

上传数据

由于我们将使用基于云的 LLM,如 GPT-4o 进行转录(您也可以使用其他模型),我们需要将所有图像上传到服务器。

最简单的方法之一是使用 AWS S3 存储桶,这允许我们几乎无限制地上传图像——与 Imgur 等提供商不同。

您使用哪个提供商并不重要,只需确保图像可以通过其链接公开访问。否则,基于云的 LLM 将无法访问它们。

如何创建一个 Amazon S3 存储桶

步骤 1:登录到 AWS 管理控制台

  1. 访问 AWS 管理控制台。

  2. 使用您的 AWS 凭证登录。

  3. 在 AWS 管理控制台中,在搜索栏中输入“S3”,并从服务列表中选择S3

步骤 2:创建一个新存储桶

  1. 点击创建存储桶按钮。

  1. 输入一个唯一的存储桶名称 —必须是全球唯一并符合 AWS 命名规范。

  2. 取消选中“阻止所有公共访问”复选框。

  1. 点击页面底部的创建存储桶

步骤 4:配置存储桶以允许公共访问

  1. 转到新存储桶的权限标签。

  2. 点击存储桶策略,并输入以下 JSON 策略以允许公共读取访问:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::{enter_bucket_name}/*"
}
]
}

重要!确保用您自己的存储桶名称替换{enter_bucket_name}

存储桶设置完成!

这将在转录过程中发挥关键作用,您稍后会看到所有内容是如何结合在一起的。

转录数据

如前所述,我们将通过 OpenAI 的 API 使用 GPT-4o 进行此示例。

为了做到这一点,请确保您已遵循以下步骤:

步骤 1:创建 OpenAI 账户

  1. 访问 OpenAI 网站:前往 OpenAI 的 API 密钥部分。

  2. 注册:点击注册按钮并创建一个新账户。如果您已经有账户,请直接登录。

第2步:获取API访问权限并获取API密钥

  1. 注册API访问权限:按照说明注册API访问权限。您可能需要提供一些账单信息。

  2. 进入API密钥部分:一旦您的帐户设置并获得批准,请返回到OpenAI仪表板中的API密钥部分(上面提供的链接)。

  3. 生成API密钥:点击创建API密钥按钮以生成新的API密钥。确保安全存储此密钥,因为稍后您将需要它。

太好了!现在我们有了自己的API密钥,稍后我们将用它来处理我们的图像。

注意:如果您刚创建了帐户,您可能无法访问诸如GPT-4o的模型。在这种情况下,您可以选择使用GPT-4o Mini或通过Azure的API访问OpenAI的模型。

自动化过程

现在设置过程已经完成,我们可以进入有趣的部分——节省数百小时的时间,并在此过程中使您的知识库提高十倍!

我花了相当长的时间来完善这个脚本,但现在我希望能为您节省大量的时间和精力。

您可以通过这个GitHub 仓库完全免费地访问脚本提示模板示例 ‘.env’文件。

https://github.com/MarcosSan4/ImageKB/tree/main

设置您的环境

在深入脚本之前,请确保您已:

  1. 在‘.env’中设置环境变量(GitHub 仓库中有示例文件)。

  2. 安装所有要求(可在‘requirements.txt’中找到)。

图像转录 — 核心功能

脚本的核心功能围绕处理图像、将其上传到 AWS S3 存储桶,然后将图像发送到 GPT-4o 进行转录。其工作原理如下:

  1. 上传图像到 S3:脚本遍历指定的 'folder_path' 中的所有文件夹,将每个图像从指定文件夹上传到 AWS S3 存储桶。它还确保图像可公开访问。

  2. 使用 GPT-4o 转录图像:一旦图像上传到 S3,其 URL 将与预定义提示一起发送到 OpenAI 的 GPT-4o 模型。GPT-4o 处理图像并返回其内容的详细转录。

  3. 存储转录:接收到的转录被附加到各自图像文件夹中的 'transcriptions.txt' 文件中。该文件累积所有处理图像的转录,以分隔符分隔以便清晰,并在文件夹之间进行划分。

杂项功能

除了主要的图像处理工作流程外,该脚本还包含几个附加功能,以增强其实用性:

  1. 总结和向量化:在收集转录内容后,脚本可以将内容总结为总体概念,并创建新的向量,以确保最大程度地覆盖内容。这些向量对于将数据集成到知识库中至关重要。

  2. 文件夹处理:脚本递归处理指定目录内的所有子文件夹,确保每个图像都被处理。这使得组织和管理大型数据集变得容易。

  3. 更新转录文件名:为了跟踪每个转录文件中的向量数量,脚本可以更新文件名以包含此信息。

  4. 合并转录:它提供选项将文件夹内的所有转录合并为一个文件,可以选择保留在各自的主文件夹中或合并到根目录中的一个文件。

  5. 计数向量:脚本统计每个主文件夹中的向量数量,提供数据量的快速概览,并确保完整性。

  6. 上传向量到Qdrant:最后,脚本将所有向量上传到Qdrant向量存储。通过修改代码,可以自由使用其他数据库提供商。

最后的想法

在一个知识就是力量的世界里,不要让您的数据仅限于纯文本。利用 AI 无缝转录并将图像整合到您的知识库中,将数小时的手动工作转变为高效的自动化流程。

无论您拥有一小部分图像还是庞大的集合,这种方法都将增强您数据的价值和可用性。

请记住,关键步骤是:

  1. 收集数据:收集您的图像。

  2. 上传数据:将其存储在云服务中。

  3. 转录数据:使用 AI 生成详细描述。

  4. 组织和向量化:确保您的知识库全面且高效。

那么… 就到这里吧!






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5