Lingara Lingara Belge Rêbername API Pirtûkxane Sepan Avakirin Sepana webê
Ziman: Kurdî

Gerekê ji mamoste re bişîne

Guhertoya API 2026-10-affable-towhee

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

Peyamekê ji mamoste re dişîne û bersivê wek bûyerên delta stream dike, bi done diqede. Tiştek nayê tomarkirin: axaftina dawî di history de bişîne, heta 20 tomaran. character û situation dîmenê diyar dikin. Plana bi pere pêwîst e.

Scope tutor:converse

Parametre

Lingara-Versionheaderstringvebijarkî
Guhertoya API ya ku ev daxwaz pê tê bersivandin. Bêyî wê, tokena gihîştinê guhertoya ku klientê wê pê ve girêdayî ye distîne, û daxwazeke bê token guhertoya niha distîne. Guhertoya ku hîn di pêşxistinê de ye tenê bi binavkirina wê li vir tê gihîştin. Guhertoyeke nenas bi 400 û koda api_version_unknown tê bersivandin. GET /v1/versions guhertoyan rêz dike.

Naveroka daxwazê application/json

messagestringpêwîst
historyarray of TurnEntryvebijarkî
roleTurnRolepêwîst
contentstringpêwîst
source_langstringpêwîst
target_langstringpêwîst
levelinteger | nullvebijarkî
characterstring | nullvebijarkî
situationstring | nullvebijarkî

Bersiv

200 Bersiva mamoste, parçe bi parçe

Bûyerên streamê text/event-stream

Tu şîroveyên keepalive naşîne.

delta TurnDelta
textstringpêwîst
notice Notice
codestringpêwîst
messagestringpêwîst
done Done Weşanê diqedîne
error StreamError Weşanê diqedîne

Di nav bersiva 200 de tê. Rêza rewşê berê hatiye şandin, ji ber vê yekê têkçûnek piştî vebûna weşanê wekî vê bûyerê tê ragihandin.

codestringpêwîst
messagestringpêwîst
plan_idstring | nullvebijarkî

Çewtî

402application/json
Bangeke klienteke pîvandî hat redkirin berî ku tiştek xerc bike. spend_cap_reached: klient an hesabê wê gihîştiye sînorê xercê yê mehane; sînor li rûpela Entegrasyon bilind bike. metered_billing_inactive: fatûrekirina li gorî bikaranînê ji bo vî hesabî ne çalak e; wê li rûpela Entegrasyon saz bike an rêbaza dayînê nû bike.
410application/json
Guhertoya API ya ku ev daxwaz pê tê bersivandin hate rawestandin. Guhertoyeke piştgirîkirî di Lingara-Version de bişîne, an klientê bi guhertoyeke din ve girê bide.
4XXapplication/json
Daxwaz hate redkirin. code sedemê dibêje, û error wê bi gotinan dibêje.
503application/json · text/plain
Xizmet bi demkî ne berdest e; piştî hejmara çirkeyên di Retry-After de dîsa biceribîne. Di dema lênêrînê de naverok nivîsa sade ye, ne zerfa çewtiyê.
5XXapplication/json
Daxwaz hate redkirin. code sedemê dibêje, û error wê bi gotinan dibêje.
codestringpêwîst

Çima daxwaz hat redkirin, wek kodeke domdar ku mirov li gorî wê şax dike: bo nimûne insufficient_scope (403), rate_limited (429) û, ji bo klienteke pîvandî, spend_cap_reached (402) û metered_billing_inactive (402).

errorstringpêwîst

Mînak

Zimanê mînaka kodê

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

Pirtûkxaneyek tercîh dikî? Beşa Pirtûkxaneyan bibîne.

Mînaka streamê

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

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

event: done
data: {}

Ger wergerek û referansa Îngilîzî ji hev cuda bin, referansa Îngilîzî rast e.