文本生成与聊天

基于提示词生成文本

函数 ai.text.completion 可用于根据文本提示生成内容。这类似于向大语言模型(LLM)提交提示词。

使用 CALL ai.text.completion.providers()(参见 参考文档)查看支持的提供商及其配置选项。
ai.text.completion 的签名

语法

ai.text.completion(prompt, provider, configuration) :: STRING

描述

根据提供的提示词生成文本输出。

输入

名称

类型

描述

prompt

STRING

文本提示词。

provider

STRING

第三方 AI 提供商的名称,参见 提供商

配置

MAP

提供商特定的配置,参见 提供商

返回

STRING

基于所提供提示词生成的文本。

下面的示例选取了 5 部评分最高的电影,将它们的标题和剧情连接成一个由换行符分隔的字符串,并要求外部 AI 提供商从中选出最适合儿童观看的一部。

MATCH (n:Movie) WHERE n.imdbRating IS NOT NULL
ORDER BY n.imdbRating DESC LIMIT 50  (1)
WITH n.title + ': ' + n.plot AS movie  (2)
WITH
  reduce(acc = '', item IN collect(movie) | acc + item + '\n') AS movies,  (3)
  {
    token: $openaiToken,
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    }
  } AS config  (4)
RETURN ai.text.completion(
  'Here is a list of movies with their titles and plots. Recommend the most child-friendly one.\n\n' + movies,  (5)
  'openai',
  config
) AS result
1 选取 50 部评分最高的电影。
2 将标题和剧情连接为 <title>: <plot>
3 将所有电影连接成一个由换行符分隔的单一字符串。
4 提供商特定的配置,参见 提供商 → OpenAI
5 AI 模型的提示词。
结果

"《宇宙时空之旅》(Cosmos)。这是一部关于宇宙的科普纪录片,画面不血腥,是这里最适合儿童观看的选择(建议家长陪同较年幼的孩子观看)。"

下面的示例选取了 5 部评分最高的电影,将它们的标题和剧情连接成一个由换行符分隔的字符串,并要求外部 AI 提供商从中选出最适合儿童观看的一部。

MATCH (n:Movie) WHERE n.imdbRating IS NOT NULL
ORDER BY n.imdbRating DESC LIMIT 50  (1)
WITH n.title + ': ' + n.plot AS movie  (2)
WITH
  reduce(acc = '', item IN collect(movie) | acc + item + '\n') AS movies,  (3)
  {
    token: $azureOpenaiToken,
    resource: '<azure-openai-resource>',
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    }
  } AS config  (4)
RETURN ai.text.completion(
  'Here is a list of movies with their titles and plots. Recommend the most child-friendly one.\n\n' + movies,  (5)
  'azure-openai',
  config
) AS result
1 选取 50 部评分最高的电影。
2 将标题和剧情连接为 <title>: <plot>
3 将所有电影连接成一个由换行符分隔的单一字符串。
4 提供商特定的配置,参见 提供商 → Azure OpenAI
5 AI 模型的提示词。
结果

"《宇宙时空之旅》(Cosmos)。这是一部关于宇宙的科普纪录片,画面不血腥,是这里最适合儿童观看的选择(建议家长陪同较年幼的孩子观看)。"

下面的示例选取了 5 部评分最高的电影,将它们的标题和剧情连接成一个由换行符分隔的字符串,并要求外部 AI 提供商从中选出最适合儿童观看的一部。

MATCH (n:Movie) WHERE n.imdbRating IS NOT NULL
ORDER BY n.imdbRating DESC LIMIT 50  (1)
WITH n.title + ': ' + n.plot AS movie  (2)
WITH
  reduce(acc = '', item IN collect(movie) | acc + item + '\n') AS movies,  (3)
  {
    token: $vertexaiToken,
    model: 'gemini-2.5-flash-lite',
    publisher: 'google',
    project: '<google-cloud-project>',
    region: '<gcp-region>',
    vendorOptions: {
      systemInstruction: 'Be short.'
    }
  } AS config  (4)
RETURN ai.text.completion(
  'Here is a list of movies with their titles and plots. Recommend the most child-friendly one.\n\n' + movies,  (5)
  'vertexai',
  config
) AS result
1 选取 50 部评分最高的电影。
2 将标题和剧情连接为 <title>: <plot>
3 将所有电影连接成一个由换行符分隔的单一字符串。
4 提供商特定的配置,参见 提供商 → VertexAI
5 AI 模型的提示词。
结果

