Lingara Lingara दस्तावेज़ मार्गदर्शिकाएँ API लाइब्रेरी ऐप बनाएं वेब ऐप
भाषा: हिन्दी

स्ट्रीम

यह पेज अंग्रेज़ी से अनुवादित है। अगर दोनों में अंतर हो, तो अंग्रेज़ी पेज सही है। अंग्रेज़ी पेज पढ़ें

चार ऑपरेशन अपने नतीजे server-sent events के रूप में स्ट्रीम करते हैं: शब्दावली बनाना, ट्यूटर को संदेश भेजना, पाठ योजना बनाना और किसी पाठ योजना को फ़ॉलो करना। हर लाइब्रेरी इवेंट स्ट्रीम को भाषा के अपने तरह के इटरेटर में बदल देती है, और हर इवेंट आपको पहले से डीकोड की गई टाइप्ड वैल्यू के रूप में देती है।

स्ट्रीम कैसे खत्म होती है

  • जब काम पूरा हो जाए। इटरेशन स्ट्रीम के अंतिम इवेंट पर अपने आप रुक जाता है। पाठ योजना के लिए, उस अंतिम इवेंट में नतीजा होता है, इसलिए लूप खत्म होने से पहले आपको वह मिल जाता है।
  • जब API कोई एरर बताए। स्ट्रीम के भीतर आने वाला एरर API एरर के रूप में उठाया जाता है, उसी टाइप का जो स्ट्रीम से पहले आने वाले एरर का होता है।
  • जब कनेक्शन विफल हो। जो स्ट्रीम अपने अंतिम इवेंट से पहले खत्म हो जाए, या 120 सेकंड तक कुछ भी न भेजे, वह ट्रांसपोर्ट एरर के रूप में उठाई जाती है।
  • जब आप रुकें। अपनी भाषा के सामान्य तरीके से कॉल रद्द करें, या पढ़ना बंद करें, और कनेक्शन तुरंत बंद हो जाता है।

Keepalive टिप्पणियाँ और वे इवेंट टाइप जिन्हें लाइब्रेरी अभी नहीं जानती, छोड़ दिए जाते हैं, इसलिए नया 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";
    }
}

यह पेज क्या रैप करता है