9 октября Cloudflare выпустила Clef-omni как размещённую в облаке модель принятия решений Workers AI, способную анализировать текст вместе с изображением, аудиофрагментом или видео. Разработчику приложения полезно провести узкую проверку: передать модели состояние обращения и фиксированный набор вопросов, изучить ответы и оставить решение о маршрутизации человеку. В руководстве рассматриваются актуальная документация Cloudflare по модели и пример запуска. BIG CHANGE не вызывал API и не измерял точность модели на обращениях в поддержку.
Идентификатор модели — @cf/cloudflare/clef-omni в Workers AI. Это модель принятия решений: вызывающая сторона задаёт типизированные вопросы и допустимые варианты, а затем получает оценки этих вариантов. Модель не пишет ответ пользователю. Cloudflare также выпустила открытые веса, однако инструкции ниже используют размещённую конечную точку. Данные Cloudflare о скорости и тестах производительности являются заявлениями самой компании и не показывают, насколько хорошо такой процесс сработает на ваших обращениях.
Подготовьте доступ и ограниченный набор вопросов
Вам понадобятся учётная запись Cloudflare с доступом к Workers AI, её идентификатор, API-токен Workers AI и либо Python с установленным requests , либо инструмент, способный отправить такой же HTTP-запрос. В инструкции Cloudflare по настройке REST показано, где в панели управления скопировать идентификатор учётной записи и создать токен. Для токена, созданного вручную, нужны разрешения Workers AI - Read и Workers AI - Edit . Не помещайте токен в обращение или систему контроля версий.
При отправке реального обращения или вложения содержимое клиента передаётся Cloudflare для обработки. На странице Cloudflare об использовании данных Workers AI сказано, что без явного согласия компания не использует это содержимое для обучения моделей Workers AI или улучшения сервисов; там также указано, что содержимое может сохраняться при использовании Workers AI со службой хранения, например R2 или KV. Перед отправкой обращений клиентов проверьте применимое соглашение с Cloudflare и правила вашей организации для клиентских данных; по возможности сократите или скройте персональные сведения. Одного заявления Cloudflare об отсутствии обучения недостаточно, чтобы подтвердить право отправлять данные конкретного клиента.
Начните с текста, чтобы изучить ответ перед добавлением медиа. В собственном примере Cloudflare для поддержки используется состояние Checkout has been failing for every customer for the last hour и задаются три вопроса: является ли случай срочным (noul, тип да/нет), какая команда должна им заняться (choice) и насколько серьёзно влияние (score). Это задокументированный пример, а не реальный инцидент. API принимает строку или структурированный объект/массив в качестве state. Карта questions должна содержать от 1 до 64 идентификаторов вопросов; у каждого есть тип и инструкции, а choice и score используют критерии для определения допустимых ответов.
Отправьте текстовый запрос
Задайте CLOUDFLARE_AUTH_TOKEN в своей среде и замените идентификатор учётной записи ниже. Этот запрос Python повторяет точную конечную точку и поля из примера модели Cloudflare:
import os
import requests
account_id = "your-account-id"
token = os.environ["CLOUDFLARE_AUTH_TOKEN"]
payload = {
"model": "clef-omni",
"state": "Checkout has been failing for every customer for the last hour.",
"questions": {
"urgent": {
"type": "noul",
"instructions": "Is this support request urgent?",
},
"team": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"billing": "Payments, invoices, and refunds",
"technical": "Outages, errors, and configuration",
"sales": "Plans and upgrades",
},
},
"severity": {
"type": "score",
"instructions": "How severe is the customer impact?",
"criteria": ["No impact", "Minor", "Major", "Critical"],
},
},
}
response = requests.post(
f"https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/cloudflare/clef-omni",
headers={"Authorization": f"Bearer {token}"},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())При успешной проверке найдите в ответе записи answers с теми же идентификаторами urgent, team и severity . Cloudflare описывает первую как вероятность срочности, вторую — как выбранную команду с вероятностями её вариантов, а третью — как взвешенную вероятностями оценку, минимальный уровень которой равен нулю. В API также документированы поля ответа model и usage . Перед отображением данных в приложении изучите весь JSON, возвращённый вашей учётной записи. Вероятность — это выход модели для переданных вопроса и состояния, а не гарантия того, что реальное обращение следует направить в эту очередь. До любых действий попросите человека сопоставить обращение и вложения с предложенным маршрутом.
Добавьте фотографию, запись или видео
В запросе Cloudflare при запуске необязательные медиафайлы помещаются в отдельные массивы images, audio и videos в виде встроенных base64- data: . Например, в образце используются data:image/png;base64,..., data:audio/mpeg;base64,... и data:video/mp4;base64,.... Чтобы добавить локальный файл в данные Python до вызова requests.post, закодируйте его и добавьте URL данных в соответствующий массив:
import base64
from pathlib import Path
def add_media(payload, field, file_path, mime_type):
raw = Path(file_path).read_bytes()
encoded = base64.b64encode(raw).decode("ascii")
payload.setdefault(field, []).append(f"data:{mime_type};base64,{encoded}")
# Examples: use only the files present in the ticket, with their real MIME types.
# add_media(payload, "images", "photo.png", "image/png")
# add_media(payload, "audio", "recording.mp3", "audio/mpeg")
# add_media(payload, "videos", "clip.mp4", "video/mp4")Выполните add_media до POST-запроса. Сохраняйте state фактическим и описывайте каждое вложение; задавайте только вопросы, на которые можно ответить по имеющемуся обращению и медиа. В примере Cloudflare используются фотография устройства, аудиозапись и видео вентилятора, чтобы задать три вопроса да/нет о видимых и слышимых деталях. Приложение поддержки может хранить собственные поля обращения в state и свои допустимые очереди в criteria, но должно сверить эти определения с реальным рабочим процессом. Сервис не принимает удалённые URL медиафайлов.
Перед кодированием проверьте ограничения. На странице модели разрешено до четырёх изображений PNG, JPEG или WebP размером не более 4 МиБ и 16 мегапикселей каждое; общий размер декодированных изображений — до 8 МиБ. Разрешено до четырёх аудиофрагментов размером до 8 МиБ и длительностью до 300 секунд каждый, а также два видео размером до 16 МиБ и длительностью до 60 секунд каждое. Общий предел декодированного аудио и видео составляет 16 МиБ. Видео обрабатывается с частотой два кадра в секунду; звуковая дорожка используется вместе с кадрами, если она есть у каждого видео в запросе. Стоимость изображения зависит от его размера после изменения и ограничена 1 024 токенами на изображение. Если вложение слишком велико или длинно, попросите человека выбрать подходящий короткий фрагмент либо выполните проверку только по тексту и отдельно изучите исходное медиа. Не считайте обрезанный или укороченный файл полным свидетельством.
Проверьте стоимость, контекст и обработку ошибок
Сейчас Cloudflare указывает для Clef-omni цену $0,15 за миллион входных токенов и заявляет, что не берёт плату за выходные токены. Медиа преобразуются во входные токены по этому тарифу. На странице модели указано около 780 токенов на минуту аудио и до примерно 15 400 токенов на минуту видео при максимальном разрешении, плюс аудиотокены, если у видео есть звук. Стоимость изображения зависит от его изменённого размера и ограничена 1 024 токенами на изображение. Это правила выставления счетов, а не фиксированная цена за вложение.
У размещённой модели контекстное окно на 64 000 токенов. Медиа и вопросы учитываются в нём. Если они превышают окно, запрос, по словам Cloudflare, завершится ошибкой; иначе длинный текст в state может быть усечён, чтобы поместиться. Поэтому полученный ответ не доказывает, что модель учла каждую строку длинного обращения. При сбое изучите HTTP-ошибку и перед повтором уменьшите или удалите вложения в рамках документированных ограничений. При успехе проверьте наличие ожидаемых идентификаторов вопросов, сохраните исходное обращение для проверки и сопоставьте предложенный маршрут с доказательствами. Вероятности модели могут помочь проверяющему сосредоточить внимание, но гарантию обслуживания или безопасный автоматический порог нужно оценивать на собственных размеченных обращениях.
Главное изменение
Выпуск Cloudflare от 9 октября добавляет аудио и видео в размещённый путь модели принятия решений Clef, уже использовавшийся для текстовых вопросов с изображениями. Разработчик может отправить состояние одного обращения с поддерживаемыми медиа и получить ответы по фиксированной схеме одним запросом Workers AI. Команде приложения всё ещё нужно решить, какие вопросы включить в схему, проверить работу на собственных обращениях и требовать одобрения человека перед ответом или маршрутизацией.
Источники и дополнительная литература
- Документация модели Cloudflare Clef-omni, проверена 10 октября 2026 года. Основной источник сведений об идентификаторе размещённой модели, полях и примере API, ограничениях медиа и контекста, формате ответа и указанной цене токенов. Документация описывает работу сервиса; BIG CHANGE не выполнял запрос.
- Публикация Cloudflare о запуске Clef-omni, 9 октября 2026 года. Подтверждает дату запуска и содержит пример запроса со встроенными медиа. Данные о производительности и бенчмарках — собственные заявления Cloudflare.
- Настройка REST API Cloudflare Workers AI, последнее обновление 15 сентября 2026 года, проверена 10 октября. Показывает, как получить идентификатор учётной записи и API-токен, и перечисляет необходимые разрешения для токена, созданного вручную.
- Использование данных Cloudflare Workers AI, последнее обновление 21 апреля 2026 года, проверено 10 октября. Объясняет обработку клиентского содержимого Cloudflare, заявленное ограничение на использование для обучения и улучшения сервиса без явного согласия, возможное хранение при использовании отдельной службы хранения и границы применимого соглашения. Не определяет, может ли разработчик отправить конкретное обращение или запись.



