Bot Talk API
Bot Talk API on REST API suhtlemiseks ühe konkreetse chatbotiga teie enda rakendusest - olgu selleks kohandatud rakendused, sisekasutuse tööriistad või teie enda loodud automatiseerimised. Te loote API võtme roboti vahekaardil API, seejärel kutsute välja vestluse lõpp-punkti, kasutades võtit Bearer-tokenina, et saada roboti vastuseid kas üksiku vastusena või voogesitatuna üle SSE.
Alustamine
- Valige oma chatbot ja liikuge roboti lehe ülaosas asuvale vahekaardile API (Select Bot > API (Vali robot > API)).
- Klõpsake nupul Create API Key (Loo API võti).
Nupu kõrval olev loendur näitab, mitu võtit on aktiivsed ("1 of 5 API keys active"). Link View API Documentation (Vaata API dokumentatsiooni) avab käesoleva juhendi ja Quick Start (Kiiralustus) curl-koodilõik annab teile kohe käivitamiseks valmis näite.
- Dialoogiaknas Create API Key (Loo API võti) andke võtmele nimi, soovi korral määrake lubatud IP-aadresside loend (IP whitelist) ja päringulimiit (rate limit), valige selle õigused ning seejärel klõpsake Create (Loo).
- Kopeerige täielik võti õnnestumise dialoogiaknast. Lihtteksti kuvatakse ainult üks kord.
Võti näeb välja selline: ck_abcdefghijklmnopqrstuvwxyz012345. Iga võti kuulub sellele ühele robotile, seega suhtleb iga selle võtmega tehtud päring just selle robotiga - robot tuvastatakse võtme järgi ja see ei ilmu kunagi URL-i.
Baas-URL
https://api.chatlab.com/aichat
Kõik selles artiklis toodud lõpp-punktid on suhtelised selle baas-URL-i suhtes.
Võtme õigused
Iga võti kannab ühte või mõlemat järgmistest õigustest, mis määratakse lülititega dialoogiaknas Create API Key:
- Chat (send messages and receive responses) (Vestlus (sõnumite saatmine ja vastuste saamine)) - lubab lõpp-punktid
/v1/chatja/v1/chat/stream. - Conversation history (list and read past conversations) (Vestluste ajalugu (varasemate vestluste loetlemine ja lugemine)) - lubab
/v1/conversationslõpp-punktid.
Vahekaart API kuvab iga võtme antud õigusi märgistena Chat ja Conversations.
Autentimine
Saatke võti igal päringul päises Authorization:
Authorization: Bearer ck_abcdefghijklmnopqrstuvwxyz012345
Päringud ilma päiseta Authorization: Bearer ... tagastavad vastuse 401 missing_api_key. Tundmatud võtmed tagastavad vastuse 401 invalid_api_key; tühistatud võtmed tagastavad vastuse 401 revoked_api_key. Viis vigast katset ühe minuti jooksul samalt IP-aadressilt toovad kaasa 60-minutilise blokeeringu.
Piirangud
- Maksimaalselt 5 aktiivset Bot Talk võtit ühe roboti kohta
- Maksimaalselt 60 päringut minutis ühe võtme kohta (token bucket, maht 60, sujuv täitmine kiirusega 1 token sekundis). Loomisel madalamaks konfigureeritav - määrake madalam
rateLimitPerMinutening ülempiir langeb ja täitmiskiirus kohandub vastavalt sellele. - Sõnumi maksimaalne pikkus 4000 tähemärki
- Samaaegsete SSE-voogude arv võtme kohta sõltub teie konto piirangutest
Lõpp-punktid
POST /v1/chat
Saatke robotile sõnum ja saage täielik vastus ühesainsas JSON-vastuses.
Päringu keha
{
"message": "Hi, can you help me track my order?",
"conversationId": "550e8400-e29b-41d4-a716-446655440000",
"metadata": {"userEmail": "alice@example.com"}
}
message- kohustuslik string, maksimaalselt 4000 tähemärki.conversationId- valikuline UUID. Uue vestluse puhul jätke vahele; olemasolevale lisamiseks kasutage uuesti väärtust, mille server varem tagastas.metadata- valikuline objekt:{source, userName, userEmail, userPhone}.userEmailkasutatakse ka sisemise kliendi-ID tuletamiseks.
Vastuse keha (200)
{
"message": {"role": "assistant", "content": "Sure, what's your order number?"},
"conversationId": "550e8400-e29b-41d4-a716-446655440000",
"model": "gpt-4o-mini",
"usage": {"creditsUsed": 2},
"actions": []
}
message.roleon alati"assistant";message.contenton täielik vastus.modelon mudeli ID, millel robot selle väljakutse ajal töötas.usage.creditsUsedarvestab kasutaja sõnumit + roboti vastust (tavaliselt 2), millele lisandub üks lisakrediit iga käivitatud tööriistakutse kohta.actionsloetleb selle vestluskorra jooksul käivitatud tööriistad. Praegu väljastatakse ainultfunction_callkirjeid (väljadegatype,name,status: "completed").
POST /v1/chat/stream
Lõpp-punkti /v1/chat voogesitusvariant. Tagastab päise Content-Type: text/event-stream koos Server-Sent Events sündmustega.
Päringu keha
Sama struktuur nagu päringul POST /v1/chat. Lippu stream päringu kehas ei nõuta - selle teekonna kasutamine käivitabki SSE.
Vastuse keha (SSE sündmused)
message.delta- sisufragment{ "content": "..." }. Neid voogesitatakse mitu tükki vastavalt tokenite saabumisele.action- tööriista käivitamine{ "type", "name", "status": "executing" }. Väljastatakse siis, kui robot käivitab funktsioonikutse.message.done- lõppsündmus koos väljadegaconversationId,model,usageja (kui neid on) lõpetatud nimekirjagaactions.error- saadetakse genereerimise ebaõnnestumisel; voog katkeb pärast seda.
Pikkade genereerimiste ajal saadetakse iga 15 sekundi järel ühendust elus hoidvaid SSE-kommentaare (:keepalive). Serveripoolsed ajalõpud: esimese tokeni puhul 30 sekundit, voo kohta kokku 120 sekundit.
Curl-näide
curl -N -X POST https://api.chatlab.com/aichat/v1/chat/stream \
-H "Authorization: Bearer ck_..." \
-H "Content-Type: application/json" \
-d '{"message":"hello"}'
GET /v1/conversations
Loetleb teie võtmega seotud roboti vestlused kõigist allikatest (vidin, WhatsApp, API jne).
Päringuparameetrid
limit- 1-100, vaikeväärtus 20. Väljaspool vahemikku olevad väärtused piiratakse vahemiku otstesse.cursor- läbipaistmatu väärtus, mis tagastati eelmise lehe väljalnextCursor. Esimese lehe puhul jätke vahele.
Vastuse keha (200)
{
"data": [
{
"conversationId": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2026-05-10T14:11:02Z",
"lastMessageAt": "2026-05-10T14:12:34Z",
"messageCount": 6,
"lastMessagePreview": "Thanks for the help."
}
],
"hasMore": false,
"nextCursor": null
}
lastMessagePreviewkärbitakse 100 tähemärgini koos järelliitega....nextCursoron viimasel lehelnull; järgmise lehe toomiseks edastage see parameetrinacursor.
GET /v1/conversations/{conversation_id}
Täielik vestluse ajalugu.
Vastuse keha (200)
{
"conversationId": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2026-05-10T14:11:02Z",
"lastMessageAt": "2026-05-10T14:12:34Z",
"messageCount": 6,
"messages": [
{"role": "user", "content": "Hi", "createdAt": "2026-05-10T14:11:02Z"},
{"role": "assistant", "content": "Hello! How can I help?", "createdAt": "2026-05-10T14:11:03Z"}
]
}
Tagastatakse ainult rollid user ja assistant; sisemised system ja tööriistasõnumid filtreeritakse välja. Tagastab vastuse 404 not_found_error, kui vestlus ei kuulu teie võtmega seotud robotile.
Roboti konfiguratsiooni vaatamiseks kasutage Management API lõpp-punkti GET /v1/management/bots/{bot_id} koos Management-võtmega.
Päringulimiidi päised
Päringulimiidi kontrolli faasini jõudnud vastused (st autentimine ja lubatud IP-de kontroll on edukalt läbitud) sisaldavad järgmisi päiseid:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 57
X-RateLimit-Reset: 1715430000
X-RateLimit-Limit- sellele väljakutsele tegelikult rakendatud võtmepõhine ülempiir (vaikimisi 60 või teie konfigureeritudrateLimitPerMinute, kui see on madalam).X-RateLimit-Remaining- vahetult pärast seda väljakutset salves allesjäänud tokenid.X-RateLimit-Reset- Unixi ajatempli sekundid, millal järgmine token kättesaadavaks muutub (mitte kogu salve täielik lähtestamine; salve täidetakse pidevalt). Kui salv on täis, on see praegune aeg.
Vastuste 429 rate_limit_exceeded puhul määratakse ka päis Retry-After, mis väljendab täissekundi täpsusega aega, kuni vabaneb vähemalt üks token.
Autentimiseelsed vead (401 missing_api_key, 401 invalid_api_key, 403 ip_blocked) ja 403 ip_not_whitelisted ei kanna X-RateLimit-* päiseid - limiidipiirajat kontrollitakse alles pärast autentimise ja IP-kontrollide õnnestumist.
Vigade vorming
Kõik vead kasutavad ühtset struktuuri:
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 12 seconds.",
"param": null
}
}
Levinumad HTTP-koodid:
400 invalid_request_error- vigane sisend (koodid:invalid_parameter,unsupported_media_type)401 authentication_error- puuduv võti (missing_api_key), tundmatu võti (invalid_api_key) või tühistatud võti (revoked_api_key)402 quota_exceeded_error- sõnumikrediidid on otsas403 permission_error- IP on blokeeritud (ip_blocked), IP ei ole võtme lubatud loendis (ip_not_whitelisted) või võtme tüüp ei luba seda lõpp-punkti (key_type_not_allowed,insufficient_permissions)404 not_found_error- vestlus ei kuulu sellele robotile405 invalid_request_error(method_not_allowed) - vale HTTP-meetod URL-il429 rate_limit_error- liiga palju päringuid (rate_limit_exceeded) või liiga palju samaaegseid voogusid (concurrent_streams_exceeded)500 api_error- sisemine viga
Seotud teemad
Konto tasemel toimingute (robotite loomine, robotite uuendamine, kasutusstatistika toomine) kohta vaadake teemat Management API.