Eğer GPT, Claude, Gemini, DeepSeek ve Grok ile tek bir yapay zeka uygulaması geliştirmek istiyorsanız, ortak istek yolu için birleşik bir API kullanın ve yönlendirme politikasını uygulamanızın içinde tutun. CometAPI, OpenAI ile uyumlu bir temel URL ve paylaşılan bir model kataloğu sağlar; böylece bir Python servisinde tek bir istemci ile farklı model kimlikleri çağrılabilir. Hangi modelin çalışacağına, hangi araçlara izin verileceğine ve ne zaman güvenli bir geri dönüş (fallback) yapılacağına yine kodunuz karar verir.
Bu eğitim, iki adet salt-okunur iş aracı isteyebilen, bilinmeyen araçları ve hatalı biçimlendirilmiş argümanları çalıştırmadan önce reddeden ve yalnızca seçilmiş geçici hatalardan sonra sözleşme-testinden geçmiş başka bir modele geçen bir Grok 4.7 aracısı (agent) oluşturur. Amaç sihirli bir özerk sistem değildir. Üretimde test edilip işletilebilen, küçük ve denetlenebilir bir döngüdür.
Ne İnşa Ediyorsunuz
Aracının beş açık parçası vardır:
- Bir CometAPI istemcisi. Aşağıdaki kurulumda gösterildiği gibi OpenAI Python SDK’sı CometAPI’nin API temel URL’sini kullanır.
- Birincil model olarak Grok 4.7. Güncel CometAPI model kimliği
grok-4.7. - Bir araç kayıt defteri. Model bir fonksiyon çağrısı önerebilir, ancak yalnızca uygulama kodu izin listesinde olan bir fonksiyonu çalıştırabilir.
- Sınırlandırılmış bir aracı döngüsü. Döngü süresiz çalışmak yerine belirli sayıda model dönüşünden sonra durur.
- Sıralı bir yedekleme politikası. Uyumlu GPT, Claude, Gemini veya DeepSeek model kimlikleri yalnızca yeniden denenebilir model/API hatalarından sonra denenir.
Grok 4.7 fonksiyon çağırmayı destekler ve CometAPI şu anda model için hem /v1/chat/completions hem de /v1/responses yollarını belgeliyor. Bu eğitim, OpenAI uyumlu tools, asistan araç çağrıları ve eşleşen tool sonuç mesajlarının doğrudan kompakt ve denetlenebilir bir Python döngüsüne haritalanması nedeniyle Chat Completions’ı kullanır. Taşıma uyumluluğu, tüm modeller arasında özellik eşdeğerliğini kanıtlamaz; bu nedenle yapılandırılan her yedeklemeyi üretime almadan önce aynı sözleşme testlerinden geçirin.
Çok Turlu Grok 4.7 Aracılarında Akıl Yürütme Durumu
Grok 4.7, varsayılanı high olmak üzere low, medium, high veya xhigh akıl yürütme çabasını kabul eder. xAI’nin Responses API’sinde, her Grok 4.7 yanıtı reasoning.encrypted_content içerir; istemci tarafından yönetilen çok turlu bir döngü, döndürülen akıl yürütme öğelerini bir sonraki istekte değiştirmeden geri iletmelidir. Uzun döngüler ayrıca context compaction kullanabilir: döndürülen sıkıştırma öğesini opak bir durum olarak koruyun ve yeni turları bunun sonuna ekleyin. Bunlar durumsal, sağlayıcıya özgü yanıt alanları olduğundan, üretim bağımlılığı haline getirmeden önce seçtiğiniz CometAPI yolunun bunları uçtan uca döndürdüğünü doğrulayın.
Aracı Mimarisi: Model Önerir, Uygulamanız Karar Verir
Güvenli bir araç-çağırma akışı basittir:
Kullanıcı isteği → model yanıtı → araç çağrısını doğrula → izin verilen aracı çalıştır → araç sonucunu ekle → model yanıtı
Model asla veritabanı kimlik bilgileri almaz ve doğrudan Python çalıştırmaz. “get_order_status fonksiyonunu şu sipariş kimliğiyle çağır” gibi yapılandırılmış bir istek üretir. Uygulamanız araç adını kontrol eder, argümanları ayrıştırır, yetkilendirme ve iş kurallarını uygular, fonksiyonu çalıştırır ve serileştirilmiş sonucu döndürür.
Bu ayrım, model seçiminden daha önemlidir. Bir yedek model aynı araç sınırını devralmalı—daha geniş bir sınırı değil—ve araç sonuçları harici içerik içerdiğinde güvenilmeyen veri olarak ele alınmalıdır.
Python ile Grok 4.7 AI Aracısı Nasıl Kurulur
Adım 1: OpenAI Python SDK’yı CometAPI için yapılandırın
OpenAI SDK’yı kurun:
pip install openai
Yapılandırmayı ortam değişkenleriyle ayarlayın:
export COMETAPI_KEY="your-cometapi-key"
export PRIMARY_MODEL="grok-4.7"
export FALLBACK_MODEL_1="your-compatible-gpt-model-id"
export FALLBACK_MODEL_2="your-compatible-claude-model-id"
export FALLBACK_MODEL_3="your-compatible-gemini-model-id"
export FALLBACK_MODEL_4="your-compatible-deepseek-model-id"
Bu eğitim, açık asistan araç çağrıları ve eşleşen araç-sonuç mesajları kontrol akışını kompakt bir Python örneğinde denetlenebilir kıldığı için Chat Completions’ı kullanır. Daha uzun, durumsal döngüler için yukarıda anlatıldığı gibi Responses API’sini değerlendirin. Ayrıca, eski bir blog yazısından model kimliği kopyalayıp üretime almayın: dağıtım veya başlangıç sırasında CometAPI’nin herkese açık GET /api/models kataloğunu çekin, ardından yetenekleri ve fiyatlamayı model dizininde doğrulayın.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["COMETAPI_KEY"],
base_url="https://api.cometapi.com/v1",
max_retries=0,
timeout=30.0,
)
Açık zaman aşımı ve devre dışı bırakılmış SDK yeniden denemesi bilinçlidir. Uygulama hataları sınıflandıracak ve isteğin tekrarlanıp tekrarlanmayacağına veya bir sonraki modele geçilip geçilmeyeceğine karar verecektir. Gizli yeniden denemeler gecikmeyi, yinelenen yan etkileri ve yedekleme davranışını anlamayı zorlaştırır.
Adım 2: Önce dar kapsamlı, salt-okunur araçlar tanımlayın
Veri okumak yerine değiştirmeyen araçlarla başlayın. Aşağıdaki tanımlar aracının bir siparişi kontrol etmesine ve stok durumuna bakmasına izin verir. Uygulama demo veri döndürür; bunu kendi hizmetlerinize yetkili çağrılarla değiştirin.
import json
TOOLS = [
{
"type": "function",
"function": {
"name": "get_order_status",
"description": "Bir siparişin güncel durumunu oku.",
"parameters": {
"type": "object",
"properties": {
"order_id": {"type": "string"}
},
"required": ["order_id"],
"additionalProperties": False,
},
},
},
{
"type": "function",
"function": {
"name": "check_inventory",
"description": "Tek bir SKU için mevcut stok miktarını oku.",
"parameters": {
"type": "object",
"properties": {
"sku": {"type": "string"}
},
"required": ["sku"],
"additionalProperties": False,
},
},
},
]
def get_order_status(order_id: str) -> dict:
# Bu demoyu, kimlik doğrulamalı, salt-okunur bir servis çağrısıyla değiştirin.
return {"order_id": order_id, "status": "yolda"}
def check_inventory(sku: str) -> dict:
# Bu demoyu, kimlik doğrulamalı, salt-okunur bir servis çağrısıyla değiştirin.
return {"sku": sku, "available_units": 12}
TOOL_REGISTRY = {
"get_order_status": get_order_status,
"check_inventory": check_inventory,
}
Bir JSON şeması isteğin biçimini iyileştirir, ancak yetkilendirme değildir. Argüman uzunluklarını ve biçimlerini doğrulayın, mevcut kullanıcının istenen siparişe veya SKU’ya erişebildiğini teyit edin ve modeli geri döndürmeden önce her araç sonucunun boyutunu sınırlandırın.
Adım 3: Dar kapsamlı bir çok-modelli yedekleme politikası ekleyin
Yedekleme, bozuk istekleri gizlemek için değil, geçici yol (route) hatalarından kurtulmak için kullanılmalıdır. CometAPI’nin resmi yedekleme rehberi; bağlantı hataları, zaman aşımı, HTTP 408, HTTP 429 ve geçici 5xx yanıtları için bir sonraki yapılandırılmış yola geçmeyi önerir. Geçersiz kimlik bilgileri, desteklenmeyen parametreler ve geçersiz istekler anında başarısız olmalıdır.
from openai import APIConnectionError, APIStatusError, APITimeoutError
def configured_models() -> list[str]:
names = [
os.getenv("PRIMARY_MODEL", "grok-4.7"),
os.getenv("FALLBACK_MODEL_1"),
os.getenv("FALLBACK_MODEL_2"),
os.getenv("FALLBACK_MODEL_3"),
os.getenv("FALLBACK_MODEL_4"),
]
return [name for name in names if name]
def is_retryable(error: Exception) -> bool:
if isinstance(error, (APIConnectionError, APITimeoutError)):
return True
if isinstance(error, APIStatusError):
return error.status_code in {408, 429} or error.status_code >= 500
return False
def complete_with_fallback(messages: list[dict], tools: list[dict]):
models = configured_models()
last_error = None
for index, model in enumerate(models):
try:
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tools,
tool_choice="auto",
)
return response, model
except Exception as error:
last_error = error
final_route = index == len(models) - 1
if final_route or not is_retryable(error):
raise
raise RuntimeError("Hiçbir yapılandırılmış model isteği tamamlamadı") from last_error
Model listesi bir kalite sıralaması değil, yapılandırmadır. Bu aracının ihtiyaç duyduğu aynı mesaj rolleri, araç şeması, girdi türü, bağlam gereksinimi ve yanıt davranışını destekleyen yedeklemeler seçin. Seçilen yolu ve her geçişe neden olan hatayı kaydedin.
Adım 4: Sınırlandırılmış Grok 4.7 aracı döngüsünü çalıştırın
Aşağıdaki döngü konuşmayı gönderir, izin listesindeki araç çağrılarını çalıştırır, sonuçları eşleşen tool_call_id ile ekler ve seçilen modelden yanıtı tamamlamasını ister.
def execute_tool_call(tool_call) -> str:
name = tool_call.function.name
if name not in TOOL_REGISTRY:
return json.dumps({"error": f"İzin verilmeyen araç: {name}"})
try:
arguments = json.loads(tool_call.function.arguments)
result = TOOL_REGISTRY[name](**arguments)
return json.dumps(result)
except (json.JSONDecodeError, TypeError, ValueError) as error:
return json.dumps({"error": f"Geçersiz araç argümanları: {error}"})
def run_agent(user_text: str, max_turns: int = 4) -> dict:
messages = [
{
"role": "system",
"content": (
"Bir destek aracısısın. Araçları yalnızca gerektiğinde kullan. "
"Asla sipariş veya stok verisi uydurma."
),
},
{"role": "user", "content": user_text},
]
route_log = []
for turn in range(max_turns):
response, model = complete_with_fallback(messages, TOOLS)
route_log.append({"turn": turn + 1, "model": model})
assistant = response.choices[0].message
messages.append(assistant.model_dump(exclude_none=True))
if not assistant.tool_calls:
return {
"answer": assistant.content,
"routes": route_log,
"usage": response.usage.model_dump() if response.usage else None,
}
for tool_call in assistant.tool_calls:
messages.append(
{
"role": "tool",
"tool_call_id": tool_call.id,
"content": execute_tool_call(tool_call),
}
)
raise RuntimeError("Aracı max_turns sınırına ulaştığı için durduruldu")
result = run_agent("A-104 numaralı sipariş nerede ve BLUE-42 SKU stoğumuzda var mı?")
print(result["answer"])
print(result["routes"])
Kod, tek bir model yanıtında birden çok araç çağrısını destekler; çünkü döndürülen her çağrı için bir sonuç ekler. Eğer bir araç durum değiştiriyorsa—e-posta göndermek, sipariş vermek veya iade yapmak gibi—bir idempotency anahtarı ve insan onayı ekleyin. Bir yan etkinin zaten gerçekleşmiş olabileceği durumlarda zaman aşımından sonra tüm aracı turunu körü körüne yeniden başlatmayın.
GPT, Claude, Gemini ve DeepSeek Aynı Uygulamaya Nasıl Oturur
CometAPI bağlantı katmanı tekrarını azaltabilir: tek bir hesap, ortak yol için OpenAI ile uyumlu tek bir temel URL ve uygulama kodu tarafından seçilen bir model kimliği. Bu, GPT, Claude, Gemini, DeepSeek ve Grok’u tek bir dahili arayüzün arkasında aday yapar.
Bu, modelleri birbirinin yerine geçebilir kılmaz. Yedekleme eklemeden önce şunları doğrulayın:
- geçerli model kimliği CometAPI kataloğunda döndürülüyor;
- yol, gerekli araç şemasını ve mesaj rollerini destekliyor;
- araç çağrısı argümanları ve birden çok çağrı davranışı aracı sözleşmesiyle eşleşiyor;
- bağlam penceresi ve girdi türleri istekle uyumlu;
- yanıt, kullanıcıya ulaşmadan önce doğrulanabiliyor;
- gecikme ve maliyet ürün bütçesi içinde kalıyor.
Sağlayıcıya özgü özellikler yerel bir uç nokta veya ayrı bir adaptör gerektirebilir. Gerekli her yeteneği ortak arayüzden zorlamak yerine bu istisnaları açık tutun.
Grok 4.7 Çok-Modelli Yedekleme, Çok-Aracılı Mimariyle Aynı Şey Değildir
Çok-modelli yedekleme zinciri, bir yol başarısız olduğunda başka bir model seçer. Çok-aracılı sistem ise farklı sorumlulukları ayrı aracılara atar—örneğin, bir planlayıcı, bir araştırmacı ve bir gözden geçiren. Bu iki desen farklı problemleri çözer.
Bu Grok 4.7 aracısını çok-aracılı bir iş akışına genişletirseniz, her çalışana dar bir rol, ayrı bir araç izin listesi, sınırlandırılmış bütçe ve yapılandırılmış bir devir teslim verin. Her aracının her aracı çağırmasına veya sınırsız bir transkripti iletmesine izin vermeyin. Rol ayrımının sonucu iyileştirdiğini kanıtlayan değerlendirme verileri oluşana kadar tek bir aracıyla başlayın.
Grok 4.7 Aracısı için Üretim Korumaları
Çalıştırmadan Önce Doğrulayın
Araç adlarını, argüman şemalarını, kiracı sahipliğini, kullanıcı izinlerini ve hız limitlerini uygulama kodunda kontrol edin. Araç açıklamalarını model için yönlendirme olarak görün, güvenlik kontrolü olarak değil.
Okuma Araçlarını Yazma Araçlarından Ayırın
Salt-okunur araçlar, yetkilendirmeden sonra genellikle otomatik çalıştırılabilir. Yazma araçları ise önemli eylemler için daha güçlü kontroller, idempotency ve onay gerektirmelidir.
Her Döngüyü Sınırlandırın
Maksimum model dönüşü, araç çağrısı, duvar saati süresi, istem boyutu ve belirteç bütçesi ayarlayın. Bir sınır aşıldığında kontrollü bir hata veya eskalasyon yolu döndürün.
Karar İzini Kaydedin
İstenen görev, politika sürümü, seçilen model kimliği, yedekleme nedeni, araç adı, araç gecikmesi, doğrulama sonucu, belirteç kullanımı ve nihai durumu günlükleyin. Sırları veya gereksiz müşteri içeriğini kaydetmeyin.
Varsayımlara Değil, Sözleşme Testlerine Güvenin
Aynı doneleri yapılandırılan her modele karşı çalıştırın. Faydalı asgari bir paket; normal bir yanıt, tek araç çağrısı, birden fazla araç çağrısı, hatalı argümanlar, bilinmeyen bir araç, araç zaman aşımı, birincil modelde 429 ve yedeklemeyi tetiklememesi gereken geçersiz bir API anahtarını kapsar.
Yayına Alma Kontrol Listesi
- Güncel model kimliklerini çekin ve dağıtımdan önce Grok 4.7 yolunu doğrulayın.
- CometAPI anahtarını bir gizli yöneticide saklayın; kaynak koda veya istemlere koymayın.
- Salt-okunur araçlar ve açık JSON şemalarıyla başlayın.
- Her araç çağrısından önce kimlik doğrulama ve kiracı yetkilendirmesi uygulayın.
- Yedeklemeye yalnızca sınıflandırılmış geçici hatalar için izin verin.
- Her yedeklemeyi aynı araç-çağırma sözleşmesine karşı test edin.
- Yazma araçlarını etkinleştirmeden önce idempotency ve onay ekleyin.
- Döngü, gecikme, bağlam ve maliyet sınırlarını ayarlayın.
- Yalnızca API erişilebilirliğini değil, görev başarısını ölçün.
Neden Bu Aracıyı CometAPI Üzerinden Kurmalısınız?
CometAPI burada faydalıdır çünkü ortak entegrasyon küçük kalır. OpenAI Python SDK’sı tek bir temel URL’ye işaret eder, Grok 4.7 model kimliğiyle seçilir ve diğer sağlayıcılardan uyumlu modeller aynı uygulama sahipliğindeki yol politikası arkasına yerleştirilebilir.
Bu, bir ekibin GPT, Claude, Gemini ve DeepSeek’i, sağlayıcıya özgü bağlantı kodunu ürüne saçmadan değerlendirmesine alan tanır. Ayrıca önemli bir sınırı korur: CometAPI erişim sağlar; yetenek kontrolleri, araç yürütme, yedekleme politikası, değerlendirme ve kullanıcıya dönük davranış ise uygulamanıza aittir.
Güncel Grok 4.7 model sayfasını inceleyin, istemciyi CometAPI hızlı başlangıç rehberinden yapılandırın ve üretim yedeklemelerini seçmeden önce güncel model kimliklerini çekin.
SSS
GPT, Claude, Gemini ve DeepSeek içeren bir uygulama için hangi API’yi kullanmalıyım?
Ortak sohbet ve araç-çağırma yolu için, CometAPI gibi OpenAI uyumlu birleşik bir API entegrasyon işini azaltabilir. Model seçimini ve yedekleme politikasını uygulamanızda tutun ve gerekli özelliğin ortak sözleşmeye uymadığı durumlarda sağlayıcıya özgü adaptörler kullanın.
Grok 4.7 Python fonksiyonlarını doğrudan çağırabilir mi?
Grok 4.7 yapılandırılmış fonksiyon-çağırma istekleri döndürebilir. Python uygulamanız isteği ayrıştırır, doğrular, izin listesindeki fonksiyonu çalıştırır ve sonucu modele geri gönderir. Modelin kendisi yerel Python çalıştırmaz.
Her hata farklı bir modeli tetiklemeli mi?
Hayır. Yedeklemeyi seçili bağlantı hataları, zaman aşımları, 408, 429 ve geçici 5xx yanıtları için kullanın. Geçersiz istekler, kimlik doğrulama hataları ve desteklenmeyen parametreler başka bir modele gönderilmek yerine düzeltilmelidir.
Her modelle tek bir araç şeması kullanabilir miyim?
Yalnızca testten sonra. Paylaşılan bir taşıma katmanı, aynı araç davranışını, argüman kalitesini, paralel çağrı davranışını veya şema zorlamasını garanti etmez. Bir modeli zincire ancak aracının sözleşme testlerini geçtiğinde ekleyin.
Çok-modelli bir yedekleme sistemi çok-aracılı bir sistem midir?
Hayır. Yedekleme, bir yol hatasından sonra istek için kullanılan modeli değiştirir. Çok-aracılı mimari, farklı görevleri ayrı aracılarına atar. Bunları ayrı katmanlar ve ayrı testler ile inşa edin.
