使用電腦使用工具完成 Amazon Bedrock 模型回應 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用電腦使用工具完成 Amazon Bedrock 模型回應

電腦使用是一種 Anthropic Claude 模型功能 (測試版),僅適用於 Anthropic Claude 3.7 Sonnet 和 Claude 3.5 Sonnet v2。在使用電腦時,Claude 可協助您透過基本的 GUI 動作自動化任務。

警告

電腦使用功能會以「Beta 版服務」的形式提供給您,如 AWS 服務條款所定義。其受您與 AWS 的協議、AWS 服務條款以及適用的模型 EULA 所約束。請注意,電腦使用 API 會產生與標準 API 功能或聊天介面不同的唯一風險。使用電腦使用 API 與網際網路互動時,這些風險會提高。為了將風險降至最低,請考慮採取預防措施,例如:

  • 在專用虛擬機器或容器中以最低權限操作電腦使用功能,以防止直接系統攻擊或意外事故。

  • 為避免資訊遭竊,請避免讓電腦使用 API 存取敏感帳戶或資料。

  • 限制電腦使用 API 對必要網域的網際網路存取,以減少對惡意內容的暴露。

  • 為了確保適當的監督,請在執行敏感任務 (例如可能對現實世界產生重大影響的決策) 以及需要明確同意的任何項目 (例如接受 Cookie、執行金融交易,或同意服務條款) 時,保留人工介入環節。

您啟用 Claude 以查看或存取的任何內容都可能覆寫指示,或導致 Claude 發生錯誤或執行意外動作。採取適當的預防措施 (例如將 Claude 與敏感表面隔離) 至關重要,包括避免與提示注入相關的風險。在啟用或請求啟用自有產品中電腦使用功能所需的許可之前,請通知最終使用者任何相關風險,並適時取得其同意。

電腦使用 API 提供數種預先定義的電腦使用工具 (computer_20241022Bash_20241022text_editor_20241022) 供您使用。然後,您可以使用請求建立提示,例如「傳送電子郵件給 Ben,其中包含上次會議的筆記」和螢幕擷取畫面 (必要時)。回應包含 JSON 格式的 tool_use 動作清單 (例如 scroll_down、left_button_press、螢幕擷取畫面)。程式碼會執行電腦動作,並向 Claude 提供顯示輸出的螢幕擷取畫面 (當要求時)。

工具參數已更新為接受多型工具類型;正在新增 tool.type 屬性來區分它們。type 是選用的;如果省略,則假設工具是自訂工具 (先前支援的唯一工具類型)。此外,已新增參數 anthropic_beta,其對應的列舉值為:computer-use-2024-10-22。只有使用此參數和列舉提出的請求才能使用新的電腦使用工具。其可以指定如下:"anthropic_beta": ["computer-use-2024-10-22"]

若要搭配 Anthropic Claude 3.5 Sonnet v2 使用電腦,您可以使用 Converse API (ConverseConverseStream)。您可以在 additionalModelRequestFields 欄位中指定電腦使用特定欄位。如需呼叫 Converse API 的詳細資訊,請參閱與 Converse API 操作進行對話

您可以搭配基本推論操作 (InvokeModelInvokeModelWithResponseStream) 使用工具。若要尋找您在請求內文中傳遞的推論參數,請參閱 Anthropic Claude 訊息 API

如需詳細資訊,請參閱 Anthropic 文件中的電腦使用 (beta 版)

範例程式碼

下列程式碼說明如何呼叫電腦使用 API。輸入是 AWS 主控台的影像。

with open('test_images/console.png', 'rb') as f: png = f.read() response = bedrock.converse( modelId='anthropic.claude-3-5-sonnet-20241022-v2:0', messages=[ { 'role': 'user', 'content': [ { 'text': 'Go to the bedrock console' }, { 'image': { 'format': 'png', 'source': { 'bytes': png } } } ] } ], additionalModelRequestFields={ "tools": [ { "type": "computer_20241022", "name": "computer", "display_height_px": 768, "display_width_px": 1024, "display_number": 0 }, { "type": "bash_20241022", "name": "bash", }, { "type": "text_editor_20241022", "name": "str_replace_editor", } ], "anthropic_beta": ["computer-use-2024-10-22"] }, toolConfig={ 'tools': [ { 'toolSpec': { 'name': 'get_weather', 'inputSchema': { 'json': { 'type': 'object' } } } } ] }) print(json.dumps(response, indent=4))

回應範例

範例程式碼發出的輸出與下列內容類似。

{ "id": "msg_bdrk_01Ch8g9MF3A9FTrmeywrwfMZ", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "I can see from the screenshot that we're already in the AWS Console. To go to the Amazon Bedrock console specifically, I'll click on the Amazon Bedrock service from the \"Recently Visited\" section." }, { "type": "tool_use", "id": "toolu_bdrk_013sAzs1gsda9wLrfD8bhYQ3", "name": "computer", "input": { "action": "screenshot" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 3710, "output_tokens": 97 } }