>백엔드 개발 >파이썬 튜토리얼 >Amazon Bedrock Converse API로 시간을 절약하세요!

Amazon Bedrock Converse API로 시간을 절약하세요!

Linda Hamilton
Linda Hamilton원래의
2024-12-03 03:40:08240검색

Bedrock을 사용하면 항상 새로운 버전이 제공되는 다양한 대규모 언어 모델(예: Claude, Mistral, Llama 및 Amazon Titan)에 액세스할 수 있습니다.

선택할 수 있다는 것은 좋지만, 모델마다 요청을 다르게 코딩해야 한다는 것은 번거로운 일입니다.

다양한 기초 모델의 출력을 비교할 때 Amazon Bedrock Converse API를 사용하면 많은 시간과 노력을 절약할 수 있는 이유는 다음과 같습니다.

일관성이 핵심입니다!

Converse API는 메시지/시스템 프롬프트를 지원하는 모든 모델에서 작동하는 일관된 인터페이스입니다. 즉, 코드를 한 번만 작성하면 이를 사용하여 다양한 모델을 실험할 수 있습니다.

다음은 작동 방식에 대한 예입니다. 이 연습에는 < $1.

모델 액세스 구성

시작하기 전에 사용하려는 모델이 해당 지역에서 사용 가능한지, 해당 모델에 대한 액세스를 활성화했는지 확인하세요. 제가 사용하고 있는 모델은 다음과 같습니다. 이러한 모델을 선택하거나 직접 선택할 수 있습니다. :
anthropic.claude-v2
anthropic.claude-3-haiku
클로드 3.5 소네트
미스트랄 스몰

Save time with the Amazon Bedrock Converse API!

1) AWS 콘솔에서 CloudShell을 사용하여 모든 작업을 수행할 수 있습니다.

Save time with the Amazon Bedrock Converse API!

2) CloudShell이 ​​준비되면 Python용 AWS SDK인 boto3를 설치합니다
pip install 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는 메시지를 지원하는 모든 Amazon Bedrock 모델에서 작동하는 간단하고 일관된 API를 제공합니다. 즉, 코드를 한 번 작성하고 이를 다른 모델과 함께 사용하여 결과를 비교할 수 있습니다!

다음 번에 Bedrock으로 작업하게 된다면 Converse API를 사용해 보시고 나중에 감사 인사를 전하세요!

위 내용은 Amazon Bedrock Converse API로 시간을 절약하세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.