Enviar uma fala a um NPC
Versão da API 2026-10-virile-dragon
Envia a line do jogador a uma personagem e transmite a resposta da personagem como eventos delta, terminando com done. A personagem só fala target_lang, ao level do jogador. Nada é guardado: envie a conversa até agora em history. Cada turno é cobrado a um cliente metered; qualquer outro chamador recebe 403 embed_needs_metered.
Âmbitos embed:play
Parâmetros
Lingara-Versionheaderstringopcional- A versão da API com que responder a este pedido. Sem ela, um token de acesso recebe a versão a que o seu cliente está associado, e um pedido sem token recebe a versão atual. A versão ainda em desenvolvimento só é alcançada indicando-a aqui. Uma versão desconhecida responde
400com o códigoapi_version_unknown.GET /v1/versionslista as versões.
Corpo do pedido application/json
npcNpcobrigatórionamestringobrigatóriopersonastring | nullopcional
scenestring | nullopcionalsource_langstringobrigatóriotarget_langstringobrigatóriolevelintegerobrigatóriolinestringobrigatóriohistoryarray of DialogueEntryopcionalA conversa até agora, da mais antiga para a mais recente, no máximo 12 linhas. Quem guarda a janela é você: a Lingara não guarda nada entre turnos. Devolva cada resposta do NPC cortada aos seus primeiros 500 caracteres.
speakerSpeakerobrigatóriotextstringobrigatório
Respostas
200 A resposta da personagem, aos poucos
Eventos do fluxo text/event-stream
Não envia comentários keepalive.
-
deltaTurnDelta -
textstringobrigatório
-
noticeNotice -
codestringobrigatóriomessagestringobrigatório
-
doneDone Encerra o stream -
errorStreamError Encerra o stream -
Chega dentro da resposta 200. A linha de status já foi enviada, então uma falha depois que o stream é aberto é informada como este evento.
codestringobrigatóriomessagestringobrigatórioplan_idstring | nullopcional
Erros
402application/json- A chamada de um cliente com faturação por utilização foi recusada antes de gastar o que quer que fosse.
spend_cap_reached: o cliente ou a sua conta atingiu o limite de gastos mensal; aumente o limite na página Integrações.metered_billing_inactive: a faturação por utilização não está ativa para esta conta; configure-a ou atualize o método de pagamento na página Integrações. 410application/json- A versão da API com que este pedido é respondido foi descontinuada. Envie uma versão suportada em
Lingara-Version, ou associe o cliente a outra versão. 4XXapplication/json- O pedido foi recusado.
codeindica o motivo eerrordescreve-o por palavras. 503application/json · text/plain- O serviço está temporariamente indisponível; tente novamente após o número de segundos indicado em
Retry-After. Durante a manutenção, o corpo é texto simples em vez do envelope de erro. 5XXapplication/json- O pedido foi recusado.
codeindica o motivo eerrordescreve-o por palavras.
codestringobrigatórioO motivo pelo qual o pedido foi recusado, como um código estável para ramificar a lógica: por exemplo
insufficient_scope(403),rate_limited(429) e, para um cliente com faturação por utilização,spend_cap_reached(402) emetered_billing_inactive(402).errorstringobrigatório
Exemplo
curl -N -X POST "https://api.getlingara.com/v1/embed/dialogue/turns" \
-H "Authorization: Bearer $LINGARA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"npc":{"name":"Auntie Lin","persona":"a street-food vendor who likes to haggle"},"scene":"A night market in Taipei, just after rain","source_lang":"en","target_lang":"zh","level":3,"line":"How much are the dumplings?","history":[{"speaker":"npc","text":"来来来,刚出锅的饺子!"},{"speaker":"player","text":"你好!"}]}'Prefere uma biblioteca? Veja a secção Bibliotecas.
Exemplo de fluxo
event: delta
data: {"text":"饺子十块钱一盘,"}
event: delta
data: {"text":"要几盘?"}
event: done
data: {}Se uma tradução e a referência em inglês divergirem, prevalece a referência em inglês.