OmniRoute/docs/i18n/uk-UA/API_REFERENCE.md

441 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API Reference
🌐 **Languages:** 🇺🇸 [English](../../API_REFERENCE.md) | 🇧🇷 [Português (Brasil)](../pt-BR/API_REFERENCE.md) | 🇪🇸 [Español](../es/API_REFERENCE.md) | 🇫🇷 [Français](../fr/API_REFERENCE.md) | 🇮🇹 [Italiano](../it/API_REFERENCE.md) | 🇷🇺 [Русский](../ru/API_REFERENCE.md) | 🇨🇳 [中文 (简体)](../zh-CN/API_REFERENCE.md) | 🇩🇪 [Deutsch](../de/API_REFERENCE.md) | 🇮🇳 [हिन्दी](../in/API_REFERENCE.md) | 🇹🇭 [ไทย](../th/API_REFERENCE.md) | 🇺🇦 [Українська](../uk-UA/API_REFERENCE.md) | 🇸🇦 [العربية](../ar/API_REFERENCE.md) | 🇯🇵 [日本語](../ja/API_REFERENCE.md) | 🇻🇳 [Tiếng Việt](../vi/API_REFERENCE.md) | 🇧🇬 [Български](../bg/API_REFERENCE.md) | 🇩🇰 [Dansk](../da/API_REFERENCE.md) | 🇫🇮 [Suomi](../fi/API_REFERENCE.md) | 🇮🇱 [עברית](../he/API_REFERENCE.md) | 🇭🇺 [Magyar](../hu/API_REFERENCE.md) | 🇮🇩 [Bahasa Indonesia](../id/API_REFERENCE.md) | 🇰🇷 [한국어](../ko/API_REFERENCE.md) | 🇲🇾 [Bahasa Melayu](../ms/API_REFERENCE.md) | 🇳🇱 [Nederlands](../nl/API_REFERENCE.md) | 🇳🇴 [Norsk](../no/API_REFERENCE.md) | 🇵🇹 [Português (Portugal)](../pt/API_REFERENCE.md) | 🇷🇴 [Română](../ro/API_REFERENCE.md) | 🇵🇱 [Polski](../pl/API_REFERENCE.md) | 🇸🇰 [Slovenčina](../sk/API_REFERENCE.md) | 🇸🇪 [Svenska](../sv/API_REFERENCE.md) | 🇵🇭 [Filipino](../phi/API_REFERENCE.md)
Повний довідник для всіх кінцевих точок OmniRoute API.
---
## Зміст
- [Chat Completions](#chat-completions)
- [Embeddings](#embeddings)
- [Image Generation](#image-generation)
- [List Models](#list-models)
- [Compatibility Endpoints](#compatibility-endpoints)
- [Semantic Cache](#semantic-cache)
- [Dashboard & Management](#dashboard--management)
- [Request Processing](#request-processing)
- [Authentication](#authentication)
---
## Завершення чату
```bash
POST /v1/chat/completions
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "cc/claude-opus-4-6",
"messages": [
{"role": "user", "content": "Write a function to..."}
],
"stream": true
}
```
### Спеціальні заголовки
| Заголовок | Напрям | Опис |
| ------------------------ | --------- | --------------------------------------- |
| `X-OmniRoute-No-Cache` | Запит | Установіть `true`, щоб обійти кеш |
| `X-OmniRoute-Progress` | Запит | Встановіть `true` для подій прогресу |
| `Idempotency-Key` | Запит | Ключ дедуплювання (5-секундне вікно) |
| `X-Request-Id` | Запит | Альтернативний ключ дедуплювання |
| `X-OmniRoute-Cache` | Відповідь | `HIT` або `MISS` (не потоковий) |
| `X-OmniRoute-Idempotent` | Відповідь | `true` якщо дедупліковано |
| `X-OmniRoute-Progress` | Відповідь | `enabled`, якщо відстеження прогресу на |
---
## Вбудовування
```bash
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
```
Доступні постачальники: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA.
```bash
# List all embedding models
GET /v1/embeddings
```
---
## Генерація зображень
```bash
POST /v1/images/generations
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "openai/dall-e-3",
"prompt": "A beautiful sunset over mountains",
"size": "1024x1024"
}
```
Доступні постачальники: OpenAI (DALL-E), xAI (Grok Image), Together AI (FLUX), Fireworks AI.
```bash
# List all image models
GET /v1/images/generations
```
---
## Список моделей
```bash
GET /v1/models
Authorization: Bearer your-api-key
→ Returns all chat, embedding, and image models + combos in OpenAI format
```
---
## Кінцеві точки сумісності
| Метод | Шлях | Формат |
| ------------ | --------------------------- | ---------------------- |
| Опублікувати | `/v1/chat/completions` | OpenAI |
| Опублікувати | `/v1/messages` | Антропний |
| Опублікувати | `/v1/responses` | Відповіді OpenAI |
| Опублікувати | `/v1/embeddings` | OpenAI |
| Опублікувати | `/v1/images/generations` | OpenAI |
| ОТРИМАТИ | `/v1/models` | OpenAI |
| Опублікувати | `/v1/messages/count_tokens` | Антропний |
| ОТРИМАТИ | `/v1beta/models` | Близнюки |
| Опублікувати | `/v1beta/models/{...path}` | Gemini generateContent |
| Опублікувати | `/v1/api/chat` | Оллама |
### Виділені маршрути постачальників
```bash
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
```
Префікс провайдера додається автоматично, якщо його немає. Невідповідні моделі повертають `400`.
---
## Семантичний кеш
```bash
# Get cache stats
GET /api/cache
# Clear all caches
DELETE /api/cache
```
Приклад відповіді:
```json
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
```
---
## Інформаційна панель і керування
### Автентифікація
| Кінцева точка | Метод | Опис |
| ----------------------------- | ------------ | -------------------------- |
| `/api/auth/login` | Опублікувати | Вхід |
| `/api/auth/logout` | Опублікувати | Вийти |
| `/api/settings/require-login` | GET/PUT | Перемкнути необхідний вхід |
### Керування провайдером
| Кінцева точка | Метод | Опис |
| ---------------------------- | --------------- | ------------------------------------ |
| `/api/providers` | GET/POST | Список / створення постачальників |
| `/api/providers/[id]` | GET/PUT/DELETE | Керувати постачальником |
| `/api/providers/[id]/test` | Опублікувати | Перевірте підключення провайдера |
| `/api/providers/[id]/models` | ОТРИМАТИ | Список моделей провайдерів |
| `/api/providers/validate` | Опублікувати | Перевірте конфігурацію постачальника |
| `/api/provider-nodes*` | Різні | Керування вузлом провайдера |
| `/api/provider-models` | GET/POST/DELETE | Індивідуальні моделі |
### Потоки OAuth
| Кінцева точка | Метод | Опис |
| -------------------------------- | ----- | ----------------------- |
| `/api/oauth/[provider]/[action]` | Різні | OAuth для постачальника |
### Маршрутизація та конфігурація
| Кінцева точка | Метод | Опис |
| --------------------- | -------- | ------------------------------- |
| `/api/models/alias` | GET/POST | Псевдоніми моделей |
| `/api/models/catalog` | ОТРИМАТИ | Всі моделі за провайдером + тип |
| `/api/combos*` | Різні | Комбо управління |
| `/api/keys*` | Різні | Керування ключами API |
| `/api/pricing` | ОТРИМАТИ | Модель ціноутворення |
### Використання та аналітика
| Кінцева точка | Метод | Опис |
| --------------------------- | -------- | -------------------------------- |
| `/api/usage/history` | ОТРИМАТИ | Історія використання |
| `/api/usage/logs` | ОТРИМАТИ | Журнали використання |
| `/api/usage/request-logs` | ОТРИМАТИ | Журнали рівня запиту |
| `/api/usage/[connectionId]` | ОТРИМАТИ | Використання кожного підключення |
### Налаштування
| Кінцева точка | Метод | Опис |
| ------------------------------- | ------------ | ------------------------------- |
| `/api/settings` | GET/PUT | Загальні налаштування |
| `/api/settings/proxy` | GET/PUT | Конфігурація мережевого проксі |
| `/api/settings/proxy/test` | Опублікувати | Тест проксі-з'єднання |
| `/api/settings/ip-filter` | GET/PUT | Список дозволених/чорних IP |
| `/api/settings/thinking-budget` | GET/PUT | Обґрунтування жетонного бюджету |
| `/api/settings/system-prompt` | GET/PUT | Глобальна системна підказка |
### Моніторинг
| Кінцева точка | Метод | Опис |
| ------------------------ | ----------------- | -------------------------------- |
| `/api/sessions` | ОТРИМАТИ | Відстеження активної сесії |
| `/api/rate-limits` | ОТРИМАТИ | Ліміти ставок за обліковий запис |
| `/api/monitoring/health` | ОТРИМАТИ | Перевірка стану здоров'я |
| `/api/cache` | ОТРИМАТИ/ВИДАЛИТИ | Статистика кешу / очищення |
### Резервне копіювання та експорт/імпорт
| Кінцева точка | Метод | Опис |
| --------------------------- | ------------ | ------------------------------------------------ |
| `/api/db-backups` | ОТРИМАТИ | Список доступних резервних копій |
| `/api/db-backups` | ПОСТАВИТИ | Створіть резервну копію вручну |
| `/api/db-backups` | Опублікувати | Відновити з певної резервної копії |
| `/api/db-backups/export` | ОТРИМАТИ | Завантажити базу даних як файл .sqlite |
| `/api/db-backups/import` | Опублікувати | Завантажте файл .sqlite для заміни бази даних |
| `/api/db-backups/exportAll` | ОТРИМАТИ | Завантажте повну резервну копію як архів .tar.gz |
### Хмарна синхронізація
| Кінцева точка | Метод | Опис |
| ---------------------- | ------------ | ------------------------------ |
| `/api/sync/cloud` | Різні | Операції хмарної синхронізації |
| `/api/sync/initialize` | Опублікувати | Ініціалізація синхронізації |
| `/api/cloud/*` | Різні | Управління хмарою |
### Інструменти CLI
| Кінцева точка | Метод | Опис |
| ---------------------------------- | -------- | --------------------------------- |
| `/api/cli-tools/claude-settings` | ОТРИМАТИ | Клод CLI статус |
| `/api/cli-tools/codex-settings` | ОТРИМАТИ | Codex CLI status |
| `/api/cli-tools/droid-settings` | ОТРИМАТИ | Droid CLI status |
| `/api/cli-tools/openclaw-settings` | ОТРИМАТИ | Статус OpenClaw CLI |
| `/api/cli-tools/runtime/[toolId]` | ОТРИМАТИ | Загальне середовище виконання CLI |
Відповіді CLI включають: `installed`, `runnable`, `command`, `commandPath`, `runtimeMode`, `reason`.
### Стійкість і обмеження швидкості
| Кінцева точка | Метод | Опис |
| ----------------------- | ------------ | -------------------------------------------- |
| `/api/resilience` | GET/PUT | Отримати/оновити профілі стійкості |
| `/api/resilience/reset` | Опублікувати | Скидання автоматичних вимикачів |
| `/api/rate-limits` | ОТРИМАТИ | Статус обмеження ставки на обліковий запис |
| `/api/rate-limit` | ОТРИМАТИ | Конфігурація глобального обмеження швидкості |
### Оцінки
| Кінцева точка | Метод | Опис |
| ------------- | -------- | ---------------------------------------------- |
| `/api/evals` | GET/POST | Створити список eval suites / запустити оцінку |
### Політика
| Кінцева точка | Метод | Опис |
| --------------- | --------------- | --------------------------------- |
| `/api/policies` | GET/POST/DELETE | Керування політикою маршрутизації |
### Відповідність
| Кінцева точка | Метод | Опис |
| --------------------------- | -------- | ---------------------------------------- |
| `/api/compliance/audit-log` | ОТРИМАТИ | Журнал аудиту відповідності (останній N) |
### v1beta (сумісний із Gemini)
| Кінцева точка | Метод | Опис |
| -------------------------- | ------------ | -------------------------------------- |
| `/v1beta/models` | ОТРИМАТИ | Список моделей у форматі Gemini |
| `/v1beta/models/{...path}` | Опублікувати | Кінцева точка Gemini `generateContent` |
Ці кінцеві точки відображають формат API Gemini для клієнтів, які очікують нативної сумісності з Gemini SDK.
### Внутрішні/системні API
| Кінцева точка | Метод | Опис |
| --------------- | ------------ | --------------------------------------------------------------------------- |
| `/api/init` | ОТРИМАТИ | Перевірка ініціалізації програми (використовується під час першого запуску) |
| `/api/tags` | ОТРИМАТИ | Сумісні з Ollama теги моделей (для клієнтів Ollama) |
| `/api/restart` | Опублікувати | Ініціювати плавний перезапуск сервера |
| `/api/shutdown` | Опублікувати | Ініціювати плавне завершення роботи сервера |
> **Примітка.** Ці кінцеві точки використовуються внутрішньо системою або для сумісності клієнта Ollama. Зазвичай вони не викликаються кінцевими користувачами.
---
## Транскрипція аудіо
```bash
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
```
Транскрибуйте аудіофайли за допомогою Deepgram або AssemblyAI.
**Запит:**
```bash
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@recording.mp3" \
-F "model=deepgram/nova-3"
```
**Відповідь:**
```json
{
"text": "Hello, this is the transcribed audio content.",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
```
**Підтримувані постачальники:** `deepgram/nova-3`, `assemblyai/best`.
**Підтримувані формати:** `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`.
---
## Сумісність Ollama
Для клієнтів, які використовують формат API Ollama:
```bash
# Chat endpoint (Ollama format)
POST /v1/api/chat
# Model listing (Ollama format)
GET /api/tags
```
Запити автоматично перекладаються між Ollama та внутрішніми форматами.
---
## Телеметрія
```bash
# Get latency telemetry summary (p50/p95/p99 per provider)
GET /api/telemetry/summary
```
**Відповідь:**
```json
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
```
---
## Бюджет
```bash
# Get budget status for all API keys
GET /api/usage/budget
# Set or update a budget
POST /api/usage/budget
Content-Type: application/json
{
"keyId": "key-123",
"limit": 50.00,
"period": "monthly"
}
```
---
## Наявність моделі
```bash
# Get real-time model availability across all providers
GET /api/models/availability
# Check availability for a specific model
POST /api/models/availability
Content-Type: application/json
{
"model": "claude-sonnet-4-5-20250929"
}
```
---
## Обробка запиту
1. Клієнт надсилає запит на `/v1/*`
2. Обробник маршруту викликає `handleChat`, `handleEmbedding`, `handleAudioTranscription` або `handleImageGeneration`
3. Модель вирішено (прямий постачальник/модель або псевдонім/комбо)
4. Облікові дані, вибрані з локальної БД з фільтрацією доступності облікових записів
5. Для чату: `handleChatCore` — визначення формату, переклад, перевірка кешу, перевірка ідемпотентності
6. Виконавець провайдера надсилає висхідний запит
7. Відповідь перекладається назад у формат клієнта (чат) або повертається як є (вбудовування/зображення/аудіо)
8. Запис використання/реєстрації
9. Резервний варіант застосовується до помилок відповідно до правил комбінування
Повне посилання на архітектуру: [link](ARCHITECTURE.md)
---
## Автентифікація
- Маршрути інформаційної панелі (`/dashboard/*`) використовують `auth_token` cookie
- Вхід використовує збережений хеш пароля; повернутися до `INITIAL_PASSWORD`
- `requireLogin` можна перемикати через `/api/settings/require-login`
- Маршрути `/v1/*` додатково вимагають ключ API носія, коли `REQUIRE_API_KEY=true`