APIMaster.ai

OpenCode AI API Anahtarı Kurulumu — OpenAI Uyumlu Yapılandırma

APIMaster.ai’den özel API anahtarı ile OpenCode AI nasıl yapılandırılır. opencode.jsonc dosyasına OpenAI uyumlu sağlayıcı olarak APIMaster ekleyin ve görsel girişi (Vision) ile isteğe bağlı Reasoning katmanlarıyla Claude, GPT-5.5 ve DeepSeek’e erişin.

OpenCode Desktop, OpenCode (şu anda beta) için grafiksel istemcidir: yerel aracı oturumları, dosya düzenlemeleri ve kabuk yürütmeleri. APIMaster.ai, OpenAI ile uyumludurAyarlar → Sağlayıcılar → Özel sağlayıcı altına ekleyin.

Önce API Anahtarınızı alın. Aşağıda your_apimaster_key yer tutucusunu kullanın; ekran görüntüleri gerçek anahtarları maskeler.


Ön koşullar

  1. OpenCode Desktop, opencode.ai/download adresinden yüklenmiş olmalıdır.
    • Windows: opencode-desktop-win-x64.exe
    • macOS: brew install --cask opencode-desktop veya .dmg
    • Linux: .deb / .rpm / AppImage
  2. Konsoldan APIMaster API Anahtarı.

Adım 1 — Sağlayıcıları açın

  1. OpenCode Desktop'ı başlatın ve bir çalışma alanı açın.
  2. Dişli çark simgesine (sol alt köşe) tıklayın.
  3. Kenar çubuğunda Sağlayıcılar'ı seçin.
  4. Özel sağlayıcı bölümüne gidin (Temel URL ile OpenAI uyumlu bir sağlayıcı ekleyin).
  5. + Bağlan'a tıklayın.

Ayarlar → Sağlayıcılar → Özel sağlayıcı


Adım 2 — Özel sağlayıcı formu

Alan Değer
Sağlayıcı Kimliği apimaster
Görünen ad APIMaster.ai
Temel URL https://apimaster.ai/v1
API anahtarı APIMaster anahtarınız

Özel sağlayıcı formu

Başlıklar kısmını boş bırakın; yalnızca başlıklar üzerinden kimlik doğrulama yapmıyorsanız.


Adım 3 — Modelleri ekleyin ve Gönderin

Bir sonraki ekranda modelleri eşleyin (sol = OpenCode'daki etiket, sağ = APIMaster'a gönderilen model kimliği — genellikle aynıdır):

Sol Sağ
gpt-5.4 gpt-5.4
claude-sonnet-4-6 claude-sonnet-4-6
  1. Daha fazla satır için + Model ekle'ye tıklayın.
  2. Gönder'e tıklayın.

Modelleri ekleyin ve Gönderin

Kimlikleri marketten alın. Aracı sohbeti için yalnızca görsel oluşturma modellerinden (ör. gpt-image-2) kaçının.

Görsel tanıma (Vision) mı gerekiyor? gpt-5.5, claude-sonnet-4-6, claude-opus-4-7, claude-opus-4-8 ve claude-haiku-4-5 görsel girişini destekler, ancak OpenCode'un ek bir yetenek bildirimine ihtiyacı vardır — bkz. GPT ve Claude için görsel girişini etkinleştirme.


Adım 4 — Bir model seçin

  1. Bir oturum başlatın veya açın.
  2. Giriş alanının altındaki model açılır menüsünü açın.
  3. APIMaster.ai altında bir model seçin (ör. claude-sonnet-4-6).

Model seçici


Adım 5 — Test edin

Merhaba veya küçük bir kodlama görevi gönderin. Normal bir Asistan yanıtı (dosya düzenlemeleri / kabuk) APIMaster'ın bağlı olduğu anlamına gelir.

Sohbet testi


Gelişmiş: opencode.jsonc ve Reasoning

Yukarıdaki UI akışı hızlı bir başlangıç için yeterlidir. Aynı model kimliği için Reasoning / düşünme çabası katmanlarını (low, high, max, …) yapılandırmak için opencode.jsonc dosyasını düzenleyin.

Yapılandırma dosyası konumu

İşletim Sistemi Yol
macOS / Linux ~/.config/opencode/opencode.jsonc
Windows C:\Users\<kullanıcı_adı>\.config\opencode\opencode.jsonc

Dosya yoksa oluşturun. Kaydettikten sonra OpenCode Desktop'ı yeniden başlatın veya yeni bir oturum başlatın.

API Anahtarı (jsonc içine koymayın)

API Anahtarınızı opencode.jsonc içinde saklamayın.

