Calismayan_cursorRules_Generator / api_requirements.md
aimevzulari's picture
Upload 19 files
bed5cc5 verified

A newer version of the Gradio SDK is available: 5.29.1

Upgrade

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üphanesi

  • API 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ğ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.