Быстрый старт для пользователей MiniCPM
Подключите ваш существующий клиент, совместимый с OpenAI, к нашему API без цензуры за минуту. Замените базовый URL, установите ключ и начните генерацию текста с помощью модели «без цензуры».
Базовый URL и аутентификация
Для использования API вам нужен API-ключ и правильный базовый URL. Наш сервис полностью совместим со стандартными библиотеками клиента OpenAI. Вам не нужно устанавливать новые зависимости или изучать новый SDK. Просто направьте вашего существующего клиента на наш эндпоинт.
Создайте ключ на странице Получить API-ключ. Вы можете войти через Google или используя email и пароль. Ключ отображается сразу. Сохраните его в безопасном месте. Каждый запрос должен содержать этот ключ в заголовке Authorization.
Базовый URL для всех запросов: https://api.minicpm.cc/v1. Этот URL обрабатывает завершение диалога, список моделей и потоковую передачу. Отдельных эндпоинтов для эмбеддингов или зрения нет. Это API только для текста.
Первый запрос
Отправьте стандартный запрос на завершение диалога, чтобы начать генерацию текста. Идентификатор модели всегда uncensored. Это большая языковая модель с открытыми весами, настроенная на ответы без отказов в генерации контента для законного использования взрослыми. Это не GPT, Claude или модель другого поставщика.
Установите поле model в значение uncensored. Предоставьте сообщения в стандартном формате массива. API возвращает текстовый ответ. Вы можете контролировать длину вывода с помощью max_tokens. Если вы не установите его, максимальный вывод по умолчанию составляет 2 048 токенов.
Интеграция Python SDK
Используйте официальную библиотеку OpenAI Python для взаимодействия с API. Вам нужно только настроить базовый URL и API-ключ. Остальная часть библиотеки работает как обычно. Это включает поддержку потоковой передачи, вызова функций и JSON-режима.
Установите библиотеку с помощью pip install openai. Инициализируйте клиента с вашим базовым URL и ключом. Отправляйте сообщения на эндпоинт завершения чата. Объект ответа содержит сгенерированный текст, использование токенов и причину завершения. Вы можете получить доступ к этим полям напрямую в вашем Python-коде.
Интеграция Node SDK
Node.js SDK работает идентично версии Python. Установите пакет и настройте базовый URL. Клиент автоматически обрабатывает аутентификацию и форматирование запросов. Это позволяет быстро интегрировать API в ваши сервисы бэкенда.
Передайте базовый URL и API-ключ в конструктор клиента OpenAI. Используйте метод chat.completions.create. Структура ответа соответствует стандарту OpenAI. Вы можете обрабатывать ошибки, проверять использование токенов и обрабатывать контент. Этот подход обеспечивает совместимость с существующими базами кода, которые уже используют OpenAI.
Потоковые ответы
Включите потоковую передачу, установив stream: true в запросе. API возвращает последовательность событий Server-Sent Events (SSE). Каждое событие содержит чанк ответа. Это позволяет отображать текст пользователю по мере его генерации.
Последний чанк включает статистику использования токенов. Это полезно для отслеживания затрат. Потоковая передача снижает воспринимаемую задержку для пользователей. Рекомендуется для интерфейсов чата. Вы можете разбирать события в коде клиента, чтобы построить окончательный ответ или отображать токены в реальном времени.
Лимиты, ошибки и контекст
Модель поддерживает контекстное окно на 100 000 токенов. Это включает как промпт, так и завершение. Максимальный вывод на запрос — 32 000 токенов. Вы можете настроить параметр max_tokens, чтобы контролировать это.
Лимиты запросов установлены на уровне 300 запросов в минуту на ключ. Вы можете выполнять 8 параллельных запросов. Тело запроса должно быть менее 8 МБ. Если ключ недействителен, вы получите ошибку 401. Если у вас нет баланса, вы получите ошибку 402. Если вы превысите лимит запросов, вы получите ошибку 429. Ошибки и отказы не расходуют баланс.
cURL
curl https://api.minicpm.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.minicpm.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.minicpm.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)Характеристики API
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| Base URL | https://api.minicpm.cc/v1 |
| ID модели | uncensored |
| Авторизация | Authorization: Bearer YOUR_KEY |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| JSON-режим | response_format: {"type": "json_object"} |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| Параллельные запросы | до 8 одновременно на ключ |
| Размер запроса | до 8 МБ |
| Лимит запросов | 300 запросов в минуту на ключ |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Пополнение | USDT (TRC20) или USDC (Base), любая целая сумма от $10 до $500 |
| Срок действия | оплаченный баланс не сгорает, без подписки |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Бонус | +5% от $50, +10% от $100 |
| Вход | 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 | модель занята — повторите через несколько секунд |
Вопросы и ответы
Какой размер контекстного окна?
Контекстное окно составляет 100 000 токенов, включая входной промпт и выходное завершение. Максимальный вывод на запрос — 32 000 токенов.
Как обрабатывать ошибки?
Ошибка 401 означает недействительный API-ключ. Ошибка 402 означает, что ваш предоплаченный баланс исчерпан. Ошибка 429 означает превышение лимита запросов в 300 запросов в минуту. Ошибки не расходуют ваш баланс.
Можно ли использовать потоковую передачу?
Да. Установите <code>stream: true</code> в запросе. API возвращает события Server-Sent Events (SSE). Последний чанк содержит статистику использования токенов.
Ваш ключ — в одной форме от вас
Создайте аккаунт, скопируйте ключ, измените базовый URL. Вот и вся настройка.