Uygulamaları bağlama
#Azure ve diğer sağlayıcılar
Tanık sağlayıcıyı taklit etmez: bir hedef adres + kimlik türü + istek biçimi üçlüsüyle tanımlanır ve bir sağlayıcı bu üçüyle ifade edilebiliyorsa çalışır. OpenAI ya da Anthropic biçiminde konuşan her servis, yeni kod gerektirmeden bir hedef tanımıyla bağlanır.
#Azure OpenAI
Azure'un adresi ?api-version= sorgusu ister ve kimliği api-key başlığıyla alır; hedef tanımında bunun için ayrı alanlar vardır.
create-target --name azure-we --api-style openai \
--base-url https://<kaynak>.openai.azure.com --region eu-west \
--auth-kind api-key --secret-ref azure \
--azure-api-version 2024-06-01 \
--azure-deployment gpt-4o=prod-gpt4o
İstek /openai/deployments/<deployment>/chat/completions?api-version=… adresine gider. Deployment adı, istenen modelden eşlemeyle bulunur; eşlenmemiş bir model kendi adını deployment adı olarak kullanır (Azure'daki yaygın adlandırma). Sohbet ve embedding uçları desteklenir.
Konsolda: API biçimi "OpenAI", kimlik türü "api-key", Azure alanlarına API sürümü ve deployment eşlemesi.
#OpenAI biçiminde konuşanlar
| Sağlayıcı | Hedef tanımı | Not |
|---|---|---|
| Google Gemini | --api-style openai, --auth-kind bearer, base URL https://generativelanguage.googleapis.com/v1beta/openai | Google'ın OpenAI uyumlu ucu üzerinden. Yerel Gemini API'si desteklenmez. |
| Mistral, DeepSeek, Groq, Together, Fireworks, OpenRouter | --api-style openai, --auth-kind bearer | Sağlayıcının belgelerindeki OpenAI uyumlu adres |
| vLLM, Ollama, LM Studio | --api-style openai, --auth-kind bearer | Kendi sunucunuz. Anahtar gerekmese de bir değişken tanımlamanız gerekir |
| LiteLLM ya da kendi proxy'niz | OpenAI ya da Anthropic biçimi | Aşağıya bakın |
#Araya giren proxy (LiteLLM ve benzerleri)
Zaten bir LLM proxy'niz varsa Tanık onun önüne oturur: uygulama → Tanık → proxy → sağlayıcı. Proxy'niz Tanık için sıradan bir hedeftir; yönlendirme ve maliyet ayarlarınız olduğu gibi çalışır.
Bir fark var: gerçek sağlayıcıyı ve bölgeyi artık proxy'niz seçer, Tanık görmez. Bu durumda hedefi --declared ile işaretleyin ve modelden bölgeye eşlemeyi --map ile verin:
create-target --name litellm --api-style openai \
--base-url https://llm.kurum.internal --region tr-istanbul --declared \
--auth-kind bearer --secret-ref litellm \
--map 'gpt-4o=eu-frankfurt,claude-*=us-east'
Kanıt raporu bu hedefin bölgesini "(beyan)" olarak basar: etiket sizin beyanınızdır, sağlayıcıdan teyit edilmemiştir.
#Birden fazla hedef
Aynı biçimde birden fazla hedef tanımlanabilir; isteğin modeli hangisine gideceğini belirler. --models 'gpt-*,o*' gibi desenler verin; en özel eşleşme kazanır, sonra --default olan, sonra ad sırası. Deseni olmayan hedef geri dönüş hedefidir. Bütün hedefler desenliyse ve hiçbiri eşleşmezse Tanık tahmin etmez, isteği upstream_not_configured ile reddeder.
create-target --list çıktısının sonundaki seçim satırı, her biçimde hangi hedefin kazanacağını gösterir. Orada ⚠ görürseniz kimsenin vermediği bir karar var demektir.
#Desteklenmeyenler
- Yerel Gemini API'si (
generateContent): gövde biçimi ne OpenAI ne Anthropic. Google'ın OpenAI uyumlu ucu bu ihtiyacı karşılar. - AWS Bedrock: SigV4 imzası ister; adres + anahtar ile ifade edilemez.