API Qwen Abliterated: вызов хостинговой модели без GPU

Вы можете вызвать модель без цензуры по HTTP с помощью SDK OpenAI, который вы уже используете, и не скачивать веса или арендовать GPU. В этом руководстве показана настройка с рабочим кодом и точными расходами.
Ключевые моменты
- Направьте любой SDK OpenAI на базовый URL и укажите модель uncensored.
- Потоковая передача, вызов функций и JSON-режим работают через стандартные параметры.
- Лимиты: 8 одновременных запросов и 300 в минуту для полного ключа.
- Оплата за токен: $0,15 за 1 млн входных токенов, $0,50 за 1 млн выходных токенов.
Краткий ответ: измените базовый URL
Если вы ищете qwen abliterated api, практичный путь — это хостинговый эндпоинт, поддерживающий протокол OpenAI. Вы сохраняете код клиента, меняете два значения и отправляете запросы на сервер, который запускает модель за вас. Без скачивания GGUF, без выбора квантования и без бюджета VRAM.
Важное примечание по наименованию: это независимый сервис, а не официальный API Qwen, и хостинговая модель адресуется как uncensored, а не по имени чекпоинта Qwen. Это модель с открытыми весами, запускаемая независимым провайдером и настроенная на ответы без отказов по контенту для законного использования взрослыми. Если вам нужен конкретный файл abliterated, запустите его локально. Если вам нужен надежный чат-эндпоинт для приложения, читайте дальше.
| Настройка | Значение |
|---|---|
| Базовый URL | https://api.qwenabliterated.top/v1 |
| Модель | uncensored |
| Заголовок авторизации | Authorization: Bearer YOUR_API_KEY |
| Эндпоинты | POST /v1/chat/completions, GET /v1/models |
| Контекстное окно | 100 000 токенов, промпт плюс завершение |
Получите ключ
Войдите через Google или по электронной почте и паролю, затем откройте страницу API-ключа. Новые пользователи могут получить $0,50 пробного баланса одним кликом, по одному на человека, срок действия — 7 дней, карта не требуется. Этого достаточно, чтобы несколько раз протестировать каждый пример ниже.
Пробные ключи имеют более низкие лимиты, чем полные: 2 параллельных запроса и 60 запросов в минуту против 8 и 300 для полного ключа. Имейте это в виду, если тестируете с параллельными рабочими процессами.
Храните ключ в переменной окружения, а не в системе контроля версий:
export QWENABL_KEY="paste-your-key-here"Первый запрос на Python
Установите официальный SDK с помощью pip install openai, затем:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.qwenabliterated.top/v1",
api_key=os.environ["QWENABL_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a blunt technical assistant."},
{"role": "user", "content": "Explain what a KV cache is in three sentences."},
],
temperature=0.7,
)
print(resp.choices[0].message.content)
print(resp.usage)
Ответ содержит стандартный блок usage, поэтому вы можете логировать токены промпта и завершения и самостоятельно вычислять расходы. Заголовки включают X-Request-Id для вопросов поддержки и X-Balance-USD, чтобы вы могли отслеживать оставшийся баланс без открытия панели управления.
Почему стоит использовать API вместо файлов GGUF
Обычный путь к модели без цензуры — найти квантованный файл, загрузить его в локальное окружение и общаться с локальным сервером. Это работает, и для экспериментов это хороший способ обучения. Сложности возникают, когда вы переходите от экспериментов к чему-то, чем пользуются другие.
Во-первых, оборудование. Файл, который помещается на вашу десктопную карту при коротком контексте, может не поместиться при длинном, потому что кэш внимания растет с каждым токеном. Во-вторых, параллельные запросы. Один локальный процесс удобно обрабатывает один или два чата, но десять пользователей одновременно означают очереди. В-третьих, доступность. Домашняя машина спит, теряет питание и получает обновление драйвера в неподходящее время. Хостинговый API превращает это в чужую работу, и вы платите только за использованные токены.
Чем вы жертвуете, так это свободой выбора конкретного чекпоинта и гарантией того, что байты никогда не покинут вашу сеть. Решите, что важнее для вашего проекта, прежде чем выбирать.
Node.js и curl
SDK Node принимает те же два параметра:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.qwenabliterated.top/v1",
apiKey: process.env.QWENABL_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me five names for a fantasy tavern." }],
});
console.log(resp.choices[0].message.content);
И с помощью curl, что удобно для проверки ключа перед подключением:
curl -s https://api.qwenabliterated.top/v1/models \
-H "Authorization: Bearer $QWENABL_KEY"
Успешный вызов возвращает список JSON, который включает uncensored. Код 401 означает, что ключ неверный или отсутствует. документация подробно описывает формат ошибок.
Потоковая передача, JSON-режим и инструменты
Потоковая передача
Установите stream: true и читайте server-sent события. Использование сообщается в конце потока.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Write a short scene on a night train."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Потоковый запрос удерживает слот параллельности до завершения потока, поэтому клиент, который открывает поток и уходит, заблокирует емкость. Всегда потребляйте или закрывайте поток.
JSON-режим
Передайте response_format={"type": "json_object"} и укажите JSON в промпте. Всё равно разбирайте ответ с проверками; ни одна модель не следует схеме идеально каждый раз.
Вызов функций
Передайте tools и опционально tool_choice. Когда модель запрашивает инструмент, выполните его и верните вывод как сообщение с role: "tool". Вызовы инструментов также потоковые. Параметры сэмплирования temperature, top_p, stop, seed и штрафы за частоту и присутствие передаются как есть.
Интеграция в реальное приложение
Один скрипт — легко. Приложению нужно несколько дополнительных привычек, и они такие же, как при использовании любого API в стиле OpenAI.
Храните ключ на сервере
Никогда не выкладывайте ключ в код браузера или мобильного приложения. Вызывайте API из бэкенда и предоставляйте свой маршрут для фронтенда, где вы можете добавить аутентификацию и лимиты на пользователя. Любой, кто найдет ключ в бандле, сможет потратить ваш кредит.
Установите таймауты и ограничьте вывод
Завершение может использовать все оставшееся от 100 000 токенов контекстное окно, и max_tokens необязателен. Для функции чата установите ограничение, соответствующее вашему интерфейсу, чтобы необычно длинный ответ не увеличил счет. В сочетании с таймаутом клиента это создает потолок по времени и деньгам для каждого вызова.
Логируйте ID запроса
Каждый ответ содержит X-Request-Id. Сохраняйте его рядом с вашей собственной записью о вызове. Когда результат выглядит неверно или запрос падает, этот идентификатор позволяет поддержке найти точный запрос. Заголовок X-Balance-USD полезен для простой сигнализации: если число падает ниже порога, отправьте себе сообщение, прежде чем задача исчерпает баланс.
Проверяйте список моделей при запуске
Проверка работоспособности, вызывающая GET /v1/models, ничего не стоит в токенах и подтверждает ключ, URL и сетевой путь за один шаг. Запускайте его при загрузке службы и аварийно завершайте работу, если возвращается ошибка.
Лимиты и обработка ошибок
Запросы сверх лимита получают HTTP 429. Код ошибки указывает, какой лимит вы исчерпали: rate_limited означает слишком много запросов в минуту, а concurrency означает слишком много одновременно. Во время временной перегрузки API также возвращает 429 с заголовком Retry-After: 5. Максимальный размер тела — 8 МБ.
Соблюдайте заголовок и делайте backoff:
import time
from openai import OpenAI, RateLimitError
def ask(client, messages, tries=5):
for attempt in range(tries):
try:
return client.chat.completions.create(model="uncensored", messages=messages)
except RateLimitError as e:
wait = int(e.response.headers.get("Retry-After", 5))
time.sleep(wait * (attempt + 1))
raise RuntimeError("still rate limited")
Если вы запускаете пул рабочих процессов, ограничьте его 8 потоками для полного ключа. Превышение этого значения просто превращает работу в ошибки 429. Неудачные или отклонённые запросы не оплачиваются, поэтому повторные попытки не стоят вам ничего лишнего, когда они терпят неудачу.
Стоимость запроса
Входные токены стоят $0,15 за 1M, выходные токены — $0,50 за 1M. Несколько примеров, вычисленных точно:
- Ход чата с 2000 токенов промпта и 500 токенов завершения: 2000 x $0,15 / 1M = $0,0003, плюс 500 x $0,50 / 1M = $0,00025, итого $0,00055. Тысяча ходов стоит $0,55.
- Пакетная задача, отправляющая 10M входных токенов и получающая 2M выходных токенов: $1,50 плюс $1,00, итого $2,50.
- Вызов с длинным контекстом с 90 000 токенов промпта и 1000 выходных токенов: $0,0135 плюс $0,0005, итого $0,014.
Баланс предоплаченный, не сгорает, подписки нет. Пополняйте любую целую сумму от $20 до $500; $50 добавляют 5%, поэтому пополнение на $50 дает $52,50 баланса. Оплата криптовалютой (USDT на TRC20, USDC на Base). См. страницу тарифов для полной таблицы бонусов.
Хостинг или локальные файлы: что выбрать
Локальный GGUF дает вам приватность за счет изоляции и полный контроль над точными весами. Хостинговый API избавляет от работы с оборудованием, длинный контекст и URL, который могут вызывать другие сервисы. Большинство команд, создающих бота, инструмент для написания текстов или бэкенд для игры, находят хостинг проще, так как свободная коробка с GPU — это еще одна вещь, которую нужно поддерживать.
Для более широкого обзора оплаты за токен по сравнению с другими способами достижения модели в стиле Qwen см. сравнительное руководство. Промпты, отправленные в API, не используются для обучения. Модель только текстовая, и сексуальный контент с участием несовершеннолетних не разрешен ни при каких обстоятельствах.
Дополнительные руководства
Вопросы и ответы
Нужен ли мне GPU для использования?
Нет. Модель работает на серверах провайдера. Ваш код только отправляет HTTP-запросы, поэтому достаточно ноутбука или небольшого VPS.
Какое имя модели мне отправить?
Укажите uncensored в качестве значения модели. Вы можете подтвердить это, отправив GET-запрос к /v1/models.
Поддерживаются ли Python и Node SDK от OpenAI?
Да. Укажите базовый URL как /v1 адрес сайта и используйте свой ключ. Завершения диалога, потоковая передача, вызов инструментов и JSON-режим работают через стандартные параметры.
Что произойдет, если я отправлю слишком много запросов?
Вы получите HTTP 429 с кодом rate_limited или concurrency. Подождите и повторите запрос, соблюдая заголовок Retry-After, если он присутствует.
Есть ли бесплатный способ протестировать сервис?
Новые пользователи могут получить $0,50 пробного кредита одним нажатием на странице API-ключа. Он действует 7 дней и не требует карты.
Ваш ключ — всего в одной форме
Создайте аккаунт, скопируйте ключ, измените базовый URL. Вот и вся настройка.
Получить API-ключ