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

NombreTipoObligatorioValores aceptados / rangoDefaultDescripción
X-Api-Key (header)stringSíClave activa de tu tenant—Autentica la integración.
X-Tenant-Id (header)UUIDCondicionalTenant autorizado para la claveTenant de la claveEnvíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre.
channelquery stringNoweb, widget, telegram, whatsapp, playgroundwebCanal 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

NombreTipoObligatorioValores aceptados / rangoDefaultDescripción
X-Api-Key (header)stringSíClave activa de tu tenant—Autentica la integración.
X-Tenant-Id (header)UUIDCondicionalTenant autorizado para la claveTenant de la claveEnvíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre.
querystringSíTexto no vacío—Texto que se busca.
topKintegerNo1–10020Número máximo de fragmentos.
filtersobjectNoPares 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

NombreTipoObligatorioValores aceptados / rangoDefaultDescripción
X-Api-Key (header)stringSíClave activa de tu tenant—Autentica la integración.
X-Tenant-Id (header)UUIDCondicionalTenant autorizado para la claveTenant de la claveEnvíalo si tu clave permite varios tenants; los ejemplos lo incluyen siempre.
querystringSíTexto no vacío—Pregunta del usuario.
conversationIdstringNoID devuelto por la primera respuestaNueva conversaciónReutiliza el mismo ID para agrupar turnos y cargar historial.
channelstringNoapi, telegram, whatsapp, web, widget, playgroundapi con API keyCanal de origen para los defaults RAG.
mode / promptModestringNodefault, botMode, strictMode, conversational, researcher, psychologist; alex según configuracióndefault / canalmode controla el modo general; promptMode es atajo de options.promptMode.
documentIdstring numéricoNoID decimal de documentoTodosAtajo de options.documentId.
temperaturenumberNo0–10.7Atajo de options.temperature.
maxChunksintegerNo-1–10006Atajo de options.maxChunks; -1 significa ilimitado.
model / providerstringNoModelo y proveedor configurados en tu tenantConfiguración del tenantSelección de LLM.
userId / userName / clientIpstringNoIdentificadores de tu integración—Metadatos del usuario y cliente.
conversationHistoryarrayNo{role: user|assistant, content: string}[]Historial guardadoHistorial explícito para el prompt.
persistConversationbooleanNotrue, falsetrueCon API key siempre persiste; false solo se respeta con JWT del dueño.
options.minScorenumberNo0–10.3Similitud mínima.
options.topKintegerNo-1–100020Candidatos recuperados.
options.maxChunksintegerNo-1–10006Fragmentos en el contexto; options prevalece sobre el atajo.
options.temperaturenumberNo0–10.7Creatividad; options prevalece sobre el atajo.
options.maxTokensintegerNo50–2048512Límite de tokens de respuesta.
options.maxHistoryTurnsinteger | nullNo-1–50; 0 desactiva historialDefault del canalAl cargar historial guardado automáticamente, el servicio aplica un tope efectivo de 10 turnos.
options.maxContextSizeintegerNo-1–20000040000Límite de caracteres del contexto.
options.documentId / documentIdsinteger / integer[]NoIDs del tenantTodosFiltra documentos; documentIds prevalece.
options.strictModebooleanNotrue, falsetrueRestringe la respuesta al contexto recuperado.
options.useLLMContextboolean | nullNotrue, falsefalseControla la inclusión de contexto documental según el servicio.
options.pinnedNotesstringNoTexto libre—Notas añadidas al prompt.
options.botPromptConfigurationstringNoHasta 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.