Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Referensi API
Bagian ini menyediakan referensi API untuk solusinya.
Dasbor penyebaran
| API REST | Metode HTTP | Fungsionalitas | Penelepon resmi |
|---|---|---|---|
|
|
|
Dapatkan semua penerapan. |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Membuat penerapan kasus penggunaan baru. |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Mendapat detail penerapan untuk satu penerapan. |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Memperbarui penerapan yang diberikan. |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Menghapus penerapan yang diberikan. |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Mendapatkan tipe kasus penggunaan yang tersedia untuk penerapan |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Mendapatkan penyedia model yang tersedia untuk jenis kasus penggunaan yang diberikan |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Mendapatkan IDs model yang tersedia untuk penyedia tertentu dan tipe kasus penggunaan |
Token JWT yang diautentikasi Amazon Cognito |
|
|
|
Mendapat info tentang model yang diberikan, termasuk parameter default. |
Token JWT yang diautentikasi Amazon Cognito |
catatan
File OpenAPI dan Swagger juga dapat diekspor dari API Gateway untuk integrasi yang lebih mudah dengan API. Lihat Mengekspor REST API dari API Gateway.
POST dan PATCH Muatan
Lihat di bawah untuk contoh muatan POST ke /deployments titik akhir, yang akan membuat kasus penggunaan baru.
{ "UseCaseName": "usecase1", "UseCaseDescription": "Description of the use case to be deployed. For display purposes", // optional "DefaultUserEmail": "placeholder@example.com", // optional, if not provided, the Cognito Group and User will not be created "DeployUI": true, // optional "VpcParams": { "VpcEnabled": true, "CreateNewVpc": false, // provide these if not creating new vpc "ExistingVpcId": "vpc-id", "ExistingPrivateSubnetIds": ["subnet-1", "subnet-2"], "ExistingSecurityGroupIds": ["sg-1", "sg-2"] }, "ConversationMemoryParams": { "ConversationMemoryType": "DynamoDB", "HumanPrefix": "user", // optional "AiPrefix": "ai", // optional "ChatHistoryLength": 10 // optional }, "KnowledgeBaseParams": { "KnowledgeBaseType": "Bedrock", // one of the following based on selected provider "BedrockKnowledgeBaseParams": { "BedrockKnowledgeBaseId": "my-bedrock-kb", "RetrievalFilter": {}, // optional "OverrideSearchType": "HYBRID" // optional }, "KendraKnowledgeBaseParams": { "AttributeFilter": {}, // optional "RoleBasedAccessControlEnabled": true, // optional "ExistingKendraIndexId": "12345678-abcd-1234-abcd-1234567890ab", // provide the following in place of ExistingKendraIndexId if you want the solution to deploy an index for you "KendraIndexName": "index", "QueryCapacityUnits": 1, // optional "StorageCapacityUnits": 1, // optional "KendraIndexEdition": "DEVELOPER" // optional }, "NoDocsFoundResponse": "Sorry, I couldn't find any relevant information for your query.", // optional "NumberOfDocs": 3, // optional "ScoreThreshold": 0.7, // optional "ReturnSourceDocs": true // optional }, "LlmParams": { "ModelProvider": "Bedrock | SAGEMAKER", // one of the following based on selected provider "BedrockLlmParams": { "ModelId": "model-id", // use this for on demand models. Can't use with ModelArn "ModelArn": "model-arn", // use this for provisioned/custom models. Can't use with ModelId, "InferenceProfileId": "profile-id" "GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/my-guardrail", // optional "GuardrailVersion": "1" // optional. Required if GuardrailIdentifier provided. }, "SageMakerLlmParams": { "EndpointName": "some-endpoint", "ModelInputPayloadSchema": {}, "ModelOutputJSONPath": "$." }, // optional. Passes on arbitrary params to the underlying LLM. "ModelParams": { "param1": { "Value": "value1", "Type": "string" }, "param2": { "Value": 1, "Type": "integer" } }, // optional "PromptParams": { "PromptTemplate": "some template", "UserPromptEditingEnabled": true, "MaxPromptTemplateLength": 1000, "MaxInputTextLength": 1000, "DisambiguationPromptTemplate": "some disambiguation template", "DisambiguationEnabled": true }, "Temperature": 1.0, // optional "Streaming": true, // optional "RAGEnabled": true, // optional. Must be true if providing KnowledgeBaseParams above. "Verbose": false // optional }, "AgentParams": { "AgentType": "Bedrock", "BedrockAgentParams": { "AgentId": "agent-id", "AgentAliasId": "alias-id", "EnableTrace": true } }, // optional "AuthenticationParams": { "AuthenticationProvider": "Cognito", "CognitoParams": { "ExistingUserPoolId": "user-pool-id", "ExistingUserPoolClientId": "client-id" // optional. If not provided, the solution will create a client for you in the provided pool } } }
Untuk pembaruan, strukturnya sama seperti di atas dengan beberapa peringatan:
-
Nama use case tidak dapat diubah
-
Kasus penggunaan hanya dapat mengubah grup keamanan dan subnet setelah digunakan di VPC. VPC itu sendiri tidak dapat diubah.
-
Jika indeks Kendra dibuat untuk Anda sebagai basis pengetahuan, Anda tidak dapat mengubah konfigurasi indeks tersebut (misalnya,, KendraIndexName) QueryCapacityUnits
Kasus Penggunaan Bersama APIs
Titik akhir REST API berikut tersedia untuk kasus penggunaan Teks dan Agen Batuan Dasar:
| API REST | Metode HTTP | Fungsionalitas | Penelepon resmi |
|---|---|---|---|
|
|
|
Mendapat detail konfigurasi untuk kasus penggunaan tertentu. |
Token JWT yang diautentikasi Amazon Cognito |
| WebSocket API | Fungsionalitas | Penelepon resmi |
|---|---|---|
|
|
Memulai WebSocket koneksi dan mengautentikasi pengguna. |
Token JWT yang diautentikasi Amazon Cognito |
|
|
Endpoint dipanggil ketika WebSocket koneksi telah terputus. |
Token JWT yang diautentikasi Amazon Cognito |
Gunakan API Detail Kasus
Titik akhir API detail mengambil informasi tentang kasus penggunaan tertentu:
GET /details/{useCaseConfigKey}
Titik akhir ini mengembalikan detail konfigurasi untuk kasus penggunaan tertentu, termasuk parameter model, setelan basis pengetahuan, dan informasi penerapan lainnya. Ini membutuhkan token JWT yang diautentikasi Amazon Cognito untuk otorisasi.
Kasus penggunaan teks
| WebSocket API | Fungsionalitas | Penelepon resmi |
|---|---|---|
|
|
Mengirim pesan obrolan pengguna ke WebSocket untuk diproses dengan pengalaman LLM yang dikonfigurasi. |
Token JWT yang diautentikasi Amazon Cognito |
| API REST | Metode HTTP | Fungsionalitas | Penelepon resmi |
|---|---|---|---|
|
|
|
Mengirimkan umpan balik pengguna untuk kasus penggunaan tertentu. |
Token JWT yang diautentikasi Amazon Cognito |
Muatan SendMessage
Jika Anda langsung berintegrasi dengan /sendMessage API, Anda harus mematuhi format payload permintaan dan respons berikut.
Minta Muatan
{ "action": "sendMessage", "question": "the message to send to the api", "conversationId": "", // If not provided, a new conversation will be created, with the conversationId returned in the response. All subsequent messages in that conversation (where history is retained), should provide the conversationId there. "promptTemplate": "", // Optional. Overrides the configured prompt "authToken": "XXXX" // Optional. accessToken from cognito flow. Required for RAG with RBAC }
| Nama Parameter | Tipe | Deskripsi |
|---|---|---|
|
aksi |
|
Saat ini kami hanya mendukung tindakan “SendMessage” di WebSocket |
|
pertanyaan |
|
Masukan pengguna untuk mengirim ke LLM |
|
ConversationID |
|
UUID yang mengidentifikasi percakapan. Jika tidak disediakan, percakapan baru akan dibuat, dengan ConversationId dikembalikan dalam respons. Semua pesan berikutnya dalam percakapan itu (di mana Anda history/context ingin disimpan), harus menyediakan ConversationId di sana. |
|
PromptTemplate |
|
Mengganti template prompt untuk pesan ini. Jika kosong atau tidak disediakan, akan default ke prompt yang disetel pada waktu penerapan. Harus memiliki placeholder yang tepat yang ditentukan untuk konfigurasi yang diberikan (yaitu {history} dan {input} untuk penerapan AI Sagemaker non-RAG, dengan penambahan {context} jika menggunakan RAG untuk semua penerapan. |
|
AuthToken |
|
AccessToken seperti yang diperoleh dari aliran autentikasi cognito. Ini diperlukan saat menjalankan endpoint websocket obrolan yang dikonfigurasi untuk RAG dengan Role Based Access Control (RBAC). Daftar klaim cognito:groups dalam token JWT ini digunakan untuk mengontrol akses ke dokumen dalam indeks Kendra. Parameter ini tidak diperlukan untuk kasus penggunaan non-RAG. Hal ini juga tidak diperlukan untuk kasus penggunaan RAG yang memiliki RBAC dinonaktifkan. |
Muatan Respon
Respon Pertanyaan
WebSocket API akan merespons dengan 1 (jika streaming dinonaktifkan) atau banyak (jika streaming diaktifkan) objek JSON terstruktur sebagai berikut untuk setiap kueri.
{ "data": "some data", "conversationId": "id", }
| Nama Parameter | Tipe | Deskripsi |
|---|---|---|
|
data |
|
Sepotong respons dari LLM jika streaming diaktifkan, atau seluruh respons. Jika menggunakan streaming, respons format ini dengan konten data END_CONVERSATION akan dikirim untuk menunjukkan akhir respons terhadap satu pertanyaan. |
|
ConversationID |
|
ID percakapan yang dimiliki oleh respons SourceDocument ini. |
Tanggapan Dokumen Sumber
Jika Anda telah mengonfigurasi kasus penggunaan RAG untuk mengembalikan dokumen sumber, Anda juga akan menerima muatan berikut di akhir setiap respons untuk setiap dokumen sumber yang digunakan untuk membuat respons.
{ "sourceDocument": { "excerpt": "some excerpt from the", "location": "s3://fake-bucket/test.txt", "score": 0.500, "document_title": null, "document_id": null, "additional_attributes": null }, "conversationId": "some-id" }
| Nama Parameter | Tipe | Deskripsi |
|---|---|---|
|
kutipan |
|
Kutipan dari dokumen sumber. |
|
lokasi |
|
Lokasi dokumen sumber. Ini akan tergantung pada sumber data yang digunakan dan jenis basis pengetahuan, tetapi bisa berupa hal-hal seperti s3 URIs atau situs web. |
|
skor |
|
Keyakinan bahwa dokumen tersebut sesuai dengan pertanyaan yang diajukan. Ini akan menjadi float dari 0 ke 1 untuk Bedrock, dan string (misalnya TINGGI, RENDAH, dll.) untuk Kendra. |
|
document_title |
|
Judul dokumen sumber yang dikembalikan. Hanya tersedia saat menggunakan Kendra. |
|
document_id |
|
ID dari dokumen sumber yang dikembalikan. Hanya tersedia saat menggunakan Kendra. |
|
additional_attributes |
|
Bidang ini akan berisi semua atribut tambahan pada dokumen yang disesuaikan pada basis pengetahuan Anda saat konsumsi. |
|
ConversationID |
|
ID percakapan yang dimiliki oleh respons SourceDocument ini. |
Umpan Balik API Payload
Di bawah ini adalah contoh payload POST ke /feedback/{useCaseId} titik akhir, yang akan mengirimkan umpan balik pengguna untuk kasus penggunaan tertentu:
{ "useCaseRecordKey": "12345678-12345678", "conversationId": "12345678-1234-1234-1234-123456789012", "messageId": "12345678-1234-1234-1234-123456789012", "feedback": "positive", "feedbackReason": ["accurate", "helpful"], "comment": "This response was very helpful.", "rephrasedQuery": "What are the key features of Amazon Bedrock?", "sourceDocuments": [ "s3://bucket-name/document1.pdf", "s3://bucket-name/document2.pdf" ] }
Kasus penggunaan Agen Batuan Dasar
| WebSocket API | Fungsionalitas | Penelepon resmi |
|---|---|---|
|
|
Mengirim pesan pengguna ke WebSocket untuk diproses dengan agen yang dikonfigurasi. |
Token JWT yang diautentikasi Amazon Cognito |
Muatan InvokeAgent
Jika Anda langsung berintegrasi dengan/invokeAgent API, Anda harus mematuhi format payload permintaan dan respons berikut.
Meminta muatan
{ "action": "invokeAgent", "inputText": "User query to the agent", "conversationId": "", // Optional. Empty conversationId implies a new conversation. When not provided, a new conversationId will be created and returned with the response. All subsequent messages in the same conversation should provide the same conversationId (i.e. chat memory/history is maintained). "authToken": "XXXX" // Optional. accessToken from cognito flow. If provided, it needs to be a valid JWT token associated with the user }
| Nama parameter | Tipe | Deskripsi |
|---|---|---|
|
aksi |
|
Kami hanya mendukung |
|
InputTeks |
|
Masukan pengguna untuk dikirim ke LLM. |
|
ConversationID |
|
UUID yang secara unik mengidentifikasi percakapan. Jika Anda tidak memberikan nilai ini, solusi akan membuat percakapan baru dan menampilkan ConversationId dalam respons. Semua pesan berikutnya dalam percakapan itu (di mana Anda ingin menyimpan riwayat dan konteks) menyediakan ConversationId di sana. |
|
AuthToken |
|
AccessToken seperti yang diperoleh dari aliran autentikasi Amazon Cognito. Parameter ini tidak diperlukan. Jika Anda memberikannya, token JWT akan divalidasi. Ini membantu mempermudah solusi ini untuk diperpanjang. |
Muatan respons
Tanggapan pertanyaan
WebSocket API akan merespons dengan satu (jika streaming dinonaktifkan) atau banyak (jika streaming diaktifkan) objek JSON terstruktur sebagai berikut untuk setiap kueri.
{ "data" "some data", "conversationId": "id", }
| Nama parameter | Tipe | Deskripsi |
|---|---|---|
|
data |
|
Tanggapan dari doa agen. |
|
ConversationID |
|
ID percakapan. |