"最适合儿童观看的电影是《宇宙时空之旅》。

这是一部关于太空的科普纪录片,没有其他选项中的暴力或成人主题。

您想了解《宇宙时空之旅》的建议观看年龄范围吗?"

下面的示例选取了 5 部评分最高的电影,将它们的标题和剧情连接成一个由换行符分隔的字符串,并要求外部 AI 提供商从中选出最适合儿童观看的一部。

MATCH (n:Movie) WHERE n.imdbRating IS NOT NULL
ORDER BY n.imdbRating DESC LIMIT 50  (1)
WITH n.title + ': ' + n.plot AS movie  (2)
WITH
  reduce(acc = '', item IN collect(movie) | acc + item + '\n') AS movies,  (3)
  {
    accessKeyId: $awsAccessKeyId,
    secretAccessKey: $secretAccessKey,
    model: 'amazon.nova-micro-v1:0',
    region: '<region>',
    vendorOptions: {
      system: [{ text: 'Be short' }]
    }
  } AS config  (4)
RETURN ai.text.completion(
  'Here is a list of movies with their titles and plots. Recommend the most child-friendly one.\n\n' + movies,  (5)
  'bedrock-nova',
  config
) AS result
1 选取 50 部评分最高的电影。
2 将标题和剧情连接为 <title>: <plot>
3 将所有电影连接成一个由换行符分隔的单一字符串。
4 提供商特定的配置,参见 提供商 → Amazon Bedrock
5 AI 模型的提示词。
结果

"《宇宙时空之旅》最适合儿童观看。这是一部关于太空和科学的教育系列片,非常适合年轻的头脑。"

为多个值生成文本

函数 ai.text.aggregateCompletion 可用于根据文本提示为多个输入生成文本。它类似于对提供的每个值分别向 LLM 提交相同的提示词。

ai.text.aggregateCompletion 的签名

语法

ai.text.aggregateCompletion(value, prompt, provider, configuration = {}) :: STRING

描述

一种聚合函数,用于跨分组行从指定提示词生成文本。

输入参数

名称

类型

描述

STRING

要进行聚合的值。

prompt

STRING

用于生成文本的提示词。

provider

STRING

提供商标识符:'Azure-OpenAI', 'Bedrock', 'Bedrock-Nova', 'Bedrock-Titan', 'OpenAI', 'VertexAI'。

配置

MAP

提供商特定的配置,请使用 CALL ai.text.structuredCompletion.providers() 查找每个提供商所需的配置。您可以通过添加 vendorOptions(包含一个值映射)来指定额外的供应商选项,这些选项将随请求一起传递。

返回

STRING

基于所提供提示词生成的文本。

下面的示例按产品类别聚合了产品描述,并要求外部 AI 提供商将关键主题总结为简短的要点列表。

MATCH (p:Product)
WITH p, {
    token: $openaiToken,
    model: 'gpt-5-nano'
  } AS config
RETURN p.category AS category,
       ai.text.aggregateCompletion(
         p.description,  (1)
         'Summarize the key themes in these product descriptions as a short bullet list.',
         'openai',
         config
       ) AS category_summary  (2)
ORDER BY category;
1 value 参数表示正在聚合的表达式(例如组内变化的列)。它必须是 STRING 类型——请使用 Cypher 的 toString() 函数将非字符串值进行转换。
2 该函数为每个组生成一个 STRING
category category_summary

"书籍"

"- 富有想象力的叙事\n- 深刻的人物发展\n- 关于友谊与冒险的主题"

"电子产品"

"- 电池续航和快速充电\n- 摄像头质量\n- 性价比"

下面的示例按产品类别聚合了产品描述,并要求外部 AI 提供商将关键主题总结为简短的要点列表。

MATCH (p:Product)
WITH p, {
    token: $azureOpenaiToken,
    resource: '<azure-openai-resource>',
    model: 'gpt-5-nano'
  } AS config
RETURN p.category AS category,
       ai.text.aggregateCompletion(
         p.description,  (1)
         'Summarize the key themes in these product descriptions as a short bullet list.',
         'azure-openai',
         config
       ) AS category_summary  (2)
ORDER BY category;
1 value 参数表示正在聚合的表达式(例如组内变化的列)。它必须是 STRING 类型——请使用 Cypher 的 toString() 函数将非字符串值进行转换。
2 该函数为每个组生成一个 STRING
category category_summary

"书籍"

"- 引人入胜的情节\n- 易产生共鸣的角色\n- 励志信息"

"电子产品"

