curl --request POST \
--url https://api.example.com/api/chat/complete \
--header 'Content-Type: application/json' \
--data '
{
"templateId": "<string>",
"userPrompt": "<string>",
"temperature": 123,
"maxTokens": 123
}
'{
"success": true,
"message": "<string>",
"data.response": "<string>",
"data.conversationId": "<string>",
"data.tokenUsage": {
"input": 123,
"output": 123,
"total": 123
},
"data.metadata": {
"model": "<string>",
"responseTime": 123,
"temperature": 123,
"maxTokens": 123,
"template": "<string>"
}
}Generate AI responses using Claude with customizable prompt templates
curl --request POST \
--url https://api.example.com/api/chat/complete \
--header 'Content-Type: application/json' \
--data '
{
"templateId": "<string>",
"userPrompt": "<string>",
"temperature": 123,
"maxTokens": 123
}
'{
"success": true,
"message": "<string>",
"data.response": "<string>",
"data.conversationId": "<string>",
"data.tokenUsage": {
"input": 123,
"output": 123,
"total": 123
},
"data.metadata": {
"model": "<string>",
"responseTime": 123,
"temperature": 123,
"maxTokens": 123,
"template": "<string>"
}
}Authorization: Bearer YOUR_JWT_TOKEN
X-RateLimit-* headerscurl -X POST https://api.cuido.com/api/chat/complete \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"templateId": "65a1b2c3d4e5f6a7b8c9d0e1",
"userPrompt": "Analiza el nivel de satisfacción del personal en el último mes y sugiere acciones para mejorarlo",
"temperature": 0.7,
"maxTokens": 500
}'
{
"success": true,
"message": "Respuesta generada exitosamente",
"data": {
"response": "Basado en las métricas de satisfacción del personal, se observa un promedio de 7.2/10, lo cual es positivo pero tiene margen de mejora. Las principales acciones recomendadas son:\n\n1. Implementar sesiones de escucha activa mensuales con cada departamento\n2. Revisar la carga de trabajo en urgencias donde se detecta mayor insatisfacción\n3. Expandir el programa de reconocimientos, actualmente con buena aceptación\n4. Crear espacios de descanso mejorados para el personal de turno\n\nEstas acciones, implementadas gradualmente, podrían elevar la satisfacción al rango 8-8.5 en 3 meses.",
"conversationId": "65a1b2c3d4e5f6a7b8c9d0e8",
"tokenUsage": {
"input": 245,
"output": 187,
"total": 432
},
"metadata": {
"model": "claude-3-sonnet-20240229",
"responseTime": 2350,
"temperature": 0.7,
"maxTokens": 500,
"template": "Análisis de RRHH en Salud"
}
}
}
src/services/promptService.js:94) implements multiple security layers:
src/services/promptService.js:112):
src/services/promptService.js:9):
1. SYSTEM BASE
- Role definition
- Core rules (no hallucination, response limits)
2. TEMPLATE INSTRUCTIONS
- Specific system instructions from template
- Template content
3. USER QUERY
- Sanitized user input
4. OUTPUT FORMAT
- Response structure requirements
- Character limits
Conversation document (src/controllers/chatController.js:48) with:
{
"success": false,
"message": "Validation error",
"errors": [
{
"field": "userPrompt",
"message": "El prompt debe tener al menos 5 caracteres"
}
]
}
{
"success": false,
"message": "El prompt contiene contenido no permitido"
}
{
"success": false,
"message": "No autorizado. Token inválido o expirado."
}
{
"success": false,
"message": "Plantilla no encontrada"
}
{
"success": false,
"message": "Límite de solicitudes de chat excedido. Espera un minuto.",
"retryAfter": 60
}
{
"success": false,
"message": "Error generando respuesta"
}
src/routes/chatRoutes.js:51src/controllers/chatController.js:7src/services/promptService.js:9src/services/promptService.js:94src/services/promptService.js:112src/services/claudeService.jssrc/models/Conversation.js