# Factory Droid özel modeller: Kendi API anahtarınızla Claude ve GPT kullanın

> Factory Droid'e customModels ile Claude, GPT ve diğer modelleri ekleyin: hangi provider, çalıştırdığımız settings.json ve karşılaştığımız dört hata.

- Canonical HTML: https://omniakey.com/tr/blog/factory-droid-custom-models
- Markdown: https://omniakey.com/tr/blog/factory-droid-custom-models.md
- Published: 2026-10-30 (updated 2026-10-30)
- Author: Kiki, COO at OmniaKey
- Language: tr
- Category: API setup
- Reading time: 9 min
- All posts: https://omniakey.com/blog/llms.txt

---

Her modeli `~/.factory/settings.json` içindeki `customModels` listesine `model`, `baseUrl`, `apiKey` ve `provider` alanlarıyla ekleyin: Claude için düz alan adıyla `anthropic`, GPT için `openai`, geri kalan her şey için `generic-chat-completion-api`. Droid 1.0.0'da Claude Sonnet 5.5, GPT-6.1 Terra ve MiniMax M3.1 Flash aynı hatayı sırasıyla 33.7, 77.4 ve 30.7 saniyede düzeltti.

Üç koşu da tek anahtarla OmniaKey üzerinden geçti; [Claude Sonnet 5.5](https://omniakey.com/tr/claude-sonnet-5-5), [GPT-6.1 Terra](https://omniakey.com/tr/gpt-6-1-terra) ve [MiniMax M3.1 Flash](https://omniakey.com/tr/minimax-m3-1-flash) sayfalarına bu yolla ulaştık. Üçü de aynı bozuk `median()` fonksiyonunu aldı ve düzeltti.

## Kısa cevap

- **Nereye yazılır.** `~/.factory/settings.json` içindeki `customModels` (Factory'nin settings dokümanı, 30 Ekim 2026 tarihinde kontrol edildi); alanlar `model`, `baseUrl`, `apiKey` ve `provider`.
- **Hangi provider.** Claude için `anthropic`, GPT modelleri için `openai`, Chat Completions konuşan diğer her şey için `generic-chat-completion-api`.
- **`/v1` nereye gider.** `anthropic` düz alan adını alır, çünkü Droid `/v1/messages` yolunu kendisi ekler; `openai` ve `generic-chat-completion-api` `/v1` ile biten bir URL alır.
- **`droid exec` için kimlik.** `custom:`, boşlukları tire olan görünen ad, sonra 0'dan başlayan sıra: `custom:Claude-Sonnet-5.5-[OmniaKey]-0`.
- **Koşularımız ne gösterdi.** Üçü de hatayı düzeltti; Flash 30.7 sn, Claude 33.7 sn, GPT-6.1 Terra 77.4 sn.

## Hangi provider değerini kullanmalısınız?

Provider değerini model adına göre değil, endpoint'inizin konuştuğu API'ye göre seçin.

- `anthropic` Anthropic Messages API istekleri gönderir. Claude için kullanın; Anthropic'in base URL'si `https://api.anthropic.com`.
- `openai` OpenAI Responses API istekleri gönderir. GPT modelleri için kullanın; OpenAI'in base URL'si `https://api.openai.com/v1`.
- `generic-chat-completion-api` OpenAI Chat Completions istekleri gönderir. Çoğu diğer model, gateway ve yerel sunucu için sağlayıcının kendi `/v1` URL'siyle kullanın.

Factory, OpenRouter, Fireworks, Together AI, Ollama, vLLM ve çoğu açık kaynak sağlayıcı için `generic-chat-completion-api` listeliyor ve OpenAI ya da Anthropic'in resmi API'sini çağırmıyorsanız bu değeri öneriyor (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi).

Messages API ya da Responses API de konuşan bir gateway `anthropic` veya `openai` kullanabilir. Claude ve GPT-6.1 Terra kayıtlarımız OmniaKey üzerinden tam olarak bunu yaptı ve ikisi de çalıştı; OmniaKey, GPT modellerini `POST /v1/responses` üzerinden sunuyor (OmniaKey'in OpenAI uyumlu dokümanı, 30 Ekim 2026 tarihinde kontrol edildi).

Dördüncü değer `bedrock-converse`, AWS Bedrock'un Converse API'sindeki modeller içindir. Factory, yalnızca resmi API'lerindeki Anthropic ve OpenAI modellerinin tam test edildiğini ve kıyaslandığını, 30 milyar parametrenin altındaki modellerin ajan tabanlı kodlamada belirgin şekilde daha kötü sonuç verdiğini belirtiyor (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi).

## Kullandığımız settings.json

Droid `~/.factory/settings.json` dosyasını ilk çalıştırmada oluşturur, bu yüzden `customModels` eklemesini zaten var olan dosyaya yapın (Factory'nin settings dokümanı, 30 Ekim 2026 tarihinde kontrol edildi). Bizim dosyamız şöyle:

```json
{
  "customModels": [
    {
      "model": "claude-sonnet-5-5",
      "displayName": "Claude Sonnet 5.5 [OmniaKey]",
      "baseUrl": "https://api.omniakey.com",
      "apiKey": "${OMNIAKEY_API_KEY}",
      "provider": "anthropic",
      "maxOutputTokens": 16000
    },
    {
      "model": "gpt-6.1-terra",
      "displayName": "GPT-6.1 Terra [OmniaKey]",
      "baseUrl": "https://api.omniakey.com/v1",
      "apiKey": "${OMNIAKEY_API_KEY}",
      "provider": "openai",
      "maxOutputTokens": 16000
    },
    {
      "model": "minimax-m3.1-flash",
      "displayName": "MiniMax M3.1 Flash [OmniaKey]",
      "baseUrl": "https://api.omniakey.com/v1",
      "apiKey": "${OMNIAKEY_API_KEY}",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 16000
    }
  ]
}
```

- `model` API'ye gönderilen kimliktir; sağlayıcının model listesinden kopyalayın. `displayName` sizin etiketiniz: `/model` içinde görünür ve `custom:` kimliğini oluşturur.
- `baseUrl`, `anthropic` için düz alan adıdır, diğer ikisinde `/v1` ile biter.
- `apiKey: "${OMNIAKEY_API_KEY}"` anahtarı bir ortam değişkeninden okur, böylece dosyanın içinde durmaz (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi).
- `provider` API'yi seçer; burada yapılan bir yazım hatası aşağıdaki "Invalid provider" hatasını verir.
- `maxOutputTokens: 16000` her yanıtın uzunluğunu sınırlar.

Tek anahtar ve iki [base URL](https://docs.omniakey.com/tr/api/overview) üç modeli de kapsıyor: Claude için OmniaKey'in düz alan adı, diğer ikisi için `/v1` alan adı. [OmniaKey'in kodlama ajanı kurulum dokümanını](https://docs.omniakey.com/tr/coding) izlediyseniz aynı anahtar burada da çalışır.

Factory, anahtarların yerel kaldığını ve Factory sunucularına yüklenmediğini söylüyor (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi). Eski rehberler modelleri `~/.factory/config.json` içine koyuyor. Factory'nin BYOK dokümanı hâlâ Droid'in açılışta bunları `settings.json` içine kopyaladığını yazıyor. Factory'nin GitHub deposundaki bir pull request (#76), 15 Ekim 2026 tarihinde birleşen bir kod değişikliğinin bu kopyalamayı kaldırdığını söylüyor; yeni modelleri doğrudan `settings.json` içine yazın.

## Droid'de özel model nasıl seçilir?

Uygulamada `/model` açın ve Custom Models başlığının altına bakın; komut satırında `droid exec` komutuna bir `custom:` kimliği verin.

Factory'nin dokümanına göre kayıtlı modeller orada `displayName` etiketiyle görünür; ayrıca `/settings` > Custom models ya da `/model` > Manage custom models üzerinden de model ekleyebilirsiniz (30 Ekim 2026 tarihinde kontrol edildi).

`droid exec` kimliği şöyle kurulur: `custom:`, ardından boşlukları tireye çevrilmiş görünen ad, sonra bir tire ve modelin `customModels` içindeki 0'dan başlayan sırası (Factory'nin `droid exec` dokümanı, 30 Ekim 2026 tarihinde kontrol edildi). Bizde `custom:Claude-Sonnet-5.5-[OmniaKey]-0`, `custom:GPT-6.1-Terra-[OmniaKey]-1` ve `custom:MiniMax-M3.1-Flash-[OmniaKey]-2` çıktı.

İndeks dizi sırasını izler; bir modeli diğerinin üstüne eklerseniz altındaki tüm kimlikler kayar, dosyayı düzenledikten sonra kimliği yeniden kopyalayın.

`droid exec` içindeki `-r` / `--reasoning-effort` özel modellerde geçerli değil (Factory'nin `droid exec` dokümanı, 30 Ekim 2026 tarihinde kontrol edildi). Bunun yerine kayda `reasoningEffort` yazın.

## Aynı hata üzerinde üç model

Aynı iki dosya, aynı komut, her model için bir koşu. `stats.py`:

```python
def median(values):
    """Return the median of a non-empty list of numbers."""
    ordered = sorted(values)
    mid = len(ordered) // 2
    return ordered[mid]
```

`test_stats.py`:

```python
from stats import median

assert median([3, 1, 2]) == 2
assert median([4, 1, 3, 2]) == 2.5
assert median([5]) == 5
assert median([1.5, 2.5]) == 2.0
print("all tests passed")
```

Komut; koşular arasında yalnızca `--model` değeri değişiyor:

```bash
droid exec --auto medium -o json --model "custom:Claude-Sonnet-5.5-[OmniaKey]-0" "python3 test_stats.py fails. Fix the bug in stats.py without changing the tests, run python3 test_stats.py again, and tell me in one sentence what you changed."
```

|Model|Süre|Tur|Çıktı token|
|-|-|-|-|
|Claude Sonnet 5.5|33.7 s|3|702|
|GPT-6.1 Terra|77.4 s|4|451|
|MiniMax M3.1 Flash|30.7 s|4|525|

Bunlar Droid'in kendi sayıları (`duration_ms`, `num_turns`, `output_tokens`). Flash 30.7 sn ile en hızlı bitirdi, Claude en az turu kullandı, GPT-6.1 Terra 77.4 sn ile en uzun sürdü. Droid ilk tokenı Claude için 8.7 sn, Terra için 17.8 sn, Flash için 7.0 sn sonra bildirdi. Üçü de `test_stats.py` dosyasına dokunmadan hatayı düzeltti ve testler `all tests passed` yazdırdı.

Claude'un değişikliği:

```diff
-    return ordered[mid]
+    if len(ordered) % 2:
+        return ordered[mid]
+    return (ordered[mid - 1] + ordered[mid]) / 2
```

GPT-6.1 Terra aynı dalı eski return satırının üstüne ekledi, MiniMax M3.1 Flash ise `% 2 == 1` ile yazdı. Üç yanıt da aynı düzeltmeyi anlattı: çift uzunluklu listede ortadaki iki değerin ortalamasını almak. [MiniMax M3.1 Flash incelemesi](https://omniakey.com/tr/blog/minimax-m3-1-flash-review) bu modeli daha ayrıntılı ele alıyor.

Droid'in JSON sonucu her koşuda `factory_credits` de yazdırdı, oysa hiç giriş yapmamıştık: Claude Sonnet 5.5 için 31,534, GPT-6.1 Terra için 4,830 ve MiniMax M3.1 Flash için 835. Factory'nin dokümanı bu sayının neyi ölçtüğünü ve BYOK kotasıyla nasıl ilişkili olduğunu açıklamıyor (30 Ekim 2026 tarihinde kontrol edildi).

## Factory hesabı veya planı gerekli mi?

Koşularımızda `custom:` modeliyle `droid exec` bir Factory hesabı istemedi. Factory'nin kendi modelleri ve etkileşimli uygulama hesap istedi.

Droid CLI 1.0.0, 29 Ekim 2026 tarihinde çıktı (Factory'nin changelog'u, 30 Ekim 2026 tarihinde kontrol edildi). Factory oturumu olmayan temiz bir ana klasörde, `custom:` modeliyle yapılan her `droid exec` çağrısı kendi anahtarımızla çalıştı. `--model` olmadan aynı komut hemen durdu: "Authentication failed. Please log in using /login or set a valid FACTORY\_API\_KEY environment variable." (kimlik doğrulama başarısız; `/login` ile giriş yapın ya da geçerli bir `FACTORY_API_KEY` ortam değişkeni tanımlayın). Factory'nin v0.236.0 changelog kaydı (8 Ekim 2026) kaldığınız yerden devam eden oturumları kapsıyor: "Droid exec now resumes a session on your own model credentials without a Factory sign-in." (Droid exec artık bir oturumu Factory girişi olmadan kendi model kimlik bilgilerinizle sürdürüyor.)

Aynı klasörde argümansız `droid` başlatmak "Please login with your Factory account to continue." mesajında durdu (devam etmek için Factory hesabınızla giriş yapın). Giriş olmadan özel modelleri etkileşimli ya da masaüstü uygulamada deneyemedik; görsel girdisini, Bedrock'u, `apiKeyHelper` ayarını, `reasoningEffort` ve düşünme ayarlarını, Windows'u, bir görevden uzun oturumları ve eski `config.json` dosyasını test etmedik.

Factory'nin Individual planları ayda $20 (Pro), $100 (Plus) ve $200 (Max); fiyat sayfası ayrıca takım başına ayda $60 artı kişi başına $40 ile Teams'i ekliyor ve ücretsiz bireysel plan yok (Factory'nin fiyatlandırma dokümanı ve fiyat sayfası, 30 Ekim 2026 tarihinde kontrol edildi).

Individual fiyatlandırma dokümanı şöyle diyor: "BYOK is free up to an allowance on all Individual plans. After that, usage is charged according to your specific plan." (BYOK tüm Individual planlarda bir kotaya kadar ücretsiz; sonrasında kullanım kendi planınıza göre ücretlendirilir.) Factory bu kotanın ne kadar büyük olduğunu ve sonrasındaki ücretin nasıl hesaplandığını söylemiyor.

Kişisel özel modeller CLI'da ve masaüstü uygulamada çalışıyor, Factory'nin barındırılan web ve mobil uygulamalarında görünmüyor (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi).

## Hangi hatalarla karşılaşırsınız ve ne düzeltir?

Her biri, Droid 1.0.0'da geri kalanı çalışan bir kurulumdaki tek bir yanlış değerden çıktı.

1. `anthropic` ve base URL'de `/v1`. Droid 0.9 saniye sonra "Requested model was not found on the API provider" yazdırdı (istenen model API sağlayıcısında bulunamadı) ve günlüğü `Invalid URL (POST /v1/v1/messages)` için `404` gösterdi. Droid `/v1/messages` yolunu kendisi ekliyor, bu yüzden bizim `/v1` değerimiz ikiye katlandı. Çözüm: düz alan adı, `https://api.anthropic.com` ya da `https://api.omniakey.com`.

2. `openai` ve düz alan adı. Droid 1.4 saniye sonra `404` ve bir nginx "404 Not Found" sayfası yazdırdı; Responses API `/v1` altında yaşıyor. Çözüm: `https://api.openai.com/v1` ya da `https://api.omniakey.com/v1`.

3. Noktalı model kimliği: `claude-sonnet-5-5` yerine `claude-sonnet-5.5`. Endpoint `model_not_found` koduyla `503` döndü ve "No available channel for model claude-sonnet-5.5" mesajını verdi (claude-sonnet-5.5 modeli için kullanılabilir kanal yok). Droid'in günlüğü her hatayı "overloaded" olarak etiketledi ve bu mesajla çıkmadan önce 259.7 saniye (yaklaşık 4 dakika 20 saniye) boyunca 10 deneme yaptı. İfade gateway'e ait, yeniden denemeler Droid'e. Çözüm: sağlayıcınızın model listesindeki tam kimliği kopyalayın.

4. `OMNIAKEY_API_KEY` Droid'i başlatan kabukta boş. Droid 2.8 saniye sonra `401` ve "Invalid token" aldı (geçersiz token). Çözüm: anahtarı `droid` komutunu başlattığınız kabukta export edin, sonra yeni bir oturum başlatın.

Factory'nin sorun giderme listesi iki tane daha ekliyor. "Invalid provider", değerin yanlış ya da farklı büyük/küçük harfle yazıldığı anlamına gelir; değer tam olarak `anthropic`, `openai`, `generic-chat-completion-api` ya da `bedrock-converse` olmalı. Seçicide görünmeyen bir model için doküman `~/.factory/settings.json` içindeki JSON söz dizimini ve her kaydın zorunlu alanlarını taşıdığını kontrol etmeyi söylüyor (30 Ekim 2026 tarihinde kontrol edildi).

## SSS

### Windows'ta Droid ayar dosyası nerede?

`%USERPROFILE%\.factory\settings.json`, macOS ve Linux'taki `~/.factory/settings.json` ile aynı dosya (Factory'nin settings dokümanı, 30 Ekim 2026 tarihinde kontrol edildi). `customModels` listesini oraya koyun.

### Özel modelim neden `/model` içinde görünmüyor?

Önce `~/.factory/settings.json` içindeki JSON söz dizimine, sonra `model`, `baseUrl` ve `provider` alanlarına bakın. Droid kaydedilen değişiklikleri dosya izleme ile algılar (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi). Desktop 0.184.0 ve CLI 0.227.0 ile bir bildirimde özel modellerin masaüstü seçicide kısa süre görünüp sonra kaybolduğu, `droid exec --help` çıktısının ise 14 modelin hepsini listelediği görüldü; bu sorun artık kapalı (Factory-AI issue #40, 30 Ekim 2026 tarihinde kontrol edildi).

### Özel modeller görsel okuyabilir mi?

Görseller `anthropic` ve `openai` için varsayılan olarak açık, `generic-chat-completion-api` için kapalı; burada `noImageSupport` varsayılanı `true` (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi). Görsellere izin vermek için generic bir kayıtta `noImageSupport: false` ayarlayın. Bir kullanıcı bu değer ayarlıyken CLI v0.205.1'de görsellerin yine de çıkarıldığını bildirdi (Factory-AI issue #24, 30 Ekim 2026 tarihinde kontrol edildi).

### Özel model için reasoning effort ayarlayabilir miyim?

`droid exec` içindeki `-r` / `--reasoning-effort` özel modellerde geçerli değil. Bunun yerine kayda `reasoningEffort` yazın: Droid'in tanımadığı bir model için varsayılan çabayı belirler ve seçiciye off, low, medium ve high seçeneklerini ekler (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi).

### Özel modeller Droid masaüstü uygulamasında çalışır mı?

Evet: kişisel özel modeller CLI'da ve masaüstü uygulamada kullanılabilir, barındırılan web ve mobil uygulamalarda yer almaz. CLI'daki ve masaüstü uygulamasındaki model düzenleyicileri ikisi de `~/.factory/settings.json` dosyasına kaydeder (Factory'nin BYOK dokümanı, 30 Ekim 2026 tarihinde kontrol edildi).

## Kontrol edilen kaynaklar

- [Factory BYOK dokümanı](https://docs.factory.com/model-independence/byok.md), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory settings dokümanı](https://docs.factory.com/droid-cli/settings.md), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory droid exec dokümanı](https://docs.factory.com/droid-exec/overview.md), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory sürüm notları](https://docs.factory.com/changelog/release-notes.md), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory Individual planları](https://docs.factory.com/pricing/individuals.md), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory fiyatlandırma](https://factory.com/pricing), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory-AI issue #40: özel modeller masaüstü seçiciden kayboluyor](https://github.com/Factory-AI/factory/issues/40), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory-AI issue #24: görseller çıkarılıyor](https://github.com/Factory-AI/factory/issues/24), 30 Ekim 2026 tarihinde kontrol edildi
- [Factory-AI pull request #76: config.json geçişi](https://github.com/Factory-AI/factory/pull/76), 30 Ekim 2026 tarihinde kontrol edildi

OmniaKey'in kendi dokümanı, 30 Ekim 2026 tarihinde kontrol edildi: [API genel bakış](https://docs.omniakey.com/tr/api/overview) ve [OpenAI uyumlu API](https://docs.omniakey.com/tr/api/openai-compatible).