Bunun yerine kullanın:

  • Terminalde /connect veya
  • Ayarlar → Sağlayıcılar → Sağlayıcıyı Bağla (yukarıdaki 1–2. adımlarla aynı).

Gizli bilgileri OpenCode'un kimlik doğrulama deposunda tutun; jsonc yalnızca sağlayıcıyı, modelleri ve Reasoning varyantlarını tanımlar.

APIMaster sağlayıcısı jsonc içinde

Sağlayıcı kimliği: apimaster. npm paketi: @ai-sdk/openai-compatible.

baseURL şöyle olmalıdır:

https://apimaster.ai/v1

Değil https://apimaster.ai/ — OpenCode sonuna /chat/completions ekler. /v1 olmadan https://apimaster.ai/chat/completions alırsınız → 404 Bulunamadı.

Ayrıca https://api.apimaster.ai/v1 de değilapi. önekli ana bilgisayar, testlerde TLS / bağlantı hatalarına neden olabilir. Doğru ana bilgisayar https://apimaster.ai/v1'dir.

Reasoning varyantlarıyla tam örnek — indirin ve OpenCode'un yapılandırmasının üzerine yazın:

  1. opencode.jsonc dosyasını indirin
  2. Üzerine yazın (veya şuraya kaydedin):
    • macOS / Linux: ~/.config/opencode/opencode.jsonc
    • Windows: C:\Users\<kullanıcı_adı>\.config\opencode\opencode.jsonc
  3. API Anahtarını /connect veya UI aracılığıyla yapılandırın (asla jsonc içinde değil).
  4. OpenCode Desktop'ı yeniden başlatın veya yeni bir oturum başlatın.

Üzerine yazmadan önce mevcut dosyanızı yedekleyin veya yalnızca provider.apimaster bloğunu birleştirin.

Minimal şekil:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "apimaster": {
      "name": "APIMaster.ai",
      "npm": "@ai-sdk/openai-compatible",
      "options": { "baseURL": "https://apimaster.ai/v1" },
      "models": {
        "gpt-5.5": {
          "name": "gpt-5.5",
          "attachment": true,
          "modalities": {
            "input": ["text", "image"],
            "output": ["text"]
          },
          "variants": {
            "low": { "reasoningEffort": "low" },
            "high": { "reasoningEffort": "high" }
          }
        }
      }
    }
  }
}

Yukarıdaki gpt-5.5 üzerindeki attachment ve modalities alanları görsel girişini (Vision) etkinleştirir — bkz. GPT ve Claude için görsel girişini etkinleştirme. Yalnızca metin sohbetine ihtiyacınız varsa bunları atlayın.

Reasoning ilkeleri

  • variants = UI'da bir model kimliği için birden çok Reasoning katmanı.
  • OpenAI uyumlu API'ler için OpenCode, reasoningEffort → istek gövdesinde reasoning_effort olarak eşler.
  • Varyant adları gerçek parametreyle eşleşmelidir (high"reasoningEffort": "high").
  • Her model farklı katmanları destekler — resmi belgelere göre yapılandırın; gizli yeniden eşleme yoktur.

Modele göre Reasoning katmanları

Model Reasoning varyantları Notlar
gpt-5.4 low, medium, high, xhigh GPT reasoning
gpt-5.5 low, medium, high, xhigh GPT reasoning
deepseek-v4-flash high, max DeepSeek düşünme (önerilen)
deepseek-v4-pro high, max DeepSeek düşünme (önerilen)
claude-sonnet-4-6 low, medium, high, max Claude Sonnet çaba
claude-opus-4-7 low, medium, high, xhigh, max Claude Opus çaba
claude-opus-4-8 low, medium, high, xhigh, max Claude Opus çaba
claude-haiku-4-5 yok Onaylanmamış çaba katmanı yok
minimax-m3 yok Onaylanmamış çaba katmanı yok

Tam dosya için opencode.jsonc dosyasına bakın.

OpenCode'da Reasoning değiştirme

  1. opencode.jsonc dosyasını kaydedin, ardından yeniden başlatın veya yeni oturum açın.
  2. Model / Reasoning açılır menüsünü kullanın (ör. gpt-5.4 / high).
  3. Yapınızda destekleniyorsa: Ctrl + Shift + D Reasoning katmanlarında gezinir.

GPT ve Claude için görsel girişini etkinleştirme

gpt-5.5, claude-sonnet-4-6, claude-opus-4-7, claude-opus-4-8 ve claude-haiku-4-5 gibi APIMaster.ai modelleri görsel girişini / Vision'ı destekler — tanıma, açıklama, OCR veya bir görselden kodlama için ekran görüntülerini, fotoğrafları, grafikleri okur.

