Calismayan_cursorRules_Generator / api_requirements.md
aimevzulari's picture
Upload 19 files
bed5cc5 verified
# 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.