"- 性能和速度\n- 显示质量\n- 价格与功能比"

下面的示例按产品类别聚合了产品描述,并要求外部 AI 提供商将关键主题总结为简短的要点列表。

MATCH (p:Product)
WITH p, {
    token: $vertexaiToken,
    model: 'gemini-2.5-flash-lite',
    publisher: 'google',
    project: '<google-cloud-project>',
    region: '<gcp-region>'
  } AS conf
RETURN p.category AS category,
       ai.text.aggregateCompletion(
         p.description,  (1)
         'Summarize the key themes in these product descriptions as a short bullet list.',
         'vertexai',
         conf
       ) AS category_summary  (2)
ORDER BY category;
1 value 参数表示正在聚合的表达式(例如组内变化的列)。它必须是 STRING 类型——请使用 Cypher 的 toString() 函数将非字符串值进行转换。
2 该函数为每个组生成一个 STRING
category category_summary

"书籍"

"- 奇幻与科幻视角\n- 英雄成长轨迹\n- 友谊与探索"

"电子产品"

"- 电池寿命\n- 摄像头与屏幕\n- 价值"

下面的示例按产品类别聚合了产品描述,并要求外部 AI 提供商将关键主题总结为简短的要点列表。

MATCH (p:Product)
WITH p, {
    accessKeyId: $awsAccessKeyId,
    secretAccessKey: $secretAccessKey,
    model: 'amazon.nova-micro-v1:0',
    region: '<aws-region>'
  } AS conf
RETURN p.category AS category,
       ai.text.aggregateCompletion(
         p.description,  (1)
         'Summarize the key themes in these product descriptions as a short bullet list.',
         'bedrock-nova',
         conf
       ) AS category_summary  (2)
ORDER BY category;
1 value 参数表示正在聚合的表达式(例如组内变化的列)。它必须是 STRING 类型——请使用 Cypher 的 toString() 函数将非字符串值进行转换。
2 该函数为每个组生成一个 STRING
category category_summary

"书籍"

"- 冒险与奇迹\n- 角色成长\n- 积极的基调"

"电子产品"

"- 性能\n- 电池\n- 价格"

适当地使用分组键:所有未聚合的内容必须包含在 RETURN 分组中。
聚合可能涉及每组多行数据,因此请从简洁的提示词开始并进行迭代。

上下文聊天

函数 ai.text.chat 允许您作为单个会话的一部分与 LLM 交换多条消息。

聊天仅支持 OpenAI 和 Azure-OpenAI。使用 CALL ai.text.chat.providers()(参见 参考文档)查看支持的提供商及其配置选项。
ai.text.chat 的签名

语法

ai.text.chat(prompt, chatId, provider, configuration = {}) :: MAP

描述

基于指定提示词进行聊天,可选择继续之前的交互。

输入

名称

类型

描述

prompt

STRING

要发送的用户消息。

chatId

STRING

用于继续对话的前一个聊天 ID。如果这是对话中的第一条消息,请将其设置为 null

provider

STRING

提供商标识符:'azure-openai', 'openai'。参见 提供商

配置

MAP

提供商特定的选项。参见 提供商

返回

MAP

包含 message(响应文本)和用于后续消息的 chatId

开始新聊天

下面的示例选取了 5 部评分最高的电影,将它们的标题和剧情连接成一个由换行符分隔的字符串,并要求外部 AI 提供商推荐一部好的纪录片。

MATCH (n:Movie) WHERE n.imdbRating IS NOT NULL
ORDER BY n.imdbRating DESC LIMIT 50  (1)
WITH n.title + ': ' + n.plot AS movie  (2)
WITH
  reduce(acc = '', item IN collect(movie) | acc + item + '\n') AS movies,  (3)
  {
    token: $openaiToken,
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    }
  } AS config  (4)
RETURN ai.text.chat(
  'Here is a list of movies with their titles and plots. I like space documentaries. Any recommendations?\n\n' + movies,  (5)
  null,  (6)
  'openai',
  config
) AS result
1 选取 50 部评分最高的电影。
2 将标题和剧情连接为 <title>: <plot>
3 将所有电影连接成一个由换行符分隔的单一字符串。
4 提供商特定的配置,参见 提供商 → OpenAI
5 AI 模型的提示词。
6 chatId 设置为 null 以开始新对话。
结果
{
  message: "If you want space-only docs from your list:
- Cosmos (Carl Sagan) — classic, big-picture tour of the universe.
- From the Earth to the Moon — docudrama about the Apollo program.

Want more beyond this list? I can add newer options like Apollo 11 (2019) or The Farthest (Voyager missions).",
  chatId: "resp_091b98b67dee7acb006964c14aded4819490dc26975ceb91ce"
}
MATCH (n:Movie) WHERE n.imdbRating IS NOT NULL
ORDER BY n.imdbRating DESC LIMIT 50  (1)
WITH n.title + ': ' + n.plot AS movie  (2)
WITH
  reduce(acc = '', item IN collect(movie) | acc + item + '\n') AS movies,  (3)
  {
    token: $azureOpenaiToken,
    resource: '<azure-openai-resource>',
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    }
  } AS config  (4)
