Lingara Lingara Belge Rêbername API Pirtûkxane Sepan Avakirin Sepana webê
Ziman: Kurdî

Herikîn

Ev rûpel ji Îngilîzî hatiye wergerandin. Heke her du ji hev cuda bin, rûpela Îngilîzî rast e. Rûpela Îngilîzî bixwîne

Çar operasyon encamên xwe wek server-sent events diherikînin: çêkirina ferhengê, şandina peyamekê ji mamoste re, afirandina plana dersê û şopandina wê. Her pirtûkxane herikîna bûyeran dike cureyê îteratorê yê taybet ê zimên, û her bûyerê wek nirxekî bi cure yê jixwe dekodkirî dide te.

Herikînek çawa diqede

  • Dema ku kar qediya. Îterasyon li ser bûyera dawî ya herikînê bi xwe disekine. Ji bo plana dersê, ew bûyera dawî encamê hildigire, ji ber vê yekê tu wê berî ku xelek biqede distînî.
  • Dema ku API xeletiyekê ragihîne. Xeletiyeke ku di hundirê herikînê de digihîje wek xeletiyeke API tê avêtin, heman cureyê xeletiyeke ku berî wê digihîje.
  • Dema ku girêdan têk biçe. Herikîneke ku berî bûyera xwe ya dawî diqede, an 120 çirkeyan qet tiştekî naşîne, wek xeletiyeke veguhastinê tê avêtin.
  • Dema ku tu radiwestî. Bangê bi awayê asayî yê zimanê xwe betal bike, an xwendinê rawestîne, û girêdan zû tê girtin.

Şîroveyên keepalive û cureyên bûyeran ên ku pirtûkxaneyek hêj nas nake têne derbaskirin, ji ber vê yekê API-yeke nûtir qet pirtûkxaneyeke kevintir naşikîne.

Qet ji nû ve nayê lêxistin

Herikîneke ku tenê yek bûyer jî gihandibe, qet ji aliyê pirtûkxaneyê ve dîsa nayê ceribandin, ji ber ku dubarekirina wê dikare para te du caran xerc bike. Heke herikîna plana dersê piştî destpêkirinê bişkê, heman planê bi streamLessonPlan û plan_id-ya ji bûyera wê ya yekem bişopîne.

Zimanê mînaka kodê

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

Ev rûpel çi dipêçe