Endpointy

Asistenti

Výpis asistentů dostupných uživateli API klíče a jejich použití v chatu.

Zobrazit jako Markdown

Asistent je nakonfigurovaný AI agent: model s vlastními instrukcemi, nástroji, znalostní bází a pamětí. Asistenti se vytvářejí a upravují v aplikaci AYETO; API je vypisuje, abyste si mohli jednoho vybrat a mluvit s ním přes chat.

Rozsah

Endpointy asistentů vyžadují rozsah ayeto.assistant (při vytváření klíče zobrazený jako AYETO asistenti), nebo klíč se všemi rozsahy (*). Viz rozsahy.

Výpis asistentů

Endpoint POST /api/v3/assistant/find
Rozsah ayeto.assistant
Limit požadavků default

Vrací asistenty, které uživatel API klíče může používat:

  • asistenty, které uživatel vytvořil, při osobním používání i v organizacích;
  • asistenty vlastněné skupinou, do které uživatel patří (například administrátory organizace);
  • asistenty sdílené s uživatelem, přímo e-mailem nebo prostřednictvím skupiny.

Asistenti organizace, které uživatel nevlastní a nejsou s ním sdílení, se nevracejí, stejně jako šablony asistentů z galerie (šablona se stane asistentem, jakmile ji uživatel v aplikaci přidá).

Výsledek obsahuje i asistenty, které aplikace vytváří pro svá vlastní studia: asistenta za každým Booster panelem a asistenta builderu každého workflow. Aplikace je ve svých seznamech asistentů skrývá. Chcete-li je vynechat, přidejte filtry ["booster_panel_id", "==", null] a ["workflow_id", "==", null] (viz příklad).

Požadavek

Tělo je objekt dotazu s obvyklými poli pro filtry, řazení a stránkování. Pro všechno pošlete {}; samotné tělo je povinné.

Pole Typ Povinné Popis
filters pole Ne Podmínky filtru, viz filtry a příklady níže. Více podmínek se kombinuje pomocí AND.
sort_key řetězec Ne Pole, podle kterého se řadí, například name, created.timestamp, updated.timestamp nebo accessed.timestamp (naposledy použito). Výchozí: created.timestamp, sestupně.
sort_order celé číslo Ne 0 vzestupně, 1 sestupně. Výchozí 0, když je nastaveno sort_key.
limit_from celé číslo Ne Index prvního výsledku (od nuly). Bez něj se vrátí všichni odpovídající asistenti.
limit_to celé číslo Ne Index za posledním výsledkem (výlučně), ne velikost stránky.

Užitečné filtry:

Cíl Filtr
Jen osobní asistenti ["organization_id", "==", null]
Asistenti jedné organizace ["organization_id", "==", "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"]
Bez asistentů Booster panelů a builderů workflow ["booster_panel_id", "==", null], ["workflow_id", "==", null]
Název obsahuje slovo (bez ohledu na velikost písmen) ["name", "regex", "support"]
Asistenti vytvoření uživatelem (ne sdílení s ním) ["created.user_id", "==", "6c5b4a39-2817-4f6e-9d5c-4b3a29180f7e"]

Odpověď

200 OK s polem asistentů.

Chyby

Stav detail Příčina
401 API key is invalid Klíči chybí rozsah ayeto.assistant (a nejde o klíč se všemi rozsahy), nebo klíč není platný.
403 permission denied Účet uživatele nemá povoleno číst asistenty.
422 chyba validace Chybí tělo, nebo je neplatný filtr či sort_key.

Chyby autentizace, limitů požadavků a serveru jsou popsány v konvencích.

Příklad

Vlastní asistenti uživatele (osobní, bez asistentů studií), od naposledy použitých:

bash
curl -X POST "https://ayeto.ai/api/v3/assistant/find" \
  -H "uni-api-key: $AYETO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      ["organization_id", "==", null],
      ["booster_panel_id", "==", null],
      ["workflow_id", "==", null]
    ],
    "sort_key": "accessed.timestamp",
    "sort_order": 1,
    "limit_from": 0,
    "limit_to": 50
  }'
