Obtener una respuesta de un personaje NPC
Envía un array de mensajes de interacción entre el jugador y el personaje NPC. La API procesa el historial de conversación y devuelve una nueva respuesta generada por el personaje. Modos de respuesta
-
HTTP batch (por defecto): Envía una petición
POST https://app.npcbuilder.com/api/interactions. El servicio compone toda la respuesta y entrega un JSON conresponse,user_eventsycharacter_events. -
Streaming por WebSocket: Abre una conexión WebSocket a
wss://api.app.npcbuilder.com/api/interactions. Una vez aceptada, envía:{ "type": "interaction.start", "payload": { ...interacción... }, "meta": { "language": "es-ES", "session_id": "opcional" } }El servidor emite los eventos
stream.accepted, variosstream.delta, opcionalmentestream.safe_responsecuando se detecta una frase vetada y, al finalizar,stream.endcon el texto completo, los eventos y los tokens consumidos.Envía
{"type":"interaction.cancel"}para abortar una generación.
Complemento de voz (solo WebSocket)
-
Conecta a
wss://api.app.npcbuilder.com/api/interactions?voice=truepara voz bidireccional, o usavoice=input/voice=outputpara voz en un solo sentido. También puedes proporcionarmeta.voicedentro deinteraction.start. - Con voz habilitada se mantienen los eventosstream.*de texto y además se envían eventosvoice.*:voice.ready,voice.session.updated— estado de la sesión de Azure Voice Live.voice.audio.delta,voice.audio.timestamp,voice.audio.done,voice.response.done— audio generado por el asistente.voice.transcript.delta,voice.input.started/stopped,voice.usage— audio del micrófono transcrito por el servicio.
-
Comandos aceptados mientras la sesión está activa:
{ "type": "voice.input.append", "data": { "audio": "<chunk pcm16 base64>" } } { "type": "voice.input.commit" } { "type": "voice.input.clear" } { "type": "voice.session.update", "data": { "voice_name": "en-US-Ava:DragonHDLatestNeural" } } { "type": "voice.cancel" }
El streaming de texto nunca se desactiva: siempre recibirás stream.delta y el stream.end final, incluso cuando la reproducción de voz está activa.
Documentation Index
Fetch the complete documentation index at: https://docs.npcbuilder.com/llms.txt
Use this file to discover all available pages before exploring further.
Autorizaciones
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Parámetros de consulta
El código de idioma para la interacción. Valores admitidos: - en-US: Inglés (Estados Unidos) - es-ES: Español (España)
en-US, es-ES "en-US"
(Opcional) El identificador único de la sesión del jugador.
"60Z5aZjIuFlyYbjbZZKe"
Opcional. Controla el complemento de Azure Voice Live cuando se usa WebSocket. Valores aceptados:
false(predeterminado): desactiva la voz. *true: habilita audio bidireccional (STT + TTS). *input: solo captura voz del usuario (STT). *output: solo sintetiza el audio del asistente (TTS).
false, true, input, output Cuerpo
Una carga útil en JSON, XML o codificada en URL que contiene el historial completo de la conversación. Asegúrate de enviar los mensajes como un array de objetos siguiendo el esquema definido.
El esquema Interaction define la estructura para una conversación entre un jugador y un NPC. Incluye metadatos como ID del personaje, ID del juego, ID del mundo y un array de mensajes.
(Opcional) El identificador único de la conversación existente para cargar/persistir el historial.
"conv_12345"
El identificador único del personaje NPC.
"a96c6161-59f5-40f7-955e-459cd11"
El identificador único del juego.
"tx65BrETVN2vMrrUIrlV"
El identificador único del mundo.
"PtUYW5bLMZNnXPN8qAUJ"
Un array de mensajes intercambiados entre el jugador y el NPC.
Un objeto que contiene información específica del jugador para el contexto del personaje.
Respuesta
Operación exitosa. Devuelve la respuesta del personaje junto con cualquier evento de usuario desencadenado.
El esquema ApiResponse representa la respuesta correcta de la API, incluyendo la respuesta del NPC y cualquier evento desencadenado por el usuario.