Быстрый старт для пользователей Qwen
Подключите ваш существующий OpenAI-совместимый клиент к нашему эндпоинту без цензуры. Измените базовый URL, вставьте ключ и начните отправлять запросы.
uncensoredhttps://api.qwenapi.cc/v1
На этой странице
Аутентификация и базовый URL
Наш API использует стандартную аутентификацию Bearer. Вы получаете ключ сразу после регистрации через Google или email. Храните этот ключ в безопасности; он обеспечивает доступ к вашему предоплаченному балансу. Базовый URL для всех запросов: https://api.qwenapi.cc/v1. Обновите конфигурацию клиента, чтобы указать этот эндпоинт вместо стандартного URL OpenAI.
Аутентификация выполняется путём передачи заголовка Authorization в каждом запросе. Без API-ключа модель не может проверить баланс вашего аккаунта, что приведёт к ошибке 401. Дополнительные заголовки или нестандартные схемы аутентификации не требуются.
Первый запрос
Отправьте стандартный запрос на завершение чата для проверки подключения. Замените YOUR_API_KEY на ваш фактический ключ. Эндпоинт принимает стандартные JSON-пэйлоады с полями model, messages и content.
- Идентификатор модели:
uncensored - Эндпоинт:
POST /v1/chat/completions - Формат: JSON
Этот запрос потребует входные токены из вашего баланса. Убедитесь, что ваш клиент корректно обрабатывает JSON-ответ, чтобы убедиться, что подключение работает.
Интеграция Python SDK
Используйте официальную библиотеку OpenAI для Python. Требуется минимальная настройка для маршрутизации трафика к нашему эндпоинту. Инициализируйте клиент с вашим ключом и правильным базовым URL. Этот подход позволяет использовать существующие кодовые базы без переписывания логики запросов.
Передавайте идентификатор модели uncensored при создании ответа. Библиотека автоматически выполняет сериализацию и десериализацию. Этот метод рекомендуется для большинства бэкенд-интеграций и сценариев на основе скриптов.
Интеграция Node SDK
Для сред JavaScript или TypeScript используйте @anthropic-ai/sdk или стандартный пакет OpenAI для Node.js. Настройте базовый URL для указания на наш API. Это позволяет подключить наш сервис к существующим приложениям Node.js без значительной переделки кода.
Убедитесь, что вы используете последнюю версию SDK, поддерживающую пользовательские базовые URL. Передайте идентификатор модели uncensored для выбора нашей модели без цензуры. Эта настройка бесшовно работает с маршрутами Express или серверными функциями.
Потоковые ответы
Включите потоковую передачу, установив stream: true в вашем запросе. API возвращает Server-Sent Events (SSE) по мере генерации текста моделью. Это обеспечивает меньшую задержку для конечных пользователей и позволяет отображать вывод в реальном времени.
Статистика использования токенов включена в последний чанк потока. Обрабатывайте каждый дельта-инкремент инкрементально, чтобы собрать полный ответ. Эта функция необходима для интерфейсов чата и приложений, требующих немедленной обратной связи.
Лимиты, ошибки и контекст
Соблюдайте лимиты запросов, чтобы избежать прерывания работы сервиса. API позволяет выполнять 300 запросов в минуту и 8 параллельных запросов на ключ. Максимальный размер тела запроса составляет 8 МБ. Если вы превысите эти лимиты, API вернёт статус-код 429.
Ошибки аутентификации возвращают 401, указывая на недействительный или отсутствующий ключ. Ошибки баланса возвращают 402, что означает исчерпание предоплаченного баланса. Контекстное окно поддерживает 100 000 токенов в целом, с максимальным выводом 32 000 токенов на запрос. Ошибки и отказы не расходуют кредиты.
cURL
curl https://api.qwenapi.cc/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.qwenapi.cc/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.qwenapi.cc/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);Потоковая передача
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)Вопросы и ответы
Как обрабатывать ограничение частоты запросов?
API устанавливает лимит 300 запросов в минуту и 8 параллельных запросов на ключ. При превышении этих лимитов API возвращает статус 429. Реализуйте экспоненциальное замедление в клиенте для корректной обработки повторных попыток.
Поддерживает ли API вызов функций?
Да, API поддерживает вызов функций через стандартный формат tools. Вы можете указать tools и tool_choice в запросе для получения структурированного вывода или интеграции с внешними инструментами. Эта функция работает со стандартной схемой OpenAI-совместимого API.
Что произойдет, если я превышу контекстное окно?
Модель поддерживает общее контекстное окно на 100,000 токенов, включая промпт и завершение. Если вы превысите этот лимит, запрос завершится ошибкой. Убедитесь, что ваше приложение отслеживает использование токенов, чтобы оставаться в этих пределах.
Ваш ключ — в одной форме от вас
Создайте аккаунт, скопируйте ключ, измените базовый URL. Вот и вся настройка.
Характеристики API
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| ID модели | uncensored |
| Base URL | https://api.qwenapi.cc/v1 |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| Авторизация | Authorization: Bearer YOUR_KEY |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| JSON-режим | response_format: {"type": "json_object"} |
| Параллельные запросы | до 8 одновременно на ключ |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Лимит запросов | 300 запросов в минуту на ключ |
| Размер запроса | до 8 МБ |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Бонус | +5% от $50, +10% от $100 |
| Срок действия | оплаченный баланс не сгорает, без подписки |
| Пополнение | USDT (TRC20) или USDC (Base), любая целая сумма от $10 до $500 |
| Контент | контент для взрослых разрешён; сексуальный контент с несовершеннолетними запрещён |
| Вход | 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 | модель занята — повторите через несколько секунд |