Entegrasyon rehberleri · 2026-08-29
Open SEO’nun SAM ajanını LLMTR üzerinden çalıştırma rehberi
Kendi sunucunuzda çalışan Open SEO kurulumunda varsayılan sağlayıcının yanına ikinci bir OpenAI uyumlu gateway eklemeyi, LLM_API_KEY önceliğini, ortam dosyalarını ve içerik üretimi iş yükünde model seçiminin maliyet mekanizmasını anlatıyoruz.
Varsayılan sağlayıcının yerine değil, yanına
Open SEO açık kaynak bir SEO analiz platformudur. İçindeki ajan özellikleri, özellikle SAM adlı uygulama içi SEO ajanı ve ilk kurulum sohbeti, isteğe bağlıdır: anahtar tanımlı değilse kurulum kapısı görünür, platformun geri kalanı çalışmaya devam eder.
Değişiklik knowhycodata/open-seo deposunda feat/openai-compatible-llm-provider dalında duruyor ve mevcut sağlayıcıyı kaldırmıyor. Yaptığı şey ikinci bir yol açmak: sohbet tamamlama API’sini konuşan herhangi bir uç nokta artık aynı ajanları besleyebiliyor. Bu dal Open SEO’nun kendi sürümüne alınmadı.
Ayrımın önemi kurulum senaryosundan geliyor. Kendi sunucusunda çalıştıran bir ekip, analiz verisini kendi tarafında tutmayı seçmiş demektir; model çağrısının hangi kapıdan çıktığına da aynı gerekçeyle karar vermek ister. İkinci yol tam olarak bu kararı mümkün kılıyor, mevcut kurulumları bozmadan.
Hangi anahtar tanımlıysa hangi yol seçilir
Seçim tek bir fonksiyonda çözülüyor ve kuralı kısa: gateway anahtarı tanımlıysa o kazanır, değilse varsayılan sağlayıcının anahtarına bakılır, o da yoksa sonuç boş döner ve arayüz kurulum kapısını gösterir. Boş sonuç bir hata değil, beklenen bir durumdur.
Gateway anahtarının öncelikli olması bilinçli bir tercih. Böylece geçiş yapan bir kurulum eski gizli değeri önce silmek zorunda kalmıyor; yeni anahtarı ekleyip yeniden başlatmak yeterli oluyor. Geri dönmek istediğinizde de tek yapmanız gereken yeni anahtarı kaldırmak.
Aşağıdaki tablo ortamda ne tanımlıysa hangi sonucun çıktığını gösteriyor. Her iki yolun varsayılan modeli aynı: minimax/minimax-m3. Bu kimlik katalogda canlıdır ve sohbet tamamlama ucundan çağrılır.
| Ortamda tanımlı olan | Seçilen yol | Ortaya çıkan yapılandırma |
|---|---|---|
| Hiçbiri | Yok | Kurulum kapısı görünür, platformun geri kalanı çalışır |
| Yalnız varsayılan sağlayıcı anahtarı | openrouter | Model minimax/minimax-m3 |
| Varsayılan anahtar ve model geçersiz kılma | openrouter | Yazdığınız model kimliği kullanılır |
| Yalnız LLM_API_KEY | openai-compatible | Taban URL https://llmtr.com/v1, model minimax/minimax-m3 |
| LLM_API_KEY, LLM_BASE_URL, LLM_MODEL | openai-compatible | Belirttiğiniz uç nokta ve model |
| İkisi birden | openai-compatible | LLM_API_KEY kazanır, eski gizli değer silinmeden geçilir |
Kendi sunucunuzda hangi dosyaya ne yazılır
Üç ortam örneği dosyası da aynı üçlüyü taşıyor: geliştirme, önizleme ve üretim. Dağıtım betiği tarafında ayrım daha keskin; anahtar gizli değer olarak, taban URL ve model kimliği ise düz değişken olarak tanımlanıyor. Bu ayrım, model kimliğini değiştirmek için gizli değer yönetimine girmeniz gerekmediği anlamına geliyor.
Cloudflare üzerine dağıtan kurulumlarda anahtar komut satırından yazılır. Yardım sayfasındaki hazır komut hâlâ varsayılan sağlayıcının değişken adını gösteriyor; gateway yolunu kullanıyorsanız aynı komutta adı LLM_API_KEY olarak yazın. Yardım sayfasının kendisi bu dalda yeniden adlandırıldı ve iki seçeneği yan yana anlatıyor.
Değerleri yazdıktan sonra Open SEO’yu yeniden başlatmak gerekir; kurulum kapısı yalnızca yeniden başlatma sonrası anahtarı görür.
Ortam değerleri ve Cloudflare dağıtımında gizli değer yazma
# .env
LLM_API_KEY=llmtr-your_key
LLM_BASE_URL=https://llmtr.com/v1
LLM_MODEL=minimax/minimax-m3
# Cloudflare uzerine dagitan kurulumlarda anahtar gizli deger olarak yazilir
npx wrangler secret put LLM_API_KEY
Sağlayıcı kodda tek yerde çözülüyor
Dal, eski sağlayıcı dosyasını kaldırıp yerine tek bir modül koyuyor ve iki ajan da oradan besleniyor: ilk kurulum sohbeti ile SAM. Ajanların kendi dosyalarında model kurma mantığı kalmıyor, yalnızca çözümlenmiş sağlayıcıyı alıp modeli inşa ediyorlar.
SAM’in model kancası her turda senkron çalıştığı için ayrı bir senkron çözümleme yolu var; ilk kurulum sohbeti ise değerleri asenkron okuyabildiği için diğerini kullanıyor. İkisi de aynı kuralı uyguluyor, yani iki ajanın farklı sağlayıcıya düşmesi mümkün değil.
Gateway yolunda istemci sade kurulur: taban URL, anahtar ve akışta token sayımlarını isteyen bayrak. Bunun dışında hiçbir sağlayıcıya özgü seçenek gönderilmez, çünkü o seçenekler taşınabilir değildir.
Sağlayıcı çözümlemesinin gateway dalı ve kurulan istemci
const DEFAULT_CHAT_AGENT_MODEL = "minimax/minimax-m3";
const DEFAULT_LLM_BASE_URL = "https://llmtr.com/v1";
if (gatewayKey) {
return {
kind: "openai-compatible",
apiKey: gatewayKey,
baseUrl: read("LLM_BASE_URL") ?? DEFAULT_LLM_BASE_URL,
modelId: read("LLM_MODEL") ?? DEFAULT_CHAT_AGENT_MODEL,
};
}
// Istemci sade kurulur: saglayiciya ozgu secenek gonderilmez.
createOpenAICompatible({
name: "llm-gateway",
baseURL: provider.baseUrl,
apiKey: provider.apiKey,
includeUsage: true,
}).chatModel(provider.modelId);
İki yolun taşımadıkları
Varsayılan yol, isteğe kendi sağlayıcısına özgü birkaç ayar iliştiriyor: yanıtın gerçek maliyetini geri getiren kullanım muhasebesi, hangi alt sağlayıcıya gidileceğini belirleyen sıralama, veri saklamayan uçlarla sınırlayan kısıt ve akıl yürütme kanalı. Bunların hiçbiri OpenAI uyumlu API’nin parçası değil.
Gateway yolunda istek bu yüzden düz sohbet tamamlama olarak kalıyor. Yönlendirme ve veri saklama davranışı artık uç noktanın kendi özelliği; akıl yürütme çıktısı da yalnızca uç nokta ayrı bir akıl yürütme alanı yayımlıyorsa ayrı kanaldan geliyor.
En görünür sonuç muhasebede. Maliyet alanı OpenAI uyumlu API’de yok, dolayısıyla bu yoldaki kurulumlar Open SEO içinde sıfır harcama ölçüyor. Üretim ortam örneği bunu açıkça yazıyor. Harcama takibi kaybolmuyor, yer değiştiriyor: gateway’in kendi panosuna.
- Kullanım muhasebesi, alt sağlayıcı sıralaması ve veri saklama kısıtı bu yola taşınmaz.
- Akıl yürütme çıktısı yalnızca uç nokta ayrı bir alan yayımlarsa ayrı kanaldan gelir.
- Open SEO içindeki harcama sayacı bu yolda sıfır kalır, bu beklenen davranıştır.
- Harcamayı gateway panosundan izlersiniz; ölçüm kaybolmaz, taşınır.
İçerik üretimi iş yükünde model seçimi
SAM araştırmasını araçlar üzerinden yürütür, bu yüzden seçtiğiniz modelin araç çağrısı yapabilmesi zorunludur. Model listesindeki desteklenen parametre alanında araç girdileri yoksa o kimlik bu iş için uygun değildir; liste anahtarsız okunabildiği için bunu anahtar oluşturmadan önce kontrol edebilirsiniz.
Model kimliği bir ortam değeri olduğu için değiştirmek kod değişikliği gerektirmez. İçerik üretimi ve analiz turları uzun bağlamlarla ve çok adımlı araç kullanımıyla çalışır; tüketimi belirleyen şey tur sayısı ile modelin adım başına ürettiği token miktarıdır. Ücretlendirme token bazlıdır ve kredi bakiyesinden düşer.
LLMTR’de platform marjı yalnızca kredi yüklemede uygulanır ve yüzde 8’dir; model fiyatlarına marj eklenmez. Pratik anlamı şu: model değiştirerek yaptığınız tasarruf doğrudan tüketime yansır, araya ek bir katman girmez. Aynı sebeple, taban URL’yi kendi vLLM ya da Ollama sunucunuza çevirmek de aynı mekanizmayla çalışır; kurulum, sağlayıcı adı değil uç nokta adresi meselesidir.
- Model kimliği ortam değeriyle değişir, kod değişikliği gerekmez.
- Araç çağrısı yapamayan bir model SAM için uygun değildir.
- Her iki yol da aynı saglayici/model biçimini kullandığı için geçiş anahtar değişiminden ibarettir.
- Taban URL kendi vLLM veya Ollama sunucunuzu da gösterebilir.
Sık sorulan sorular
İki anahtar da tanımlıysa hangisi kullanılır?
LLM_API_KEY kullanılır. Bu kural, geçiş yapan bir kurulumun eski gizli değeri önce silmek zorunda kalmaması için konuldu. Geri dönmek istediğinizde LLM_API_KEY değerini kaldırmanız yeterlidir.
Harcama neden Open SEO panelinde sıfır görünüyor?
Maliyet ölçümü varsayılan sağlayıcının kullanım muhasebesine dayanıyor ve o alan OpenAI uyumlu API’nin parçası değil. Bu yoldaki yanıtlarda maliyet alanı gelmediği için sayaç sıfır kalır. Harcamayı gateway’in kendi panosundan izlersiniz; üretim ortam örneği bu durumu ayrıca not ediyor.
Kendi vLLM veya Ollama sunucumu bağlayabilir miyim?
Evet. Taban URL değeri OpenAI sohbet tamamlama API’sini konuşan herhangi bir adresi gösterebilir; dalın testlerinde yerel bir uç ve yerel bir model kimliği bu şekilde örnekleniyor. Tek şart aynı kalır: seçtiğiniz modelin araç çağrısı yapabilmesi gerekir.
Ajan özelliklerini hiç açmadan Open SEO kullanabilir miyim?
Evet. Anahtar tanımlı değilken kurulum kapısı görünür ve platformun geri kalanı çalışmaya devam eder. Kapı yalnızca anahtarın gerçekten eksik olduğu doğrulandığında gösterilir, kontrol sürerken sohbet ekranı bloklanmaz.