File size: 4,924 Bytes
bed5cc5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# 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ı:
```python
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:
```python
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ı:
```python
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üphanesi
- API anahtarı gerektiriyor
- Responses API (yeni standart):
```python
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):
```python
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ği
- `await` ile API çağrıları
## Ortak Noktalar ve Entegrasyon Stratejisi
### Ortak Özellikler
1. Tüm API'ler metin tabanlı sohbet/tamamlama yetenekleri sunuyor
2. Hepsi API anahtarı gerektiriyor
3. Hepsi Python kütüphaneleri sağlıyor
4. Yapılandırılmış çıktı desteği (JSON)
### Farklılıklar
1. İstek formatları ve parametreler farklılık gösteriyor
2. Model isimlendirme konvansiyonları farklı
3. Özel yetenekler ve özellikler her API'de değişiyor
### Entegrasyon Stratejisi
1. **Adaptör Deseni**: Her LLM sağlayıcısı için ayrı adaptör sınıfları oluşturma
2. **Ortak Arayüz**: Tüm adaptörlerin uyguladığı ortak bir arayüz tanımlama
3. **Fabrika Deseni**: Kullanıcı seçimine göre doğru adaptörü oluşturan bir fabrika sınıfı
4. **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.
|