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

# OpenCode'u CometAPI ile kullanın

> Dört CometAPI API biçimini OpenCode içinde özel sağlayıcılar olarak yapılandırmak için bu kılavuzu kullanın.

Bu kılavuzu kullanarak [OpenCode'u](https://opencode.ai/docs/) CometAPI ile kullanın.
Yapılandırma, ayrı özel sağlayıcılar aracılığıyla dört API biçimini sunar.

Bu yapılandırma OpenCode 1.18.16 ile test edilmiştir.

Resmî kaynaklar:

* [OpenCode kurulumu](https://opencode.ai/docs/#install)
* [OpenCode yapılandırması](https://opencode.ai/docs/config/)
* [OpenCode özel sağlayıcıları](https://opencode.ai/docs/providers/#custom-provider)
* [OpenCode model seçimi](https://opencode.ai/docs/models/)
* [OpenCode izinleri](https://opencode.ai/docs/permissions/)

<Note>
  Her bir `your-model-id` değerini,
  [CometAPI Models sayfasındaki bir model kimliğiyle değiştirin](/tr/overview/models). Çevredeki sağlayıcı girdisinin API
  biçimini kabul eden bir model seçin.
</Note>

## Ön koşullar

* Node.js ve npm ya da OpenCode kılavuzundaki başka bir yükleme yöntemi
* Etkin API anahtarına sahip bir CometAPI hesabı; anahtarınızı şuradan alın:
  [dashboard](https://www.cometapi.com/console/token)
* Bir veya daha fazla model kimliği için şu sayfaya bakın: [CometAPI Models sayfası](/tr/overview/models)

## API biçimlerini anlayın

Her sağlayıcı kimliği, bir SDK adaptörü ve bir API biçimi seçer.

| Sağlayıcı kimliği    | OpenCode adaptörü           | Temel URL                         | API biçimi             |
| -------------------- | --------------------------- | --------------------------------- | ---------------------- |
| `cometapi-chat`      | `@ai-sdk/openai-compatible` | `https://api.cometapi.com/v1`     | Chat Completions       |
| `cometapi-responses` | `@ai-sdk/openai`            | `https://api.cometapi.com/v1`     | Responses              |
| `cometapi-messages`  | `@ai-sdk/anthropic`         | `https://api.cometapi.com/v1`     | Anthropic Messages     |
| `cometapi-gemini`    | `@ai-sdk/google`            | `https://api.cometapi.com/v1beta` | Gemini generateContent |

Bu kılavuz, normal bir
OpenCode agent turu sırasında kullanılan Gemini Streaming işlemini doğrular. Google adaptörü,
`:streamGenerateContent?alt=sse` ifadesini model yoluna ekler.

`/chat/completions`, `/responses`, `/messages` ya da bir Gemini model yolunu
`baseURL` öğesine eklemeyin. Her adaptör, gerekli işlem yolunu ekler.

## Çalışma zamanı izinlerini anlayın

OpenCode, onu başlatan sürecin izinleriyle çalışır. Çalıştırmak için
OpenCode'u hedeflenen proje dizininde başlatın ve örneğin
git gibi bir geri alma yolu bulundurun. Daha güçlü dosya sistemi, süreç,
ağ veya API anahtarı sınırlarına ihtiyacınız olduğunda container ya da sandbox kullanın.

## OpenCode'u yapılandırma

<Steps>
  <Step title="OpenCode'u yükleme">
    OpenCode'u resmi npm paketiyle yükleyin:

    ```bash theme={null}
    npm install -g opencode-ai
    ```

    CLI'nin kullanılabilir olduğunu doğrulayın:

    ```bash theme={null}
    opencode --version
    ```

    Şuraya bakın: [OpenCode yükleme kılavuzu](https://opencode.ai/docs/#install)
    Homebrew, Windows, Docker ve diğer yükleme yöntemleri için.
  </Step>

  <Step title="CometAPI API anahtarınızı ayarlama">
    CometAPI API anahtarınızı `COMETAPI_KEY` ortam değişkeninde saklayın.

    <Tabs>
      <Tab title="macOS / Linux / WSL">
        API anahtarını terminalde görüntülemeden okuyun:

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

      <Tab title="Windows PowerShell">
        API anahtarını geçerli PowerShell oturumuna okuyun:

        ```powershell theme={null}
        $secureKey = Read-Host "CometAPI API key" -AsSecureString
        $env:COMETAPI_KEY = [System.Net.NetworkCredential]::new(
          "",
          $secureKey
        ).Password
        ```
      </Tab>
    </Tabs>

    OpenCode'u başlatan her kabuk oturumunda değişkeni ayarlayın. API anahtarlarını
    sürüm denetimine işlemeyin.
  </Step>

  <Step title="Yapılandırma konumu seçme">
    Desteklenen şu konumlardan birini kullanın:

    * Genel yapılandırma: `~/.config/opencode/opencode.json`
    * Proje yapılandırması: proje kök dizinindeki `opencode.json`

    OpenCode, yapılandırma dosyalarını birleştirir. Proje yapılandırması, genel yapılandırmadaki çakışan
    değerleri geçersiz kılar.

    Sağlayıcıların her projede kullanılmasını istediğinizde genel dosyayı kullanın. Bir
    deponun kendi model girişlerine ihtiyaç duyduğu durumlarda proje dosyasını kullanın.
  </Step>

  <Step title="CometAPI sağlayıcılarını ekleme">
    Seçilen yapılandırma dosyasını oluşturun. Dosya zaten bir
    `provider` nesne içeriyorsa bu dört girişi söz konusu nesneyle birleştirin:

    ```json theme={null}
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "cometapi-chat": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "CometAPI Chat Completions",
          "options": {
            "baseURL": "https://api.cometapi.com/v1",
            "apiKey": "{env:COMETAPI_KEY}"
          },
          "models": {
            "your-model-id": {
              "name": "CometAPI Chat model"
            }
          }
        },
        "cometapi-responses": {
          "npm": "@ai-sdk/openai",
          "name": "CometAPI Responses",
          "options": {
            "baseURL": "https://api.cometapi.com/v1",
            "apiKey": "{env:COMETAPI_KEY}"
          },
          "models": {
            "your-model-id": {
              "name": "CometAPI Responses model"
            }
          }
        },
        "cometapi-messages": {
          "npm": "@ai-sdk/anthropic",
          "name": "CometAPI Anthropic Messages",
          "options": {
            "baseURL": "https://api.cometapi.com/v1",
            "apiKey": "{env:COMETAPI_KEY}"
          },
          "models": {
            "your-model-id": {
              "name": "CometAPI Messages model"
            }
          }
        },
        "cometapi-gemini": {
          "npm": "@ai-sdk/google",
          "name": "CometAPI Gemini",
          "options": {
            "baseURL": "https://api.cometapi.com/v1beta",
            "apiKey": "{env:COMETAPI_KEY}"
          },
          "models": {
            "your-model-id": {
              "name": "CometAPI Gemini model"
            }
          }
        }
      }
    }
    ```

    Her `your-model-id` anahtarını ayrı ayrı değiştirin. Dört giriş farklı
    model kimlikleri kullanabilir.

    Yapılandırma, üst düzey bir `model` ayarlamaz. Bu sayede gerekli API biçimini ve modeli
    `/models` üzerinden seçebilirsiniz.

    <Warning>
      Bu yapılandırma için `/connect` kullanmayın. `apiKey` alanları
      `COMETAPI_KEY` ortamdan okunur. Ayarlanmamış bir değişken,
      saklanan `/connect` API anahtarı yerine boş bir değere çözümlenir.
    </Warning>
  </Step>

  <Step title="Her sağlayıcıyı seçme ve doğrulama">
    OpenCode'u erişmesini istediğiniz projede başlatın:

    ```bash theme={null}
    opencode
    ```

    `/models` komutunu çalıştırın, ardından bir `provider/model` girişi seçin. Bu kılavuzdaki dört doğrulama
    çalıştırmasında her model turu, seçilen girişin eşleşen API
    biçimini kullandı. Biçimler arası istek çoğaltması veya otomatik API biçimi anlaşması
    gözlemlenmedi.

    Chat Completions'ı komut satırından doğrulamak için şunu çalıştırın:

    ```bash theme={null}
    opencode run \
      --model cometapi-chat/your-model-id \
      "Reply exactly with: COMETAPI_CHAT_OK"
    ```

    Responses'ı komut satırından doğrulamak için şunu çalıştırın:

    ```bash theme={null}
    opencode run \
      --model cometapi-responses/your-model-id \
      "Reply exactly with: COMETAPI_RESPONSES_OK"
    ```

    Anthropic Messages'ı komut satırından doğrulamak için şunu çalıştırın:

    ```bash theme={null}
    opencode run \
      --model cometapi-messages/your-model-id \
      "Reply exactly with: COMETAPI_MESSAGES_OK"
    ```

    Gemini generateContent'i komut satırından doğrulamak için şunu çalıştırın:

    ```bash theme={null}
    opencode run \
      --model cometapi-gemini/your-model-id \
      "Reply exactly with: COMETAPI_GEMINI_OK"
    ```
  </Step>
</Steps>

## Sorun giderme

<AccordionGroup>
  <Accordion title="OpenCode bir CometAPI modelini göstermiyor">
    Yapılandırmanın geçerli JSON olduğunu doğrulayın. Her özel giriş
    üst düzey `provider` nesnesinin içinde, her model ID'si ise
    eşleşen `models` nesnesinin içinde olmalıdır. OpenCode'u yeniden başlatın, ardından `/models` öğesini tekrar açın.
  </Accordion>

  <Accordion title="OpenCode bir API anahtarı veya kimlik doğrulama hatası bildiriyor">
    `COMETAPI_KEY` değerinin OpenCode'u başlatan kabukta ayarlandığını doğrulayın.
    Ayarlanmamış bir `{env:COMETAPI_KEY}` başvurusu boş bir değer olur. Yeni bir
    kabuk profili değiştirdikten sonra yeni bir kabuk açın.
  </Accordion>

  <Accordion title="Bir model ID'si kullanılamıyor">
    Şuradaki [CometAPI Models sayfasını](/tr/overview/models) kontrol edin, ardından model
    ID'sini seçili sağlayıcı girişinde değiştirin. Modelin söz konusu
    sağlayıcının API biçimini kabul ettiğini doğrulayın.
  </Accordion>

  <Accordion title="İstekler yanlış bir yol kullanıyor">
    Chat Completions, Responses ve Messages için `baseURL` değerini `/v1` olarak tutun. Gemini için
    `/v1beta` kullanın. `baseURL` içine bir işlem yolu eklemeyin.
  </Accordion>

  <Accordion title="Bir sağlayıcı çalışıyor ancak başka bir sağlayıcı başarısız oluyor">
    Seçili sağlayıcının API biçimini kabul eden bir model ID'si kullanın. Bir
    model ID'sinin dört biçimin tümünü kabul ettiğini varsaymayın.
  </Accordion>

  <Accordion title="Proje yapılandırması genel bir sağlayıcıyı değiştiriyor">
    OpenCode, genel ve proje yapılandırmalarını birleştirir. Proje
    sağlayıcısının ID'sini yeniden adlandırın veya genel
    sağlayıcı girişinin değişmeden kalmasını istediğinizde çakışan değerlerini kaldırın.
  </Accordion>

  <Accordion title="OpenCode beklenenden daha fazla erişime sahip">
    OpenCode, onu başlatan işlemin izinlerini kullanır. OpenCode'u
    daha güçlü erişim sınırlarına ihtiyaç duyduğunuzda bir container veya sandbox içinde çalıştırın.
  </Accordion>
</AccordionGroup>

## İlgili kaynaklar

* [CometAPI hızlı başlangıç](/tr/overview/quick-start)
* [CometAPI Modeller sayfası](/tr/overview/models)
* [OpenCode özel sağlayıcıları](https://opencode.ai/docs/providers/#custom-provider)
* [OpenCode yapılandırması](https://opencode.ai/docs/config/)
* [OpenCode model seçimi](https://opencode.ai/docs/models/)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/opencode#howto",
        "name": "OpenCode'u CometAPI ile kullanma",
        "description": "Bu kılavuzu, dört CometAPI API formatını OpenCode'da özel sağlayıcı olarak yapılandırmak için kullanın.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/opencode#step-1",
            "position": 1,
            "name": "OpenCode'u yükleme",
            "text": "OpenCode'u yükleyin ve CLI'ın kullanılabilir olduğunu doğrulayın."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/opencode#step-2",
            "position": 2,
            "name": "CometAPI API anahtarınızı ayarlama",
            "text": "CometAPI API anahtarınızı COMETAPI_KEY ortam değişkeninde saklayın."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/opencode#step-3",
            "position": 3,
            "name": "Bir yapılandırma konumu seçme",
            "text": "Genel OpenCode yapılandırmasını veya bir proje yapılandırmasını seçin."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/opencode#step-4",
            "position": 4,
            "name": "CometAPI sağlayıcılarını ekleme",
            "text": "opencode.json dosyasına dört CometAPI özel sağlayıcı girdisi ekleyin."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/opencode#step-5",
            "position": 5,
            "name": "Her sağlayıcıyı seçme ve doğrulama",
            "text": "Gerekli CometAPI sağlayıcısını ve modeli seçip doğrulayın."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "CometAPI Dokümantasyonu",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Entegrasyonlar",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "OpenCode'u CometAPI ile kullanma",
            "item": "https://apidoc.cometapi.com/integrations/opencode"
          }
        ]
      }
    ]
    }
    `}
</script>
