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.