Быстрый старт для конвейеров Whisper
Интегрируйте нашу текстовую модель без цензуры в конвейеры обработки речи или изображений с помощью стандартного API завершения диалога, совместимого с OpenAI. В этом руководстве описаны основные шаги отправки запросов, обработки потоковой передачи и управления контекстным окном для задач постобработки.
Требования
Перед началом убедитесь, что у вас есть активная учетная запись и API-ключ. Зарегистрируйтесь на странице Получить API-ключ, указав только электронную почту и пароль. Ключ появляется сразу. Вы получаете пробный баланс на $0.50 сроком на 7 дней, кредитная карта не требуется. Для продакшена пополните баланс от $10 с помощью криптовалюты (USDT или USDC). Наше ценообразование простое: $0.25 за 1 млн входных токенов и $1.00 за 1 млн выходных токенов. Баланс не сгорает.
Базовый URL: https://api.whisperapis.com/v1. Этот эндпоинт работает с любым клиентом, совместимым с OpenAI. Вам нужно только настроить базовый URL и передать API-ключ в заголовке авторизации. Специальные SDK для базовых HTTP-запросов не требуются.
Инициализация клиента
Большинство разработчиков использует официальный SDK OpenAI или совместимую библиотеку. Инициализируйте клиент, указав наш базовый URL. Это гарантирует, что все запросы будут направляться к нашей модели без цензуры, а не на серверы OpenAI. Идентификатор модели всегда uncensored.
Убедитесь, что переменная окружения OPENAI_API_KEY установлена в значение вашего ключа из панели управления. Если вы используете другой язык или библиотеку, убедитесь, что она поддерживает пользовательские базовые URL. SDK берет на себя сериализацию JSON и добавление заголовков, сокращая объем шаблонного кода в ваших скриптах конвейера.
Отправка завершения диалога
Отправьте стандартный запрос завершения диалога для улучшения результатов вашего конвейера. Например, извлеките структурированный JSON из транскрипций распознавания речи или создайте подписи к изображениям без фильтров контента.
Эндпоинт — POST /v1/chat/completions. Укажите идентификатор модели, массив сообщений и, при необходимости, системный промпт для определения поведения без цензуры.
curl https://api.whisperapis.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'Наша модель хорошо справляется с данными с большим контекстом, поддерживая до 100 000 токенов суммарно. Это идеально подходит для обработки длинных транскрипций или подробных описаний изображений за один проход.
Потоковые ответы
Для обработки в реальном времени или интерактивных конвейеров включите потоковую передачу. Установите параметр stream в значение true в вашем запросе. API возвращает события Server-Sent Events (SSE) вместо одного объекта JSON.
Парсите поля delta по мере их поступления. Это снижает воспринимаемую задержку для больших объемов вывода, таких как генерация подробных сценариев или извлечение длинных текстовых блоков из зашумленных результатов OCR. Формат потоковой передачи совместим со стандартными обработчиками потоковой передачи SDK OpenAI.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Убедитесь, что ваш клиент корректно обрабатывает частичные фрагменты. Агрегируйте дельты, чтобы восстановить полный текстовый ответ, когда поток завершится с finish_reason равным stop или length.
Поддержка вызова функций
Наша модель без цензуры поддерживает вызов функций, позволяя определять структурированные выводы для ваших конвейеров. Определите ваши инструменты в массиве tools с определениями схемы JSON.
Модель возвращает вызовы функций в ответе, которые вы можете выполнить для обновления контекста разговора. Это полезно для извлечения конкретных данных из неструктурированного текста, таких как даты, имена или координаты из транскрипций речи.
from openai import OpenAI
client = OpenAI(base_url="https://api.whisperapis.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Передавайте вызовы функций обратно в API в последующих сообщениях. Модель улучшит свой вывод на основе результатов. Это позволяет выполнять сложные многошаговые рассуждения, не выходя из интерфейса чата. Убедитесь, что ваша схема строгая, чтобы избежать некорректных ответов JSON.
Лимиты, ошибки и контекст
Отслеживайте использование, чтобы избежать прерываний. API устанавливает лимит в 300 запросов в минуту на ключ. Если вы превысите этот лимит, вы получите ошибку лимита запросов 429. Реализуйте экспоненциальное замедление в вашем клиенте.
Распространенные ошибки:
401: Неверный или истекший API-ключ. Сгенерируйте новый ключ в панели управления.402: Недостаточно средств. Пополните счет, чтобы продолжить обработку.429: Превышен лимит запросов. Уменьшите частоту запросов или объедините мелкие задачи.
Контекстное окно: Модель поддерживает 100 000 токенов для промпта и завершения. Если ваш ввод превышает этот лимит, удалите старые сообщения или разделите данные. Тела запросов ограничены 8 МБ. Убедитесь, что ваши полезные нагрузки соответствуют этим ограничениям для надежной работы.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.whisperapis.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Характеристики API
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| ID модели | uncensored |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| Авторизация | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.whisperapis.com/v1 |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| JSON-режим | response_format: {"type": "json_object"} |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Размер запроса | до 8 МБ |
| Лимит запросов | 300 запросов в минуту на ключ |
| Параллельные запросы | до 8 одновременно на ключ |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Пополнение | USDT (TRC20) или USDC (Base), любая целая сумма от $10 до $500 |
| Бонус | +5% от $50, +10% от $100 |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Срок действия | оплаченный баланс не сгорает, без подписки |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Ключи | один активный ключ на аккаунт; новый заменяет старый |
| Вход | Google или e-mail и пароль |
| Контент | контент для взрослых разрешён; сексуальный контент с несовершеннолетними запрещён |
Коды ошибок
Ошибки приходят в JSON с постоянным type; неудачные и отклонённые запросы не оплачиваются.
| Код | Тип | Что значит |
|---|---|---|
400 | bad_request | неверный JSON, пустые сообщения, неверный параметр или превышено окно контекста |
401 | missing_key · invalid_key · key_revoked | нет ключа, ключ неверный или заменён новым |
402 | no_credit | баланс пуст — пополните, работа продолжится сразу |
403 | content_blocked | сексуальный контент с несовершеннолетними — отказ, без оплаты |
404 | not_found | неизвестный эндпоинт |
413 | request_too_large | тело запроса больше 8 МБ |
429 | rate_limited · concurrency | больше 300/мин или 8 параллельно — подождите и повторите |
503 | upstream_busy | модель занята — повторите через несколько секунд |
Вопросы и ответы
Какой размер контекстного окна?
Модель поддерживает контекстное окно на 100 000 токенов, включая промпт и завершение. Это позволяет обрабатывать большие транскрипции или подробные описания в одном запросе.
Генерирует ли этот API изображения или аудио?
Нет. Это текстовый API для завершения диалога. Он предназначен для постобработки текстовых результатов других модальностей, таких как распознавание речи или генерация изображений. Он не генерирует аудио, изображения или видео.
Как обрабатывать ошибки потоковой передачи?
Потоковые ответы возвращают события SSE. При ошибке поток обычно завершается сообщением об ошибке в поле error последнего фрагмента. Убедитесь, что ваш клиент корректно обрабатывает разрывы соединения и повторяет запросы при необходимости.
Ваш ключ — в одной форме от вас
Создайте учетную запись, скопируйте ключ, измените базовый URL. Вот и вся настройка.