OmniRoute/docs/i18n/ru/API_REFERENCE.md

441 lines
21 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
🌐 **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)
Полный справочник по всем конечным точкам API OmniRoute.
---
## Содержание
- [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` | Запрос | Ключ дедупликации (окно 5s) |
| `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` | ОпенАИ |
| ПОСТ | `/v1/messages` | Антропный |
| ПОСТ | `/v1/responses` | Ответы OpenAI |
| ПОСТ | `/v1/embeddings` | ОпенАИ |
| ПОСТ | `/v1/images/generations` | ОпенАИ |
| ПОЛУЧИТЬ | `/v1/models` | ОпенАИ |
| ПОСТ | `/v1/messages/count_tokens` | Антропный |
| ПОЛУЧИТЬ | `/v1beta/models` | Близнецы |
| ПОСТ | `/v1beta/models/{...path}` | Близнецы создают контент |
| ПОСТ | `/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` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Переключить требуется вход |
### Управление поставщиками
| Конечная точка | Метод | Описание |
| ---------------------------- | -------------------------- | --------------------------------- |
| `/api/providers` | ПОЛУЧИТЬ/ОТПРАВИТЬ | Список/создание поставщиков |
| `/api/providers/[id]` | ПОЛУЧИТЬ/ПОСТАВИТЬ/УДАЛИТЬ | Управление провайдером |
| `/api/providers/[id]/test` | ПОСТ | Проверка подключения к провайдеру |
| `/api/providers/[id]/models` | ПОЛУЧИТЬ | Список моделей поставщиков |
| `/api/providers/validate` | ПОСТ | Проверка конфигурации провайдера |
| `/api/provider-nodes*` | Разное | Управление узлами провайдера |
| `/api/provider-models` | ПОЛУЧИТЬ/ОТПРАВИТЬ/УДАЛИТЬ | Нестандартные модели |
### Потоки OAuth
| Конечная точка | Метод | Описание |
| -------------------------------- | ------ | -------------------------------- |
| `/api/oauth/[provider]/[action]` | Разное | OAuth для конкретного поставщика |
### Маршрутизация и конфигурация
| Конечная точка | Метод | Описание |
| --------------------- | ------------------ | ------------------------------- |
| `/api/models/alias` | ПОЛУЧИТЬ/ОТПРАВИТЬ | Псевдонимы моделей |
| `/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` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Общие настройки |
| `/api/settings/proxy` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Конфигурация сетевого прокси |
| `/api/settings/proxy/test` | ПОСТ | Проверить прокси-соединение |
| `/api/settings/ip-filter` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Список разрешенных/блокированных IP-адресов |
| `/api/settings/thinking-budget` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Обоснование бюджета жетона |
| `/api/settings/system-prompt` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Глобальная системная подсказка |
### Мониторинг
| Конечная точка | Метод | Описание |
| ------------------------ | ---------------- | --------------------------------------- |
| `/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` | ПОЛУЧИТЬ | Статус CLI Кодекса |
| `/api/cli-tools/droid-settings` | ПОЛУЧИТЬ | Статус Droid CLI |
| `/api/cli-tools/openclaw-settings` | ПОЛУЧИТЬ | Статус OpenClaw CLI |
| `/api/cli-tools/runtime/[toolId]` | ПОЛУЧИТЬ | Общая среда выполнения CLI |
Ответы CLI включают: `installed`, `runnable`, `command`, `commandPath`, `runtimeMode`, `reason`.
### Устойчивость и ограничения скорости
| Конечная точка | Метод | Описание |
| ----------------------- | ------------------ | ---------------------------------------------- |
| `/api/resilience` | ПОЛУЧИТЬ/ПОСТАВИТЬ | Получить/обновить профили устойчивости |
| `/api/resilience/reset` | ПОСТ | Сброс автоматических выключателей |
| `/api/rate-limits` | ПОЛУЧИТЬ | Статус ограничения ставки для каждого аккаунта |
| `/api/rate-limit` | ПОЛУЧИТЬ | Конфигурация глобального ограничения скорости |
### Оценки
| Конечная точка | Метод | Описание |
| -------------- | ------------------ | ----------------------------------------------- |
| `/api/evals` | ПОЛУЧИТЬ/ОТПРАВИТЬ | Получение списка пакетов оценки / запуск оценки |
### Политики
| Конечная точка | Метод | Описание |
| --------------- | -------------------------- | ----------------------------------- |
| `/api/policies` | ПОЛУЧИТЬ/ОТПРАВИТЬ/УДАЛИТЬ | Управление политиками маршрутизации |
### Соответствие
| Конечная точка | Метод | Описание |
| --------------------------- | -------- | ---------------------------------------- |
| `/api/compliance/audit-log` | ПОЛУЧИТЬ | Журнал аудита соответствия (последний N) |
### v1beta (совместимость с Близнецами)
| Конечная точка | Метод | Описание |
| -------------------------- | -------- | --------------------------------------- |
| `/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`.
---
## Совместимость с Олламой
Для клиентов, использующих формат API Ollama:
```bash
# Chat endpoint (Ollama format)
POST /v1/api/chat
# Model listing (Ollama format)
GET /api/tags
```
Запросы автоматически переводятся между Олламой и внутренними форматами.
---
## Телеметрия
```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/*`) используют файл cookie `auth_token`.
- Для входа используется сохраненный хеш пароля; возврат к `INITIAL_PASSWORD`
- `requireLogin` переключается через `/api/settings/require-login`
- Маршруты `/v1/*` дополнительно требуют ключ API носителя, когда `REQUIRE_API_KEY=true`