Bir modelin görselleri desteklemesi ≠ OpenCode'un görseli göndermesi. APIMaster.ai modelinin kendisi görüntüyü desteklese bile, opencode.jsonc içinde yeteneği bildirmeniz gerekir. Aksi takdirde OpenCode, görseli çok modlu giriş olarak göndermeyebilir — yalnızca ek / dosya adını isteme koyar ve model "geçerli model görsel girişini desteklemiyor" gibi bir yanıt verir.

Bildirilecek iki alan

Görsellerle kullanmak istediğiniz her model için şunu ekleyin:

"attachment": true,
"modalities": {
  "input": ["text", "image"],
  "output": ["text"]
}
  • attachment: true, OpenCode'a bu modelin ekleri kabul ettiğini söyler.
  • modalities.input içinde "image" bulunması, OpenCode'a bu modelin görsel girişini desteklediğini söyler, böylece OpenCode görseli çok modlu image_url içeriğine dönüştürür.

Tam örnek (GPT ve Claude)

opencode.jsonc dosyasını indirin (alanlar zaten dahil) veya aşağıdaki provider.apimaster bloğunu mevcut yapılandırmanızla birleştirin:

{
  "$schema": "https://opencode.ai/config.json",
  "disabled_providers": [],
  "provider": {
    "apimaster": {
      "name": "APIMaster.ai",
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://apimaster.ai/v1"
      },
      "models": {
        "gpt-5.5": {
          "name": "gpt-5.5",
          "attachment": true,
          "modalities": {
            "input": ["text", "image"],
            "output": ["text"]
          },
          "variants": {
            "low": { "reasoningEffort": "low" },
            "medium": { "reasoningEffort": "medium" },
            "high": { "reasoningEffort": "high" },
            "xhigh": { "reasoningEffort": "xhigh" }
          }
        },
        "claude-sonnet-4-6": {
          "name": "claude-sonnet-4-6",
          "attachment": true,
          "modalities": {
            "input": ["text", "image"],
            "output": ["text"]
          },
          "variants": {
            "low": { "reasoningEffort": "low" },
            "medium": { "reasoningEffort": "medium" },
            "high": { "reasoningEffort": "high" },
            "max": { "reasoningEffort": "max" }
          }
        },
        "claude-opus-4-7": {
          "name": "claude-opus-4-7",
          "attachment": true,
          "modalities": {
            "input": ["text", "image"],
            "output": ["text"]
          },
          "variants": {
            "low": { "reasoningEffort": "low" },
            "medium": { "reasoningEffort": "medium" },
            "high": { "reasoningEffort": "high" },
            "xhigh": { "reasoningEffort": "xhigh" },
            "max": { "reasoningEffort": "max" }
          }
        },
        "claude-opus-4-8": {
          "name": "claude-opus-4-8",
          "attachment": true,
          "modalities": {
            "input": ["text", "image"],
            "output": ["text"]
          },
          "variants": {
            "low": { "reasoningEffort": "low" },
            "medium": { "reasoningEffort": "medium" },
            "high": { "reasoningEffort": "high" },
            "xhigh": { "reasoningEffort": "xhigh" },
            "max": { "reasoningEffort": "max" }
          }
        },
        "claude-haiku-4-5": {
          "name": "claude-haiku-4-5",
          "attachment": true,
          "modalities": {
            "input": ["text", "image"],
            "output": ["text"]
          }
        }
      }
    }
  }
}

Notlar:

  • Görsel girişini yalnızca gpt-5.5 için etkinleştirmek istiyorsanız, attachment ve modalities'i yalnızca gpt-5.5'e ekleyin; diğerlerini değiştirmeden bırakın.
  • Yalnızca Claude'u etkinleştirmek için bu alanları yalnızca Claude modellerine ekleyin.
  • Her modelin mevcut Reasoning varyantlarını (low / medium / high / xhigh / max) koruyun — görsel alanları ile Reasoning çakışmaz.
  • opencode.jsonc dosyasını düzenledikten sonra OpenCode'dan tamamen çıkın ve yeniden başlatın, ya da en azından yapılandırmanın yeniden yüklenmesi için yeni bir oturum başlatın.
  • API Anahtarını asla bu dosyaya koymayın — bunu /connect veya UI aracılığıyla yapılandırın (aşağıdaki Güvenlik bölümüne bakın).

