本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工具是向 Amazon Nova 提供外部功能的一种方式,例如 API 调用或代码函数。本节将介绍在使用 Amazon Nova 模型时如何定义和集成工具。
工具的使用涉及三个高级步骤:
-
用户查询-您可以通过提供描述每个工具的功能和输入要求的 JSON 架构来定义 Amazon Nova 可以使用的工具。
-
工具选择-当用户发送消息时,Amazon Nova 将对其进行分析,以确定是否需要使用工具来生成响应。这被称为
Auto
工具选择。有关更多信息,请参阅选择工具。如果 Amazon Nova 找到了合适的工具,它将 “调用该工具” 并返回该工具的名称和要使用的参数。作为开发者,您负责根据模型的请求执行该工具。这意味着您需要编写调用工具功能并处理模型提供的输入参数的代码。
注意
像所有 LLM 回复一样,Amazon Nova 有可能产生工具调用的幻觉。作为开发者,您有责任验证该工具是否存在、输入的格式是否正确以及相应的权限是否已到位。
-
返回结果-执行该工具后,您必须以结构化格式将结果发送回 Amazon Nova。有效格式包括 JSON 或文本和图像的组合。这允许 Amazon Nova 将该工具的输出整合到对用户的最终响应中。
如果在工具执行过程中出现任何错误,您可以在工具对 Amazon Nova 的响应中注明这一点,从而允许 Amazon Nova 相应地调整其响应。
考虑一个简单的计算器工具示例:
工具调用工作流程的第一步是用户向 Amazon Nova 查询数学方程的结果,即 10 乘以 5。此查询与代表计算器的工具规格一起作为提示发送给 Amazon Nova。
user_query = "10*5"
messages = [{
"role": "user",
"content": [{"text": user_query}]
}]
tool_config = {
"tools": [
{
"toolSpec": {
"name": "calculator", # Name of the tool
"description": "A calculator tool that can execute a math equation", # Concise description of the tool
"inputSchema": {
"json": {
"type": "object",
"properties": {
"equation": { # The name of the parameter
"type": "string", # parameter type: string/int/etc
"description": "The full equation to evaluate" # Helpful description of the parameter
}
},
"required": [ # List of all required parameters
"equation"
]
}
}
}
}
]
}
Amazon Nova 允许在 Invoke 和 Converse API 中同时使用工具,但是,为了获得完整的功能广度,我们建议使用匡威 API,并将在未来使用此 API 的示例。