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">收集数据:收集你计划使用的图像,确保它们组织良好且信息不过载。 上传数据:设置一个AWS S3存储桶来存储你的图像,确保基于云的AI模型可以在稍后访问它们。 转录数据:配置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 管理控制台 访问 AWS 管理控制台。 使用您的 AWS 凭证登录。 在 AWS 管理控制台中,在搜索栏中输入“S3”,并从服务列表中选择S3。
步骤 2:创建一个新存储桶 点击创建存储桶按钮。

输入一个唯一的存储桶名称 —必须是全球唯一并符合 AWS 命名规范。 取消选中“阻止所有公共访问”复选框。

点击页面底部的创建存储桶。
步骤 4:配置存储桶以允许公共访问 转到新存储桶的权限标签。 点击存储桶策略,并输入以下 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 账户访问 OpenAI 网站:前往 OpenAI 的 API 密钥部分。 注册:点击注册按钮并创建一个新账户。如果您已经有账户,请直接登录。
第2步:获取API访问权限并获取API密钥注册API访问权限:按照说明注册API访问权限。您可能需要提供一些账单信息。 进入API密钥部分:一旦您的帐户设置并获得批准,请返回到OpenAI仪表板中的API密钥部分(上面提供的链接)。 生成API密钥:点击创建API密钥按钮以生成新的API密钥。确保安全存储此密钥,因为稍后您将需要它。

太好了!现在我们有了自己的API密钥,稍后我们将用它来处理我们的图像。 注意:如果您刚创建了帐户,您可能无法访问诸如GPT-4o的模型。在这种情况下,您可以选择使用GPT-4o Mini或通过Azure的API访问OpenAI的模型。
自动化过程现在设置过程已经完成,我们可以进入有趣的部分——节省数百小时的时间,并在此过程中使您的知识库提高十倍! 我花了相当长的时间来完善这个脚本,但现在我希望能为您节省大量的时间和精力。 您可以通过这个GitHub 仓库完全免费地访问脚本、提示模板和示例 ‘.env’文件。 https://github.com/MarcosSan4/ImageKB/tree/main 设置您的环境在深入脚本之前,请确保您已: 在‘.env’中设置环境变量(GitHub 仓库中有示例文件)。 安装所有要求(可在‘requirements.txt’中找到)。
图像转录 — 核心功能脚本的核心功能围绕处理图像、将其上传到 AWS S3 存储桶,然后将图像发送到 GPT-4o 进行转录。其工作原理如下: 上传图像到 S3:脚本遍历指定的 'folder_path' 中的所有文件夹,将每个图像从指定文件夹上传到 AWS S3 存储桶。它还确保图像可公开访问。 使用 GPT-4o 转录图像:一旦图像上传到 S3,其 URL 将与预定义提示一起发送到 OpenAI 的 GPT-4o 模型。GPT-4o 处理图像并返回其内容的详细转录。 存储转录:接收到的转录被附加到各自图像文件夹中的 'transcriptions.txt' 文件中。该文件累积所有处理图像的转录,以分隔符分隔以便清晰,并在文件夹之间进行划分。

杂项功能除了主要的图像处理工作流程外,该脚本还包含几个附加功能,以增强其实用性: 总结和向量化:在收集转录内容后,脚本可以将内容总结为总体概念,并创建新的向量,以确保最大程度地覆盖内容。这些向量对于将数据集成到知识库中至关重要。 文件夹处理:脚本递归处理指定目录内的所有子文件夹,确保每个图像都被处理。这使得组织和管理大型数据集变得容易。 更新转录文件名:为了跟踪每个转录文件中的向量数量,脚本可以更新文件名以包含此信息。 合并转录:它提供选项将文件夹内的所有转录合并为一个文件,可以选择保留在各自的主文件夹中或合并到根目录中的一个文件。 计数向量:脚本统计每个主文件夹中的向量数量,提供数据量的快速概览,并确保完整性。 上传向量到Qdrant:最后,脚本将所有向量上传到Qdrant向量存储。通过修改代码,可以自由使用其他数据库提供商。
最后的想法在一个知识就是力量的世界里,不要让您的数据仅限于纯文本。利用 AI 无缝转录并将图像整合到您的知识库中,将数小时的手动工作转变为高效的自动化流程。 无论您拥有一小部分图像还是庞大的集合,这种方法都将增强您数据的价值和可用性。 请记住,关键步骤是: 收集数据:收集您的图像。 上传数据:将其存储在云服务中。 转录数据:使用 AI 生成详细描述。 组织和向量化:确保您的知识库全面且高效。
那么… 就到这里吧! |