調用工具 - Amazon Nova

調用工具

如果 Amazon Nova 決定呼叫工具,則會在助理訊息中傳回工具使用區塊,且停止原因將為「tool_use」。該工具區塊將包含工具的名稱及其輸入。

注意

為了提高工具呼叫的準確性,Amazon Nova 模型的預設行為是將思維鏈推理用於工具呼叫。思考過程將在助理訊息中提供給您,並包含在 <thinking> 標籤中。回應中可能會有多個工具呼叫和思考區塊,因此您的應用程式應該將此納入考量。

如果工具選擇設定為 anytool,這會覆寫思維鏈的行為,且回應只會包含必要的工具呼叫。

{ "toolUse": { "toolUseId": "tooluse_20Z9zl0BQWSXjFuLKdTJcA", "name": "top_song", "input": { "sign": "WZPZ" } } }

若要實際呼叫工具,可以從訊息中擷取工具名稱和引數,然後應用程式就可以叫用它。

以下是如何處理工具呼叫的範例。

def get_top_song(sign): print(f"Getting the top song at {sign}") return ("Espresso", "Sabrina Carpenter") stop_reason = response["stopReason"] tool, song, artist = None, None, None if stop_reason == "tool_use": thought_process = next( block["text"] for block in response["output"]["message"]["content"] if "text" in block ) print(thought_process) tool = next( block["toolUse"] for block in response["output"]["message"]["content"] if "toolUse" in block ) if tool["name"] == "top_song": song, artist = get_top_song(tool["input"]["sign"])

當您定義和調用工具時,務必謹記安全性。像 Amazon Nova 這樣的 LLM 無法存取工作階段詳細資訊,因此在調用工具之前,應在必要時驗證權限。依賴工作階段中的使用者詳細資訊,而不是增強提示詞並允許 Amazon Nova 將其注入工具呼叫。