ru ▾
Получите пробный ключ

Устранение распространенных ошибок с abliterated моделями

Устранение неполадок аблигерированных моделей часто сводится к пониманию того, как неограниченные LLM обрабатывают структуру, контекст и потоковую передачу иначе, чем стандартные коммерческие API. Решая проблемы с валидацией JSON, лимитами токенов и настройкой параметров, вы можете обеспечить надежную NSFW-ролевую игру или кодирование без неожиданных отказов или сломанных форматов.

Последнее обновление

Краткое содержание

Почему ваша JSON-ответ не проходит валидацию

Парсинг JSON терпит неудачу, когда модель добавляет разговорный текст за пределами блока кода. Модели без цензуры приоритизируют естественный поток языка, поэтому они часто добавляют "Вот JSON" до или после сырых данных. Это ломает строгие парсеры, ожидающие только объект.

Используйте response_format параметр установлен на {"type": "json_object"}. Это заставляет модель выводить только валидный JSON. Это устраняет необходимость в скриптах очистки с помощью регулярных выражений в вашем коде. Однако учтите, что это потребляет больше токенов на запрос, так как модель ограничена.

  • Установить response_format для json_object в полезной нагрузке запроса.
  • Убедитесь, что ваш системный промпт явно запрашивает вывод в формате JSON.
  • Обработайте запятые в конце или незначительные синтаксические ошибки gracefully, если модель ошибается.
from openai import OpenAI

client = OpenAI(base_url="https://api.abliteratedllmonline.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)

Правильная обработка ограничений окна контекста

Ваше контекстное окно вмещает 100 000 токенов в сумме, включая ввод и вывод. Если вы отправляете длинную историю, вы должны уменьшить максимальную длину вывода. Максимальный вывод по умолчанию равен 2048 токенов, если не указано иное.

Рассчитайте оставшиеся токены, вычтя размер входных данных из 100,000. Если вы используете ролевую игру, держите системный промпт лаконичным. Сохраняйте в запросе API только недавние реплики диалога. Старый контекст можно суммировать или усекать. Это предотвратит достижение жесткого лимита во время генерации.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.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);

Ошибки вызова функций в моделях без цензуры

Вызов функций не срабатывает, когда модель игнорирует определения инструментов или возвращает некорректные аргументы. Модели без цензуры могут отдавать приоритет креативным ответам строгому использованию инструментов. Они могут галлюцинировать параметры, которых нет в вашей схеме.

Четко определите свои инструменты в tools массив. Используйте tool_choice чтобы принудительно задать конкретное поведение. Если модель отказывается вызывать инструмент, проверьте системный промпт на наличие противоречивых инструкций. Убедитесь, что имена и описания инструментов однозначны. Сначала протестируйте с простыми запросами, чтобы проверить интеграцию.

  • Укажите понятные названия инструментов и их описания.
  • Использовать tool_choice для управления вызовом.
  • Проверьте аргументы по вашей схеме перед выполнением.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
  }'

Прерывания потоковой передачи и обработка SSE

Потоковая передача через события сервера (SSE) может терять токены, если клиент отключается или возникают сбои сети. Последний чанк содержит статистику использования токенов. Вы должны разобрать этот чанк, чтобы получить количество входных и выходных токенов.

Реализуйте надежный клиент SSE, который обрабатывает логику переподключения. Не предполагайте, что каждый фрагмент содержит данные. Некоторые фрагменты могут быть пустыми или содержать только пробелы. Обработайте последний фрагмент, чтобы обновить баланс кредитов или счетчики токенов. Это обеспечивает точный биллинг и отслеживание использования.

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)

Параметры температуры, влияющие на NSFW-вывод

Температура управляет случайностью вывода модели. Более высокие значения, такие как 0,8 или 0,9, повышают креативность и непредсказуемость. Более низкие значения, такие как 0,2, делают вывод более детерминированным и сфокусированным. Для NSFW-ролевых игр более высокая температура дает более разнообразные и интенсивные ответы.

Экспериментируйте с различными значениями, чтобы найти правильный баланс. Слишком высокая температура может привести к бессвязному или повторяющемуся тексту. Слишком низкая температура может привести к роботизированному или бледному диалогу. Настройте в зависимости от желаемого тона и согласованности. uncensored-модель хорошо реагирует на настройки высокой креативности.

  • Используйте 0.7-0.9 для творческой ролевой игры.
  • Используйте 0.2-0.5 для фактических или кодовых задач.
  • Отслеживайте качество вывода при настройке.

Top P и разнообразие в генерации ролевых игр

