Chat
Envía una lista de mensajes y recibe en streaming la respuesta del assistant. El router inteligente elige un modelo por ti (o fija uno); agrupa turnos en una conversation para tener contexto multiturno.
Una llamada
POST/v1/workspaces/{workspace_id}/chat — envía una lista de mensajes y recibe en streaming la respuesta del assistant. Cuerpo de la petición:
messages(obligatorio): un array de{role, content};roleessystem,user,assistantotool.model: opcional; omítelo (o déjalo vacío) para que el router de Nexevo elija el mejor modelo. Fíjalo solo para forzar uno concreto.max_tokens: por defecto4096(1–128000).temperature: por defecto0.7(0–2).intent_hint: una breve pista de tipo de tarea que omite el clasificador de intención cuando el llamador ya conoce el tipo de petición.conversation_id: encadena este turno bajo una conversation existente. Al establecerlo, el servidor reconstruye el historial previo desde la base de datos, así quemessagessolo necesita llevar el nuevo turno del usuario.project_id: ejecuta dentro de un project; sus instrucciones y archivos de conocimiento se inyectan en el servidor (con verificación de acceso).images: hasta 4 URLs de imágenes (OSS) para chat con visión; el router elige un modelo con capacidad de visión y convierte el último turno del usuario en un mensaje multimodal.
La respuesta se transmite como Server-Sent Events, un objeto JSON por línea data:: {delta: "..."} para el texto del assistant, {reasoning: "..."} para la cadena de razonamiento, un {context_compacted: {summary, turns_folded}} opcional al inicio cuando se resumieron turnos anteriores, y {error: "..."} en caso de fallo. El stream termina con data: [DONE]. (Este es un formato de cable distinto al de las agent runs, cuyos eventos llevan un campo type.)
curl -N https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/chat \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Explain SEPA Instant in two sentences."}]
}'Deja model vacío para que el router de Nexevo elija el mejor modelo para la tarea (calidad / coste / latencia equilibrados). Fija model solo cuando necesites uno concreto.
Conversations (multiturno)
Para mantener el contexto entre turnos, crea una conversation y añade mensajes a ella:
POST
/v1/workspaces/{workspace_id}/conversations: crea un hilo (title,project_idopcional).POST
/v1/workspaces/{workspace_id}/conversations/{conversation_id}/messages: añade un mensaje (role,content).GET
/v1/workspaces/{workspace_id}/conversations/ GET/v1/workspaces/{workspace_id}/conversations/{conversation_id}: lista / obtiene hilos.PATCH
/v1/workspaces/{workspace_id}/conversations/{conversation_id}: renombrar / archivar.POST
/v1/workspaces/{workspace_id}/conversations/{conversation_id}/share/ DELETE/v1/workspaces/{workspace_id}/conversations/{conversation_id}/share: crea / revoca un enlace público de solo lectura.DELETE
/v1/workspaces/{workspace_id}/conversations/{conversation_id}: elimina un hilo.
Pasa el project_id de una conversation para anclar el hilo a las instrucciones y archivos de un project.