Söhbət tamamlamaları
POST /v1/chat/completions hər şeyi edən tək endpoint-dir: tək-növbəli suallar, çox-növbəli söhbətlər, alət çağırışı və şəkil girişi, bloklayıcı və ya axın formasında.
Sorğu
POST https://api.artfical.com/v1/chat/completions
Authorization: Bearer tai-sk-...
Content-Type: application/json
| Sahə | Tip | Tələb olunur | Təsvir |
|---|---|---|---|
| model | string | Bəli | Modellər səhifəsində sadalanan model ID-lərindən biri, məs. "tai-4.1". Tanınmayan dəyər hər hansı generasiya başlamazdan əvvəl 400 ilə rədd edilir. |
| messages | array | Bəli | İndiyə qədərki söhbət, ən köhnədən başlayaraq. Hər girişin forması üçün aşağıdakı Mesajlar bölməsinə baxın. |
| stream | boolean | Xeyr | Defolt olaraq false. true olduqda, cavab tək bir JSON gövdəsi əvəzinə server-sent-events axını olur; bax Axın. |
| tools | array | Xeyr | Modelin çağırmağı seçə biləcəyi OpenAI formatlı funksiya alət tərifləri. Bax Alət çağırışı. |
| temperature, top_p, presence_penalty, frequency_penalty, seed, stop | müxtəlif | Xeyr | Nümunələmə tənzimləmələri, olduğu kimi ötürülür. Qəbul edilən diapazonlar üçün Nümunələmə parametrləri səhifəsinə baxın. |
Mesajlar
messages-dəki hər giriş bir role və bir content-ə malikdir. Dörd rol tanınır:
| Rol | Məna |
|---|---|
| system | Söhbət üçün fon təlimatları. Birdən çox system mesajı varsa, onlar sıra ilə birləşdirilir. system mesajı heç vaxt tAI-nin öz əsas kimliyini və davranış qaydalarını ləğv etmir; söhbətin kontekstinə əlavə olunur, tAI-nin əsasən nə olduğuna deyil. |
| user | Şəxsin (və ya onun adından tətbiqinizin) dediyi bir şey. |
| assistant | Əvvəlki model cavabı. Söhbət tarixçəsini göndərərkən əvvəlki assistant mesajlarını daxil edin ki, model yalnız son user mesajını deyil, tam qarşılıqlı mübadiləni görsün. assistant mesajı həmçinin tool_calls daşıya bilər; bax Alət çağırışı. |
| tool | Öz kodunuzun icra etdiyi bir alət çağırışının nəticəsi, tool_call_id vasitəsilə çağırışa bağlanır. Bax Alət çağırışı. |
Sadə mətn növbəsi üçün content sadəcə bir string-dir:
{"role": "user", "content": "İstanbul'da bugün hava nasıl olur sence?"}
Mətnlə yanaşı bir şəkil daxil etmək üçün content sadə bir string əvəzinə tipləşdirilmiş hissələrdən ibarət array olur; dəqiq forma və hansı modellərin bunu qəbul etdiyi üçün Şəkillər səhifəsinə baxın.
Cavab (axın olmadan)
"stream": false ilə (defolt), cavab generasiya tamamlandıqdan sonra bir dəfə qaytarılan tək bir JSON obyektidir:
{
"id": "chatcmpl-817c002145ac47feb83a0006c58ff43b",
"object": "chat.completion",
"created": 1788961617,
"model": "tai-4.1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Merhaba! Ben tAI, size nasıl yardımcı olabilirim?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1303,
"completion_tokens": 232,
"total_tokens": 1535
}
}
| Sahə | Təsvir |
|---|---|
| id | Bu tamamlama üçün unikal identifikator, chatcmpl- prefiksi ilə. |
| choices | Həmişə tam olaraq bir giriş (index 0). tAI tək bir sorğudan bir neçə namizəd tamamlama tələb etməyi dəstəkləmir. |
| choices[].finish_reason | Normal tamamlanmış cavab üçün "stop", model birbaşa cavab verməkdənsə bir və ya bir neçə alət çağırmaq istədikdə isə "tool_calls". Bax Alət çağırışı. |
| usage | Bu sorğu üçün token sayları. completion_tokens hər hansı max_tokens tipli tavandan asılı olmayaraq modelin faktiki generasiya etdiyini əks etdirir. |
Tam bir söhbət
Hər sorğuda tam tarixçəni daxil edin; API stateless-dir və özbaşına əvvəlki çağırışların yaddaşını saxlamır. Hər sorğu, yalnız göndərdiyiniz kontekstlə tək başına dayanır.
{
"model": "tai-4.1",
"messages": [
{"role": "system", "content": "Kısa ve net cevaplar ver."},
{"role": "user", "content": "3 çarpı 4 kaç eder?"},
{"role": "assistant", "content": "12."},
{"role": "user", "content": "Peki onu 2'ye böl."}
]
}
Cavabın uzunluğu
Hazırda cavabın neçə token ehtiva edə biləcəyi üçün klient tərəfindən təyin edilə bilən bir tavan yoxdur; hər modelin həmin model üçün tənzimlənmiş öz daxili tavanı var. Sorğunun uzun sürmək əvəzinə tez uğursuz olmasına ehtiyacınız varsa, ən etibarlı vasitə stop ardıcıllıqlarıdır (bax Nümunələmə parametrləri) və ya sadəcə promptun özündə qısalıq tələb etməkdir.