Amazon Bedrock adalah layanan terkelola sepenuhnya yang menawarkan pilihan model fondasi berperforma tinggi dari perusahaan AI terkemuka dan serangkaian kemampuan untuk membangun aplikasi AI generatif.
Contoh repo ini memberikan contoh penggunaan pemanggilan fungsi menggunakan Converse API dengan Anthropic Claude 3 Sonnet, menggunakan beberapa alat. Repo ini hanya contoh kode, yang menunjukkan cara menggunakan pemanggilan fungsi sebagai alat yang digunakan model untuk mengambil hasil menggunakan kode fungsi biasa.
Converse
API menyediakan antarmuka konsisten yang berfungsi dengan semua model yang mendukung pesan. Ini memungkinkan Anda menulis kode satu kali dan menggunakannya dengan model yang berbeda. Jika suatu model memiliki parameter inferensi unik, Anda juga dapat meneruskan parameter unik tersebut ke model.
Pemanggilan fungsi (juga dikenal sebagai alat), adalah cara untuk menyediakan model, dengan panduan deskriptif untuk fungsi yang tersedia bagi model untuk digunakan dalam menjawab masukan pengguna.
Dalam contoh ini, kami akan meminta Claude 3 untuk menjawab, apa yang dimaksud dengan nilai ticker saham, dan dengan opsi untuk mengkonversi mata uang ticker default ke mata uang apa pun yang disediakan dalam input pengguna.
Ada 2 alat yang tersedia untuk digunakan model:
Model setiap giliran akan meninjau prompt yang diberikan, akan memutuskan apakah model tersebut dapat menjawab dengan benar pertanyaan yang diberikan dalam masukan pengguna, setiap giliran sesuai dengan respons dari Bedrock end_turn
atau tool_use
. end_turn
berarti jawaban akhir telah diberikan, dan tool_use
akan mengurai data yang sesuai sesuai deskripsi alat yang akan digunakan untuk menjalankan fungsi alat, dan mengembalikan hasil yang sesuai ke model.
Kode contoh ini diuji menggunakan pyenv dengan python 3.12, dan disetel dalam versi .python
Konfigurasi AWS :
us-west-2
, dan dikonfigurasi di ask.pyAkses Batuan Dasar :
anthropic.claude-3-sonnet-20240229-v1:0
Izin IAM :
Pastikan bahwa pengguna IAM yang menjalankan proyek ini, pastikan bahwa dia memiliki izin untuk memanggil model Claude 3. Untuk sampel ini, Anda dapat menggunakan:
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " LeastPrivilege4BRClient " ,
"Effect" : " Allow " ,
"Action" : [
" bedrock:InvokeModel "
],
"Resource" : " arn:aws:bedrock:us-west-2::foundation-model/* "
}]
}
Ini dapat lebih dibatasi dengan menggunakan hak istimewa paling sedikit dengan id model tertentu.
Untuk menjalankan kode contoh ini, ikuti langkah-langkah berikut:
pip install -r requirements.txt
python main.py
--input "new input here"
untuk menggantikan teks input pengguna default.Perintah default : "Berapa harga saham amazon saat ini dalam pound?
Misalnya Anthropic Claude 3 Sonnet akan mengetahui Amazon Ticker adalah AMZN, akan menggunakan alat tersebut untuk mendapatkan nilai ticker, dan kemudian akan mengonversi mata uang sumber harga saham ke mata uang tujuan.
Setiap iterasi inferensi, ketika tool_use
dikembalikan, pesan yang dikembalikan akan ditambahkan untuk membangun percakapan seperti model, karena sifat LLM yang tidak memiliki kewarganegaraan.
Prompt terakhir, sebelum jawaban akhir dari Claude 3 akan terlihat seperti ini:
[
{
"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
}
}
]
}
}
]
}
]
Dan jawaban akhirnya akan serupa dengan ini: So the current Amazon (AMZN) stock price of $200.00 USD converts to £158.02 GBP.
Catatan: Harga saham dan nilai tukar mata uang sangat fluktuatif dan dapat berubah dengan cepat. Contoh keluaran yang ditampilkan dalam README ini mungkin tidak mencerminkan nilai pasar saat ini. Saat menjalankan kode, Anda akan mendapatkan data real-time yang mungkin berbeda dari contoh yang diberikan.
Lihat KONTRIBUSI untuk informasi lebih lanjut.
Lihat KONTRIBUSI untuk informasi lebih lanjut.
Proyek ini dilisensikan di bawah Lisensi Apache-2.0.