chore(i18n): refresh uk translations
This commit is contained in:
parent
249bf36895
commit
db3e009e5e
File diff suppressed because it is too large
Load Diff
@ -2,45 +2,45 @@
|
||||
read_when:
|
||||
- Ви підтримуєте OpenClaw Plugin
|
||||
- Ви бачите попередження про сумісність Plugin
|
||||
- Ви плануєте міграцію SDK Plugin або маніфесту
|
||||
summary: Контракти сумісності Plugin, метадані про застарівання та очікування щодо міграції
|
||||
- Ви плануєте міграцію SDK для Plugin або маніфесту
|
||||
summary: Контракти сумісності Plugin, метадані застарівання та очікування щодо міграції
|
||||
title: Сумісність Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-04-28T11:18:59Z"
|
||||
generated_at: "2026-05-01T22:03:46Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 344dbaac86db7259adc09bc91b7fbe7ba540fc6fdd96cc422918ccf2c34d9cec
|
||||
source_hash: eecf94743cf34c5b773bfa8066164f90b7c8a75667c43f3f1002d32ec1d04902
|
||||
source_path: plugins/compatibility.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
OpenClaw зберігає старіші контракти plugin підключеними через іменовані адаптери сумісності перед їх видаленням. Це захищає наявні вбудовані та зовнішні plugins, поки контракти SDK, маніфесту, налаштування, конфігурації та runtime агентів еволюціонують.
|
||||
OpenClaw зберігає старіші контракти плагінів під’єднаними через іменовані адаптери сумісності перед їх видаленням. Це захищає наявні вбудовані та зовнішні плагіни, поки розвиваються контракти SDK, маніфесту, налаштування, конфігурації та середовища виконання агента.
|
||||
|
||||
## Реєстр сумісності
|
||||
|
||||
Контракти сумісності plugin відстежуються в основному реєстрі за адресою
|
||||
Контракти сумісності плагінів відстежуються в основному реєстрі за адресою
|
||||
`src/plugins/compat/registry.ts`.
|
||||
|
||||
Кожен запис має:
|
||||
|
||||
- стабільний код сумісності
|
||||
- статус: `active`, `deprecated`, `removal-pending` або `removed`
|
||||
- власник: SDK, конфігурація, налаштування, канал, провайдер, виконання plugin, runtime агента
|
||||
- власника: SDK, конфігурація, налаштування, канал, провайдер, виконання плагіна, середовище виконання агента
|
||||
або ядро
|
||||
- дати впровадження та застарівання, коли застосовно
|
||||
- дати запровадження та виведення з ужитку, коли застосовно
|
||||
- рекомендації щодо заміни
|
||||
- документація, діагностика та тести, які охоплюють стару й нову поведінку
|
||||
- документацію, діагностику та тести, які покривають стару й нову поведінку
|
||||
|
||||
Реєстр є джерелом для планування супроводу та майбутніх перевірок інспектора plugin. Якщо поведінка, видима для plugin, змінюється, додайте або оновіть запис сумісності в тій самій зміні, яка додає адаптер.
|
||||
Реєстр є джерелом для планування супроводу та майбутніх перевірок інспектора плагінів. Якщо поведінка, видима плагінам, змінюється, додайте або оновіть запис сумісності в тій самій зміні, яка додає адаптер.
|
||||
|
||||
Сумісність виправлень Doctor і міграцій відстежується окремо за адресою
|
||||
`src/commands/doctor/shared/deprecation-compat.ts`. Ці записи охоплюють старі форми конфігурації, макети журналу встановлень і допоміжні модулі виправлення, які можуть потребувати збереження доступності після видалення runtime-шляху сумісності.
|
||||
`src/commands/doctor/shared/deprecation-compat.ts`. Ці записи покривають старі форми конфігурації, структури журналу встановлень і сумісні прошарки для виправлень, які можуть мати залишатися доступними після видалення шляху сумісності середовища виконання.
|
||||
|
||||
Релізні перевірки мають перевіряти обидва реєстри. Не видаляйте міграцію Doctor лише тому, що відповідний runtime-запис або запис сумісності конфігурації завершився; спочатку перевірте, що немає підтримуваного шляху оновлення, якому все ще потрібне виправлення. Також повторно перевіряйте кожну анотацію заміни під час планування релізу, оскільки володіння plugin і конфігураційний footprint можуть змінюватися, коли провайдери та канали переміщуються з ядра.
|
||||
Релізні перевірки мають перевіряти обидва реєстри. Не видаляйте міграцію Doctor лише тому, що відповідний запис сумісності середовища виконання або конфігурації застарів; спершу переконайтеся, що немає підтримуваного шляху оновлення, якому досі потрібне це виправлення. Також повторно перевіряйте кожну анотацію заміни під час планування релізу, бо власність плагінів і конфігураційний слід можуть змінюватися, коли провайдери та канали переміщуються з ядра.
|
||||
|
||||
## Пакет інспектора plugin
|
||||
## Пакет інспектора плагінів
|
||||
|
||||
Інспектор plugin має жити поза основним репозиторієм OpenClaw як окремий пакет/репозиторій, що спирається на версіоновані контракти сумісності та маніфесту.
|
||||
Інспектор плагінів має жити поза основним репозиторієм OpenClaw як окремий пакет/репозиторій, що спирається на версіоновані контракти сумісності та маніфесту.
|
||||
|
||||
CLI першого дня має бути:
|
||||
|
||||
@ -50,17 +50,17 @@ openclaw-plugin-inspector ./my-plugin
|
||||
|
||||
Він має виводити:
|
||||
|
||||
- перевірку маніфесту/схеми
|
||||
- валідацію маніфесту/схеми
|
||||
- версію сумісності контракту, що перевіряється
|
||||
- перевірки метаданих встановлення/джерела
|
||||
- перевірки імпортів холодного шляху
|
||||
- попередження про застарівання та сумісність
|
||||
- попередження про виведення з ужитку та сумісність
|
||||
|
||||
Використовуйте `--json` для стабільного машинозчитуваного виводу в анотаціях CI. Ядро OpenClaw має надавати контракти й фікстури, які інспектор може споживати, але не має публікувати бінарник інспектора з основного пакета `openclaw`.
|
||||
Використовуйте `--json` для стабільного машинозчитуваного виводу в анотаціях CI. Ядро OpenClaw має надавати контракти й фікстури, які може споживати інспектор, але не має публікувати двійковий файл інспектора з основного пакета `openclaw`.
|
||||
|
||||
### Смуга приймання для супровідників
|
||||
### Лінія приймання для супровідників
|
||||
|
||||
Використовуйте Blacksmith Testbox для смуги приймання встановлюваного пакета під час перевірки зовнішнього інспектора на пакетах plugin OpenClaw. Запускайте його з чистого checkout OpenClaw після збирання пакета:
|
||||
Використовуйте Blacksmith Testbox для лінії приймання встановлюваного пакета під час валідації зовнішнього інспектора з пакетами плагінів OpenClaw. Запускайте її з чистого checkout OpenClaw після збирання пакета:
|
||||
|
||||
```sh
|
||||
blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90
|
||||
@ -70,21 +70,21 @@ blacksmith testbox run --id <tbx_id> "npm exec --yes @openclaw/plugin-inspector@
|
||||
blacksmith testbox stop <tbx_id>
|
||||
```
|
||||
|
||||
Залишайте цю смугу opt-in для супровідників, оскільки вона встановлює зовнішній npm-пакет і може перевіряти пакети plugin, клоновані поза репозиторієм. Локальні захисти репозиторію охоплюють мапу експорту SDK, метадані реєстру сумісності, скорочення застарілих імпортів SDK і межі імпортів вбудованих extensions; доказ інспектора в Testbox охоплює пакет так, як його споживають автори зовнішніх plugin.
|
||||
Залишайте цю лінію опційною для супровідників, бо вона встановлює зовнішній npm-пакет і може перевіряти пакети плагінів, клоновані поза репозиторієм. Локальні запобіжники репозиторію покривають мапу експорту SDK, метадані реєстру сумісності, скорочення застарілих SDK-імпортів і межі імпорту вбудованих розширень; підтвердження інспектора в Testbox покриває пакет так, як його споживають автори зовнішніх плагінів.
|
||||
|
||||
## Політика застарівання
|
||||
## Політика виведення з ужитку
|
||||
|
||||
OpenClaw не має видаляти задокументований контракт plugin у тому самому релізі, який вводить його заміну.
|
||||
OpenClaw не має видаляти задокументований контракт плагіна в тому самому релізі, який вводить його заміну.
|
||||
|
||||
Послідовність міграції:
|
||||
Послідовність міграції така:
|
||||
|
||||
1. Додайте новий контракт.
|
||||
2. Залиште стару поведінку підключеною через іменований адаптер сумісності.
|
||||
3. Виводьте діагностику або попередження, коли автори plugin можуть діяти.
|
||||
4. Задокументуйте заміну та timeline.
|
||||
5. Тестуйте старий і новий шляхи.
|
||||
6. Зачекайте протягом оголошеного вікна міграції.
|
||||
7. Видаляйте лише з явним схваленням breaking-релізу.
|
||||
2. Залиште стару поведінку під’єднаною через іменований адаптер сумісності.
|
||||
3. Виводьте діагностику або попередження, коли автори плагінів можуть діяти.
|
||||
4. Задокументуйте заміну й графік.
|
||||
5. Протестуйте старий і новий шляхи.
|
||||
6. Дочекайтеся завершення оголошеного вікна міграції.
|
||||
7. Видаляйте лише з явним схваленням для релізу з несумісними змінами.
|
||||
|
||||
Застарілі записи мають містити дату початку попереджень, заміну, посилання на документацію та фінальну дату видалення не пізніше ніж через три місяці після початку попереджень. Не додавайте застарілий шлях сумісності з відкритим вікном видалення, якщо супровідники явно не вирішили, що це постійна сумісність, і не позначили його як `active`.
|
||||
|
||||
@ -92,52 +92,49 @@ OpenClaw не має видаляти задокументований конт
|
||||
|
||||
Поточні записи сумісності включають:
|
||||
|
||||
- застарілі широкі імпорти SDK, такі як `openclaw/plugin-sdk/compat`
|
||||
- застарілі форми plugin лише з хуками та `before_agent_start`
|
||||
- застарілі entrypoints plugin `activate(api)`, поки plugins мігрують на
|
||||
- старі широкі імпорти SDK, як-от `openclaw/plugin-sdk/compat`
|
||||
- старі форми плагінів лише з hooks і `before_agent_start`
|
||||
- старі точки входу плагінів `activate(api)`, поки плагіни мігрують на
|
||||
`register(api)`
|
||||
- застарілі псевдоніми SDK, такі як `openclaw/extension-api`,
|
||||
`openclaw/plugin-sdk/channel-runtime`, білдери статусів `openclaw/plugin-sdk/command-auth`,
|
||||
`openclaw/plugin-sdk/test-utils` (замінено на сфокусовані тестові підшляхи
|
||||
- старі псевдоніми SDK, як-от `openclaw/extension-api`,
|
||||
`openclaw/plugin-sdk/channel-runtime`, побудовники статусу `openclaw/plugin-sdk/command-auth`,
|
||||
`openclaw/plugin-sdk/test-utils` (замінено цільовими тестовими підшляхами
|
||||
`openclaw/plugin-sdk/*`) і псевдоніми типів `ClawdbotConfig` /
|
||||
`OpenClawSchemaType`
|
||||
- allowlist вбудованих plugin і поведінку ввімкнення
|
||||
- застарілі метадані маніфесту env-var провайдерів/каналів
|
||||
- застарілі хуки plugin провайдерів і псевдоніми типів, поки провайдери переходять на
|
||||
явні хуки каталогу, авторизації, thinking, replay і транспорту
|
||||
- застарілі runtime-псевдоніми, такі як `api.runtime.taskFlow`,
|
||||
- allowlist вбудованих плагінів і поведінку ввімкнення
|
||||
- старі метадані маніфесту env-var для провайдерів/каналів
|
||||
- старі hooks плагінів провайдерів і псевдоніми типів, поки провайдери переходять на
|
||||
явні hooks каталогу, автентифікації, thinking, replay і транспорту
|
||||
- старі псевдоніми середовища виконання, як-от `api.runtime.taskFlow`,
|
||||
`api.runtime.subagent.getSession`, `api.runtime.stt` і застарілі
|
||||
`api.runtime.config.loadConfig()` / `api.runtime.config.writeConfigFile(...)`
|
||||
- застарілу розділену реєстрацію memory-plugin, поки memory plugins переходять на
|
||||
- стару розділену реєстрацію memory-плагінів, поки memory-плагіни переходять на
|
||||
`registerMemoryCapability`
|
||||
- застарілі допоміжні модулі SDK каналу для нативних схем повідомлень, mention gating,
|
||||
форматування вхідного envelope і вкладення approval capability
|
||||
- застарілі псевдоніми ключа маршруту каналу та helper для comparable-target, поки plugins
|
||||
- старі допоміжні засоби SDK каналів для нативних схем повідомлень, обмеження mentions,
|
||||
форматування вхідного конверта та вкладення можливостей схвалення
|
||||
- старий ключ маршруту каналу та псевдоніми допоміжних засобів comparable-target, поки плагіни
|
||||
переходять на `openclaw/plugin-sdk/channel-route`
|
||||
- activation hints, які замінюються володінням внесками маніфесту
|
||||
- застаріле неявне завантаження sidecar під час старту для plugins, які не оголосили
|
||||
`activation.onStartup`; супровідники можуть тестувати майбутню суворішу поведінку з
|
||||
`OPENCLAW_DISABLE_LEGACY_IMPLICIT_STARTUP_SIDECARS=1`
|
||||
- runtime fallback `setup-api`, поки дескриптори налаштування переходять на холодні
|
||||
- підказки активації, які замінюються власністю внесків маніфесту
|
||||
- fallback середовища виконання `setup-api`, поки дескриптори налаштування переходять на холодні
|
||||
метадані `setup.requiresRuntime: false`
|
||||
- хуки `discovery` провайдера, поки хуки каталогу провайдера переходять на
|
||||
- hooks `discovery` провайдерів, поки hooks каталогу провайдерів переходять на
|
||||
`catalog.run(...)`
|
||||
- метадані каналу `showConfigured` / `showInSetup`, поки пакети каналів переходять
|
||||
- метадані каналів `showConfigured` / `showInSetup`, поки пакети каналів переходять
|
||||
на `openclaw.channel.exposure`
|
||||
- застарілі ключі конфігурації runtime-policy, поки Doctor мігрує операторів на
|
||||
- старі ключі конфігурації runtime-policy, поки Doctor мігрує операторів на
|
||||
`agentRuntime`
|
||||
- fallback згенерованих метаданих конфігурації вбудованого каналу, поки впроваджуються registry-first
|
||||
- fallback згенерованих метаданих конфігурації вбудованих каналів, поки з’являються registry-first
|
||||
метадані `channelConfigs`
|
||||
- збережені env-прапорці вимкнення реєстру plugin і install-migration, поки
|
||||
- збережені env-прапори вимкнення реєстру плагінів і міграції встановлень, поки
|
||||
потоки виправлення мігрують операторів на `openclaw plugins registry --refresh` і
|
||||
`openclaw doctor --fix`
|
||||
- застарілі шляхи конфігурації вебпошуку, web fetch і x_search, якими володіє plugin, поки
|
||||
Doctor мігрує їх до `plugins.entries.<plugin>.config`
|
||||
- застарілу створену автором конфігурацію `plugins.installs` і псевдоніми load-path вбудованих plugin,
|
||||
поки метадані встановлення переходять у керований станом журнал plugin
|
||||
- старі шляхи конфігурації вебпошуку, веботримання та x_search, що належать плагінам, поки
|
||||
Doctor мігрує їх у `plugins.entries.<plugin>.config`
|
||||
- старі авторські конфігурації `plugins.installs` і псевдоніми шляхів завантаження вбудованих плагінів,
|
||||
поки метадані встановлення переміщуються в керований станом журнал плагінів
|
||||
|
||||
Новий код plugin має надавати перевагу заміні, зазначеній у реєстрі та в конкретному посібнику з міграції. Наявні plugins можуть продовжувати використовувати шлях сумісності, доки документація, діагностика та примітки до релізу не оголосять вікно видалення.
|
||||
Новий код плагінів має віддавати перевагу заміні, зазначеній у реєстрі та в конкретному посібнику з міграції. Наявні плагіни можуть продовжувати використовувати шлях сумісності, доки документація, діагностика та нотатки до релізу не оголосять вікно видалення.
|
||||
|
||||
## Примітки до релізу
|
||||
## Нотатки до релізу
|
||||
|
||||
Примітки до релізу мають включати майбутні застарівання plugin із цільовими датами та посиланнями на документацію з міграції. Це попередження має відбутися до того, як шлях сумісності перейде до `removal-pending` або `removed`.
|
||||
Нотатки до релізу мають включати майбутні виведення з ужитку для плагінів із цільовими датами та посиланнями на документацію з міграції. Це попередження має з’явитися до того, як шлях сумісності перейде в `removal-pending` або `removed`.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,102 +1,84 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете використовувати моделі OpenAI в OpenClaw
|
||||
- Вам потрібна автентифікація через підписку Codex замість ключів API
|
||||
- Вам потрібна автентифікація через передплату Codex замість API-ключів
|
||||
- Вам потрібна суворіша поведінка виконання агента GPT-5
|
||||
summary: Використовуйте OpenAI через ключі API або підписку Codex в OpenClaw
|
||||
summary: Використовуйте OpenAI через ключі API або передплату Codex в OpenClaw
|
||||
title: OpenAI
|
||||
x-i18n:
|
||||
generated_at: "2026-04-30T13:51:27Z"
|
||||
generated_at: "2026-05-01T22:03:36Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 7e113f2418f82a8859f208f85efb55114bda7bc17beeb28f012b19e861609dad
|
||||
source_hash: bd9a8f05d31800354307c6fd7beb8cd1eed3d234e5c1e939e895cd99658b540b
|
||||
source_path: providers/openai.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
OpenAI надає API для розробників для моделей GPT, а Codex також доступний як
|
||||
агент для програмування в межах плану ChatGPT через клієнти Codex від OpenAI. OpenClaw тримає ці
|
||||
поверхні окремо, щоб конфігурація залишалася передбачуваною.
|
||||
OpenAI надає developer API для моделей GPT, а Codex також доступний як агент для програмування в плані ChatGPT через клієнти Codex від OpenAI. OpenClaw тримає ці поверхні окремо, щоб конфігурація залишалася передбачуваною.
|
||||
|
||||
OpenClaw підтримує три маршрути сімейства OpenAI. Префікс моделі вибирає
|
||||
маршрут провайдера/автентифікації; окреме налаштування середовища виконання вибирає, хто виконує
|
||||
вбудований цикл агента:
|
||||
OpenClaw підтримує три маршрути сімейства OpenAI. Префікс моделі вибирає маршрут провайдера/автентифікації; окреме налаштування runtime вибирає, хто виконує вбудований цикл агента:
|
||||
|
||||
- **Ключ API** — прямий доступ до OpenAI Platform з оплатою за використання (моделі `openai/*`)
|
||||
- **Підписка Codex через PI** — вхід ChatGPT/Codex із доступом за підпискою (моделі `openai-codex/*`)
|
||||
- **Оснастка app-server Codex** — нативне виконання app-server Codex (моделі `openai/*` плюс `agents.defaults.agentRuntime.id: "codex"`)
|
||||
- **Підписка Codex через PI** — вхід ChatGPT/Codex з доступом за підпискою (моделі `openai-codex/*`)
|
||||
- **Обв’язка Codex app-server** — нативне виконання Codex app-server (моделі `openai/*` плюс `agents.defaults.agentRuntime.id: "codex"`)
|
||||
|
||||
OpenAI явно підтримує використання OAuth підписки в зовнішніх інструментах і робочих процесах, таких як OpenClaw.
|
||||
OpenAI явно підтримує використання OAuth за підпискою в зовнішніх інструментах і робочих процесах на кшталт OpenClaw.
|
||||
|
||||
Провайдер, модель, середовище виконання та канал — це окремі рівні. Якщо ці мітки
|
||||
змішуються між собою, прочитайте [Середовища виконання агентів](/uk/concepts/agent-runtimes), перш ніж
|
||||
змінювати конфігурацію.
|
||||
Провайдер, модель, runtime і канал — це окремі шари. Якщо ці мітки змішуються між собою, прочитайте [runtime агентів](/uk/concepts/agent-runtimes), перш ніж змінювати конфігурацію.
|
||||
|
||||
## Швидкий вибір
|
||||
|
||||
| Мета | Використовуйте | Примітки |
|
||||
| Ціль | Використовуйте | Примітки |
|
||||
| --------------------------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------- |
|
||||
| Пряма оплата за ключем API | `openai/gpt-5.5` | Установіть `OPENAI_API_KEY` або запустіть онбординг ключа API OpenAI. |
|
||||
| GPT-5.5 з автентифікацією підписки ChatGPT/Codex | `openai-codex/gpt-5.5` | Типовий маршрут PI для OAuth Codex. Найкращий перший вибір для налаштувань із підпискою. |
|
||||
| GPT-5.5 з нативною поведінкою app-server Codex | `openai/gpt-5.5` плюс `agentRuntime.id: "codex"` | Примусово вмикає оснастку app-server Codex для цього посилання на модель. |
|
||||
| Генерація або редагування зображень | `openai/gpt-image-2` | Працює з `OPENAI_API_KEY` або OpenAI Codex OAuth. |
|
||||
| Пряма оплата за ключем API | `openai/gpt-5.5` | Установіть `OPENAI_API_KEY` або запустіть onboarding ключа API OpenAI. |
|
||||
| GPT-5.5 з автентифікацією підписки ChatGPT/Codex | `openai-codex/gpt-5.5` | Стандартний маршрут PI для OAuth Codex. Найкращий перший вибір для налаштувань із підпискою. |
|
||||
| GPT-5.5 з нативною поведінкою Codex app-server | `openai/gpt-5.5` плюс `agentRuntime.id: "codex"` | Примусово вмикає обв’язку Codex app-server для цього посилання на модель. |
|
||||
| Генерація або редагування зображень | `openai/gpt-image-2` | Працює з `OPENAI_API_KEY` або OAuth OpenAI Codex. |
|
||||
| Зображення з прозорим фоном | `openai/gpt-image-1.5` | Використовуйте `outputFormat=png` або `webp` і `openai.background=transparent`. |
|
||||
|
||||
## Карта назв
|
||||
## Мапа назв
|
||||
|
||||
Назви подібні, але не взаємозамінні:
|
||||
Назви схожі, але не взаємозамінні:
|
||||
|
||||
| Назва, яку ви бачите | Рівень | Значення |
|
||||
| Назва, яку ви бачите | Шар | Значення |
|
||||
| ---------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| `openai` | Префікс провайдера | Прямий маршрут API OpenAI Platform. |
|
||||
| `openai-codex` | Префікс провайдера | Маршрут OAuth/підписки OpenAI Codex через звичайний runner PI OpenClaw. |
|
||||
| `codex` plugin | Plugin | Вбудований Plugin OpenClaw, який надає нативне середовище виконання app-server Codex і елементи керування чатом `/codex`. |
|
||||
| `agentRuntime.id: codex` | Середовище виконання агента | Примусово вмикає нативну оснастку app-server Codex для вбудованих ходів. |
|
||||
| `/codex ...` | Набір команд чату | Прив’язуйте/керуйте потоками app-server Codex із розмови. |
|
||||
| `runtime: "acp", agentId: "codex"` | Маршрут сесії ACP | Явний резервний шлях, який запускає Codex через ACP/acpx. |
|
||||
| `openai` | Префікс провайдера | Прямий маршрут API OpenAI Platform. |
|
||||
| `openai-codex` | Префікс провайдера | Маршрут OAuth/підписки OpenAI Codex через звичайний runner OpenClaw PI. |
|
||||
| Plugin `codex` | Plugin | Вбудований Plugin OpenClaw, який надає нативний runtime Codex app-server і керування чатом `/codex`. |
|
||||
| `agentRuntime.id: codex` | Runtime агента | Примусово використовує нативну обв’язку Codex app-server для вбудованих ходів. |
|
||||
| `/codex ...` | Набір команд чату | Прив’язує/керує потоками Codex app-server з розмови. |
|
||||
| `runtime: "acp", agentId: "codex"` | Маршрут сесії ACP | Явний fallback-шлях, який запускає Codex через ACP/acpx. |
|
||||
|
||||
Це означає, що конфігурація може навмисно містити і `openai-codex/*`, і
|
||||
Plugin `codex`. Це коректно, коли вам потрібен OAuth Codex через PI, а також потрібно,
|
||||
щоб були доступні нативні елементи керування чатом `/codex`. `openclaw doctor` попереджає про цю
|
||||
комбінацію, щоб ви могли підтвердити, що вона навмисна; він не переписує її.
|
||||
Це означає, що конфігурація може навмисно містити і `openai-codex/*`, і Plugin `codex`. Це коректно, коли потрібен OAuth Codex через PI, а також доступне нативне керування чатом `/codex`. `openclaw doctor` попереджає про таку комбінацію, щоб ви могли підтвердити, що вона навмисна; він не переписує її.
|
||||
|
||||
<Note>
|
||||
GPT-5.5 доступна як через прямий доступ за ключем API OpenAI Platform, так і через
|
||||
маршрути підписки/OAuth. Використовуйте `openai/gpt-5.5` для прямого трафіку
|
||||
`OPENAI_API_KEY`, `openai-codex/gpt-5.5` для OAuth Codex через PI або
|
||||
`openai/gpt-5.5` з `agentRuntime.id: "codex"` для нативної оснастки
|
||||
app-server Codex.
|
||||
GPT-5.5 доступна як через прямий доступ за ключем API OpenAI Platform, так і через маршрути підписки/OAuth. Використовуйте `openai/gpt-5.5` для прямого трафіку `OPENAI_API_KEY`, `openai-codex/gpt-5.5` для OAuth Codex через PI або `openai/gpt-5.5` з `agentRuntime.id: "codex"` для нативної обв’язки Codex app-server.
|
||||
</Note>
|
||||
|
||||
<Note>
|
||||
Увімкнення Plugin OpenAI або вибір моделі `openai-codex/*` не
|
||||
вмикає вбудований Plugin app-server Codex. OpenClaw вмикає цей Plugin лише
|
||||
коли ви явно вибираєте нативну оснастку Codex за допомогою
|
||||
`agentRuntime.id: "codex"` або використовуєте застаріле посилання на модель `codex/*`.
|
||||
Якщо вбудований Plugin `codex` увімкнено, але `openai-codex/*` усе одно розв’язується
|
||||
через PI, `openclaw doctor` попереджає і залишає маршрут без змін.
|
||||
Увімкнення Plugin OpenAI або вибір моделі `openai-codex/*` не вмикає вбудований Plugin Codex app-server. OpenClaw вмикає цей Plugin лише тоді, коли ви явно вибираєте нативну обв’язку Codex за допомогою `agentRuntime.id: "codex"` або використовуєте застаріле посилання на модель `codex/*`.
|
||||
Якщо вбудований Plugin `codex` увімкнено, але `openai-codex/*` усе ще визначається через PI, `openclaw doctor` попереджає і залишає маршрут без змін.
|
||||
</Note>
|
||||
|
||||
## Покриття функцій OpenClaw
|
||||
## Покриття можливостей OpenClaw
|
||||
|
||||
| Можливість OpenAI | Поверхня OpenClaw | Статус |
|
||||
| Можливість OpenAI | Поверхня OpenClaw | Статус |
|
||||
| ------------------------- | ---------------------------------------------------------- | ------------------------------------------------------ |
|
||||
| Чат / Responses | провайдер моделей `openai/<model>` | Так |
|
||||
| Чат / Responses | Провайдер моделей `openai/<model>` | Так |
|
||||
| Моделі підписки Codex | `openai-codex/<model>` з OAuth `openai-codex` | Так |
|
||||
| Оснастка app-server Codex | `openai/<model>` з `agentRuntime.id: codex` | Так |
|
||||
| Обв’язка Codex app-server | `openai/<model>` з `agentRuntime.id: codex` | Так |
|
||||
| Серверний вебпошук | Нативний інструмент OpenAI Responses | Так, коли вебпошук увімкнено і провайдер не закріплено |
|
||||
| Зображення | `image_generate` | Так |
|
||||
| Відео | `video_generate` | Так |
|
||||
| Перетворення тексту на мовлення | `messages.tts.provider: "openai"` / `tts` | Так |
|
||||
| Пакетне перетворення мовлення на текст | `tools.media.audio` / розуміння медіа | Так |
|
||||
| Потокове перетворення мовлення на текст | Voice Call `streaming.provider: "openai"` | Так |
|
||||
| Text-to-speech | `messages.tts.provider: "openai"` / `tts` | Так |
|
||||
| Пакетне speech-to-text | `tools.media.audio` / розуміння медіа | Так |
|
||||
| Потокове speech-to-text | Voice Call `streaming.provider: "openai"` | Так |
|
||||
| Голос у реальному часі | Voice Call `realtime.provider: "openai"` / Control UI Talk | Так |
|
||||
| Вбудовування | провайдер вбудовувань пам’яті | Так |
|
||||
| Embeddings | Провайдер embedding для пам’яті | Так |
|
||||
|
||||
## Вбудовування пам’яті
|
||||
## Embeddings пам’яті
|
||||
|
||||
OpenClaw може використовувати OpenAI або OpenAI-сумісну кінцеву точку вбудовувань для
|
||||
індексування `memory_search` і вбудовувань запитів:
|
||||
OpenClaw може використовувати OpenAI або сумісний з OpenAI endpoint embeddings для індексації `memory_search` і embeddings запитів:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -111,11 +93,7 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
}
|
||||
```
|
||||
|
||||
Для OpenAI-сумісних кінцевих точок, які потребують асиметричних міток вбудовування, задайте
|
||||
`queryInputType` і `documentInputType` у `memorySearch`. OpenClaw передає
|
||||
їх як специфічні для провайдера поля запиту `input_type`: вбудовування запитів використовують
|
||||
`queryInputType`; індексовані фрагменти пам’яті та пакетне індексування використовують
|
||||
`documentInputType`. Повний приклад дивіться в [довіднику конфігурації пам’яті](/uk/reference/memory-config#provider-specific-config).
|
||||
Для сумісних з OpenAI endpoint, які потребують асиметричних міток embeddings, задайте `queryInputType` і `documentInputType` у `memorySearch`. OpenClaw передає їх як специфічні для провайдера поля запиту `input_type`: embeddings запитів використовують `queryInputType`; проіндексовані фрагменти пам’яті та пакетна індексація використовують `documentInputType`. Повний приклад див. у [довіднику конфігурації пам’яті](/uk/reference/memory-config#provider-specific-config).
|
||||
|
||||
## Початок роботи
|
||||
|
||||
@ -129,7 +107,7 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
<Step title="Отримайте ключ API">
|
||||
Створіть або скопіюйте ключ API з [панелі OpenAI Platform](https://platform.openai.com/api-keys).
|
||||
</Step>
|
||||
<Step title="Запустіть онбординг">
|
||||
<Step title="Запустіть onboarding">
|
||||
```bash
|
||||
openclaw onboard --auth-choice openai-api-key
|
||||
```
|
||||
@ -149,17 +127,14 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
|
||||
### Підсумок маршруту
|
||||
|
||||
| Посилання на модель | Конфігурація середовища виконання | Маршрут | Автентифікація |
|
||||
| Посилання на модель | Конфігурація runtime | Маршрут | Автентифікація |
|
||||
| ---------------------- | -------------------------- | --------------------------- | ---------------- |
|
||||
| `openai/gpt-5.5` | omitted / `agentRuntime.id: "pi"` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
|
||||
| `openai/gpt-5.4-mini` | omitted / `agentRuntime.id: "pi"` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
|
||||
| `openai/gpt-5.5` | `agentRuntime.id: "codex"` | Оснастка app-server Codex | app-server Codex |
|
||||
| `openai/gpt-5.5` | omitted / `agentRuntime.id: "pi"` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
|
||||
| `openai/gpt-5.4-mini` | omitted / `agentRuntime.id: "pi"` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
|
||||
| `openai/gpt-5.5` | `agentRuntime.id: "codex"` | Обв’язка Codex app-server | Codex app-server |
|
||||
|
||||
<Note>
|
||||
`openai/*` — це прямий маршрут ключа API OpenAI, якщо ви явно не примушуєте
|
||||
оснастку app-server Codex. Використовуйте `openai-codex/*` для OAuth Codex через
|
||||
стандартний runner PI або використовуйте `openai/gpt-5.5` з
|
||||
`agentRuntime.id: "codex"` для нативного виконання app-server Codex.
|
||||
`openai/*` — це прямий маршрут ключа API OpenAI, якщо ви явно не примусите використання обв’язки Codex app-server. Використовуйте `openai-codex/*` для OAuth Codex через стандартний runner PI або `openai/gpt-5.5` з `agentRuntime.id: "codex"` для нативного виконання Codex app-server.
|
||||
</Note>
|
||||
|
||||
### Приклад конфігурації
|
||||
@ -178,7 +153,7 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
</Tab>
|
||||
|
||||
<Tab title="Підписка Codex">
|
||||
**Найкраще для:** використання вашої підписки ChatGPT/Codex замість окремого ключа API. Хмара Codex потребує входу в ChatGPT.
|
||||
**Найкраще для:** використання вашої підписки ChatGPT/Codex замість окремого ключа API. Codex cloud потребує входу ChatGPT.
|
||||
|
||||
<Steps>
|
||||
<Step title="Запустіть OAuth Codex">
|
||||
@ -192,13 +167,13 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
openclaw models auth login --provider openai-codex
|
||||
```
|
||||
|
||||
Для headless або несумісних із callback налаштувань додайте `--device-code`, щоб увійти через потік коду пристрою ChatGPT замість callback браузера localhost:
|
||||
Для headless-середовищ або налаштувань, де callback незручний, додайте `--device-code`, щоб увійти через потік device-code ChatGPT замість callback браузера localhost:
|
||||
|
||||
```bash
|
||||
openclaw models auth login --provider openai-codex --device-code
|
||||
```
|
||||
</Step>
|
||||
<Step title="Установіть модель за замовчуванням">
|
||||
<Step title="Установіть стандартну модель">
|
||||
```bash
|
||||
openclaw config set agents.defaults.model.primary openai-codex/gpt-5.5
|
||||
```
|
||||
@ -212,17 +187,15 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
|
||||
### Підсумок маршруту
|
||||
|
||||
| Посилання на модель | Конфігурація середовища виконання | Маршрут | Автентифікація |
|
||||
| Посилання на модель | Конфігурація runtime | Маршрут | Автентифікація |
|
||||
|-----------|----------------|-------|------|
|
||||
| `openai-codex/gpt-5.5` | omitted / `runtime: "pi"` | OAuth ChatGPT/Codex через PI | Вхід Codex |
|
||||
| `openai-codex/gpt-5.4-mini` | omitted / `runtime: "pi"` | OAuth ChatGPT/Codex через PI | Вхід Codex |
|
||||
| `openai-codex/gpt-5.5` | `runtime: "auto"` | Все ще PI, якщо Plugin явно не заявляє `openai-codex` | Вхід Codex |
|
||||
| `openai/gpt-5.5` | `agentRuntime.id: "codex"` | Оснастка app-server Codex | Автентифікація app-server Codex |
|
||||
| `openai-codex/gpt-5.5` | `runtime: "auto"` | Усе ще PI, якщо Plugin явно не оголошує `openai-codex` | Вхід Codex |
|
||||
| `openai/gpt-5.5` | `agentRuntime.id: "codex"` | Обв’язка Codex app-server | Автентифікація Codex app-server |
|
||||
|
||||
<Note>
|
||||
Продовжуйте використовувати ідентифікатор провайдера `openai-codex` для команд автентифікації/профілю. Префікс
|
||||
моделі `openai-codex/*` також є явним маршрутом PI для OAuth Codex.
|
||||
Він не вибирає і не вмикає автоматично вбудовану оснастку app-server Codex.
|
||||
Продовжуйте використовувати id провайдера `openai-codex` для команд автентифікації/профілю. Префікс моделі `openai-codex/*` також є явним маршрутом PI для OAuth Codex. Він не вибирає і не вмикає автоматично вбудовану обв’язку Codex app-server.
|
||||
</Note>
|
||||
|
||||
### Приклад конфігурації
|
||||
@ -234,35 +207,35 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
```
|
||||
|
||||
<Note>
|
||||
Онбординг більше не імпортує OAuth-матеріал із `~/.codex`. Увійдіть через OAuth у браузері (за замовчуванням) або через потік коду пристрою вище — OpenClaw керує отриманими обліковими даними у власному сховищі автентифікації агентів.
|
||||
Onboarding більше не імпортує матеріал OAuth з `~/.codex`. Увійдіть через OAuth у браузері (стандартно) або через потік device-code вище — OpenClaw керує отриманими обліковими даними у власному сховищі автентифікації агента.
|
||||
</Note>
|
||||
|
||||
### Індикатор статусу
|
||||
|
||||
Chat `/status` показує, яке середовище виконання моделі активне для поточного сеансу.
|
||||
Стандартний PI harness відображається як `Runtime: OpenClaw Pi Default`. Коли вибрано
|
||||
вбудований harness Codex app-server, `/status` показує
|
||||
`Runtime: OpenAI Codex`. Наявні сеанси зберігають свій записаний ідентифікатор harness, тому використовуйте
|
||||
Стандартна обв’язка PI відображається як `Runtime: OpenClaw Pi Default`. Коли вибрано
|
||||
вбудовану обв’язку Codex app-server, `/status` показує
|
||||
`Runtime: OpenAI Codex`. Наявні сеанси зберігають записаний ідентифікатор обв’язки, тому використовуйте
|
||||
`/new` або `/reset` після зміни `agentRuntime`, якщо хочете, щоб `/status`
|
||||
відображав новий вибір PI/Codex.
|
||||
|
||||
### Попередження Doctor
|
||||
|
||||
Якщо вбудований plugin `codex` увімкнено, а маршрут
|
||||
`openai-codex/*` цієї вкладки вибрано, `openclaw doctor` попереджає, що модель
|
||||
усе ще розв’язується через PI. Залиште конфігурацію без змін, коли це
|
||||
очікуваний маршрут автентифікації через підписку. Перемикайтеся на `openai/<model>` плюс
|
||||
`agentRuntime.id: "codex"` лише тоді, коли потрібне нативне виконання Codex
|
||||
app-server.
|
||||
Якщо вбудований Plugin `codex` увімкнено, коли вибрано маршрут
|
||||
`openai-codex/*` цієї вкладки, `openclaw doctor` попереджає, що модель
|
||||
досі визначається через PI. Залиште конфігурацію без змін, якщо це
|
||||
очікуваний маршрут автентифікації за підпискою. Перемикайтеся на `openai/<model>` плюс
|
||||
`agentRuntime.id: "codex"` лише тоді, коли потрібне нативне виконання
|
||||
Codex app-server.
|
||||
|
||||
### Обмеження контекстного вікна
|
||||
|
||||
OpenClaw трактує метадані моделі та обмеження контексту середовища виконання як окремі значення.
|
||||
OpenClaw розглядає метадані моделі та обмеження контексту середовища виконання як окремі значення.
|
||||
|
||||
Для `openai-codex/gpt-5.5` через Codex OAuth:
|
||||
|
||||
- Нативний `contextWindow`: `1000000`
|
||||
- Стандартне обмеження runtime `contextTokens`: `272000`
|
||||
- Стандартне обмеження `contextTokens` середовища виконання: `272000`
|
||||
|
||||
Менше стандартне обмеження на практиці має кращі характеристики затримки та якості. Перевизначте його за допомогою `contextTokens`:
|
||||
|
||||
@ -279,15 +252,15 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
```
|
||||
|
||||
<Note>
|
||||
Використовуйте `contextWindow`, щоб оголосити нативні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту runtime.
|
||||
Використовуйте `contextWindow`, щоб оголосити нативні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту середовища виконання.
|
||||
</Note>
|
||||
|
||||
### Відновлення каталогу
|
||||
|
||||
OpenClaw використовує метадані upstream-каталогу Codex для `gpt-5.5`, коли вони
|
||||
присутні. Якщо live-виявлення Codex пропускає рядок `openai-codex/gpt-5.5`, тоді як
|
||||
обліковий запис автентифіковано, OpenClaw синтезує цей рядок OAuth-моделі, щоб
|
||||
cron, sub-agent і запуски з налаштованою стандартною моделлю не завершувалися помилкою
|
||||
наявні. Якщо live-виявлення Codex пропускає рядок `openai-codex/gpt-5.5`, коли
|
||||
обліковий запис автентифіковано, OpenClaw синтезує цей рядок моделі OAuth, щоб
|
||||
cron, субагент і запуски зі сконфігурованою стандартною моделлю не завершувалися помилкою
|
||||
`Unknown model`.
|
||||
|
||||
</Tab>
|
||||
@ -295,8 +268,8 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
|
||||
## Нативна автентифікація Codex app-server
|
||||
|
||||
Нативний harness Codex app-server використовує посилання на моделі `openai/*` плюс
|
||||
`agentRuntime.id: "codex"`, але його автентифікація все одно базується на обліковому записі. OpenClaw
|
||||
Нативна обв’язка Codex app-server використовує посилання на моделі `openai/*` плюс
|
||||
`agentRuntime.id: "codex"`, але її автентифікація все одно прив’язана до облікового запису. OpenClaw
|
||||
вибирає автентифікацію в такому порядку:
|
||||
|
||||
1. Явний профіль автентифікації OpenClaw `openai-codex`, прив’язаний до агента.
|
||||
@ -305,29 +278,29 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
`OPENAI_API_KEY`, коли app-server повідомляє, що облікового запису немає, але все ще потребує
|
||||
автентифікації OpenAI.
|
||||
|
||||
Це означає, що локальний вхід через підписку ChatGPT/Codex не замінюється лише
|
||||
тому, що процес gateway також має `OPENAI_API_KEY` для прямих моделей OpenAI
|
||||
або embeddings. Резервне використання API-ключа з env застосовується лише до локального stdio-шляху без облікового запису; він
|
||||
Це означає, що локальний вхід за підпискою ChatGPT/Codex не замінюється лише
|
||||
через те, що процес Gateway також має `OPENAI_API_KEY` для прямих моделей OpenAI
|
||||
або embeddings. Резервний env API-ключ використовується лише для локального stdio-шляху без облікового запису; він
|
||||
не надсилається до WebSocket-з’єднань app-server. Коли вибрано профіль Codex
|
||||
у стилі підписки, OpenClaw також не передає `CODEX_API_KEY` і `OPENAI_API_KEY`
|
||||
підпискового типу, OpenClaw також не передає `CODEX_API_KEY` і `OPENAI_API_KEY`
|
||||
у породжений дочірній процес stdio app-server і надсилає вибрані облікові дані
|
||||
через login RPC app-server.
|
||||
через RPC входу app-server.
|
||||
|
||||
## Генерація зображень
|
||||
## Генерування зображень
|
||||
|
||||
Вбудований plugin `openai` реєструє генерацію зображень через інструмент `image_generate`.
|
||||
Він підтримує як генерацію зображень OpenAI за API-ключем, так і генерацію зображень через Codex OAuth
|
||||
Вбудований Plugin `openai` реєструє генерування зображень через інструмент `image_generate`.
|
||||
Він підтримує як генерування зображень за API-ключем OpenAI, так і генерування зображень через Codex OAuth
|
||||
через те саме посилання на модель `openai/gpt-image-2`.
|
||||
|
||||
| Можливість | API-ключ OpenAI | Codex OAuth |
|
||||
| ------------------------- | ---------------------------------- | ------------------------------------ |
|
||||
| Посилання на модель | `openai/gpt-image-2` | `openai/gpt-image-2` |
|
||||
| Автентифікація | `OPENAI_API_KEY` | Вхід OpenAI Codex OAuth |
|
||||
| Транспорт | OpenAI Images API | Бекенд Codex Responses |
|
||||
| Макс. зображень на запит | 4 | 4 |
|
||||
| Режим редагування | Увімкнено (до 5 еталонних зображень) | Увімкнено (до 5 еталонних зображень) |
|
||||
| Перевизначення розміру | Підтримується, зокрема розміри 2K/4K | Підтримується, зокрема розміри 2K/4K |
|
||||
| Співвідношення сторін / роздільна здатність | Не пересилається до OpenAI Images API | Зіставляється з підтримуваним розміром, коли це безпечно |
|
||||
| ------------------------ | ---------------------------------- | ------------------------------------ |
|
||||
| Посилання на модель | `openai/gpt-image-2` | `openai/gpt-image-2` |
|
||||
| Автентифікація | `OPENAI_API_KEY` | Вхід через OpenAI Codex OAuth |
|
||||
| Транспорт | OpenAI Images API | Backend Codex Responses |
|
||||
| Макс. зображень на запит | 4 | 4 |
|
||||
| Режим редагування | Увімкнено (до 5 референсних зображень) | Увімкнено (до 5 референсних зображень) |
|
||||
| Перевизначення розміру | Підтримується, зокрема розміри 2K/4K | Підтримується, зокрема розміри 2K/4K |
|
||||
| Співвідношення сторін / роздільна здатність | Не передається до OpenAI Images API | Зіставляється з підтримуваним розміром, коли це безпечно |
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -340,24 +313,24 @@ OpenClaw може використовувати OpenAI або OpenAI-суміс
|
||||
```
|
||||
|
||||
<Note>
|
||||
Див. [Генерація зображень](/uk/tools/image-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover.
|
||||
Див. [Генерування зображень](/uk/tools/image-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover.
|
||||
</Note>
|
||||
|
||||
`gpt-image-2` є стандартним варіантом як для генерації зображень із тексту OpenAI, так і для
|
||||
редагування зображень. `gpt-image-1.5`, `gpt-image-1` і `gpt-image-1-mini` залишаються придатними для використання як
|
||||
явні перевизначення моделі. Використовуйте `openai/gpt-image-1.5` для виведення PNG/WebP
|
||||
із прозорим фоном; поточний API `gpt-image-2` відхиляє
|
||||
`gpt-image-2` є стандартним для генерування зображень із тексту OpenAI і для редагування зображень.
|
||||
`gpt-image-1.5`, `gpt-image-1` і `gpt-image-1-mini` лишаються доступними як
|
||||
явні перевизначення моделі. Використовуйте `openai/gpt-image-1.5` для виводу
|
||||
PNG/WebP із прозорим фоном; поточний API `gpt-image-2` відхиляє
|
||||
`background: "transparent"`.
|
||||
|
||||
Для запиту з прозорим фоном агенти мають викликати `image_generate` з
|
||||
`model: "openai/gpt-image-1.5"`, `outputFormat: "png"` або `"webp"` і
|
||||
`background: "transparent"`; старіший параметр провайдера `openai.background`
|
||||
все ще приймається. OpenClaw також захищає публічні маршрути OpenAI та
|
||||
досі приймається. OpenClaw також захищає публічні маршрути OpenAI та
|
||||
OpenAI Codex OAuth, переписуючи стандартні прозорі запити `openai/gpt-image-2`
|
||||
на `gpt-image-1.5`; Azure і власні OpenAI-сумісні endpoints зберігають
|
||||
свої налаштовані назви deployment/model.
|
||||
сконфігуровані назви deployment/моделей.
|
||||
|
||||
Той самий параметр доступний для headless CLI-запусків:
|
||||
Той самий параметр доступний для headless-запусків CLI:
|
||||
|
||||
```bash
|
||||
openclaw infer image generate \
|
||||
@ -370,18 +343,18 @@ openclaw infer image generate \
|
||||
|
||||
Використовуйте ті самі прапорці `--output-format` і `--background` з
|
||||
`openclaw infer image edit`, коли починаєте з вхідного файлу.
|
||||
`--openai-background` залишається доступним як OpenAI-специфічний alias.
|
||||
`--openai-background` лишається доступним як специфічний для OpenAI псевдонім.
|
||||
|
||||
Для встановлень Codex OAuth залишайте те саме посилання `openai/gpt-image-2`. Коли налаштовано
|
||||
OAuth-профіль `openai-codex`, OpenClaw розв’язує збережений OAuth
|
||||
access token і надсилає запити зображень через бекенд Codex Responses. Він
|
||||
Для встановлень Codex OAuth залишайте те саме посилання `openai/gpt-image-2`. Коли
|
||||
налаштовано OAuth-профіль `openai-codex`, OpenClaw визначає збережений access token OAuth
|
||||
і надсилає запити зображень через backend Codex Responses. Він
|
||||
спершу не пробує `OPENAI_API_KEY` і не виконує тихий fallback до API-ключа для цього
|
||||
запиту. Налаштуйте `models.providers.openai` явно з API-ключем,
|
||||
власним базовим URL або Azure endpoint, коли потрібен прямий маршрут OpenAI Images API
|
||||
власною базовою URL-адресою або endpoint Azure, коли потрібен прямий маршрут OpenAI Images API
|
||||
натомість.
|
||||
Якщо цей власний image endpoint розташований у довіреній LAN/приватній адресі, також задайте
|
||||
Якщо цей власний endpoint зображень розташований у довіреній LAN/приватній адресі, також задайте
|
||||
`browser.ssrfPolicy.dangerouslyAllowPrivateNetwork: true`; OpenClaw залишає
|
||||
приватні/внутрішні OpenAI-сумісні image endpoints заблокованими, якщо цього opt-in
|
||||
приватні/внутрішні OpenAI-сумісні endpoints зображень заблокованими, якщо цього opt-in
|
||||
немає.
|
||||
|
||||
Згенерувати:
|
||||
@ -402,16 +375,16 @@ access token і надсилає запити зображень через бе
|
||||
/tool image_generate model=openai/gpt-image-2 prompt="Preserve the object shape, change the material to translucent glass" image=/path/to/reference.png size=1024x1536
|
||||
```
|
||||
|
||||
## Генерація відео
|
||||
## Генерування відео
|
||||
|
||||
Вбудований plugin `openai` реєструє генерацію відео через інструмент `video_generate`.
|
||||
Вбудований Plugin `openai` реєструє генерування відео через інструмент `video_generate`.
|
||||
|
||||
| Можливість | Значення |
|
||||
| ---------------- | --------------------------------------------------------------------------------- |
|
||||
| Стандартна модель | `openai/sora-2` |
|
||||
| Стандартна модель | `openai/sora-2` |
|
||||
| Режими | Текст-у-відео, зображення-у-відео, редагування одного відео |
|
||||
| Еталонні вхідні дані | 1 зображення або 1 відео |
|
||||
| Перевизначення розміру | Підтримується |
|
||||
| Референсні вхідні дані | 1 зображення або 1 відео |
|
||||
| Перевизначення розміру | Підтримується |
|
||||
| Інші перевизначення | `aspectRatio`, `resolution`, `audio`, `watermark` ігноруються з попередженням інструмента |
|
||||
|
||||
```json5
|
||||
@ -425,22 +398,22 @@ access token і надсилає запити зображень через бе
|
||||
```
|
||||
|
||||
<Note>
|
||||
Див. [Генерація відео](/uk/tools/video-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover.
|
||||
Див. [Генерування відео](/uk/tools/video-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover.
|
||||
</Note>
|
||||
|
||||
## Внесок у промпт GPT-5
|
||||
## Внесок GPT-5 у prompt
|
||||
|
||||
OpenClaw додає спільний внесок у промпт GPT-5 для запусків сімейства GPT-5 у різних провайдерів. Він застосовується за ідентифікатором моделі, тому `openai-codex/gpt-5.5`, `openai/gpt-5.5`, `openrouter/openai/gpt-5.5`, `opencode/gpt-5.5` та інші сумісні посилання GPT-5 отримують той самий overlay. Старіші моделі GPT-4.x не отримують його.
|
||||
OpenClaw додає спільний внесок GPT-5 у prompt для запусків сімейства GPT-5 у різних провайдерів. Він застосовується за ідентифікатором моделі, тому `openai-codex/gpt-5.5`, `openai/gpt-5.5`, `openrouter/openai/gpt-5.5`, `opencode/gpt-5.5` та інші сумісні посилання GPT-5 отримують той самий overlay. Старіші моделі GPT-4.x не отримують.
|
||||
|
||||
Вбудований нативний harness Codex використовує ту саму поведінку GPT-5 і overlay heartbeat через developer instructions Codex app-server, тому сеанси `openai/gpt-5.x`, примусово спрямовані через `agentRuntime.id: "codex"`, зберігають ті самі настанови щодо доведення до кінця та проактивного heartbeat, навіть хоча рештою harness-промпта володіє Codex.
|
||||
Вбудована нативна обв’язка Codex використовує ту саму поведінку GPT-5 і overlay Heartbeat через інструкції розробника Codex app-server, тому сеанси `openai/gpt-5.x`, примусово спрямовані через `agentRuntime.id: "codex"`, зберігають ті самі настанови щодо доведення справ до кінця й проактивного Heartbeat, хоча рештою prompt обв’язки керує Codex.
|
||||
|
||||
Внесок GPT-5 додає тегований контракт поведінки для сталості persona, безпеки виконання, дисципліни інструментів, форми виводу, перевірок завершення та верифікації. Канально-специфічна поведінка відповідей і silent-message залишається у спільному системному промпті OpenClaw і політиці вихідної доставки. Настанови GPT-5 завжди ввімкнені для відповідних моделей. Дружній шар interaction-style є окремим і налаштовуваним.
|
||||
Внесок GPT-5 додає тегований контракт поведінки для збереження persona, безпеки виконання, дисципліни інструментів, форми виводу, перевірок завершення та верифікації. Поведінка відповідей, специфічна для каналу, і поведінка silent-message лишаються у спільному системному prompt OpenClaw і політиці вихідної доставки. Настанови GPT-5 завжди увімкнені для відповідних моделей. Дружній шар стилю взаємодії є окремим і налаштовуваним.
|
||||
|
||||
| Значення | Ефект |
|
||||
| ---------------------- | ------------------------------------------- |
|
||||
| `"friendly"` (стандартно) | Увімкнути дружній шар interaction-style |
|
||||
| `"on"` | Alias для `"friendly"` |
|
||||
| `"off"` | Вимкнути лише дружній style layer |
|
||||
| --------------------- | ------------------------------------------ |
|
||||
| `"friendly"` (стандартно) | Увімкнути дружній шар стилю взаємодії |
|
||||
| `"on"` | Псевдонім для `"friendly"` |
|
||||
| `"off"` | Вимкнути лише дружній шар стилю |
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Конфігурація">
|
||||
@ -464,31 +437,34 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
|
||||
</Tabs>
|
||||
|
||||
<Tip>
|
||||
Значення не чутливі до регістру під час виконання, тому `"Off"` і `"off"` обидва вимикають дружній style layer.
|
||||
Значення не чутливі до регістру під час виконання, тому `"Off"` і `"off"` обидва вимикають дружній шар стилю.
|
||||
</Tip>
|
||||
|
||||
<Note>
|
||||
Застарілий `plugins.entries.openai.config.personality` все ще читається як compatibility fallback, коли спільний параметр `agents.defaults.promptOverlays.gpt5.personality` не встановлено.
|
||||
Застарілий `plugins.entries.openai.config.personality` досі читається як fallback сумісності, коли спільний параметр `agents.defaults.promptOverlays.gpt5.personality` не задано.
|
||||
</Note>
|
||||
|
||||
## Голос і мовлення
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Синтез мовлення (TTS)">
|
||||
Вбудований plugin `openai` реєструє синтез мовлення для поверхні `messages.tts`.
|
||||
Вбудований Plugin `openai` реєструє синтез мовлення для поверхні `messages.tts`.
|
||||
|
||||
| Параметр | Шлях конфігурації | Стандартно |
|
||||
|---------|------------|---------|
|
||||
| Модель | `messages.tts.providers.openai.model` | `gpt-4o-mini-tts` |
|
||||
| Голос | `messages.tts.providers.openai.voice` | `coral` |
|
||||
| Швидкість | `messages.tts.providers.openai.speed` | (не встановлено) |
|
||||
| Інструкції | `messages.tts.providers.openai.instructions` | (не встановлено, лише `gpt-4o-mini-tts`) |
|
||||
| Швидкість | `messages.tts.providers.openai.speed` | (не задано) |
|
||||
| Інструкції | `messages.tts.providers.openai.instructions` | (не задано, лише `gpt-4o-mini-tts`) |
|
||||
| Формат | `messages.tts.providers.openai.responseFormat` | `opus` для голосових нотаток, `mp3` для файлів |
|
||||
| API-ключ | `messages.tts.providers.openai.apiKey` | Fallback до `OPENAI_API_KEY` |
|
||||
| Базовий URL | `messages.tts.providers.openai.baseUrl` | `https://api.openai.com/v1` |
|
||||
| API-ключ | `messages.tts.providers.openai.apiKey` | fallback до `OPENAI_API_KEY` |
|
||||
| Базова URL-адреса | `messages.tts.providers.openai.baseUrl` | `https://api.openai.com/v1` |
|
||||
| Додаткове тіло | `messages.tts.providers.openai.extraBody` / `extra_body` | (не задано) |
|
||||
|
||||
Доступні моделі: `gpt-4o-mini-tts`, `tts-1`, `tts-1-hd`. Доступні голоси: `alloy`, `ash`, `ballad`, `cedar`, `coral`, `echo`, `fable`, `juniper`, `marin`, `onyx`, `nova`, `sage`, `shimmer`, `verse`.
|
||||
|
||||
`extraBody` об’єднується з JSON запиту `/audio/speech` після згенерованих OpenClaw полів, тому використовуйте його для OpenAI-сумісних endpoints, які потребують додаткових ключів, як-от `lang`. Prototype-ключі ігноруються.
|
||||
|
||||
```json5
|
||||
{
|
||||
messages: {
|
||||
@ -502,23 +478,23 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
|
||||
```
|
||||
|
||||
<Note>
|
||||
Задайте `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL TTS без впливу на endpoint chat API.
|
||||
Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базову URL-адресу TTS, не впливаючи на endpoint chat API.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Speech-to-text">
|
||||
Вбудований plugin `openai` реєструє пакетне speech-to-text через
|
||||
<Accordion title="Мовлення в текст">
|
||||
Вбудований Plugin `openai` реєструє пакетне перетворення мовлення в текст через
|
||||
поверхню транскрипції media-understanding OpenClaw.
|
||||
|
||||
- Стандартна модель: `gpt-4o-transcribe`
|
||||
- Endpoint: OpenAI REST `/v1/audio/transcriptions`
|
||||
- Шлях введення: завантаження multipart audio file
|
||||
- Підтримується OpenClaw скрізь, де транскрипція вхідного audio використовує
|
||||
`tools.media.audio`, зокрема сегменти голосових каналів Discord і канальні
|
||||
audio attachments
|
||||
- Кінцева точка: OpenAI REST `/v1/audio/transcriptions`
|
||||
- Шлях введення: завантаження аудіофайлу multipart
|
||||
- Підтримується OpenClaw усюди, де транскрибування вхідного аудіо використовує
|
||||
`tools.media.audio`, зокрема сегменти голосових каналів Discord і
|
||||
аудіовкладення каналів
|
||||
|
||||
Щоб примусово використовувати OpenAI для транскрипції вхідного аудіо:
|
||||
Щоб примусово використовувати OpenAI для транскрибування вхідного аудіо:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -538,53 +514,53 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
|
||||
}
|
||||
```
|
||||
|
||||
Підказки щодо мови та промпту передаються до OpenAI, коли їх надано через
|
||||
спільну конфігурацію аудіомедіа або запит транскрипції для окремого виклику.
|
||||
Підказки щодо мови та промпта передаються до OpenAI, коли їх надає
|
||||
спільна конфігурація аудіомедіа або запит транскрибування окремого виклику.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Realtime transcription">
|
||||
Вбудований Plugin `openai` реєструє транскрипцію в реальному часі для Plugin Voice Call.
|
||||
<Accordion title="Транскрибування в реальному часі">
|
||||
Вбудований Plugin `openai` реєструє транскрибування в реальному часі для Plugin Voice Call.
|
||||
|
||||
| Налаштування | Шлях конфігурації | Типово |
|
||||
| Налаштування | Шлях конфігурації | Стандартне значення |
|
||||
|---------|------------|---------|
|
||||
| Модель | `plugins.entries.voice-call.config.streaming.providers.openai.model` | `gpt-4o-transcribe` |
|
||||
| Мова | `...openai.language` | (не задано) |
|
||||
| Промпт | `...openai.prompt` | (не задано) |
|
||||
| Мова | `...openai.language` | (не встановлено) |
|
||||
| Промпт | `...openai.prompt` | (не встановлено) |
|
||||
| Тривалість тиші | `...openai.silenceDurationMs` | `800` |
|
||||
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
|
||||
| API-ключ | `...openai.apiKey` | Резервно використовує `OPENAI_API_KEY` |
|
||||
| Ключ API | `...openai.apiKey` | Використовує `OPENAI_API_KEY` як запасний варіант |
|
||||
|
||||
<Note>
|
||||
Використовує WebSocket-з'єднання з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей потоковий provider призначений для шляху транскрипції в реальному часі Voice Call; голос Discord наразі записує короткі сегменти й натомість використовує пакетний шлях транскрипції `tools.media.audio`.
|
||||
Використовує з'єднання WebSocket із `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей потоковий провайдер призначений для шляху транскрибування в реальному часі Voice Call; голос Discord наразі записує короткі сегменти й натомість використовує пакетний шлях транскрибування `tools.media.audio`.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Realtime voice">
|
||||
<Accordion title="Голос у реальному часі">
|
||||
Вбудований Plugin `openai` реєструє голос у реальному часі для Plugin Voice Call.
|
||||
|
||||
| Налаштування | Шлях конфігурації | Типово |
|
||||
| Налаштування | Шлях конфігурації | Стандартне значення |
|
||||
|---------|------------|---------|
|
||||
| Модель | `plugins.entries.voice-call.config.realtime.providers.openai.model` | `gpt-realtime-1.5` |
|
||||
| Голос | `...openai.voice` | `alloy` |
|
||||
| Температура | `...openai.temperature` | `0.8` |
|
||||
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
|
||||
| Тривалість тиші | `...openai.silenceDurationMs` | `500` |
|
||||
| API-ключ | `...openai.apiKey` | Резервно використовує `OPENAI_API_KEY` |
|
||||
| Ключ API | `...openai.apiKey` | Використовує `OPENAI_API_KEY` як запасний варіант |
|
||||
|
||||
<Note>
|
||||
Підтримує Azure OpenAI через конфігураційні ключі `azureEndpoint` і `azureDeployment` для бекенд-мостів реального часу. Підтримує двонапрямні виклики інструментів. Використовує аудіоформат G.711 u-law.
|
||||
Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment` для серверних мостів реального часу. Підтримує двоспрямовані виклики інструментів. Використовує аудіоформат G.711 u-law.
|
||||
</Note>
|
||||
|
||||
<Note>
|
||||
Talk в Control UI використовує браузерні сесії OpenAI у реальному часі з
|
||||
ефемерним клієнтським секретом, згенерованим Gateway, і прямим браузерним обміном WebRTC SDP з
|
||||
OpenAI Realtime API. Підтримувачі можуть виконати live-перевірку за допомогою
|
||||
Control UI Talk використовує браузерні сесії OpenAI у реальному часі з
|
||||
ефемерним клієнтським секретом, створеним Gateway, і прямим браузерним обміном WebRTC SDP з
|
||||
OpenAI Realtime API. Жива перевірка для супровідників доступна через
|
||||
`OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts`;
|
||||
гілка OpenAI створює клієнтський секрет у Node, генерує браузерну SDP-пропозицію
|
||||
з фіктивним мікрофонним медіа, надсилає її до OpenAI й застосовує SDP-відповідь
|
||||
без журналювання секретів.
|
||||
гілка OpenAI створює клієнтський секрет у Node, генерує браузерну пропозицію SDP
|
||||
з фейковим мікрофонним медіа, надсилає її до OpenAI і застосовує відповідь SDP
|
||||
без логування секретів.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
@ -592,29 +568,29 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
|
||||
|
||||
## Кінцеві точки Azure OpenAI
|
||||
|
||||
Вбудований provider `openai` може націлюватися на ресурс Azure OpenAI для генерації
|
||||
Вбудований провайдер `openai` може націлюватися на ресурс Azure OpenAI для генерації
|
||||
зображень через перевизначення базової URL-адреси. На шляху генерації зображень OpenClaw
|
||||
виявляє імена хостів Azure у `models.providers.openai.baseUrl` і автоматично перемикається на
|
||||
формат запиту Azure.
|
||||
форму запиту Azure.
|
||||
|
||||
<Note>
|
||||
Голос у реальному часі використовує окремий шлях конфігурації
|
||||
(`plugins.entries.voice-call.config.realtime.providers.openai.azureEndpoint`)
|
||||
і не залежить від `models.providers.openai.baseUrl`. Дивіться accordion **Realtime
|
||||
voice** у розділі [Голос і мовлення](#voice-and-speech) щодо його налаштувань Azure.
|
||||
і не залежить від `models.providers.openai.baseUrl`. Див. акордеон **Голос у реальному
|
||||
часі** в розділі [Голос і мовлення](#voice-and-speech) щодо його налаштувань Azure.
|
||||
</Note>
|
||||
|
||||
Використовуйте Azure OpenAI, коли:
|
||||
|
||||
- У вас уже є підписка Azure OpenAI, квота або корпоративна угода
|
||||
- Вам потрібні регіональне розміщення даних або засоби контролю відповідності, які надає Azure
|
||||
- Ви хочете тримати трафік у межах наявного тенанта Azure
|
||||
- Ви хочете залишити трафік усередині наявного тенанта Azure
|
||||
|
||||
### Конфігурація
|
||||
|
||||
Для генерації зображень Azure через вбудований provider `openai` вкажіть
|
||||
`models.providers.openai.baseUrl` на ваш ресурс Azure і задайте `apiKey` як
|
||||
ключ Azure OpenAI (а не ключ OpenAI Platform):
|
||||
Для генерації зображень Azure через вбудований провайдер `openai` спрямуйте
|
||||
`models.providers.openai.baseUrl` на свій ресурс Azure і встановіть `apiKey` як
|
||||
ключ Azure OpenAI (не ключ OpenAI Platform):
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -639,47 +615,47 @@ Azure:
|
||||
Для запитів генерації зображень на розпізнаному хості Azure OpenClaw:
|
||||
|
||||
- Надсилає заголовок `api-key` замість `Authorization: Bearer`
|
||||
- Використовує шляхи, прив'язані до deployment (`/openai/deployments/{deployment}/...`)
|
||||
- Використовує шляхи з областю deployment (`/openai/deployments/{deployment}/...`)
|
||||
- Додає `?api-version=...` до кожного запиту
|
||||
- Використовує типовий тайм-аут запиту 600 с для викликів генерації зображень Azure.
|
||||
Значення `timeoutMs` для окремих викликів усе ще перевизначають це типове значення.
|
||||
- Використовує стандартний тайм-аут запиту 600 с для викликів генерації зображень Azure.
|
||||
Значення `timeoutMs` для окремого виклику й далі перевизначають це стандартне значення.
|
||||
|
||||
Інші базові URL-адреси (публічний OpenAI, проксі, сумісні з OpenAI) зберігають стандартний
|
||||
формат запиту зображень OpenAI.
|
||||
Інші базові URL-адреси (публічний OpenAI, OpenAI-сумісні проксі) зберігають стандартну
|
||||
форму запиту зображень OpenAI.
|
||||
|
||||
<Note>
|
||||
Маршрутизація Azure для шляху генерації зображень provider `openai` потребує
|
||||
OpenClaw 2026.4.22 або новішої версії. Раніші версії трактують будь-який власний
|
||||
Маршрутизація Azure для шляху генерації зображень провайдера `openai` потребує
|
||||
OpenClaw 2026.4.22 або новішої версії. Раніші версії обробляють будь-який користувацький
|
||||
`openai.baseUrl` як публічну кінцеву точку OpenAI і завершаться помилкою з
|
||||
deployment зображень Azure.
|
||||
</Note>
|
||||
|
||||
### Версія API
|
||||
|
||||
Задайте `AZURE_OPENAI_API_VERSION`, щоб закріпити конкретну preview- або GA-версію Azure
|
||||
Встановіть `AZURE_OPENAI_API_VERSION`, щоб зафіксувати конкретну preview- або GA-версію Azure
|
||||
для шляху генерації зображень Azure:
|
||||
|
||||
```bash
|
||||
export AZURE_OPENAI_API_VERSION="2024-12-01-preview"
|
||||
```
|
||||
|
||||
Типове значення — `2024-12-01-preview`, коли змінну не задано.
|
||||
Стандартне значення — `2024-12-01-preview`, коли змінну не встановлено.
|
||||
|
||||
### Назви моделей є назвами deployment
|
||||
|
||||
Azure OpenAI прив'язує моделі до deployment. Для запитів генерації зображень Azure,
|
||||
маршрутизованих через вбудований provider `openai`, поле `model` в OpenClaw
|
||||
має бути **назвою Azure deployment**, яку ви налаштували на порталі Azure, а не
|
||||
маршрутизованих через вбудований провайдер `openai`, поле `model` в OpenClaw
|
||||
має бути **назвою deployment Azure**, яку ви налаштували на порталі Azure, а не
|
||||
ідентифікатором публічної моделі OpenAI.
|
||||
|
||||
Якщо ви створюєте deployment з назвою `gpt-image-2-prod`, який обслуговує `gpt-image-2`:
|
||||
Якщо ви створюєте deployment із назвою `gpt-image-2-prod`, який обслуговує `gpt-image-2`:
|
||||
|
||||
```
|
||||
/tool image_generate model=openai/gpt-image-2-prod prompt="A clean poster" size=1024x1024 count=1
|
||||
```
|
||||
|
||||
Те саме правило назви deployment застосовується до викликів генерації зображень,
|
||||
маршрутизованих через вбудований provider `openai`.
|
||||
маршрутизованих через вбудований провайдер `openai`.
|
||||
|
||||
### Регіональна доступність
|
||||
|
||||
@ -695,35 +671,35 @@ Azure може відхиляти параметри, які дозволяє п
|
||||
значення `background` для `gpt-image-2`), або надавати їх лише для конкретних версій
|
||||
моделі. Ці відмінності походять від Azure і базової моделі, а не від
|
||||
OpenClaw. Якщо запит Azure завершується помилкою валідації, перевірте
|
||||
набір параметрів, який підтримує ваш конкретний deployment і версія API, на
|
||||
набір параметрів, який підтримують ваш конкретний deployment і версія API на
|
||||
порталі Azure.
|
||||
|
||||
<Note>
|
||||
Azure OpenAI використовує нативний транспорт і compat-поведінку, але не отримує
|
||||
приховані заголовки атрибуції OpenClaw — дивіться accordion **Native vs OpenAI-compatible
|
||||
routes** у розділі [Розширена конфігурація](#advanced-configuration).
|
||||
прихованих заголовків атрибуції OpenClaw — див. акордеон **Нативні та OpenAI-сумісні
|
||||
маршрути** в розділі [Розширена конфігурація](#advanced-configuration).
|
||||
|
||||
Для трафіку chat або Responses в Azure (поза генерацією зображень) використовуйте
|
||||
процес onboarding або окрему конфігурацію provider Azure — самого `openai.baseUrl`
|
||||
недостатньо, щоб застосувати формат API/auth Azure. Існує окремий
|
||||
provider `azure-openai-responses/*`; дивіться accordion про серверну Compaction нижче.
|
||||
процес onboarding або спеціальну конфігурацію провайдера Azure — самого лише
|
||||
`openai.baseUrl` недостатньо, щоб застосувати форму Azure API/auth. Існує окремий
|
||||
провайдер `azure-openai-responses/*`; див. акордеон Server-side compaction нижче.
|
||||
</Note>
|
||||
|
||||
## Розширена конфігурація
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Transport (WebSocket vs SSE)">
|
||||
OpenClaw використовує WebSocket-first із резервним SSE (`"auto"`) як для `openai/*`, так і для `openai-codex/*`.
|
||||
<Accordion title="Транспорт (WebSocket проти SSE)">
|
||||
OpenClaw використовує WebSocket як пріоритетний варіант із запасним SSE (`"auto"`) для `openai/*` і `openai-codex/*`.
|
||||
|
||||
У режимі `"auto"` OpenClaw:
|
||||
- Повторює одну ранню помилку WebSocket перед переходом на SSE
|
||||
- Повторює одну ранню невдалу спробу WebSocket перед переходом на SSE
|
||||
- Після помилки позначає WebSocket як деградований приблизно на 60 секунд і використовує SSE під час охолодження
|
||||
- Додає стабільні заголовки ідентичності сесії та turn для повторів і перепідключень
|
||||
- Додає стабільні заголовки ідентичності сесії та turn для повторних спроб і повторних підключень
|
||||
- Нормалізує лічильники використання (`input_tokens` / `prompt_tokens`) між варіантами транспорту
|
||||
|
||||
| Значення | Поведінка |
|
||||
|-------|----------|
|
||||
| `"auto"` (типово) | Спочатку WebSocket, резервно SSE |
|
||||
| `"auto"` (стандартно) | Спочатку WebSocket, SSE як запасний варіант |
|
||||
| `"sse"` | Примусово лише SSE |
|
||||
| `"websocket"` | Примусово лише WebSocket |
|
||||
|
||||
@ -750,8 +726,8 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="WebSocket warm-up">
|
||||
OpenClaw вмикає warm-up WebSocket за замовчуванням для `openai/*` і `openai-codex/*`, щоб зменшити затримку першого turn.
|
||||
<Accordion title="Прогрівання WebSocket">
|
||||
OpenClaw стандартно вмикає прогрівання WebSocket для `openai/*` і `openai-codex/*`, щоб зменшити затримку першого turn.
|
||||
|
||||
```json5
|
||||
// Disable warm-up
|
||||
@ -770,13 +746,13 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Fast mode">
|
||||
<Accordion title="Швидкий режим">
|
||||
OpenClaw надає спільний перемикач швидкого режиму для `openai/*` і `openai-codex/*`:
|
||||
|
||||
- **Chat/UI:** `/fast status|on|off`
|
||||
- **Конфігурація:** `agents.defaults.models["<provider>/<model>"].params.fastMode`
|
||||
|
||||
Коли ввімкнено, OpenClaw зіставляє швидкий режим із пріоритетною обробкою OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, а швидкий режим не переписує `reasoning` або `text.verbosity`.
|
||||
Коли його ввімкнено, OpenClaw відображає швидкий режим на пріоритетну обробку OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, а швидкий режим не переписує `reasoning` або `text.verbosity`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -791,13 +767,13 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
```
|
||||
|
||||
<Note>
|
||||
Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в Sessions UI повертає сесію до налаштованого типового значення.
|
||||
Перевизначення сесії мають перевагу над конфігурацією. Очищення перевизначення сесії в Sessions UI повертає сесію до налаштованого стандартного значення.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Priority processing (service_tier)">
|
||||
API OpenAI надає пріоритетну обробку через `service_tier`. Задайте її для кожної моделі в OpenClaw:
|
||||
<Accordion title="Пріоритетна обробка (service_tier)">
|
||||
API OpenAI надає пріоритетну обробку через `service_tier`. Встановіть її для кожної моделі в OpenClaw:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -814,22 +790,22 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
Підтримувані значення: `auto`, `default`, `flex`, `priority`.
|
||||
|
||||
<Warning>
|
||||
`serviceTier` передається лише до нативних кінцевих точок OpenAI (`api.openai.com`) і нативних кінцевих точок Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-який provider через проксі, OpenClaw залишає `service_tier` без змін.
|
||||
`serviceTier` передається лише до нативних кінцевих точок OpenAI (`api.openai.com`) і нативних кінцевих точок Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-якого з провайдерів через проксі, OpenClaw залишає `service_tier` без змін.
|
||||
</Warning>
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Server-side compaction (Responses API)">
|
||||
<Accordion title="Серверна Compaction (Responses API)">
|
||||
Для прямих моделей OpenAI Responses (`openai/*` на `api.openai.com`) потокова обгортка Pi-harness Plugin OpenAI автоматично вмикає серверну Compaction:
|
||||
|
||||
- Примусово задає `store: true` (якщо model compat не задає `supportsStore: false`)
|
||||
- Примусово встановлює `store: true` (якщо model compat не встановлює `supportsStore: false`)
|
||||
- Вставляє `context_management: [{ type: "compaction", compact_threshold: ... }]`
|
||||
- Типовий `compact_threshold`: 70% від `contextWindow` (або `80000`, коли недоступно)
|
||||
- Стандартне значення `compact_threshold`: 70% від `contextWindow` (або `80000`, коли недоступно)
|
||||
|
||||
Це застосовується до вбудованого шляху Pi harness і до хуків provider OpenAI, які використовують embedded runs. Нативний harness сервера застосунку Codex керує власним контекстом через Codex і налаштовується окремо за допомогою `agents.defaults.agentRuntime.id`.
|
||||
Це застосовується до вбудованого шляху Pi harness і до hooks провайдера OpenAI, які використовують вбудовані запуски. Нативний app-server harness Codex керує власним контекстом через Codex і налаштовується окремо за допомогою `agents.defaults.agentRuntime.id`.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Enable explicitly">
|
||||
<Tab title="Увімкнути явно">
|
||||
Корисно для сумісних кінцевих точок, як-от Azure OpenAI Responses:
|
||||
|
||||
```json5
|
||||
@ -846,7 +822,7 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
}
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Користувацький поріг">
|
||||
<Tab title="Власний поріг">
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
@ -864,7 +840,7 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
}
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Вимкнення">
|
||||
<Tab title="Вимкнути">
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
@ -882,13 +858,13 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
</Tabs>
|
||||
|
||||
<Note>
|
||||
`responsesServerCompaction` керує лише впровадженням `context_management`. Прямі моделі OpenAI Responses все одно примусово використовують `store: true`, якщо compat не встановлює `supportsStore: false`.
|
||||
`responsesServerCompaction` керує лише інʼєкцією `context_management`. Прямі моделі OpenAI Responses усе одно примусово використовують `store: true`, якщо шар сумісності не встановлює `supportsStore: false`.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Режим strict-agentic GPT">
|
||||
Для запусків родини GPT-5 на `openai/*` OpenClaw може використовувати суворіший вбудований контракт виконання:
|
||||
<Accordion title="Строгий агентний режим GPT">
|
||||
Для запусків сімейства GPT-5 на `openai/*` OpenClaw може використовувати строгіший вбудований контракт виконання:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -902,34 +878,34 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
|
||||
З `strict-agentic` OpenClaw:
|
||||
- Більше не вважає хід лише з планом успішним прогресом, коли доступна дія інструмента
|
||||
- Повторює хід із підказкою діяти негайно
|
||||
- Повторює хід зі скеровуванням діяти зараз
|
||||
- Автоматично вмикає `update_plan` для суттєвої роботи
|
||||
- Показує явний заблокований стан, якщо модель продовжує планувати без дій
|
||||
|
||||
<Note>
|
||||
Застосовується лише до запусків OpenAI і Codex родини GPT-5. Інші провайдери та старіші родини моделей зберігають типову поведінку.
|
||||
Обмежено лише запусками сімейства OpenAI і Codex GPT-5. Інші провайдери та старіші сімейства моделей зберігають типову поведінку.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Нативні та OpenAI-сумісні маршрути">
|
||||
OpenClaw обробляє прямі кінцеві точки OpenAI, Codex і Azure OpenAI інакше, ніж загальні OpenAI-сумісні проксі `/v1`:
|
||||
OpenClaw обробляє прямі кінцеві точки OpenAI, Codex і Azure OpenAI інакше, ніж універсальні OpenAI-сумісні проксі `/v1`:
|
||||
|
||||
**Нативні маршрути** (`openai/*`, Azure OpenAI):
|
||||
- Зберігають `reasoning: { effort: "none" }` лише для моделей, які підтримують рівень зусилля OpenAI `none`
|
||||
- Пропускають вимкнене reasoning для моделей або проксі, які відхиляють `reasoning.effort: "none"`
|
||||
- Типово використовують суворий режим для схем інструментів
|
||||
- Зберігають `reasoning: { effort: "none" }` лише для моделей, що підтримують рівень зусиль OpenAI `none`
|
||||
- Пропускають вимкнене міркування для моделей або проксі, які відхиляють `reasoning.effort: "none"`
|
||||
- Типово використовують строгий режим для схем інструментів
|
||||
- Додають приховані заголовки атрибуції лише на перевірених нативних хостах
|
||||
- Зберігають формування запитів, специфічне для OpenAI (`service_tier`, `store`, reasoning-compat, підказки prompt-cache)
|
||||
- Зберігають формування запитів, специфічне лише для OpenAI (`service_tier`, `store`, сумісність міркування, підказки кешу промптів)
|
||||
|
||||
**Проксі/сумісні маршрути:**
|
||||
- Використовують м’якшу compat-поведінку
|
||||
- Вилучають Completions `store` з ненативних payload `openai-completions`
|
||||
- Приймають наскрізний JSON `params.extra_body`/`params.extraBody` для OpenAI-сумісних проксі Completions
|
||||
- Використовують вільнішу поведінку сумісності
|
||||
- Вилучають Completions `store` з ненативних корисних навантажень `openai-completions`
|
||||
- Приймають розширений наскрізний JSON `params.extra_body`/`params.extraBody` для OpenAI-сумісних проксі Completions
|
||||
- Приймають `params.chat_template_kwargs` для OpenAI-сумісних проксі Completions, таких як vLLM
|
||||
- Не примушують суворі схеми інструментів або лише нативні заголовки
|
||||
- Не примушують строгі схеми інструментів або лише нативні заголовки
|
||||
|
||||
Azure OpenAI використовує нативний транспорт і compat-поведінку, але не отримує прихованих заголовків атрибуції.
|
||||
Azure OpenAI використовує нативний транспорт і поведінку сумісності, але не отримує приховані заголовки атрибуції.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -938,7 +914,7 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
|
||||
Вибір провайдерів, посилань на моделі та поведінки резервного перемикання.
|
||||
Вибір провайдерів, посилань на моделі та поведінки відновлення після збою.
|
||||
</Card>
|
||||
<Card title="Генерація зображень" href="/uk/tools/image-generation" icon="image">
|
||||
Спільні параметри інструмента зображень і вибір провайдера.
|
||||
@ -947,6 +923,6 @@ provider `azure-openai-responses/*`; дивіться accordion про серв
|
||||
Спільні параметри інструмента відео та вибір провайдера.
|
||||
</Card>
|
||||
<Card title="OAuth і автентифікація" href="/uk/gateway/authentication" icon="key">
|
||||
Відомості про автентифікацію та правила повторного використання облікових даних.
|
||||
Подробиці автентифікації та правила повторного використання облікових даних.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
---
|
||||
read_when:
|
||||
- Увімкнення text-to-speech для відповідей
|
||||
- Налаштування провайдера TTS, ланцюжка fallback або персони
|
||||
- Використання команд або директив `/tts`
|
||||
- Увімкнення перетворення тексту на мовлення для відповідей
|
||||
- Налаштування провайдера TTS, ланцюжка резервного перемикання або персони
|
||||
- Використання команд або директив /tts
|
||||
sidebarTitle: Text to speech (TTS)
|
||||
summary: Text-to-speech для вихідних відповідей — провайдери, персони, slash-команди та вивід для кожного каналу
|
||||
title: Text-to-speech
|
||||
summary: Перетворення тексту на мовлення для вихідних відповідей — провайдери, персони, slash-команди та виведення для кожного каналу
|
||||
title: Перетворення тексту на мовлення
|
||||
x-i18n:
|
||||
generated_at: "2026-04-28T00:36:16Z"
|
||||
model: gpt-5.4
|
||||
generated_at: "2026-05-01T22:03:36Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: ec58d19fbca0ff0cd9828f32c150123cad22f053a6b4281ed40ec3d1fa41d1b2
|
||||
source_hash: 8ff736249314fcfbc4f61c24a9c005c02e3582e2aa5fe0baac7e99c5e00f15e1
|
||||
source_path: tools/tts.md
|
||||
workflow: 15
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
OpenClaw може перетворювати вихідні відповіді на аудіо через **14 speech-провайдерів**
|
||||
і доставляти нативні голосові повідомлення у Feishu, Matrix, Telegram і WhatsApp,
|
||||
аудіовкладення всюди в інших місцях, а також потоки PCM/Ulaw для телефонії та Talk.
|
||||
OpenClaw може перетворювати вихідні відповіді на аудіо через **14 провайдерів мовлення**
|
||||
і надсилати нативні голосові повідомлення у Feishu, Matrix, Telegram і WhatsApp,
|
||||
аудіовкладення в усіх інших каналах, а також потоки PCM/Ulaw для телефонії та Talk.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
<Steps>
|
||||
<Step title="Виберіть провайдера">
|
||||
OpenAI та ElevenLabs — найнадійніші хостингові варіанти. Microsoft і
|
||||
Local CLI працюють без API-ключа. Повний список дивіться в [матриці провайдерів](#supported-providers).
|
||||
OpenAI і ElevenLabs — найнадійніші хостингові варіанти. Microsoft і
|
||||
Local CLI працюють без ключа API. Повний список див. у [матриці провайдерів](#supported-providers).
|
||||
</Step>
|
||||
<Step title="Установіть API-ключ">
|
||||
Експортуйте env-змінну для вашого провайдера (наприклад, `OPENAI_API_KEY`,
|
||||
`ELEVENLABS_API_KEY`). Для Microsoft і Local CLI ключ не потрібен.
|
||||
<Step title="Налаштуйте ключ API">
|
||||
Експортуйте змінну середовища для вашого провайдера (наприклад `OPENAI_API_KEY`,
|
||||
`ELEVENLABS_API_KEY`). Microsoft і Local CLI не потребують ключа.
|
||||
</Step>
|
||||
<Step title="Увімкніть у конфігурації">
|
||||
Установіть `messages.tts.auto: "always"` і `messages.tts.provider`:
|
||||
Задайте `messages.tts.auto: "always"` і `messages.tts.provider`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -52,47 +52,47 @@ OpenClaw може перетворювати вихідні відповіді
|
||||
</Steps>
|
||||
|
||||
<Note>
|
||||
Auto-TTS **вимкнено** за замовчуванням. Коли `messages.tts.provider` не задано,
|
||||
OpenClaw вибирає першого налаштованого провайдера в порядку auto-select реєстру.
|
||||
Auto-TTS за замовчуванням **вимкнено**. Коли `messages.tts.provider` не задано,
|
||||
OpenClaw вибирає першого налаштованого провайдера в порядку автоматичного вибору реєстру.
|
||||
</Note>
|
||||
|
||||
## Підтримувані провайдери
|
||||
|
||||
| Провайдер | Auth | Примітки |
|
||||
| ------------------ | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| **Azure Speech** | `AZURE_SPEECH_KEY` + `AZURE_SPEECH_REGION` (також `AZURE_SPEECH_API_KEY`, `SPEECH_KEY`, `SPEECH_REGION`) | Нативний вивід голосових нотаток Ogg/Opus і телефонії. |
|
||||
| **DeepInfra** | `DEEPINFRA_API_KEY` | TTS, сумісний з OpenAI. За замовчуванням `hexgrad/Kokoro-82M`. |
|
||||
| **ElevenLabs** | `ELEVENLABS_API_KEY` або `XI_API_KEY` | Клонування голосу, багатомовність, детермінованість через `seed`. |
|
||||
| **Google Gemini** | `GEMINI_API_KEY` або `GOOGLE_API_KEY` | TTS Gemini API; підтримує персони через `promptTemplate: "audio-profile-v1"`. |
|
||||
| **Gradium** | `GRADIUM_API_KEY` | Вивід голосових нотаток і телефонії. |
|
||||
| **Inworld** | `INWORLD_API_KEY` | Streaming TTS API. Нативний Opus для голосових нотаток і PCM для телефонії. |
|
||||
| **Local CLI** | none | Запускає налаштовану локальну команду TTS. |
|
||||
| **Microsoft** | none | Публічний Edge neural TTS через `node-edge-tts`. Best-effort, без SLA. |
|
||||
| **MiniMax** | `MINIMAX_API_KEY` (або Token Plan: `MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, `MINIMAX_CODING_API_KEY`) | API T2A v2. За замовчуванням `speech-2.8-hd`. |
|
||||
| **OpenAI** | `OPENAI_API_KEY` | Також використовується для auto-summary; підтримує персону `instructions`. |
|
||||
| **OpenRouter** | `OPENROUTER_API_KEY` (може повторно використовувати `models.providers.openrouter.apiKey`) | Типова модель `hexgrad/kokoro-82m`. |
|
||||
| **Volcengine** | `VOLCENGINE_TTS_API_KEY` або `BYTEPLUS_SEED_SPEECH_API_KEY` (застарілі AppID/token: `VOLCENGINE_TTS_APPID`/`_TOKEN`) | HTTP API BytePlus Seed Speech. |
|
||||
| **Vydra** | `VYDRA_API_KEY` | Спільний провайдер зображень, відео та мовлення. |
|
||||
| **xAI** | `XAI_API_KEY` | Пакетний TTS xAI. Нативний Opus для голосових нотаток **не** підтримується. |
|
||||
| **Xiaomi MiMo** | `XIAOMI_API_KEY` | TTS MiMo через chat completions Xiaomi. |
|
||||
| Провайдер | Авторизація | Примітки |
|
||||
| ----------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| **Azure Speech** | `AZURE_SPEECH_KEY` + `AZURE_SPEECH_REGION` (також `AZURE_SPEECH_API_KEY`, `SPEECH_KEY`, `SPEECH_REGION`) | Нативний вивід голосових нотаток Ogg/Opus і телефонія. |
|
||||
| **DeepInfra** | `DEEPINFRA_API_KEY` | TTS, сумісний з OpenAI. За замовчуванням `hexgrad/Kokoro-82M`. |
|
||||
| **ElevenLabs** | `ELEVENLABS_API_KEY` або `XI_API_KEY` | Клонування голосу, багатомовність, детермінованість через `seed`. |
|
||||
| **Google Gemini** | `GEMINI_API_KEY` або `GOOGLE_API_KEY` | TTS Gemini API; враховує персону через `promptTemplate: "audio-profile-v1"`. |
|
||||
| **Gradium** | `GRADIUM_API_KEY` | Вивід голосових нотаток і телефонії. |
|
||||
| **Inworld** | `INWORLD_API_KEY` | API потокового TTS. Нативна голосова нотатка Opus і телефонія PCM. |
|
||||
| **Local CLI** | немає | Запускає налаштовану локальну команду TTS. |
|
||||
| **Microsoft** | немає | Публічний нейронний TTS Edge через `node-edge-tts`. Найкраще можливе, без SLA. |
|
||||
| **MiniMax** | `MINIMAX_API_KEY` (або Token Plan: `MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, `MINIMAX_CODING_API_KEY`) | API T2A v2. За замовчуванням `speech-2.8-hd`. |
|
||||
| **OpenAI** | `OPENAI_API_KEY` | Також використовується для автопідсумку; підтримує `instructions` персони. |
|
||||
| **OpenRouter** | `OPENROUTER_API_KEY` (може повторно використовувати `models.providers.openrouter.apiKey`) | Модель за замовчуванням `hexgrad/kokoro-82m`. |
|
||||
| **Volcengine** | `VOLCENGINE_TTS_API_KEY` або `BYTEPLUS_SEED_SPEECH_API_KEY` (застарілі AppID/token: `VOLCENGINE_TTS_APPID`/`_TOKEN`) | HTTP API BytePlus Seed Speech. |
|
||||
| **Vydra** | `VYDRA_API_KEY` | Спільний провайдер зображень, відео й мовлення. |
|
||||
| **xAI** | `XAI_API_KEY` | Пакетний TTS xAI. Нативна голосова нотатка Opus **не** підтримується. |
|
||||
| **Xiaomi MiMo** | `XIAOMI_API_KEY` | MiMo TTS через чат-завершення Xiaomi. |
|
||||
|
||||
Якщо налаштовано кілька провайдерів, спочатку використовується вибраний,
|
||||
а інші стають fallback-варіантами. Auto-summary використовує `summaryModel` (або
|
||||
`agents.defaults.model.primary`), тож якщо ви залишаєте summaries увімкненими,
|
||||
цей провайдер також має бути автентифікований.
|
||||
Якщо налаштовано кілька провайдерів, спочатку використовується вибраний, а
|
||||
інші є резервними варіантами. Автопідсумок використовує `summaryModel` (або
|
||||
`agents.defaults.model.primary`), тому цей провайдер також має бути автентифікований,
|
||||
якщо ви залишаєте підсумки ввімкненими.
|
||||
|
||||
<Warning>
|
||||
Вбудований провайдер **Microsoft** використовує онлайновий neural TTS-сервіс Microsoft Edge
|
||||
через `node-edge-tts`. Це публічний вебсервіс без опублікованих
|
||||
SLA або квот — вважайте його best-effort. Застарілий ідентифікатор провайдера `edge`
|
||||
Вбудований провайдер **Microsoft** використовує онлайн-сервіс нейронного TTS Microsoft Edge
|
||||
через `node-edge-tts`. Це публічний вебсервіс без опублікованого
|
||||
SLA чи квоти — вважайте його сервісом без гарантованого результату. Застарілий ідентифікатор провайдера `edge`
|
||||
нормалізується до `microsoft`, а `openclaw doctor --fix` переписує збережену
|
||||
конфігурацію; у нових конфігураціях завжди слід використовувати `microsoft`.
|
||||
конфігурацію; нові конфігурації завжди мають використовувати `microsoft`.
|
||||
</Warning>
|
||||
|
||||
## Конфігурація
|
||||
|
||||
Конфігурація TTS розміщується в `messages.tts` у `~/.openclaw/openclaw.json`. Виберіть
|
||||
preset і адаптуйте блок провайдера:
|
||||
Конфігурація TTS зберігається в `messages.tts` у `~/.openclaw/openclaw.json`. Виберіть
|
||||
пресет і адаптуйте блок провайдера:
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Azure Speech">
|
||||
@ -148,8 +148,8 @@ preset і адаптуйте блок провайдера:
|
||||
apiKey: "${GEMINI_API_KEY}",
|
||||
model: "gemini-3.1-flash-tts-preview",
|
||||
voiceName: "Kore",
|
||||
// Необов’язкові запити стилю природною мовою:
|
||||
// audioProfile: "Говори спокійним тоном ведучого подкасту.",
|
||||
// Optional natural-language style prompts:
|
||||
// audioProfile: "Speak in a calm, podcast-host tone.",
|
||||
// speakerName: "Alex",
|
||||
},
|
||||
},
|
||||
@ -216,7 +216,7 @@ preset і адаптуйте блок провайдера:
|
||||
}
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Microsoft (без ключа)">
|
||||
<Tab title="Microsoft (no key)">
|
||||
```json5
|
||||
{
|
||||
messages: {
|
||||
@ -370,11 +370,11 @@ preset і адаптуйте блок провайдера:
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Перевизначення голосу для кожного agent
|
||||
### Перевизначення голосу для окремого агента
|
||||
|
||||
Використовуйте `agents.list[].tts`, коли один agent має говорити з іншим провайдером,
|
||||
голосом, моделлю, персоною або режимом auto-TTS. Блок agent виконує глибоке злиття поверх
|
||||
`messages.tts`, тому облікові дані провайдера можуть залишатися в глобальній конфігурації провайдера:
|
||||
Використовуйте `agents.list[].tts`, коли один агент має говорити з іншим провайдером,
|
||||
голосом, моделлю, персоною або режимом автоматичного TTS. Блок агента глибоко зливається поверх
|
||||
`messages.tts`, тож облікові дані провайдера можуть залишатися в глобальній конфігурації провайдера:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -402,23 +402,23 @@ preset і адаптуйте блок провайдера:
|
||||
}
|
||||
```
|
||||
|
||||
Щоб зафіксувати персону для конкретного agent, встановіть `agents.list[].tts.persona` разом із
|
||||
конфігурацією провайдера — це перевизначає глобальне `messages.tts.persona` лише для цього agent.
|
||||
Щоб закріпити персону для окремого агента, задайте `agents.list[].tts.persona` поруч із конфігурацією
|
||||
провайдера — це перевизначає глобальну `messages.tts.persona` лише для цього агента.
|
||||
|
||||
Порядок пріоритету для автоматичних відповідей, `/tts audio`, `/tts status` і
|
||||
інструмента agent `tts`:
|
||||
Порядок пріоритету для автоматичних відповідей, `/tts audio`, `/tts status` та
|
||||
інструмента агента `tts`:
|
||||
|
||||
1. `messages.tts`
|
||||
2. активний `agents.list[].tts`
|
||||
3. перевизначення каналу, коли канал підтримує `channels.<channel>.tts`
|
||||
4. перевизначення облікового запису, коли канал передає `channels.<channel>.accounts.<id>.tts`
|
||||
5. локальні налаштування `/tts` для цього host
|
||||
6. вбудовані директиви `[[tts:...]]`, коли [керовані моделлю перевизначення](#model-driven-directives) увімкнено
|
||||
5. локальні налаштування `/tts` для цього хоста
|
||||
6. вбудовані директиви `[[tts:...]]`, коли ввімкнено [перевизначення, керовані моделлю](#model-driven-directives)
|
||||
|
||||
Перевизначення каналу й облікового запису використовують ту саму форму, що й `messages.tts`, і
|
||||
виконують глибоке злиття поверх попередніх шарів, тому спільні облікові дані провайдера можуть залишатися в
|
||||
`messages.tts`, тоді як канал або обліковий запис бота змінює лише voice, model, persona
|
||||
або режим auto:
|
||||
Перевизначення каналів і облікових записів використовують ту саму форму, що й `messages.tts`, і
|
||||
глибоко зливаються поверх попередніх шарів, тому спільні облікові дані провайдера можуть залишатися в
|
||||
`messages.tts`, тоді як канал або обліковий запис бота змінює лише голос, модель, персону
|
||||
або автоматичний режим:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -448,10 +448,10 @@ preset і адаптуйте блок провайдера:
|
||||
|
||||
## Персони
|
||||
|
||||
**Персона** — це стабільна мовленнєва ідентичність, яку можна детерміновано
|
||||
застосовувати в різних провайдерів. Вона може надавати перевагу одному провайдеру, визначати
|
||||
нейтральний щодо провайдера намір prompt і містити прив’язки, специфічні для провайдера, для голосів, моделей, prompt-
|
||||
templates, seeds і voice settings.
|
||||
**Персона** — це стабільна мовлена ідентичність, яку можна детерміновано застосовувати
|
||||
між провайдерами. Вона може віддавати перевагу одному провайдеру, визначати
|
||||
провайдерно-нейтральний намір підказки та містити прив’язки, специфічні для провайдера:
|
||||
голоси, моделі, шаблони підказок, зерна та налаштування голосу.
|
||||
|
||||
### Мінімальна персона
|
||||
|
||||
@ -463,7 +463,7 @@ templates, seeds і voice settings.
|
||||
persona: "narrator",
|
||||
personas: {
|
||||
narrator: {
|
||||
label: "Оповідач",
|
||||
label: "Narrator",
|
||||
provider: "elevenlabs",
|
||||
providers: {
|
||||
elevenlabs: { voiceId: "EXAVITQu4vr4xnSDxMaL", modelId: "eleven_multilingual_v2" },
|
||||
@ -475,7 +475,7 @@ templates, seeds і voice settings.
|
||||
}
|
||||
```
|
||||
|
||||
### Повна персона (нейтральний щодо провайдера prompt)
|
||||
### Повна персона (провайдерно-нейтральна підказка)
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -486,17 +486,17 @@ templates, seeds і voice settings.
|
||||
personas: {
|
||||
alfred: {
|
||||
label: "Alfred",
|
||||
description: "Сухий, теплий британський голос оповідача-дворецького.",
|
||||
description: "Dry, warm British butler narrator.",
|
||||
provider: "google",
|
||||
fallbackPolicy: "preserve-persona",
|
||||
prompt: {
|
||||
profile: "Блискучий британський дворецький. Сухий, дотепний, теплий, чарівний, емоційно виразний, ніколи не загальний.",
|
||||
scene: "Тихий пізньовечірній кабінет. Оповідь біля мікрофона для довіреного оператора.",
|
||||
sampleContext: "Мовець відповідає на приватний технічний запит стисло, впевнено й із сухою теплотою.",
|
||||
style: "Вишуканий, стриманий, з легкою усмішкою.",
|
||||
accent: "Британська англійська.",
|
||||
pacing: "Розмірений, із короткими драматичними паузами.",
|
||||
constraints: ["Не зачитувати вголос значення конфігурації.", "Не пояснювати персону."],
|
||||
profile: "A brilliant British butler. Dry, witty, warm, charming, emotionally expressive, never generic.",
|
||||
scene: "A quiet late-night study. Close-mic narration for a trusted operator.",
|
||||
sampleContext: "The speaker is answering a private technical request with concise confidence and dry warmth.",
|
||||
style: "Refined, understated, lightly amused.",
|
||||
accent: "British English.",
|
||||
pacing: "Measured, with short dramatic pauses.",
|
||||
constraints: ["Do not read configuration values aloud.", "Do not explain the persona."],
|
||||
},
|
||||
providers: {
|
||||
google: {
|
||||
@ -529,98 +529,98 @@ templates, seeds і voice settings.
|
||||
|
||||
Активна персона вибирається детерміновано:
|
||||
|
||||
1. локальне налаштування `/tts persona <id>`, якщо встановлено.
|
||||
2. `messages.tts.persona`, якщо встановлено.
|
||||
3. Персона відсутня.
|
||||
1. Локальне налаштування `/tts persona <id>`, якщо задано.
|
||||
2. `messages.tts.persona`, якщо задано.
|
||||
3. Без персони.
|
||||
|
||||
Вибір провайдера виконується за принципом explicit-first:
|
||||
Вибір провайдера виконується за принципом явного пріоритету:
|
||||
|
||||
1. Прямі перевизначення (CLI, gateway, Talk, дозволені директиви TTS).
|
||||
1. Прямі перевизначення (CLI, Gateway, Talk, дозволені директиви TTS).
|
||||
2. Локальне налаштування `/tts provider <id>`.
|
||||
3. `provider` активної персони.
|
||||
4. `messages.tts.provider`.
|
||||
5. Auto-select реєстру.
|
||||
5. Автовибір реєстру.
|
||||
|
||||
Для кожної спроби з провайдером OpenClaw об’єднує конфігурації в такому порядку:
|
||||
Для кожної спроби провайдера OpenClaw зливає конфігурації в такому порядку:
|
||||
|
||||
1. `messages.tts.providers.<id>`
|
||||
2. `messages.tts.personas.<persona>.providers.<id>`
|
||||
3. Довірені перевизначення запиту
|
||||
4. Дозволені перевизначення директив TTS, згенерованих моделлю
|
||||
4. Дозволені перевизначення директив TTS, згенеровані моделлю
|
||||
|
||||
### Як провайдери використовують prompt персони
|
||||
### Як провайдери використовують підказки персони
|
||||
|
||||
Поля prompt персони (`profile`, `scene`, `sampleContext`, `style`, `accent`,
|
||||
`pacing`, `constraints`) є **нейтральними щодо провайдера**. Кожен провайдер сам вирішує, як
|
||||
їх використовувати:
|
||||
Поля підказки персони (`profile`, `scene`, `sampleContext`, `style`, `accent`,
|
||||
`pacing`, `constraints`) є **провайдерно-нейтральними**. Кожен провайдер вирішує,
|
||||
як їх використовувати:
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Google Gemini">
|
||||
Обгортає поля prompt персони в структуру prompt Gemini TTS **лише коли**
|
||||
ефективна конфігурація провайдера Google встановлює `promptTemplate: "audio-profile-v1"`
|
||||
або `personaPrompt`. Старіші поля `audioProfile` і `speakerName` усе ще
|
||||
додаються на початок як текст prompt, специфічний для Google. Вбудовані audio-теги, такі як
|
||||
Обгортає поля підказки персони в структуру підказки Gemini TTS **лише тоді, коли**
|
||||
ефективна конфігурація провайдера Google задає `promptTemplate: "audio-profile-v1"`
|
||||
або `personaPrompt`. Старіші поля `audioProfile` і `speakerName` все ще
|
||||
додаються на початок як специфічний для Google текст підказки. Вбудовані аудіотеги, як-от
|
||||
`[whispers]` або `[laughs]` усередині блоку `[[tts:text]]`, зберігаються
|
||||
в transcript Gemini; OpenClaw не генерує ці теги.
|
||||
в транскрипті Gemini; OpenClaw не генерує ці теги.
|
||||
</Accordion>
|
||||
<Accordion title="OpenAI">
|
||||
Відображає поля prompt персони в поле запиту `instructions` **лише коли**
|
||||
не налаштовано явне `instructions` для OpenAI. Явне `instructions`
|
||||
завжди має пріоритет.
|
||||
Зіставляє поля підказки персони з полем запиту `instructions` **лише тоді, коли**
|
||||
явні OpenAI `instructions` не налаштовано. Явні `instructions`
|
||||
завжди мають пріоритет.
|
||||
</Accordion>
|
||||
<Accordion title="Інші провайдери">
|
||||
Використовують лише прив’язки персони, специфічні для провайдера, у
|
||||
`personas.<id>.providers.<provider>`. Поля prompt персони ігноруються,
|
||||
якщо провайдер не реалізує власне зіставлення persona-prompt.
|
||||
Використовують лише специфічні для провайдера прив’язки персони в
|
||||
`personas.<id>.providers.<provider>`. Поля підказки персони ігноруються,
|
||||
якщо провайдер не реалізує власне зіставлення підказок персони.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### Політика fallback
|
||||
### Політика резервного переходу
|
||||
|
||||
`fallbackPolicy` керує поведінкою, коли персона **не має прив’язки** для
|
||||
провайдера, що перевіряється:
|
||||
провайдера, який пробують використати:
|
||||
|
||||
| Політика | Поведінка |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `preserve-persona` | **За замовчуванням.** Нейтральні щодо провайдера поля prompt залишаються доступними; провайдер може використовувати їх або ігнорувати. |
|
||||
| `provider-defaults` | Персона виключається з підготовки prompt для цієї спроби; провайдер використовує свої нейтральні значення за замовчуванням, поки fallback до інших провайдерів триває. |
|
||||
| `fail` | Пропускає цю спробу провайдера з `reasonCode: "not_configured"` і `personaBinding: "missing"`. Fallback-провайдери все одно будуть перевірятися. |
|
||||
| `preserve-persona` | **Типово.** Провайдерно-нейтральні поля підказки залишаються доступними; провайдер може використовувати їх або ігнорувати. |
|
||||
| `provider-defaults` | Персона вилучається з підготовки підказки для цієї спроби; провайдер використовує свої нейтральні типові значення, поки резервний перехід до інших провайдерів триває. |
|
||||
| `fail` | Пропустити цю спробу провайдера з `reasonCode: "not_configured"` і `personaBinding: "missing"`. Резервні провайдери все ще пробуються. |
|
||||
|
||||
Увесь запит TTS завершується помилкою лише тоді, коли **кожен** перевірений провайдер пропущено
|
||||
або він завершився помилкою.
|
||||
Увесь запит TTS завершується невдачею лише тоді, коли **кожну** спробу провайдера пропущено
|
||||
або вона завершилась помилкою.
|
||||
|
||||
## Директиви, керовані моделлю
|
||||
|
||||
За замовчуванням assistant **може** виводити директиви `[[tts:...]]` для перевизначення
|
||||
voice, model або speed для однієї відповіді, а також необов’язковий
|
||||
блок `[[tts:text]]...[[/tts:text]]` для виразних підказок, які мають з’явитися
|
||||
За замовчуванням помічник **може** виводити директиви `[[tts:...]]`, щоб перевизначити
|
||||
голос, модель або швидкість для однієї відповіді, а також необов’язковий блок
|
||||
`[[tts:text]]...[[/tts:text]]` для виразних підказок, які мають з’являтися
|
||||
лише в аудіо:
|
||||
|
||||
```text
|
||||
Ось.
|
||||
Here you go.
|
||||
|
||||
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
|
||||
[[tts:text]](сміється) Прочитай пісню ще раз.[[/tts:text]]
|
||||
[[tts:text]](laughs) Read the song once more.[[/tts:text]]
|
||||
```
|
||||
|
||||
Коли `messages.tts.auto` має значення `"tagged"`, для запуску
|
||||
аудіо **обов’язково потрібні директиви**. Потокова доставка блоків прибирає директиви з видимого тексту до того, як
|
||||
канал їх побачить, навіть якщо вони розбиті між сусідніми блоками.
|
||||
Коли `messages.tts.auto` має значення `"tagged"`, **директиви обов’язкові** для запуску
|
||||
аудіо. Потокова доставка блоків прибирає директиви з видимого тексту до того, як
|
||||
канал їх побачить, навіть якщо вони розділені між сусідніми блоками.
|
||||
|
||||
`provider=...` ігнорується, якщо не встановлено `modelOverrides.allowProvider: true`. Коли
|
||||
`provider=...` ігнорується, якщо `modelOverrides.allowProvider: true` не задано. Коли
|
||||
відповідь оголошує `provider=...`, інші ключі в цій директиві аналізуються
|
||||
лише цим провайдером; непідтримувані ключі видаляються й повідомляються як попередження
|
||||
директив TTS.
|
||||
лише цим провайдером; непідтримувані ключі вилучаються й повідомляються як
|
||||
попередження директив TTS.
|
||||
|
||||
**Доступні ключі директив:**
|
||||
|
||||
- `provider` (ідентифікатор зареєстрованого провайдера; потребує `allowProvider: true`)
|
||||
- `provider` (зареєстрований ідентифікатор провайдера; потребує `allowProvider: true`)
|
||||
- `voice` / `voiceName` / `voice_name` / `google_voice` / `voiceId`
|
||||
- `model` / `google_model`
|
||||
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
|
||||
- `vol` / `volume` (гучність MiniMax, 0–10)
|
||||
- `pitch` (цілочисельний pitch MiniMax, від −12 до 12; дробові значення відкидаються)
|
||||
- `emotion` (тег emotion у Volcengine)
|
||||
- `pitch` (цілочисельна висота тону MiniMax, −12 до 12; дробові значення обрізаються)
|
||||
- `emotion` (тег емоції Volcengine)
|
||||
- `applyTextNormalization` (`auto|on|off`)
|
||||
- `languageCode` (ISO 639-1)
|
||||
- `seed`
|
||||
@ -631,7 +631,7 @@ voice, model або speed для однієї відповіді, а також
|
||||
{ messages: { tts: { modelOverrides: { enabled: false } } } }
|
||||
```
|
||||
|
||||
**Дозволити перемикання провайдера, залишаючи інші параметри налаштовуваними:**
|
||||
**Дозволити перемикання провайдера, зберігаючи інші регулятори налаштовуваними:**
|
||||
|
||||
```json5
|
||||
{ messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }
|
||||
@ -639,8 +639,8 @@ voice, model або speed для однієї відповіді, а також
|
||||
|
||||
## Slash-команди
|
||||
|
||||
Єдина команда `/tts`. У Discord OpenClaw також реєструє `/voice`, оскільки
|
||||
`/tts` — це вбудована команда Discord — текстова форма `/tts ...` усе одно працює.
|
||||
Одна команда `/tts`. У Discord OpenClaw також реєструє `/voice`, оскільки
|
||||
`/tts` є вбудованою командою Discord — текстова `/tts ...` все одно працює.
|
||||
|
||||
```text
|
||||
/tts off | on | status
|
||||
@ -654,325 +654,327 @@ voice, model або speed для однієї відповіді, а також
|
||||
```
|
||||
|
||||
<Note>
|
||||
Команди потребують авторизованого відправника (діють правила allowlist/owner) і
|
||||
має бути ввімкнено або `commands.text`, або нативну реєстрацію команд.
|
||||
Команди потребують авторизованого відправника (застосовуються правила allowlist/власника), а також
|
||||
має бути ввімкнено `commands.text` або нативну реєстрацію команд.
|
||||
</Note>
|
||||
|
||||
Примітки щодо поведінки:
|
||||
Нотатки щодо поведінки:
|
||||
|
||||
- `/tts on` записує локальне налаштування TTS як `always`; `/tts off` записує його як `off`.
|
||||
- `/tts chat on|off|default` записує session-scoped перевизначення auto-TTS для поточного чату.
|
||||
- `/tts chat on|off|default` записує перевизначення auto-TTS в межах сесії для поточного чату.
|
||||
- `/tts persona <id>` записує локальне налаштування персони; `/tts persona off` очищує його.
|
||||
- `/tts latest` зчитує останню відповідь assistant із transcript поточного сеансу й один раз надсилає її як аудіо. Він зберігає лише hash цієї відповіді в записі сеансу, щоб придушити дублікати голосових надсилань.
|
||||
- `/tts latest` читає останню відповідь помічника з поточного транскрипту сесії та надсилає її як аудіо один раз. Він зберігає лише хеш цієї відповіді в записі сесії, щоб пригнічувати дублікати голосових надсилань.
|
||||
- `/tts audio` генерує одноразову аудіовідповідь (**не** вмикає TTS).
|
||||
- `limit` і `summary` зберігаються в **локальних налаштуваннях**, а не в основній конфігурації.
|
||||
- `/tts status` включає діагностику fallback для останньої спроби — `Fallback: <primary> -> <used>`, `Attempts: ...` і подробиці для кожної спроби (`provider:outcome(reasonCode) latency`).
|
||||
- `/status` показує активний режим TTS, а також налаштовані провайдер, модель, голос і санітизовані метадані custom endpoint, коли TTS увімкнено.
|
||||
- `/tts status` включає діагностику резервного переходу для останньої спроби — `Fallback: <primary> -> <used>`, `Attempts: ...` і деталі кожної спроби (`provider:outcome(reasonCode) latency`).
|
||||
- `/status` показує активний режим TTS, а також налаштовані провайдера, модель, голос і санітизовані метадані користувацького кінцевого пункту, коли TTS увімкнено.
|
||||
|
||||
## Налаштування для кожного користувача
|
||||
|
||||
Slash-команди записують локальні перевизначення в `prefsPath`. За замовчуванням це
|
||||
`~/.openclaw/settings/tts.json`; перевизначити можна через env-змінну `OPENCLAW_TTS_PREFS`
|
||||
Slash-команди записують локальні перевизначення в `prefsPath`. Типове значення:
|
||||
`~/.openclaw/settings/tts.json`; перевизначте його через змінну середовища `OPENCLAW_TTS_PREFS`
|
||||
або `messages.tts.prefsPath`.
|
||||
|
||||
| Збережене поле | Ефект |
|
||||
| -------------- | ------------------------------------------ |
|
||||
| Збережене поле | Ефект |
|
||||
| -------------- | ------------------------------------------------ |
|
||||
| `auto` | Локальне перевизначення auto-TTS (`always`, `off`, …) |
|
||||
| `provider` | Локальне перевизначення основного провайдера |
|
||||
| `persona` | Локальне перевизначення персони |
|
||||
| `maxLength` | Поріг summary (типово `1500` символів) |
|
||||
| `summarize` | Перемикач summary (типово `true`) |
|
||||
| `provider` | Локальне перевизначення основного провайдера |
|
||||
| `persona` | Локальне перевизначення персони |
|
||||
| `maxLength` | Поріг підсумовування (типово `1500` символів) |
|
||||
| `summarize` | Перемикач підсумовування (типово `true`) |
|
||||
|
||||
Вони перевизначають ефективну конфігурацію з `messages.tts` разом з активним
|
||||
блоком `agents.list[].tts` для цього host.
|
||||
Вони перевизначають ефективну конфігурацію з `messages.tts` плюс активний
|
||||
блок `agents.list[].tts` для цього хоста.
|
||||
|
||||
## Формати виводу (фіксовані)
|
||||
|
||||
Доставка голосу TTS визначається можливостями каналу. Plugins каналів оголошують,
|
||||
чи має TTS у стилі voice просити провайдерів про нативну ціль `voice-note`, чи
|
||||
зберігати звичайний синтез `audio-file` і лише позначати сумісний вивід для
|
||||
голосової доставки.
|
||||
Голосова доставка TTS керується можливостями каналу. Channel plugins оголошують,
|
||||
чи має голосовий TTS просити провайдерів про нативну ціль `voice-note`, чи
|
||||
зберігати звичайний синтез `audio-file` і лише позначати сумісний вивід для голосової
|
||||
доставки.
|
||||
|
||||
- **Канали з підтримкою voice-note**: відповіді у форматі voice-note віддають перевагу Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI).
|
||||
- 48 кГц / 64 кбіт/с — хороший компроміс для голосових повідомлень.
|
||||
- **Feishu / WhatsApp**: коли відповідь у форматі voice-note створюється як MP3/WebM/WAV/M4A
|
||||
або інший імовірний аудіофайл, Plugin каналу перекодовує її в 48 кГц
|
||||
- **Канали з підтримкою голосових нотаток**: відповіді голосовими нотатками надають перевагу Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI).
|
||||
- 48 кГц / 64 кбіт/с — добрий компроміс для голосових повідомлень.
|
||||
- **Feishu / WhatsApp**: коли відповідь голосовою нотаткою створюється як MP3/WebM/WAV/M4A
|
||||
або інший імовірний аудіофайл, Plugin каналу транскодує її у 48 кГц
|
||||
Ogg/Opus за допомогою `ffmpeg` перед надсиланням нативного голосового повідомлення. WhatsApp надсилає
|
||||
результат через payload Baileys `audio` з `ptt: true` і
|
||||
`audio/ogg; codecs=opus`. Якщо конвертація завершується помилкою, Feishu отримує початковий
|
||||
файл як вкладення; надсилання WhatsApp завершується помилкою замість публікації несумісного
|
||||
`audio/ogg; codecs=opus`. Якщо конвертація не вдається, Feishu отримує оригінальний
|
||||
файл як вкладення; надсилання WhatsApp завершується помилкою, а не публікує несумісний
|
||||
payload PTT.
|
||||
- **BlueBubbles**: залишає синтез провайдера на звичайному шляху audio-file; виводи MP3
|
||||
і CAF позначаються для доставки голосових нотаток iMessage.
|
||||
- **BlueBubbles**: зберігає синтез провайдера у звичайному шляху аудіофайлу; вихідні файли MP3
|
||||
і CAF позначаються для доставлення голосової нотатки iMessage.
|
||||
- **Інші канали**: MP3 (`mp3_44100_128` від ElevenLabs, `mp3` від OpenAI).
|
||||
- 44,1 кГц / 128 кбіт/с — типовий баланс для чіткості мовлення.
|
||||
- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц) для звичайних аудіовкладень. Для оголошених каналом цілей voice-note OpenClaw перекодовує MP3 MiniMax у 48 кГц Opus за допомогою `ffmpeg` перед доставкою, коли канал оголошує підтримку перекодування.
|
||||
- **Xiaomi MiMo**: MP3 за замовчуванням або WAV, якщо налаштовано. Для оголошених каналом цілей voice-note OpenClaw перекодовує вивід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставкою, коли канал оголошує підтримку перекодування.
|
||||
- **Local CLI**: використовує налаштований `outputFormat`. Цілі voice-note
|
||||
конвертуються в Ogg/Opus, а вивід для телефонії — у сирий 16 кГц моно PCM
|
||||
- 44,1 кГц / 128 кбіт/с — стандартний баланс для чіткості мовлення.
|
||||
- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц) для звичайних аудіовкладень. Для оголошених каналом цілей голосових нотаток OpenClaw транскодує MiniMax MP3 у 48 кГц Opus за допомогою `ffmpeg` перед доставленням, коли канал оголошує транскодування.
|
||||
- **Xiaomi MiMo**: MP3 за замовчуванням або WAV, якщо налаштовано. Для оголошених каналом цілей голосових нотаток OpenClaw транскодує вихід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставленням, коли канал оголошує транскодування.
|
||||
- **Локальний CLI**: використовує налаштований `outputFormat`. Цілі голосових нотаток
|
||||
конвертуються в Ogg/Opus, а телефонний вихід конвертується в сирий 16 кГц моно PCM
|
||||
за допомогою `ffmpeg`.
|
||||
- **Google Gemini**: Gemini API TTS повертає сирий 24 кГц PCM. OpenClaw обгортає його у WAV для аудіовкладень, перекодовує в 48 кГц Opus для цілей voice-note і повертає PCM напряму для Talk/телефонії.
|
||||
- **Gradium**: WAV для аудіовкладень, Opus для цілей voice-note і `ulaw_8000` на 8 кГц для телефонії.
|
||||
- **Inworld**: MP3 для звичайних аудіовкладень, нативний `OGG_OPUS` для цілей voice-note і сирий `PCM` на 22050 Гц для Talk/телефонії.
|
||||
- **xAI**: MP3 за замовчуванням; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує пакетну REST-кінцеву точку TTS xAI і повертає повністю готове аудіовкладення; потоковий WebSocket TTS xAI цим шляхом провайдера не використовується. Нативний формат voice-note Opus цим шляхом не підтримується.
|
||||
- **Microsoft**: використовує `microsoft.outputFormat` (типово `audio-24khz-48kbitrate-mono-mp3`).
|
||||
- Вбудований transport приймає `outputFormat`, але не всі формати доступні в сервісі.
|
||||
- Значення формату виводу відповідають форматам виводу Microsoft Speech (зокрема Ogg/WebM Opus).
|
||||
- `sendVoice` у Telegram приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні
|
||||
- **Google Gemini**: Gemini API TTS повертає сирий 24 кГц PCM. OpenClaw обгортає його як WAV для аудіовкладень, транскодує його у 48 кГц Opus для цілей голосових нотаток і повертає PCM напряму для Talk/телефонії.
|
||||
- **Gradium**: WAV для аудіовкладень, Opus для цілей голосових нотаток і `ulaw_8000` на 8 кГц для телефонії.
|
||||
- **Inworld**: MP3 для звичайних аудіовкладень, нативний `OGG_OPUS` для цілей голосових нотаток і сирий `PCM` на 22050 Гц для Talk/телефонії.
|
||||
- **xAI**: MP3 за замовчуванням; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує batch REST TTS endpoint xAI і повертає повне аудіовкладення; streaming TTS WebSocket xAI не використовується цим шляхом провайдера. Нативний формат голосових нотаток Opus не підтримується цим шляхом.
|
||||
- **Microsoft**: використовує `microsoft.outputFormat` (за замовчуванням `audio-24khz-48kbitrate-mono-mp3`).
|
||||
- Вбудований транспорт приймає `outputFormat`, але не всі формати доступні із сервісу.
|
||||
- Значення формату виходу відповідають форматам виходу Microsoft Speech (зокрема Ogg/WebM Opus).
|
||||
- Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні
|
||||
гарантовані голосові повідомлення Opus.
|
||||
- Якщо налаштований формат виводу Microsoft завершується помилкою, OpenClaw повторює спробу з MP3.
|
||||
- Якщо налаштований формат виходу Microsoft завершується помилкою, OpenClaw повторює спробу з MP3.
|
||||
|
||||
Формати виводу OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище).
|
||||
Формати виходу OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище).
|
||||
|
||||
## Поведінка auto-TTS
|
||||
## Поведінка Auto-TTS
|
||||
|
||||
Коли `messages.tts.auto` увімкнено, OpenClaw:
|
||||
|
||||
- Пропускає TTS, якщо відповідь уже містить медіа або директиву `MEDIA:`.
|
||||
- Пропускає дуже короткі відповіді (менше 10 символів).
|
||||
- Узагальнює довгі відповіді, якщо summaries увімкнено, використовуючи
|
||||
- Узагальнює довгі відповіді, коли узагальнення увімкнені, використовуючи
|
||||
`summaryModel` (або `agents.defaults.model.primary`).
|
||||
- Додає згенероване аудіо до відповіді.
|
||||
- У режимі `mode: "final"` усе одно надсилає TTS лише як аудіо для фінальних потокових відповідей
|
||||
після завершення текстового потоку; згенеровані медіадані проходять ту саму
|
||||
- У `mode: "final"` усе одно надсилає audio-only TTS для streamed final replies
|
||||
після завершення текстового stream; згенероване медіа проходить через ту саму
|
||||
нормалізацію медіа каналу, що й звичайні вкладення відповіді.
|
||||
|
||||
Якщо відповідь перевищує `maxLength`, а summary вимкнено (або немає API-ключа для
|
||||
моделі summary), аудіо пропускається й надсилається звичайна текстова відповідь.
|
||||
Якщо відповідь перевищує `maxLength`, а узагальнення вимкнене (або немає API key для
|
||||
моделі узагальнення), аудіо пропускається, і надсилається звичайна текстова відповідь.
|
||||
|
||||
```text
|
||||
Відповідь -> TTS увімкнено?
|
||||
ні -> надіслати текст
|
||||
так -> є медіа / MEDIA: / коротка?
|
||||
так -> надіслати текст
|
||||
ні -> довжина > ліміт?
|
||||
ні -> TTS -> додати аудіо
|
||||
так -> summary увімкнено?
|
||||
ні -> надіслати текст
|
||||
так -> summary -> TTS -> додати аудіо
|
||||
Reply -> TTS enabled?
|
||||
no -> send text
|
||||
yes -> has media / MEDIA: / short?
|
||||
yes -> send text
|
||||
no -> length > limit?
|
||||
no -> TTS -> attach audio
|
||||
yes -> summary enabled?
|
||||
no -> send text
|
||||
yes -> summarize -> TTS -> attach audio
|
||||
```
|
||||
|
||||
## Формати виводу за каналом
|
||||
## Формати виходу за каналом
|
||||
|
||||
| Ціль | Формат |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Feishu / Matrix / Telegram / WhatsApp | Відповіді у форматі voice-note віддають перевагу **Opus** (`opus_48000_64` від ElevenLabs, `opus` від OpenAI). 48 кГц / 64 кбіт/с балансує чіткість і розмір. |
|
||||
| Інші канали | **MP3** (`mp3_44100_128` від ElevenLabs, `mp3` від OpenAI). 44,1 кГц / 128 кбіт/с — типовий варіант для мовлення. |
|
||||
| Talk / телефонія | Нативний для провайдера **PCM** (Inworld 22050 Гц, Google 24 кГц) або `ulaw_8000` від Gradium для телефонії. |
|
||||
| Ціль | Формат |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Feishu / Matrix / Telegram / WhatsApp | Відповіді голосовими нотатками надають перевагу **Opus** (`opus_48000_64` від ElevenLabs, `opus` від OpenAI). 48 кГц / 64 кбіт/с балансує чіткість і розмір. |
|
||||
| Інші канали | **MP3** (`mp3_44100_128` від ElevenLabs, `mp3` від OpenAI). 44,1 кГц / 128 кбіт/с типово для мовлення. |
|
||||
| Talk / телефонія | Нативний для постачальника **PCM** (Inworld 22050 Гц, Google 24 кГц) або `ulaw_8000` від Gradium для телефонії. |
|
||||
|
||||
Примітки для окремих провайдерів:
|
||||
Примітки за постачальниками:
|
||||
|
||||
- **Перекодування Feishu / WhatsApp:** Коли відповідь у форматі voice-note надходить як MP3/WebM/WAV/M4A, Plugin каналу перекодовує її у 48 кГц Ogg/Opus за допомогою `ffmpeg`. WhatsApp надсилає через Baileys з `ptt: true` і `audio/ogg; codecs=opus`. Якщо конвертація завершується помилкою: Feishu повертається до вкладення початкового файла; надсилання WhatsApp завершується помилкою замість публікації несумісного payload PTT.
|
||||
- **MiniMax / Xiaomi MiMo:** Типово MP3 (32 кГц для MiniMax `speech-2.8-hd`); перекодовується в 48 кГц Opus для цілей voice-note через `ffmpeg`.
|
||||
- **Local CLI:** Використовує налаштований `outputFormat`. Цілі voice-note конвертуються в Ogg/Opus, а вивід для телефонії — у сирий 16 кГц моно PCM.
|
||||
- **Google Gemini:** Повертає сирий 24 кГц PCM. OpenClaw обгортає його у WAV для вкладень, перекодовує в 48 кГц Opus для цілей voice-note, повертає PCM напряму для Talk/телефонії.
|
||||
- **Inworld:** MP3-вкладення, нативний `OGG_OPUS` для voice-note, сирий `PCM` 22050 Гц для Talk/телефонії.
|
||||
- **xAI:** MP3 за замовчуванням; `responseFormat` може бути `mp3|wav|pcm|mulaw|alaw`. Використовує пакетну кінцеву точку REST xAI — потоковий WebSocket TTS **не** використовується. Нативний формат voice-note Opus **не** підтримується.
|
||||
- **Microsoft:** Використовує `microsoft.outputFormat` (типово `audio-24khz-48kbitrate-mono-mp3`). `sendVoice` у Telegram приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні гарантовані голосові повідомлення Opus. Якщо налаштований формат Microsoft завершується помилкою, OpenClaw повторює спробу з MP3.
|
||||
- **Транскодування Feishu / WhatsApp:** Коли відповідь голосовою нотаткою надходить як MP3/WebM/WAV/M4A, Plugin каналу транскодує її в 48 кГц Ogg/Opus за допомогою `ffmpeg`. WhatsApp надсилає через Baileys із `ptt: true` та `audio/ogg; codecs=opus`. Якщо перетворення не вдається: Feishu повертається до вкладення оригінального файлу; надсилання WhatsApp завершується помилкою замість публікації несумісного PTT-навантаження.
|
||||
- **MiniMax / Xiaomi MiMo:** Типово MP3 (32 кГц для MiniMax `speech-2.8-hd`); транскодується в 48 кГц Opus для цілей голосових нотаток через `ffmpeg`.
|
||||
- **Локальний CLI:** Використовує налаштований `outputFormat`. Цілі голосових нотаток перетворюються на Ogg/Opus, а телефонний вихід — на сирий моно PCM 16 кГц.
|
||||
- **Google Gemini:** Повертає сирий PCM 24 кГц. OpenClaw обгортає його як WAV для вкладень, транскодує в 48 кГц Opus для цілей голосових нотаток, повертає PCM напряму для Talk/телефонії.
|
||||
- **Inworld:** MP3-вкладення, нативний `OGG_OPUS` для голосових нотаток, сирий `PCM` 22050 Гц для Talk/телефонії.
|
||||
- **xAI:** Типово MP3; `responseFormat` може бути `mp3|wav|pcm|mulaw|alaw`. Використовує пакетну REST-кінцеву точку xAI — потоковий WebSocket TTS **не** використовується. Нативний формат Opus для голосових нотаток **не** підтримується.
|
||||
- **Microsoft:** Використовує `microsoft.outputFormat` (типово `audio-24khz-48kbitrate-mono-mp3`). Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні гарантовані голосові повідомлення Opus. Якщо налаштований формат Microsoft завершується помилкою, OpenClaw повторює спробу з MP3.
|
||||
|
||||
Формати виводу OpenAI та ElevenLabs фіксовані для кожного каналу, як указано вище.
|
||||
Формати виводу OpenAI та ElevenLabs фіксовані для кожного каналу, як зазначено вище.
|
||||
|
||||
## Довідник полів
|
||||
## Довідник полів
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Верхньорівневі messages.tts.*">
|
||||
<AccordionGroup>
|
||||
<Accordion title="Top-level messages.tts.*">
|
||||
<ParamField path="auto" type='"off" | "always" | "inbound" | "tagged"'>
|
||||
Режим auto-TTS. `inbound` надсилає аудіо лише після вхідного голосового повідомлення; `tagged` надсилає аудіо лише тоді, коли відповідь містить директиви `[[tts:...]]` або блок `[[tts:text]]`.
|
||||
Режим автоматичного TTS. `inbound` надсилає аудіо лише після вхідного голосового повідомлення; `tagged` надсилає аудіо лише тоді, коли відповідь містить директиви `[[tts:...]]` або блок `[[tts:text]]`.
|
||||
</ParamField>
|
||||
<ParamField path="enabled" type="boolean" deprecated>
|
||||
Застарілий перемикач. `openclaw doctor --fix` переносить його в `auto`.
|
||||
Застарілий перемикач. `openclaw doctor --fix` переносить це в `auto`.
|
||||
</ParamField>
|
||||
<ParamField path="mode" type='"final" | "all"' default="final">
|
||||
`"all"` включає відповіді інструментів/блоків на додачу до фінальних відповідей.
|
||||
</ParamField>
|
||||
<ParamField path="provider" type="string">
|
||||
Ідентифікатор speech-провайдера. Якщо не задано, OpenClaw використовує першого налаштованого провайдера в порядку auto-select реєстру. Застаріле `provider: "edge"` переписується в `"microsoft"` за допомогою `openclaw doctor --fix`.
|
||||
Ідентифікатор постачальника мовлення. Якщо не задано, OpenClaw використовує першого налаштованого постачальника в порядку автоматичного вибору реєстру. Застаріле `provider: "edge"` переписується на `"microsoft"` командою `openclaw doctor --fix`.
|
||||
</ParamField>
|
||||
<ParamField path="persona" type="string">
|
||||
Ідентифікатор активної персони з `personas`. Нормалізується до нижнього регістру.
|
||||
</ParamField>
|
||||
<ParamField path="personas.<id>" type="object">
|
||||
Стабільна мовленнєва ідентичність. Поля: `label`, `description`, `provider`, `fallbackPolicy`, `prompt`, `providers.<provider>`. Див. [Персони](#personas).
|
||||
Стабільна розмовна ідентичність. Поля: `label`, `description`, `provider`, `fallbackPolicy`, `prompt`, `providers.<provider>`. Див. [Персони](#personas).
|
||||
</ParamField>
|
||||
<ParamField path="summaryModel" type="string">
|
||||
Дешева модель для auto-summary; типово `agents.defaults.model.primary`. Приймає `provider/model` або налаштований псевдонім моделі.
|
||||
Дешева модель для автоматичного підсумку; типово `agents.defaults.model.primary`. Приймає `provider/model` або налаштований псевдонім моделі.
|
||||
</ParamField>
|
||||
<ParamField path="modelOverrides" type="object">
|
||||
Дозволяє моделі виводити директиви TTS. `enabled` типово дорівнює `true`; `allowProvider` типово дорівнює `false`.
|
||||
Дозволяє моделі видавати директиви TTS. `enabled` типово `true`; `allowProvider` типово `false`.
|
||||
</ParamField>
|
||||
<ParamField path="providers.<id>" type="object">
|
||||
Налаштування, що належать провайдеру, з ключем за ідентифікатором speech-провайдера. Застарілі прямі блоки (`messages.tts.openai`, `.elevenlabs`, `.microsoft`, `.edge`) переписуються `openclaw doctor --fix`; комітьте лише `messages.tts.providers.<id>`.
|
||||
Налаштування, що належать постачальнику, з ключами за ідентифікатором постачальника мовлення. Застарілі прямі блоки (`messages.tts.openai`, `.elevenlabs`, `.microsoft`, `.edge`) переписуються командою `openclaw doctor --fix`; комітьте лише `messages.tts.providers.<id>`.
|
||||
</ParamField>
|
||||
<ParamField path="maxTextLength" type="number">
|
||||
Жорсткий ліміт символів для вхідного тексту TTS. `/tts audio` завершується помилкою, якщо його перевищено.
|
||||
Жорстке обмеження кількості символів для входу TTS. `/tts audio` завершується помилкою, якщо його перевищено.
|
||||
</ParamField>
|
||||
<ParamField path="timeoutMs" type="number">
|
||||
Тайм-аут запиту в мілісекундах.
|
||||
</ParamField>
|
||||
<ParamField path="prefsPath" type="string">
|
||||
Перевизначає шлях до JSON локальних налаштувань (provider/limit/summary). Типово `~/.openclaw/settings/tts.json`.
|
||||
Перевизначає локальний шлях JSON налаштувань (постачальник/ліміт/підсумок). Типово `~/.openclaw/settings/tts.json`.
|
||||
</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Azure Speech">
|
||||
<ParamField path="apiKey" type="string">Env: `AZURE_SPEECH_KEY`, `AZURE_SPEECH_API_KEY` або `SPEECH_KEY`.</ParamField>
|
||||
<ParamField path="region" type="string">Регіон Azure Speech (наприклад, `eastus`). Env: `AZURE_SPEECH_REGION` або `SPEECH_REGION`.</ParamField>
|
||||
<ParamField path="endpoint" type="string">Необов’язкове перевизначення endpoint Azure Speech (псевдонім `baseUrl`).</ParamField>
|
||||
<ParamField path="apiKey" type="string">Резервно використовує `AZURE_SPEECH_KEY`, `AZURE_SPEECH_API_KEY` або `SPEECH_KEY`.</ParamField>
|
||||
<ParamField path="region" type="string">Регіон Azure Speech (наприклад, `eastus`). Змінні середовища: `AZURE_SPEECH_REGION` або `SPEECH_REGION`.</ParamField>
|
||||
<ParamField path="endpoint" type="string">Необов’язкове перевизначення кінцевої точки Azure Speech (псевдонім `baseUrl`).</ParamField>
|
||||
<ParamField path="voice" type="string">ShortName голосу Azure. Типово `en-US-JennyNeural`.</ParamField>
|
||||
<ParamField path="lang" type="string">Код мови SSML. Типово `en-US`.</ParamField>
|
||||
<ParamField path="outputFormat" type="string">Azure `X-Microsoft-OutputFormat` для стандартного аудіо. Типово `audio-24khz-48kbitrate-mono-mp3`.</ParamField>
|
||||
<ParamField path="voiceNoteOutputFormat" type="string">Azure `X-Microsoft-OutputFormat` для виводу voice-note. Типово `ogg-24khz-16bit-mono-opus`.</ParamField>
|
||||
<ParamField path="voiceNoteOutputFormat" type="string">Azure `X-Microsoft-OutputFormat` для виводу голосових нотаток. Типово `ogg-24khz-16bit-mono-opus`.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="ElevenLabs">
|
||||
<ParamField path="apiKey" type="string">Використовує як fallback `ELEVENLABS_API_KEY` або `XI_API_KEY`.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Резервно використовує `ELEVENLABS_API_KEY` або `XI_API_KEY`.</ParamField>
|
||||
<ParamField path="model" type="string">Ідентифікатор моделі (наприклад, `eleven_multilingual_v2`, `eleven_v3`).</ParamField>
|
||||
<ParamField path="voiceId" type="string">Ідентифікатор голосу ElevenLabs.</ParamField>
|
||||
<ParamField path="voiceSettings" type="object">
|
||||
`stability`, `similarityBoost`, `style` (кожне `0..1`), `useSpeakerBoost` (`true|false`), `speed` (`0.5..2.0`, `1.0` = звичайна).
|
||||
`stability`, `similarityBoost`, `style` (кожен `0..1`), `useSpeakerBoost` (`true|false`), `speed` (`0.5..2.0`, `1.0` = нормально).
|
||||
</ParamField>
|
||||
<ParamField path="applyTextNormalization" type='"auto" | "on" | "off"'>Режим нормалізації тексту.</ParamField>
|
||||
<ParamField path="languageCode" type="string">2-літерний ISO 639-1 (наприклад, `en`, `de`).</ParamField>
|
||||
<ParamField path="seed" type="number">Ціле число `0..4294967295` для best-effort детермінованості.</ParamField>
|
||||
<ParamField path="seed" type="number">Ціле число `0..4294967295` для детермінізму за принципом найкращого зусилля.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Перевизначає базову URL-адресу API ElevenLabs.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Google Gemini">
|
||||
<ParamField path="apiKey" type="string">Використовує як fallback `GEMINI_API_KEY` / `GOOGLE_API_KEY`. Якщо пропущено, TTS може повторно використати `models.providers.google.apiKey` перед fallback до env.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Резервно використовує `GEMINI_API_KEY` / `GOOGLE_API_KEY`. Якщо пропущено, TTS може повторно використовувати `models.providers.google.apiKey` перед резервним використанням змінних середовища.</ParamField>
|
||||
<ParamField path="model" type="string">Модель Gemini TTS. Типово `gemini-3.1-flash-tts-preview`.</ParamField>
|
||||
<ParamField path="voiceName" type="string">Назва вбудованого голосу Gemini. Типово `Kore`. Псевдонім: `voice`.</ParamField>
|
||||
<ParamField path="audioProfile" type="string">Запит стилю природною мовою, що додається перед озвучуваним текстом.</ParamField>
|
||||
<ParamField path="speakerName" type="string">Необов’язкова мітка мовця, що додається перед озвучуваним текстом, коли ваш prompt використовує іменованого мовця.</ParamField>
|
||||
<ParamField path="promptTemplate" type='"audio-profile-v1"'>Установіть `audio-profile-v1`, щоб обгорнути поля prompt активної персони в детерміновану структуру prompt Gemini TTS.</ParamField>
|
||||
<ParamField path="personaPrompt" type="string">Додатковий текст prompt персони, специфічний для Google, який додається до Director's Notes шаблону.</ParamField>
|
||||
<ParamField path="voiceName" type="string">Назва готового голосу Gemini. Типово `Kore`. Псевдонім: `voice`.</ParamField>
|
||||
<ParamField path="audioProfile" type="string">Підказка стилю природною мовою, що додається перед вимовленим текстом.</ParamField>
|
||||
<ParamField path="speakerName" type="string">Необов’язкова мітка мовця, що додається перед вимовленим текстом, коли ваша підказка використовує названого мовця.</ParamField>
|
||||
<ParamField path="promptTemplate" type='"audio-profile-v1"'>Установіть `audio-profile-v1`, щоб обгорнути активні поля підказки персони в детерміновану структуру підказки Gemini TTS.</ParamField>
|
||||
<ParamField path="personaPrompt" type="string">Додатковий текст підказки персони, специфічний для Google, що додається до Director's Notes шаблону.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Приймається лише `https://generativelanguage.googleapis.com`.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Gradium">
|
||||
<ParamField path="apiKey" type="string">Env: `GRADIUM_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Типово `https://api.gradium.ai`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">Типово Emma (`YTpq7expH9539ERJ`).</ParamField>
|
||||
<ParamField path="apiKey" type="string">Змінна середовища: `GRADIUM_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">За замовчуванням `https://api.gradium.ai`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">За замовчуванням Emma (`YTpq7expH9539ERJ`).</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Inworld">
|
||||
<ParamField path="apiKey" type="string">Env: `INWORLD_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Типово `https://api.inworld.ai`.</ParamField>
|
||||
<ParamField path="modelId" type="string">Типово `inworld-tts-1.5-max`. Також: `inworld-tts-1.5-mini`, `inworld-tts-1-max`, `inworld-tts-1`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">Типово `Sarah`.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Змінна середовища: `INWORLD_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">За замовчуванням `https://api.inworld.ai`.</ParamField>
|
||||
<ParamField path="modelId" type="string">За замовчуванням `inworld-tts-1.5-max`. Також: `inworld-tts-1.5-mini`, `inworld-tts-1-max`, `inworld-tts-1`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">За замовчуванням `Sarah`.</ParamField>
|
||||
<ParamField path="temperature" type="number">Температура семплювання `0..2`.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Local CLI (tts-local-cli)">
|
||||
<ParamField path="command" type="string">Локальний виконуваний файл або рядок команди для CLI TTS.</ParamField>
|
||||
<ParamField path="args" type="string[]">Аргументи команди. Підтримує placeholders `{{Text}}`, `{{OutputPath}}`, `{{OutputDir}}`, `{{OutputBase}}`.</ParamField>
|
||||
<ParamField path="outputFormat" type='"mp3" | "opus" | "wav"'>Очікуваний формат виводу CLI. Типово `mp3` для аудіовкладень.</ParamField>
|
||||
<ParamField path="timeoutMs" type="number">Тайм-аут команди в мілісекундах. Типово `120000`.</ParamField>
|
||||
<ParamField path="args" type="string[]">Аргументи команди. Підтримує заповнювачі `{{Text}}`, `{{OutputPath}}`, `{{OutputDir}}`, `{{OutputBase}}`.</ParamField>
|
||||
<ParamField path="outputFormat" type='"mp3" | "opus" | "wav"'>Очікуваний формат виводу CLI. За замовчуванням `mp3` для аудіовкладень.</ParamField>
|
||||
<ParamField path="timeoutMs" type="number">Тайм-аут команди в мілісекундах. За замовчуванням `120000`.</ParamField>
|
||||
<ParamField path="cwd" type="string">Необов’язковий робочий каталог команди.</ParamField>
|
||||
<ParamField path="env" type="Record<string, string>">Необов’язкові перевизначення середовища для команди.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Microsoft (без API-ключа)">
|
||||
<ParamField path="enabled" type="boolean" default="true">Дозволяє використання Microsoft speech.</ParamField>
|
||||
<ParamField path="voice" type="string">Назва neural-голосу Microsoft (наприклад, `en-US-MichelleNeural`).</ParamField>
|
||||
<Accordion title="Microsoft (no API key)">
|
||||
<ParamField path="enabled" type="boolean" default="true">Дозволити використання мовлення Microsoft.</ParamField>
|
||||
<ParamField path="voice" type="string">Назва нейронного голосу Microsoft (наприклад, `en-US-MichelleNeural`).</ParamField>
|
||||
<ParamField path="lang" type="string">Код мови (наприклад, `en-US`).</ParamField>
|
||||
<ParamField path="outputFormat" type="string">Формат виводу Microsoft. Типово `audio-24khz-48kbitrate-mono-mp3`. Не всі формати підтримуються вбудованим transport на базі Edge.</ParamField>
|
||||
<ParamField path="rate / pitch / volume" type="string">Рядки відсотків (наприклад, `+10%`, `-5%`).</ParamField>
|
||||
<ParamField path="saveSubtitles" type="boolean">Записує JSON-субтитри поруч з аудіофайлом.</ParamField>
|
||||
<ParamField path="proxy" type="string">URL-адреса proxy для запитів speech Microsoft.</ParamField>
|
||||
<ParamField path="outputFormat" type="string">Формат виводу Microsoft. За замовчуванням `audio-24khz-48kbitrate-mono-mp3`. Не всі формати підтримуються вбудованим транспортом на основі Edge.</ParamField>
|
||||
<ParamField path="rate / pitch / volume" type="string">Відсоткові рядки (наприклад, `+10%`, `-5%`).</ParamField>
|
||||
<ParamField path="saveSubtitles" type="boolean">Записувати субтитри JSON поряд з аудіофайлом.</ParamField>
|
||||
<ParamField path="proxy" type="string">URL проксі для запитів мовлення Microsoft.</ParamField>
|
||||
<ParamField path="timeoutMs" type="number">Перевизначення тайм-ауту запиту (мс).</ParamField>
|
||||
<ParamField path="edge.*" type="object" deprecated>Застарілий псевдонім. Запустіть `openclaw doctor --fix`, щоб переписати збережену конфігурацію в `providers.microsoft`.</ParamField>
|
||||
<ParamField path="edge.*" type="object" deprecated>Застарілий псевдонім. Запустіть `openclaw doctor --fix`, щоб переписати збережену конфігурацію на `providers.microsoft`.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="MiniMax">
|
||||
<ParamField path="apiKey" type="string">Використовує як fallback `MINIMAX_API_KEY`. Auth Token Plan через `MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY` або `MINIMAX_CODING_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Типово `https://api.minimax.io`. Env: `MINIMAX_API_HOST`.</ParamField>
|
||||
<ParamField path="model" type="string">Типово `speech-2.8-hd`. Env: `MINIMAX_TTS_MODEL`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">Типово `English_expressive_narrator`. Env: `MINIMAX_TTS_VOICE_ID`.</ParamField>
|
||||
<ParamField path="speed" type="number">`0.5..2.0`. Типово `1.0`.</ParamField>
|
||||
<ParamField path="vol" type="number">`(0, 10]`. Типово `1.0`.</ParamField>
|
||||
<ParamField path="pitch" type="number">Ціле число `-12..12`. Типово `0`. Дробові значення відкидаються перед запитом.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Як резерв використовує `MINIMAX_API_KEY`. Автентифікація Token Plan через `MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY` або `MINIMAX_CODING_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">За замовчуванням `https://api.minimax.io`. Змінна середовища: `MINIMAX_API_HOST`.</ParamField>
|
||||
<ParamField path="model" type="string">За замовчуванням `speech-2.8-hd`. Змінна середовища: `MINIMAX_TTS_MODEL`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">За замовчуванням `English_expressive_narrator`. Змінна середовища: `MINIMAX_TTS_VOICE_ID`.</ParamField>
|
||||
<ParamField path="speed" type="number">`0.5..2.0`. За замовчуванням `1.0`.</ParamField>
|
||||
<ParamField path="vol" type="number">`(0, 10]`. За замовчуванням `1.0`.</ParamField>
|
||||
<ParamField path="pitch" type="number">Ціле число `-12..12`. За замовчуванням `0`. Дробові значення обрізаються перед запитом.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="OpenAI">
|
||||
<ParamField path="apiKey" type="string">Використовує як fallback `OPENAI_API_KEY`.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Як резерв використовує `OPENAI_API_KEY`.</ParamField>
|
||||
<ParamField path="model" type="string">Ідентифікатор моделі OpenAI TTS (наприклад, `gpt-4o-mini-tts`).</ParamField>
|
||||
<ParamField path="voice" type="string">Назва голосу (наприклад, `alloy`, `cedar`).</ParamField>
|
||||
<ParamField path="instructions" type="string">Явне поле OpenAI `instructions`. Коли встановлено, поля prompt персони **не** зіставляються автоматично.</ParamField>
|
||||
<ParamField path="instructions" type="string">Явне поле OpenAI `instructions`. Коли воно задане, поля промпту персони **не** зіставляються автоматично.</ParamField>
|
||||
<ParamField path="extraBody / extra_body" type="Record<string, unknown>">Додаткові поля JSON, що об’єднуються з тілами запитів `/audio/speech` після згенерованих полів OpenAI TTS. Використовуйте це для сумісних з OpenAI кінцевих точок, як-от Kokoro, яким потрібні специфічні для провайдера ключі на кшталт `lang`; небезпечні ключі прототипу ігноруються.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">
|
||||
Перевизначає endpoint OpenAI TTS. Порядок визначення: config → `OPENAI_TTS_BASE_URL` → `https://api.openai.com/v1`. Нестандартні значення розглядаються як OpenAI-сумісні endpoints TTS, тому приймаються власні назви моделей і голосів.
|
||||
Перевизначає кінцеву точку OpenAI TTS. Порядок розв’язання: конфігурація → `OPENAI_TTS_BASE_URL` → `https://api.openai.com/v1`. Значення, відмінні від стандартного, розглядаються як сумісні з OpenAI кінцеві точки TTS, тому приймаються власні назви моделей і голосів.
|
||||
</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="OpenRouter">
|
||||
<ParamField path="apiKey" type="string">Env: `OPENROUTER_API_KEY`. Може повторно використовувати `models.providers.openrouter.apiKey`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Типово `https://openrouter.ai/api/v1`. Застаріле `https://openrouter.ai/v1` нормалізується.</ParamField>
|
||||
<ParamField path="model" type="string">Типово `hexgrad/kokoro-82m`. Псевдонім: `modelId`.</ParamField>
|
||||
<ParamField path="voice" type="string">Типово `af_alloy`. Псевдонім: `voiceId`.</ParamField>
|
||||
<ParamField path="responseFormat" type='"mp3" | "pcm"'>Типово `mp3`.</ParamField>
|
||||
<ParamField path="speed" type="number">Нативне для провайдера перевизначення швидкості.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Змінна середовища: `OPENROUTER_API_KEY`. Може повторно використовувати `models.providers.openrouter.apiKey`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">За замовчуванням `https://openrouter.ai/api/v1`. Застарілий `https://openrouter.ai/v1` нормалізується.</ParamField>
|
||||
<ParamField path="model" type="string">За замовчуванням `hexgrad/kokoro-82m`. Псевдонім: `modelId`.</ParamField>
|
||||
<ParamField path="voice" type="string">За замовчуванням `af_alloy`. Псевдонім: `voiceId`.</ParamField>
|
||||
<ParamField path="responseFormat" type='"mp3" | "pcm"'>За замовчуванням `mp3`.</ParamField>
|
||||
<ParamField path="speed" type="number">Перевизначення швидкості у форматі провайдера.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Volcengine (BytePlus Seed Speech)">
|
||||
<ParamField path="apiKey" type="string">Env: `VOLCENGINE_TTS_API_KEY` або `BYTEPLUS_SEED_SPEECH_API_KEY`.</ParamField>
|
||||
<ParamField path="resourceId" type="string">Типово `seed-tts-1.0`. Env: `VOLCENGINE_TTS_RESOURCE_ID`. Використовуйте `seed-tts-2.0`, коли ваш проєкт має entitlement TTS 2.0.</ParamField>
|
||||
<ParamField path="appKey" type="string">Заголовок app key. Типово `aGjiRDfUWi`. Env: `VOLCENGINE_TTS_APP_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Перевизначає HTTP endpoint TTS Seed Speech. Env: `VOLCENGINE_TTS_BASE_URL`.</ParamField>
|
||||
<ParamField path="voice" type="string">Тип голосу. Типово `en_female_anna_mars_bigtts`. Env: `VOLCENGINE_TTS_VOICE`.</ParamField>
|
||||
<ParamField path="speedRatio" type="number">Нативне для провайдера співвідношення швидкості.</ParamField>
|
||||
<ParamField path="emotion" type="string">Нативний для провайдера тег emotion.</ParamField>
|
||||
<ParamField path="appId / token / cluster" type="string" deprecated>Застарілі поля Volcengine Speech Console. Env: `VOLCENGINE_TTS_APPID`, `VOLCENGINE_TTS_TOKEN`, `VOLCENGINE_TTS_CLUSTER` (типово `volcano_tts`).</ParamField>
|
||||
<ParamField path="apiKey" type="string">Змінна середовища: `VOLCENGINE_TTS_API_KEY` або `BYTEPLUS_SEED_SPEECH_API_KEY`.</ParamField>
|
||||
<ParamField path="resourceId" type="string">За замовчуванням `seed-tts-1.0`. Змінна середовища: `VOLCENGINE_TTS_RESOURCE_ID`. Використовуйте `seed-tts-2.0`, коли ваш проєкт має право на TTS 2.0.</ParamField>
|
||||
<ParamField path="appKey" type="string">Заголовок ключа застосунку. За замовчуванням `aGjiRDfUWi`. Змінна середовища: `VOLCENGINE_TTS_APP_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Перевизначає HTTP-кінцеву точку Seed Speech TTS. Змінна середовища: `VOLCENGINE_TTS_BASE_URL`.</ParamField>
|
||||
<ParamField path="voice" type="string">Тип голосу. За замовчуванням `en_female_anna_mars_bigtts`. Змінна середовища: `VOLCENGINE_TTS_VOICE`.</ParamField>
|
||||
<ParamField path="speedRatio" type="number">Коефіцієнт швидкості у форматі провайдера.</ParamField>
|
||||
<ParamField path="emotion" type="string">Тег емоції у форматі провайдера.</ParamField>
|
||||
<ParamField path="appId / token / cluster" type="string" deprecated>Застарілі поля Volcengine Speech Console. Змінні середовища: `VOLCENGINE_TTS_APPID`, `VOLCENGINE_TTS_TOKEN`, `VOLCENGINE_TTS_CLUSTER` (за замовчуванням `volcano_tts`).</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="xAI">
|
||||
<ParamField path="apiKey" type="string">Env: `XAI_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Типово `https://api.x.ai/v1`. Env: `XAI_BASE_URL`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">Типово `eve`. Live-голоси: `ara`, `eve`, `leo`, `rex`, `sal`, `una`.</ParamField>
|
||||
<ParamField path="language" type="string">Код мови BCP-47 або `auto`. Типово `en`.</ParamField>
|
||||
<ParamField path="responseFormat" type='"mp3" | "wav" | "pcm" | "mulaw" | "alaw"'>Типово `mp3`.</ParamField>
|
||||
<ParamField path="speed" type="number">Нативне для провайдера перевизначення швидкості.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Змінна середовища: `XAI_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">За замовчуванням `https://api.x.ai/v1`. Змінна середовища: `XAI_BASE_URL`.</ParamField>
|
||||
<ParamField path="voiceId" type="string">За замовчуванням `eve`. Доступні голоси: `ara`, `eve`, `leo`, `rex`, `sal`, `una`.</ParamField>
|
||||
<ParamField path="language" type="string">Код мови BCP-47 або `auto`. За замовчуванням `en`.</ParamField>
|
||||
<ParamField path="responseFormat" type='"mp3" | "wav" | "pcm" | "mulaw" | "alaw"'>За замовчуванням `mp3`.</ParamField>
|
||||
<ParamField path="speed" type="number">Перевизначення швидкості у форматі провайдера.</ParamField>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Xiaomi MiMo">
|
||||
<ParamField path="apiKey" type="string">Env: `XIAOMI_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">Типово `https://api.xiaomimimo.com/v1`. Env: `XIAOMI_BASE_URL`.</ParamField>
|
||||
<ParamField path="model" type="string">Типово `mimo-v2.5-tts`. Env: `XIAOMI_TTS_MODEL`. Також підтримує `mimo-v2-tts`.</ParamField>
|
||||
<ParamField path="voice" type="string">Типово `mimo_default`. Env: `XIAOMI_TTS_VOICE`.</ParamField>
|
||||
<ParamField path="format" type='"mp3" | "wav"'>Типово `mp3`. Env: `XIAOMI_TTS_FORMAT`.</ParamField>
|
||||
<ParamField path="style" type="string">Необов’язкова інструкція стилю природною мовою, яка надсилається як повідомлення користувача; не озвучується.</ParamField>
|
||||
<ParamField path="apiKey" type="string">Змінна середовища: `XIAOMI_API_KEY`.</ParamField>
|
||||
<ParamField path="baseUrl" type="string">За замовчуванням `https://api.xiaomimimo.com/v1`. Змінна середовища: `XIAOMI_BASE_URL`.</ParamField>
|
||||
<ParamField path="model" type="string">За замовчуванням `mimo-v2.5-tts`. Змінна середовища: `XIAOMI_TTS_MODEL`. Також підтримує `mimo-v2-tts`.</ParamField>
|
||||
<ParamField path="voice" type="string">За замовчуванням `mimo_default`. Змінна середовища: `XIAOMI_TTS_VOICE`.</ParamField>
|
||||
<ParamField path="format" type='"mp3" | "wav"'>За замовчуванням `mp3`. Змінна середовища: `XIAOMI_TTS_FORMAT`.</ParamField>
|
||||
<ParamField path="style" type="string">Необов’язкова інструкція стилю природною мовою, що надсилається як повідомлення користувача; не озвучується.</ParamField>
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Інструмент agent
|
||||
## Інструмент агента
|
||||
|
||||
Інструмент `tts` перетворює текст на мовлення й повертає аудіовкладення для
|
||||
доставки у відповіді. У Feishu, Matrix, Telegram і WhatsApp аудіо
|
||||
доставки відповіді. У Feishu, Matrix, Telegram і WhatsApp аудіо
|
||||
доставляється як голосове повідомлення, а не як файлове вкладення. Feishu і
|
||||
WhatsApp можуть перекодовувати вивід TTS, що не є Opus, цим шляхом, коли доступний `ffmpeg`.
|
||||
WhatsApp можуть перекодовувати вивід TTS не у форматі Opus на цьому шляху, коли `ffmpeg`
|
||||
доступний.
|
||||
|
||||
WhatsApp надсилає аудіо через Baileys як голосову нотатку PTT (`audio` з
|
||||
`ptt: true`) і надсилає видимий текст **окремо** від аудіо PTT, оскільки
|
||||
клієнти не завжди коректно відображають підписи до голосових нотаток.
|
||||
клієнти не завжди стабільно відображають підписи до голосових нотаток.
|
||||
|
||||
Інструмент приймає необов’язкові поля `channel` і `timeoutMs`; `timeoutMs` — це
|
||||
тайм-аут запиту до провайдера для кожного виклику в мілісекундах.
|
||||
тайм-аут запиту провайдера для кожного виклику в мілісекундах.
|
||||
|
||||
## Gateway RPC
|
||||
|
||||
| Метод | Призначення |
|
||||
| ----------------- | ---------------------------------------- |
|
||||
| `tts.status` | Зчитати поточний стан TTS і останню спробу. |
|
||||
| `tts.enable` | Установити локальне налаштування auto на `always`. |
|
||||
| `tts.disable` | Установити локальне налаштування auto на `off`. |
|
||||
| `tts.status` | Читати поточний стан TTS і останню спробу. |
|
||||
| `tts.enable` | Установити локальну автоматичну перевагу на `always`. |
|
||||
| `tts.disable` | Установити локальну автоматичну перевагу на `off`. |
|
||||
| `tts.convert` | Одноразове перетворення текст → аудіо. |
|
||||
| `tts.setProvider` | Установити локальне налаштування провайдера. |
|
||||
| `tts.setPersona` | Установити локальне налаштування персони. |
|
||||
| `tts.providers` | Перелічити налаштованих провайдерів і стан. |
|
||||
| `tts.setProvider` | Установити локальну перевагу провайдера. |
|
||||
| `tts.setPersona` | Установити локальну перевагу персони. |
|
||||
| `tts.providers` | Перелічити налаштованих провайдерів і статус. |
|
||||
|
||||
## Посилання на сервіси
|
||||
|
||||
- [Посібник OpenAI з text-to-speech](https://platform.openai.com/docs/guides/text-to-speech)
|
||||
- [Довідник API OpenAI Audio](https://platform.openai.com/docs/api-reference/audio)
|
||||
- [Azure Speech REST text-to-speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech)
|
||||
- [Посібник OpenAI з перетворення тексту на мовлення](https://platform.openai.com/docs/guides/text-to-speech)
|
||||
- [Довідник OpenAI Audio API](https://platform.openai.com/docs/api-reference/audio)
|
||||
- [Azure Speech REST для перетворення тексту на мовлення](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech)
|
||||
- [Провайдер Azure Speech](/uk/providers/azure-speech)
|
||||
- [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
|
||||
- [Автентифікація ElevenLabs](https://elevenlabs.io/docs/api-reference/authentication)
|
||||
@ -983,7 +985,7 @@ WhatsApp надсилає аудіо через Baileys як голосову н
|
||||
- [Синтез мовлення Xiaomi MiMo](/uk/providers/xiaomi#text-to-speech)
|
||||
- [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
|
||||
- [Формати виводу Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
|
||||
- [xAI text to speech](https://docs.x.ai/developers/rest-api-reference/inference/voice#text-to-speech-rest)
|
||||
- [xAI перетворення тексту на мовлення](https://docs.x.ai/developers/rest-api-reference/inference/voice#text-to-speech-rest)
|
||||
|
||||
## Пов’язане
|
||||
|
||||
@ -991,4 +993,4 @@ WhatsApp надсилає аудіо через Baileys як голосову н
|
||||
- [Генерація музики](/uk/tools/music-generation)
|
||||
- [Генерація відео](/uk/tools/video-generation)
|
||||
- [Slash-команди](/uk/tools/slash-commands)
|
||||
- [Plugin Voice call](/uk/plugins/voice-call)
|
||||
- [Plugin голосових викликів](/uk/plugins/voice-call)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user