Lingara Lingara Documentation Guides API Bibliothèques Applications Créer Intégration Application web
Langue: Français

Envoyer une réplique à un PNJ

Version de l'API 2026-10-virile-dragon

post https://api.getlingara.com/v1/embed/dialogue/turns

Envoie la line du joueur à un personnage et diffuse la réponse du personnage sous forme d'événements delta, terminés par done. Le personnage ne parle que target_lang, au level du joueur. Rien n'est conservé : envoie la conversation jusqu'ici dans history. Chaque tour est facturé à un client metered ; tout autre appelant reçoit 403 embed_needs_metered.

Portées embed:play

Paramètres

Lingara-Versionheaderstringfacultatif
La version de l'API sous laquelle traiter cette requête. Sans elle, un jeton d'accès obtient la version à laquelle son client est rattaché, et une requête sans jeton obtient la version actuelle. La version encore en développement ne s'atteint qu'en la nommant ici. Une version inconnue répond 400 avec le code api_version_unknown. GET /v1/versions liste les versions.

Corps de la requête application/json

npcNpcobligatoire
namestringobligatoire
personastring | nullfacultatif
scenestring | nullfacultatif
source_langstringobligatoire
target_langstringobligatoire
levelintegerobligatoire
linestringobligatoire
historyarray of DialogueEntryfacultatif

La conversation jusqu'ici, la plus ancienne d'abord, 12 lignes au plus. C'est toi qui gardes la fenêtre : Lingara ne conserve rien entre les tours. Renvoie chaque réponse du PNJ tronquée à ses 500 premiers caractères.

speakerSpeakerobligatoire
textstringobligatoire

Réponses

200 La réponse du personnage, morceau par morceau

Événements du flux text/event-stream

N'envoie aucun commentaire keepalive.

delta TurnDelta
textstringobligatoire
notice Notice
codestringobligatoire
messagestringobligatoire
done Done Termine le flux
error StreamError Termine le flux

Arrive dans la réponse 200. La ligne d'état a déjà été envoyée, donc un échec survenu après l'ouverture du flux est signalé par cet événement.

codestringobligatoire
messagestringobligatoire
plan_idstring | nullfacultatif

Erreurs

402application/json
L'appel d'un client facturé à l'usage a été refusé avant qu'il ne dépense quoi que ce soit. spend_cap_reached : le client ou son compte a atteint sa limite de dépenses mensuelle ; relevez la limite sur la page Intégrations. metered_billing_inactive : la facturation à l'usage n'est pas active pour ce compte ; configurez-la ou mettez à jour le moyen de paiement sur la page Intégrations.
410application/json
La version de l'API sous laquelle cette requête est traitée a été retirée. Envoyez une version prise en charge dans Lingara-Version, ou rattachez le client à une autre version.
4XXapplication/json
La requête a été refusée. code indique pourquoi, et error l'explique en toutes lettres.
503application/json · text/plain
Le service est temporairement indisponible ; réessayez après le nombre de secondes indiqué dans Retry-After. Pendant la maintenance, le corps est du texte brut plutôt que l'enveloppe d'erreur.
5XXapplication/json
La requête a été refusée. code indique pourquoi, et error l'explique en toutes lettres.
codestringobligatoire

Pourquoi la requête a été refusée, sous forme de code stable sur lequel brancher votre logique : par exemple insufficient_scope (403), rate_limited (429) et, pour un client facturé à l'usage, spend_cap_reached (402) et metered_billing_inactive (402).

errorstringobligatoire

Exemple

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":"你好!"}]}'

Vous préférez une bibliothèque ? Consultez la section Bibliothèques.

Exemple de flux

event: delta
data: {"text":"饺子十块钱一盘,"}

event: delta
data: {"text":"要几盘?"}

event: done
data: {}

En cas de divergence entre une traduction et la référence en anglais, la référence en anglais fait foi.