首頁 >後端開發 >Python教學 >使用 Amazon Bedrock Converse API 節省時間!

使用 Amazon Bedrock Converse API 節省時間!

Linda Hamilton
Linda Hamilton原創
2024-12-03 03:40:08237瀏覽

透過 Bedrock,您可以存取一系列不同的大型語言模型(例如 Claude、Mistral、Llama 和 Amazon Titan),並且隨時都有新版本可用。

有選擇固然很棒,但必須為每個模型編寫不同的請求程式碼卻很痛苦。

這就是為什麼在比較不同基礎模型的輸出時,Amazon Bedrock Converse API 將為您節省大量時間和精力!

一致性是關鍵!

Converse API 是一個一致的接口,適用於所有支援訊息/系統提示的模型。這意味著您只需編寫一次程式碼,即可用它來試驗不同的模型。

這是一個說明其工作原理的範例,此練習的成本應

配置模型訪問

開始之前,請務必檢查您想要使用的模型在您所在的地區是否可用,並且您已啟用對它們的訪問,這是我正在使用的模型,您可以選擇這些模型或選擇您自己的模型:
anthropic.claude-v2
anthropic.claude-3-俳句
克勞德 3.5 十四行詩
小米斯特拉爾

Save time with the Amazon Bedrock Converse API!

1) 我們可以使用 AWS 控制台中的 CloudShell 完成所有操作。

Save time with the Amazon Bedrock Converse API!

2) 當 CloudShell 準備好後,安裝 boto3,它是適用於 Python 的 AWS 開發工具包
pip 安裝 boto3

Save time with the Amazon Bedrock Converse API!

3) 從 GitHub 下載名為 converse_demo.py 的檔案 您可以使用 wget 並提供檔案的原始路徑來執行此操作:

wget https://raw.githubusercontent.com/fayekins/demos/refs/heads/main/converse_demo.py

Save time with the Amazon Bedrock Converse API!

converse_demo.py

#first we import boto3 and json 
import boto3, json

#create a boto3 session - stores config state and allows you to create service clients
session = boto3.Session()

#create a Bedrock Runtime Client instance - used to send API calls to AI models in Bedrock
bedrock = session.client(service_name='bedrock-runtime')

#here's our prompt telling the model what we want it to do, we can change this later
system_prompts = [{"text": "You are an app that creates reading lists for book groups."}]

#define an empty message list - to be used to pass the messages to the model
message_list = []

#here’s the message that I want to send to the model, we can change this later if we want
initial_message = {
            "role": "user",
               "content": [{"text": "Create a list of five novels suitable for a book group who are interested in classic novels."}],
               }

#the message above is appended to the message_list
message_list.append(initial_message)

#make an API call to the Bedrock Converse API, we define the model to use, the message, and inference parameters to use as well
response = bedrock.converse(
modelId="anthropic.claude-v2",
messages=message_list,
system=system_prompts,
inferenceConfig={
            "maxTokens": 2048,
            "temperature": 0,
            "topP": 1
            },
)

#invoke converse with all the parameters we provided above and after that, print the result 
response_message = response['output']['message']
print(json.dumps(response_message, indent=4))

4) 像這樣運行Python程式碼:

python converse_demo.py

它應該會給你類似這樣的輸出:

Save time with the Amazon Bedrock Converse API!

5) 我們也可以使用不同的模型來運行相同的程式碼,方法是替換程式碼中的模型 ID,如下所示:

anthropic.claude-3-haiku-20240307-v1:0

比較第二個模型的輸出,略有不同:

Save time with the Amazon Bedrock Converse API!

6) 我們可以用另一個版本再測試:

anthropic.claude-3-5-sonnet-20240620-v1:0

Save time with the Amazon Bedrock Converse API!

當 Claude 的新版本發佈時,我們可以請求訪問,然後只需在程式碼中替換模型的名稱即可!

訪問被拒絕錯誤

如果您看到與此類似的錯誤,則僅表示您正在嘗試使用您尚無權存取的模型。只需請求存取該模型,並在授予存取權限後重試。

Save time with the Amazon Bedrock Converse API!

7) 我還嘗試使用不同的模型供應商,將模型 ID 更改為:

mistral.mistral-small-2402-v1:0

Save time with the Amazon Bedrock Converse API!

因此,Converse API 為您提供了一個簡單、一致的 API,可與所有支援訊息的 Amazon Bedrock 模型配合使用。這意味著您可以編寫一次程式碼並將其與不同的模型一起使用來比較結果!

所以下次您與 Bedrock 合作時,幫自己一個忙,試試 Converse API,稍後再感謝我!

以上是使用 Amazon Bedrock Converse API 節省時間!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn