Kendi Cihazınızdaki Modeller

Bilgisayarınızda çalışan modelleri dış programlardan API ile kullanın

Onysoft AI Gateway Node programını bilgisayarınıza kurup hesabınıza bağladıysanız, o bilgisayarda çalışan modelleri n8n, Cursor, LangChain, OpenAI kütüphaneleri ya da kendi kodunuz gibi dış programlardan kullanabilirsiniz. Uç ve anahtar diğer modellerle aynıdır; tek fark, model adının başındaki node/ önekidir.

info

Önce Onysoft AI Gateway Node programını bilgisayarınıza kurup hesabınıza bağlayın ve programda paylaşımı açın. Cihazlarınızı ve modellerinin durumunu panelde GPU Paylaşımım sayfasından izleyebilirsiniz.

POST /v1/chat/completions

Model adı node/<katalog_kimliği> olduğunda istek sizin cihazınızda çalışır.

GET /v1/node/models

Cihazlarınızda yüklü modelleri ve o an kullanıma hazır olup olmadıklarını listeler.

Nasıl Çalışır?

Bilgisayarınız dışarıya port açmaz; bağlantıyı her zaman Node programı sunucuya doğru kurar. Bir istek şu yolu izler:

  1. Programınız isteği her zamanki gibi https://api.onysoft.com/v1/chat/completions adresine gönderir.
  2. Sunucu, anahtarın panelden oluşturduğunuz kişisel bir anahtar olduğunu ve istenen modelin çevrimiçi cihazlarınızdan birinde hazır olduğunu kontrol eder.
  3. İstek, sahibi siz olacak şekilde kuyruğa alınır.
  4. Bilgisayarınızdaki Node programı, sunucuya kendisinin açtığı ve sürekli yenilediği giden bağlantı üzerinden işi alır ve modeli bilgisayarınızda yerel olarak (127.0.0.1) çalıştırır.
  5. Yanıt sunucuya geri gönderilir ve programınıza diğer modellerle aynı biçimde döner; akışlı istekte parçalar cihazda üretildikçe gelir (ayrıntı aşağıda, “Akış” bölümünde).
  6. Token sayıları ve süre kullanım kaydınıza işlenir; ücret 0'dır.
Programınız (n8n, Cursor, kendi kodunuz)
   │  ▲
   │  │   POST /v1/chat/completions  "model": "node/..."
   │  │   yanıt, diğer modellerle aynı biçimde döner
   ▼  │
api.onysoft.com   anahtar ve cihaz kontrolü → kuyruk
   ▲  │
   │  │   giden bağlantı: Node programı işi alır, sonucu geri gönderir
   │  │   (bilgisayarınızda port açılmaz)
   │  ▼
Bilgisayarınız    Onysoft AI Gateway Node → yerel model (127.0.0.1)

Model Adı

Katalog kimliğinin başına node/ ekleyin. Aynı model birden fazla cihazınızda hazırsa istek bunlardan birine gider; belirli bir cihazı seçmek için sonuna @<cihaz_no> ekleyin.

Model adı Anlamı
node/qwen3-4b-q4_k_m Bu modelin hazır olduğu çevrimiçi cihazlarınızdan herhangi biri.
node/qwen3-4b-q4_k_m@12 Yalnız 12 numaralı cihazınız. Bu cihaz çevrimdışıysa ya da model orada hazır değilse istek başka bir cihaza gitmez, 503 node_unavailable döner.