RETURN ai.text.chat(
  'Here is a list of movies with their titles and plots. I like space documentaries. Any recommendations?\n\n' + movies, (5)
  null,  (6)
  'azure-openai',
  config
) AS result
1 选取 50 部评分最高的电影。
2 将标题和剧情连接为 <title>: <plot>
3 将所有电影连接成一个由换行符分隔的单一字符串。
4 提供商特定的配置,参见 提供商 → OpenAI
5 AI 模型的提示词。
6 chatId 设置为 null 以开始新对话。
结果
{
  message: "If you want space-only docs from your list:
- Cosmos (Carl Sagan) — classic, big-picture tour of the universe.
- From the Earth to the Moon — docudrama about the Apollo program.

Want more beyond this list? I can add newer options like Apollo 11 (2019) or The Farthest (Voyager missions).",
  chatId: "resp_0c3bb8d81c23d3e5006964bec5ea68819593d9d55ee89357e2"
}

使用现有聊天 ID 继续聊天

下面的示例继续上一个示例的聊天,要求推荐特定类别的纪录片。

返回的聊天 ID 每次调用都不一样,因此如果您希望模型始终保持整个聊天的上下文,则需要在每次请求时更新它。每个请求都允许您通过分叉(fork)到目前为止提供的上下文来开启一个新的线程。
即使聊天 ID 被限制在生成它们的 API 令牌范围内,也应将它们视为敏感信息,因为后续消息可能会要求披露之前提供的信息(例如:我最初的要求是什么?)。
WITH
  {
    token: $openaiToken,
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    }
  } AS config
RETURN ai.text.chat(
  'Could you suggest something more animal oriented?',  (1)
  $chatId,  (2)
  'openai',
  config
) AS result
1 要发送的下一条提示词。
2 重复使用来自之前响应的聊天 ID 以继续对话。例如,通过参数传递它。
结果
{
  message: "Here are animal-oriented picks:

- Planet Earth (2006) – Stunning wildlife across habitats; classic nature documentary.
- Blue Planet II (2017) – Incredible marine life and ocean stories.
- My Octopus Teacher (2020) – Intimate, poetic look at one octopus and its world.
- The Cove (2009) – Investigative look at dolphin hunting; timely and provocative.
- Our Planet (2019) – Global nature series with beautiful visuals and conservation context.

Want streaming options or region help?",
  chatId: "resp_091b98b67dee7acb006964c4e9a6808194b6de0b1b00b307ec"
}
WITH
  {
    token: $azureOpenaiToken,
    resource: '<azure-openai-resource>',
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    }
  } AS config
RETURN ai.text.chat(
  'Could you suggest something more animal oriented?',  (1)
  $chatId,  (2)
  'azure-openai',
  config
) AS result
1 要发送的下一条提示词。
2 重复使用来自之前响应的聊天 ID 以继续对话。例如,通过参数传递它。
结果
{
  message: "Here are animal-oriented picks:

- Planet Earth (2006) – Stunning wildlife across habitats; classic nature documentary.
- Blue Planet II (2017) – Incredible marine life and ocean stories.
- My Octopus Teacher (2020) – Intimate, poetic look at one octopus and its world.
- The Cove (2009) – Investigative look at dolphin hunting; timely and provocative.
- Our Planet (2019) – Global nature series with beautiful visuals and conservation context.

Want streaming options or region help?",
  chatId: "resp_091b98b67dee7acb006964c6476ee08194a3f6e5f2bad4ddb8"
}

并行运行多个请求