Görsel kaynağı: yerel yükleme / base64 tercih edin

  • Önerilen: OpenCode'da yerel bir PNG / JPG yükleyin. İdeal olarak OpenCode, bunu APIMaster'a göndermeden önce bir base64 veri URL'sine (data:image/png;base64,...) dönüştürür — bu, doğrulanmış çalışan yoldur.
  • Herkese açık bir görsel URL'sini doğrudan geçmek başarısız olabilir. APIMaster / yukarı akış, ağ, biçim, boyut, MIME veya sıcak bağlantı koruması nedeniyle herkese açık bir görseli indiremeyebilir ve şunu döndürebilir:
    Error while downloading file. Upstream status code: 400.
    
    Bu durumda, model tarafının herkese açık bir URL'yi indirmesine güvenmek yerine bir base64 veri URL'si veya yerel yükleme kullanın.

Görsel tanımanın çalıştığını test edin

Seçenek A — OpenCode'da test edin

  1. Model açılır menüsünde apimaster/gpt-5.5 veya apimaster/claude-sonnet-4-6'ya geçin.
  2. Bir PNG / JPG görseli yükleyin.
  3. Şunu yazın:
    Describe the main content of this image.
    
  • Doğru yapılandırmayla model görsel içeriğini açıklamalıdır.
  • Model yalnızca bir dosya / ek adından bahsediyorsa veya "image input not supported" yanıtı veriyorsa, OpenCode büyük olasılıkla görsel içeriğini göndermiyordur — modelin attachment ve modalities alanlarını kontrol edin ve OpenCode'u yeniden başlatın.

Seçenek B — Doğrudan API üzerinden test edin

Bir APIMaster model sorununu bir OpenCode adaptör sorunundan ayırmak için kullanışlıdır. Gerçek bir anahtarı asla sabit kodlamayın — bir ortam değişkeni kullanın.

Linux / macOS:

export APIMASTER_API_KEY="your APIMaster API key"

curl https://apimaster.ai/v1/chat/completions \
  -H "Authorization: Bearer $APIMASTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [
      {
        "role": "user",
        "content": [
          { "type": "text", "text": "Describe this image." },
          {
            "type": "image_url",
            "image_url": {
              "url": "data:image/png;base64,YOUR_IMAGE_BASE64"
            }
          }
        ]
      }
    ],
    "max_tokens": 1000
  }'

Claude'u aynı şekilde test etmek için model'i claude-sonnet-4-6 olarak değiştirin (görsel tanıma ile HTTP 200 doğrulandı).

Windows PowerShell:

$env:APIMASTER_API_KEY = "your APIMaster API key"
# Convert a local image to base64, put it into image_url.url as data:image/png;base64,...
# Then call https://apimaster.ai/v1/chat/completions with the same JSON body.

Görseli açıklayan bir 200 yanıtı, görsel girişinin APIMaster tarafında çalıştığı anlamına gelir; OpenCode hâlâ başarısız oluyorsa, sorun OpenCode'un attachment / modalities yapılandırmasında veya eksik bir yeniden başlatmadadır.


Sorun giderme

UI kurulumu

Sorun Çözüm
401 Anahtarı kontrol edin; ifşa olduysa döndürün
Model bulunamadı Temel URL https://apimaster.ai/v1 olmalıdır; model kimliği marketle eşleşmelidir
APIMaster modelleri yok Ayarlar'da sağlayıcıyı düzenleyin → eşlemeler ekleyin → Gönder
Yavaş / zaman aşımı Başka bir model deneyin; API Anahtarı Test Aracı kullanın

Reasoning / jsonc

DeepSeek için neden yalnızca high ve max?
DeepSeek için resmi OpenAI uyumlu düşünme çabası high ve max'tır. Öngörülemeyen şekilde yeniden eşlenen low / medium / xhigh kullanmaktan kaçının.

Claude Sonnet için neden max, xhigh değil?
Sonnet'in en üst katmanı max'tır; xhigh Opus içindir (claude-opus-4-7 / claude-opus-4-8).

Haiku veya MiniMax M3 için neden varyant yok?
Belgelenmiş reasoningEffort değerleri olmadan varyantları atlayın — model yine de çalışır; UI yalnızca Reasoning alt katmanlarını göstermez.

Hala 400 alıyorum?

  1. baseURL = https://apimaster.ai/v1 (site kökü değil).
  2. Model kimliği yazımı marketle eşleşiyor.
  3. Anahtar /connect veya UI aracılığıyla yapılandırıldı.
  4. Geçici olarak variants kısmını kaldırın — düz istekler çalışıyorsa, seçilen reasoning_effort bu model için desteklenmiyor olabilir.

Görsel girişi / Vision

