Lingara Lingara Dokumentasyon Mga gabay API Mga library Mga app Gumawa Web app
Wika: Filipino

Magpadala ng palitan sa tutor

Bersyon ng API 2026-10-affable-towhee

post https://api.getlingara.com/v1/tutor/message

Nagpapadala ng isang mensahe sa tutor at ini-stream ang sagot bilang mga delta na event, na nagtatapos sa done. Walang iniimbak: ipadala ang kamakailang usapan sa history, hanggang 20 entry. Itinatakda ng character at situation ang eksena. Nangangailangan ng bayad na plan.

Mga scope tutor:converse

Mga parameter

Lingara-Versionheaderstringopsyonal
Ang bersyon ng API na gagamitin sa pagsagot sa kahilingang ito. Kung wala ito, makukuha ng access token ang bersyong naka-pin sa client nito, at makukuha ng kahilingang walang token ang kasalukuyang bersyon. Maaabot lang ang bersyong dine-develop pa sa pamamagitan ng pagpangalan dito. Ang hindi kilalang bersyon ay sinasagot ng 400 na may code na api_version_unknown. Inililista ng GET /v1/versions ang mga bersyon.

Katawan ng kahilingan application/json

messagestringkailangan
historyarray of TurnEntryopsyonal
roleTurnRolekailangan
contentstringkailangan
source_langstringkailangan
target_langstringkailangan
levelinteger | nullopsyonal
characterstring | nullopsyonal
situationstring | nullopsyonal

Mga tugon

200 Ang sagot ng tutor, paisa-isang bahagi

Mga event ng stream text/event-stream

Hindi nagpapadala ng mga keepalive na komento.

delta TurnDelta
textstringkailangan
notice Notice
codestringkailangan
messagestringkailangan
done Done Tinatapos ang stream
error StreamError Tinatapos ang stream

Dumarating sa loob ng 200 na tugon. Naipadala na ang status line, kaya ang pagkabigo matapos mabuksan ang stream ay iniuulat bilang event na ito.

codestringkailangan
messagestringkailangan
plan_idstring | nullopsyonal

Mga error

402application/json
Tinanggihan ang tawag ng isang metered client bago ito nakagastos ng anuman. spend_cap_reached: naabot na ng client o ng account nito ang buwanang limitasyon sa paggastos; itaas ang limitasyon sa pahinang Mga integration. metered_billing_inactive: hindi aktibo ang usage billing para sa account na ito; i-set up ito, o i-update ang paraan ng pagbabayad, sa pahinang Mga integration.
410application/json
Itinigil na ang bersyon ng API na ginagamit sa pagsagot sa kahilingang ito. Magpadala ng suportadong bersyon sa Lingara-Version, o i-pin ang client sa ibang bersyon.
4XXapplication/json
Tinanggihan ang kahilingan. Sinasabi ng code kung bakit, at ipinapaliwanag ito ng error sa mga salita.
503application/json · text/plain
Pansamantalang hindi available ang serbisyo; subukang muli pagkatapos ng bilang ng segundong nasa Retry-After. Habang may maintenance, plain text ang body sa halip na ang error envelope.
5XXapplication/json
Tinanggihan ang kahilingan. Sinasabi ng code kung bakit, at ipinapaliwanag ito ng error sa mga salita.
codestringkailangan

Kung bakit tinanggihan ang request, bilang isang matatag na code na mapagbabatayan ng iyong programa: halimbawa insufficient_scope (403), rate_limited (429) at, para sa isang metered client, spend_cap_reached (402) at metered_billing_inactive (402).

errorstringkailangan

Halimbawa

Wika ng halimbawang code

curl

curl -N -X POST "https://api.getlingara.com/v1/tutor/message" \
  -H "Authorization: Bearer $LINGARA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message":"我要两斤荔枝。","history":[{"role":"assistant","content":"欢迎!今天的荔枝很新鲜。"}],"source_lang":"en","target_lang":"zh","level":2,"character":"a fruit seller in a night market","situation":"buying lychees, haggling"}'

