Konteks sesi agen kontrol - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konteks sesi agen kontrol

Untuk kontrol konteks sesi yang lebih besar, Anda dapat memodifikasi SessionStateobjek di agen Anda. Sebuah SessionStateobjek berisi informasi yang dapat dipertahankan melintasi belokan (terpisah InvokeAgentpermintaan dan tanggapan). Anda dapat menggunakan informasi ini untuk menyediakan konteks percakapan bagi agen selama percakapan pengguna.

Format umum dari SessionStateObjeknya adalah sebagai berikut.

{ "sessionAttributes": { "<attributeName1>": "<attributeValue1>", "<attributeName2>": "<attributeValue2>", ... }, "promptSessionAttributes": { "<attributeName3>": "<attributeValue3>", "<attributeName4>": "<attributeValue4>", ... }, "invocationId": "string", "returnControlInvocationResults": [ ApiResult or FunctionResult, ... ], "knowledgeBases": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC", "numberOfResults": int, "filter": RetrievalFilter object } } }, ... ] }

Pilih topik untuk mempelajari lebih lanjut tentang bidang di SessionStateobjek.

Atribut sesi sesi dan prompt

Amazon Bedrock Agents memungkinkan Anda menentukan jenis atribut kontekstual berikut yang bertahan selama beberapa bagian sesi:

Anda dapat menentukan atribut status sesi pada dua langkah berbeda:

  • Saat Anda menyiapkan grup tindakan dan menulis fungsi Lambda, sertakan sessionAttributes atau promptSessionAttributes dalam peristiwa respons yang dikembalikan ke Amazon Bedrock.

  • Selama runtime, saat Anda mengirim InvokeAgentrequest, sertakan sessionState objek di badan permintaan untuk mengubah atribut status sesi secara dinamis di tengah percakapan.

Contoh atribut sesi

Contoh berikut menggunakan atribut sesi untuk mempersonalisasi pesan ke pengguna Anda.

  1. Tulis kode aplikasi Anda untuk meminta pengguna memberikan nama depan mereka dan permintaan yang ingin mereka buat kepada agen dan untuk menyimpan jawaban sebagai variabel <first_name> and <request>.

  2. Tulis kode aplikasi Anda untuk mengirim InvokeAgentpermintaan dengan badan berikut:

    { "inputText": "<request>", "sessionState": { "sessionAttributes": { "firstName": "<first_name>" } } }
  3. Ketika pengguna menggunakan aplikasi Anda dan memberikan nama depan mereka, kode Anda akan mengirim nama depan sebagai atribut sesi dan agen akan menyimpan nama depan mereka selama sesi berlangsung.

  4. Karena atribut sesi dikirim dalam peristiwa input Lambda, Anda dapat merujuk ke atribut sesi ini dalam fungsi Lambda untuk grup tindakan. Misalnya, jika APIskema tindakan memerlukan nama depan di badan permintaan, Anda dapat menggunakan atribut firstName sesi saat menulis fungsi Lambda untuk grup tindakan untuk mengisi kolom tersebut secara otomatis saat mengirim permintaan. API

Contoh atribut sesi cepat

Contoh umum berikut menggunakan atribut sesi prompt untuk menyediakan konteks temporal untuk agen.

  1. Tulis kode aplikasi Anda untuk menyimpan permintaan pengguna dalam variabel yang disebut <request>.

  2. Tulis kode aplikasi Anda untuk mengambil zona waktu di lokasi pengguna jika pengguna menggunakan kata yang menunjukkan waktu relatif (seperti “besok”) di <request>, dan simpan dalam variabel yang disebut <timezone>.

  3. Tulis aplikasi Anda untuk mengirim InvokeAgentpermintaan dengan badan berikut:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. Jika pengguna menggunakan kata yang menunjukkan waktu relatif, kode Anda akan mengirim atribut sesi timeZone prompt dan agen akan menyimpannya selama giliran.

  5. Misalnya, jika pengguna bertanyaI need to book a hotel for tomorrow, kode Anda mengirimkan zona waktu pengguna ke agen dan agen dapat menentukan tanggal pasti yang dimaksud “besok”.

  6. Atribut sesi prompt dapat digunakan pada langkah-langkah berikut.

Hasil pemanggilan kelompok aksi

Jika Anda mengonfigurasi grup tindakan untuk mengembalikan kontrol InvokeAgentrespon, Anda dapat mengirim hasil dari memanggil kelompok sessionState tindakan di berikutnya InvokeAgentrespon dengan menyertakan bidang-bidang berikut:

  • invocationId— ID ini harus cocok dengan yang invocationId dikembalikan dalam ReturnControlPayloadobjek di returnControl bidang InvokeAgentrespon.

  • returnControlInvocationResults— Termasuk hasil yang Anda peroleh dari menjalankan tindakan. Anda dapat mengatur aplikasi Anda untuk meneruskan ReturnControlPayloadobjek untuk melakukan API permintaan atau memanggil fungsi yang Anda tentukan. Anda kemudian dapat memberikan hasil dari tindakan itu di sini. Setiap anggota returnControlInvocationResults daftar adalah salah satu dari yang berikut:

    • ApiResultObjek yang berisi API operasi yang diprediksi agen harus dipanggil sebelumnya InvokeAgenturutan dan hasil dari menjalankan tindakan di sistem Anda. Format umumnya adalah sebagai berikut:

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
    • FunctionResultObjek yang berisi fungsi yang diprediksi agen harus dipanggil sebelumnya InvokeAgenturutan dan hasil dari menjalankan tindakan di sistem Anda. Format umumnya adalah sebagai berikut:

      { "actionGroup": "string", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }

Hasil yang diberikan dapat digunakan sebagai konteks untuk orkestrasi lebih lanjut, dikirim ke pasca-pemrosesan untuk agen untuk memformat respons, atau digunakan secara langsung dalam respons agen terhadap pengguna.

Konfigurasi pengambilan basis pengetahuan

Untuk memodifikasi konfigurasi pengambilan basis pengetahuan yang dilampirkan ke agen Anda, sertakan knowledgeBaseConfigurations bidang dengan daftar konfigurasi untuk setiap basis pengetahuan yang konfigurasinya ingin Anda tentukan. Tentukan knowledgeBaseId. Di vectorSearchConfiguration bidang ini, Anda dapat menentukan konfigurasi kueri berikut (untuk informasi selengkapnya tentang konfigurasi ini, lihatKonfigurasikan dan sesuaikan kueri dan pembuatan respons):

  • Jenis pencarian — Apakah basis pengetahuan hanya mencari embeddings vektor (SEMANTIC) atau kedua embed vektor dan teks mentah (). HYBRID Gunakan overrideSearchType bidang.

  • Jumlah maksimum hasil yang diambil - Jumlah maksimum hasil dari pengambilan kueri untuk digunakan dalam respons.

  • Metadata dan pemfilteran — Filter yang dapat Anda konfigurasi untuk memfilter hasil berdasarkan atribut metadata dalam file sumber data.