Lingara Lingara दस्तावेज़ मार्गदर्शिकाएँ API लाइब्रेरी ऐप बनाएं वेब ऐप
भाषा: हिन्दी

ट्यूटर को एक बारी भेजें

API संस्करण 2026-10-affable-towhee

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

ट्यूटर को एक संदेश भेजता है और जवाब को delta इवेंट के रूप में स्ट्रीम करता है, done के साथ समाप्त। कुछ भी संग्रहीत नहीं होता: हाल की बातचीत history में भेजें, अधिकतम 20 प्रविष्टियाँ। character और situation दृश्य तय करते हैं। सशुल्क प्लान आवश्यक है।

स्कोप tutor:converse

पैरामीटर

Lingara-Versionheaderstringवैकल्पिक
वह API संस्करण जिसके अंतर्गत इस अनुरोध का उत्तर दिया जाए। इसके बिना, एक्सेस टोकन को वह संस्करण मिलता है जिससे उसका क्लाइंट जुड़ा है, और बिना टोकन वाले अनुरोध को वर्तमान संस्करण मिलता है। विकासाधीन संस्करण तक केवल उसे यहाँ नाम देकर पहुँचा जा सकता है। अज्ञात संस्करण का उत्तर 400 और कोड api_version_unknown होता है। GET /v1/versions संस्करणों की सूची देता है।

अनुरोध बॉडी application/json

messagestringआवश्यक
historyarray of TurnEntryवैकल्पिक
roleTurnRoleआवश्यक
contentstringआवश्यक
source_langstringआवश्यक
target_langstringआवश्यक
levelinteger | nullवैकल्पिक
characterstring | nullवैकल्पिक
situationstring | nullवैकल्पिक

प्रतिक्रियाएँ

200 ट्यूटर का जवाब, टुकड़ा-टुकड़ा

स्ट्रीम इवेंट text/event-stream

कोई keepalive टिप्पणी नहीं भेजता।

delta TurnDelta
textstringआवश्यक
notice Notice
codestringआवश्यक
messagestringआवश्यक
done Done स्ट्रीम समाप्त करता है
error StreamError स्ट्रीम समाप्त करता है

200 प्रतिक्रिया के भीतर आता है। स्थिति पंक्ति पहले ही भेजी जा चुकी है, इसलिए स्ट्रीम खुलने के बाद की विफलता इस इवेंट के रूप में बताई जाती है।

codestringआवश्यक
messagestringआवश्यक
plan_idstring | nullवैकल्पिक

त्रुटियाँ

402application/json
मीटर्ड क्लाइंट की कॉल कुछ भी खर्च होने से पहले ही अस्वीकार कर दी गई। spend_cap_reached: क्लाइंट या उसका खाता अपनी मासिक खर्च सीमा तक पहुँच गया है; इंटीग्रेशन पेज पर सीमा बढ़ाएँ। metered_billing_inactive: इस खाते के लिए उपयोग-आधारित बिलिंग सक्रिय नहीं है; इंटीग्रेशन पेज पर इसे सेट अप करें या भुगतान का तरीका अपडेट करें।
410application/json
जिस API संस्करण के अंतर्गत इस अनुरोध का उत्तर दिया जाता है, वह बंद कर दिया गया है। Lingara-Version में कोई समर्थित संस्करण भेजें, या क्लाइंट को किसी दूसरे संस्करण से जोड़ें।
4XXapplication/json
अनुरोध अस्वीकार कर दिया गया। code कारण बताता है, और error उसे शब्दों में बताता है।
503application/json · text/plain
सेवा अस्थायी रूप से अनुपलब्ध है; Retry-After में दिए गए सेकंड के बाद पुनः प्रयास करें। रखरखाव के दौरान बॉडी त्रुटि लिफ़ाफ़े के बजाय सादा टेक्स्ट होती है।
5XXapplication/json
अनुरोध अस्वीकार कर दिया गया। code कारण बताता है, और error उसे शब्दों में बताता है।
codestringआवश्यक

अनुरोध क्यों अस्वीकार किया गया, एक स्थिर कोड के रूप में जिसके आधार पर आप शाखा बना सकते हैं: उदाहरण के लिए insufficient_scope (403), rate_limited (429) और, मीटर्ड क्लाइंट के लिए, spend_cap_reached (402) और metered_billing_inactive (402)।

errorstringआवश्यक

उदाहरण

कोड उदाहरण की भाषा

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

लाइब्रेरी पसंद है? लाइब्रेरी अनुभाग देखें।

उदाहरण स्ट्रीम

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

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

event: done
data: {}

यदि किसी अनुवाद और अंग्रेज़ी संदर्भ में अंतर हो, तो अंग्रेज़ी संदर्भ ही मान्य है।