跳到主要内容

AI_EMBEDDING_VECTOR

本文档概述了 Databend 中的 ai_embedding_vector 函数,并演示了如何使用此函数创建文档嵌入向量。

主要代码实现可以在这里找到。

默认情况下,Databend 使用 text-embedding-ada 模型来生成嵌入向量。

信息

从 Databend v1.1.47 开始,Databend 支持 Azure OpenAI 服务

这一集成提供了更好的数据隐私保护。

要使用 Azure OpenAI,请在 [query] 部分添加以下配置:

# Azure OpenAI
openai_api_chat_base_url = "https://<name>.openai.azure.com/openai/deployments/<name>/"
openai_api_embedding_base_url = "https://<name>.openai.azure.com/openai/deployments/<name>/"
openai_api_version = "2023-03-15-preview"
警告

Databend 依赖 (Azure) OpenAI 进行 AI_EMBEDDING_VECTOR 处理,并将嵌入列数据发送到 (Azure) OpenAI。

它们仅在 Databend 配置包含 openai_api_key 时有效,否则将处于非活动状态。

此功能默认在 Databend Cloud 上使用我们的 Azure OpenAI 密钥提供。如果您使用它们,即表示您确认您的数据将由我们发送至 Azure OpenAI。

ai_embedding_vector 概述

Databend 中的 ai_embedding_vector 函数是一个内置函数,用于生成文本数据的向量嵌入。它在自然语言处理任务中非常有用,例如文档相似性、聚类和推荐系统。

该函数接受文本输入并返回一个高维向量,该向量表示输入文本的语义意义和上下文。嵌入向量是使用在大规模文本语料库上预训练的模型创建的,捕捉了单词和短语在连续空间中的关系。

使用 ai_embedding_vector 创建嵌入向量

要使用 ai_embedding_vector 函数为文本文档创建嵌入向量,请按照以下示例操作。

  1. 创建一个表来存储文档:
CREATE TABLE documents (
id INT,
title VARCHAR,
content VARCHAR,
embedding ARRAY(FLOAT32 NOT NULL)
);
  1. 向表中插入示例文档:
INSERT INTO documents(id, title, content)
VALUES
(1, '人工智能简史', '人工智能(AI)一直是科幻小说中一个引人入胜的概念,已有数十年的历史...'),
(2, '机器学习与深度学习', '机器学习和深度学习是人工智能的两个子集...'),
(3, '神经网络解析', '神经网络是一系列算法,旨在识别潜在的关系...'),
  1. 生成嵌入向量:
UPDATE documents SET embedding = ai_embedding_vector(content) WHERE embedding IS NULL;

运行查询后,表中的 embedding 列将包含生成的嵌入向量。

嵌入向量以 FLOAT32 值的数组形式存储在 embedding 列中,该列具有 ARRAY(FLOAT32 NOT NULL) 列类型。

现在,您可以使用这些嵌入向量进行各种自然语言处理任务,例如查找相似文档或根据内容对文档进行聚类。

  1. 检查嵌入向量:
SELECT length(embedding) FROM documents;
+-------------------+
| length(embedding) |
+-------------------+
| 1536 |
| 1536 |
| 1536 |
+-------------------+

上述查询显示,每个文档生成的嵌入向量长度为 1536(维度)。

开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册