> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Использование Pi с CometAPI

> Используйте это руководство, чтобы настроить Pi с CometAPI, указав base URL, API key, а также параметры model или provider.

[Pi](https://github.com/earendil-works/pi) — это проект Pi Agent Harness. Его пакет `@earendil-works/pi-coding-agent` предоставляет интерактивный CLI coding agent с рабочими процессами file, shell, edit, write, session, print, JSON, RPC и SDK. Pi может загружать пользовательские provider из `~/.pi/agent/models.json`, поэтому вы можете добавить CometAPI как записи OpenAI-compatible provider без изменения исходного кода Pi.

Официальные материалы:

* [Репозиторий Pi](https://github.com/earendil-works/pi)
* [Быстрый старт Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/quickstart.md)
* [Провайдеры Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/providers.md)
* [Пользовательские модели Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/models.md)
* [Использование CLI Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/usage.md)

<Note>
  Доступность моделей со временем меняется. Замените `your-model-id` на доступный model ID со [страницы моделей CometAPI](/ru/overview/models).
</Note>

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

* Node.js `>=22.19.0`
* npm
* Аккаунт CometAPI с активным API key из [dashboard](https://www.cometapi.com/console/token)
* Установленный Pi из официального npm-пакета

## Понимание разрешений во время выполнения

Pi работает с разрешениями пользователя и процесса, которые его запускают. Запускайте Pi в директории проекта, с которой он должен работать, сохраняйте возможность отката, например через git, и используйте container или sandbox, если вам нужны более строгие границы для файловой системы, процессов, сети или учетных данных.

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

<Steps>
  <Step title="Установите Pi">
    Установите Pi глобально с помощью npm:

    ```bash theme={null}
    npm install -g --ignore-scripts @earendil-works/pi-coding-agent
    ```

    Убедитесь, что CLI доступен:

    ```bash theme={null}
    pi --version
    ```
  </Step>

  <Step title="Укажите ваш CometAPI API key">
    Сохраните ваш CometAPI API key в переменной окружения `COMETAPI_KEY`:

    ```bash theme={null}
    read -rsp "CometAPI API key: " COMETAPI_KEY
    printf '\n'
    export COMETAPI_KEY
    ```

    Добавьте команду export в профиль вашей оболочки, если хотите, чтобы она сохранялась между сессиями терминала. Не коммитьте API key в систему контроля версий.
  </Step>

  <Step title="Добавьте провайдеры CometAPI в models.json">
    Создайте `~/.pi/agent/models.json`, если он не существует. Если файл уже содержит провайдеры, объедините записи `cometapi-responses` и `cometapi-chat` с существующим объектом `providers`:

    ```json theme={null}
    {
      "providers": {
        "cometapi-responses": {
          "name": "CometAPI Responses",
          "baseUrl": "https://api.cometapi.com/v1",
          "api": "openai-responses",
          "apiKey": "$COMETAPI_KEY",
          "models": [
            {
              "id": "your-model-id",
              "name": "CometAPI Responses model"
            }
          ]
        },
        "cometapi-chat": {
          "name": "CometAPI Chat Completions",
          "baseUrl": "https://api.cometapi.com/v1",
          "api": "openai-completions",
          "apiKey": "$COMETAPI_KEY",
          "models": [
            {
              "id": "your-model-id",
              "name": "CometAPI Chat model"
            }
          ]
        }
      }
    }
    ```

    Используйте `cometapi-responses` для моделей или workflows, которым требуется OpenAI Responses API. Используйте `cometapi-chat` для моделей, совместимых с OpenAI Chat Completions. Pi разрешает `$COMETAPI_KEY` во время выполнения запроса. Храните API key в вашем окружении или в собственном процессе управления секретами.
  </Step>

  <Step title="Проверьте оба провайдера">
    Выведите список моделей, которые Pi видит для провайдера Responses:

    ```bash theme={null}
    pi --list-models cometapi-responses
    ```

    Выполните короткий одноразовый Prompt с провайдером Responses:

    ```bash theme={null}
    pi --provider cometapi-responses --model your-model-id -p "Reply with one short sentence confirming the Responses connection."
    ```

    Выведите список моделей, которые Pi видит для провайдера Chat Completions:

    ```bash theme={null}
    pi --list-models cometapi-chat
    ```

    Выполните короткий одноразовый Prompt с провайдером Chat Completions:

    ```bash theme={null}
    pi --provider cometapi-chat --model your-model-id -p "Reply with one short sentence confirming the Chat Completions connection."
    ```

    Для интерактивного использования запустите Pi в вашем проекте и выберите провайдера CometAPI и модель с помощью `/model`. Если вы редактируете `models.json` во время интерактивной сессии, снова откройте `/model`, чтобы Pi перезагрузил пользовательские записи моделей.
  </Step>
</Steps>

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

<AccordionGroup>
  <Accordion title="Pi не показывает модель CometAPI">
    Убедитесь, что `~/.pi/agent/models.json` содержит корректный JSON и что каждая запись provider находится внутри объекта верхнего уровня `providers`. После сохранения файла выполните `pi --list-models cometapi-responses` или `pi --list-models cometapi-chat`.
  </Accordion>

  <Accordion title="Pi сообщает, что API key недоступен">
    Убедитесь, что `COMETAPI_KEY` задан в той же сессии shell, из которой запускается Pi. Если вы используете профиль shell, откройте новый терминал или загрузите профиль перед запуском Pi.
  </Accordion>

  <Accordion title="Запросы завершаются ошибкой из-за base URL">
    Используйте `https://api.cometapi.com/v1` в качестве `baseUrl` в `models.json`. Не указывайте для Pi URL панели управления и не опускайте суффикс `/v1` для OpenAI-совместимых маршрутов.
  </Accordion>

  <Accordion title="Pi завершается с ошибкой до отправки запроса к модели">
    Проверьте версию Node.js с помощью `node --version`. Пакет Pi требует Node.js `>=22.19.0`.
  </Accordion>

  <Accordion title="Модель работает на одном маршруте, но не на другом">
    Используйте запись provider, у которой поле `api` соответствует маршруту, поддерживаемому вашей моделью. `openai-responses` использует Responses API, а `openai-completions` использует Chat Completions.
  </Accordion>

  <Accordion title="У Pi больше доступа, чем ожидалось">
    Pi работает с разрешениями пользователя и процесса, который его запустил. Запускайте Pi внутри контейнера или песочницы, когда нужны более строгие границы для файлов, процессов, сетевого доступа или учетных данных.
  </Accordion>
</AccordionGroup>

## Связанные ресурсы

* [Быстрый старт CometAPI](/ru/overview/quick-start)
* [Страница Models в CometAPI](/ru/overview/models)
* [Пользовательские модели Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/models.md)
* [Использование Pi CLI](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/usage.md)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/pi#howto",
        "name": "Использование Pi с CometAPI",
        "description": "Используйте это руководство, чтобы настроить Pi с CometAPI, указав базовый URL, API-ключ, а также параметры model или provider.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-1",
            "position": 1,
            "name": "Установите Pi",
            "text": "Выполните шаг «Установите Pi» в руководстве «Использование Pi с CometAPI»."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-2",
            "position": 2,
            "name": "Укажите ваш API-ключ CometAPI",
            "text": "Сохраните ваш API-ключ CometAPI в переменной окружения или в поле настроек, используемом этой интеграцией."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-3",
            "position": 3,
            "name": "Добавьте providers CometAPI в models.json",
            "text": "Выполните шаг «Добавьте providers CometAPI в models.json» в руководстве «Использование Pi с CometAPI»."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-4",
            "position": 4,
            "name": "Проверьте обоих providers",
            "text": "Выполните шаг «Проверьте обоих providers» в руководстве «Использование Pi с CometAPI»."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Документация CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Интеграции",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Использование Pi с CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/pi"
          }
        ]
      }
    ]
    }
    `}
</script>
