Предварительные требования
Для работы с API apertus вам нужен аккаунт и API-ключ. Зарегистрируйтесь через Google или email на странице получения API-ключа. Вы получите ключ мгновенно, номер телефона не требуется. Если хотите сначала протестировать, каждый новый аккаунт получает $0.50 пробного баланса на 7 дней. Карта для пробного периода не нужна. Для продакшена пополняйте криптой (USDT в сети TRC20 или USDC в сети Base). Баланс не сгорает, а ошибки не расходуют средства. На один аккаунт действует один активный ключ; генерация нового заменяет старый. Храните ключ в безопасности и передавайте его в заголовке Authorization как bearer token. API работает только с текстом и обслуживает одну модель без цензуры, оптимизированную для ответов без отказов по контенту.
Базовый URL и аутентификация
Направляйте все запросы на https://api.apertus.cc/v1. Этот базовый URL работает с официальными SDK OpenAI и любым совместимым клиентом путем простой смены эндпоинта. Укажите ваш API-ключ в заголовке: Authorization: Bearer YOUR_API_KEY. Единственный поддерживаемый эндпоинт — POST /v1/chat/completions. Также доступен эндпоинт GET /v1/models для проверки подключения. Идентификатор модели для использования — uncensored. Это модель с открытыми весами, работающая на наших серверах, отличная от GPT, Claude или других поставщиков. Она принимает текстовый ввод и возвращает текстовый вывод. Не ожидайте встраиваний, изображений или аудио. API создан для разработчиков, которым нужна простая интеграция без сложности маршрутизации моделей.
Первый запрос
Отправьте базовый запрос на генерацию ответа, чтобы проверить настройку. Используйте команду curl для отправки POST-запроса на эндпоинт чата. Установите модель в uncensored и включите простое сообщение. Это подтвердит работоспособность API-ключа и правильность базового URL. Вы можете настроить параметры, такие как temperature или max_tokens по мере необходимости. В ответе будет содержаться текстовый вывод модели. Если вы получите ошибку 401, проверьте ключ. Ошибка 402 указывает на недостаток средств. Ошибка 429 означает превышение лимита запросов. Этот простой запрос демонстрирует прямой доступ к API без промежуточного ПО. Это самый быстрый способ проверить интеграцию перед созданием сложной логики.
Интеграция с Python
Используйте официальный Python SDK openai для взаимодействия с API. Инициализируйте клиент с базовым URL https://api.apertus.cc/v1 и вашим API-ключом. Установите модель в uncensored. Передавайте сообщения в виде списка словарей. SDK автоматически выполняет сериализацию и обработку ошибок. Этот подход идеален для бэкенд-сервисов или скриптов обработки данных. Вы можете использовать потоковую передачу ответов или получать полные блоки. Код клиента идентичен тому, что вы используете для OpenAI, отличается только базовый URL. Это снижает трение при переходе от других провайдеров. Убедитесь, что у вас установлена последняя версия SDK для лучшей совместимости. Интеграция минимальна и требует только изменения конфигурации вашего существующего клиента.
Интеграция с Node.js
Для сред JavaScript или TypeScript используйте пакет npm openai. Настройте клиент с тем же базовым URL и ключом, что и в Python. Вызовите chat.completions.create() с моделью uncensored. Передавайте сообщения в стандартном формате. Это отлично работает для безсерверных функций или бэкендов на Node.js. SDK управляет HTTP-запросами и разбором ответов. Вы можете обрабатывать ошибки, проверяя статус ответа. Код остается переносимым между различными OpenAI-совместимыми сервисами. Это позволяет легко менять провайдеров при необходимости. Интеграция Node.js поддерживает как синхронные, так и асинхронные паттерны. Используйте его для создания API, ботов или автоматизированных рабочих процессов, которым нужна генерация текста без цензуры.
Потоковая передача ответов
Включите потоковую передачу, установив stream: true в запросе. API возвращает текст частями по мере его генерации. Это снижает воспринимаемую задержку при длинных ответах. Каждая часть содержит фрагмент ответа. Последняя часть содержит статистику использования токенов. Потоковая передача поддерживается через Server-Sent Events (SSE). Используйте средства потоковой передачи SDK для эффективной обработки частей. Это полезно для чат-интерфейсов или приложений реального времени. Обратите внимание, что потоковая передача потребляет те же токены, что и без потоковой передачи. Ошибки могут возникать в середине потока, поэтому обрабатывайте прерывания. Модель без цензуры поддерживает потоковую передачу по умолчанию. Эта функция позволяет отображать текст постепенно. Это стандартная функция в современных API LLM. Убедитесь, что код вашего клиента правильно обрабатывает частичные ответы.
Лимиты, ошибки и контекст
Контекстное окно составляет 100 000 токенов суммарно, включая промпт и ответ. Максимальный вывод — 32 000 токенов на запрос, или 2 048, если max_tokens не задан. Лимиты запросов — 300 запросов в минуту и 8 параллельных запросов на ключ. Тела запросов должны быть менее 8 МБ. Распространенные ошибки: 401 для недействительных ключей, 402 при отсутствии баланса и 429 при превышении лимитов. Модель отказывает в сексуальном контенте с участием несовершеннолетних. Она не отказывает в других законных взрослых, художественных или спорных темах. Ценообразование прозрачно: $0,25 за 1 млн входных токенов и $1,00 за 1 млн выходных токенов. Ошибки бесплатны. Баланс предоплаченный и не сгорает. Используйте эти лимиты для планирования масштаба вашего приложения. API спроектирован для массового и экономичного генерирования текста.
cURL
curl https://api.apertus.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.apertus.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.apertus.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)