Top P (выборка по ядру) ограничивает модель рассмотрением только верхнего процента вероятностной массы. Он работает с температурой для контроля разнообразия. Низкое значение Top P делает вывод более предсказуемым. Высокое значение позволяет более разнообразный выбор слов.

Сочетайте Top P с температурой для тонкой настройки. Например, высокая температура при низком Top P может создать креативный, но сфокусированный текст. Это полезно для сохранения голоса персонажа, позволяя при этом спонтанные действия. Тестируйте различные комбинации, чтобы они соответствовали вашему стилю повествования.

from openai import OpenAI

client = OpenAI(base_url="https://api.abliteratedllmonline.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 взимает $0.15 за миллион входных токенов и $0.50 за миллион выходных токенов. Выходные токены дороже, так как они представляют работу модели. Стриминг не меняет стоимость; вы платите за все сгенерированные токены.

Отслеживайте использование токенов, чтобы избежать неожиданных списаний. Последний чанк SSE содержит точное количество токенов. Используйте эти данные для обновления локального баланса или панели биллинга. Ошибки и отказы бесплатны, поэтому вы платите только за успешные завершения. Эта модель оплаты по факту использования гарантирует, что вы не переплатите.

  • Вводные токены стоят $0.15 за миллион.
  • Выходные токены стоят $0.50 за миллион.
  • Отказы и ошибки бесплатны.

Замена ключа API и лимиты частоты запросов

На один аккаунт допускается только один активный API-ключ. Если вы перегенерируете ключ, старый становится недействительным немедленно. Это обеспечивает безопасность, но требует оперативного обновления ваших клиентов. Лимиты скорости установлены на уровне 300 запросов в минуту и 8 одновременных запросов на ключ.

Превышение этих лимитов приводит к ошибкам HTTP 429. Реализуйте экспоненциальную задержку в логике повторных попыток. Мониторьте объем запросов, чтобы оставаться в пределах лимитов. Если вам нужна более высокая пропускная способность, рассмотрите возможность разделения рабочей нагрузки между несколькими аккаунтами или оптимизации размеров запросов. Ключ показывается сразу после регистрации, поэтому храните его в безопасности.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.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);

Устранение распространенных ошибок HTTP

HTTP-ошибки указывают на проблемы с вашим запросом или ответом сервера. Распространенные ошибки включают 400 Bad Request, 401 Unauthorized и 429 Too Many Requests. Ошибка 400 часто означает некорректный JSON или недопустимые параметры. Ошибка 401 указывает на неверный или истекший API-ключ.

Проверьте заголовки запроса и полезную нагрузку на наличие синтаксических ошибок. Убедитесь, что ваш API-ключ указан верно и активен. Если вы получаете ошибку 429, подождите и повторите попытку с экспоненциальным замедлением. Используйте официальные SDK OpenAI для автоматической обработки этих ошибок. Они предоставляют понятные сообщения об ошибках и логику повторных попыток. Это сокращает время разработки и повышает надежность.

  • 400: Проверьте синтаксис JSON и параметры.
  • 401: Проверьте действительность API-ключа.
  • 429: Реализуйте логику повторных попыток с замедлением.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
  }'

Частые вопросы

Можно ли использовать abliterated модели со стандартным SDK OpenAI?

Да, наш API полностью совместим с OpenAI. Вы можете использовать официальные SDK OpenAI, просто изменив базовый URL на HTTPS://api.abliteratedllmonline.com/v1 и предоставив свой API-ключ. ID модели для отправки — "uncensored". Это обеспечивает бесшовную интеграцию с вашим существующим кодом.

Отклоняет ли uncensored модель контент?

Модель создана для того, чтобы быть uncensored для законного использования взрослыми. Она не отказывает в спорных, художественных или NSFW-темах. Однако есть жесткое ограничение по контенту: запросы, содержащие сексуальный контент с участием несовершеннолетних, всегда отклоняются. Это единственное строгое ограничение в нашем сервисе.

Как обрабатывать потоковую передачу с учетом использования токенов?

При использовании Server-Sent Events (SSE) последний чанк содержит статистику использования токенов. Вам необходимо разобрать этот последний чанк, чтобы получить количество входных и выходных токенов. Это позволяет точно отслеживать использование кредитов и соответствующим образом выставлять счета. Ошибки и отказы бесплатны, поэтому вы платите только за успешные завершения.

Каков размер контекстного окна?

Окно контекста составляет 100 000 токенов, включая как промпт, так и ответ. Максимальный объем вывода за один запрос — 16 000 токенов, или 2 048, если не указан параметр max_tokens. Такое большое окно позволяет сохранять историю глубоких разговоров и обрабатывать длинные документы.

Получите API-ключ

Зарегистрируйтесь, получите ключ и обновите базовый URL. Вот и всё.