Интеграция Pi Agent с DeepSeek

DeepSeek предоставляет API, совместимый с OpenAI, поэтому вы можете повторно использовать существующий слой адаптера OpenAI в Pi, не разрабатывая отдельный адаптер для DeepSeek.

Основная работа по интеграции — это всего две вещи: объявить провайдера и параметры модели в models.json и передать API-ключ через переменные окружения.

Общая архитектура показана на следующей схеме:

Pi 接入 DeepSeek 架构图

Так называемый «OpenAI-совместимый API» означает, что протокол HTTP-интерфейса провайдера соответствует OpenAI. Пока протокол совместим, любой инструмент, поддерживающий OpenAI, может вызывать его напрямую; DeepSeek относится к этой категории.


Установите Pi

Pi зависит от среды выполнения Node.js. Перед установкой убедитесь, что Node.js готов.

Установите Node.js

Скачайте установщик для вашей системы с официального сайта Node.js и установите его с параметрами по умолчанию.

Установите Pi CLI

Установите глобально через npm в терминале:

npm install -g --ignore-scripts @earendil-works/pi-coding-agent

Пользователи Linux и macOS также могут использовать официальный скрипт установки, чтобы установить одной командой:

curl -fsSL https://pi.dev/install.sh | sh

Проверка установки

Выполните следующую команду. Если номер версии выводится нормально, установка прошла успешно:

pi --version

Вывод, похожий на:

0.83.0

Настройка провайдера DeepSeek

Pi определяет пользовательских провайдеров моделей через models.json. В этом разделе DeepSeek интегрируется как OpenAI-совместимый API.

Путь к файлу конфигурации

В разных операционных системах пути конфигурации различаются. Используйте тот, который соответствует вашей системе:

Операционная системаПуть к файлу конфигурации
Linux / macOS~/.pi/agent/models.json
Windows%USERPROFILE%\.pi\agent\models.json

Запишите models.json

Запишите следующее содержимое в файл конфигурации:

{
  "providers": {
    "deepseek": {
      "baseUrl": "https://api.deepseek.com",
      "api": "openai-completions",
      "apiKey": "$DEEPSEEK_API_KEY",
      "models": [
        {
          "id": "deepseek-v4-pro",
          "name": "DeepSeek V4 Pro",
          "contextWindow": 1000000,
          "maxTokens": 384000,
          "input": ["text"],
          "reasoning": true,
          "cost": {
            "input": 1.74,
            "output": 3.48,
            "cacheRead": 0.145,
            "cacheWrite": 0
          },
          "compat": {
            "requiresReasoningContentOnAssistantMessages": true,
            "thinkingFormat": "deepseek",
            "reasoningEffortMap": {
              "minimal": "high",
              "low": "high",
              "medium": "high",
              "high": "high",
              "xhigh": "max"
            }
          }
        },
        {
          "id": "deepseek-v4-flash",
          "name": "DeepSeek V4 Flash",
          "contextWindow": 1000000,
          "maxTokens": 384000,
          "input": ["text"],
          "reasoning": true,
          "cost": {
            "input": 0.14,
            "output": 0.28,
            "cacheRead": 0.028,
            "cacheWrite": 0
          },
          "compat": {
            "requiresReasoningContentOnAssistantMessages": true,
            "thinkingFormat": "deepseek",
            "reasoningEffortMap": {
              "minimal": "high",
              "low": "high",
              "medium": "high",
              "high": "high",
              "xhigh": "max"
            }
          }
        }
      ]
    }
  }
}

Пояснение элементов конфигурации

Ниже по порядку поясняются основные поля, используемые в models.json:

ПолеTypeОбязательно?ОписаниеЗначение по умолчанию
baseUrlstringОбязательныйСовместимая с OpenAI конечная точка API для DeepSeekhttps://api.deepseek.com
apistringОбязательныйПротокол интеграции; объявляет об использовании протокола, совместимого с OpenAI Completionsopenai-completions
apiKeystringОбязательныйСчитывает ключ из переменной окружения с тем же именем; не нужно записывать ключ в открытом виде в файле конфигурации$DEEPSEEK_API_KEY
contextWindowчислоОбязательныйРазмер контекстного окна (tokens)1000000
maxTokensчислоОбязательныйМаксимальная длина вывода на запрос (tokens)384000
рассуждениелогическое значениеOptionalОбъявляет, что модель поддерживает возможность цепочки рассуждений (reasoning)истина
стоимостьобъектOptionalЗаписывает удельные цены для входных/выходных данных/попаданий в кэш, используются интерфейсом Pi для оценки затрат—
requiresReasoning
ContentOnAssistantMessages
логическое значениеРекомендуетсяВ многоходовых диалогах сообщения ассистента должны сохранять поле reasoning_content; иначе могут возникнуть проблемы совместимостиистина
thinkingFormatstringРекомендуетсяРазбирает и отображает процесс рассуждения в соответствии со специфическим форматом содержимого мышления DeepSeekdeepseek
reasoningEffortMapобъектРекомендуетсяСопоставляет уровни усилий рассуждения Pi с уровнями, фактически поддерживаемыми DeepSeek—

