A newer version of the Gradio SDK is available:
5.29.1
LLM Sağlayıcıları API Gereksinimleri Analizi
Bu doküman, Cursor Rules oluşturucu için gerekli olan LLM (Large Language Model) sağlayıcılarının API gereksinimlerini analiz etmektedir.
1. Gemini API
Temel Özellikler
- Google tarafından sağlanan AI modelleri
- Metin, görüntü, video ve doküman anlama yetenekleri
- Uzun bağlam desteği (milyonlarca token)
- Yapılandırılmış çıktı (JSON) desteği
- Fonksiyon çağırma desteği
API Entegrasyon Gereksinimleri
- Python için
google-genai
kütüphanesi kullanımı - API anahtarı gerektiriyor
- İstek formatı:
from google import genai client = genai.Client(api_key="YOUR_API_KEY") response = client.models.generate_content( model="gemini-2.0-flash", contents="Explain how AI works", )
Desteklenen Modeller
- Gemini 2.5 Pro: Karmaşık düşünme yetenekleri için
- Gemini 2.0 Flash: Çok modlu yetenekler ve gelişmiş özellikler
- Gemini 2.0 Flash-Lite: Hızlı ve maliyet-etkin çok modlu model
2. OpenRouter API
Temel Özellikler
- Yüzlerce AI modelini tek bir endpoint üzerinden erişim sağlar
- Otomatik yedekleme (fallback) mekanizması
- Maliyet-etkin model seçimi
- OpenAI SDK uyumluluğu
- Çeşitli üçüncü taraf SDK'ları ile entegrasyon
API Entegrasyon Gereksinimleri
OpenAI SDK kullanarak entegrasyon:
from openai import OpenAI client = OpenAI( base_url="https://openrouter.ai/api/v1", api_key="<OPENROUTER_API_KEY>", ) completion = client.chat.completions.create( extra_headers={ "HTTP-Referer": "<YOUR_SITE_URL>", # Optional "X-Title": "<YOUR_SITE_NAME>", # Optional }, model="openai/gpt-4o", messages=[ {"role": "user", "content": "What is the meaning of life?"} ] )
Doğrudan API kullanımı:
import requests import json response = requests.post( url="https://openrouter.ai/api/v1/chat/completions", headers={ "Authorization": "Bearer <OPENROUTER_API_KEY>", "HTTP-Referer": "<YOUR_SITE_URL>", # Optional "X-Title": "<YOUR_SITE_NAME>", # Optional }, data=json.dumps({ "model": "openai/gpt-4o", # Optional "messages": [ {"role": "user", "content": "What is the meaning of life?"} ] }) )
Özel Özellikler
- Model yönlendirme
- Sağlayıcı yönlendirme
- Prompt önbelleğe alma
- Yapılandırılmış çıktılar
- Araç çağırma (Tool calling)
- Mesaj dönüşümleri
3. OpenAI API
Temel Özellikler
- GPT modelleri ve diğer AI modellerine erişim
- Metin oluşturma, doğal dil işleme, bilgisayar görüşü
- Senkron ve asenkron istemci desteği
- Streaming yanıtlar (SSE)
- Gerçek zamanlı API (WebSocket bağlantısı üzerinden)
API Entegrasyon Gereksinimleri
Python için
openai
kütüphanesiAPI anahtarı gerektiriyor
Responses API (yeni standart):
import os from openai import OpenAI client = OpenAI( api_key=os.environ.get("OPENAI_API_KEY"), ) response = client.responses.create( model="gpt-4o", instructions="You are a coding assistant that talks like a pirate.", input="How do I check if a Python object is an instance of a class?", )
Chat Completions API (eski standart):
from openai import OpenAI client = OpenAI() completion = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "developer", "content": "Talk like a pirate."}, { "role": "user", "content": "How do I check if a Python object is an instance of a class?", }, ], )
Asenkron Kullanım
AsyncOpenAI
sınıfı ile asenkron istemci desteğiawait
ile API çağrıları
Ortak Noktalar ve Entegrasyon Stratejisi
Ortak Özellikler
- Tüm API'ler metin tabanlı sohbet/tamamlama yetenekleri sunuyor
- Hepsi API anahtarı gerektiriyor
- Hepsi Python kütüphaneleri sağlıyor
- Yapılandırılmış çıktı desteği (JSON)
Farklılıklar
- İstek formatları ve parametreler farklılık gösteriyor
- Model isimlendirme konvansiyonları farklı
- Özel yetenekler ve özellikler her API'de değişiyor
Entegrasyon Stratejisi
- Adaptör Deseni: Her LLM sağlayıcısı için ayrı adaptör sınıfları oluşturma
- Ortak Arayüz: Tüm adaptörlerin uyguladığı ortak bir arayüz tanımlama
- Fabrika Deseni: Kullanıcı seçimine göre doğru adaptörü oluşturan bir fabrika sınıfı
- Konfigürasyon Yönetimi: API anahtarları ve diğer ayarlar için merkezi konfigürasyon
Bu strateji, yeni LLM sağlayıcılarının kolayca eklenebilmesini ve mevcut kodun minimum değişiklikle çalışmaya devam etmesini sağlayacaktır.