Skip to content

Плагин DeepSeek Harness ​

Плагин DeepSeek Harness (dsh) подключается к работающему развёртыванию aihelpme.ru через REST API и поддерживает извлечение исходного текста, чтение полного документа и генерацию ответов со ссылками. Исходный код плагина находится в packages/dsh-weknora.

Установка и подключение ​

sh
dsh plugin --profile web add @wxg-prc-cpg/dsh-weknora

export WEKNORA_BASE_URL=https://weknora.example.com
export WEKNORA_API_KEY='<api-key>'
export WEKNORA_KNOWLEDGE_BASE_IDS=kb-123,kb-456
export WEKNORA_RESOURCE_URLS=public
dsh web

Также можно из корня репозитория выполнить dsh plugin --profile web add ./packages/dsh-weknora. Сам плагин требует Node ≥20.11; проверенное в репозитории окружение dsh требует Node с zstd (≥22.15 или ≥24) и pnpm ≥10. Проверенные версии — dsh 0.1.0-rc.8 / aihelpme.ru 0.8.0; совместимость других версий нужно проверять по их интерфейсу плагинов.

Адрес сервиса может содержать /api/v1; если его нет, он добавляется автоматически. API Key отправляется через X-API-Key и требует возможности retrieve; для вызова ask также нужна chat. При использовании платформенного Key нужно задать tenantId; запрос отправит его как X-Tenant-ID.

Четыре инструмента ​

ИнструментНазначение
weknora_list_knowledge_basesСписок видимых баз знаний с ID
weknora_searchГибридный поиск фрагментов с одновременным сопоставлением заголовков документов; возвращает ID знания, номер блока и оценку
weknora_read_documentЧтение упорядоченного текста по документу: на первом экране заголовок/аннотация, длинный текст можно листать
weknora_askСоздание или продолжение сессии в aihelpme.ru, возвращает ответ, ссылки и процесс работы серверных инструментов

search возвращает доказательства для поиска, по которым dsh генерирует ответ; ask вызывает модель на сервере aihelpme.ru и создаёт сессию и сообщения, подходит для обобщения нескольких материалов. Оба не изменяют содержимое базы знаний.

Когда область баз знаний не указана, плагин определяет все базы знаний, видимые для этих учётных данных, кэширует их в процессе и использует совместно для search/ask. После настройки agentId запрос ask идёт по процессу Agent, а область знаний определяется этим Agent на сервере.

Конфигурация Profile ​

Задаётся в $DSH_HOME/profiles/<name>/cordis.patch.yml:

yaml
- id: weknora
  config:
    baseUrl: https://weknora.example.com
    apiKey: !!js process.env.WEKNORA_API_KEY
    knowledgeBaseIds: [kb-product-docs]
    agentId: ''
    maxResults: 8
    maxChunkChars: 1200
    requestTimeoutMs: 30000
    chatTimeoutMs: 300000
    resourceUrls: public
    toolPrefix: weknora
    tools:
      listKnowledgeBases: true
      search: true
      readDocument: true
      ask: true

Обновление конфигурации полностью заменяет config этой строки, поэтому следует включать все поля, которые нужно сохранить. tools.* по умолчанию включены все. При подключении нескольких развёртываний задайте разные toolPrefix; имена должны начинаться со строчной буквы и содержать только строчные буквы, цифры и подчёркивания.

Ссылки на изображения и диагностика ​

resourceUrls по умолчанию равно public: запрос просит сервер преобразовать дескрипторы ресурсов в загружаемые ссылки. Если API Key, ограниченный базой знаний, получает 403, плагин автоматически переключается на handle и сохраняет этот режим в последующих вызовах. Дескрипторы resource:// нельзя загрузить напрямую в браузере; требования к внешним ссылкам при развёртывании см. в Доступ к файлам.

СимптомПроверка
Ошибка конфигурации на этапе загрузкиИсправьте baseUrl, диапазоны параметров, toolPrefix по ошибкам для каждого поля
Ошибка 401/403 при поискеДействителен ли Key, есть ли возможность retrieve и авторизация для целевого пространства/базы знаний
ask отклонёнЕсть ли у Key также chat, предоставляет ли платформенный Key tenantId
Нет прямых ссылок на изображенияЭто Key, ограниченный базой знаний, или в развёртывании не настроены доступные внешние ссылки
Тайм-аут длинного вопросаНастройте chatTimeoutMs и проверьте вызовы модели aihelpme.ru

Справочная реализация ​

packages/dsh-weknora/src/, test/fixtures/api-contract.json, contract/contract_test.go.

Версия v0.8.3 · MIT License