Значения для копирования
Всем, кто ищет базовый URL API Mimo, нужны три значения, а всё остальное — детали инструмента, который вы настраиваете.
| Настройка | Значение |
|---|---|
| Базовый URL | https://api.mimoapi.top/v1 |
| ID модели | uncensored |
| Заголовок авторизации | Authorization: Bearer YOUR_KEY |
| Эндпоинт чата | POST /v1/chat/completions |
| Список моделей | GET /v1/models |
Сервис совместим с OpenAI, поэтому подойдёт любой клиент, позволяющий изменить базовый URL и ключ OpenAI. Это хостинговый текстовый API, работающий на одной модели с открытыми весами от независимого провайдера; это не официальное API ни одного вендора моделей. Только текст: нет генерации изображений, аудио или видео, нет эмбеддингов и нет дообучения, поэтому клиенты, ожидающие этих эндпоинтов, не найдут их. Если у вас ещё нет ключа, на странице ключей уйдёт всего минута.
Базовый URL против полного эндпоинта
Самая частая путаница — между базовым URL и URL эндпоинта. Базовый URL заканчивается на /v1. Эндпоинт — это базовый URL плюс путь. Официальные SDK OpenAI и большинство инструментов, построенных на их основе, объединяют их за вас.
- Базовый URL:
https://api.mimoapi.top/v1 - Эндпоинт чата:
https://api.mimoapi.top/v1/chat/completions - Эндпоинт моделей:
https://api.mimoapi.top/v1/models
Когда экран настроек запрашивает «базовый URL», «базовый API», «эндпоинт» или «хост», прочтите его заполнитель. Если заполнитель заканчивается на /v1, вставьте базовый URL. Если он заканчивается на /chat/completions, вставьте полный чат-эндпоинт. Вставка полного эндпоинта в поле, ожидающее базовый URL, дает /chat/completions/chat/completions, которого не существует. Вставка только доменного имени в поле, ожидающее базовый URL, дает /chat/completions без /v1, что приводит к той же ошибке.
Обратите также внимание на хост. API работает на поддомене api. Основной домен сайта обслуживает веб-страницы, поэтому запрос к нему с API-путем не достигнет модели.
Python и Node
С официальными SDK вы один раз задаёте базовый URL при создании клиента. Установите их с помощью pip install openai или npm install openai.
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": "Name three uses for a base URL."}],
max_tokens=150,
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.mimoapi.top/v1",
apiKey: process.env.LLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Name three uses for a base URL." }],
max_tokens: 150,
});
console.log(resp.choices[0].message.content);
SDK OpenAI для Python и Node также считывают переменные окружения OPENAI_BASE_URL и OPENAI_API_KEY, если вы не передаёте значения в коде. Это позволяет перенаправить существующий скрипт без редактирования: экспортируйте две переменные, и скрипт будет обращаться к этому API. Убедитесь, что в скрипте не захардкожена модель, например имя GPT; замените её на uncensored.
curl для быстрой проверки
Простой HTTP-вызов убирает все остальные переменные, поэтому это лучшая первая проверка. Первая команда выводит список моделей и подтверждает ключ. Вторая отправляет запрос к чату.
export LLM_API_KEY="YOUR_KEY"
curl -s https://api.mimoapi.top/v1/models \
-H "Authorization: Bearer $LLM_API_KEY"
curl -s https://api.mimoapi.top/v1/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}],"max_tokens":20}' -i
Флаг -i выводит заголовки ответа. Ищите X-Request-Id (укажите его при обращении в поддержку), X-Balance-USD (ваш оставшийся баланс) и два заголовка лимитов запросов: X-RateLimit-Limit-Requests и X-RateLimit-Limit-Concurrency. Для потоковой передачи добавьте "stream": true в тело запроса и -N к curl, чтобы вывод не буферизовался. Пятиминутное руководство показывает настройку потоковой передачи и вызова функций после этого.
LangChain, чат-интерфейсы и другие инструменты
Сторонние инструменты используют свои собственные метки, но всем им нужны те же три значения. Вот некоторые шаблоны, которые вы увидите:
- LangChain (Python):
ChatOpenAI(model="uncensored", base_url="https://api.mimoapi.top/v1", api_key="YOUR_KEY"). Тот же класс работает для любого сервера, совместимого с OpenAI. - SillyTavern и аналогичные фронтенды для ролевых игр: выберите пользовательский или универсальный источник чата, совместимый с OpenAI, вставьте базовый URL, добавьте ключ и введите
uncensoredкак имя модели, если список не заполняется сам. - Open WebUI и другие чат-интерфейсы с самостоятельным хостингом: добавьте соединение, совместимое с OpenAI, в настройках, используя тот же базовый URL и ключ.
- Плагины редакторов и скрипты: ищите «пользовательский эндпоинт OpenAI» или «переопределить базовый URL» в настройках плагина.
Названия меню инструментов меняются от версии к версии, поэтому ориентируйтесь на назначение поля, а не на точную метку. Если инструмент требует проверки ключа у фиксированного провайдера, он не совместим с пользовательскими эндпоинтами, и решением будет другой инструмент.
Когда инструмент предлагает выпадающий список моделей, обычно он заполняет его, вызывая GET /v1/models. Если список остается пустым, введите ID модели вручную. Если инструмент отказывается принимать неизвестные имена моделей, поищите опцию с меткой «пользовательская модель».
Исправление типичных ошибок конфигурации
Когда запрос не выполняется, код состояния и точный URL быстро сужают причину. Пройдитесь по этому списку.
- Ошибка аутентификации. Ключ отсутствует, обрезан или содержит пробел или перевод строки в конце. Вставьте его снова и убедитесь, что заголовок содержит
Bearer, пробел и затем ключ. - Не найдено. Путь указан неверно. Выведите финальный URL, который формирует ваш клиент. Он должен быть точно
https://api.mimoapi.top/v1/chat/completions. Ищите пропущенный/v1, удвоенный путь или неверный хост. - Неизвестная модель. Осталось имя модели от другого провайдера. Укажите модель
uncensored. - HTTP 429 с
rate_limitedилиconcurrency. Вы превысили лимит: более 300 запросов в минуту или 8 одновременно (60 и 2 для пробного ключа). Замедлите темп или поставьте запросы в очередь. 429 с заголовкомRetry-After: 5означает временную перегрузку; подождите пять секунд и повторите запрос. - Запрос слишком большой. Лимит тела — 8 МБ, а контекстное окно — 100 000 токенов для промпта и ответа. Уменьшите историю.
- Работает в curl, не работает в браузере. Прямой вызов API из фронтенд-JavaScript раскрывает ваш ключ каждому посетителю. Маршрутизируйте запросы через свой сервер.
Никогда не помещайте ключ в публичный репозиторий или клиентский бандл. Храните его в переменной окружения и держите подальше от скриншотов и тикетов поддержки.
Следующие шаги после первого успешного вызова
Когда базовый URL работает, стоит знать несколько настроек. Потоковая передача по SSE включается с помощью stream: true. Вызов функций использует tools и tool_choice, результаты отправляются обратно как сообщения role: "tool". JSON-режим — это response_format: {"type": "json_object"}. Параметры сэмплирования, такие как temperature, top_p, stop, seed и штрафы, передаются как есть.
Что касается оплаты, вы платите $0,15 за 1 млн входных токенов и $0,50 за 1 млн выходных токенов из предоплаченного баланса; на странице цен указаны размеры пополнений и бонусы. Модель настроена так, чтобы отвечать без отказов по контенту для законного использования взрослыми, а сексуальный контент с участием несовершеннолетних всегда запрещён. Промпты не используются для обучения.
