uk ▾
Отримати пробний ключ

Вирішення поширених помилок з abliterated моделями

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

Останнє оновлення

Підсумок

Чому ваша JSON-відповідь не проходить валідацію

Парсинг JSON не вдається, коли модель додає розмовний текст поза блоком коду. Незакриті моделі віддають пріоритет природному потоку мовлення, тому вони часто додають "Ось JSON" перед або після сырых даних. Це ламає суворі парсери, які очікують лише об'єкт.

Використовуйте response_format параметр встановлено на {"type": "json_object"}. Це змушує модель виводити лише дійсний JSON. Це усуває необхідність у скриптах для очищення регулярними виразами (regex) у вашому коді. Однак зверніть увагу, що це споживає більше токенів на запит, оскільки модель обмежена.

  • Встановити response_format до json_object у тілі запиту.
  • Переконайтеся, що ваш системний промпт явно вимагає виведення у форматі JSON.
  • Обробляйте коми в кінці рядків або невеликі синтаксичні помилки коректно, якщо модель помиляється.
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 токенів загалом, об’єднуючи як вхідні, так і вихідні дані. Якщо ви надсилаєте довгу історію, вам потрібно зменшити максимальну довжину виводу. Максимальний вивід за замовчуванням становить 2 048 токенів, якщо ви не вкажете інше.

Розрахуйте залишок токенів, віднявши розмір вхідних даних від 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-рольових ігор вищі температури дають більш різноманітні та інтенсивні відповіді.

Експериментуйте з різними значеннями, щоб знайти правильний баланс. Занадто висока temperature може призвести до незв’язного або повторюваного тексту. Занадто низька temperature може призвести до роботизованої або банальної розмови. Налаштовуйте відповідно до бажаного тону та узгодженості. Неконтрольована модель добре реагує на вищі налаштування креативності.

  • Використовуйте 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 model контент?

Модель створена для бути позбавленою цензури при законному використанні дорослими. Вона не відмовляє у суперечливих, художніх або NSFW-темах. Однак існує суворий ліміт контенту: запити, що містять сексуальний контент з участю неповнолітніх, завжди відхиляються. Це єдиний суворий відмов у нашому сервісі.

Як обробляти потокову передачу з використанням токенів?

При використанні подій, наданих сервером (SSE), останній фрагмент містить статистику використання токенів. Вам потрібно розпарсувати цей останній фрагмент, щоб отримати кількість вхідних та вихідних токенів. Це дозволяє точно відстежувати використання кредитів та відповідно нараховувати оплату. Помилки та відмови безкоштовні, тому ви платите лише за успішні завершення.

Який розмір контекстного вікна?

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

Отримайте свій API-ключ

Зареєструйтеся, отримайте свій ключ і оновіть базовий URL. Ось і все.