Amazon Bedrock — это полностью управляемый сервис, предлагающий выбор высокопроизводительных базовых моделей от ведущих компаний, занимающихся искусственным интеллектом, а также набор возможностей для создания генеративных приложений искусственного интеллекта.
В этом образце репозитория представлен пример использования вызова функций с использованием Converse API с Anthropic Claude 3 Sonnet с использованием нескольких инструментов. Этот репозиторий представляет собой только пример кода, демонстрирующий, как использовать вызов функций в качестве инструментов модели для получения результатов с использованием простого кода функции.
Converse
API предоставляет согласованный интерфейс, который работает со всеми моделями, поддерживающими сообщения. Это позволяет написать код один раз и использовать его с разными моделями. Если модель имеет уникальные параметры вывода, вы также можете передать эти уникальные параметры в модель.
Вызов функций (также известный как инструменты) — это способ предоставить модели описательное руководство по функции, доступной модели для использования для ответа на ввод пользователя.
В этом примере мы попросим Claude 3 ответить, что такое значение тикера акции, и с возможностью конвертировать валюту тикера по умолчанию в любую валюту, указанную во входных данных пользователя.
Для моделей доступны 2 инструмента:
Модель на каждом ходу будет проверять полученную подсказку и решать, сможет ли она правильно ответить на вопрос, указанный во вводе пользователя, каждый ход в соответствии с ответом от Bedrock end_turn
tool_use
. end_turn
означает, что окончательный ответ был предоставлен, tool_use
проанализирует соответствующие данные в соответствии с описанием инструмента, которые будут использоваться для выполнения функции инструмента, и вернет правильный результат обратно в модель.
Этот пример кода был протестирован с использованием pyenv с Python 3.12 и установлен в версии .python.
Конфигурация 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/* "
}]
}
Это можно более ограничить, используя минимальные привилегии с конкретным идентификатором модели.
Чтобы запустить этот пример кода, выполните следующие действия:
pip install -r requirements.txt
python main.py
--input "new input here"
чтобы переопределить текст, вводимый пользователем по умолчанию.Подсказка по умолчанию : «Какова текущая цена акций Amazon в фунтах?»
Например, Anthropic Claude 3 Sonnet будет знать, что тикер Amazon — AMZN, будет использовать инструмент для получения значения тикера, а затем конвертирует исходную валюту цены акций в валюту назначения.
На каждой итерации вывода, когда возвращается tool_use
, возвращенные сообщения будут добавляться для построения диалога, как и для модели, из-за того, что LLM не имеет состояния.
Последняя подсказка перед окончательным ответом от Клода 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.