NsfwLocalДокументация для разработчиков
Документация API
Начните работу с API нецензурированной LLM за считанные минуты. Используйте стандартные OpenAI-совместимые инструменты для отправки текстовых запросов и получения прямых, нефильтрованных ответов.
Быстрый старт первого запроса
Начните генерацию текста сразу, указав в вашем клиенте наш базовый URL и аутентифицировавшись с помощью сгенерированного API-ключа. Интерфейс соответствует стандартным соглашениям, поэтому вы можете использовать существующие SDK без изучения нового протокола. Вы будете отправлять запросы в uncensored модель и получайте текстовые ответы, которые не применяют типичные фильтры контента для использования в законных целях для взрослых.
Настройте базовый URL и ключ
Установите переменные окружения для маршрутизации запросов к нашей конкретной конечной точке. Замените ключ-заполнитель на тот, который был сгенерирован при регистрации. Это гарантирует, что все последующие вызовы будут использовать правильный экземпляр uncensored модели.
- Базовый URL:
https://api.nsfwlocalllm.com/v1 - Заголовок Auth:
Authorization: Bearer YOUR_API_KEY
Вы можете проверить работоспособность ключа, проверив эндпоинт моделей. Действительный ключ сразу возвращает доступный идентификатор модели.
Отправьте запрос на завершение чата
Отправьте стандартный полезный запрос chat completion для генерации текста. Система обрабатывает ваш ввод и возвращает ответ модели. Используйте uncensored идентификатор модели для обеспечения того, что вы обращаетесь к нефильтрованному экземпляру.
Ответ включает сгенерированный текст и статистику использования токенов. Вы можете распарсить это напрямую в логику вашего приложения.
curl https://api.nsfwlocalllm.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Send me the server uptime stats"}]
}'Проверьте наличие стандартных кодов HTTP статуса для обработки случаев успеха или неудачи.
Включите потоковую передачу для вывода в реальном времени
Потоковая передача ответов для снижения воспринимаемой задержки для ваших пользователей. Включите потоковую передачу, установив stream: true в тело запроса. API возвращает серию событий, отправляемых сервером (SSE), содержащих частичные токены.
Агрегируйте эти токены на стороне клиента, чтобы восстановить полное сообщение. Этот подход идеален для интерфейсов чата, где важен немедленный отклик. Последнее событие SSE содержит общее количество использованных токенов для запроса.
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwlocalllm.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)Обрабатывайте ошибки соединения, чтобы обеспечить плавный пользовательский опыт.
Используйте режим JSON для структурированных данных
Принудительно заставляйте модель выводить корректный JSON для программной обработки. Установите response_format для {"type": "json_object"} в вашем запросе. Это снижает ошибки парсинга и обеспечивает согласованные структуры данных.
Используйте это для генерации структурированных запросов, извлечения сущностей или создания динамического контента. Модель придерживается ограничений формата, указанных в системных инструкциях. Это критически важно для надежной интеграции с другими сервисами.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwlocalllm.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);Проверяйте вывод JSON на своей стороне, чтобы выявить любые крайние случаи.
Реализуйте вызов функций
Определите инструменты для расширения возможностей модели. Передайте tools массив с определениями функций в запрос. Модель может выбрать вызов этих функций на основе контекста.
Это позволяет создавать сложные рабочие процессы, где LLM решает, когда получать данные или выполнять действия. Вы получаете аргументы функции в ответе и выполняете их на своей стороне. Передавайте результаты обратно модели для дальнейшего анализа.
Установить tool_choice для auto для гибкого принятия решений. Эта функция поддерживает сложные сценарии ролевых игр, требующие доступа к внешним данным.
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)Часто задаваемые вопросы
Каков размер контекстного окна?
Окно контекста составляет 100 000 токенов, включая промпт и ответ. Это позволяет вести длинные диалоги и обрабатывать большие документы без потери контекста.
Что произойдет, если у меня закончится кредит?
Запросы завершаются неудачно со статус-кодом 402, когда предоплаченный баланс недостаточен. Вы можете пополнить баланс с помощью криптовалюты, чтобы немедленно возобновить обслуживание. Ошибки, такие как ограничения частоты, не потребляют кредит.
Как обрабатывать ограничения частоты запросов?
API ограничивает количество запросов до 300 в минуту на ключ. Если вы превысите этот лимит, получите код статуса 429. Реализуйте экспоненциальное замедление с откатом в вашем клиенте, чтобы эффективно обрабатывать эти задержки.
Получите ваш API-ключ мгновенно
Зарегистрируйтесь, скопируйте токен, обновите базовый URL. Настройка завершена.
Получить API-ключ