要并行运行多个提示词的文本补全,您有两种选择

  1. 使用 CALL {…​} IN CONCURRENT TRANSACTIONS,每事务一行

    WITH ['Name a movie', 'Name a book'] AS prompts
    UNWIND prompts AS prompt
    CALL(prompt) {
      WITH
      {
        token: $openaiToken,
        model: 'gpt-5-nano'
      } AS config
      RETURN ai.text.completion(prompt, 'openai', config) AS response
    } IN CONCURRENT TRANSACTIONS OF 1 ROW
    RETURN response
  2. 使用 Cypher 的并行运行时企业版

    CYPHER runtime=parallel
    WITH
      {
        token: $openaiToken,
        model: 'gpt-5-nano'
      } AS config,
      ['Name a movie', 'Name a book'] AS prompts
    UNWIND prompts AS prompt
    RETURN ai.text.completion(prompt, 'openai', config) AS result

提供商

您可以通过以下提供商生成文本

  • OpenAI (openai)

  • Azure OpenAI (azure-openai)

  • Google Vertex AI (vertexai)

  • Amazon Bedrock Nova 模型 (bedrock-nova)

OpenAI

OpenAI 参数
名称 类型 默认 描述

model

STRING

-

模型 ID(参见 OpenAI → 模型)。

令牌 (token)

STRING

-

OpenAI API 密钥(参见 OpenAI → API 密钥)。

chatHistory

LIST<ANY>

[]

可选的对话历史记录,用于向模型提供上下文。传递一个 MAP 值列表,结构如下

  • roleuser(用户)或 assistant(助手)

  • content:表示消息的 STRING

vendorOptions

MAP

{}

可选的供应商选项,将按原样传递给 OpenAI 的请求(参见 OpenAI → 创建模型响应)。

用法示例
WITH
  {
    token: $openaiToken,
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    },
    chatHistory: [
      {
        role: "user",
        content: "My favorite movies are in the Fantasy or Sci-fi genre."
      },
      {
        role: "assistant",
        content: "Nice! fantasy and sci-fi have great vibes. Want tailored recs?"
      }
    ]
  } AS conf
