POST/v1/chat
Assistendi vastuse voogedastus (SSE)
chat
Kui koormusjaoturi taga on mitu API eksemplari (aadress api.<domain>, 1.62.0), elavad vastus ja selle sündmuste puhver selle eksemplari mälus, mis vastuse koostab. Voo jätkamine päisega Last-Event-ID töötab ainult selles eksemplaris.
Korduspäring sama request_id ja vestlusega, mis jõuab pärast vastuse valmimist teise eksemplari, saab salvestatud vastuse (token ja done, sündmused nummerdatud alates 1-st) ilma küsimust uuesti esitamata. Korduspäring, mis jõuab teise eksemplari ajal, kui vastust alles koostatakse, peatab selle koostamise ja koostab vastuse uuesti; ka sel juhul teist küsimust ei looda. Voo jätkamiseks ilma uue koostamiseta hoidke ühendust sama eksemplariga või korrake päringut pärast sündmust done.
Autentimine
Saatke API-võti päises Authorization: Authorization: Bearer <võti>.
Päiseparameetrid
X-View-AsstringAinult rolliga
adminAPI-võtmetele. Teeb päringu andmeprofiili<profile>[:viewer|verifier|editor]nimel, näiteksemployee:viewer. Paigaldusvõti seda päist kasutada ei saa (403).
Küpsiseparameetrid
kb_view_asstringSeansi režiimi „View as“ küpsis.
POST /auth/view-asmäärab selle jaDELETE /auth/view-askustutab selle.
Päringu keha
application/json
items ≥ 1
collectionstringVaikimisi: "default"
tagsarray of string | nullexportstring | nullcard_idsarray of string | nullitems ≤ 50
streambooleanVaikimisi: false
conversation_idstring | nulllength ≤ 64
originstring | nulltoolsboolean | nullbypass_cachebooleanVastust ei võeta vastuste vahemälust (vahemälust võetud vastuse all olev nupp „Get a fresh answer“, värske vastus). Värske vastus asendab vahemälu kirje.
Vaikimisi: false
languagestring | nullVastuse keel: ISO 639-1 kood (
de,en,ru, …), et vastata selles keeles. Väärtusegaautovõi ilma väljata tuvastatakse keel küsimuse järgi. Liides edastab teises keeles soovituse keele selgesõnaliselt (Starter.language).scopeChatScope | nullKüsimuse piiritlus: mitu kogu, allikas, sildid ja periood. Piiritluse kogud asendavad välja
collection. Allikas kitsendab vastuse oma koguga (ja oma kaartidega). Sildid lisatakse väljaletags. Periood piirab finantsvastused selle perioodiga. Valida saab ainult seda, mida kasutaja näeb (kogud:collections.no_access/collections.not_found; allikas:sources.not_found). Väljagaconversation_idsalvestatakse piiritlus vestlusesse. Ilma väljata kehtib vestluse piiritlus;nullvõi tühi piiritlus tühjendab selle.request_idstringKüsimuse idempotentsusvõti. Saatke sama võti ühe küsimuse voo igas korduskatses (korduskatse pärast ühenduse katkemist; siin ei jätka
Last-Event-IDvoogu ja see ainult logitakse). Korduskatse juba salvestatud vastuse võtmega ei loo teist küsimust: salvestatud tulemus saadetakse uuesti ühe sündmusenadone(ja tekstigatoken), isegi kui küsimuste või krediidi limiit on ammendatud. Kui eelmist vastust katkenud ühendusega kliendile alles koostatakse, see koostamine peatub ja vastus koostatakse uuesti.length ≤ 64
version_ofinteger (int64)Loob selle küsimuse voorust vestluses uue versiooni (
question_idvestluse ajaloost): muudetud küsimus (uus tekst väljasmessages), uuesti koostatud vastus (sama tekst, tavaliselt koosbypass_cache) või sama küsimus teise väärtusegaquality(näiteksprecisepärast vastust režiimisfast). Eelmine küsimuse ja vastuse paar säilib. Sellele järgnevad voorud jäävad selle harusse ja on vestluse ajaloost peidetud, kuni uus versioon on valitud (FeedItem.versions,POST /v1/conversations/{conv_id}/versions). Vastuse jaoks kasutatav ajalugu on valitud haru kuni selle voorini. Versiooniqualityei muuda vestluse seadeid. Nõuab väljaconversation_id; teise vestluse küsimus tagastab vastuse404 questions.not_found.qualitystringTulemuse aluseks oleva otsingu kiiruse ja täpsuse tasakaal:
faston kiirem,precisetäpsem. Vaikimisi:precise.Lubatud väärtused:
fastprecise
Vastused
200Kui `stream=true`: `text/event-stream`. Iga sündmus koosneb ridadest `id: <number>` (sündmuse järjekorranumber voos, alates 1-st) ja `data: <JSON>`, millele järgneb tühi rida. Välju `event:` ja `retry:` ei kasutata; sündmuse tüüp on väljal `type` (`ChatEvent`).
Kui stream=true: text/event-stream. Iga sündmus koosneb ridadest id: <number> (sündmuse järjekorranumber voos, alates 1-st) ja data: <JSON>, millele järgneb tühi rida. Välju event: ja retry: ei kasutata; sündmuse tüüp on väljal type (ChatEvent).
Küsimusele, millel on request_id, vastatakse ühendusest sõltumatult. Ühenduse katkemine vastust ei peata: see lõpetatakse ja salvestatakse vestlusesse (kuni 10 minuti jooksul). Sama päringu kordamine (sama request_id ja vestlus) liitub pooleli oleva vastusega ning päisega Last-Event-ID saab see sellele numbrile järgnevad sündmused, nii et voog jätkub samade sündmusenumbritega. Kui voog ei saa sellelt numbrilt jätkuda, saab korduspäring voo algusest: esimese sündmuse number ei ole siis suurem kui Last-Event-ID ja klient alustab vastust otsast peale. Kui vastus on juba valmis ja selle sündmuste puhver on vabastatud (3 minuti pärast), saadetakse salvestatud tulemus uuesti (token ja done, nummerdatud alates 1-st) ilma küsimust uuesti esitamata; muidu koostatakse vastus uuesti. Sellise vastuse peatamiseks kutsuge POST /v1/chat/cancel. Ilma väljata request_id tühistab kliendi ühenduse katkemine vastuse.
Pärast esimest sündmust, kuni vastus on pooleli, saadab server iga 15 sekundi järel kommentaari : ping; jätke see vahele. Sündmuste järjekord: sündmused stage (edenemine), meta, sources, data, seejärel vastuse tekst sündmustes token, seejärel done. Enne vastuse teksti võivad sources ja data korduda ning ilmuda võivad sündmused tool; tekst võib saabuda ühe sündmusena token või osadena. Vahemälust tulev vastus: meta (koos väljaga cached), sources, data, token, done. Viga pärast voo algust saabub sündmusena error ja voog suletakse ilma sündmuseta done; voo HTTP-olek on alati 200. Pärast sündmust done võib saabuda sündmus followups soovitatud järgmiste küsimustega. Eirake sündmusetüüpe, mida te ei töötle.
Kui stream=false: application/json kehaga AnswerResponse (lisaks conversation_id).
Vastuse päised
RateLimit-PolicyKehtivad piirangud IETF-i mustandi
draft-ietf-httpapi-ratelimit-headersvormingus: komadega eraldatud elemendid"<name>";q=<quota>;w=<window in seconds>.keyon API-võtme päringusagedus (kvoot on tipuvaru, ajaaken on aeg selle täielikuks taastumiseks; seansi puhul on seeuser, ilma autentimisandmetetaip);minute,dayjamonthon organisatsiooni kvoodid kalendriminutile, -päevale ja -kuule UTC järgi.RateLimitIga päises
RateLimit-Policyoleva piirangu jääk:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitPäises
RateLimit-Policyoleva rangeima kirje limiit (selle, millel on kõige vähem päringuid järel).X-RateLimit-RemainingRangeima piirangu järgi järelejäänud päringud.
X-RateLimit-ResetSekundid rangeima piirangu lähtestumiseni.
text/event-stream
application/json
answerstringkohustuslikquestion_idintegerkohustuslikquerystringcollectionstringkohustuslikprovenancearray of NumberProvenanceemptystringLubatud väärtused:
no_hitsrestrictedguardrailno_data_for_periodbasisAnswerBasisverificationAnswerVerificationalt_periodsarray of AnswerAltPerioditems ≤ 6
drilldownarray of AnswerDrilldownitems ≤ 20
restrictedRestrictedInfoguardrailGuardrailVerdictverified_onlybooleancachedbooleancache_hitAnswerCacheHitout_of_scopeAnswerOutOfScopeattachmentsarray of Attachmentexport_errorstringtoolsstring | nullMiks selle vastuse jaoks tööriistu kasutati:
request(selgesõnaliselt taotletud);compare,compute,action(küsimuse põhjal);needs_calc(vaja on arvutust tabelite põhjal);summary(kogu või dokumentide ülevaade);mcp(organisatsioon on ühendanud välised MCP-serverid).Lubatud väärtused:
requestcomparecomputeactionneeds_calcsummarymcpnulltool_callsarray of ToolCallInfocalculationsarray of Calculationpending_actionsarray of PendingActionconversation_idstringAinult toimingul
POST /v1/chatkoos vestlusega.answer_idstringVastuse objekti ID.
400Päring on vigane: parameetri väärtus või objekti olek ei võimalda toimingut (`detail` on teade).
Vastuse päised
RateLimit-PolicyKehtivad piirangud IETF-i mustandi
draft-ietf-httpapi-ratelimit-headersvormingus: komadega eraldatud elemendid"<name>";q=<quota>;w=<window in seconds>.keyon API-võtme päringusagedus (kvoot on tipuvaru, ajaaken on aeg selle täielikuks taastumiseks; seansi puhul on seeuser, ilma autentimisandmetetaip);minute,dayjamonthon organisatsiooni kvoodid kalendriminutile, -päevale ja -kuule UTC järgi.RateLimitIga päises
RateLimit-Policyoleva piirangu jääk:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitPäises
RateLimit-Policyoleva rangeima kirje limiit (selle, millel on kõige vähem päringuid järel).X-RateLimit-RemainingRangeima piirangu järgi järelejäänud päringud.
X-RateLimit-ResetSekundid rangeima piirangu lähtestumiseni.
application/json
401Autentimisandmeid ei saadetud (ei seansiküpsist ega API-võtit) või võtit ei leitud.
Vastuse päised
RateLimit-PolicyKehtivad piirangud IETF-i mustandi
draft-ietf-httpapi-ratelimit-headersvormingus: komadega eraldatud elemendid"<name>";q=<quota>;w=<window in seconds>.keyon API-võtme päringusagedus (kvoot on tipuvaru, ajaaken on aeg selle täielikuks taastumiseks; seansi puhul on seeuser, ilma autentimisandmetetaip);minute,dayjamonthon organisatsiooni kvoodid kalendriminutile, -päevale ja -kuule UTC järgi.RateLimitIga päises
RateLimit-Policyoleva piirangu jääk:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitPäises
RateLimit-Policyoleva rangeima kirje limiit (selle, millel on kõige vähem päringuid järel).X-RateLimit-RemainingRangeima piirangu järgi järelejäänud päringud.
X-RateLimit-ResetSekundid rangeima piirangu lähtestumiseni.
application/json
403Toiming ei ole lubatud: rollist ei piisa, puudub juurdepääs kogule või kaardile, päring töötab režiimis „View as“ või organisatsioon on peatatud või kustutatud (`detail` on objekt väärtusega `code: org_suspended | org_deleted`).
Vastuse päised
RateLimit-PolicyKehtivad piirangud IETF-i mustandi
draft-ietf-httpapi-ratelimit-headersvormingus: komadega eraldatud elemendid"<name>";q=<quota>;w=<window in seconds>.keyon API-võtme päringusagedus (kvoot on tipuvaru, ajaaken on aeg selle täielikuks taastumiseks; seansi puhul on seeuser, ilma autentimisandmetetaip);minute,dayjamonthon organisatsiooni kvoodid kalendriminutile, -päevale ja -kuule UTC järgi.RateLimitIga päises
RateLimit-Policyoleva piirangu jääk:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitPäises
RateLimit-Policyoleva rangeima kirje limiit (selle, millel on kõige vähem päringuid järel).X-RateLimit-RemainingRangeima piirangu järgi järelejäänud päringud.
X-RateLimit-ResetSekundid rangeima piirangu lähtestumiseni.
application/json
404Objekti ei ole olemas või see ei ole teile kättesaadav. API ei kinnita piiratud juurdepääsuga objekti olemasolu.
Vastuse päised
RateLimit-PolicyKehtivad piirangud IETF-i mustandi
draft-ietf-httpapi-ratelimit-headersvormingus: komadega eraldatud elemendid"<name>";q=<quota>;w=<window in seconds>.keyon API-võtme päringusagedus (kvoot on tipuvaru, ajaaken on aeg selle täielikuks taastumiseks; seansi puhul on seeuser, ilma autentimisandmetetaip);minute,dayjamonthon organisatsiooni kvoodid kalendriminutile, -päevale ja -kuule UTC järgi.RateLimitIga päises
RateLimit-Policyoleva piirangu jääk:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitPäises
RateLimit-Policyoleva rangeima kirje limiit (selle, millel on kõige vähem päringuid järel).X-RateLimit-RemainingRangeima piirangu järgi järelejäänud päringud.
X-RateLimit-ResetSekundid rangeima piirangu lähtestumiseni.
application/json
422Valideerimisviga: keha või parameetrid ei vasta skeemile (`detail` on valideerimisvigade loend) või parameetri väärtus on lubatud vahemikust väljas (`detail` on teade).
Vastuse päised
RateLimit-PolicyKehtivad piirangud IETF-i mustandi
draft-ietf-httpapi-ratelimit-headersvormingus: komadega eraldatud elemendid"<name>";q=<quota>;w=<window in seconds>.keyon API-võtme päringusagedus (kvoot on tipuvaru, ajaaken on aeg selle täielikuks taastumiseks; seansi puhul on seeuser, ilma autentimisandmetetaip);minute,dayjamonthon organisatsiooni kvoodid kalendriminutile, -päevale ja -kuule UTC järgi.RateLimitIga päises
RateLimit-Policyoleva piirangu jääk:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitPäises
RateLimit-Policyoleva rangeima kirje limiit (selle, millel on kõige vähem päringuid järel).X-RateLimit-RemainingRangeima piirangu järgi järelejäänud päringud.
X-RateLimit-ResetSekundid rangeima piirangu lähtestumiseni.
application/json
429Liiga palju päringuid (`api.rate_limited`), organisatsiooni minuti-, päeva- või kuukvoot on ära kasutatud (`api.quota_exceeded`; `error.details` sisaldab välju `quota`, `limit` ja `reset_at`), organisatsiooni limiit on täis või vastuseteenus on hõivatud (`answers.engine_busy`). Oodake päises `Retry-After` antud aeg.
Vastuse päised
Retry-AfterSekundite arv, mida oodata enne päringu kordamist.
RateLimit-PolicyKehtivad piirangud IETF-i mustandi
draft-ietf-httpapi-ratelimit-headersvormingus: komadega eraldatud elemendid"<name>";q=<quota>;w=<window in seconds>.keyon API-võtme päringusagedus (kvoot on tipuvaru, ajaaken on aeg selle täielikuks taastumiseks; seansi puhul on seeuser, ilma autentimisandmetetaip);minute,dayjamonthon organisatsiooni kvoodid kalendriminutile, -päevale ja -kuule UTC järgi.RateLimitIga päises
RateLimit-Policyoleva piirangu jääk:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitPäises
RateLimit-Policyoleva rangeima kirje limiit (selle, millel on kõige vähem päringuid järel).X-RateLimit-RemainingRangeima piirangu järgi järelejäänud päringud.
X-RateLimit-ResetSekundid rangeima piirangu lähtestumiseni.
application/json
Veakoodid
Koodid, mida see lõpp-punkt võib lisaks iga päringu üldistele koodidele tagastada väljal error.code.
- 400answers.empty_question
- 409answers.external_ai_disabled
- 400answers.last_message_not_user
- 404answers.no_collections
- 422answers.scope_invalid
- 401auth.not_authenticated
- 403auth.system_scope
- 403collections.no_access
- 404collections.not_found
- 404conversations.not_found
- 422conversations.title_empty
- 429limits.concurrent_answers
- 429limits.questions
- 403org.deleted
- 403org.suspended
- 404sources.not_found
- 403view_as.read_only
Turvalised korduskatsed
Saatke iga POST- ja PATCH-päringuga päis Idempotency-Key (näiteks UUID). Sama võtmega korduskatse 24 tunni jooksul tagastab salvestatud vastuse ega käivita päringut uuesti.
Sageduspiirangud
Vastustes on päised RateLimit ja RateLimit-Policy ning varasemad X-RateLimit-Limit, X-RateLimit-Remaining ja X-RateLimit-Reset. Vastuses 429 on päis Retry-After sekundites: oodake ja proovige uuesti.