API de chat y búsqueda #
Consulta los defaults, recupera fragmentos o genera una respuesta con tus documentos.
La respuesta de
/api/rag/answer incluye conversationId. Envíalo en la siguiente pregunta para continuar el mismo hilo. Sin ese campo, se crea una conversación nueva que cuenta para el límite de tu plan. Con API key, el canal predeterminado es API.Prepara tu terminal una vez
Variables para bash o zsh
export FLOWORDR_BASE_URL="https://app.flowordr.com"
export FLOWORDR_API_KEY="<tu-api-key>"
export FLOWORDR_TENANT_ID="<tu-tenant-id>"Ejecuta este bloque antes de los cURL. Sustituye los valores entre ángulos por tus credenciales; ningún ejemplo contiene claves reales.
GET /api/rag/defaults
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| channel | query string | No | web, widget, telegram, whatsapp, playground | web | Canal cuyos defaults se consultan. |
cURL
curl "$FLOWORDR_BASE_URL/api/rag/defaults?channel=web" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 JSON con los defaults efectivos del canal.
POST /api/rag/retrieve
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| query | string | Sí | Texto no vacío | — | Texto que se busca. |
| topK | integer | No | 1–100 | 20 | Número máximo de fragmentos. |
| filters | object | No | Pares campo/valor | — | Filtros adicionales de búsqueda. |
cURL
curl -X POST "$FLOWORDR_BASE_URL/api/rag/retrieve" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d '{"query":"¿Cuál es la política de devoluciones?","topK":5}'Respuesta: 200 {chunks, metadata}; 400 validación; 503 búsqueda no disponible; 504 timeout.
POST /api/rag/answer
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa de tu tenant | — | Autentica la integración. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado para la clave | Tenant de la clave | Envíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre. |
| query | string | Sí | Texto no vacío | — | Pregunta del usuario. |
| conversationId | string | No | ID devuelto por la primera respuesta | Nueva conversación | Reutiliza el mismo ID para agrupar turnos y cargar historial. |
| channel | string | No | api, telegram, whatsapp, web, widget, playground | api con API key | Canal de origen para los defaults RAG. |
| mode / promptMode | string | No | default, botMode, strictMode, conversational, researcher, psychologist; alex según configuración | default / canal | mode controla el modo general; promptMode es atajo de options.promptMode. |
| documentId | string numérico | No | ID decimal de documento | Todos | Atajo de options.documentId. |
| temperature | number | No | 0–1 | 0.7 | Atajo de options.temperature. |
| maxChunks | integer | No | -1–1000 | 6 | Atajo de options.maxChunks; -1 significa ilimitado. |
| model / provider | string | No | Modelo y proveedor configurados en tu tenant | Configuración del tenant | Selección de LLM. |
| userId / userName / clientIp | string | No | Identificadores de tu integración | — | Metadatos del usuario y cliente. |
| conversationHistory | array | No | {role: user|assistant, content: string}[] | Historial guardado | Historial explícito para el prompt. |
| persistConversation | boolean | No | true, false | true | Con API key siempre persiste; false solo se respeta con JWT del dueño. |
| options.minScore | number | No | 0–1 | 0.3 | Similitud mínima. |
| options.topK | integer | No | -1–1000 | 20 | Candidatos recuperados. |
| options.maxChunks | integer | No | -1–1000 | 6 | Fragmentos en el contexto; options prevalece sobre el atajo. |
| options.temperature | number | No | 0–1 | 0.7 | Creatividad; options prevalece sobre el atajo. |
| options.maxTokens | integer | No | 50–2048 | 512 | Límite de tokens de respuesta. |
| options.maxHistoryTurns | integer | null | No | -1–50; 0 desactiva historial | Default del canal | Al cargar historial guardado automáticamente, el servicio aplica un tope efectivo de 10 turnos. |
| options.maxContextSize | integer | No | -1–200000 | 40000 | Límite de caracteres del contexto. |
| options.documentId / documentIds | integer / integer[] | No | IDs del tenant | Todos | Filtra documentos; documentIds prevalece. |
| options.strictMode | boolean | No | true, false | true | Restringe la respuesta al contexto recuperado. |
| options.useLLMContext | boolean | null | No | true, false | false | Controla la inclusión de contexto documental según el servicio. |
| options.pinnedNotes | string | No | Texto libre | — | Notas añadidas al prompt. |
| options.botPromptConfiguration | string | No | Hasta 10000 caracteres | — | Prompt completo personalizado. |
cURL
curl -X POST "$FLOWORDR_BASE_URL/api/rag/answer" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d '{"query":"¿Cuál es la política de devoluciones?","options":{"maxChunks":6,"minScore":0.3}}'Respuesta: 200 con answer, sources y conversationId; 400, 429, 503, 504 o 500 según el error.