API, совместимый с OpenAI: смените клиента за три строки
Смените клиента за три строки: измените базовый URL и API-ключ, затем используйте существующий код. Эта готовая замена API, совместимого с OpenAI, обеспечивает опыт использования LLM API без цензуры с прозрачной ценой за токен.
- Базовый URL
- https://api.openaicompatibleapi.com/v1
- Модель
- без цензуры
Требования: установите OpenAI SDK
Перед отправкой запросов убедитесь, что в вашей среде разработки установлен официальный OpenAI SDK для предпочитаемого языка. Это стандартный способ взаимодействия разработчиков с API, совместимым с OpenAI, обеспечивающий согласованную типизацию и обработку ошибок. Для Python используйте pip install openai. Для Node.js выполните npm install openai. Эти библиотеки обрабатывают детали HTTP, так что вы можете сосредоточиться на передаче промптов и получении текстовых ответов.
Настройте базовый URL и API-ключ
Главное преимущество нашего сервиса в том, что вам нужно обновить только два значения конфигурации. Укажите клиенту наш базовый URL: https://api.openaicompatibleapi.com/v1. Затем сгенерируйте API-ключ на странице регистрации; он отображается сразу после регистрации без необходимости привязки карты. Установите base_url и api_key при инициализации клиента. Это делает нас прямой альтернативой API GPT для ваших существующих проектов без переписывания логики.
Выполните первый запрос
Отправьте стандартный запрос на завершение чата, используя идентификатор модели uncensored. Эта модель — LLM с открытыми весами, настроенная на ответы без отказов в контенте для законного использования взрослыми. Это не GPT, Claude или модель другого поставщика. Вы можете сразу проверить подключение с помощью простого текстового промпта. Ответ вернет сгенерированный текст в поле content.
curl https://api.openaicompatibleapi.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."}]
}'
Включите потоковую передачу ответов
Для улучшения пользовательского опыта включите потоковую передачу, чтобы получать токены по мере их генерации. Установите stream=True в запросе. SDK будет выдавать фрагменты по мере их поступления, позволяя мгновенно отображать частичные результаты. Это особенно полезно для длинных контекстных окон до 100 000 токенов. Потоковая передача работает идентично стандартным клиентам OpenAI, сохраняя совместимость с вашей существующей логикой обработки ошибок.
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)
Используйте вызов функций (вызов инструментов)
Наш API поддерживает структурированный вызов инструментов. Определите свои функции в параметре tools, и модель вернет вызовы инструментов в ответе. Затем вы можете выполнить эти инструменты и отправить результаты обратно модели для дальнейшего анализа. Эта функция работает с любым клиентом, совместимым с OpenAI, который поддерживает стандартный формат вызова инструментов. Она идеально подходит для создания агентов или автоматизации рабочих процессов без управления сложным прокси LLM.
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicompatibleapi.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)
Проверьте доступные модели
Запросите эндпоинт GET /v1/models, чтобы проверить доступные модели. Вы увидите модель uncensored в списке. Это подтверждает, что ваш API-ключ и базовый URL настроены правильно. Вы также можете использовать этот эндпоинт для отладки проблем аутентификации. Если эндпоинт возвращает список, ваше подключение к API для разработчиков активно. Другие модели не предлагаются, что упрощает конфигурацию.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicompatibleapi.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);Технические характеристики
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| ID модели | uncensored |
| Авторизация | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.openaicompatibleapi.com/v1 |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| JSON-режим | response_format: {"type": "json_object"} |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Лимит запросов | 300 запросов в минуту на ключ |
| Размер запроса | до 8 МБ |
| Параллельные запросы | до 8 одновременно на ключ |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Бонус | +5% от $50, +10% от $100 |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Срок действия | оплаченный баланс не сгорает, без подписки |
| Пополнение | USDT (TRC20) или USDC (Base), любая целая сумма от $10 до $500 |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Контент | контент для взрослых разрешён; сексуальный контент с несовершеннолетними запрещён |
| Ключи | один активный ключ на аккаунт; новый заменяет старый |
| Вход | Google или e-mail и пароль |
Коды ошибок
Ошибки приходят в JSON с постоянным type; неудачные и отклонённые запросы не оплачиваются.
| Код | Тип | Что значит |
|---|---|---|
400 | bad_request | неверный JSON, пустые сообщения, неверный параметр или превышено окно контекста |
401 | missing_key · invalid_key · key_revoked | нет ключа, ключ неверный или заменён новым |
402 | no_credit | баланс пуст — пополните, работа продолжится сразу |
403 | content_blocked | сексуальный контент с несовершеннолетними — отказ, без оплаты |
404 | not_found | неизвестный эндпоинт |
413 | request_too_large | тело запроса больше 8 МБ |
429 | rate_limited · concurrency | больше 300/мин или 8 параллельно — подождите и повторите |
503 | upstream_busy | модель занята — повторите через несколько секунд |
Вопросы и ответы
Какие лимиты запросов?
Лимит составляет 300 запросов в минуту на один API-ключ. Размер тела запроса ограничен 8 МБ. При превышении лимита вы получите ошибку 429. Вы можете сгенерировать новый ключ в любое время, чтобы сбросить ассоциацию, хотя лимит запросов применяется к самому ключу.
Почему возникает ошибка 401 или 402?
Ошибка 401 указывает на недействительный или истёкший API-ключ. Ошибка 402 означает, что ваш предоплаченный баланс исчерпан. У нас нет бесплатного безлимитного тарифа; необходимо пополнить баланс, чтобы продолжать использовать API LLM без цензуры. Баланс не сгорает, поэтому вы можете пополнить его от $10 криптовалютой (USDT или USDC).
Действительно ли контекстное окно составляет 100k?
Да, модель поддерживает строгое контекстное окно на 100 000 токенов для промпта и завершения вместе. Это позволяет обрабатывать большие документы или вести длинные диалоги. Убедитесь, что ваши входные данные укладываются в этот лимит, чтобы избежать усечения или ошибок.
Ваш ключ — в одной форме от вас
Создайте аккаунт, скопируйте ключ, измените базовый URL. Вот и вся настройка.