Kullanabileceğiniz adları ve cihaz numaralarını GET /v1/node/models yanıtındaki id ve device_model_id alanlarında bulursunuz. node/ sonrasındaki katalog kimliğinde büyük/küçük harf farkı önemli değildir; öneki ise küçük harfle yazın. Anahtarınıza model kısıtı tanımladıysanız, tüm cihaz modellerine izin vermek için listeye node/* ekleyebilirsiniz.

Örnek İstek

Uç, anahtar ve istek gövdesi diğer modellerle aynıdır; yalnız model alanı değişir.

cURL
curl https://api.onysoft.com/v1/chat/completions \
  -H "Authorization: Bearer sk-ony-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "node/qwen3-4b-q4_k_m",
    "messages": [
      {"role": "user", "content": "Merhaba! Kısaca kendini tanıtır mısın?"}
    ],
    "max_tokens": 300
  }'

Örnek Yanıt

Yanıt diğer modellerle aynı biçimdedir. id isteğin kimliğidir (req_...), model alanında cihaz numarası olmadan node/<katalog_kimliği> yazar ve cost.amount her zaman 0'dır. Model düşünce metni ürettiyse mesajda reasoning ve reasoning_content alanları da bulunur; araç çağırdıysa tool_calls gelir ve finish_reason değeri tool_calls olur.

JSON
{
  "success": true,
  "data": {
    "id": "req_5c1e9a7d2b3f4e6a8c0d1e2f",
    "object": "chat.completion",
    "created": 1758542400,
    "model": "node/qwen3-4b-q4_k_m",
    "choices": [
      {
        "index": 0,
        "message": {
          "role": "assistant",
          "content": "Merhaba! Ben Qwen3, bilgisayarınızda çalışan bir dil modeliyim."
        },
        "finish_reason": "stop",
        "logprobs": null
      }
    ],
    "usage": {
      "prompt_tokens": 18,
      "completion_tokens": 16,
      "total_tokens": 34
    },
    "cost": {
      "amount": 0,
      "currency": "USD"
    }
  }
}

Desteklenen Parametreler

Cihazınıza yalnız aşağıdaki alanlar iletilir:

Akış (Streaming)

stream:true gönderdiğinizde yanıt, diğer modellerde olduğu gibi SSE parçaları hâlinde gelir. Programın güncel sürümünde (ana program 0.4.5, Dağıtık 0.6.2 ve sonrası) cihaz, modelin düşünce metnini ve yanıtı ürettikçe sunucuya gönderir; parçalar üretim sürerken programınıza ve panel sohbetine akar. Bu sürümlerde bağlantıyı kapatırsanız cihazdaki üretim de durdurulur. Daha eski sürümlerde cihaz yanıtın tamamını ürettikten sonra gönderir; parçalar o zaman art arda, yaklaşık 40 karakterlik dilimler hâlinde gelir.

Veri gelmediği sürece bağlantı açık tutulur: sunucu 5 saniyede bir : ping yorum satırı gönderir. Akış sırasında ara bellekleri boşaltmak için boşluklardan oluşan uzun yorum satırları da gelebilir. SSE istemcileri ve OpenAI kütüphaneleri : ile başlayan bu satırları yok sayar. Akışsız istekte süre sınırı daha kısa olduğundan uzun yanıtlar için stream:true kullanmanızı öneririz.

SSE
: ping

: ping

data: {"id":"req_5c1e9a7d2b3f4e6a8c0d1e2f","object":"chat.completion.chunk","created":1758542400,"model":"node/qwen3-4b-q4_k_m","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"logprobs":null}]}

data: {"id":"req_5c1e9a7d2b3f4e6a8c0d1e2f","object":"chat.completion.chunk","created":1758542400,"model":"node/qwen3-4b-q4_k_m","choices":[{"index":0,"delta":{"content":"Merhaba! Ben Qwen3, bilgisayarınızda çal"},"finish_reason":null,"logprobs":null}]}

data: {"id":"req_5c1e9a7d2b3f4e6a8c0d1e2f","object":"chat.completion.chunk","created":1758542400,"model":"node/qwen3-4b-q4_k_m","choices":[{"index":0,"delta":{"content":"ışan bir dil modeliyim."},"finish_reason":null,"logprobs":null}]}

data: {"id":"req_5c1e9a7d2b3f4e6a8c0d1e2f","object":"chat.completion.chunk","created":1758542400,"model":"node/qwen3-4b-q4_k_m","choices":[{"index":0,"delta":{},"finish_reason":"stop","logprobs":null}]}

data: {"id":"req_5c1e9a7d2b3f4e6a8c0d1e2f","object":"chat.completion.chunk","created":1758542401,"model":"node/qwen3-4b-q4_k_m","choices":[],"usage":{"prompt_tokens":18,"completion_tokens":16,"total_tokens":34},"cost":{"amount":0,"currency":"USD"}}

data: [DONE]

Parça sırası: role, varsa düşünce metni (reasoning / reasoning_content), content, varsa tool_calls ve finish_reason. stream_options.include_usage gönderdiyseniz ardından bir usage parçası gelir. En sonda her zaman usage ve cost içeren parça, ardından [DONE] gönderilir.

Akış başladıktan sonra oluşan hatalar (cihazın isteği süresinde almaması, zaman aşımı, cihaz hatası) HTTP durum kodu olarak değil, akışın içinde bir error parçası olarak gelir ve akış [DONE] ile kapanır. Anahtar, model adı ve istek gövdesiyle ilgili hatalar ise akış başlamadan, normal JSON hata yanıtı olarak döner.

data: {"error":{"code":"node_timeout","message":"..."}}

data: [DONE]

Cihaz Modellerini Listeleme

GET /v1/node/models, hesabınıza bağlı cihazlarda yüklü modelleri döner. Aynı model iki cihazınızda yüklüyse iki satır gelir (node_id farklıdır). Bir modeli o an kullanabilmek için ready alanının true olması gerekir. Programı kapattığınızda ya da paylaşımı durdurduğunuzda cihaz yüklü model bildirmez; o cihazın satırları listede görünmez ve liste boş dönebilir. Uykuya geçen ya da bağlantısı kopan cihazın satırları ise online: false ile görünmeye devam eder. Bu uç da yalnız kişisel anahtarlarla çalışır.

cURL
curl https://api.onysoft.com/v1/node/models \
  -H "Authorization: Bearer sk-ony-your-api-key"
JSON
{
  "success": true,
  "object": "list",
  "data": [
    {
      "id": "node/qwen3-4b-q4_k_m",
      "object": "model",
      "created": 1758369600,
      "owned_by": "cihazim",
      "name": "Qwen3 4B",
      "purpose": "genel",
      "context_window": 8192,
      "node_id": 12,
      "node_name": "MacBook Pro",
      "device_model_id": "node/qwen3-4b-q4_k_m@12",
      "online": true,
      "sharing": true,
      "model_status": "hazir",
      "ready": true,
      "last_seen_at": "2026-09-22T14:05:31+03:00",
      "pricing": {
        "input_per_million_tokens": 0,
        "output_per_million_tokens": 0,
        "currency": "USD"
      }
    }
  ],
  "total": 1
}
Alan Anlamı
idİstekte model olarak kullanacağınız ad; istek, modelin hazır olduğu cihazlarınızdan birine gider.
device_model_idModeli yalnız bu cihazda çalıştırmak için kullanacağınız ad.
node_id, node_nameCihazın numarası ve adı.
node_nicknamePanelde cihaza verdiğiniz takma ad; yoksa null.
readyonline ve sharing true, model_status da hazir ise true olur. İstek yalnız bu durumda o cihazda çalışır.
onlineCihaz son 45 saniye içinde sunucuya bağlandıysa true.
sharingNode programında paylaşım açıksa true.
model_statusModelin cihazdaki durumu: hazir (kullanıma hazır), yukleniyor (yükleniyor), hata (hata oluştu), durdu (durduruldu) ya da surum_eski (cihazdaki program sürümü artık desteklenmiyor).
update_requiredtrue ise cihazdaki program sürümü artık desteklenmiyor ve bu cihaza istek gönderilmez; bu durumda model_status surum_eski, ready false olur. Programı indirme sayfasından güncelleyin.
purposeModelin kullanım amacı: genel, kod, hizli, akil_yurutme ya da turkce.
context_windowModelin bağlam penceresi (token). Bilinmiyorsa <code>null</code> olur; bu durumda 8192 token varsayılır.
last_seen_atCihazın sunucuya son bağlandığı an (ISO 8601).
pricingKendi cihazınızı kullanmak ücretsiz olduğu için her zaman 0.

Hata Kodları

Hata yanıtları diğer uçlarla aynı biçimdedir: {"success": false, "error": {"code": "...", "message": "...", "type": "...", "param": null}}. Hata mesajları Türkçedir.

Kod code Açıklama
400context_length_exceededİstek, modelin bağlam uzunluğunu aşıyor. Sunucu tahmini istem uzunluğunu cihaza göndermeden önce kontrol eder; cihaz bağlam aşımı bildirdiğinde de aynı kod döner.
400invalid_requestİstek gövdesi hatalı: örneğin n 1'den farklı, messages dizi değil ya da bir parametre yanlış tipte.
403node_owner_onlyAnahtar, panelden oluşturulmuş kişisel bir anahtar değil (proje ya da iş ortağı anahtarı). Cihaz modellerini yalnız kişisel anahtarlar kullanabilir.
403model_not_allowedAnahtarınızın model kısıtı bu modele izin vermiyor.
404model_not_foundnode/ sonrasındaki kimlik katalogda yok ya da model adı hatalı yazılmış.
413payload_too_largeMesajlar 256 KB'ı ya da istek gövdesinin tamamı (mesajlar, araçlar ve biçim tanımları) 512 KB'ı aşıyor.
422validation_errorGenel istek doğrulaması başarısız: model ya da messages alanı eksik, messages dizi değil ya da boş. Hatalı alanlar error.fields içinde listelenir.
429too_many_node_jobsCihazlarınızda aynı anda en fazla 4 istek işlenebilir. Retry-After: 5 başlığıyla döner; önceki istekler bitince tekrar deneyin.
502node_errorCihazınız isteği işleyemedi. Node programında modelin durumunu kontrol edip tekrar deneyin.
503node_unavailableBu model için çevrimiçi ve hazır bir cihazınız yok ya da cihazınız isteği süresi içinde almadı (akışsız istekte 30, akışta 60 saniye). Alınmayan istek iptal edilir.
503node_update_requiredModelin hazır olduğu cihazlarınızın hepsinde program sürümü artık desteklenmiyor. Programı indirme sayfasından güncelleyin; ayarlarınız ve modelleriniz korunur.
503node_busySunucunun cihaz isteklerini bekletme kapasitesi o an dolu. Retry-After: 5 başlığıyla döner; birkaç saniye sonra tekrar deneyin.
504node_timeoutCihazınız yanıtı süresi içinde üretemedi. Daha kısa bir mesajla, daha düşük max_tokens ile ya da stream:true ile tekrar deneyin.

Sınırlar

Gizlilik ve Güvenlik

Program Güvenliği

Onysoft AI Gateway Node'u yalnızca paneldeki indirme sayfasından indirin; başka kaynaklardan gelen kopyaları kullanmayın. Program, bilgisayarınıza ve hesabınıza yalnızca işini yapmak için gereken ölçüde erişir:

Programı değiştirmek, kaynak koduna dönüştürmeye çalışmak ya da yeniden paketlemek Kabul Edilebilir Kullanım Politikası ile yasaktır (kanunun emredici olarak izin verdiği hâller saklıdır). Bir güvenlik açığı bulduğunuzu düşünüyorsanız info@onysoft.com adresine bildirin.

Program Güncellemeleri

Program açılışta ve çalışırken düzenli aralıklarla yeni sürüm olup olmadığını denetler; yeni sürüm çıktığında pencerede bildirir ve indirme sayfasını açmayı önerir. Program kendini kendiliğinden güncellemez; güncellemeyi siz indirip kurarsınız. Yeni sürümü eskisinin üzerine kurmanız yeterlidir: ayarlarınız, cihaz bağlantınız ve indirdiğiniz modeller korunur.

system_update

Şu anda yalnızca en son sürüm destekleniyor: önceki sürümler indirilemez ve sunucuya bağlanamaz. Eski sürümdeki bir cihaz paylaşıma açılamaz ve kendi istekleriniz de ona gönderilmez.

Modelin hazır olduğu cihazlarınızın hepsi desteklenmeyen bir sürümdeyse istek 503 node_update_required ile döner. GET /v1/node/models yanıtında böyle bir cihazın satırlarında update_required: true ve model_status: "surum_eski" görünür, ready ise false olur.

Modelleri Başka Bir Diske Kurma

Model dosyaları onlarca GB tutabilir. Sistem diskiniz doluysa modelleri ikinci ya da harici bir diske kurabilirsiniz: programda donanım kartındaki “Boş disk” satırına tıklayın ve listeden diski seçin. Modeller seçtiğiniz diskte OnysoftNode/models klasörüne (dağıtık sürümde OnysoftNodeDagitik/models) kurulur; programın kendisi, ayarları ve günlük dosyası her zaman uygulama klasöründe kalır.

Dağıtık Sürüm: İki Cihazda Tek Model (beta)

Onysoft AI Gateway Node Dağıtık, tek bir bilgisayarın belleğine sığmayan bir modeli (örneğin 8 GB ekran kartına tek başına sığmayan gpt-oss-20b'yi) kendi iki cihazınızda birlikte çalıştıran ayrı bir programdır. Dağıtık programda model seçilmez; cihazı yalnızca hesaplamaya açarsınız (ekran kartı ya da işlemci). Modeli panelde, grubun toplam kapasitesine göre seçip kurarsınız ve modelin katmanları iki cihaz arasında bölüşülür. Grup hazır olunca model, ana cihazın modeli olarak panel sohbetinde ve API'de node/<katalog_kimliği> adıyla kullanılır. Ana program olduğu gibi devam eder; model tek bilgisayarınıza sığıyorsa ana program daha hızlıdır.

hub

Dağıtık program ayrı indirilir: indirme sayfasındaki “Dağıtık sürüm (beta)” bölümüne bakın. Kurulum: (1) iki cihaza da Dağıtık programı kurun ve programın gösterdiği cihaz kodunu bu hesapla onaylayın; (2) programda ekran kartını ya da işlemciyi seçip “Hesaplamaya aç”ı açın; (3) paneldeki Cihaz Grupları sayfasında grubu kurup iki cihazı ekleyin, listeden modeli seçip “Kur ve aç”a basın; (4) her cihazda programın sorduğu onayı verin. Onaydan sonra ana cihaz modelin tamamını, yardımcı cihaz yalnızca kendi katman payını model sunucusundan indirir. Dağıtık program ana programla aynı bilgisayara yan yana kurulabilir; ayarlarını ve model dosyalarını ayrı bir klasörde tutar ve panelde ayrı bir cihaz olarak görünür.

Kısıtlar

Grup Bağlantısının Güvenliği

Ücret

Kendi cihazınızı kullanmak ücretsizdir; bakiyenizden kesinti yapılmaz. İstekler kullanım kaydınızda tutarı 0 olarak görünür, token sayıları ve süre yine kaydedilir.

Sık Sorulan Sorular

Neden ayrı bir uç yok?

n8n, Cursor, LangChain ve OpenAI kütüphaneleri gibi OpenAI uyumlu araçlar sohbet için /v1/chat/completions ucunu bekler. Aynı ucu kullandığımız için bu araçlarda adresi ya da anahtarı değiştirmeniz gerekmez; yalnız model adını değiştirirsiniz. node/ öneki, isteğin katalogdaki bir modele değil sizin cihazınıza gideceğini açıkça belirtir.

Bilgisayarım kapalıysa ne olur?

Çevrimiçi ve modeli hazır bir cihazınız yoksa istek 503 node_unavailable ile döner. Bilgisayarınız az önce kapandıysa sunucu onu 45 saniye boyunca çevrimiçi sayar; bu durumda istek kuyruğa girer ve hata, isteğin alınma süresi dolunca (akışsız istekte 30, akışta 60 saniye) gelir. Bu kuyruk durumunda akışlı istekte hata, akışın içinde bir error parçası olarak gelir. Hazır cihaz hiç yoksa hata, stream:true isteğinde de akış başlamadan normal JSON hata yanıtı (HTTP 503) olarak döner. İstek başka bir cihaza ya da başka bir modele aktarılmaz.

Proje anahtarımla kullanabilir miyim?

Hayır. Cihaz modelleri yalnız panelde API Anahtarları sayfasından oluşturduğunuz kişisel anahtarlarla çalışır; proje ve iş ortağı anahtarları 403 node_owner_only alır.

Başkası benim cihazımı bu yoldan kullanabilir mi?

Hayır. İstek, onu gönderen anahtarın sahibinin cihazlarına gider. Sizin anahtarınızla gönderilen istek yalnız sizin cihazlarınızda, başkasının anahtarıyla gönderilen istek yalnız onun cihazlarında çalışır.

Size uygun modeli bulmanıza yardımcı olayım mı?