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

ផ្ញើវេនមួយទៅគ្រូបង្រៀន

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

post https://api.getlingara.com/v1/tutor/message

ផ្ញើសារមួយទៅគ្រូបង្រៀន ហើយផ្សាយចម្លើយជាព្រឹត្តិការណ៍ delta បញ្ចប់ដោយ done។ គ្មានអ្វីត្រូវបានរក្សាទុកទេ៖ សូមផ្ញើការសន្ទនាថ្មីៗក្នុង history រហូតដល់ 20 ធាតុ។ character និង situation កំណត់ឈុតឆាក។ តម្រូវឱ្យមានគម្រោងបង់ប្រាក់។

វិសាលភាព tutor:converse

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

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

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

messagestringចាំបាច់
historyarray of TurnEntryស្រេចចិត្ត
roleTurnRoleចាំបាច់
contentstringចាំបាច់
source_langstringចាំបាច់
target_langstringចាំបាច់
levelinteger | nullស្រេចចិត្ត
characterstring | nullស្រេចចិត្ត
situationstring | nullស្រេចចិត្ត

ការឆ្លើយតប

200 ចម្លើយរបស់គ្រូបង្រៀន ម្តងមួយផ្នែក

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

មិនផ្ញើមតិ keepalive ទេ។

delta TurnDelta
textstringចាំបាច់
notice Notice
codestringចាំបាច់
messagestringចាំបាច់
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/tutor/message" \
  -H "Authorization: Bearer $LINGARA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message":"我要两斤荔枝。","history":[{"role":"assistant","content":"欢迎!今天的荔枝很新鲜。"}],"source_lang":"en","target_lang":"zh","level":2,"character":"a fruit seller in a night market","situation":"buying lychees, haggling"}'

TypeScript

const reply = client.sendTutorMessage({
  message: "你好!我想点一杯茶。",
  history: [],
  source_lang: "en",
  target_lang: "zh",
});
for await (const ev of reply) {
  if (ev.event === "delta") process.stdout.write(ev.data.text);
}

Rust

use lingara::models::{SendTutorMessageEvent, TutorTurnRequest};

let request = TutorTurnRequest {
    message: "你好!我想点一杯茶。".into(),
    history: Vec::new(),
    source_lang: "en".into(),
    target_lang: "zh".into(),
    level: None,
    character: None,
    situation: None,
};
let mut reply = client.send_tutor_message(&request).await?;
while let Some(event) = reply.next().await {
    if let SendTutorMessageEvent::Delta(delta) = event? {
        print!("{}", delta.text);
    }
}

Go

s, err := client.SendTutorMessage(ctx, lingara.TutorTurnRequest{
	Message:    "你好!我想点一杯茶。",
	SourceLang: "en",
	TargetLang: "zh",
})
if err != nil {
	return err
}
defer s.Close()
for ev, err := range s.Events() {
	if err != nil {
		return err
	}
	if delta, ok := ev.(lingara.SendTutorMessageEventDelta); ok {
		fmt.Print(delta.Data.Text)
	}
}

Java

import com.getlingara.client.model.SendTutorMessageEvent;
import com.getlingara.client.model.TutorTurnRequest;

TutorTurnRequest turn =
    new TutorTurnRequest().message("荔枝多少钱?").sourceLang("en").targetLang("zh").level(2);
try (EventStream<SendTutorMessageEvent> stream = client.sendTutorMessage(turn)) {
  for (SendTutorMessageEvent event : stream) {
    if (event instanceof SendTutorMessageEvent.Delta delta) {
      System.out.print(delta.data().getText());
    } else if (event instanceof SendTutorMessageEvent.Notice notice) {
      System.out.println("\n(" + notice.data().getMessage() + ")");
    }
  }
}

Kotlin

import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.SendTutorMessageEvent
import com.getlingara.kotlin.model.TutorTurnRequest

val turn = TutorTurnRequest(message = "荔枝多少钱?", sourceLang = "en", targetLang = "zh", level = 2)
client.sendTutorMessage(turn).use { stream ->
    stream.collect { event ->
        when (event) {
            is SendTutorMessageEvent.Delta -> print(event.data.text)
            is SendTutorMessageEvent.Notice -> println("\n(${event.data.message})")
        }
    }
}

Ruby

history = [{role: "user", content: "你好"}, {role: "assistant", content: "你好!你想练习什么?"}]
client.send_tutor_message(message: "我想点菜", history: history, source_lang: "en", target_lang: "zh") do |event|
  case event
  in Lingara::SendTutorMessageEventDelta => delta then print delta.data.text
  in Lingara::SendTutorMessageEventNotice => notice then warn notice.data.message
  else nil
  end
end
puts

PHP

use Lingara\Model\TutorTurnRequest;
use Lingara\Stream\SendTutorMessageEvent;

$turn = new TutorTurnRequest(['message' => '荔枝多少钱?', 'source_lang' => 'en', 'target_lang' => 'zh', 'level' => 2]);
foreach ($client->sendTutorMessage($turn) as $event) {
    if ($event instanceof SendTutorMessageEvent\Delta) {
        echo $event->data->getText();
    } elseif ($event instanceof SendTutorMessageEvent\Notice) {
        echo "\n(", $event->data->getMessage(), ')';
    }
}
echo "\n";

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

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

event: delta
data: {"text":"两斤荔枝,"}

event: delta
data: {"text":"一共三十块。"}

event: done
data: {}

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