Amazon Bedrock은 선도적인 AI 기업의 고성능 기반 모델 선택과 생성적 AI 애플리케이션 구축을 위한 일련의 기능을 제공하는 완전관리형 서비스입니다.
이 샘플 저장소는 여러 도구를 사용하여 Anthropic Claude 3 Sonnet과 함께 Converse API를 사용하여 함수 호출을 사용하는 예를 제공합니다. 이 저장소는 일반 함수 코드를 사용하여 결과를 가져오는 데 사용할 모델용 도구로 함수 호출을 사용하는 방법을 보여주는 샘플 전용 코드입니다.
Converse
API는 메시지를 지원하는 모든 모델에서 작동하는 일관된 인터페이스를 제공합니다. 이를 통해 코드를 한 번 작성하고 다른 모델에서 사용할 수 있습니다. 모델에 고유한 추론 매개변수가 있는 경우 해당 고유 매개변수를 모델에 전달할 수도 있습니다.
함수 호출(도구라고도 함)은 모델이 사용자 입력에 응답하는 데 사용할 수 있는 함수에 대한 설명 지침을 모델에 제공하는 방법입니다.
이 샘플에서는 Claude 3에게 주식 시세 표시 값이 무엇인지에 대한 답변을 요청하고 기본 시세 표시 통화를 사용자 입력에 제공된 통화로 변환하는 옵션을 제공합니다.
모델에서 사용할 수 있는 도구는 2가지입니다.
매 턴마다 모델은 제공된 프롬프트를 검토하고 Bedrock end_turn
또는 tool_use
의 응답에 따라 각 턴에서 사용자 입력에 제공된 질문에 적절하게 대답할 수 있는지 결정합니다. end_turn
최종 답변이 제공되었음을 의미하며, tool_use
도구 기능을 실행하는 데 사용될 도구 설명에 따라 적절한 데이터를 구문 분석하고 적절한 결과를 모델에 다시 구축합니다.
이 샘플 코드는 Python 3.12에서 pyenv를 사용하여 테스트되었으며 .python-version에 설정되었습니다.
AWS 구성 :
us-west-2
사용하며 Ask.py에서 구성됩니다.기반암 접근 :
anthropic.claude-3-sonnet-20240229-v1:0
에 표시됩니다.IAM 권한 :
이 프로젝트를 실행하는 IAM 사용자가 Claude 3 모델을 호출할 수 있는 권한을 갖고 있는지 확인하세요. 이 샘플에서는 다음을 사용할 수 있습니다.
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " LeastPrivilege4BRClient " ,
"Effect" : " Allow " ,
"Action" : [
" bedrock:InvokeModel "
],
"Resource" : " arn:aws:bedrock:us-west-2::foundation-model/* "
}]
}
이는 특정 모델 ID의 최소 권한을 사용하여 더욱 제한될 수 있습니다.
이 샘플 코드를 실행하려면 다음 단계를 따르세요.
pip install -r requirements.txt
실행python main.py
실행합니다.--input "new input here"
추가하여 기본 사용자 입력 텍스트를 무시할 수 있습니다.기본 프롬프트 : "Amazon 주식의 현재 주가는 파운드 단위로 얼마입니까?
예를 들어 Anthropic Claude 3 Sonnet은 Amazon 티커가 AMZN임을 알고 도구를 사용하여 티커 값을 얻은 다음 주가의 소스 통화를 대상 통화로 변환합니다.
추론이 반복될 때마다 tool_use
반환될 때 반환된 메시지가 추가되어 모델과 같은 대화를 구축합니다. 이는 LLM의 상태 비저장 특성 때문입니다.
Claude 3의 최종 답변 전의 최종 프롬프트는 다음과 유사합니다.
[
{
"role" : " user " ,
"content" : [
{
"text" : " What is the current stock price of amazon stock in pounds? "
}
]
},
{
"role" : " assistant " ,
"content" : [
{
"text" : " Okay, let me get the current Amazon (AMZN) stock price and convert it to British pounds for you: "
},
{
"toolUse" : {
"toolUseId" : " tooluse_7ofuIPr8T3uBsK2xy1GZBw " ,
"name" : " get_stock_price " ,
"input" : {
"ticker" : " AMZN "
}
}
}
]
},
{
"role" : " user " ,
"content" : [
{
"toolResult" : {
"toolUseId" : " tooluse_7ofuIPr8T3uBsK2xy1GZBw " ,
"content" : [
{
"json" : {
"ticker" : " AMZN " ,
"price" : 200 ,
"currency" : " USD "
}
}
]
}
}
]
},
{
"role" : " assistant " ,
"content" : [
{
"text" : " The current Amazon stock price is $200.00 USD. To convert that to British pounds: "
},
{
"toolUse" : {
"toolUseId" : " tooluse_lyTta3oMSfik5EhsCnnkGg " ,
"name" : " convert_currency " ,
"input" : {
"amount" : 200 ,
"source_currency" : " USD " ,
"target_currency" : " GBP "
}
}
}
]
},
{
"role" : " user " ,
"content" : [
{
"toolResult" : {
"toolUseId" : " tooluse_lyTta3oMSfik5EhsCnnkGg " ,
"content" : [
{
"json" : {
"converted_currency" : 158.0185237159697
}
}
]
}
}
]
}
]
최종 답변은 다음과 유사해야 합니다. So the current Amazon (AMZN) stock price of $200.00 USD converts to £158.02 GBP.
참고: 주가와 환율은 변동성이 크고 빠르게 변할 수 있습니다. 이 README에 표시된 출력 예는 현재 시장 가치를 반영하지 않을 수 있습니다. 코드를 실행하면 제공된 예제와 다를 수 있는 실시간 데이터를 얻게 됩니다.
자세한 내용은 기여를 참조하세요.
자세한 내용은 기여를 참조하세요.
이 프로젝트는 Apache-2.0 라이선스에 따라 라이선스가 부여됩니다.