reasoningEffortMap сопоставляет пять уровней рассуждения Pi (minimal / low / medium / high / xhigh) с уровнями, поддерживаемыми DeepSeek. За исключением xhigh, отображаемого в max, все остальные сводятся к high.

Выбор модели

В конфигурации объявлены две модели DeepSeek. Основные различия следующие:

МодельКонтекстное окноМаксимальный выводЦена за единицу вводаЦена за единицу выводаЦена за единицу при попадании в кэшПрименимые сценарии
deepseek-v4-pro1,000,000384,0001.743.480.145Более сильные способности к рассуждению, подходит для сложных задач
deepseek-v4-flash1,000,000384,0000.140.280.028Более быстрый отклик, более низкая стоимость

Цены за единицу указаны в долларах США за миллион токенов.

Получение и установка API-ключа

Сначала получите API-ключ на открытой платформе DeepSeek:https://platform.deepseek.com/api_keys。

Для Linux / macOS экспортируйте переменную окружения в терминале:

export DEEPSEEK_API_KEY="你的 DeepSeek API Key"

Для Windows (PowerShell) задайте её следующим образом:

$env:DEEPSEEK_API_KEY="你的 DeepSeek API Key"

Рекомендуется прописать команду export в конфигурацию оболочки (например, ~/.bashrc, ~/.zshrc или профиль PowerShell), чтобы не задавать её заново при каждом открытии нового терминала.

Пожалуйста, замените "your DeepSeek API Key" в примере на ваш настоящий ключ. API-ключ — это конфиденциальная информация; храните его в безопасности и никогда не коммитьте в репозиторий.


Запуск и тестирование

После настройки вы можете запустить Pi и переключиться на модель DeepSeek.

Запуск Pi

Перейдите в каталог проекта:

cd ~/example-test/

Напрямую выполните команду pi:

pi

Переключение на модель DeepSeek

После входа в интерактивный интерфейс переключитесь, выполнив следующие шаги:

  1. Введите/modelОткройте селектор модели.

  2. Выберите провайдера deepseek, затем выберите DeepSeek-V4-Pro или DeepSeek-V4-Flash.

  3. Затем запросите текущую модель.

После переключения вы можете сразу начать писать код в этом минималистичном терминальном фреймворке.

Предлагаемые шаги тестирования

Проверьте, завершена ли интеграция и пригодна ли она для использования, пройдя по приведённому ниже контрольному списку:

Пункт тестированияСпособ выполненияОжидаемый результат
Аутентификация и подключениеОтправьте предложение, например: «Здравствуйте, пожалуйста, расскажите о примерной обучающей платформе»Получите обычный ответ без ошибок аутентификации 401 / 403, подтверждающий, что apiKey и baseUrl настроены правильно
Способность к рассуждениюЗадайте вопрос, требующий многошагового рассуждения, например попросите сначала проанализировать, а затем предложить решениеВыведите видимый процесс мышления, указывающий на то, что thinkingFormat и reasoning активны
Многоходовые вызовы инструментовЗаставьте Pi непрерывно вызывать инструменты для чтения файлов, выполнения команд, изменения кода и проверки результатовМногоходовой диалог остаётся стабильным без ошибок, вызванных отсутствием reasoning_content
Переключение Reasoning EffortВ /model переключитесь с medium на xhighПоведение соответствует сопоставлению reasoningEffortMap; xhigh соответствует значению max DeepSeek
Расчёт стоимостиПосле выполнения нескольких реальных задач проверьте статистику стоимостиСтатистика интерфейса совпадает с ценами за единицу, заданными в поле cost

Среди них "Многоходовые вызовы инструментов" — ключевой сценарий для проверки того, правильно ли настроена конфигурация requiresReasoningContentOnAssistantMessages.


Общие советы по устранению неполадок

Если при интеграции возникнут проблемы, воспользуйтесь следующим контрольным списком, чтобы быстро их локализовать.

DeepSeek не отображается в селекторе моделей

Проверьте, правильный ли путь к models.json. Пути для Windows и Linux / macOS различаются.

Также убедитесь, что в формате JSON нет синтаксических ошибок, таких как висячие запятые или незакрытые кавычки.

Ошибка аутентификации

Убедитесь, что переменная окружения DEEPSEEK_API_KEY задана правильно.

Примечание: сеанс терминала, в котором вы запускаете команду pi, должен быть тем же сеансом, в котором вы задали переменную окружения.

Многоходовые вызовы инструментов сообщают об ошибках

Сначала проверьте, полностью ли настроены requiresReasoningContentOnAssistantMessages и thinkingFormat, как описано выше.

Нужны дополнительные возможности настройки

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

Другие расширения