在人工智能领域,多模态能力是指系统能够处理和理解多种类型的数据,如文本、图像、声音等。CapybaraDB 最近宣布推出了 EmbImage,这是一个强大的新特性,它将多模态能力引入到检索增强型生成(Retrieval-Augmented Generation,简称 RAG)应用中。EmbImage 的推出,使得开发者可以将图像无缝地整合到他们的 RAG 流程中,从而实现更全面、更丰富的人工智能应用。
EmbImage 是什么?
EmbImage 是 CapybaraDB 中为存储和处理图像而设计的一种特殊数据类型。它通过以下方式启用多模态能力:
- 视觉模型处理:允许图像被视觉模型处理以提取文本描述。
- 嵌入向量搜索:使用提取的描述进行向量搜索。
- 存储与其他文档数据:将图像与其它文档数据一同存储。
当图像使用 EmbImage 存储在数据库中时,它会在后台异步处理:
- 如果指定了视觉模型,图像将被分析以生成文本描述。
- 如果指定了嵌入模型,这些描述将被嵌入以进行语义搜索。
- 结果存储在
chunks
属性中,可供检索使用。
图像 RAG 的重要性
传统的 RAG 应用主要关注基于文本的内容,限制了它们理解和处理视觉信息的能力。有了 EmbImage,应用现在可以:
- 理解视觉内容:使用最先进的视觉模型从图像中提取有意义的信息。
- 跨模态搜索:根据文本查询找到相关图像,或根据图像内容找到文本。
- 构建更丰富的应用:创建包含文本和视觉信息的更全面的知识点。
支持的模型
EmbImage 支持一系列强大的视觉和嵌入模型:
- 视觉模型:GPT-4o Mini、GPT-4o、GPT-4o Turbo、GPT-o1。
- 嵌入模型:text-embedding-3-small、text-embedding-3-large、text-embedding-ada-002。
EmbImage 的高级配置
EmbImage 提供了多种配置选项,以微调图像的处理方式:
- data:base64 编码的图像数据。
- emb_model:用于文本块的嵌入模型。
- vision_model:用于分析图像的视觉模型。
- max_chunk_size:每个文本块的最大字符长度。
- chunk_overlap:连续块之间的重叠字符数。
- is_separator_regex:是否将分隔符视为正则表达式模式。
- separators:分隔符字符串或正则表达式模式列表。
- keep_separator:如果为真,则分隔符保留在分块文本中。
EmbImage 在现实世界中的应用
EmbImage 的加入为 RAG 应用带来了激动人心的可能性:
- 增强型文档系统:技术文档现在可以通过语义搜索包含图表和屏幕截图。
- 医学图像分析:医疗记录可以包括文本注释和医学图像,以实现全面的检索。
- 电子商务搜索:产品目录可以利用产品描述和图像进行更准确的搜索结果。
- 内容管理:媒体库可以使用自然语言查询进行搜索,这些查询能够理解图像内容。
- 教育资源:包含文本和视觉元素的学习材料可以更有效地组织和检索。
EmbImage 的工作原理:异步处理
当您将包含 EmbImage 的文档插入 CapybaraDB 时,以下步骤会异步发生:
- 数据验证和解码:验证 base64 编码的图像数据并进行解码。
- 视觉模型处理:图像由指定的视觉模型分析以提取文本描述。
- 分块(如果适用):根据您的配置,提取的文本可能被分割成块。
- 嵌入:文本块被转换为使用指定嵌入模型的向量表示。
- 索引:生成的嵌入被索引以进行高效的语义搜索。
这种异步处理确保了写操作保持快速,同时在插入后不久使内容可用于语义搜索。
如何开始使用 EmbImage
要开始在您的 RAG 应用中使用 EmbImage,请更新到最新版本的 CapybaraDB SDK:
- 对于 Python:
pip install capybaradb --upgrade
- 对于 JavaScript:
npm install capybaradb@latest
随着 EmbImage 的发布,CapybaraDB 继续推动 RAG 应用的可能性边界。通过将多模态能力引入平台,开发者现在可以创建更全面、上下文感知的人工智能应用,这些应用能够理解文本和视觉内容。