Lingara Lingara ឯកសារ មគ្គុទ្ទេសក៍សិក្សា API បណ្ណាល័យ កម្មវិធី បង្កើត កម្មវិធីលើបណ្ដាញ
ភាសា: ខ្មែរ

បង្កើតបញ្ជីវាក្យសព្ទ

កំណែ API 2026-10-affable-towhee

post https://api.getlingara.com/v1/vocab/stream

ផ្សាយបញ្ជីពាក្យតាមកម្រិតដែលបានស្នើ។ ស្ទ្រីមផ្ញើ started ជាមួយព័ត៌មានលម្អិតនៃបញ្ជី ព្រឹត្តិការណ៍ item មួយសម្រាប់ពាក្យនីមួយៗ បន្ទាប់មក done។ រហូតដល់បញ្ជីរួចរាល់ វាផ្ញើតែមតិ keepalive ប៉ុណ្ណោះ។

វិសាលភាព vocab:generate

ប៉ារ៉ាម៉ែត្រ

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

ខ្លឹមសារសំណើ application/json

levelintegerចាំបាច់
source_langstringចាំបាច់
target_langstringចាំបាច់
countinteger | nullស្រេចចិត្ត

ការឆ្លើយតប

200 បញ្ជី ពាក្យមួយក្នុងមួយព្រឹត្តិការណ៍

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

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

started VocabStarted
metaVocabMetaចាំបាច់
levelintegerចាំបាច់
source_langstringចាំបាច់
target_langstringចាំបាច់
frameworkstringចាំបាច់
countintegerចាំបាច់
ai_generatedbooleanចាំបាច់
item VocabItem
wordstringចាំបាច់
pronunciationstring | nullស្រេចចិត្ត
readingstring | nullស្រេចចិត្ត
translationstringចាំបាច់
exampleVocabExample | nullស្រេចចិត្ត
sentencestringចាំបាច់
translationstringចាំបាច់
image_urlstring | nullស្រេចចិត្ត
done Done បញ្ចប់ស្ទ្រីម
error StreamError បញ្ចប់ស្ទ្រីម

មកដល់ក្នុងចម្លើយ 200។ បន្ទាត់ស្ថានភាពត្រូវបានផ្ញើរួចហើយ ដូច្នេះការបរាជ័យបន្ទាប់ពីស្ទ្រីមបើក ត្រូវបានរាយការណ៍ជាព្រឹត្តិការណ៍នេះ។

codestringចាំបាច់
messagestringចាំបាច់
plan_idstring | nullស្រេចចិត្ត

កំហុស

402application/json
ការហៅរបស់ក្លាយអិនត៍ដែលគិតថ្លៃតាមការប្រើប្រាស់ត្រូវបានបដិសេធ មុនពេលវាចំណាយអ្វីទាំងអស់។ spend_cap_reached៖ ក្លាយអិនត៍ ឬគណនីរបស់វាបានដល់កម្រិតចំណាយប្រចាំខែរបស់វាហើយ សូមដំឡើងកម្រិតនៅលើទំព័រ ការតភ្ជាប់។ metered_billing_inactive៖ ការគិតថ្លៃតាមការប្រើប្រាស់មិនទាន់សកម្មសម្រាប់គណនីនេះទេ សូមរៀបចំវា ឬធ្វើបច្ចុប្បន្នភាពវិធីបង់ប្រាក់ នៅលើទំព័រ ការតភ្ជាប់។
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 -X POST "https://api.getlingara.com/v1/vocab/stream" \
  -H "Authorization: Bearer $LINGARA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"level":2,"source_lang":"en","target_lang":"zh","count":8}'

TypeScript

const stream = client.generateVocabulary({ level: 2, source_lang: "en", target_lang: "zh", count: 8 });
for await (const ev of stream) {
  if (ev.event === "item") console.log(ev.data.word, ev.data.translation);
}

Rust

use lingara::models::{GenerateVocabularyEvent, VocabRequest};
use std::num::NonZeroU8;

let request = VocabRequest { level: 2, source_lang: "en".into(), target_lang: "zh".into(), count: NonZeroU8::new(8) };
let mut stream = client.generate_vocabulary(&request).await?;
while let Some(event) = stream.next().await {
    if let GenerateVocabularyEvent::Item(item) = event? {
        println!("{} {}", item.word, item.translation);
    }
}

Go

count := uint8(8)
s, err := client.GenerateVocabulary(ctx, lingara.VocabRequest{Level: 2, SourceLang: "en", TargetLang: "zh", Count: &count})
if err != nil {
	return err
}
defer s.Close()
for ev, err := range s.Events() {
	if err != nil {
		return err
	}
	if item, ok := ev.(lingara.GenerateVocabularyEventItem); ok {
		fmt.Println(item.Data.Word, item.Data.Translation)
	}
}

Java

import com.getlingara.client.model.GenerateVocabularyEvent;
import com.getlingara.client.model.VocabRequest;

VocabRequest request = new VocabRequest().level(2).sourceLang("en").targetLang("zh").count(8);
try (EventStream<GenerateVocabularyEvent> stream = client.generateVocabulary(request)) {
  for (GenerateVocabularyEvent event : stream) {
    if (event instanceof GenerateVocabularyEvent.Item item) {
      System.out.println(item.data().getWord() + " " + item.data().getTranslation());
    }
  }
}

Kotlin

import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.GenerateVocabularyEvent
import com.getlingara.kotlin.model.VocabRequest

val request = VocabRequest(level = 2, sourceLang = "en", targetLang = "zh", count = 8)
// The request is sent here; collect the stream once, inside use {}.
client.generateVocabulary(request).use { stream ->
    stream.collect { event ->
        when (event) {
            is GenerateVocabularyEvent.Item -> println("${event.data.word} ${event.data.translation}")
            is GenerateVocabularyEvent.Started -> Unit
        }
    }
}

Ruby

client.generate_vocabulary(level: 2, source_lang: "en", target_lang: "zh", count: 8) do |event|
  case event
  in Lingara::GenerateVocabularyEventItem => item then puts "#{item.data.word}: #{item.data.translation}"
  else nil
  end
end

PHP

use Lingara\Model\VocabRequest;
use Lingara\Stream\GenerateVocabularyEvent;

$request = new VocabRequest(['level' => 2, 'source_lang' => 'en', 'target_lang' => 'zh', 'count' => 8]);
foreach ($client->generateVocabulary($request) as $event) {
    if ($event instanceof GenerateVocabularyEvent\Item) {
        echo $event->data->getWord(), ': ', $event->data->getTranslation(), "\n";
    }
}

ចូលចិត្តបណ្ណាល័យមែនទេ? សូមមើលផ្នែកបណ្ណាល័យ។

ឧទាហរណ៍ស្ទ្រីម

event: started
data: {"meta":{"level":2,"source_lang":"en","target_lang":"zh","framework":"HSK","count":2,"ai_generated":true}}

event: item
data: {"word":"你好","pronunciation":"nǐ hǎo","translation":"hello","example":{"sentence":"你好,我叫小明。","translation":"Hello, my name is Xiaoming."}}

event: item
data: {"word":"谢谢","pronunciation":"xiè xie","translation":"thank you"}

event: done
data: {}

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