json
[
  {
    "id": "3f6c1a2e-8b4d-4e7a-9c1f-2d5e6a7b8c90",
    "name": "Customer support",
    "description": "Answers questions about orders, delivery and returns.",
    "avatar_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
    "organization_id": null,
    "created": {"timestamp": 1756819200000, "user_id": "6c5b4a39-2817-4f6e-9d5c-4b3a29180f7e"},
    "updated": {"timestamp": 1759222800000, "user_id": "6c5b4a39-2817-4f6e-9d5c-4b3a29180f7e"},
    "accessed": {"timestamp": 1759395606000, "user_id": "6c5b4a39-2817-4f6e-9d5c-4b3a29180f7e"}
  },
  {
    "id": "7d1e2f3a-4b5c-4d6e-8f7a-9b0c1d2e3f4a",
    "name": "Contract reviewer",
    "description": "",
    "avatar_id": null,
    "organization_id": null,
    "created": {"timestamp": 1754035200000, "user_id": "6c5b4a39-2817-4f6e-9d5c-4b3a29180f7e"},
    "updated": {"timestamp": 0, "user_id": null},
    "accessed": {"timestamp": 0, "user_id": null}
  }
]

Avatar asistenta

Endpoint POST /api/v3/assistant/avatar/get
Rozsah ayeto.assistant
Limit požadavků default

Vrací odkaz na obrázek avatara asistenta, například abyste ho mohli zobrazit vedle odpovědí asistenta ve své aplikaci.

Požadavek

Pole Typ Povinné Popis
assistant_id UUID ano Id asistenta, kterého uživatel vlastní nebo který je s ním sdílený.

Odpověď

200 OK s úplnou URL obrázku avatara jako řetězcem JSON, nebo s prázdným řetězcem (""), když asistent avatara nemá. Odkaz funguje bez API klíče, takže ho můžete použít přímo jako zdroj obrázku; avatar_id ve Výpisu asistentů vám předem řekne, zda avatar existuje.

json
"https://ayeto.ai/api/v1/public/file/read?id=9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d&secret=4f1c9e2b7a6d4c3e"

Chyby

Stav detail Příčina
401 API key is invalid Klíči chybí rozsah ayeto.assistant (a nejde o klíč se všemi rozsahy), nebo klíč není platný.
403 permission denied Účet uživatele nemá povoleno číst asistenty.
403 not shared with user Asistent není ve vlastnictví uživatele ani s ním není sdílený.
404 Assistant not found Asistent s tímto id neexistuje.
422 chyba validace assistant_id chybí nebo není UUID.

Příklad

bash
curl -X POST "https://ayeto.ai/api/v3/assistant/avatar/get" \
  -H "uni-api-key: $AYETO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"assistant_id": "3f6c1a2e-8b4d-4e7a-9c1f-2d5e6a7b8c90"}'

Asistent

Objekt, který vrací Výpis asistentů. Instrukce, model, nástroje a znalostní báze asistenta API nezpřístupňuje.

Pole Typ Povinné Popis
id UUID Ano Id asistenta. Předejte ho jako assistant_id do chatu.
name řetězec Ano Zobrazovaný název.
description řetězec Ano Krátký popis; může to být prázdný řetězec.
avatar_id UUID nebo null Ne Id souboru s obrázkem avatara; null, když asistent avatara nemá. Odkaz na něj získáte pomocí Avatar asistenta.
organization_id UUID nebo null Ne Organizace, do které asistent patří; null u osobního asistenta.
created, updated, accessed objekt Ano Metadata {timestamp, user_id}, viz společná pole. accessed je okamžik, kdy byl asistent naposledy použit v chatu; 0, pokud od začátku zaznamenávání použit nebyl.

Chat s asistentem

Chcete-li mluvit s asistentem, pošlete do chatu jeho id jako assistant_id místo model. Použije se vlastní model, instrukce, nástroje a znalosti asistenta a nová konverzace se s ním propojí: objeví se s tímto assistant_id ve výpisu konverzací.

  • Pro chat s asistentem stačí, když je sdílený jen pro čtení.
  • Asistent, který patří organizaci, běží v této organizaci (pokud nepošlete jiné organization_id), takže uživatel musí být členem nebo administrátorem této organizace. Asistent sdílený s uživatelem z organizace, do které nepatří, se ve výpisu objeví, ale chat s ním se odmítne s 403.
  • Chat vyžaduje na klíči rozsah ayeto.chat.