Важны ровно две вещи: base URL
https://speshu.ai/api/v1 и API-ключ. Flowise работает через OpenAI-совместимые эндпоинты, поэтому подключение почти всегда сводится к смене адреса. В Flowise это путь «OpenAI-совместимый провайдер» — узел ChatOpenAI с полем Base Path; отдельный плагин или SDK для этого не нужен.Установка
Flowise — Node.js-приложение. Подходит любой из двух способов.http://localhost:3000. Состояние (флоу, ключи, индексы) лежит в каталоге ~/.flowise — примонтируйте его как volume, иначе контейнер потеряет настройки при пересоздании.
Получите ключ и идентификатор модели
1
Ключ
Ключ создаётся на speshu.ai/profile и показывается один раз.
2
Идентификатор модели
Идентификаторы текстовых моделей не зашивайте в код: состав каталога меняется, и устаревший идентификатор падает с Скопируйте значение в поле Model Name узла ChatOpenAI. Если Flowise разворачивается в Docker, к внешнему API он ходит по внутренней сети. Используйте тот же
404 model_not_found. Возьмите его из каталога и положите в переменную.https://speshu.ai/api/v1, если DNS и маршрут из контейнера доступны; иначе — адрес внутреннего прокси. Формат ответа — в разделе Каталог моделей.Эндпоинт каталога не требует ключа. Передавайте его только ради ваших тарифных цен: без заголовка придут публичные цены.
Настройка узла ChatOpenAI
Создайте Chatflow, перетащите ноду ChatOpenAI и заполните три поля:
Подключите ноду к входу Chat Input, а её выход — к выходу Chat Output. Сохраните флоу и нажмите Test в панели предпросмотра: если в поле ответа появился текст, подключение работает.
Дополнительно в секции Additional Configuration доступны параметры генерации —
Temperature, Max Tokens, Top P. Ставьте их там, а не в промпте: Flowise передаёт их в тело запроса, и значения совпадают с полями запроса чата.
Первый работающий пример
Готовый флоу публикуется по адресу/api/v1/prediction/{chatflow_id} — это эндпоинт самого Flowise, не SpeShu.AI.
Python
Поле ответа Flowise —
text, а не choices: это обёртка над OpenAI-ответом. Само списание видно не в нём, а в логах Flowise; если нужно считать расход программно, запрашивайте напрямую POST /api/v1/chat/completions — там сумма лежит в usage.cost.total_cost, в рублях. Разбор — в разделе Учёт средств.Потоковая передача
Добавьте на вход ноды Chat Input переключатель Streaming — он ставитstream: true в upstream-запрос, а ответ отдаёт через SSE. Формат кадров и момент списания разобраны в гайде Потоковая передача.
Вызов функций и структурированный вывод
Обе возможности включаются на уровне нод, а не на уровне API:- Tools — подключите ноду Tool (или Custom Tool) и соедините её с моделью. Flowise сам собирает
tools[]и выполняет вызов; схема аргументов берётся из описания ноды. Полный цикл — в гайде Вызов функций. - Structured output — нода Structured Output Parser в связке с промптом, описывающим JSON-схему, включает
response_formatсjson_schema. Примеры — в гайде Структурированный вывод. - Vision — модель из каталога с поддержкой зрения принимает изображения; нода ChatOpenAI отдаёт их без изменений. Не все модели это умеют — сверяйтесь по Моделям и ценам.
Генерация медиа
У Flowise нет встроенной ноды под медиа-задачи SpeShu.AI, но есть Custom Tool — произвольный HTTP-вызов. Через неё можно создать задачу:Эмбеддинги: чего SpeShu.AI не умеет
Два честных варианта: (а) Отдельный провайдер для эмбеддингов. SpeShu.AI остаётся генератором, векторизация уходит другому сервису:-
В ноде Embeddings укажите Base Path и API Key стороннего провайдера — это отдельная конфигурация, не ключ SpeShu.AI:
-
Нода ChatOpenAI продолжает смотреть в
https://speshu.ai/api/v1. - При пересборке индекса эмбеддинг считается один раз; при каждом запросе оплачивается только генерация в SpeShu.AI.
Частые проблемы
404 на запросе, хотя ключ рабочий
404 на запросе, хотя ключ рабочий
Проверьте
Base Path: должно быть https://speshu.ai/api/v1, без завершающего слэша и без повторного /api/v1. Внутри контейнера используйте внутренний адрес сервиса, а не публичный домен.404 model_not_found в логе ноды
404 model_not_found в логе ноды
Идентификатор в поле Model Name устарел или скопирован с префиксом провайдера. Возьмите его заново из
GET /api/v1/models и вставьте как есть. Если поле предлагает выпадающий список — обновите его, иначе UI подставит старое значение.401 invalid_api_key при нажатии Test
401 invalid_api_key при нажатии Test
В поле API Key попал ключ с кавычками, переносом строки или от другого сервиса. Отладочная проверка:
echo "$SPESHU_API_KEY" | wc -c — в значении должен быть префикс sk- и ничего лишнего.Включил Streaming — ответ пустой
Включил Streaming — ответ пустой
Парсер ждёт поле
event:, которого сервер не пишет. Разбор кадров — в гайде Потоковая передача; в curl добавьте -N, иначе вывод буферизуется.Ноды эмбеддингов падают при индексации
Ноды эмбеддингов падают при индексации
Эндпоинта
/embeddings у SpeShu.AI нет. Переведите эмбеддинги на отдельного провайдера или уберите ветку RAG — как описано выше.Ответ пришёл, но не видно, сколько списано
Ответ пришёл, но не видно, сколько списано
Flowise отдаёт поле
text и прячет тело ответа провайдера. Сумма доступна в usage.cost.total_cost (рубли) при прямом обращении к POST /api/v1/chat/completions или через эндпоинт баланса.Что дальше
Модели и цены
Каталог текстовых и медиа-моделей
Потоковая передача
SSE,
[DONE] и кадр со списаниемВызов функций
Полный цикл вызова инструмента
Ошибки
Коды и что с ними делать