TypeScript

const reply = client.sendTutorMessage({
  message: "你好!我想点一杯茶。",
  history: [],
  source_lang: "en",
  target_lang: "zh",
});
for await (const ev of reply) {
  if (ev.event === "delta") process.stdout.write(ev.data.text);
}

Rust

use lingara::models::{SendTutorMessageEvent, TutorTurnRequest};

let request = TutorTurnRequest {
    message: "你好!我想点一杯茶。".into(),
    history: Vec::new(),
    source_lang: "en".into(),
    target_lang: "zh".into(),
    level: None,
    character: None,
    situation: None,
};
let mut reply = client.send_tutor_message(&request).await?;
while let Some(event) = reply.next().await {
    if let SendTutorMessageEvent::Delta(delta) = event? {
        print!("{}", delta.text);
    }
}

Go

s, err := client.SendTutorMessage(ctx, lingara.TutorTurnRequest{
	Message:    "你好!我想点一杯茶。",
	SourceLang: "en",
	TargetLang: "zh",
})
if err != nil {
	return err
}
defer s.Close()
for ev, err := range s.Events() {
	if err != nil {
		return err
	}
	if delta, ok := ev.(lingara.SendTutorMessageEventDelta); ok {
		fmt.Print(delta.Data.Text)
	}
}

Java

import com.getlingara.client.model.SendTutorMessageEvent;
import com.getlingara.client.model.TutorTurnRequest;

TutorTurnRequest turn =
    new TutorTurnRequest().message("荔枝多少钱?").sourceLang("en").targetLang("zh").level(2);
try (EventStream<SendTutorMessageEvent> stream = client.sendTutorMessage(turn)) {
  for (SendTutorMessageEvent event : stream) {
    if (event instanceof SendTutorMessageEvent.Delta delta) {
      System.out.print(delta.data().getText());
    } else if (event instanceof SendTutorMessageEvent.Notice notice) {
      System.out.println("\n(" + notice.data().getMessage() + ")");
    }
  }
}

Kotlin

import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.SendTutorMessageEvent
import com.getlingara.kotlin.model.TutorTurnRequest

val turn = TutorTurnRequest(message = "荔枝多少钱?", sourceLang = "en", targetLang = "zh", level = 2)
client.sendTutorMessage(turn).use { stream ->
    stream.collect { event ->
        when (event) {
            is SendTutorMessageEvent.Delta -> print(event.data.text)
            is SendTutorMessageEvent.Notice -> println("\n(${event.data.message})")
        }
    }
}

Ruby

history = [{role: "user", content: "你好"}, {role: "assistant", content: "你好!你想练习什么?"}]
client.send_tutor_message(message: "我想点菜", history: history, source_lang: "en", target_lang: "zh") do |event|
  case event
  in Lingara::SendTutorMessageEventDelta => delta then print delta.data.text
  in Lingara::SendTutorMessageEventNotice => notice then warn notice.data.message
  else nil
  end
end
puts

PHP

use Lingara\Model\TutorTurnRequest;
use Lingara\Stream\SendTutorMessageEvent;

$turn = new TutorTurnRequest(['message' => '荔枝多少钱?', 'source_lang' => 'en', 'target_lang' => 'zh', 'level' => 2]);
foreach ($client->sendTutorMessage($turn) as $event) {
    if ($event instanceof SendTutorMessageEvent\Delta) {
        echo $event->data->getText();
    } elseif ($event instanceof SendTutorMessageEvent\Notice) {
        echo "\n(", $event->data->getMessage(), ')';
    }
}
echo "\n";

Mas gusto ang library? Tingnan ang seksyong Mga library.

Halimbawang stream

event: delta
data: {"text":"两斤荔枝,"}

event: delta
data: {"text":"一共三十块。"}

event: done
data: {}

Kung magkaiba ang isang salin at ang sangguniang Ingles, ang sangguniang Ingles ang tama.