DeepSeek Harness Web UI руководство | OdiRouter

Редакция OdiRouter

DeepSeek Harness Web UI руководство начинается с одного важного отличия: DeepSeek Harness — это сторонний агент с открытым исходным кодом, а не продукт OdiRouter или встроенная интеграция. В официальном файле README указано, что это предварительная версия для разработчиков, и предупреждается о возможности внесения изменений, нарушающих совместимость. В этом руководстве текущая страница веб-интерфейса объединена с README и соседними руководствами по провайдерам и плагинам, чтобы можно было проверить настройку от начала до конца.

Перед установкой

В настоящее время пакет npm заявляет о поддержке Node.js ^22.19.0 || >=24.0.0; в руководстве по разработке в качестве поддерживаемых веток указаны Node.js+ и 22.19+, а также 24+. Для исходной копии также требуется Git 2.26 или более новая версия, а также Corepack с поддержкой pnpm. Корневой файл package.json фиксирует версию pnpm@11.7.0. Включите Corepack, если pnpm --version не определяется через него:

corepack enable

Для отправки настоящего запроса к модели через веб-интерфейс нужен DeepSeek API key. Не сохраняйте его в истории оболочки и репозиториях. Необязательная настройка DEEPSEEK_BASE_URL изменяет базовый URL API; в официальном руководстве по разработке указано, что если её не задать, по умолчанию используется общедоступный API.

Установка и запуск веб-интерфейса

В поддерживаемом README описаны два варианта. Вариант с npm — самый быстрый способ протестировать предварительную версию:

npx @deepseek-ai/dsh web

Команда выводит URL веб-интерфейса и по умолчанию предоставляет http://127.0.0.1:3080. Откройте его на компьютере, на котором планируете использовать локальный сервер.

Если вы планируете изучать или расширять исходный код, используйте вариант с исходным кодом:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

Руководство по разработке рекомендует pnpm run typecheck после создания новой копии репозитория. Это полезный этап проверки перед расследованием проблемы в веб-интерфейсе:

pnpm run typecheck

Если сборка или проверка типов завершается ошибкой, сохраните первую ошибку, а также версии Node.js, pnpm и Git. Не пытайтесь «исправить» предварительную копию, копируя файлы из другой ветки.

DeepSeek Harness Web UI руководство: модель, рабочая область и первый запрос

В официальном руководстве по веб-интерфейсу предполагается, что сервер уже запущен. Выполните следующие действия по порядку:

  1. Открыть Settings → Models.

  2. На карточке DeepSeek введите DeepSeek API key и сохраните его.

  3. Нажмите кнопку Выбрать рабочую область, добавьте каталог проекта, из которого вы начали работу над dsh, и выберите его.

  4. Начните сеанс и отправьте небольшой запрос, результаты которого можно проверить, например:

    Кратко опишите содержимое этого репозитория и определите его основные пакеты.

Композитор остаётся недоступным до тех пор, пока не будет выбрано рабочее пространство. В руководстве провайдера указано, что изменения модели apply применяются к следующему запросу без перезапуска сервера. Поставщики Configured отображаются в средстве выбора модели; выбор одного из них также устанавливает значение по умолчанию для новых сессий. Сессия, которая уже отправила запрос, сохраняет модель, записанную в её журнале.

Добавление провайдера без догадок о работе интерфейса

Выберите Добавить провайдера для провайдера из установленного каталога. Каталог предоставляет его конечную точку, протокол и список моделей. Провайдерам с собственной системой аутентификации нужны собственные учётные данные, а не просто поле для API-ключа.

Выберите Добавить пользовательского провайдера для шлюза или самостоятельно размещённой конечной точки, отсутствующей в каталоге. В форме необходимо указать идентификатор провайдера в нижнем регистре, отображаемое имя, базовый URL, протокол API, учётные данные и как минимум одну модель. Идентификатор провайдера является постоянным для сохранённых сеансов и ссылок на учётные данные, поэтому, если вам нужен другой идентификатор, создайте нового провайдера, а не переименовывайте существующего.

Кнопка Получить доступные модели обращается к конечной точке OpenAI-compatible GET /models, используя базовый URL и учётные данные, указанные в форме в данный момент. Выбор результатов изменяет черновик; провайдер сохраняется только после нажатия кнопки сохранения. Если конечная точка не предоставляет функцию обнаружения моделей, введите идентификаторы моделей вручную.

