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

पाठ योजना से दोबारा जुड़ें

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

get https://api.getlingara.com/v1/lesson-plans/{id}/stream

अभी बन रही योजना की प्रगति स्ट्रीम में फिर से शामिल होता है। पूरी हो चुकी योजना एक result से जवाब देती है। जो योजना अभी बन रही है पर जिसकी कोई लाइव स्ट्रीम नहीं है, वह एक pending से जवाब देती है; पूरी होने तक GET /v1/lesson-plans/{id} को पोल करें।

स्कोप lesson_plans:read

पैरामीटर

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

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

200 योजना की बची हुई प्रगति, फिर योजना

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

हर 15 सेकंड में एक keepalive टिप्पणी भेजता है।

started PlanStarted
plan_idstringआवश्यक
phase PlanPhase
phasestringआवश्यक
attemptintegerआवश्यक
result PlanResult स्ट्रीम समाप्त करता है
planLessonPlanआवश्यक
idstringआवश्यक
statusPlanStatusआवश्यक
titlestring | nullवैकल्पिक
source_langstringआवश्यक
target_langstringआवश्यक
levelintegerआवश्यक
created_atstringआवश्यक
completed_atstring | nullवैकल्पिक
ai_generatedbooleanआवश्यक
contentLessonPlanContent | nullवैकल्पिक
introductionstring | nullवैकल्पिक
learning_objectivesarray of stringआवश्यक
vocabularyarray of PlanWordआवश्यक
wordstringआवश्यक
pronunciationstring | nullवैकल्पिक
translationstringआवश्यक
setsarray of PlanSetआवश्यक
numberintegerआवश्यक
contextstring | nullवैकल्पिक
questionsarray of PlanQuestionआवश्यक
typestringआवश्यक
promptstringआवश्यक
optionsarray of string | nullवैकल्पिक
answerstringआवश्यक
explanationstringआवश्यक
hintstring | nullवैकल्पिक
pending PlanPending स्ट्रीम समाप्त करता है
plan_idstringआवश्यक
statusPlanStatusआवश्यक
error StreamError स्ट्रीम समाप्त करता है

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

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

त्रुटियाँ

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 "https://api.getlingara.com/v1/lesson-plans/$ID/stream" \
  -H "Authorization: Bearer $LINGARA_TOKEN"

TypeScript

for await (const ev of client.streamLessonPlan({ id: planId })) {
  if (ev.event === "result") console.log("ready:", ev.data.plan.title);
  if (ev.event === "pending") console.log("still", ev.data.status, "- try again later");
}

Rust

use lingara::models::StreamLessonPlanEvent;

let mut stream = client.stream_lesson_plan(&plan_id).await?;
while let Some(event) = stream.next().await {
    match event? {
        StreamLessonPlanEvent::Result(result) => println!("ready: {}", result.plan.title.unwrap_or_default()),
        StreamLessonPlanEvent::Pending(pending) => println!("still {:?} - try again later", pending.status),
        _ => {}
    }
}

Go

// Rejoin a plan still generating, with the plan_id from its started event.
s, err := client.StreamLessonPlan(ctx, "3f1c2a9e-5b7d-4e21-9a0c-6d8e4f2b1a37")
if err != nil {
	return err
}
defer s.Close()
for ev, err := range s.Events() {
	if err != nil {
		return err
	}
	switch e := ev.(type) {
	case lingara.StreamLessonPlanEventResult:
		fmt.Println("ready:", e.Data.Plan.ID)
	case lingara.StreamLessonPlanEventPending:
		fmt.Println("still", e.Data.Status, "- rejoin later")
	}
}

Java

import com.getlingara.client.model.StreamLessonPlanEvent;

try (EventStream<StreamLessonPlanEvent> stream = client.streamLessonPlan(planId)) {
  for (StreamLessonPlanEvent event : stream) {
    if (event instanceof StreamLessonPlanEvent.Result result) {
      System.out.println(result.data().getPlan().getTitle());
    } else if (event instanceof StreamLessonPlanEvent.Pending pending) {
      // Still generating elsewhere: ask again later.
      System.out.println("pending: " + pending.data().getStatus());
    }
  }
}

Kotlin

import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.StreamLessonPlanEvent

client.streamLessonPlan(planId).use { stream ->
    stream.collect { event ->
        when (event) {
            is StreamLessonPlanEvent.Result -> println(event.data.plan.title)
            // Still generating elsewhere: ask again later.
            is StreamLessonPlanEvent.Pending -> println("pending: ${event.data.status}")
            else -> Unit
        }
    }
}

Ruby

client.stream_lesson_plan(plan_id) do |event|
  case event
  in Lingara::StreamLessonPlanEventResult => result then puts "ready: #{result.data.plan.title}"
  in Lingara::StreamLessonPlanEventPending => pending then puts "still #{pending.data.status}, try again later"
  else nil
  end
end

PHP

use Lingara\Stream\StreamLessonPlanEvent;

foreach ($client->streamLessonPlan($planId) as $event) {
    if ($event instanceof StreamLessonPlanEvent\Result) {
        echo 'ready: ', $event->data->getPlan()->getTitle(), "\n";
    } elseif ($event instanceof StreamLessonPlanEvent\Pending) {
        echo 'still ', $event->data->getStatus()->value, ", try again later\n";
    }
}

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

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

event: pending
data: {"plan_id":"3f1c2a9e-5b7d-4e21-9a0c-6d8e4f2b1a37","status":"generating"}

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