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 ដែលត្រូវប្រើឆ្លើយសំណើនេះ។ បើគ្មានវាទេ token ចូលប្រើទទួលបានកំណែដែលម៉ាស៊ីនភ្ញៀវរបស់វាត្រូវបានភ្ជាប់ ហើយសំណើដែលគ្មាន token ទទួលបានកំណែបច្ចុប្បន្ន។ កំណែដែលកំពុងអភិវឌ្ឍអាចចូលដល់បានតែដោយដាក់ឈ្មោះវានៅទីនេះប៉ុណ្ណោះ។ កំណែដែលមិនស្គាល់ឆ្លើយតប 400 ជាមួយកូដ api_version_unknown។ GET /v1/versions បង្ហាញបញ្ជីកំណែ។
idpathstringចាំបាច់

ការឆ្លើយតប

200 វឌ្ឍនភាពដែលនៅសល់នៃផែនការ បន្ទាប់មកផែនការ

ព្រឹត្តិការណ៍ស្ទ្រីម text/event-stream

ផ្ញើមតិ keepalive រៀងរាល់ 15 វិនាទី។

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

ប្រសិនបើការបកប្រែ និងឯកសារយោងជាភាសាអង់គ្លេសខុសគ្នា ឯកសារយោងជាភាសាអង់គ្លេសគឺជាឯកសារដែលត្រឹមត្រូវ។