# Modely a nástroje

> Výpis AI modelů a AI nástrojů dostupných na serveru, pro výběr modelu do chatu a nástrojů pro asistenty.

Katalog modelů a katalog nástrojů jsou stejné pro všechny uživatele serveru. Použijte
je k nalezení `model_id`, které pošlete do [chatu](chat.md) nebo nastavíte
[asistentovi](assistants.md), a hodnot `name` nástrojů, na které odkazuje seznam
nástrojů asistenta.

Oba endpointy vracejí celý katalog v jedné odpovědi; stránkování neexistuje.

## Výpis modelů

| | |
|---|---|
| Endpoint | `POST /api/v3/ai_model/get_all` |
| Rozsah | jakýkoli API klíč |
| Limit požadavků | [default](conventions.md#limity-pozadavku) |

Vrací AI modely, které server zná, volitelně jen modely jednoho typu. Seznam není
přizpůsobený: každý uživatel dostane stejný katalog bez ohledu na organizaci.

Seznam obsahuje i modely, které administrátoři vypnuli (`is_enabled` `false`) nebo
vyřadili (`is_deprecated` `true`). Chat odmítne obojí (`422` `model is disabled`
/ `model is deprecated`, viz [Chat](chat.md#chyby)); vybírejte modely s `is_enabled`
`true` a `is_deprecated` `false`. Seznam není seřazený v žádném zaručeném pořadí.

Konkrétní ceny se nezveřejňují. Pro relativní představu o ceně použijte
[`price_tier`](#cenove-urovne) a pro to, kolik konverzace skutečně stála,
[náklady konverzace](account.md#zjisteni-nakladu-konverzace).

### Požadavek

Tělo je povinné; pro modely všech typů pošlete `{}`.

| Pole | Typ | Povinné | Popis |
|---|---|---|---|
| `model_type` | řetězec | Ne | Vrátit jen modely tohoto [typu](#typy-modelu). |

### Odpověď

`200 OK` s polem [modelů](#model).

### Chyby

| Stav | `detail` | Příčina |
|---|---|---|
| `422` | chyba validace | Chybí tělo, nebo `model_type` není známý typ. |

Chyby autentizace, limitů požadavků a serveru jsou popsány v
[konvencích](conventions.md#chyby).

### Příklad

```bash
curl -X POST "https://ayeto.ai/api/v3/ai_model/get_all" \
  -H "uni-api-key: $AYETO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model_type": "llm"}'
```

```json
[
  {
    "id": "3f2a6c1e-8b4d-4e2a-9c7f-1d5e8a2b4c6d",
    "model_id": "example-chat-large",
    "model_type": "llm",
    "provider": "openai_responses",
    "display_name": "Example Chat Large",
    "description": "General purpose model for complex tasks.",
    "multilang_description": {
      "CZ": "Univerzální model pro složité úlohy.",
      "EN": "General purpose model for complex tasks."
    },
    "max_tokens": 32000,
    "max_reasoning_tokens": 0,
    "capabilities": ["chat", "stream", "assistant", "tools", "vision", "reasoning"],
    "use_system_prompt": true,
    "is_deprecated": false,
    "is_enabled": true,
    "is_beta": false,
    "price_tier": 3,
    "price_tier_max": 3,
    "auto_tiers": [],
    "is_new": false
  },
  {
    "id": "9a1b2c3d-4e5f-4061-8a7b-6c5d4e3f2a10",
    "model_id": "example-auto",
    "model_type": "llm",
    "provider": "openai_responses",
    "display_name": "Auto",
    "description": "Picks a suitable model for every message.",
    "multilang_description": {},
    "max_tokens": 16000,
    "max_reasoning_tokens": 0,
    "capabilities": ["chat", "stream", "assistant", "tools"],
    "use_system_prompt": true,
    "is_deprecated": false,
    "is_enabled": true,
    "is_beta": true,
    "price_tier": 1,
    "price_tier_max": 3,
    "auto_tiers": ["example-chat-mini", "example-chat-large"],
    "is_new": true
  }
]
```

## Model

| Pole | Typ | Popis |
|---|---|---|
| `id` | UUID | Identifikátor položky katalogu. Ostatní endpointy ho nepoužívají; používejte `model_id`. |
| `model_id` | řetězec | Identifikátor modelu. To je hodnota pro pole `model` v [chatu](chat.md) a u [asistenta](assistants.md). |
| `model_type` | řetězec | O jaký druh modelu jde, viz [typy modelů](#typy-modelu). |
| `provider` | řetězec | Poskytovatel AI a rodina API, která model obsluhuje, například `openai`, `openai_responses`, `anthropic`, `google`, `xai`, `deepseek`, `kimi`. Informativní. |
| `display_name` | řetězec | Název čitelný pro člověka. |
| `description` | řetězec | Krátký popis, obvykle anglicky. |
| `multilang_description` | objekt | Popisy podle kódu jazyka (`EN`, `CZ`, `FR`). Klíče mohou chybět; v tom případě použijte `description`. |
| `max_tokens` | celé číslo | Největší `max_tokens` (limit výstupu), o který si požadavek chatu s tímto modelem může říct. `0` znamená, že server žádný limit nenastavuje. |
| `max_reasoning_tokens` | celé číslo | Rozpočet tokenů na uvažování u reasoning modelů; `0`, když není nastaven. Informativní. |
| `capabilities` | pole řetězců | Co model umí, viz [schopnosti](#schopnosti). |
| `use_system_prompt` | boolean | Zda model dostává instrukce jako systémový prompt. Informativní. |
| `is_deprecated` | boolean | Model je vyřazený. Požadavky chatu s vyřazeným modelem selžou. |
| `is_enabled` | boolean | `false`, když administrátoři model vypnuli; chat ho odmítne. |
| `is_beta` | boolean | Model je nabízen jako beta. |
| `price_tier` | celé číslo nebo null | Relativní cena, viz [cenové úrovně](#cenove-urovne). |
| `price_tier_max` | celé číslo nebo null | Horní konec cenového rozpětí. Rovná se `price_tier` s výjimkou [automatických modelů](#automaticke-modely). |
| `auto_tiers` | pole řetězců | U [automatického modelu](#automaticke-modely) hodnoty `model_id`, ze kterých vybírá, od nejlevnějšího. U všech ostatních modelů prázdné. |
| `is_new` | boolean | Model byl do katalogu přidán nedávno (ve výchozím nastavení během posledních 14 dnů). |

### Typy modelů

| `model_type` | Modely pro |
|---|---|
| `llm` | Textový chat. To jsou modely, které používáte v [chatu](chat.md) a u [asistentů](assistants.md). |
| `openai_img_gen`, `google_img_gen`, `xai_img_gen` | Generování obrázků, používají je nástroje pro obrázky. |
| `stt` | Převod řeči na text. |
| `tts` | Převod textu na řeč, viz [převod textu na řeč](files-and-media.md#prevod-textu-na-rec). |
| `embeddings` | Textové embeddingy pro znalostní báze. |
| `realtime` | Hlasové konverzace v reálném čase v aplikaci. |
| `classification` | Interní rozhodování ano/ne a výběr z možností. |
| `img_gen` | Staré obrázkové modely, ponechané jen kvůli starým konverzacím. |

Přímo přes toto API (v chatu a u asistentů) lze používat jen modely `llm`. Ostatní
typy jsou uvedeny, abyste viděli, co používají nástroje serveru.

### Schopnosti

| Schopnost | Význam |
|---|---|
| `chat` | Lze použít v chatu. |
| `assistant` | Může spouštět asistenta. Chat vždy spouští asistenta (výchozího, když pošlete jen `model`), takže chatovací model potřebuje `chat` i `assistant`. |
| `stream` | Podporuje streamované odpovědi. |
| `tools` | Může volat AI nástroje. |
| `tools_caching` | Poskytovatel ukládá definice nástrojů mezi voláními do cache (nižší náklady). |
| `vision` | Přijímá obrázky jako vstup. |
| `reasoning` | Reasoning model („přemýšlející“). |
| `adaptive_reasoning` | Model sám rozhoduje, kolik bude uvažovat. |
| `relevant_history` | Podporuje volbu `relevant_history` chatu. |
| `image_to_image` | Obrázkový model, který přijímá vstupní obrázek. |
| `image_upscale` | Obrázkový model, který umí obrázky zvětšovat (upscale). |
| `image_prompt_edit` | Obrázkový model, který umí upravit obrázek podle textového promptu. |
| `image_use_translation` | Prompt pro obrázek se před generováním přeloží do angličtiny. |

### Cenové úrovně

`price_tier` umisťuje model na stupnici od `1` (nejlevnější) do `4` (nejdražší) podle
jeho ceny za výstup ve srovnání s pevnými hranicemi pro každý typ modelu:

| Hodnota | Význam |
|---|---|
| `1` až `4` | Relativní cena, srovnatelná mezi modely stejného typu. |
| `0` | Zdarma, nebo cena není známa. |
| `null` | Typ modelu nemá cenovou orientaci (například `stt`, `tts`, `embeddings`). |

Skutečné náklady na použití modelu se účtují v kreditech; viz [účet](account.md).

### Automatické modely

Automatický model je model `llm`, jehož seznam `auto_tiers` není prázdný. Sám
neodpovídá: pro každou zprávu vybere jeden z modelů v `auto_tiers`, levnější pro
jednoduché zprávy a silnější pro náročné. Jeho `model_id` používejte jako u kteréhokoli
jiného modelu. Jeho `price_tier` a `price_tier_max` pokrývají rozpětí od nejlevnějšího
po nejdražší z těchto modelů. Jeho schopnosti jsou ty, které sdílejí všechny jeho
modely úrovní, a jeho `max_tokens` je nejmenší limit mezi nimi.

## Výpis nástrojů

| | |
|---|---|
| Endpoint | `POST /api/v3/ai_tool/get_all` |
| Rozsah | jakýkoli API klíč |
| Limit požadavků | [default](conventions.md#limity-pozadavku) |

Vrací AI nástroje, které může [asistent](assistants.md) používat. Asistent uvádí
nástroje, které smí používat, v `ai_tools`, podle [`name`](#nastroj) nástroje.

Seznam vynechává nástroje, které nejsou určeny k ručnímu výběru (skryté pomocné
nástroje, které server přidává automaticky tam, kde jsou potřeba), a vyřazené nástroje,
takže `is_hidden` a `is_deprecated` jsou v něm vždy `false`. Obsahuje nástroje, které
fungují jen v organizaci (`organization_only`). Některé nástroje navíc potřebují
k čemukoli připojený účet (například Google nebo Microsoft) nebo spárovaného
desktopového klienta.

`display_name`, `description` a `category` jsou přeloženy do jazyka z hlavičky
požadavku `language` (`EN`, `CZ` nebo `FR`; výchozí `EN`).

### Požadavek

Tělo není potřeba.

### Odpověď

`200 OK` s polem [nástrojů](#nastroj).

### Chyby

Tento endpoint nemá žádné chyby specifické pro sebe. Chyby autentizace, limitů
požadavků a serveru jsou popsány v [konvencích](conventions.md#chyby).

### Příklad

```bash
curl -X POST "https://ayeto.ai/api/v3/ai_tool/get_all" \
  -H "uni-api-key: $AYETO_API_KEY" \
  -H "language: EN"
```

```json
[
  {
    "name": "DownloadUrlFunctionTool",
    "display_name": "Download URL",
    "description": "Download content from a URL",
    "icon": "ayeto",
    "is_advanced": false,
    "is_hidden": false,
    "is_deprecated": false,
    "is_silent": false,
    "organization_only": false,
    "tags": ["download", "url", "web", "content", "internet"],
    "category": "Web service",
    "group": null,
    "in_default_assistant": true,
    "always": false,
    "companion_of_group": null,
    "order": 0
  },
  {
    "name": "AssistantMemoryFunctionTool",
    "display_name": "Assistant Memory",
    "description": "Manage the assistant's memory which persists across conversations. Use to store important information that the assistant should remember.",
    "icon": "ayeto",
    "is_advanced": false,
    "is_hidden": false,
    "is_deprecated": false,
    "is_silent": true,
    "organization_only": false,
    "tags": [],
    "category": "General",
    "group": null,
    "in_default_assistant": false,
    "always": false,
    "companion_of_group": null,
    "order": 0
  }
]
```

## Nástroj

| Pole | Typ | Popis |
|---|---|---|
| `name` | řetězec | Identifikátor nástroje. To je hodnota, kterou uvedete v `ai_tools` asistenta. |
| `display_name` | řetězec | Název čitelný pro člověka, přeložený. |
| `description` | řetězec | Co nástroj dělá, přeloženo. |
| `icon` | řetězec | Název ikony, kterou používá aplikace. |
| `category` | řetězec | Kategorie pro seskupení nástrojů v seznamu, přeložená. |
| `group` | řetězec nebo null | Nástroje, které patří k sobě (například všechny nástroje jedné připojené služby), sdílejí skupinu. |
| `tags` | pole řetězců | Klíčová slova pro vyhledávání. |
| `order` | celé číslo | Nápověda pro řazení v seznamu. |
| `is_advanced` | boolean | Aplikace nástroj uvádí mezi pokročilými nástroji. |
| `is_hidden` | boolean | V tomto seznamu vždy `false` (skryté nástroje jsou vynechány). |
| `is_deprecated` | boolean | V tomto seznamu vždy `false` (vyřazené nástroje jsou vynechány). |
| `is_silent` | boolean | Volání nástroje se v konverzaci nezobrazují jako volání nástrojů, jen jako krátký stav. |
| `organization_only` | boolean | Nástroj je k dispozici, jen když chat běží v organizaci. |
| `in_default_assistant` | boolean | Nástroj je součástí výchozího asistenta (chat jen s `model`). |
| `always` | boolean | Každý asistent dostane nástroj automaticky; nemusíte ho uvádět. |
| `companion_of_group` | řetězec nebo null | Nástroj se automaticky přidá každému asistentovi, který používá nástroj této skupiny. |
