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

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

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

電腦使用是僅 Anthropic Claude 3.5 Sonnet v2 提供的新AnthropicClaude模型功能 (測試版)。使用電腦時, Claude可協助您透過基本的 GUI 動作自動化任務。

警告

電腦使用功能會以「Beta Service」的形式提供給您,如 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) 使用工具。若要尋找您在請求內文中傳遞的推論參數,請參閱 AnthropicClaude 訊息 API

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

範例程式碼

下列程式碼說明如何呼叫電腦使用 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 } }