Для модели с поддержкой изображений, введённой вручную, в официальном руководстве используется input: [text, image] в $DSH_HOME/settings.yaml. Это поле фиксирует заявление о возможностях конечной точки; оно не проверяет, действительно ли конечная точка принимает изображения. В руководстве также отмечается, что собственный маршрут DeepSeek для чат-завершений в этой configурации поддерживает только текст.

Configурировать и проверить локальный плагин

Для самого простого способа установки плагина требуется локальная копия исходного кода. В корневом каталоге создайте временный проект:

mkdir -p scratch-plugin/src

Создайте scratch-plugin/src/my-plugin.ts:

import type { Context } from '@deepseek-ai/cordis'

export const name = 'hello-plugin'

export function apply(ctx: Context) {
  console.log('[hello-plugin] plugin loaded!')
}

Затем создайте scratch-plugin/cordis.yml. В руководстве требуется указать абсолютный путь во вставляемой строке:

- insert:
    - id: hello
      name: '/absolute/path/to/deepseek-harness/scratch-plugin/src/my-plugin.ts'

Запустите веб-интерфейс с наложением:

pnpm dsh web --patch ./scratch-plugin/cordis.yml

Откройте http://127.0.0.1:3080 и найдите [hello-plugin] plugin loaded! в терминале. Это сообщение служит конкретной быстрой проверкой работоспособности. Если он отсутствует, проверьте абсолютный путь, отступы YAML и папку, из которой выполняется команда.

Для значений user-configurable экспортируйте схему с тем же именем Schemastery. Минимальная строка configурации выглядит так:

import type { Context } from '@deepseek-ai/cordis'
import Schema from '@deepseek-ai/schemastery'

export const name = 'validated-plugin'

export interface Config {
  timeoutMs: number
}

export const Config: Schema<Config> = Schema.object({
  timeoutMs: Schema.number().default(30000),
})

export function apply(ctx: Context, config: Config) {
  console.log(config.timeoutMs)
}

Схема заполняет значения по умолчанию и отклоняет недопустимое значение configuration во время загрузки плагина. Изменения Configурации автоматически заменяют плагин и удаляют регистрации, созданные через ctx. Произвольный внешний ресурс закрывается только тогда, когда плагин предоставляет средство освобождения ресурсов через ctx.effect().

Список проверок при устранении неполадок

Симптом

Проверка

MISSING_CREDENTIAL

Сохраните ключ провайдера через Settings → Models или укажите соответствующую переменную окружения.

UNKNOWN_MODEL

Выберите configурированную модель или добавьте идентификатор модели в пользовательский провайдер.

При обнаружении моделей возвращается 401

Повторно проверьте ключ и базовый URL.

Композитор заблокирован

Выберите рабочее пространство и модель.

Изображение отклонено до отправки

Добавляйте input: [text, image] только в пользовательскую модель, которая действительно поддерживает изображения; описанный выше маршрут DeepSeek по-прежнему поддерживает только текст.

Плагин не загружается

Повторно проверьте абсолютный путь к модулю, синтаксис cordis.yml, расположение --patch и вывод терминала при запуске.

Чего этот краткий старт не обещает

В репозитории указано, что это предварительная версия для разработчиков, а не стабильный выпуск. Текущий package.json сообщает о версии 0.1.0-rc.7, а в README содержится предупреждение об изменениях, нарушающих совместимость. В метаданных репозитория указана лицензия MIT, и репозиторий не архивирован; ни один из этих фактов не подразумевает поддержку в рабочей среде, определённую производительность, сертификацию безопасности или фиксированный каталог провайдеров и моделей. Перед повторным выполнением этих команд после обновления снова проверьте официальный README, руководства и метаданные пакетов.

DeepSeek Harness остаётся отдельным сторонним проектом. OdiRouter упоминается здесь как место назначения для отдельного решения по сервису, а не как владелец, партнёр или канал поддержки этого инструментария. Если вы отдельно оцениваете доступ к моделям или рабочий процесс с API, см. OdiRouter.

Источники

#DeepSeek Harness#DeepSeek Harness Web UI руководство#DeepSeek Harness plugin configuration#dsh веб#пользовательский провайдер DeepSeek Harness