Два значения определяют всю настройку:
base URL=https://speshu.ai/api/v1— с суффиксом/v1API key= значение из раздела API-ключей на speshu.ai/profile
OpenAI-API-compatible, и вся настройка сводится к этим двум полям.Установка
Для self-hosted: Docker Compose с образом Dify и его зависимостями (PostgreSQL, Redis, Weaviate для базы знаний, sandbox-сервисы). Запуск — по инструкции Dify для вашей платформы; SpeShu.AI ставить не нужно, это внешний API.Настройка провайдера
Путь в интерфейсе одинаков для Dify Cloud и для self-hosted.1
Установите провайдер OpenAI-API-compatible
Откройте Settings → Model Provider → Install provider и найдите
OpenAI-API-compatible (поставщик — LangGenius). Установите и вернитесь к списку провайдеров.2
Возьмите идентификатор модели из каталога
Идентификаторы текстовых моделей зашивать в код нельзя: состав каталога меняется, и зашитый в конфиг идентификатор молча устаревает, а запрос падает с
404 model_not_found. Возьмите актуальный и сохраните в переменную:cURL
.data[0] — первый элемент, чтобы шаг был запускаемым. Выбирайте модель по context_length, cost_completion и наличию зрения. Формат ответа — в разделе Каталог моделей.3
Заполните форму провайдера
В карточке
OpenAI-API-compatible нажмите Edit и заполните три поля:Нажмите Save. Модель появится в выпадающих списках LLM-ноды и сразу станет доступна для тестового вызова из карточки.
Секреты провайдера хранятся в базе Dify и правятся только через интерфейс — в
.env вашего развёртывания их нет. Перед коммитом не переносите значения форм в репозиторий. Model Name — единственное поле, которое при смене каталога нужно обновить вручную: при обновлении подставьте новое значение $SPESHU_MODEL.Первый рабочий пример
Проверьте связку не в интерфейсе, а через API самого Dify: так вы убедитесь, что модель, ключ иbase URL сошлись на стороне платформы.
cURL
Python
DIFY_API_BASE и DIFY_APP_KEY — ваши собственные переменные окружения для Dify, а не настройки SpeShu.AI. Здесь два разных пространства имён: база Dify заканчивается на /v1 и обслуживает приложение, база SpeShu.AI — https://speshu.ai/api/v1 и обслуживает модель.Workflow, поток, инструменты
Медиагенерация в workflow
Модели изображений, видео, аудио и музыки живут в отдельном API: запрос создаёт задачу, оплата — сразу при создании, результат приходит по опросу. В Dify это два узла: HTTP Request на создание и HTTP Request на опрос, между ними — цикл или пауза.GET https://speshu.ai/api/v1/async/media/tasks/{task_id}, поле статуса — data.state, ссылка на результат — в data.resultJson. Идентификаторы медиа-моделей стабильны, но каталог всё равно стоит сверять через GET /api/v1/media/models.
Что дальше
Начало работы
Разбор первых запросов к API
Потоковая передача
Разбор SSE и кадра со списанием
Вызов функций
Полный цикл вызова инструмента
Создание медиа-задачи
Входные параметры и опрос статуса
Типичные проблемы
Модель не появилась в списке либо 404 model_not_found
Модель не появилась в списке либо 404 model_not_found
Проверьте
Model Name в карточке провайдера: значение должно совпадать с элементом id из GET /api/v1/models, без префикса и без кавычек. Затем убедитесь, что адрес — ровно https://speshu.ai/api/v1. Если каталог обновился, возьмите новый идентификатор и впишите его заново.401 invalid_api_key при тестовом вызове из карточки провайдера
401 invalid_api_key при тестовом вызове из карточки провайдера
В поле
API Key попал ключ от другого сервиса либо значение обрезалось при копировании. Проверьте, что там полная строка с префиксом sk- и без переноса строки, и что ключ не отозван в профиле. Заодно проверьте ключ напрямую: curl -s https://speshu.ai/api/v1/balance -H "Authorization: Bearer $SPESHU_API_KEY".404 на стриминге, хотя обычный запрос проходит
404 на стриминге, хотя обычный запрос проходит
Проверьте адрес ещё раз. С хвостовым слэшем или с двойным
/v1 Dify соберёт неверный путь и получит 404 именно на потоковом маршруте — блокирующий вызов при этом может вести себя иначе из-за кэша модели в интерфейсе.База знаний не создаётся: нет модели эмбеддингов
База знаний не создаётся: нет модели эмбеддингов
Это ожидаемо: сервис не отдаёт эмбеддинги. Подключите сторонний эмбеддинг-провайдер в Dify и выберите его в настройках датасета либо уберите узлы Knowledge Retrieval из сценария.
402 insufficient_quota на первом же запросе
402 insufficient_quota на первом же запросе
На балансе нет положительной суммы. Пополнение — в веб-приложении на speshu.ai/profile. Баланс проверяют до обращения к модели. За отказ деньги не списываются.
