Ключевые моменты
- API без цензуры следует стандартному синтаксису OpenAI, но не поддерживает продвинутые функции, такие как эмбеддинги или маршрутизация нескольких моделей, поэтому ваш клиент должен быть настроен на один эндпоинт.
- Потоковые ответы требуют специальной обработки SSE; если ваш SDK по умолчанию использует парсинг JSON, вы столкнётесь с ошибками парсинга при больших выводах без цензуры.
- Вызов функций работает, но требует строгого соблюдения схемы JSON, так как модель может чаще галлюцинировать аргументами, чем модели с инструктивным обучением.
- Вы ограничены 300 запросами в минуту и размером тела 8 МБ, что требует тщательной стратегии пакетной обработки для приложений с высокой нагрузкой.
Понимание эндпоинта API без цензуры
При интеграции API без цензуры для ИИ первая ошибка — предположение, что он ведёт себя так же, как стандартные коммерческие модели. Наш эндпоинт — это размещённая chat-completions-служба, совместимая с OpenAI. Она обслуживает одну выделенную большую языковую модель без цензуры. Это значит, что вам не нужно управлять маршрутизацией моделей или версионированием. Вы отправляете запросы в POST /v1/chat/completions и получаете текст.
В отличие от агрегаторов, объединяющих изображения, видео и нескольких поставщиков, этот сервис сфокусирован исключительно на высокопроизводительном генерировании текста без ограничений. Модель имеет открытые веса и настроена на ответы без отказов по контенту для законного использования взрослыми. Однако это не GPT, Claude, Gemini или модель другого поставщика. Она работает на наших GPU-серверах.
Базовый URL — https://api.uncensoredgptapi.com/v1. Чтобы его использовать, измените base_url в ваших существующих SDK OpenAI или любом клиенте, совместимом с OpenAI, и укажите свой API-ключ. Идентификатор модели, который нужно отправить, — просто "uncensored". Эта простота сокращает время интеграции, но требует проверки, что ваш клиент может работать с эндпоинтом одной модели без резервных вариантов.
Распространённые ошибки аутентификации
Ошибки аутентификации обычно возникают из-за неправильно настроенных заголовков или истёкших ключей. API использует стандартную аутентификацию Bearer-токеном. Вы должны включить ваш API-ключ в заголовок Authorization для каждого запроса.
Распространённая ошибка — кэширование API-ключа без проверки его действительности. Если вы перегенерируете ключ, старый немедленно отзывается. Вы должны обновить конфигурацию клиента для использования нового ключа. Если вы получаете ошибку 401 Unauthorized, проверьте два момента: во-первых, убедитесь, что ключ скопирован правильно, без пробелов в начале или конце. Во-вторых, убедитесь, что вы используете правильный базовый URL. Даже небольшое отклонение в домене или пути приведёт к сбою аутентификации.
Ещё одна частая проблема — использование неверного идентификатора модели. Эндпоинт ожидает "uncensored". Если вы отправите "gpt-4" или другой стандартный идентификатор модели, эндпоинт может отклонить запрос или вернуть ошибку, так как он обслуживает только одну модель. Всегда дважды проверяйте поле model в полезной нагрузке запроса.
curl https://api.uncensoredgptapi.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."}]
}'
Правильная обработка потоковых ответов
Потоковые ответы через Server-Sent Events (SSE) поддерживаются, но часто неправильно обрабатываются разработчиками, привыкшими к синхронным JSON-ответам. Когда вы устанавливаете "stream": true в запросе, API возвращает поток частичных JSON-объектов, а не один полный JSON-ответ.
Если ваш клиент пытается распарсить весь ответ как JSON сразу, он завершится неудачей. Вы должны читать поток построчно. Каждая строка начинается с data: и содержит частичный JSON-объект. Последняя строка — data: [DONE]. Ваш код должен агрегировать эти фрагменты для восстановления финального текста.
Некоторые SDK обрабатывают это автоматически, но пользовательским реализациям требуется явный парсинг SSE. Убедитесь, что буфер вашего клиента может обрабатывать большие выходные данные без таймаута. uncensored модель может генерировать длинные ответы, и потоковая передача помогает управлять использованием памяти. Если вы сталкиваетесь с обрывом соединений, рассмотрите возможность реализации экспоненциальной задержки для логики повторных попыток.
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)
Ошибки конфигурации вызова функций
Вызов функций поддерживается, но модель без цензуры может чаще галлюцинировать аргументами, чем модели с инструктивным обучением. Это требует более строгой проверки с вашей стороны. При определении инструментов убедитесь, что ваша схема JSON точна. Модель попытается заполнить аргументы, но может пропустить обязательные поля или предоставить неверные типы.
Всегда проверяйте аргументы вызова инструмента перед выполнением функции. Если модель возвращает невалидный JSON для аргументов, вы должны обработать ошибку gracefully. Не предполагайте, что вывод будет идеально структурирован. Вам может потребоваться реализовать механизм повторных попыток или шаг постобработки для очистки аргументов.
Кроме того, имейте в виду, что модель без цензуры может игнорировать определения инструментов, если промпт сложный. Если вы столкнётесь с проблемами, упростите описания инструментов и убедитесь, что системный промпт чётко инструктирует модель использовать инструменты при необходимости. Протестируйте с несколькими входными данными, чтобы проверить поведение.
Ограничения контекстного окна (100k токенов)
API без цензуры поддерживает контекстное окно на 100 000 токенов, объединяющее промпт и завершение. Это значительно больше, чем у многих стандартных моделей, что позволяет вести обширные беседы или обрабатывать большие документы. Однако это не бесконечно. Если ваш ввод превышает этот лимит, API вернёт ошибку.
Чтобы избежать достижения этого лимита, отслеживайте использование токенов. Большинство SDK предоставляют утилиты для подсчёта токенов. Отслеживайте кумулятивные токены в истории ваших разговоров. Если вы обрабатываете большие документы, рассмотрите разбивку их на части или суммаризацию более ранних частей разговора, чтобы освободить место в контексте.
Помните, что контекстное окно включает все сообщения в массиве messages. Каждое сообщение вносит вклад в общую сумму. Если вы отправляете много небольших сообщений, накладные расходы могут накапливаться. Оптимизируйте структуру промпта, чтобы минимизировать ненужные токены. Например, избегайте повторения системных инструкций в каждом ходе, если они остаются неизменными.
Объяснение ограничения частоты запросов (300 RPM)
API устанавливает лимит частоты запросов в 300 запросов в минуту на ключ. Это жёсткий лимит для обеспечения справедливого использования всеми пользователями. Если вы превысите этот лимит, вы получите ошибку 429 Too Many Requests. Ваш клиент должен обработать это, реализовав стратегию повторных попыток.
Распространённая ошибка — неучёт всплесков трафика. Если вы отправите 300 запросов в быстрой последовательности, вы можете достичь лимита, даже если ваша средняя частота ниже. Равномерно распределяйте запросы в течение минуты. Если вы обрабатываете большой набор данных, рассмотрите пакетную обработку запросов или использование очереди для управления потоком.
Лимиты частоты применяются на каждый API-ключ. Если у вас есть несколько сервисов, использующих один ключ, они делят лимит. Чтобы увеличить ёмкость, вы можете сгенерировать новый ключ, но имейте в виду, что активен только один ключ на аккаунт. Вы можете перегенерировать ключ в любое время, но это отзовет старый, поэтому убедитесь, что все клиенты обновлены.
Ограничения размера тела запроса (8 МБ)
Тело каждого запроса ограничено 8 МБ. Этот лимит применяется к полезной нагрузке JSON, включая массив messages и любые определения инструментов. Если ваш запрос превышает этот размер, API отклонит его с ошибкой 413 Payload Too Large.
Этот лимит важен при отправке больших файлов в виде base64-кодированных данных или при включении обширных историй разговоров. Если вы работаете с большими документами, рассмотрите сжатие текста или удаление лишних пробелов перед отправкой. Вы также можете использовать потоковую передачу для снижения использования памяти, но начальное тело запроса всё равно должно укладываться в лимит 8 МБ.
Отслеживайте размеры запросов во время разработки. Если вы столкнётесь с этой ошибкой, пересмотрите структуру промпта и удалите избыточную информацию. Например, если вы включаете весь системный промпт в каждое сообщение, переместите его в роль system один раз и ссылайтесь на него.
Управление и перегенерация API-ключа
Каждый аккаунт ограничен одним API-ключом. Этот ключ генерируется при регистрации и показывается сразу. Вы можете перегенерировать ключ в любое время из панели управления. При перегенерации старый ключ мгновенно отзывается. Любой клиент, использующий старый ключ, получит ошибку 401 Unauthorized.
Чтобы эффективно управлять этим, обновите все ваши клиенты перед перегенерацией ключа. Если у вас есть несколько сервисов или устройств, использующих ключ, убедитесь, что они все обновлены одновременно. Вы можете сгенерировать новый ключ столько раз, сколько потребуется, но активным будет только один за раз.
API-ключ привязан к вашему email и паролю. Если вы потеряете ключ, вы можете перегенерировать его. Нет ограничений на количество перегенераций. Однако частая перегенерация может указывать на проблему безопасности, поэтому используйте её при необходимости. Храните ключ в безопасности и не делитесь им публично.
Устранение проблем с фильтрами контента
Модель без цензуры не отказывается от законных взрослых, художественных, исследовательских или спорных тем. Однако существует одно строгое ограничение контента, которое всегда применяется: отсутствует контент сексуального характера с участием несовершеннолетних. Запросы, содержащие такой контент, блокируются.
Если вы столкнётесь с неожиданными отказами, проверьте ваш промпт на наличие тонких указателей на запрещённый контент. Модель настроена на неограниченное использование, но она всё ещё может применять базовые фильтры безопасности. Если вы тестируете граничные случаи, документируйте поведение, чтобы понять границы модели.
Ещё одна распространённая проблема — галлюцинация. Модель без цензуры может генерировать правдоподобную, но неверную информацию. Всегда проверяйте критические выводы, особенно при использовании вызовов инструментов или генерации кода. Модель приоритизирует беглость над строгой фактической точностью в некоторых случаях.