Reference

Changelog

Významné změny AYETO API.

Zobrazit jako Markdown

Zde jsou uvedeny změny, které se dotýkají klientů API, od nejnovějších. Uvádějí se i přírůstky, které nemění stávající chování (nové volitelné pole, nový endpoint), abyste viděli, co je nově k dispozici.

2026-10-06

  • Katalog modelů (/ai_model/get_all) vrací jen modely, které můžete použít: vypnuté (is_enabled false) ani vyřazené (is_deprecated true) modely už v něm nejsou.
  • Katalog modelů (/ai_model/get_all) má nové pole is_recommended: modely, které doporučují administrátoři.
  • Stream chatu s runner_version "2" má novou fázi stavu conversation_named (data.name): nová konverzace dostane název podle první zprávy už během generování první odpovědi, ne až po ní. Když událost dorazí, název je uložený.
  • find a count odmítají filters a sort_key podle interních polí uložených se záznamem (například tajností) s 422; dřív se takové podmínky přijaly.

2026-10-05

  • Konverzace mají dvě nová pole, booster_panel_id a panel_user_id: konverzace přihlášených uživatelů vašich booster panelů s vašimi asistenty. /conversation/find je vrací s ostatními vašimi konverzacemi (vynechá je filtr ["panel_user_id", "==", null]); /chat u nich odpoví 403, pokračuje v nich jen uživatel panelu.
  • Záznamy booster databáze mají nové pole owner (UUID nebo null): uživatel panelu, který záznam vytvořil, u panelů s uživatelskými účty. find a count přijímají owner ve filtrech i jako sort_key. Záznamy vytvořené přes API mají owner: null. Když se uživatelský účet panelu natrvalo smaže, smažou se i záznamy, které vytvořil.
  • Pravidla kolekcí mají dvě nové úrovně, user a owner. Stejně jako ostatní úrovně kromě none povolují požadavky přes API, a to nad všemi záznamy.
  • POST /ai_model/get_all může vracet modely nového typu google_video_gen (generování videa). Videa vygenerovaná v chatu jsou uvedena v attachments odpovědi, stejně jako vygenerované obrázky.
  • V chatu přes API se odmítají akce nástrojů, které aplikace AYETO nechává uživatele potvrdit v chatu (například založení booster panelu nebo workflow z chatu): volání nástroje skončí chybou a model pokračuje v odpovědi.
  • POST /ai_tool/get_all vrací dva další nástroje, BoosterStudioStartFunctionTool (založí booster panel ze šablony) a WorkflowStudioStartFunctionTool (založí workflow). Můžete je přidat svým asistentům; potřebují potvrzení uživatele v chatu aplikace AYETO, takže v chatu přes API se odmítnou, jak je popsáno výše.
  • Nově zdokumentováno: POST /booster/panel/info, který vrací název panelu, jeho organizaci a uživatele klíče a ověří přístup k panelu. Samotný endpoint se nemění.

2026-10-04

  • Nástroje vracené POST /ai_tool/get_all mají nové pole companion_of_groups (pole názvů skupin): jako companion_of_group, pro pomocný nástroj, který doprovází více skupin.

