> ## 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.

# Gunakan Pi dengan CometAPI

> Gunakan panduan ini untuk mengonfigurasi Pi dengan CometAPI dengan menetapkan base URL, API key, serta opsi model atau provider.

[Pi](https://github.com/earendil-works/pi) adalah proyek Pi Agent Harness. Paket `@earendil-works/pi-coding-agent` menyediakan CLI agen coding interaktif dengan alur kerja file, shell, edit, write, session, print, JSON, RPC, dan SDK. Pi dapat memuat provider kustom dari `~/.pi/agent/models.json`, sehingga Anda dapat menambahkan CometAPI sebagai entri provider yang kompatibel dengan OpenAI tanpa mengubah source code Pi.

Referensi resmi:

* [Repositori Pi](https://github.com/earendil-works/pi)
* [Quickstart Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/quickstart.md)
* [Provider Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/providers.md)
* [Model kustom Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/models.md)
* [Penggunaan CLI Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/usage.md)

<Note>
  Ketersediaan model berubah dari waktu ke waktu. Ganti `your-model-id` dengan model ID yang tersedia dari [halaman Model CometAPI](/id/overview/models).
</Note>

## Prasyarat

* Node.js `>=22.19.0`
* npm
* Akun CometAPI dengan API key aktif dari [dashboard](https://www.cometapi.com/console/token)
* Pi terpasang dari paket npm resmi

## Memahami izin runtime

Pi berjalan dengan izin dari pengguna dan proses yang menjalankannya. Jalankan Pi di direktori proyek tempat Anda ingin Pi bekerja, pertahankan jalur rollback seperti git, dan gunakan container atau sandbox jika Anda memerlukan batasan yang lebih kuat untuk filesystem, proses, jaringan, atau kredensial.

## Konfigurasikan provider

<Steps>
  <Step title="Instal Pi">
    Instal Pi secara global dengan npm:

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

    Konfirmasikan bahwa CLI tersedia:

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

  <Step title="Atur kunci API CometAPI Anda">
    Simpan kunci API CometAPI Anda di variabel lingkungan `COMETAPI_KEY`:

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

    Tambahkan perintah export ke profil shell Anda jika ingin tetap tersimpan di seluruh sesi terminal. Jangan commit kunci API ke version control.
  </Step>

  <Step title="Tambahkan provider CometAPI ke models.json">
    Buat `~/.pi/agent/models.json` jika belum ada. Jika file tersebut sudah berisi provider, gabungkan entri `cometapi-responses` dan `cometapi-chat` ke objek `providers` yang sudah ada:

    ```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"
            }
          ]
        }
      }
    }
    ```

    Gunakan `cometapi-responses` untuk model atau workflow yang memerlukan OpenAI Responses API. Gunakan `cometapi-chat` untuk model yang kompatibel dengan OpenAI Chat Completions. Pi me-resolve `$COMETAPI_KEY` saat waktu request. Simpan kunci API di lingkungan Anda atau di workflow secrets Anda sendiri.
  </Step>

  <Step title="Verifikasi kedua provider">
    Tampilkan model yang dapat dilihat Pi untuk provider Responses:

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

    Jalankan prompt one-shot singkat dengan provider Responses:

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

    Tampilkan model yang dapat dilihat Pi untuk provider Chat Completions:

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

    Jalankan prompt one-shot singkat dengan provider Chat Completions:

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

    Untuk penggunaan interaktif, mulai Pi di project Anda dan pilih provider serta model CometAPI dengan `/model`. Jika Anda mengedit `models.json` selama sesi interaktif, buka `/model` lagi agar Pi memuat ulang entri model kustom.
  </Step>
</Steps>

## Pemecahan masalah

<AccordionGroup>
  <Accordion title="Pi tidak menampilkan model CometAPI">
    Pastikan bahwa `~/.pi/agent/models.json` adalah JSON yang valid dan setiap entri provider berada di dalam objek tingkat atas `providers`. Jalankan `pi --list-models cometapi-responses` atau `pi --list-models cometapi-chat` setelah menyimpan file.
  </Accordion>

  <Accordion title="Pi melaporkan bahwa tidak ada API key yang tersedia">
    Pastikan bahwa `COMETAPI_KEY` diatur dalam sesi shell yang sama yang menjalankan Pi. Jika Anda menggunakan profil shell, buka terminal baru atau source profil tersebut sebelum menjalankan Pi.
  </Accordion>

  <Accordion title="Request gagal karena base URL">
    Gunakan `https://api.cometapi.com/v1` sebagai `baseUrl` di `models.json`. Jangan arahkan Pi ke URL dashboard atau hilangkan sufiks `/v1` untuk rute yang kompatibel dengan OpenAI.
  </Accordion>

  <Accordion title="Pi gagal sebelum mengirim request model">
    Periksa versi Node.js Anda dengan `node --version`. Paket Pi memerlukan Node.js `>=22.19.0`.
  </Accordion>

  <Accordion title="Model berfungsi di satu rute tetapi tidak di rute lainnya">
    Gunakan entri provider yang field `api`-nya sesuai dengan rute yang didukung model Anda. `openai-responses` menggunakan API Responses, sedangkan `openai-completions` menggunakan Chat Completions.
  </Accordion>

  <Accordion title="Pi memiliki akses lebih banyak dari yang diharapkan">
    Pi berjalan dengan izin dari pengguna dan proses yang meluncurkannya. Jalankan Pi di dalam container atau sandbox saat Anda memerlukan batasan yang lebih kuat untuk file, proses, akses jaringan, atau kredensial.
  </Accordion>
</AccordionGroup>

## Sumber daya terkait

* [CometAPI quick start](/id/overview/quick-start)
* [Halaman Models CometAPI](/id/overview/models)
* [Model kustom Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/models.md)
* [Penggunaan 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": "Gunakan Pi dengan CometAPI",
        "description": "Gunakan panduan ini untuk mengonfigurasi Pi dengan CometAPI dengan menetapkan base URL, API key, serta opsi model atau provider.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-1",
            "position": 1,
            "name": "Instal Pi",
            "text": "Selesaikan langkah Instal Pi dalam panduan Gunakan Pi dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-2",
            "position": 2,
            "name": "Tetapkan API key CometAPI Anda",
            "text": "Simpan API key CometAPI Anda di environment variable atau field pengaturan yang digunakan oleh integrasi."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-3",
            "position": 3,
            "name": "Tambahkan provider CometAPI ke models.json",
            "text": "Selesaikan langkah Tambahkan provider CometAPI ke models.json dalam panduan Gunakan Pi dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-4",
            "position": 4,
            "name": "Verifikasi kedua provider",
            "text": "Selesaikan langkah Verifikasi kedua provider dalam panduan Gunakan Pi dengan CometAPI."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Dokumentasi CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Integrasi",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Gunakan Pi dengan CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/pi"
          }
        ]
      }
    ]
    }
    `}
</script>
