Entegrasyon rehberleri · 2026-08-29
DeepSeek Harness LLMTR eklentisi: LLM dikişi ve katalog
DeepSeek Harness’a LLMTR rotasını ayrı bir eklenti paketi olarak kurmak: ctx.llm dikişi, uç noktadan gelen model kataloğu, kapsam daraltma, bağlam penceresi düzeltmeleri ve yönlendirme sınırları.
Entegrasyon ana depoda değil: her şey bir eklenti
DeepSeek Harness’ta bir sağlayıcı eklemek, harness deposunda dosya değiştirmek anlamına gelmiyor. Harness sağlayıcıları ctx.llm adı verilen bir dikiş üzerinden alır; bir eklenti bu dikişe kendi rotasını kaydeder ve harness o rotayı diğerlerinden ayırt etmez. LLMTR entegrasyonu da bu yüzden ana depoda değil, knowhycodata/dsh-plugin-llmtr deposunda kendi paketi olarak duruyor.
Eklenti kurulduğunda modeller llmtr adlı sağlayıcı rotası altında görünür. Rota bir kez kaydolduktan sonra seçim yeri her zamanki yerlerdir: oturum başına, ajan başına ve alt ajan başına ayrı ayrı model seçebilirsiniz. Yani entegrasyonun kazandırdığı şey yeni bir ekran değil, var olan seçim noktalarına yeni bir rota.
Bu mimarinin pratik sonucu, güncellemenin harness sürümünden bağımsız olmasıdır. Eklenti kendi sürüm çizgisinde ilerler; harness’ı yükseltmeden rota davranışını değiştirebilir, rotayı kaldırmak istediğinizde de tek satırı çıkarırsınız.
İki kurulum yolu: eklenti komutu ve elle satır
Paket bir paket yaması taşıdığı için eklenti komutu satırı sizin yerinize ekler. Kurulumdan sonra ayarlardaki model bölümünde bir LLMTR kartı belirir; anahtarı oraya yapıştırıp kaydedersiniz. Anahtar kimlik bilgileri dosyasında saklanır, ayarlar dosyasında yalnızca ona yapılan başvuru tutulur. Yani ayar dosyanızı paylaşmak anahtarı paylaşmaz.
Eklenti komutunu kullanmak istemiyorsanız satırı kendi yapılandırma dosyanıza ya da yama katmanınıza elle ekler, anahtarı da saklamak yerine ortam değişkeni olarak dışa aktarırsınız. İki yol da aynı rotayı kaydeder; fark yalnızca anahtarın nerede durduğudur.
Model seçicisine elle bir şey yazmazsınız: liste ağ geçidinin canlı listelemesinden dolar. LLMTR kataloğa sonradan bir model eklediğinde o model, eklentiyi yükseltmeden seçicide görünür.
Eklenti komutuyla kurulum ve komutu kullanmadan satırı elle ekleme
# 1. yol: eklenti komutu satiri kendisi ekler
dsh plugin add dsh-plugin-llmtr
# ardindan: Settings -> Models -> LLMTR karti -> anahtari yapistirip kaydedin
# anahtar $DSH_HOME/.credentials.yaml icinde saklanir
# 2. yol: satiri kendi yapilandirmaniza ekleyin
cat >> cordis.yml <<'YAML'
- insert:
- id: llm-llmtr
name: dsh-plugin-llmtr
YAML
# ve anahtari saklamak yerine ortama koyun
export LLMTR_API_KEY=llmtr-your_key
Katalog uç noktadan gelir, kapsamı siz daraltırsınız
Eklentinin içinde gömülü bir model listesi yok. Rota, kataloğu ağ geçidinden okur ve bir süre yeniden kullanır. Kimlikler ağ geçidinin kendi biçiminde, yani sahip ve model adından oluşan iki parçalı kimliklerdir ve isteğe olduğu gibi geçirilir; eklenti ad çevirisi yapmaz.
Kimliğin ön eki, isteğin nereye gittiğini de söyler. llmtr ile başlayan kimlikler LLMTR’nin Türkiye’deki kendi altyapısında çalışan modellerdir ve seçicide bu bilgiyle etiketlenir. Diğer kimlikler kendi yukarı akış sağlayıcısına yönlendirilir ve o sağlayıcının kendi koşulları altında işlenir; eklenti bunlar için başka bir şey iddia etmez.
İstemlerin ülke dışına çıkmaması gereken bir kurulumda kapsamı daraltmak tek satırlık bir iştir. Kapsam ülke içine alındığında seçici başka hiçbir şey listelemez, dolayısıyla yanlış modelle oturum açılamaz. Aşağıdaki tablo katalog kaynağını belirleyen alanları veriyor; bu alanların tamamı isteğe bağlıdır ve değişiklikler yeniden başlatmadan bir sonraki isteğe ulaşır, akışı süren bir istek ise başladığı değerlerle devam eder.
| Alan | Varsayılan | Neye karar verir |
|---|---|---|
| apiKeyEnv | LLMTR_API_KEY | Anahtarın istek başına çözümleneceği kimlik bilgisi başvurusu |
| baseURL | https://llmtr.com/v1 | İstek hedefi; güvenilir bir başlatma katmanından gelen ortam değişkeni varsayılanı geçersiz kılar |
| catalogScope | chat | Listelenecek küme: sohbet modelleri, yalnızca Türkiye’de barındırılanlar veya tamamı |
| catalogTtlMs | 900000 | Okunan listelemenin ne kadar süre yeniden kullanılacağı |
| models | boş liste | Sabitlenmiş liste; boş değilse canlı listeleme hiç okunmaz |
| headers | boş nesne | Ek istek başlıkları; kimlik doğrulama ve tanıtım başlıkları her zaman öncelikli |
Listelemenin söylemediği şey: bağlam penceresi
Ağ geçidinin listelemesi kimlikleri ve desteklenen işlemleri yayımlar, kapasiteleri yayımlamaz. Eklenti bu yüzden boyutunu bildirmediğiniz her modeli varsayılan bağlam penceresiyle boyutlandırır. Bu kasıtlı bir muhafazakârlıktır: yanlış tarafta hata yapmak, olmayan bir kapasiteyi varsaymaktan iyidir.
Sonuç olarak gerçekten kullandığınız birkaç modeli elle düzeltmeniz gerekir. Düzeltme, canlı listelemenin üzerine model başına uygulanır; listeyi değiştirmez, yalnızca o modelin sayılarını günceller. Çıktı üst sınırını da aynı yerde model başına daraltabilirsiniz.
Kataloğu tamamen sabitlemek isteyen bir kurulum ise filtrelemek yerine listenin yerine geçer. Sabit liste boş olmadığı sürece ağ geçidi listelemesi hiç okunmaz, dolayısıyla kullanıcıların ulaşabileceği model kümesi tam olarak sizin yazdığınız kümedir.
Ayar dosyasında kapsam daraltma, bağlam penceresi düzeltmesi ve sabit liste
llm-llmtr:
# istemlerin ulke disina cikmamasi gereken kurulum
catalogScope: turkey-hosted
# canli listelemenin uzerine model basina duzeltme
modelOverrides:
openai/gpt-5.4:
contextWindow: 400000
llmtr/gemma-4:
contextWindow: 32768
maxTokens: 8192
# ya da listeyi tamamen sabitleyin:
# llm-llmtr:
# models:
# - id: llmtr/gemma-4
# name: Gemma 4
# - id: llmtr/trendyol-asure-12b
Reasoning: çıktı hazır gelir, seviye beyanla açılır
Reasoning çıktısı için yapılandırma gerekmiyor. Adaptör hem ayrı reasoning alanını hem de yanıt içindeki reasoning parçalarını okuduğu için, bir reasoning modelinin düşünme çıktısı yazışmada kendiliğinden görünür.
Seviye seçimi ise bilerek isteğe bağlı bırakılmış. Ağ geçidi istekleri farklı yukarı akışlara dağıtır ve bu yukarı akışların bir kısmı reasoning olmayan modellerde çaba parametresini reddeder. Bu yüzden eklenti hangi çaba kimliklerinin kabul edildiğini sizden ister; beyan ettiğiniz kadarını seçici olarak sunar.
Liste boşken hiçbir seçici gösterilmez ve tele hiçbir çaba parametresi çıkmaz. Beyan edilmemiş bir çaba taşıyan istek ise sessizce düşürülmez; adıyla söylenerek reddedilir. Sessiz düşürme, davranış farkını sonradan aramanıza yol açacağı için tercih edilmemiş.
- Düşünme çıktısını görmek için ayar gerekmez, adaptör iki biçimi de okur
- Çaba seviyesi seçicisi yalnızca siz kabul edilen kimlikleri beyan ettiğinizde belirir
- Beyan edilmemiş çaba taşıyan istek adıyla reddedilir, sessizce yok sayılmaz
- Beyanı yaparken modelinizin gerçekten kabul ettiği kimlikleri yazın; liste tüm rotayı etkiler
Kapsam sınırları, yeniden deneme ve gizlilik başlıkları
Eklenti tek bir işlem türünü yönlendirir: sohbet tamamlama. İstekler akış ve kullanım raporlaması açık şekilde gider. Ağ geçidinin gömme, görüntü, video, yeniden sıralama ve gerçek zamanlı modelleri kapsam tamamına alındığında listelenir ama bu adaptörle yönlendirilemez; varsayılan kapsamın sohbet olmasının nedeni de budur.
Görüntü içeren bir mesaj sessizce düzleştirilmez. Gönderilmeden önce, hangi modelin bunu kabul etmediği söylenerek reddedilir. Yeniden deneme de adaptörde yoktur: çağrı başına tek deneme yapılır ve yeniden deneme kararı harness’ın kendi ilkesine bırakılır, böylece bir başarısızlık adaptörün içinde gizlenmek yerine bir kez görünür.
Gizlilik tarafında eklenti harness’ın standart istemci başlığını, paketi ve sürümünü adlandıran bir istemci başlığını ve anahtarınızı gönderir. Hiçbir başlığa oturum kimliği, istem metni, dosya yolu veya kullanıcı tanımlayıcısı eklenmez. Ağ geçidi tarafında da kullanıcı istemleri ve model yanıt gövdeleri veritabanına kaydedilmez.
| İstek türü | Bu adaptördeki durumu | Sonuç |
|---|---|---|
| Sohbet tamamlama | Yönlendirilir | Akış ve kullanım raporlaması açık olarak gönderilir |
| Gömme, görüntü, video, yeniden sıralama, gerçek zamanlı | Yönlendirilmez | Kapsam tamamına alındığında listelenir, ancak seçilse de sürülemez |
| Görüntü içeren mesaj | Gönderilmeden reddedilir | Hangi modelin kabul etmediği adıyla söylenir |
| Yeniden deneme | Adaptörde yok | Çağrı başına tek deneme; karar harness ilkesine bırakılır |
Depoyu ağ erişimi ve anahtar olmadan yerelde doğrulama
npm install
npm test # 80 birim testi, ag erisimi ve anahtar gerektirmez
npm run typecheck
npm run build
# tests/mock-server.ts ag gecidinin yerine gecer, suite cevrimdisi calisir
Sık sorulan sorular
Entegrasyonu neden DeepSeek Harness deposunda bulamıyorum?
Çünkü orada değil. Harness sağlayıcıları ctx.llm dikişi üzerinden alır ve LLMTR rotası bu dikişe takılan ayrı bir paket olarak knowhycodata/dsh-plugin-llmtr deposunda yayımlanır. Ana depoda değişiklik yapmadan kurulur, kaldırılırken de tek satır çıkarılır.
Model listesini eklenti güncellemesi olmadan güncel tutabilir miyim?
Evet. Seçici ağ geçidinin canlı listelemesinden dolduğu için sonradan eklenen modeller yükseltme yapmadan görünür. Listeyi bilerek sabitlemek isterseniz sabit model listesi alanını doldurun; o alan boş olmadığı sürece canlı listeleme hiç okunmaz.
Türkiye dışına istem göndermeyecek bir kurulum nasıl yapılır?
Katalog kapsamını ülke içi barındırılan modellerle sınırlayın. Seçici başka hiçbir kimliği listelemediği için yanlış modelle oturum açılamaz. Kimliklerinde llmtr ön eki bulunan modeller LLMTR’nin Türkiye’deki altyapısında çalışanlardır; diğerleri kendi yukarı akış sağlayıcısında işlenir.
Bağlam penceresi neden her modelde aynı görünüyor?
Ağ geçidinin listelemesi kimlikleri ve desteklenen işlemleri yayımlar, kapasiteleri yayımlamaz. Eklenti de boyutunu bildirmediğiniz her modeli varsayılan bağlam penceresiyle boyutlandırır. Gerçekten kullandığınız modelleri model başına düzeltme alanıyla düzeltin.