Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Referencia de la API
En esta sección, se proporcionan referencias de API para la solución.
Panel de implementación
| API de REST | Método HTTP | Funcionalidad | Personas que llaman autorizadas |
|---|---|---|---|
|
|
|
Obtenga todos los despliegues. |
Token JWT autenticado de Amazon Cognito |
|
|
|
Crea una implementación de un nuevo caso de uso. |
Token JWT autenticado de Amazon Cognito |
|
|
|
Obtiene los detalles de la implementación de una sola implementación. |
Token JWT autenticado de Amazon Cognito |
|
|
|
Actualiza una implementación determinada. |
Token JWT autenticado de Amazon Cognito |
|
|
|
Elimina una implementación determinada. |
Token JWT autenticado de Amazon Cognito |
|
|
|
Obtiene los tipos de casos de uso disponibles para la implementación |
Token JWT autenticado de Amazon Cognito |
|
|
|
Obtiene los proveedores de modelos disponibles para el tipo de caso de uso dado |
Token JWT autenticado de Amazon Cognito |
|
|
|
Obtiene IDs los modelos disponibles para un proveedor y un tipo de caso de uso determinados |
Token JWT autenticado de Amazon Cognito |
|
|
|
Obtiene la información sobre el modelo dado, incluidos los parámetros predeterminados. |
Token JWT autenticado de Amazon Cognito |
nota
Los archivos OpenAPI y Swagger también se pueden exportar desde API Gateway para facilitar la integración con la API. Consulte Exportar una API REST desde API Gateway.
Cargas útiles POST y PATCH
Consulte a continuación un ejemplo de una carga útil POST para el /deployments punto final, que creará un nuevo caso de uso.
{ "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 } } }
En cuanto a las actualizaciones, la estructura es la misma que la anterior, con algunas advertencias:
-
El nombre del caso de uso no se puede cambiar
-
Un caso de uso solo puede cambiar los grupos de seguridad y las subredes una vez que se ha implementado en una VPC. La VPC en sí no se puede cambiar.
-
Si se creó un índice de Kendra para usted como base de conocimientos, no podrá cambiar la configuración de ese índice (por ejemplo,, KendraIndexName) QueryCapacityUnits
Caso de uso compartido APIs
Los siguientes puntos finales de la API REST están disponibles para los casos de uso de Text y Bedrock Agent:
| API de REST | Método HTTP | Funcionalidad | Personas que llaman autorizadas |
|---|---|---|---|
|
|
|
Obtiene los detalles de configuración de un caso de uso específico. |
Token JWT autenticado de Amazon Cognito |
| WebSocket API | Funcionalidad | Llamantes autorizados |
|---|---|---|
|
|
Inicie la WebSocket conexión y autentique al usuario. |
Token JWT autenticado de Amazon Cognito |
|
|
Se llama al punto final cuando se ha WebSocket desconectado una conexión. |
Token JWT autenticado de Amazon Cognito |
API de detalles de casos de uso
El punto final de la API de detalles recupera información sobre un caso de uso específico:
GET /details/{useCaseConfigKey}
Este punto final devuelve los detalles de configuración de un caso de uso específico, incluidos los parámetros del modelo, la configuración de la base de conocimientos y otra información de implementación. Se requiere un token JWT autenticado de Amazon Cognito para su autorización.
Caso de uso de texto
| WebSocket API | Funcionalidad | Llamantes autorizados |
|---|---|---|
|
|
Envía el mensaje de chat del usuario al WebSocket para que lo procese con la experiencia LLM configurada. |
Token JWT autenticado de Amazon Cognito |
| API de REST | Método HTTP | Funcionalidad | Personas que llaman autorizadas |
|---|---|---|---|
|
|
|
Envía los comentarios de los usuarios para un caso de uso específico. |
Token JWT autenticado de Amazon Cognito |
Cargas útiles de envío de mensajes
Si te estás integrando directamente con la /sendMessage API, debes seguir los siguientes formatos de carga útil de solicitud y respuesta.
Solicita la carga útil
{ "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 }
| Nombre del parámetro | Tipo | Description (Descripción) |
|---|---|---|
|
action |
|
Actualmente, solo admitimos la acción «enviar mensaje» en WebSocket |
|
pregunta |
|
La entrada del usuario para enviarla al LLM |
|
ID de conversación |
|
Un UUID que identifica la conversación. Si no se proporciona, se creará una nueva conversación y se mostrará el ID de conversación en la respuesta. Todos los mensajes subsiguientes de esa conversación (en los que desees que se history/context retengan) deberán incluir el identificador de conversación en ese mensaje. |
|
Plantilla de solicitud |
|
Anula la plantilla de solicitud de este mensaje. Si está vacía o no se proporciona, se utilizará de forma predeterminada la solicitud establecida en el momento de la implementación. Debe tener los marcadores de posición adecuados especificados para la configuración dada (es decir, {historial} y {entrada} para las implementaciones de IA de Sagemaker que no sean RAG), con la adición de {contexto} si se utiliza RAG para todas las implementaciones. |
|
AuthToken |
|
AccessToken obtenido del flujo de autenticación de cognito. Esto es necesario cuando se invoca un punto final websocket de chat configurado para RAG con control de acceso basado en roles (RBAC). La lista de reclamos de cognito:groups de este token JWT se utiliza para controlar el acceso a los documentos del índice Kendra. Este parámetro no es obligatorio para los casos de uso que no sean de RAG. Tampoco es obligatorio para los casos de uso de RAG en los que el RBAC esté desactivado. |
Cargas útiles de respuesta
Pregunta y respuesta
La WebSocket API responderá con 1 (si la transmisión está deshabilitada) o varios (si la transmisión está habilitada) objetos JSON estructurados de la siguiente manera para cada consulta.
{ "data": "some data", "conversationId": "id", }
| Nombre del parámetro | Tipo | Description (Descripción) |
|---|---|---|
|
data |
|
Una parte de la respuesta del LLM si la transmisión está habilitada, o la respuesta completa. Si utiliza la transmisión, se enviará una respuesta de este formato con el contenido de datos END_CONVERSATION para indicar el final de la respuesta a una sola pregunta. |
|
ID de conversación |
|
El ID de la conversación a la que pertenece esta respuesta de SourceDocument. |
Respuesta del documento fuente
Si ha configurado su caso de uso de RAG para devolver los documentos fuente, también recibirá la siguiente carga útil al final de cada respuesta para cada documento fuente utilizado para crear la respuesta.
{ "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" }
| Nombre del parámetro | Tipo | Description (Descripción) |
|---|---|---|
|
extracto |
|
Un extracto del documento fuente. |
|
location |
|
Ubicación del documento fuente. Esto dependerá de las fuentes de datos utilizadas y del tipo de base de conocimientos, pero podrían ser cosas como s3 URIs o sitios web. |
|
puntuación |
|
La confianza en que el documento corresponde a la pregunta planteada. Será un valor flotante de 0 a 1 para Bedrock y una cuerda (por ejemplo, ALTO, BAJO, etc.) para Kendra. |
|
título_del documento |
|
Título del documento fuente devuelto. Solo disponible cuando se usa Kendra. |
|
document_id |
|
ID del documento fuente devuelto. Solo disponible cuando se usa Kendra. |
|
atributos_adicionales |
|
Este campo contendrá todos los atributos adicionales del documento según los personalice en su base de conocimientos en el momento de la ingesta. |
|
ID de conversación |
|
El ID de la conversación a la que pertenece esta respuesta de SourceDocument. |
Carga útil de la API de comentarios
A continuación, se muestra un ejemplo de una carga útil POST para el /feedback/{useCaseId} punto final, que enviará los comentarios de los usuarios para un caso de uso específico:
{ "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" ] }
Caso de uso de Bedrock Agent
| WebSocket API | Funcionalidad | Llamantes autorizados |
|---|---|---|
|
|
Envía el mensaje del usuario al WebSocket para que lo procese con el agente configurado. |
Token JWT autenticado de Amazon Cognito |
Cargas útiles de InvokeAgent
Si se va a integrar directamente con el/invokeAgent API, debe seguir los siguientes formatos de carga útil de solicitud y respuesta.
Carga de solicitud
{ "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 }
| Nombre del parámetro | Tipo | Description (Descripción) |
|---|---|---|
|
action |
|
Solo apoyamos la |
|
Texto de entrada |
|
La entrada del usuario que se va a enviar al LLM. |
|
ID de conversación |
|
Un UUID que identifica de forma exclusiva la conversación. Si no proporciona este valor, la solución crea una nueva conversación y devuelve el ID de conversación en la respuesta. Todos los mensajes subsiguientes de esa conversación (en los que desee conservar el historial y el contexto) incluyen allí el identificador de conversación. |
|
Token de autenticación |
|
AccessToken obtenido del flujo de autenticación de Amazon Cognito. Este parámetro no es obligatorio. Si lo proporciona, se validará el token JWT. Esto ayuda a facilitar la ampliación de esta solución. |
Cargas útiles de respuesta
Pregunta y respuesta
La WebSocket API responderá con uno (si la transmisión está deshabilitada) o varios (si la transmisión está habilitada) objetos JSON estructurados de la siguiente manera para cada consulta.
{ "data" "some data", "conversationId": "id", }
| Nombre del parámetro | Tipo | Description (Descripción) |
|---|---|---|
|
data |
|
La respuesta de la invocación del agente. |
|
ID de conversación |
|
El ID de la conversación. |