Lingara Lingara Dokumentasyon Mga gabay API Mga library Mga app Gumawa Web app
Wika: Filipino

Muling kumonekta sa isang lesson plan

Bersyon ng API 2026-10-affable-towhee

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

Muling sumasali sa progress stream ng isang plan na ginagawa pa. Ang tapos nang plan ay sumasagot ng iisang result. Ang plan na ginagawa pa ngunit walang aktibong stream na masasalihan ay sumasagot ng iisang pending; i-poll ang GET /v1/lesson-plans/{id} hanggang makumpleto ito.

Mga scope lesson_plans:read

Mga parameter

Lingara-Versionheaderstringopsyonal
Ang bersyon ng API na gagamitin sa pagsagot sa kahilingang ito. Kung wala ito, makukuha ng access token ang bersyong naka-pin sa client nito, at makukuha ng kahilingang walang token ang kasalukuyang bersyon. Maaabot lang ang bersyong dine-develop pa sa pamamagitan ng pagpangalan dito. Ang hindi kilalang bersyon ay sinasagot ng 400 na may code na api_version_unknown. Inililista ng GET /v1/versions ang mga bersyon.
idpathstringkailangan

Mga tugon

200 Ang natitirang progreso ng plan, pagkatapos ay ang plan

Mga event ng stream text/event-stream

Nagpapadala ng keepalive na komento bawat 15 segundo.

started PlanStarted
plan_idstringkailangan
phase PlanPhase
phasestringkailangan
attemptintegerkailangan
result PlanResult Tinatapos ang stream
planLessonPlankailangan
idstringkailangan
statusPlanStatuskailangan
titlestring | nullopsyonal
source_langstringkailangan
target_langstringkailangan
levelintegerkailangan
created_atstringkailangan
completed_atstring | nullopsyonal
ai_generatedbooleankailangan
contentLessonPlanContent | nullopsyonal
introductionstring | nullopsyonal
learning_objectivesarray of stringkailangan
vocabularyarray of PlanWordkailangan
wordstringkailangan
pronunciationstring | nullopsyonal
translationstringkailangan
setsarray of PlanSetkailangan
numberintegerkailangan
contextstring | nullopsyonal
questionsarray of PlanQuestionkailangan
typestringkailangan
promptstringkailangan
optionsarray of string | nullopsyonal
answerstringkailangan
explanationstringkailangan
hintstring | nullopsyonal
pending PlanPending Tinatapos ang stream
plan_idstringkailangan
statusPlanStatuskailangan
error StreamError Tinatapos ang stream

Dumarating sa loob ng 200 na tugon. Naipadala na ang status line, kaya ang pagkabigo matapos mabuksan ang stream ay iniuulat bilang event na ito.

codestringkailangan
messagestringkailangan
plan_idstring | nullopsyonal

Mga error

410application/json
Itinigil na ang bersyon ng API na ginagamit sa pagsagot sa kahilingang ito. Magpadala ng suportadong bersyon sa Lingara-Version, o i-pin ang client sa ibang bersyon.
4XXapplication/json
Tinanggihan ang kahilingan. Sinasabi ng code kung bakit, at ipinapaliwanag ito ng error sa mga salita.
503application/json · text/plain
Pansamantalang hindi available ang serbisyo; subukang muli pagkatapos ng bilang ng segundong nasa Retry-After. Habang may maintenance, plain text ang body sa halip na ang error envelope.
5XXapplication/json
Tinanggihan ang kahilingan. Sinasabi ng code kung bakit, at ipinapaliwanag ito ng error sa mga salita.
codestringkailangan

Kung bakit tinanggihan ang request, bilang isang matatag na code na mapagbabatayan ng iyong programa: halimbawa insufficient_scope (403), rate_limited (429) at, para sa isang metered client, spend_cap_reached (402) at metered_billing_inactive (402).

errorstringkailangan

Halimbawa

Wika ng halimbawang code

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

Mas gusto ang library? Tingnan ang seksyong Mga library.

Halimbawang stream

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

Kung magkaiba ang isang salin at ang sangguniang Ingles, ang sangguniang Ingles ang tama.