Lingara Lingara بەڵگەنامەکان ڕێنماییەکان API کتێبخانەکان ئەپەکان دروستکردن ئەپی وێب
زمان: سۆرانی

ستریمەکان

ئەم پەڕەیە لە ئینگلیزییەوە وەرگێڕدراوە. ئەگەر هەردووکیان جیاواز بوون، پەڕە ئینگلیزییەکە ڕاستە. پەڕە ئینگلیزییەکە بخوێنەوە

چوار کردار ئەنجامەکانیان وەک ڕووداوی نێردراو لە سێرڤەرەوە ستریم دەکەن: دروستکردنی وشەسازی، ناردنی پەیام بۆ مامۆستا، دروستکردنی پلانی وانە و بەدواداچوونی پلانێک. هەموو کتێبخانەیەک ستریمی ڕووداوەکان دەگۆڕێت بۆ جۆرە دووبارەکەرەوەی خودی زمانەکە، و هەر ڕووداوێکت پێشتر کۆدکراوەتەوە وەک بەهایەکی جۆرداریی پێ دەدات.

ستریمێک چۆن کۆتایی دێت

  • کاتێک کارەکە تەواو دەبێت. دووبارەکردنەوەکە لە دوایین ڕووداوی ستریمەکەدا خۆی دەوەستێت. بۆ پلانی وانە، ئەو ڕووداوە کۆتاییە ئەنجامەکە هەڵدەگرێت، بۆیە پێش کۆتایی خولەکە وەری دەگریت.
  • کاتێک API هەڵەیەک ڕادەگەیەنێت. هەڵەیەک کە لەناو ستریمەکەدا دەگات وەک هەڵەی API بەرز دەکرێتەوە، هەمان جۆری ئەو هەڵەیەی کە پێش ستریمەکە دەگات.
  • کاتێک پەیوەندی شکست دەهێنێت. ستریمێک کە پێش دوایین ڕووداوەکەی کۆتایی بێت، یان بۆ 120 چرکە هیچ شتێک نەنێرێت، وەک هەڵەی گواستنەوە بەرز دەکرێتەوە.
  • کاتێک خۆت دەوەستیت. بانگکردنەکە بە ڕێگای ئاسایی زمانەکەت هەڵبوەشێنەرەوە، یان خوێندنەوە ڕابگرە، و پەیوەندییەکە یەکسەر دادەخرێت.

تێبینییەکانی زیندوو هێشتنەوە و ئەو جۆرە ڕووداوانەی کتێبخانەکە هێشتا نایانناسێت پشتگوێ دەخرێن، بۆیە API ـیەکی نوێتر هەرگیز کتێبخانەیەکی کۆنتر تێک نادات.

هەرگیز دووبارە لێنادرێتەوە

ستریمێک کە تەنانەت یەک ڕووداویشی گەیاندبێت هەرگیز لەلایەن کتێبخانەکەوە هەوڵی نادرێتەوە، چونکە دووبارەکردنەوەی دەتوانێت بەشەکەت دوو جار خەرج بکات. ئەگەر ستریمی پلانی وانەیەک دوای دەستپێکردنی پچڕا، بە streamLessonPlan و plan_idـی یەکەم ڕووداوەکەی بەدوای هەمان پلاندا بچۆ.

زمانی نموونەی کۆد

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

ئەم پەڕەیە چی دەپێچێتەوە