创建并存储向量嵌入
Neo4j 的 向量索引 和 向量函数 允许您计算图中节点和关系属性之间的相似度。使用这些功能的前提是必须先将向量嵌入(Embeddings)设置为这些实体的属性。本页面展示了如何使用 GenAI 插件在 Neo4j 数据库中创建这些嵌入并将其存储为节点和关系的属性。
| 有关如何在 Neo4j 数据库上使用 GenAI 插件的实践指南,请参阅 嵌入与向量索引教程 → 使用云 AI 提供商创建嵌入。 |
生成并存储单个嵌入
使用 ai.text.embed() 函数为单个值生成向量嵌入。
语法 |
|
||
描述 |
使用指定的提供商将资源编码为向量。 |
||
输入 |
名称 |
类型 |
描述 |
|
|
要转换为嵌入的字符串。 |
|
|
|
要使用的 AI 提供商的标识符(不区分大小写)。请参阅 提供商 获取支持的选项。 |
|
|
|
提供商特定的配置选项。有关每个支持提供商的详细信息,请参阅 提供商。请注意,由于此参数可能包含敏感数据,因此它在 query.log 中会被脱敏处理。但是,如果函数调用拼写错误或查询格式不正确,它将被记录且不进行脱敏。 |
|
返回 |
|
为资源生成的向量嵌入。 |
|
| 此函数每次调用都会发送一个 API 请求,这可能会在网络流量和延迟方面产生大量开销。如果您想一次性生成多个嵌入,请使用 生成并存储一批嵌入。 |
生成并存储一批嵌入
使用 ai.text.embedBatch 过程通过单个 API 请求生成多个向量嵌入。此过程接受一组资源列表作为输入,并返回相同数量的结果行。
语法 |
|
||
描述 |
使用指定的提供商将给定的资源批次编码为向量。 |
||
输入 |
名称 |
类型 |
描述 |
|
|
要转换为嵌入的字符串。 |
|
|
|
要使用的 AI 提供商的标识符(不区分大小写)。请参阅 提供商 获取支持的选项。 |
|
|
|
提供商特定的配置选项。有关每个支持提供商的详细信息,请参阅 提供商。请注意,由于此参数可能包含敏感数据,因此它在 query.log 中会被脱敏处理。但是,如果函数调用拼写错误或查询格式不正确,它将被记录且不进行脱敏。 |
|
返回 |
名称 |
类型 |
描述 |
|
|
输入列表中对应元素的索引,用于将结果关联回输入。 |
|
|
|
给定的输入资源。 |
|
|
|
为该资源生成的向量嵌入。 |
|
|
此过程尝试在单个 API 请求中为所有提供的资源生成嵌入。提供过多的资源可能会导致 AI 提供商超时或拒绝请求。 |
提供商
您可以通过以下提供商创建向量嵌入
-
OpenAI (
openai) -
Azure OpenAI (
azure-openai) -
Google Vertex AI (
vertexai) -
Amazon Bedrock Titan 模型 (
bedrock-titan)
查询 CALL ai.text.embed.providers()(参见 参考)会显示插件安装版本中支持的提供商列表。
OpenAI
| 名称 | 类型 | 默认 | 描述 |
|---|---|---|---|
|
|
- |
模型 ID(参见 OpenAI → 模型)。 |
|
|
- |
OpenAI API 密钥(参见 OpenAI → API 密钥)。 |
|
|
|
可选的供应商选项,将按原样传递给 OpenAI 的请求(参见 OpenAI → 创建嵌入)。 |
Hello World!WITH
{
token: $openaiToken,
model: 'text-embedding-3-small',
vendorOptions: {
dimensions: 1024
}
} AS conf
RETURN ai.text.embed('Hello World!', 'openai', conf) AS result
您可以通过 genai.openai.baseurl 设置更改 OpenAI 的基础 URL(默认为 https://api.openai.com)。该更改适用于所有使用 OpenAI 的 ai.text.* 调用,包括 ai.text.embed、ai.text.embedBatch 和 ai.text.completion。请参阅 配置选项 → genai.openai.baseurl。 |
Azure OpenAI
| 名称 | 类型 | 默认 | 描述 |
|---|---|---|---|
|
|
- |
模型 ID(参见 Azure → Azure OpenAI in Foundry 模型)。 |
|
|
- |
Azure 资源名称。 |
|
|
- |
Azure OAuth2 持有者令牌 (bearer token)。 |
|
|
|
可选的供应商选项,将按原样传递给 Azure 的请求。 |
Hello World!WITH
{
token: $azureToken,
resource: 'my-azure-openai-resource',
model: 'text-embedding-3-small',
vendorOptions: {
dimensions: 1024
}
} AS conf
RETURN ai.text.embed('Hello World!', 'azure-openai', conf) AS result
Google VertexAI
| 名称 | 类型 | 默认 | 描述 |
|---|---|---|---|
|
|
- |
模型资源名称(参见 Vertex AI → 模型库 (Model Garden))。 |
|
|
- |
Google Cloud 项目 ID。 |
|
|
- |
Google Cloud 区域(参见 Vertex AI → 地点)。 |
|
|
|
模型发布者。 |
|
|
- |
Vertex AI API 密钥。 |
|
|
- |
Vertex AI API 访问令牌。 |
|
|
|
可选的供应商选项,将按原样传递给 Vertex 的请求(参见 Vertex AI → 方法:models.predict)。 |
必须提供 apiKey 或 token 中的其中一个。 |
Hello World!WITH
{
token: $vertexaiApiAccessKey,
model: 'gemini-embedding-001',
publisher: 'google',
project: 'my-google-cloud-project',
region: 'asia-northeast1',
vendorOptions: {
outputDimensionality: 1024
}
} AS conf
RETURN ai.text.embed('Hello World!', 'vertexai', conf) AS result
Amazon Bedrock Titan 模型
此提供商支持所有使用与 Titan 文本模型 相同请求参数和响应字段的模型。
| 名称 | 类型 | 默认 | 描述 |
|---|---|---|---|
|
|
- |
模型 ID 或其 ARN。 |
|
|
- |
Amazon 区域(参见 Amazon Bedrock → 模型支持)。 |
|
|
- |
Amazon 访问密钥 ID。 |
|
|
- |
Amazon 私有访问密钥。 |
|
|
|
可选的供应商选项,将按原样传递给 Bedrock 的请求(参见 Amazon Bedrock → 推理请求参数和响应字段)。 |
Hello World!WITH
{
accessKeyId: $awsAccessKeyId,
secretAccessKey: $secretAccessKey,
model: 'amazon.titan-embed-text-v1',
region: 'eu-west-2',
vendorOptions: {
dimensions: 1024
}
} AS conf
RETURN ai.text.embed('Hello World!', 'bedrock-titan', conf) AS result
(旧版)提供商已在 2025.11 版本中弃用
以下提供商配置用于 genai.vector.encode 函数和 genai.vector.encodeBatch 过程。这两个可调用对象已在 2025.11 版本中被弃用,并被 ai.text.embed 和 ai.text.embedBatch 所取代。有关旧可调用对象的更多信息,请参阅 旧版本文档。
OpenAI
-
标识符 (
provider参数):"OpenAI"
| 键 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
|
API 访问令牌。 |
必填 |
|
|
要调用的模型的名称。 |
|
|
|
将向量缩减到的维数。仅对某些模型支持。 |
依赖于模型。 |
Vertex AI
-
标识符 (
provider参数):"VertexAI"
| 键 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
|
API 访问令牌。 |
必填 |
|
|
GCP 项目 ID。 |
必填 |
|
|
要调用的模型的名称。 |
|
|
|
发送 API 请求的 GCP 区域。 支持的值
|
|
|
|
预期的下游应用程序(参见 提供商文档)。指定的 |
|
|
|
正在编码的文档标题(参见 提供商文档)。指定的 |
Azure OpenAI
-
标识符 (
provider参数):"AzureOpenAI"
| 与其他提供商不同,模型是在 Azure 上创建部署时配置的,因此不属于配置映射的一部分。 |
| 键 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
|
API 访问令牌。 |
必填 |
|
|
模型部署所在的资源名称。 |
必填 |
|
|
模型部署名称。 |
必填 |
|
|
将向量缩减到的维数。仅对某些模型支持。 |
依赖于模型。 |
Amazon Bedrock
-
标识符 (
provider参数):"Bedrock"
| 键 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
|
AWS 访问密钥 ID。 |
必填 |
|
|
AWS 私有密钥。 |
必填 |
|
|
要调用的模型的名称。
|
|
|
|
发送 API 请求的 AWS 区域。
|
|