本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Nova 多模态理解模型可用于通过 Invoke API (InvokeModel、InvokeModelWithResponseStream) 和匡威 API(Converse 和)进行推理。ConverseStream要创建对话应用程序,请参阅使用匡威 API 操作进行对话。这两种 API 方法(Invoke 和 Converse)都遵循非常相似的请求模式,详见下文
调用 API 和 Converse API 之间的主要区别如下:
-
Converse 不支持像 TopK 这样的推理参数,需要传入
additionalModelRequestFields
,而在 Invoke API 中,它可以直接在推理参数中传递。 -
文档支持仅限于 Converse API,调用 API 不支持。
-
调用 API 和 Converse API 结构的响应解析格式不同。
-
ConverseStream
和之间的响应流是不同的InvokeModelWithStreaming
。
Messages API 概述
Amazon Nova 理解模型使用消息 API,它允许提交包含文本、图像、视频和文档的输入消息的结构化列表。然后,模型在对话中生成下一条消息。Messages API 支持单一查询和无状态多回合对话,允许创建聊天机器人和虚拟助手应用程序。该 API 管理用户与 Amazon Nova 模特(助手)之间的对话交流。
Amazon Nova 模型经过训练,可以在交替的用户和助手对话中进行操作。创建新消息时,您可以使用消息参数指定之前的对话回合。然后,模型生成对话中的下一条消息。
每条输入消息都必须是一个包含角色和内容的对象。用户可以使用用户角色指定一条消息,也可以包含多条同时具有用户和助理角色的消息。但是,第一条消息必须始终使用用户角色。如果采用预填充来自Amazon Nova的回复的技术(通过在助手角色中添加最后一条消息),则模型将继续根据所提供的内容进行回应。这种方法仍将导致助理角色的回应。
以下内容代表一条用户消息:
[{
"role": "user",
"content": [{"text":"Hello, Nova"}]
}]
以下是具有多个对话回合的示例:
[
{"role": "user", "content": [{"text": "Hello there."}]},
{"role": "assistant", "content": [{"text": "Hi, I'm Chatbot trained to answer your questions. How can I help you?"}]},
{"role": "user", "content": [{"text": "Can you explain LLMs in plain English?"}]}
]
以下是来自亚马逊 Nova 的部分填写回复的示例:
[
{"role": "user", "content": [{"text":"Please describe yourself using only JSON"}]},
{"role": "assistant", "content": [{"text":"Here is my JSON description:\n{"}]}
]
有关为 Amazon Nova 机型创建提示的信息,请参阅文本理解提示最佳实践。
使用系统提示符
您可以在请求中加入系统提示。系统提示允许您向 Amazon Nova 提供背景和说明,例如指定特定的目标或角色。在system
字段中指定系统提示符,如以下示例所示:
[
{"text": "You are an expert SaS analyst......"}
]