RETURN ai.text.completion('Yes, please recommend a movie to me', 'openai', conf) AS result
您可以通过 genai.openai.baseurl 设置更改 OpenAI 的基础 URL(默认:https://api.openai.com)。该更改适用于所有使用 OpenAI 的 ai.text.* 调用。参见 配置设置 → genai.openai.baseurl

Azure OpenAI

Azure OpenAI 参数
名称 类型 默认 描述

model

STRING

-

模型 ID(参见 Azure → Azure OpenAI Foundry 模型)。

resource(资源)

STRING

-

Azure 资源名称。

令牌 (token)

STRING

-

Azure OAuth2 持有者令牌 (bearer token)。

chatHistory

LIST<ANY>

[]

可选的对话历史记录,用于向模型提供上下文。传递一个 MAP 值列表,结构如下

  • roleuser(用户)或 assistant(助手)

  • content:表示消息的 STRING

vendorOptions

MAP

{}

可选的供应商选项,将按原样传递给 Azure 的请求。

用法示例
WITH
  {
    token: $azureToken,
    resource: 'my-azure-openai-resource',
    model: 'gpt-5-nano',
    vendorOptions: {
      instructions: 'Be short.'
    },
    chatHistory: [
      {
        role: "user",
        content: "My favorite movies are in the Fantasy or Sci-fi genre."
      },
      {
        role: "assistant",
        content: "Nice! fantasy and sci-fi have great vibes. Want tailored recs?"
      }
    ]
  } AS conf
RETURN ai.text.completion('Yes, please recommend a movie to me', 'azure-openai', conf) AS result

Google VertexAI

VertexAI 参数
名称 类型 默认 描述

model

STRING

-

模型资源名称(参见 Vertex AI → 模型库 (Model Garden))。

project

STRING

-

Google Cloud 项目 ID。

region

STRING

-

Google Cloud 区域(参见 Vertex AI → 地点)。

publisher

STRING

'google'

模型发布者。

apiKey

STRING

-

Vertex AI API 密钥。

令牌 (token)

STRING

-

Vertex API 访问令牌。

chatHistory

LIST<ANY>

[]

可选的对话历史记录,用于向模型提供上下文。传递一个 MAP 值列表,结构如下

  • roleuser(用户)或 assistant(助手)

  • parts:一个 LIST,包含一个 MAP,其中键为 text,值为表示消息的字符串

vendorOptions

MAP

{}

可选的供应商选项,将按原样传递给 VertexAI 的请求(参见 Vertex AI → 方法: models.generateContent)。

必须提供 apiKeytoken 中的其中一个。
用法示例
WITH
  {
    token: $vertexaiApiAccessKey,
    model: 'gemini-2.5-flash-lite',
    publisher: 'google',
    project: 'my-google-cloud-project',
    region: 'asia-northeast1',
    vendorOptions: {
      systemInstruction: 'Be short.'
    },
    chatHistory: [
      {
        role: "user",
        parts: [
          { text: "My favorite movies are in the Fantasy or Sci-fi genre." }
        ]
      },
      {
        role: "model",
        parts: [
          { text: "Nice! fantasy and sci-fi have great vibes. Want tailored recs?" }
        ]
      }
    ]
  } AS conf
RETURN ai.text.completion('Yes, please recommend a movie to me', 'vertexai', conf) AS result

Amazon Bedrock 模型

该提供商支持大多数 Bedrock 模型,并遵循 Converse API

Amazon Bedrock 参数
名称 类型 默认 描述

model

STRING

-

模型 ID 或其 ARN。

region

STRING

-

Amazon 区域(参见 Amazon Bedrock → 模型支持)。

accessKeyId

STRING

-

Amazon 访问密钥 ID。

secretAccessKey

STRING

-

Amazon 私有访问密钥。

chatHistory

LIST<ANY>

[]

可选的对话历史记录,用于向模型提供上下文。传递一个 MAP 值列表,结构如下

  • roleuser(用户)或 assistant(助手)

  • content:一个 LIST,包含一个 MAP,其中键为 text,值为表示消息的字符串

vendorOptions

MAP

{}

可选的供应商选项,将按原样传递给 Bedrock 的请求(参见 Amazon Bedrock → 推理请求参数和响应字段)。

用法示例
WITH
  {
    accessKeyId: $awsAccessKeyId,
    secretAccessKey: $secretAccessKey,
    model: 'amazon.nova-micro-v1:0',
    region: 'eu-west-2',
    vendorOptions: {
      system: [{ text: 'Be short' }],
      inferenceConfig: { maxTokens: 1024 }
    },
    chatHistory: [
       {
         role: "user",
         content: [
           { text: "My favorite movies are in the Fantasy or Sci-fi genre." }
         ]
       },
       {
         role: "assistant",
         content: [
           { text: "Nice! fantasy and sci-fi have great vibes. Want tailored recs?" }
         ]
       }
    ]
  } AS conf
RETURN ai.text.completion('Yes, please recommend a movie to me', 'bedrock-nova', conf) AS result

Amazon Bedrock Nova 模型

该提供商支持所有使用与 Nova 文本模型相同请求参数和响应字段的模型。

Amazon Bedrock Nova 参数
名称 类型 默认 描述

model

STRING

-

模型 ID 或其 ARN。

region

STRING

-

Amazon 区域(参见 Amazon Bedrock → 模型支持)。

accessKeyId

STRING

-

Amazon 访问密钥 ID。

secretAccessKey

STRING

-

Amazon 私有访问密钥。

chatHistory

LIST<ANY>

[]

可选的对话历史记录,用于向模型提供上下文。传递一个 MAP 值列表,结构如下

  • roleuser(用户)或 assistant(助手)

  • content:一个 LIST,包含一个 MAP,其中键为 text,值为表示消息的字符串

vendorOptions

MAP

{}

可选的供应商选项,将按原样传递给 Bedrock 的请求(参见 Amazon Bedrock → 推理请求参数和响应字段)。

用法示例
WITH
  {
    accessKeyId: $awsAccessKeyId,
    secretAccessKey: $secretAccessKey,
    model: 'amazon.nova-micro-v1:0',
    region: 'eu-west-2',
    vendorOptions: {
      system: [{ text: 'Be short' }],
      inferenceConfig: { maxTokens: 1024 }
    },
    chatHistory: [
       {
         role: "user",
         content: [
           { text: "My favorite movies are in the Fantasy or Sci-fi genre." }
         ]
       },
       {
         role: "assistant",
         content: [
           { text: "Nice! fantasy and sci-fi have great vibes. Want tailored recs?" }
         ]
       }
    ]
  } AS conf
RETURN ai.text.completion('Yes, please recommend a movie to me', 'bedrock-nova', conf) AS result

Amazon Bedrock Titan 模型
AWS 已停止为文本生成提供 Amazon Bedrock Titan。

该提供商支持所有使用与 Titan 文本模型相同请求参数和响应字段的模型。配置和用法类似于 Bedrock Nova 模型,但不支持 chatHistory

Titan 模型具有不同的 vendorOptions,参见 Amazon Bedrock → Titan 文本模型