2026-10-03

  • Nástroje z POST /ai_tool/get_all mají dvě nová pole: vision (nástroj ukazuje modelu obrázky a nabízí se jen s modely, které obrázky vidí) a outbound (nástroj umí poslat data mimo AYETO, například webové požadavky nebo e-mail).
  • Chybně utvořené dotazy na seznamy se odmítají s 422 a srozumitelným detail místo 500: podmínka, která nemá 3 ani 4 prvky, prvek filters, který není pole ani objekt, objekt skupiny bez klíče nebo s několika klíči, skupina AND / OR, jejíž hodnota není neprázdné pole, skupiny vnořené hlouběji než do 32 úrovní, záporné limit_from a limit_to nižší než limit_from.
  • Odpovědi 429 omezovače požadavků mají tělo {"detail": "Too many requests"} jako všechny ostatní chyby (klíč reason zmizel); Retry-After se nemění.
  • Na chybějící rozsah API klíče se všude odpovídá 401 API key is invalid.
  • Endpointy .../get a .../delete přijímají id i v těle JSON {"id": "<uuid>"}; parametr dotazu entity_id dál funguje. Když chybí obojí, nebo jde o dvě různá id, vrací se 422. Tělo, které jim posíláte, musí být JSON.
  • Nové POST /user_credit/get_self a POST /version (GET dál funguje a sdílí limit požadavků); /version má limit požadavků úrovně static (1 200 požadavků za minutu).
  • POST /ai_tool/get_all už nevrací skryté ani zastaralé nástroje.
  • Nový POST /conversation/count (rozsah ayeto.conversation, stejné tělo jako /conversation/find).
  • Náklady konverzace (POST /usage/cost/conversation) jsou součtem skutečně účtovaných kreditů, ne přepočtem podle aktuálních cen; zahrnují textové tokeny obrázkových modelů a už neselhávají s 404 u modelů, které byly mezitím odebrány.
  • Chat s modelem, který neumí streamovat, odpověď uloží a vrátí (dříve se odpověď modelu ztratila a požadavek vracel zprávu uživatele).
  • Přílohy chatu se kontrolují a ukládají ještě před vším ostatním: příloha odmítnutá s 422 (file is too large, kvóta úložiště, neplatná data) už po sobě nenechává zprávu uživatele. Chybně utvořený base64 vrací 422 invalid base64 data in attachment '<filename>' (nebo invalid data URI in attachment '<filename>') místo 500. Pole size u příloh už není povinné a ignoruje se.
  • Navazující zpráva chatu ke konverzaci vytvořené v organizaci běží v této organizaci, když požadavek žádnou organizaci neuvádí (účtuje se tam, vyžaduje se členství); uvedení jiné organizace vrací 422 the conversation belongs to another organization. Konverzace jiného uživatele se odmítne s 403 dřív, než se uloží jakákoli příloha.
  • Strukturovaný stream chatu (runner_version "2") už neposílá nepoužívané pole iteration.
  • Booster databáze: vytvoření záznamu s klíčem, který už existuje, vrací 422 a record with key '<key>' already exists místo 500; limit_from bez limit_to vrací až 100 záznamů od limit_from (limit_from musí být menší než 1000); chybně utvořené filtry AND / OR vracejí 422 místo 500.
  • Data loader: nepodporované typy souborů vracejí 422 unsupported file type '<mime>' a neúčtují se.
  • Workflow: soubor uvedený svým id ve vstupu běhu zůstává uživateli a už se nemaže spolu s během (soubory poslané jako base64 dál patří běhu).

2026-10-02

  • Pravidla kolekcí booster databáze platí jen pro panely v režimu veřejné databáze; v soukromém režimu se ignorují. Uživatelé, se kterými je panel sdílen jen pro čtení, teď mohou zapisovat jeho záznamy a brát zámky (v obou režimech).
  • POST /tts/mp3 vyžaduje nový rozsah ayeto.tts a POST /data-loader/load nový rozsah ayeto.data_loader. Stávající API klíče dostaly oba rozsahy; klíče vytvořené spárováním desktopového klienta (jen ayeto.connector) už tyto endpointy volat nemohou.
  • POST /tts/mp3 a POST /data-loader/load přijímají volitelné organization_id: požadavek běží v organizaci a účtuje se z kreditu uživatele v ní (jen administrátoři a členové; hosté a nečlenové dostanou 403).
  • POST /tts/mp3 vrací 422 s not enough user credit / not enough organization credit, když dojde kredit, místo 500 Failed to generate audio.
  • Chat odmítne model vypnutý administrátory (požadovaný přímo nebo jako model asistenta) s 422 model is disabled a automatický model bez dostupného modelu s 422 model is not available; model is deprecated se vrací dřív, než se na konverzaci sáhne.
  • Čtení konverzace jiného uživatele přes /conversation/get (odmítnuté s 404) už neaktualizuje její pole accessed.
  • Hlavička language požadavku API už nemění preferovaný jazyk uživatele v aplikaci AYETO (dříve ho každý požadavek uložil a požadavek bez hlavičky ho vrátil na angličtinu).
  • POST /assistant/avatar/get přijímá API klíče s novým rozsahem ayeto.assistant, který lze nyní vybrat při vytváření klíče (pokrývá i /assistant/find).
  • Nová dokumentace API v3, která nahrazuje dřívější poznámky k betaverzi.
  • Workflow jsou dostupná v API: čtení, spouštění, streamování běhů, schvalování, úpravy, publikování, export a import (ayeto.workflow, ayeto.workflow.write).
  • Soukromé API booster databáze s vlastními rozsahy (ayeto.booster.database, ayeto.booster.database.write).