API REST del backend de AI-Kit para la IA de WordPress
El backend de AWS de AI‑Kit expone endpoints equivalentes a la «IA integrada de Chrome» bajo /admin/* y /frontend/*, además de funciones auxiliares para listar bases de conocimientos y realizar cargas con URL prefirmadas.
Los detalles de implementación, las descripciones de los parámetros y las notas de configuración se encuentran en el archivo readme público de Serverless Application Repository: wpsuite-ai-kit en AWS SAR.
Autenticación
La autenticación está controlada por completo por los parámetros de SAR que elija al implementar la aplicación (consulta el README público enlazado anteriormente):
AdminApiAuthModeFrontendApiAuthMode
Cada uno se puede establecer en NONE, IAM o COGNITO. El valor elegido determina cómo deben autenticarse las solicitudes a los endpoints /admin/* o /frontend/*. Si elige NONE, lo habitual es combinarlo con reCAPTCHA o WAF (cortafuegos) mediante la configuración de SAR.
Los endpoints del frontend también pueden requerir una cabecera X-Recaptcha-Token si está activada la protección con reCAPTCHA.
Cómo usa el plugin de WordPress el backend
- Los bloques, el chatbot y las API de JavaScript de AI-Kit llaman automáticamente al backend según los ajustes configurados en la pantalla de administración Ajustes de AI-Kit.
- Cuando reCAPTCHA está activado para el tráfico del frontend, el plugin solicita tokens en el cliente para que las peticiones incluyan la cabecera
X-Recaptcha-Tokenesperada. - Si integra Gatey como transporte y configure un
apiNamecoincidente en Ajustes de Gatey → Ajustes de API, las implementaciones protegidas con IAM o Cognito pueden intercambiar y renovar tokens sin interrupciones después de que el usuario inicie sesión en WordPress mediante Gatey. - Sin la integración con Gatey, puede seguir llamando al backend directamente desde su propio código (por ejemplo, con
fetch) contra el endpoint público, usando el modo de autenticación configurado o controles de red como cortafuegos y listas de permitidos. - Use este documento cuando quiera crear flujos personalizados o herramientas externas sobre el backend implementado en lugar de usar las funciones integradas del plugin.
Endpoints
Los endpoints se dividen entre los prefijos de administración (escritorio de WordPress) y frontend (interfaz pública). Ambos conjuntos aceptan application/json, salvo que se indique lo contrario.
Endpoints de administración (/admin/*)
| Ruta | Método | Finalidad |
|---|---|---|
/admin/knowledge-bases | GET | Enumerar las bases de conocimientos de Bedrock disponibles para la integración RAG |
/admin/prompt | POST | API general para instrucciones con funcionalidad equivalente (usada en flujos SEO) |
/admin/generate-upload-url | GET | URL de carga prefirmadas de S3 para instrucciones multimodales |
/admin/summarize | POST | Alternativa del backend para el generador de resúmenes |
/admin/write | POST | Alternativa del backend para el redactor (KB activada de forma predeterminada) |
/admin/rewrite | POST | Alternativa del backend para la reescritura |
/admin/translate | POST | Alternativa del backend para la traducción |
/admin/proofread | POST | Alternativa del backend para la corrección |
/admin/detect-language | POST | Alternativa del backend para la detección de idioma |
Endpoints del frontend (/frontend/*)
Estos están sujetos a los parámetros de funcionalidad de SAR (EnableSummarizerBackend, EnableChatbotBackend, EnableLanguageAIBackend). Cuando se activan, reflejan las rutas de administración y pueden requerir X-Recaptcha-Token.
| Ruta | Método | Notas |
|---|---|---|
/frontend/prompt | POST | Lo usan sendChatMessage y sendFeedbackMessage del chatbot |
/frontend/generate-upload-url | GET | Cargas prefirmadas para el chatbot público |
/frontend/summarize | POST | Misma carga útil que el generador de resúmenes de administración |
/frontend/write | POST | Misma carga útil que el redactor de administración |
/frontend/rewrite | POST | Misma carga útil que el reescritor de administración |
/frontend/translate | POST | Misma carga útil que el traductor de administración |
/frontend/proofread | POST | Misma carga útil que el corrector de administración |
/frontend/detect-language | POST | Misma carga útil que el detector de idioma de administración |
Ejemplos de cargas útiles
// /admin/prompt (or /frontend/prompt)
{
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Extract a title and 5 bullet points from the text below..." }
],
"saveChatSession": false
}
// /admin/write
{
"text": "Write a short product description...",
"tone": "professional",
"format": "markdown",
"length": "short",
"outputLanguage": "en"
}
// /admin/translate (source language required)
{
"text": "Hello world",
"sourceLanguage": "en",
"targetLanguage": "hu"
}
// /admin/language-detector
{
"text": "Szia! Hogy vagy?"
}
// /admin/proofread
{
"text": "I has a apple.",
"expectedInputLanguages": ["en"]
}
Respuestas de error
Los errores devuelven una estructura ErrorResponse (código de estado, mensaje y detalles opcionales). Entre las causas habituales se encuentran:
- una carga útil demasiado grande (cargas de imágenes o instrucciones extensas)
- valores de enumeración no válidos (por ejemplo, la ausencia de
sourceLanguagepara el traductor) - credenciales ausentes o rechazo por parte de IAM, Cognito, WAF o reCAPTCHA
