Lingara Lingara Mwongozo Miongozo API Maktaba Programu Unda Programu ya wavuti
Lugha: Kiswahili

Tuma zamu kwa mkufunzi

Toleo la API 2026-10-affable-towhee

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

Hutuma ujumbe mmoja kwa mkufunzi na kutiririsha jibu kama matukio ya delta, likiishia kwa done. Hakuna kinachohifadhiwa: tuma mazungumzo ya hivi karibuni katika history, hadi maingizo 20. character na situation huweka mandhari. Inahitaji mpango wa kulipia.

Wigo tutor:converse

Vigezo

Lingara-Versionheaderstringsi lazima
Toleo la API la kutumia kujibu ombi hili. Bila hilo, tokeni ya ufikiaji hupata toleo ambalo mteja wake ameunganishwa nalo, na ombi lisilo na tokeni hupata toleo la sasa. Toleo ambalo bado linaendelezwa linafikiwa tu kwa kulitaja hapa. Toleo lisilojulikana hujibiwa 400 pamoja na msimbo api_version_unknown. GET /v1/versions huorodhesha matoleo.

Mwili wa ombi application/json

messagestringinahitajika
historyarray of TurnEntrysi lazima
roleTurnRoleinahitajika
contentstringinahitajika
source_langstringinahitajika
target_langstringinahitajika
levelinteger | nullsi lazima
characterstring | nullsi lazima
situationstring | nullsi lazima

Majibu

200 Jibu la mkufunzi, kipande kwa kipande

Matukio ya mtiririko text/event-stream

Haitumi maoni ya keepalive.

delta TurnDelta
textstringinahitajika
notice Notice
codestringinahitajika
messagestringinahitajika
done Done Humaliza mtiririko
error StreamError Humaliza mtiririko

Hufika ndani ya jibu la 200. Mstari wa hali umeshatumwa, kwa hivyo hitilafu baada ya mtiririko kufunguka huripotiwa kama tukio hili.

codestringinahitajika
messagestringinahitajika
plan_idstring | nullsi lazima

Hitilafu

402application/json
Simu ya mteja anayetozwa kwa matumizi imekataliwa kabla haijatumia chochote. spend_cap_reached: mteja au akaunti yake imefikia kikomo chake cha matumizi ya pesa cha kila mwezi; ongeza kikomo kwenye ukurasa wa Miunganisho. metered_billing_inactive: utozaji kwa matumizi haujawashwa kwa akaunti hii; uweke, au usasishe njia ya malipo, kwenye ukurasa wa Miunganisho.
410application/json
Toleo la API linalotumika kujibu ombi hili limesitishwa. Tuma toleo linalotumika katika Lingara-Version, au unganisha mteja na toleo lingine.
4XXapplication/json
Ombi limekataliwa. code inaeleza sababu, na error inaieleza kwa maneno.
503application/json · text/plain
Huduma haipatikani kwa muda; jaribu tena baada ya idadi ya sekunde zilizo katika Retry-After. Wakati wa matengenezo, mwili wa jibu ni maandishi ya kawaida badala ya bahasha ya hitilafu.
5XXapplication/json
Ombi limekataliwa. code inaeleza sababu, na error inaieleza kwa maneno.
codestringinahitajika

Sababu ya ombi kukataliwa, kama msimbo thabiti wa kufanyia maamuzi: kwa mfano insufficient_scope (403), rate_limited (429) na, kwa mteja anayetozwa kwa matumizi, spend_cap_reached (402) na metered_billing_inactive (402).

errorstringinahitajika

Mfano

Lugha ya mfano wa msimbo

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";

Unapendelea maktaba? Tazama sehemu ya Maktaba.

Mfano wa mtiririko

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

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

event: done
data: {}

Ikiwa tafsiri na marejeleo ya Kiingereza yanatofautiana, marejeleo ya Kiingereza ndiyo sahihi.