Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan API Converse ini
Untuk menggunakan Converse API, Anda memanggil ConverseStream operasi Converse atau untuk mengirim pesan ke model. Untuk meneleponConverse, Anda memerlukan izin untuk bedrock:InvokeModel operasi. Untuk meneleponConverseStream, Anda memerlukan izin untuk bedrock:InvokeModelWithResponseStream operasi.
Topik
Permintaan
Saat membuat permintaan Converse dengan titik akhir runtime Amazon Bedrock, Anda dapat menyertakan bidang berikut:
-
ModelID — Parameter yang diperlukan di header yang memungkinkan Anda menentukan sumber daya yang akan digunakan untuk inferensi.
-
Bidang berikut memungkinkan Anda menyesuaikan prompt:
-
pesan — Gunakan untuk menentukan konten dan peran petunjuknya.
-
sistem — Gunakan untuk menentukan prompt sistem, yang menentukan instruksi atau konteks untuk model.
-
InferenceConfig — Gunakan untuk menentukan parameter inferensi yang umum untuk semua model. Parameter inferensi mempengaruhi generasi respons.
-
additionalModelRequestFields — Gunakan untuk menentukan parameter inferensi yang spesifik untuk model yang Anda jalankan inferensi dengan.
-
PromptVariables - (Jika Anda menggunakan prompt dari manajemen Prompt) Gunakan bidang ini untuk menentukan variabel dalam prompt untuk mengisi dan nilai-nilai yang digunakan untuk mengisinya.
-
-
Bidang berikut memungkinkan Anda menyesuaikan bagaimana respons dikembalikan:
-
GuardrailConfig — Gunakan bidang ini untuk menyertakan pagar pembatas untuk diterapkan ke seluruh prompt.
-
ToolConfig — Gunakan bidang ini untuk menyertakan alat untuk membantu model menghasilkan respons.
-
additionalModelResponseFieldPaths— Gunakan bidang ini untuk menentukan bidang untuk kembali sebagai objek penunjuk JSON.
-
-
RequestMetadata — Gunakan bidang ini untuk menyertakan metadata yang dapat difilter saat menggunakan log pemanggilan.
catatan
Pembatasan berikut berlaku saat Anda menggunakan prompt manajemen Prompt dengan Converse atauConverseStream:
-
Anda tidak dapat menyertakan
additionalModelRequestFields,inferenceConfig,system, atautoolConfigbidang. -
Jika Anda menyertakan
messagesbidang, pesan akan ditambahkan setelah pesan yang ditentukan dalam prompt. -
Jika Anda menyertakan
guardrailConfigbidang, pagar pembatas diterapkan ke seluruh prompt. Jika Anda memasukkanguardContentblok di ContentBlocklapangan, pagar pembatas hanya akan diterapkan pada blok tersebut.
Perluas bagian untuk mempelajari lebih lanjut tentang bidang di badan Converse permintaan:
messagesBidang adalah array objek Pesan, yang masing-masing mendefinisikan pesan antara pengguna dan model. Sebuah Message objek berisi bidang-bidang berikut:
-
peran — Mendefinisikan apakah pesan berasal dari
user(prompt yang dikirim ke model) atauassistant(respons model). -
content — Mendefinisikan konten dalam prompt.
catatan
Amazon Bedrock tidak menyimpan teks, gambar, atau dokumen apa pun yang Anda berikan sebagai konten. Data hanya digunakan untuk menghasilkan respons.
Anda dapat mempertahankan konteks percakapan dengan menyertakan semua pesan dalam percakapan dalam Converse permintaan berikutnya dan menggunakan role bidang untuk menentukan apakah pesan tersebut berasal dari pengguna atau model.
contentBidang memetakan ke array ContentBlockobjek. Dalam masing-masing ContentBlock, Anda dapat menentukan salah satu bidang berikut (untuk melihat model apa yang mendukung blok apa, lihatModel dan fitur model yang didukung):
catatan
Pembatasan berikut berkaitan dengan content bidang:
-
Anda dapat menyertakan hingga 20 gambar. Ukuran, tinggi, dan lebar setiap gambar harus tidak lebih dari 3,75 MB, 8.000 px, dan 8.000 px, masing-masing.
-
Anda dapat memasukkan hingga lima dokumen. Ukuran setiap dokumen harus tidak lebih dari 4,5 MB.
-
Anda hanya dapat menyertakan gambar dan dokumen jika
roleadauser.
Dalam messages contoh berikut, pengguna meminta daftar tiga lagu pop, dan model menghasilkan daftar lagu.
[ { "role": "user", "content": [ { "text": "Create a list of 3 pop songs." } ] }, { "role": "assistant", "content": [ { "text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"As It Was\" by Harry Styles\n2. \"Easy On Me\" by Adele\n3. \"Unholy\" by Sam Smith and Kim Petras" } ] } ]
Prompt sistem adalah jenis prompt yang memberikan instruksi atau konteks kepada model tentang tugas yang harus dijalankannya, atau persona yang harus ditampilkan selama percakapan. Anda dapat menentukan daftar prompt sistem untuk permintaan di bidang system (SystemContentBlock), seperti yang ditunjukkan pada contoh berikut.
[ { "text": "You are an app that creates play lists for a radio station that plays rock and pop music. Only return song names and the artist. " } ]
ConverseAPI mendukung kumpulan dasar parameter inferensi yang Anda tetapkan di inferenceConfig field (InferenceConfiguration). Set dasar parameter inferensi adalah:
-
maxTokens – Jumlah maksimum token yang diizinkan dalam respons yang dihasilkan.
-
StopSequences — Daftar urutan berhenti. Stop sequence adalah rangkaian karakter yang menyebabkan model berhenti menghasilkan respons.
-
temperature – Kemungkinan model memilih opsi dengan probabilitas lebih tinggi saat menghasilkan respons.
-
topP – Persentase kandidat yang paling memungkinkan yang dipertimbangkan model untuk token berikutnya.
Untuk informasi selengkapnya, lihat Mempengaruhi generasi respons dengan parameter inferensi.
Contoh berikut JSON menetapkan parameter temperature inferensi.
{"temperature": 0.5}
Jika model yang Anda gunakan memiliki parameter inferensi tambahan, Anda dapat mengatur parameter tersebut dengan menentukannya sebagai JSON di lapangan. additionalModelRequestFields Contoh berikut JSON menunjukkan cara menyeteltop_k, yang tersedia dalam Anthropic Claude model, tetapi bukan merupakan parameter inferensi dasar di API pesan.
{"top_k": 200}
Jika Anda menentukan prompt dari manajemen Prompt modelId sebagai sumber daya untuk menjalankan inferensi, gunakan bidang ini untuk mengisi variabel prompt dengan nilai aktual. promptVariablesBidang memetakan ke objek JSON dengan kunci yang sesuai dengan variabel yang ditentukan dalam prompt dan nilai untuk mengganti variabel dengan.
Misalnya, katakanlah Anda memiliki prompt yang mengatakanMake me a . ID prompt adalah {{genre}} playlist consisting of the following number of songs: {{number}}.PROMPT12345 dan versinya adalah1. Anda dapat mengirim Converse permintaan berikut untuk mengganti variabel:
POST /model/arn:aws:bedrock:us-east-1:111122223333:prompt/PROMPT12345:1/converse HTTP/1.1 Content-type: application/json { "promptVariables": { "genre" : "pop", "number": 3 } }
Anda dapat menerapkan pagar pembatas yang Anda buat dengan Amazon Bedrock Guardrails dengan menyertakan bidang ini. Untuk menerapkan pagar pembatas ke pesan tertentu dalam percakapan, sertakan pesan dalam file. GuardrailConverseContentBlock Jika Anda tidak menyertakan GuardrailConverseContentBlock s apa pun di badan permintaan, pagar pembatas diterapkan ke semua pesan di messages bidang. Sebagai contoh, lihat Sertakan pagar pembatas dengan API Converse.
Bidang ini memungkinkan Anda menentukan alat untuk model yang akan digunakan untuk membantunya menghasilkan respons. Untuk informasi selengkapnya, lihat Menggunakan alat untuk menyelesaikan respons model Amazon Bedrock.
Anda dapat menentukan jalur untuk parameter model tambahan di additionalModelResponseFieldPaths lapangan, seperti yang ditunjukkan pada contoh berikut.
[ "/stop_sequence" ]
API mengembalikan bidang tambahan yang Anda minta di additionalModelResponseFields bidang tersebut.
Bidang ini memetakan ke objek JSON. Anda dapat menentukan kunci metadata dan nilai yang mereka petakan ke dalam objek ini. Anda dapat menggunakan metadata permintaan untuk membantu Anda memfilter log pemanggilan model.
Anda juga dapat secara opsional menambahkan pos pemeriksaan cache ke tools bidang system atau untuk menggunakan caching prompt, tergantung pada model yang Anda gunakan. Untuk informasi selengkapnya, lihat Caching cepat untuk inferensi model yang lebih cepat.
Respons
Respons yang Anda dapatkan dari Converse API tergantung pada operasi yang Anda panggil, Converse atauConverseStream.
Tanggapan Converse
Dalam tanggapan dariConverse, output bidang (ConverseOutput) berisi pesan (Pesan) yang dihasilkan model. Konten pesan ada di bidang content (ContentBlock) dan peran (useratauassistant) yang sesuai dengan pesan ada di role bidang.
Jika Anda menggunakan caching prompt, maka di bidang penggunaan, cacheReadInputTokensCount dan cacheWriteInputTokensCount memberi tahu Anda berapa banyak total token yang dibaca dari cache dan ditulis ke cache, masing-masing.
metricsBidang (ConverseMetrics) menyertakan metrik untuk panggilan. Untuk menentukan mengapa model berhenti menghasilkan konten, periksa stopReason bidangnya. Anda bisa mendapatkan informasi tentang token yang diteruskan ke model dalam permintaan, dan token yang dihasilkan dalam respons, dengan memeriksa usage bidang (TokenUsage). Jika Anda menetapkan bidang respons tambahan dalam permintaan, API akan mengembalikannya sebagai JSON di additionalModelResponseFields bidang tersebut.
Contoh berikut menunjukkan respons dari Converse saat Anda meneruskan prompt yang dibahas diPermintaan.
{ "output": { "message": { "role": "assistant", "content": [ { "text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"Wannabe\" by Spice Girls\n2. \"Bitter Sweet Symphony\" by The Verve \n3. \"Don't Look Back in Anger\" by Oasis" } ] } }, "stopReason": "end_turn", "usage": { "inputTokens": 125, "outputTokens": 60, "totalTokens": 185 }, "metrics": { "latencyMs": 1175 } }
ConverseStream respon
Jika Anda memanggil ConverseStream untuk mengalirkan respons dari model, aliran dikembalikan di bidang stream respons. Aliran memancarkan peristiwa berikut dalam urutan sebagai berikut.
-
messageStart(MessageStartEvent). Acara awal untuk pesan. Termasuk peran untuk pesan. -
contentBlockStart(ContentBlockStartEvent). Acara mulai blok Konten. Hanya menggunakan alat. -
contentBlockDelta(ContentBlockDeltaEvent). Acara delta blok Konten. Termasuk salah satu dari berikut ini:-
text— Teks parsi yang dihasilkan model. -
reasoningContent— Penalaran sebagian yang dilakukan oleh model untuk menghasilkan respons. Anda harus mengirimkan yang dikembalikansignature, selain semua pesan sebelumnya dalamConversepermintaan berikutnya. Jika ada pesan yang diubah, respons akan menimbulkan kesalahan. -
toolUse— Masukan sebagian objek JSON untuk penggunaan alat.
-
-
contentBlockStop(ContentBlockStopEvent). Peristiwa penghentian blok Konten. -
messageStop(MessageStopEvent). Acara berhenti untuk pesan. Termasuk alasan mengapa model berhenti menghasilkan output. -
metadata(ConverseStreamMetadataEvent). Metadata untuk permintaan. Metadata mencakup penggunaan token inusage(TokenUsage) dan metrik untuk panggilan inmetrics(). ConverseStreamMetadataEvent
ConverseStream mengalirkan blok konten lengkap sebagai ContentBlockStartEvent acara, satu atau beberapa ContentBlockDeltaEvent acara, dan ContentBlockStopEvent acara. Gunakan contentBlockIndex bidang sebagai indeks untuk mengkorelasikan peristiwa yang membentuk blok konten.
Contoh berikut adalah sebagian respon dariConverseStream.
{'messageStart': {'role': 'assistant'}} {'contentBlockDelta': {'delta': {'text': ''}, 'contentBlockIndex': 0}} {'contentBlockDelta': {'delta': {'text': ' Title'}, 'contentBlockIndex': 0}} {'contentBlockDelta': {'delta': {'text': ':'}, 'contentBlockIndex': 0}} . . . {'contentBlockDelta': {'delta': {'text': ' The'}, 'contentBlockIndex': 0}} {'messageStop': {'stopReason': 'max_tokens'}} {'metadata': {'usage': {'inputTokens': 47, 'outputTokens': 20, 'totalTokens': 67}, 'metrics': {'latencyMs': 100.0}}}