Lingara Lingara Dokumentasie Gidse API Biblioteke Apps Bou Webtoepassing
Taal: Afrikaans

Herkoppel aan 'n lesplan

API-weergawe 2026-10-affable-towhee

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

Sluit weer aan by die vorderingstroom van 'n plan wat nog gegenereer word. 'n Voltooide plan antwoord met een result. 'n Plan wat nog gegenereer word sonder 'n lewendige stroom om by aan te sluit, antwoord met een pending; peil GET /v1/lesson-plans/{id} totdat dit voltooi is.

Omvange lesson_plans:read

Parameters

Lingara-Versionheaderstringopsioneel
Die API-weergawe waaronder hierdie versoek beantwoord word. Daarsonder kry 'n toegangstoken die weergawe waaraan sy kliënt gekoppel is, en 'n versoek sonder 'n token kry die huidige weergawe. Die weergawe wat nog ontwikkel word, is slegs bereikbaar deur dit hier te noem. 'n Onbekende weergawe gee 400 met kode api_version_unknown. GET /v1/versions lys die weergawes.
idpathstringverplig

Antwoorde

200 Die plan se oorblywende vordering, dan die plan

Stroomgebeurtenisse text/event-stream

Stuur elke 15 sekondes 'n keepalive-opmerking.

started PlanStarted
plan_idstringverplig
phase PlanPhase
phasestringverplig
attemptintegerverplig
result PlanResult Beëindig die stroom
planLessonPlanverplig
idstringverplig
statusPlanStatusverplig
titlestring | nullopsioneel
source_langstringverplig
target_langstringverplig
levelintegerverplig
created_atstringverplig
completed_atstring | nullopsioneel
ai_generatedbooleanverplig
contentLessonPlanContent | nullopsioneel
introductionstring | nullopsioneel
learning_objectivesarray of stringverplig
vocabularyarray of PlanWordverplig
wordstringverplig
pronunciationstring | nullopsioneel
translationstringverplig
setsarray of PlanSetverplig
numberintegerverplig
contextstring | nullopsioneel
questionsarray of PlanQuestionverplig
typestringverplig
promptstringverplig
optionsarray of string | nullopsioneel
answerstringverplig
explanationstringverplig
hintstring | nullopsioneel
pending PlanPending Beëindig die stroom
plan_idstringverplig
statusPlanStatusverplig
error StreamError Beëindig die stroom

Kom binne die 200-antwoord aan. Die statusreël is reeds gestuur, so 'n fout nadat die stroom oopgemaak is, word as hierdie gebeurtenis gerapporteer.

codestringverplig
messagestringverplig
plan_idstring | nullopsioneel

Foute

410application/json
Die API-weergawe waaronder hierdie versoek beantwoord word, is gestaak. Stuur 'n ondersteunde weergawe in Lingara-Version, of koppel die kliënt aan 'n ander weergawe.
4XXapplication/json
Die versoek is geweier. code sê hoekom, en error sê dit in woorde.
503application/json · text/plain
Die diens is tydelik onbeskikbaar; probeer weer na die aantal sekondes in Retry-After. Tydens onderhoud is die liggaam gewone teks eerder as die foutomhulsel.
5XXapplication/json
Die versoek is geweier. code sê hoekom, en error sê dit in woorde.
codestringverplig

Waarom die versoek geweier is, as 'n stabiele kode om op te vertak: byvoorbeeld insufficient_scope (403), rate_limited (429) en, vir 'n gemeterde kliënt, spend_cap_reached (402) en metered_billing_inactive (402).

errorstringverplig

Voorbeeld

Taal van die kodevoorbeeld

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

Verkies jy 'n biblioteek? Sien die Biblioteke-afdeling.

Voorbeeldstroom

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

Indien 'n vertaling en die Engelse verwysing verskil, is die Engelse verwysing korrek.