APIMaster.ai

Настройка стороннего ключа DeepSeek Harness — пользовательский провайдер APIMaster.ai

Как добавить OpenAI-совместимый API-ключ APIMaster.ai в DeepSeek Harness (dsh). Откройте Settings → Models → Add a custom provider, укажите Base URL, ключ и ID моделей, затем выберите модель в чате.

DeepSeek Harness (dsh) — локальный агентный фреймворк DeepSeek. Web UI по умолчанию: http://127.0.0.1:3080. Встроенная карточка DeepSeek принимает только официальный ключ. Чтобы вызывать GPT / Claude / DeepSeek и другие модели маркетплейса через APIMaster, добавьте custom provider.

Сначала получите API-ключ. Ключ хранится локально в $DSH_HOME/.credentials.yaml (по умолчанию ~/.dsh/). Не публикуйте его в чатах и скриншотах.


Предварительные требования

  1. Node.js 22.19+ или 24+.
  2. Запущен Web UI. Быстрый старт:
npx @deepseek-ai/dsh web

Откройте адрес из терминала (обычно http://127.0.0.1:3080).
3. Ключ скопирован из консоли APIMaster.
4. model id с маркетплейса (например gpt-5.6-sol, claude-sonnet-4-6, deepseek-v4-pro).


Шаг 1 — Откройте Models

  1. Откройте Settings.
  2. Слева выберите Models.
  3. Карточка DeepSeek — официальный канал. Не нажимайте Edit на ней.

Settings → Models: встроенный DeepSeek

Кнопка Назначение
+ Add provider Каталог (Anthropic, OpenAI, …)
+ Add a custom provider APIMaster (эта кнопка)

Шаг 2 — Заполните форму

Поле Значение
Provider ID apimaster (строчные буквы; нельзя переименовать после сохранения)
Display name apimaster или APIMaster.ai
Base URL https://apimaster.ai/v1 (обязательно /v1)
API protocol openai-completions
API key Ваш ключ APIMaster

Добавьте хотя бы одну модель: слева — model id, справа — отображаемое имя (например gpt-5.6-sol). Либо Fetch available models. Нажмите Create provider.

Custom provider: Base URL apimaster.ai/v1

ID вне списка даёт UNKNOWN_MODEL локально. Без /v1 запросы не проходят.

  • Для моделей со зрением также проверьте конфигурацию входных изображений ниже. Только добавление модели в UI может не включить изображения.

Зрение / Мультимодальные модели с собственными провайдерами

Если модель, добавленная вручную, поддерживает изображения, возможно, потребуется указать эту возможность в .dsh/settings.yaml. В форме собственного провайдера сейчас нет поля для типов входных данных модели, поэтому настройки только в UI недостаточно, если в каталоге моделей отсутствует информация о поддержке изображений.

Откройте $DSH_HOME/settings.yaml (по умолчанию ~/.dsh/settings.yaml) и отредактируйте существующую запись провайдера и модели. Сохраните ID провайдера, учётные данные, Base URL и другие настройки, которые вы уже указали; добавьте приведённые ниже поля в эту запись, а не заменяйте файл.

Включение изображений для конкретной модели

Добавьте input: [text, image] модели, поддерживающей изображения:

llm-pi-ai:
  providers:
    my-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://your-api-endpoint/v1
      models:
        - id: legacy-chat
        - id: vision-model
          input: [text, image]

Указанные выше ID провайдера и модели — это заполнители. Для вашей настройки APIMaster используйте сохранённый ID провайдера (например, apimaster), https://apimaster.ai/v1 и фактические ID моделей. apiKeyEnv задаёт имя переменной окружения, содержащей ваш ключ; если вы сохранили ключ через UI, сохраните существующую конфигурацию учётных данных.

  • input: [text, image] объявляет поддержку ввода текста и изображений только для этой модели. В этом примере это относится к vision-model и не меняет legacy-chat.
  • Если input опущен или установлен в [], Harness использует информацию о возможностях из каталога моделей. Если в каталоге нет соответствующих сведений, применяется defaultInput провайдера / маршрута.
  • Явное объявление на уровне модели особенно полезно для моделей, добавленных вручную, если каталог не распознаёт их поддержку изображений.

Установка значения по умолчанию для моделей провайдера

Если все модели, добавленные вручную в рамках собственного провайдера, поддерживают изображения, компактнее задать defaultInput: [text, image] на уровне провайдера:

llm-pi-ai:
  providers:
    vision-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://your-api-endpoint/v1
      defaultInput: [text, image]
      models:
        - id: first-model
        - id: second-model
Поле Область действия Когда использовать
input Возможности одной модели по вводу Предпочтительно, когда изображения поддерживают лишь некоторые модели
defaultInput Возможности по умолчанию для моделей этого провайдера / маршрута Удобно, когда все добавленные вручную модели поддерживают изображения

Порядок разрешения: непустой input модели → информация о возможностях из каталога моделей → defaultInput провайдера / маршрута (по умолчанию [text]). defaultInput — резервное значение; оно не переопределяет явное объявление модели или известные возможности каталога. Если каталог описывает модель как текстовую, задайте для неё input: [text, image] явно.

Эти настройки декларируют возможности; они не добавляют поддержку зрения текстовой модели. И модель, и API собственного провайдера должны поддерживать отправляемый формат изображений.

Сохраните файл и отправьте новый запрос с изображением. Harness перечитывает настройки при следующем запросе, поэтому обычно перезапуск не требуется. Если изменение не вступило в силу, перезагрузите UI или перезапустите DeepSeek Harness и снова выберите настроенную модель.


Шаг 3 — Проверьте список

Должны быть DeepSeek и apimaster с серым бейджем Custom.

Список: DeepSeek + apimaster Custom


Шаг 4 — Выберите модель в чате

В селекторе выберите модель в группе apimaster, а не в группе DeepSeek.

Селектор: gpt-5.6-sol в группе apimaster


Шаг 5 — Тестовое сообщение

Отправьте hi. Обычный ответ с показателями в нижнем колонтитуле (LLM / TTFT / tok) означает, что ключ и Base URL работают для текстовых запросов. Чтобы проверить зрение, после настройки входных изображений отправьте также изображение.

Тестовый чат


Устранение неполадок

Проблема Решение
Нет формы Settings → Models → + Add a custom provider
401 / MISSING_CREDENTIAL Снова вставьте полный ключ в Edit
Нет соединения https://apimaster.ai/v1
UNKNOWN_MODEL Добавьте id в список Models
Идёт официальный DeepSeek Выберите строку в группе apimaster
Неверный Provider ID Создайте новый и Delete старый
Изображения отклонены Проверьте поддержку зрения у модели и input / defaultInput в ~/.dsh/settings.yaml; см. чек-лист диагностики изображений ниже

Изображения не работают с моделью, добавленной вручную

Если текстовые запросы работают, а запросы с изображениями завершаются ошибкой, проверьте:

  1. Поддержка модели: выбранная модель действительно поддерживает зрение / ввод изображений.
  2. Конфигурация модели: её запись в .dsh/settings.yaml объявляет input: [text, image], если каталог не определяет эту возможность.
  3. Провайдер по умолчанию: альтернативно, у провайдера указан defaultInput: [text, image], который применяется как резервный. Если объявление модели или запись каталога говорит «только текст», используйте input на уровне модели, чтобы явно включить изображения для поддерживаемой модели.
  4. Конфигурация загружена: сохраните файл настроек, используемый запущенным экземпляром, и повторите попытку. Если изменение не отразилось, перезагрузите UI или перезапустите DeepSeek Harness.
  5. Совместимость API: протокол и конечная точка API собственного провайдера принимают формат изображений, отправляемый Harness. Успешный текстовый запрос сам по себе не подтверждает совместимость с изображениями.

Оба примера YAML см. в разделе Зрение / Мультимодальные модели с собственными провайдерами.


Чеклист

  • Запущен npx @deepseek-ai/dsh web
  • Использован + Add a custom provider
  • API protocol = openai-completions
  • Base URL = https://apimaster.ai/v1
  • Модель в группе apimaster отвечает
  • Для моделей со зрением входные изображения объявлены или определены из каталога, и запрос с изображением выполняется успешно.

Связанные материалы