chore(i18n): refresh uk translations
This commit is contained in:
parent
868e0d984a
commit
576b2eda31
@ -1,13 +1,13 @@
|
||||
---
|
||||
read_when:
|
||||
- Зміна транскрипції аудіо або обробки медіа
|
||||
- Зміна транскрибування аудіо або обробки медіа
|
||||
summary: Як вхідні аудіо/голосові повідомлення завантажуються, транскрибуються та вставляються у відповіді
|
||||
title: Аудіо та голосові повідомлення
|
||||
x-i18n:
|
||||
generated_at: "2026-04-27T12:51:29Z"
|
||||
generated_at: "2026-04-27T14:47:46Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 9852ce852fa27cb9e8ded06f420f7d58a1c14f379ac65a58437da5976813461b
|
||||
source_hash: 35074d79104f767ee252064462202a8ec21ac26f6db25c39e67f31f6b40edeb7
|
||||
source_path: nodes/audio.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -16,37 +16,37 @@ x-i18n:
|
||||
|
||||
## Що працює
|
||||
|
||||
- **Розуміння медіа (аудіо)**: якщо розуміння аудіо ввімкнено (або визначається автоматично), OpenClaw:
|
||||
- **Розуміння медіа (аудіо)**: Якщо розуміння аудіо ввімкнене (або визначається автоматично), OpenClaw:
|
||||
1. Знаходить перше аудіовкладення (локальний шлях або URL) і завантажує його за потреби.
|
||||
2. Застосовує `maxBytes` перед надсиланням до кожного запису моделі.
|
||||
3. Запускає перший придатний запис моделі за порядком (провайдер або CLI).
|
||||
4. Якщо він зазнає невдачі або пропускається (розмір/тайм-аут), пробує наступний запис.
|
||||
4. Якщо він завершується помилкою або пропускається (розмір/тайм-аут), пробується наступний запис.
|
||||
5. У разі успіху замінює `Body` блоком `[Audio]` і встановлює `{{Transcript}}`.
|
||||
- **Розбір команд**: коли транскрипція успішна, `CommandBody`/`RawBody` встановлюються на транскрипт, тому slash-команди й далі працюють.
|
||||
- **Докладне логування**: у режимі `--verbose` ми логуємо, коли запускається транскрипція і коли вона замінює body.
|
||||
- **Розбір команд**: Коли транскрибування успішне, `CommandBody`/`RawBody` встановлюються в транскрипт, щоб slash-команди продовжували працювати.
|
||||
- **Розширене журналювання**: У `--verbose` ми журналюємо, коли виконується транскрибування і коли воно замінює тіло повідомлення.
|
||||
|
||||
## Автовизначення (типово)
|
||||
|
||||
Якщо ви **не налаштовуєте моделі** і `tools.media.audio.enabled` **не** встановлено в `false`,
|
||||
OpenClaw автоматично визначає їх у такому порядку й зупиняється на першому робочому варіанті:
|
||||
OpenClaw автоматично визначає в такому порядку й зупиняється на першому робочому варіанті:
|
||||
|
||||
1. **Активна модель відповіді**, якщо її провайдер підтримує розуміння аудіо.
|
||||
2. **Локальні CLI** (якщо встановлено)
|
||||
2. **Локальні CLI** (якщо встановлені)
|
||||
- `sherpa-onnx-offline` (потребує `SHERPA_ONNX_MODEL_DIR` з encoder/decoder/joiner/tokens)
|
||||
- `whisper-cli` (з `whisper-cpp`; використовує `WHISPER_CPP_MODEL` або вбудовану tiny-модель)
|
||||
- `whisper` (Python CLI; автоматично завантажує моделі)
|
||||
3. **Gemini CLI** (`gemini`) з використанням `read_many_files`
|
||||
4. **Автентифікація провайдера**
|
||||
- Спочатку пробуються налаштовані записи `models.providers.*`, які підтримують аудіо
|
||||
- Вбудований порядок резервного перемикання: OpenAI → Groq → xAI → Deepgram → Google → SenseAudio → ElevenLabs → Mistral
|
||||
4. **Авторизація провайдера**
|
||||
- Спочатку пробуються налаштовані записи `models.providers.*`, що підтримують аудіо
|
||||
- Вбудований порядок запасних варіантів: OpenAI → Groq → xAI → Deepgram → Google → SenseAudio → ElevenLabs → Mistral
|
||||
|
||||
Щоб вимкнути автовизначення, встановіть `tools.media.audio.enabled: false`.
|
||||
Щоб налаштувати власну поведінку, встановіть `tools.media.audio.models`.
|
||||
Примітка: виявлення бінарних файлів є best-effort для macOS/Linux/Windows; переконайтеся, що CLI є в `PATH` (ми розгортаємо `~`), або задайте явну модель CLI з повним шляхом до команди.
|
||||
Щоб налаштувати вручну, встановіть `tools.media.audio.models`.
|
||||
Примітка: виявлення бінарників виконується за принципом best-effort на macOS/Linux/Windows; переконайтеся, що CLI є в `PATH` (ми розгортаємо `~`), або задайте явну CLI-модель з повним шляхом до команди.
|
||||
|
||||
## Приклади конфігурації
|
||||
|
||||
### Провайдер + резервний CLI-варіант (OpenAI + Whisper CLI)
|
||||
### Провайдер + запасний CLI-варіант (OpenAI + Whisper CLI)
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -70,7 +70,7 @@ OpenClaw автоматично визначає їх у такому поряд
|
||||
}
|
||||
```
|
||||
|
||||
### Лише провайдер із керуванням областями
|
||||
### Лише провайдер із обмеженням за областю дії
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -134,7 +134,7 @@ OpenClaw автоматично визначає їх у такому поряд
|
||||
}
|
||||
```
|
||||
|
||||
### Надсилати транскрипт у чат як відлуння (opt-in)
|
||||
### Надсилати транскрипт назад у чат (опційно)
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -153,70 +153,72 @@ OpenClaw автоматично визначає їх у такому поряд
|
||||
|
||||
## Примітки та обмеження
|
||||
|
||||
- Автентифікація провайдера дотримується стандартного порядку автентифікації моделей (профілі автентифікації, змінні середовища, `models.providers.*.apiKey`).
|
||||
- Авторизація провайдера дотримується стандартного порядку авторизації моделей (профілі авторизації, змінні середовища, `models.providers.*.apiKey`).
|
||||
- Докладно про налаштування Groq: [Groq](/uk/providers/groq).
|
||||
- Deepgram підхоплює `DEEPGRAM_API_KEY`, коли використовується `provider: "deepgram"`.
|
||||
- Докладно про налаштування Deepgram: [Deepgram (транскрипція аудіо)](/uk/providers/deepgram).
|
||||
- Докладно про налаштування Deepgram: [Deepgram (транскрибування аудіо)](/uk/providers/deepgram).
|
||||
- Докладно про налаштування Mistral: [Mistral](/uk/providers/mistral).
|
||||
- SenseAudio підхоплює `SENSEAUDIO_API_KEY`, коли використовується `provider: "senseaudio"`.
|
||||
- Докладно про налаштування SenseAudio: [SenseAudio](/uk/providers/senseaudio).
|
||||
- Провайдери аудіо можуть перевизначати `baseUrl`, `headers` і `providerOptions` через `tools.media.audio`.
|
||||
- Типове обмеження розміру — 20 МБ (`tools.media.audio.maxBytes`). Завелике аудіо пропускається для цієї моделі, і пробується наступний запис.
|
||||
- Дуже малі/порожні аудіофайли менше 1024 байтів пропускаються до транскрипції через провайдера/CLI.
|
||||
- Типове значення `maxChars` для аудіо **не задано** (повний транскрипт). Встановіть `tools.media.audio.maxChars` або `maxChars` для окремого запису, щоб обрізати результат.
|
||||
- Типовий варіант OpenAI — `gpt-4o-mini-transcribe`; встановіть `model: "gpt-4o-transcribe"` для вищої точності.
|
||||
- Використовуйте `tools.media.audio.attachments`, щоб обробляти кілька голосових повідомлень (`mode: "all"` + `maxAttachments`).
|
||||
- Аудіопровайдери можуть перевизначати `baseUrl`, `headers` і `providerOptions` через `tools.media.audio`.
|
||||
- Типове обмеження розміру — 20MB (`tools.media.audio.maxBytes`). Завелике аудіо пропускається для цієї моделі, і пробується наступний запис.
|
||||
- Крихітні/порожні аудіофайли менші за 1024 байти пропускаються до транскрибування через провайдера/CLI.
|
||||
- Типове `maxChars` для аудіо **не встановлене** (повний транскрипт). Встановіть `tools.media.audio.maxChars` або `maxChars` для конкретного запису, щоб обрізати результат.
|
||||
- Типове значення OpenAI — `gpt-4o-mini-transcribe`; встановіть `model: "gpt-4o-transcribe"` для вищої точності.
|
||||
- Використовуйте `tools.media.audio.attachments` для обробки кількох голосових повідомлень (`mode: "all"` + `maxAttachments`).
|
||||
- Транскрипт доступний у шаблонах як `{{Transcript}}`.
|
||||
- `tools.media.audio.echoTranscript` типово вимкнено; увімкніть його, щоб надсилати підтвердження транскрипту назад у вихідний чат до обробки агентом.
|
||||
- `tools.media.audio.echoFormat` налаштовує текст відлуння (заповнювач: `{transcript}`).
|
||||
- Вивід CLI stdout обмежено (5 МБ); зберігайте вивід CLI лаконічним.
|
||||
- `args` CLI мають використовувати `{{MediaPath}}` для локального шляху до аудіофайлу. Запустіть `openclaw doctor --fix`, щоб перенести застарілі заповнювачі `{input}` зі старих конфігурацій `audio.transcription.command`.
|
||||
- `tools.media.audio.echoTranscript` типово вимкнено; увімкніть його, щоб надсилати підтвердження транскрипту назад до вихідного чату перед обробкою агентом.
|
||||
- `tools.media.audio.echoFormat` налаштовує текст такого відлуння (placeholder: `{transcript}`).
|
||||
- stdout CLI обмежено (5MB); робіть вивід CLI лаконічним.
|
||||
- У `args` CLI слід використовувати `{{MediaPath}}` для локального шляху до аудіофайлу. Запустіть `openclaw doctor --fix`, щоб перенести застарілі placeholder-и `{input}` зі старих конфігурацій `audio.transcription.command`.
|
||||
|
||||
### Підтримка змінних середовища проксі
|
||||
### Підтримка проксі через змінні середовища
|
||||
|
||||
Транскрипція аудіо через провайдера підтримує стандартні змінні середовища для вихідного проксі:
|
||||
Транскрибування аудіо через провайдера підтримує стандартні змінні середовища для вихідного проксі:
|
||||
|
||||
- `HTTPS_PROXY`
|
||||
- `HTTP_PROXY`
|
||||
- `ALL_PROXY`
|
||||
- `https_proxy`
|
||||
- `http_proxy`
|
||||
- `all_proxy`
|
||||
|
||||
Якщо змінні середовища проксі не задано, використовується прямий вихід. Якщо конфігурація проксі некоректна, OpenClaw записує попередження в лог і повертається до прямого отримання.
|
||||
Якщо змінні середовища проксі не задані, використовується прямий вихід у мережу. Якщо конфігурація проксі некоректна, OpenClaw записує попередження в журнал і повертається до прямого отримання.
|
||||
|
||||
## Виявлення згадок у групах
|
||||
|
||||
Коли для групового чату встановлено `requireMention: true`, OpenClaw тепер транскрибує аудіо **до** перевірки згадок. Це дає змогу обробляти голосові повідомлення, навіть якщо вони містять згадки.
|
||||
Коли для групового чату встановлено `requireMention: true`, OpenClaw тепер транскрибує аудіо **до** перевірки згадок. Це дозволяє обробляти голосові повідомлення, навіть якщо вони містять згадки.
|
||||
|
||||
**Як це працює:**
|
||||
|
||||
1. Якщо голосове повідомлення не має текстового body і для групи потрібні згадки, OpenClaw виконує “попередню” транскрипцію.
|
||||
2. Транскрипт перевіряється на шаблони згадок (наприклад, `@BotName`, тригери-емодзі).
|
||||
1. Якщо голосове повідомлення не має текстового тіла і для групи потрібні згадки, OpenClaw виконує "preflight" транскрибування.
|
||||
2. Транскрипт перевіряється на шаблони згадок (наприклад, `@BotName`, emoji-тригери).
|
||||
3. Якщо згадку знайдено, повідомлення проходить через повний конвеєр відповіді.
|
||||
4. Транскрипт використовується для виявлення згадок, тому голосові повідомлення можуть пройти перевірку на згадку.
|
||||
4. Транскрипт використовується для виявлення згадок, тож голосові повідомлення можуть пройти перевірку на згадку.
|
||||
|
||||
**Поведінка резервного варіанта:**
|
||||
**Поведінка запасного варіанту:**
|
||||
|
||||
- Якщо транскрипція під час попередньої перевірки зазнає невдачі (тайм-аут, помилка API тощо), повідомлення обробляється на основі виявлення згадок лише в тексті.
|
||||
- Це гарантує, що змішані повідомлення (текст + аудіо) ніколи не будуть помилково відкинуті.
|
||||
- Якщо транскрибування завершується помилкою під час preflight (тайм-аут, помилка API тощо), повідомлення обробляється на основі виявлення згадок лише за текстом.
|
||||
- Це гарантує, що змішані повідомлення (текст + аудіо) ніколи не буде помилково відкинуто.
|
||||
|
||||
**Вимкнення для окремої групи/теми Telegram:**
|
||||
**Вимкнення для конкретної Telegram групи/теми:**
|
||||
|
||||
- Встановіть `channels.telegram.groups.<chatId>.disableAudioPreflight: true`, щоб пропустити попередню перевірку згадок за транскриптом для цієї групи.
|
||||
- Встановіть `channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflight`, щоб перевизначити це для окремої теми (`true` — пропустити, `false` — примусово ввімкнути).
|
||||
- Типове значення — `false` (попередню перевірку ввімкнено, коли виконуються умови перевірки згадок).
|
||||
- Встановіть `channels.telegram.groups.<chatId>.disableAudioPreflight: true`, щоб пропустити preflight-перевірки згадок за транскриптом для цієї групи.
|
||||
- Встановіть `channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflight`, щоб перевизначити для конкретної теми (`true` — пропустити, `false` — примусово ввімкнути).
|
||||
- Типове значення — `false` (preflight увімкнений, коли збігаються умови перевірки згадок).
|
||||
|
||||
**Приклад:** Користувач надсилає голосове повідомлення зі словами "Hey @Claude, what's the weather?" у групі Telegram з `requireMention: true`. Голосове повідомлення транскрибується, згадка виявляється, і агент відповідає.
|
||||
|
||||
## Підводні камені
|
||||
|
||||
- Правила області працюють за принципом first-match wins. `chatType` нормалізується до `direct`, `group` або `room`.
|
||||
- Переконайтеся, що ваш CLI завершується з кодом 0 і виводить простий текст; JSON потрібно обробити, наприклад, через `jq -r .text`.
|
||||
- Для `parakeet-mlx`, якщо ви передаєте `--output-dir`, OpenClaw читає `<output-dir>/<media-basename>.txt`, коли `--output-format` дорівнює `txt` (або не вказано); формати виводу, відмінні від `txt`, повертаються до розбору stdout.
|
||||
- Для правил області дії діє принцип "перше збігання перемагає". `chatType` нормалізується до `direct`, `group` або `room`.
|
||||
- Переконайтеся, що ваш CLI завершується з кодом 0 і друкує звичайний текст; JSON потрібно перетворити через `jq -r .text`.
|
||||
- Для `parakeet-mlx`, якщо ви передаєте `--output-dir`, OpenClaw читає `<output-dir>/<media-basename>.txt`, коли `--output-format` дорівнює `txt` (або не заданий); формати виводу, відмінні від `txt`, повертаються до розбору stdout.
|
||||
- Тримайте тайм-аути розумними (`timeoutSeconds`, типово 60 с), щоб не блокувати чергу відповідей.
|
||||
- Попередня транскрипція обробляє лише **перше** аудіовкладення для виявлення згадок. Додаткове аудіо обробляється під час основної фази розуміння медіа.
|
||||
- Preflight-транскрибування обробляє лише **перше** аудіовкладення для виявлення згадок. Додаткове аудіо обробляється під час основної фази розуміння медіа.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Розуміння медіа](/uk/nodes/media-understanding)
|
||||
- [Режим розмови](/uk/nodes/talk)
|
||||
- [Голосове пробудження](/uk/nodes/voicewake)
|
||||
- [Голосова активація](/uk/nodes/voicewake)
|
||||
|
||||
@ -3,70 +3,70 @@ read_when:
|
||||
- Проєктування або рефакторинг розуміння медіа
|
||||
- Налаштування попередньої обробки вхідного аудіо/відео/зображень
|
||||
sidebarTitle: Media understanding
|
||||
summary: Вхідне розуміння зображень/аудіо/відео (необов’язково) з резервними варіантами через провайдера + CLI
|
||||
summary: Розуміння вхідних зображень/аудіо/відео (необов’язково) з резервними варіантами через провайдера та CLI
|
||||
title: Розуміння медіа
|
||||
x-i18n:
|
||||
generated_at: "2026-04-26T08:15:40Z"
|
||||
generated_at: "2026-04-27T14:47:50Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 25ee170a7af523fd2ce4f5f7764638f510b135f94a7796325daf1c3e04147f90
|
||||
source_hash: 79774578e0abb8b9646c5850d502e1a2f34b1f6f2253a5e6fec0983333d56009
|
||||
source_path: nodes/media-understanding.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
OpenClaw може **підсумовувати вхідні медіа** (зображення/аудіо/відео) до запуску конвеєра відповіді. Він автоматично визначає, коли доступні локальні інструменти або ключі провайдера, і може бути вимкнений або налаштований. Якщо розуміння вимкнене, моделі, як і раніше, отримують оригінальні файли/URL.
|
||||
OpenClaw може **підсумовувати вхідні медіа** (зображення/аудіо/відео) до запуску конвеєра відповіді. Він автоматично визначає, коли доступні локальні інструменти або ключі провайдера, і його можна вимкнути або налаштувати. Якщо розуміння вимкнене, моделі, як і раніше, отримують вихідні файли/URL.
|
||||
|
||||
Поведінка медіа, специфічна для постачальника, реєструється плагінами постачальників, тоді як ядро OpenClaw відповідає за спільну конфігурацію `tools.media`, порядок резервних варіантів і інтеграцію з конвеєром відповіді.
|
||||
Специфічна для постачальника поведінка медіа реєструється плагінами постачальників, тоді як ядро OpenClaw відповідає за спільну конфігурацію `tools.media`, порядок резервного переходу та інтеграцію з конвеєром відповіді.
|
||||
|
||||
## Цілі
|
||||
|
||||
- Необов’язково: попередньо зводити вхідні медіа до короткого тексту для швидшої маршрутизації та кращого розбору команд.
|
||||
- Зберігати доставку оригінальних медіа до моделі (завжди).
|
||||
- Підтримувати **API провайдерів** і **резервні варіанти CLI**.
|
||||
- Дозволяти кілька моделей з упорядкованим резервуванням (помилка/розмір/тайм-аут).
|
||||
- Завжди зберігати доставку оригінальних медіа до моделі.
|
||||
- Підтримувати **API провайдерів** і **резервні варіанти через CLI**.
|
||||
- Дозволяти кілька моделей з упорядкованим резервним переходом (помилка/розмір/тайм-аут).
|
||||
|
||||
## Поведінка на високому рівні
|
||||
|
||||
<Steps>
|
||||
<Step title="Збір вкладень">
|
||||
Збирає вхідні вкладення (`MediaPaths`, `MediaUrls`, `MediaTypes`).
|
||||
<Step title="Зібрати вкладення">
|
||||
Зібрати вхідні вкладення (`MediaPaths`, `MediaUrls`, `MediaTypes`).
|
||||
</Step>
|
||||
<Step title="Вибір за можливістю">
|
||||
Для кожної ввімкненої можливості (зображення/аудіо/відео) вибирає вкладення згідно з політикою (типово: **перше**).
|
||||
<Step title="Вибрати за можливістю">
|
||||
Для кожної ввімкненої можливості (зображення/аудіо/відео) вибрати вкладення згідно з політикою (типово: **перше**).
|
||||
</Step>
|
||||
<Step title="Вибір моделі">
|
||||
Вибирає перший придатний запис моделі (розмір + можливість + автентифікація).
|
||||
<Step title="Вибрати модель">
|
||||
Вибрати перший придатний запис моделі (розмір + можливість + автентифікація).
|
||||
</Step>
|
||||
<Step title="Резервний варіант у разі збою">
|
||||
Якщо модель завершується з помилкою або медіа надто велике, **переходить до наступного запису**.
|
||||
<Step title="Резервний перехід у разі збою">
|
||||
Якщо модель завершується з помилкою або медіа надто велике, **перейти до наступного запису**.
|
||||
</Step>
|
||||
<Step title="Застосування блоку успіху">
|
||||
<Step title="Застосувати блок успіху">
|
||||
У разі успіху:
|
||||
|
||||
- `Body` стає блоком `[Image]`, `[Audio]` або `[Video]`.
|
||||
- Для аудіо встановлюється `{{Transcript}}`; розбір команд використовує текст підпису, якщо він є, інакше — транскрипт.
|
||||
- Для аудіо задається `{{Transcript}}`; розбір команд використовує текст підпису, якщо він є, інакше — транскрипт.
|
||||
- Підписи зберігаються як `User text:` усередині блоку.
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Якщо розуміння завершується невдачею або вимкнене, **потік відповіді продовжується** з початковим тілом і вкладеннями.
|
||||
Якщо розуміння не вдається або вимкнене, **потік відповіді продовжується** з вихідним тілом + вкладеннями.
|
||||
|
||||
## Огляд конфігурації
|
||||
|
||||
`tools.media` підтримує **спільні моделі**, а також перевизначення для окремих можливостей:
|
||||
`tools.media` підтримує **спільні моделі** плюс перевизначення для кожної можливості:
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Ключі верхнього рівня">
|
||||
- `tools.media.models`: спільний список моделей (використовуйте `capabilities` для обмеження).
|
||||
- `tools.media.image` / `tools.media.audio` / `tools.media.video`:
|
||||
- типові значення (`prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`)
|
||||
- значення за замовчуванням (`prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`)
|
||||
- перевизначення провайдера (`baseUrl`, `headers`, `providerOptions`)
|
||||
- параметри аудіо Deepgram через `tools.media.audio.providerOptions.deepgram`
|
||||
- параметри відлуння аудіотранскрипту (`echoTranscript`, типово `false`; `echoFormat`)
|
||||
- необов’язковий список `models` **для окремої можливості** (має пріоритет над спільними моделями)
|
||||
- елементи керування відлунням транскрипту аудіо (`echoTranscript`, типово `false`; `echoFormat`)
|
||||
- необов’язковий список **`models` для конкретної можливості** (має пріоритет над спільними моделями)
|
||||
- політика `attachments` (`mode`, `maxAttachments`, `prefer`)
|
||||
- `scope` (необов’язкове обмеження за каналом/chatType/ключем сесії)
|
||||
- `scope` (необов’язкове обмеження за channel/chatType/session key)
|
||||
- `tools.media.concurrency`: максимальна кількість одночасних запусків можливостей (типово **2**).
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -143,9 +143,9 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Типові значення та обмеження
|
||||
## Значення за замовчуванням і обмеження
|
||||
|
||||
Рекомендовані типові значення:
|
||||
Рекомендовані значення за замовчуванням:
|
||||
|
||||
- `maxChars`: **500** для зображень/відео (коротко, зручно для команд)
|
||||
- `maxChars`: **не задано** для аудіо (повний транскрипт, якщо ви не встановите обмеження)
|
||||
@ -156,13 +156,13 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Правила">
|
||||
- Якщо медіа перевищує `maxBytes`, ця модель пропускається і **використовується наступна модель**.
|
||||
- Аудіофайли менші за **1024 байти** вважаються порожніми/пошкодженими й пропускаються до транскрибування через provider/CLI; вхідний контекст відповіді отримує детермінований заповнювач транскрипту, щоб агент знав, що нотатка була надто малою.
|
||||
- Якщо медіа перевищує `maxBytes`, цю модель буде пропущено, і **буде спробувано наступну модель**.
|
||||
- Аудіофайли менші за **1024 байти** вважаються порожніми/пошкодженими й пропускаються до транскрибування через provider/CLI; вхідний контекст відповіді отримує детермінований транскрипт-заповнювач, щоб агент знав, що нотатка була надто малою.
|
||||
- Якщо модель повертає більше ніж `maxChars`, вивід обрізається.
|
||||
- `prompt` типово дорівнює простому "Describe the {media}." плюс вказівка `maxChars` (лише для зображення/відео).
|
||||
- Якщо активна основна модель для зображень уже нативно підтримує vision, OpenClaw пропускає блок підсумку `[Image]` і натомість передає оригінальне зображення в модель.
|
||||
- Якщо основна модель Gateway/WebChat є лише текстовою, вкладення зображень зберігаються як винесені посилання `media://inbound/*`, щоб інструменти зображень/PDF або налаштована модель зображень усе ще могли їх перевірити замість втрати вкладення.
|
||||
- Явні запити `openclaw infer image describe --model <provider/model>` відрізняються: вони напряму запускають вказану provider/model із підтримкою зображень, включно з посиланнями Ollama, такими як `ollama/qwen2.5vl:7b`.
|
||||
- `prompt` типово дорівнює простому "Describe the {media}." плюс вказівка `maxChars` (лише для зображень/відео).
|
||||
- Якщо активна основна модель зображень уже нативно підтримує vision, OpenClaw пропускає блок підсумку `[Image]` і натомість передає оригінальне зображення безпосередньо моделі.
|
||||
- Якщо основна модель Gateway/WebChat є лише текстовою, вкладення зображень зберігаються як виносні посилання `media://inbound/*`, щоб інструменти зображень/PDF або налаштована модель зображень усе ще могли їх перевіряти, а вкладення не втрачалося.
|
||||
- Явні запити `openclaw infer image describe --model <provider/model>` відрізняються: вони запускають вказаний provider/model із підтримкою зображень напряму, зокрема посилання Ollama, як-от `ollama/qwen2.5vl:7b`.
|
||||
- Якщо `<capability>.enabled: true`, але моделі не налаштовані, OpenClaw пробує **активну модель відповіді**, якщо її провайдер підтримує цю можливість.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -176,10 +176,10 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
Активна модель відповіді, якщо її провайдер підтримує цю можливість.
|
||||
</Step>
|
||||
<Step title="agents.defaults.imageModel">
|
||||
Основні/резервні посилання `agents.defaults.imageModel` (лише для зображень).
|
||||
Основні/резервні посилання `agents.defaults.imageModel` (лише зображення).
|
||||
</Step>
|
||||
<Step title="Локальні CLI (лише аудіо)">
|
||||
Локальні CLI (якщо встановлені):
|
||||
Локальні CLI (якщо встановлено):
|
||||
|
||||
- `sherpa-onnx-offline` (потребує `SHERPA_ONNX_MODEL_DIR` з encoder/decoder/joiner/tokens)
|
||||
- `whisper-cli` (`whisper-cpp`; використовує `WHISPER_CPP_MODEL` або вбудовану tiny model)
|
||||
@ -187,14 +187,14 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
|
||||
</Step>
|
||||
<Step title="Gemini CLI">
|
||||
`gemini` з `read_many_files`.
|
||||
`gemini` з використанням `read_many_files`.
|
||||
</Step>
|
||||
<Step title="Автентифікація провайдера">
|
||||
- Налаштовані записи `models.providers.*`, які підтримують цю можливість, пробуються до вбудованого порядку резервування.
|
||||
- Налаштовані записи `models.providers.*`, які підтримують цю можливість, пробуються до вбудованого порядку резервного переходу.
|
||||
- Провайдери конфігурації лише для зображень із моделлю, що підтримує зображення, автоматично реєструються для розуміння медіа, навіть якщо вони не є вбудованим плагіном постачальника.
|
||||
- Розуміння зображень Ollama доступне за явного вибору, наприклад через `agents.defaults.imageModel` або `openclaw infer image describe --model ollama/<vision-model>`.
|
||||
|
||||
Вбудований порядок резервування:
|
||||
Вбудований порядок резервного переходу:
|
||||
|
||||
- Аудіо: OpenAI → Groq → xAI → Deepgram → Google → SenseAudio → ElevenLabs → Mistral
|
||||
- Зображення: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI
|
||||
@ -203,7 +203,7 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Щоб вимкнути автовизначення, встановіть:
|
||||
Щоб вимкнути автовизначення, задайте:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -218,71 +218,73 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
```
|
||||
|
||||
<Note>
|
||||
Визначення двійкових файлів виконується за принципом best-effort у macOS/Linux/Windows; переконайтеся, що CLI є в `PATH` (ми розгортаємо `~`), або задайте явну CLI-модель із повним шляхом до команди.
|
||||
Виявлення бінарних файлів виконується за принципом best-effort у macOS/Linux/Windows; переконайтеся, що CLI є в `PATH` (ми розгортаємо `~`), або задайте явну модель CLI з повним шляхом до команди.
|
||||
</Note>
|
||||
|
||||
### Підтримка проксі-середовища (моделі provider)
|
||||
|
||||
Коли ввімкнено розуміння медіа **audio** та **video** на основі provider, OpenClaw враховує стандартні змінні середовища вихідного проксі для HTTP-викликів до провайдера:
|
||||
Коли ввімкнено розуміння медіа **audio** і **video** на основі провайдера, OpenClaw враховує стандартні змінні середовища вихідного проксі для HTTP-викликів провайдера:
|
||||
|
||||
- `HTTPS_PROXY`
|
||||
- `HTTP_PROXY`
|
||||
- `ALL_PROXY`
|
||||
- `https_proxy`
|
||||
- `http_proxy`
|
||||
- `all_proxy`
|
||||
|
||||
Якщо жодні змінні середовища проксі не встановлені, розуміння медіа використовує прямий вихідний трафік. Якщо значення проксі некоректне, OpenClaw записує попередження в журнал і повертається до прямого отримання.
|
||||
Якщо змінні середовища проксі не задані, розуміння медіа використовує прямий вихідний трафік. Якщо значення проксі некоректне, OpenClaw записує попередження в журнал і повертається до прямого отримання.
|
||||
|
||||
## Можливості (необов’язково)
|
||||
|
||||
Якщо ви встановите `capabilities`, запис виконуватиметься лише для цих типів медіа. Для спільних списків OpenClaw може вивести типові значення:
|
||||
Якщо ви задаєте `capabilities`, запис запускається лише для цих типів медіа. Для спільних списків OpenClaw може визначати типові значення:
|
||||
|
||||
- `openai`, `anthropic`, `minimax`: **image**
|
||||
- `minimax-portal`: **image**
|
||||
- `moonshot`: **image + video**
|
||||
- `openrouter`: **image**
|
||||
- `google` (Gemini API): **image + audio + video**
|
||||
- `qwen`: **image + video**
|
||||
- `mistral`: **audio**
|
||||
- `zai`: **image**
|
||||
- `groq`: **audio**
|
||||
- `xai`: **audio**
|
||||
- `deepgram`: **audio**
|
||||
- Будь-який каталог `models.providers.<id>.models[]` із моделлю, що підтримує зображення: **image**
|
||||
- `openai`, `anthropic`, `minimax`: **зображення**
|
||||
- `minimax-portal`: **зображення**
|
||||
- `moonshot`: **зображення + відео**
|
||||
- `openrouter`: **зображення**
|
||||
- `google` (Gemini API): **зображення + аудіо + відео**
|
||||
- `qwen`: **зображення + відео**
|
||||
- `mistral`: **аудіо**
|
||||
- `zai`: **зображення**
|
||||
- `groq`: **аудіо**
|
||||
- `xai`: **аудіо**
|
||||
- `deepgram`: **аудіо**
|
||||
- Будь-який каталог `models.providers.<id>.models[]` із моделлю, що підтримує зображення: **зображення**
|
||||
|
||||
Для записів CLI **явно задавайте `capabilities`**, щоб уникнути неочікуваних збігів. Якщо ви не вкажете `capabilities`, запис придатний для списку, у якому він знаходиться.
|
||||
Для записів CLI **задавайте `capabilities` явно**, щоб уникнути неочікуваних збігів. Якщо ви не задаєте `capabilities`, запис придатний для списку, у якому він з’являється.
|
||||
|
||||
## Матриця підтримки provider (інтеграції OpenClaw)
|
||||
## Матриця підтримки провайдерів (інтеграції OpenClaw)
|
||||
|
||||
| Можливість | Інтеграція provider | Примітки |
|
||||
| ---------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Зображення | OpenAI, OpenAI Codex OAuth, Codex app-server, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | Плагіни постачальників реєструють підтримку зображень; `openai-codex/*` використовує механіку OAuth-провайдера; `codex/*` використовує обмежений хід Codex app-server; MiniMax і MiniMax OAuth обидва використовують `MiniMax-VL-01`; config providers із підтримкою зображень реєструються автоматично. |
|
||||
| Аудіо | OpenAI, Groq, xAI, Deepgram, Google, SenseAudio, ElevenLabs, Mistral | Транскрибування через provider (Whisper/Groq/xAI/Deepgram/Gemini/SenseAudio/Scribe/Voxtral). |
|
||||
| Відео | Google, Qwen, Moonshot | Розуміння відео через provider за допомогою плагінів постачальників; розуміння відео Qwen використовує стандартні кінцеві точки DashScope. |
|
||||
| Можливість | Інтеграція провайдера | Примітки |
|
||||
| ---------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Зображення | OpenAI, OpenAI Codex OAuth, Codex app-server, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | Плагіни постачальників реєструють підтримку зображень; `openai-codex/*` використовує механізм OAuth-провайдера; `codex/*` використовує обмежений хід Codex app-server; і MiniMax, і MiniMax OAuth використовують `MiniMax-VL-01`; провайдери конфігурації з підтримкою зображень автоматично реєструються. |
|
||||
| Аудіо | OpenAI, Groq, xAI, Deepgram, Google, SenseAudio, ElevenLabs, Mistral | Транскрибування провайдером (Whisper/Groq/xAI/Deepgram/Gemini/SenseAudio/Scribe/Voxtral). |
|
||||
| Відео | Google, Qwen, Moonshot | Розуміння відео провайдером через плагіни постачальників; розуміння відео Qwen використовує стандартні кінцеві точки DashScope. |
|
||||
|
||||
<Note>
|
||||
**Примітка щодо MiniMax**
|
||||
|
||||
- Розуміння зображень `minimax` і `minimax-portal` походить від провайдера медіа `MiniMax-VL-01`, що належить плагіну.
|
||||
- Вбудований текстовий каталог MiniMax усе ще починається як лише текстовий; явні записи `models.providers.minimax` матеріалізують чат-посилання M2.7 із підтримкою зображень.
|
||||
- Розуміння зображень `minimax` і `minimax-portal` надається через медіапровайдера `MiniMax-VL-01`, що належить плагіну.
|
||||
- Вбудований текстовий каталог MiniMax усе ще починається лише з текстового режиму; явні записи `models.providers.minimax` матеріалізують посилання чату M2.7 із підтримкою зображень.
|
||||
</Note>
|
||||
|
||||
## Рекомендації щодо вибору моделі
|
||||
## Вказівки щодо вибору моделей
|
||||
|
||||
- Віддавайте перевагу найсильнішій доступній моделі останнього покоління для кожної медіаможливості, коли важливі якість і безпека.
|
||||
- Для агентів з увімкненими інструментами, що обробляють недовірені вхідні дані, уникайте старіших/слабших медіамоделей.
|
||||
- Зберігайте принаймні один резервний варіант на можливість для доступності (якісна модель + швидша/дешевша модель).
|
||||
- Надавайте перевагу найсильнішій моделі останнього покоління, доступній для кожної медіаможливості, коли важливі якість і безпека.
|
||||
- Для агентів з увімкненими інструментами, які працюють із недовіреними вхідними даними, уникайте старіших/слабших медіамоделей.
|
||||
- Тримайте щонайменше один резервний варіант для кожної можливості для доступності (якісна модель + швидша/дешевша модель).
|
||||
- Резервні варіанти CLI (`whisper-cli`, `whisper`, `gemini`) корисні, коли API провайдерів недоступні.
|
||||
- Примітка щодо `parakeet-mlx`: з `--output-dir` OpenClaw читає `<output-dir>/<media-basename>.txt`, коли формат виводу — `txt` (або не вказаний); формати, відмінні від `txt`, повертаються до stdout.
|
||||
- Примітка щодо `parakeet-mlx`: із `--output-dir` OpenClaw читає `<output-dir>/<media-basename>.txt`, коли формат виводу — `txt` (або не заданий); для форматів, відмінних від `txt`, використовується резервний вивід у stdout.
|
||||
|
||||
## Політика вкладень
|
||||
|
||||
Параметр `attachments` для окремої можливості керує тим, які вкладення обробляються:
|
||||
`attachments` для конкретної можливості керує тим, які вкладення обробляються:
|
||||
|
||||
<ParamField path="mode" type='"first" | "all"' default="first">
|
||||
Чи обробляти перше вибране вкладення або всі.
|
||||
Чи обробляти перше вибране вкладення, чи всі.
|
||||
</ParamField>
|
||||
<ParamField path="maxAttachments" type="number" default="1">
|
||||
Обмежує кількість оброблених вкладень.
|
||||
Обмежує кількість оброблюваних.
|
||||
</ParamField>
|
||||
<ParamField path="prefer" type='"first" | "last" | "path" | "url"'>
|
||||
Перевага вибору серед кандидатів на вкладення.
|
||||
@ -291,12 +293,12 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
Коли `mode: "all"`, результати позначаються як `[Image 1/2]`, `[Audio 2/2]` тощо.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Поведінка вилучення тексту з файлових вкладень">
|
||||
- Вилучений текст файла обгортається як **недовірений зовнішній вміст** перед додаванням до запиту медіа.
|
||||
- Вставлений блок використовує явні маркери меж, такі як `<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>` / `<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>`, і містить рядок метаданих `Source: External`.
|
||||
- Цей шлях вилучення з вкладень навмисно не містить довгий банер `SECURITY NOTICE:`, щоб уникнути роздуття запиту медіа; маркери меж і метадані при цьому зберігаються.
|
||||
<Accordion title="Поведінка вилучення вкладених файлів">
|
||||
- Вилучений текст файлу обгортається як **ненадійний зовнішній вміст** перед додаванням до медіапідказки.
|
||||
- Вставлений блок використовує явні маркери меж, як-от `<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>` / `<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>`, і містить рядок метаданих `Source: External`.
|
||||
- Цей шлях вилучення вкладень навмисно не включає довгий банер `SECURITY NOTICE:`, щоб не роздувати медіапідказку; маркери меж і метадані при цьому все одно зберігаються.
|
||||
- Якщо файл не має тексту, який можна вилучити, OpenClaw вставляє `[No extractable text]`.
|
||||
- Якщо PDF у цьому шляху повертається до відрендерених зображень сторінок, запит медіа зберігає заповнювач `[PDF content rendered to images; images not forwarded to model]`, оскільки цей крок вилучення з вкладень передає текстові блоки, а не відрендерені зображення PDF.
|
||||
- Якщо PDF у цьому шляху переходить до резервного рендерингу сторінок у зображення, медіапідказка зберігає заповнювач `[PDF content rendered to images; images not forwarded to model]`, оскільки цей крок вилучення вкладень передає текстові блоки, а не відрендерені зображення PDF.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -408,7 +410,7 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
}
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Мультимодальний одиночний запис">
|
||||
<Tab title="Однозаписовий мультимодальний варіант">
|
||||
```json5
|
||||
{
|
||||
tools: {
|
||||
@ -449,19 +451,19 @@ OpenClaw може **підсумовувати вхідні медіа** (зоб
|
||||
|
||||
## Вивід стану
|
||||
|
||||
Коли розуміння медіа виконується, `/status` містить короткий підсумковий рядок:
|
||||
Коли працює розуміння медіа, `/status` містить короткий підсумковий рядок:
|
||||
|
||||
```
|
||||
📎 Media: image ok (openai/gpt-5.4) · audio skipped (maxBytes)
|
||||
```
|
||||
|
||||
Це показує результати для кожної можливості та вибрані provider/model, коли це застосовно.
|
||||
Тут показано результати для кожної можливості та вибраний provider/model, де це доречно.
|
||||
|
||||
## Примітки
|
||||
|
||||
- Розуміння виконується за принципом **best-effort**. Помилки не блокують відповіді.
|
||||
- Розуміння працює за принципом **best-effort**. Помилки не блокують відповіді.
|
||||
- Вкладення все одно передаються моделям, навіть коли розуміння вимкнене.
|
||||
- Використовуйте `scope`, щоб обмежити, де запускається розуміння (наприклад, лише в приватних повідомленнях).
|
||||
- Використовуйте `scope`, щоб обмежити місця, де працює розуміння (наприклад, лише приватні повідомлення).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user