Базовый URL и аутентификация
Начните с указания базового URL API Mimo в вашем клиенте, совместимом с OpenAI. Вы получите API-ключ сразу после регистрации через Google или email. Передайте этот ключ в стандартном заголовке Authorization. Идентификатор модели — uncensored, это модель с открытыми весами, настроенная на меньшее количество отказов при законном взрослом контенте.
В отличие от сервисов по подписке, оплата производится предоплатой через криптовалюту. Ошибки не расходуют кредит. Вы можете проверить подключение, запросив список моделей или отправив простой текстовый промпт. Храните ключ в безопасности; один ключ на аккаунт заменяет предыдущий, если вы сгенерируете новый.
Стандартный эндпоинт Chat Completions
Отправьте стандартный запрос POST на эндпоинт завершения чата. Установите модель в uncensored и предоставьте ваши сообщения в требуемом формате массива. API возвращает текстовый вывод на основе вашего промпта. Вы можете настроить параметры, такие как temperature или top_p, чтобы контролировать креативность.
curl https://api.mimoapi.top/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."}]
}'Этот эндпоинт обрабатывает взаимодействия текст-вход, текст-выход. Он не поддерживает эмбеддинги, изображения или дообучение. Если вам нужны эти функции, вам нужно использовать другой сервис. Контекстное окно позволяет 100 000 токенов всего для промпта и завершения вместе.
Интеграция с Python SDK
Используйте официальную библиотеку OpenAI Python для взаимодействия с API. Переопределите базовый URL, чтобы указать на эндпоинт API Mimo. Это позволяет использовать те же методы SDK, которые вы используете для GPT-4 или других моделей. Установите API-ключ и целевую модель в конфигурации вашего клиента.
from openai import OpenAI
client = OpenAI(base_url="https://api.mimoapi.top/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)Этот подход обеспечивает переносимость вашего кода. Если вы смените провайдера, вам нужно изменить только базовый URL и ключ. Python SDK автоматически обрабатывает сериализацию и повторные попытки. Вы также можете установить параметры, такие как seed для детерминированных выводов.
Интеграция с Node SDK
Установите пакет OpenAI для Node.js и настройте базовый URL. Передайте ваш API-ключ в объекте конфигурации. Клиент будет направлять запросы к эндпоинту модели без цензуры. Это работает как с CommonJS, так и с импортом ES-модулей.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.mimoapi.top/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);Разработчики Node могут использовать те же асинхронные паттерны, которые они используют с другими сервисами, совместимыми с OpenAI. SDK обрабатывает парсинг потоков и кодирование JSON. Вы можете установить max_tokens для контроля длины вывода, по умолчанию 2 048, если не указано иное.
Потоковые ответы (SSE)
Включите потоковую передачу, установив stream: true в вашем запросе. API возвращает события Server-Sent Events (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)Потоковая передача снижает воспринимаемую задержку для длинных ответов. Вы должны обрабатывать события потока в коде вашего клиента. API не гарантирует точное количество токенов во время потоковой передачи, но последний фрагмент включает точные данные об использовании. Это полезно для прозрачности выставления счетов.
Лимиты запросов, ошибки и JSON-режим
API устанавливает лимит 300 запросов в минуту на ключ и позволяет 8 одновременных запросов. Если вы превысите этот лимит, вы получите ошибку 429. Ошибка 401 указывает на недействительный или истекший ключ. Предоплаченный баланс списывается только за реальное использование токенов; ошибки и отказы бесплатны.
Для структурированного вывода используйте JSON-режим, установив response_format в json_object. Это заставляет модель возвращать валидный JSON. Это полезно для вызова функций или извлечения данных. Контекстное окно поддерживает до 32 000 токенов вывода на запрос.