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

ئەگەر وەرگێڕانێک و سەرچاوە ئینگلیزییەکە جیاواز بن، سەرچاوە ئینگلیزییەکە دروستە.