OpenCode neden "the current model does not support image input" diyor?

  • APIMaster.ai'nin gpt-5.5'i ve birkaç Claude modeli görsel girişini destekler; bu mesaj genellikle OpenCode'un görseli çok modlu giriş olarak göndermediği anlamına gelir.
  • opencode.jsonc içindeki modelin şuna sahip olduğunu kontrol edin:
    "attachment": true,
    "modalities": {
      "input": ["text", "image"],
      "output": ["text"]
    }
    
  • Düzenledikten sonra OpenCode'u yeniden başlattığınızı doğrulayın.
  • baseURL'nin https://apimaster.ai/v1 olduğunu doğrulayın.
  • APIMaster API Anahtarının geçerli olduğunu doğrulayın.
  • Herkese açık bir görsel URL'si başarısız olursa, bir base64 veri URL'si veya yerel yükleme kullanın.

Model neden görseli değil de yalnızca ek adını görüyor?

  • Genellikle OpenCode, eki okuyup görsel girişine dönüştürmemiştir — yalnızca dosya / ek adını isteme koymuştur.
  • attachment: true ve modalities.input: ["text", "image"]'i etkinleştirin ve görsel girişini destekleyen bir model kullanın.

Herkese açık bir görsel URL'si neden hata veriyor?

  • APIMaster veya yukarı akış, herkese açık bir görseli indirirken ağ, biçim, dosya boyutu, MIME, sıcak bağlantı koruması veya proxy ile sınırlandırılabilir.
  • Error while downloading file. Upstream status code: 400. durumunda, bir base64 veri URL'sine geçin.

attachment ekledikten sonra hâlâ çalışmıyor mu?

  1. OpenCode'dan tamamen çıkın ve yeniden başlatın.
  2. Test etmek için yeni bir oturum başlatın.
  3. Oturumun etkin modelinin görsel alanlarıyla yapılandırdığınız model olduğunu doğrulayın.
  4. API Anahtarının geçerli olduğunu doğrulayın.
  5. OpenCode günlüklerinde 401 / 400 / unsupported image / invalid content type hatalarını kontrol edin.
  6. Bir APIMaster model sorununu bir OpenCode adaptör sorunundan ayırmak için base64 görselle Seçenek B — Doğrudan API üzerinden test edin'i kullanın.

Güvenlik

  • APIMaster API Anahtarını opencode.jsonc içine koymayın; bu dosya yalnızca sağlayıcıyı, modelleri, görsel yeteneklerini ve Reasoning'i tutar.
  • Anahtarı sohbete, ekran görüntülerine, sorunlara (issues), herkese açık belgelere veya kod depolarına yapıştırmayın.
  • Ekran görüntülerinde veya günlüklerde görünen anahtarları döndürün — konsolda iptal edip yeniden oluşturun, ardından OpenCode'daki sağlayıcıyı güncelleyin.
  • API Anahtarını yönetmek için OpenCode'un /connect akışını, ortam değişkenlerini veya yerel kimlik bilgisi depolamasını tercih edin.
  • OpenCode dosyaları okuyabilir/yazabilir ve kabuk komutları çalıştırabilir — yalnızca güvenilir çalışma alanları kullanın.

Kontrol listesi

  • OpenCode Desktop yüklendi
  • Özel sağlayıcı bağlandı veya opencode.jsonc içinde apimaster
  • Temel URL / baseURL = https://apimaster.ai/v1 ( https://apimaster.ai/ değil)
  • API Anahtarı /connect veya UI aracılığıyla (jsonc içinde değil)
  • En az bir sohbet modeli eşlendi
  • (İsteğe bağlı) Reasoning varyantları resmi katmanlarla eşleşiyor
  • Test mesajı başarılı

Görsel girişi kontrol listesi

  • baseURL https://apimaster.ai/v1 ( https://api.apimaster.ai/v1 değil )
  • Vision destekli bir model kullanılıyor, ör. gpt-5.5 veya Vision destekli bir Claude modeli
  • Modelde attachment: true var
  • Modelin modalities.input alanı "image" içeriyor
  • opencode.jsonc düzenlendikten sonra OpenCode yeniden başlatıldı
  • API Anahtarı geçerli
  • Test görseli yaygın bir biçimde (PNG / JPG)
  • Herkese açık bir görsel URL'si başarısız olursa, bir base64 veri URL'si denendi

Özet

  • Anahtarlar: baseURL (https://apimaster.ai/v1), model kimliği, API Anahtarı (/connect veya UI), isteğe bağlı Reasoning varyantları.
  • Varyant adları = gerçek reasoning_effort değerleri.
  • Katmanları modele göre yapılandırın; desteklenmiyorsa varyantları atlayın (Haiku, MiniMax M3).

Ayrıca bkz.