pub

FastAPI'yi Kullanarak Luma AI'nın API'sini Nasıl Sarmalayıp Kullanırsın: Pratik Bir Rehber

1. Lumalabs ve Dream Machine'a Giriş

Lumalabs, AI ve makine öğrenimi dünyasında ses getiren yenilikçi bir şirket. En çarpıcı özelliklerinden biri de Dream Machine, yani metin veya görüntüleri kullanarak videolar oluşturmanı sağlayan son teknoloji AI. Şimdi, bunun için resmi olmayan bir RESTful API elde ettik ve bunu FastAPI ile nasıl saracağımı göstereceğim. Yani sen bir geliştiriciysen AI video oluşturmayı uygulamana entegre etmek için ya da sadece Luma’nun yeteneklerini denemek istiyorsan, bu rehber tam sana göre.

API Dokümantasyonu: Luma API

2. FastAPI Kurulumu

2.1. FastAPI’yi Yükleme

Öncelikle, FastAPI’yi kurmamız lazım. Eğer henüz yüklemediysen, hemen yükleyebilirsin, çok kolay. Şu komutu çalıştır:

pip install fastapi

Ayrıca, FastAPI uygulamanı çalıştırmak için bir ASGI sunucusuna ihtiyacın var, mesela uvicorn:

pip install uvicorn

2.2. Temel Bir FastAPI Uygulaması Oluşturma

Her şeyin düzgün kurulduğundan emin olmak için çok basit bir FastAPI uygulaması ile başlayalım. main.py adında yeni bir Python dosyası oluştur:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Merhaba, Luma AI!"}

Şimdi, sunucuyu uvicorn ile çalıştır:

uvicorn main:app --reload

Tarayıcını açıp http://127.0.0.1:8000/ adresine git, "Merhaba, Luma AI!" mesajını görmelisin.

3. Luma API’sini Sarmalama

3.1. POST Uç Noktası Oluşturma

Şimdi, Luma API’sini kullanarak video oluşturmak için FastAPI’de bir POST uç noktası oluşturalım. Amaç, iç kullanım için temiz ve basit bir arayüz yapmak.

İşte uç noktasını nasıl ayarlayabileceğin:

import requests
from fastapi import FastAPI, Form

app = FastAPI()

LUMA_API_URL = "https://api.lumaapi.com/api/v1/generation/add"
LUMA_API_TOKEN = "sk-xxx"  # Buranın yerine gerçek tokenını koy

@app.post("/generate-video/")
def generate_video(
    prompt: str = Form(...),
    callback_url: str = Form(...),
    image_url: str = Form(None),
    image_end_url: str = Form(None),
    aspect_ratio: str = Form("16:9")
):
    payload = {
        'arg_prompt': prompt,
        'callback': callback_url,
        'arg_image_url': image_url,
        'arg_image_end_url': image_end_url,
        'arg_aspect_ratio': aspect_ratio
    }
    headers = {
        'Authorization': f'Bearer {LUMA_API_TOKEN}'
    }

    response = requests.post(LUMA_API_URL, headers=headers, data=payload)

    return response.json()

3.2. Uç Noktayı Anlamak

  • Payload Hazırlığı: Gereken verileri topluyoruz, yani prompt, callback URL ve resim URL’leri gibi. Bunu FastAPI’nin Form fonksiyonuyla yapıyoruz. Bu, Luma API’sinin beklediği form-data yapısını oluşturuyor.

  • Yetkilendirme: API’ye güvenli erişim sağlamak için Bearer token’ı başlıklara ekliyoruz.

  • API İsteği Yapma: Sonra, Luma API’sine bir POST isteği yapıyoruz ve yanıtı JSON olarak geri döndürüyoruz.

4. API’nizi Test Etme

4.1. FastAPI’nin Dahili Dokümantasyonunu Kullanma

FastAPI’nin harika bir özelliği, otomatik olarak oluşturulan dokümantasyon. Uygulaman çalışmaya başladıktan sonra, http://127.0.0.1:8000/docs adresine git. Orada güzel, interaktif bir dokümantasyon sayfası göreceksin.

4.2. Test İsteği Yapma

Yeni /generate-video/ uç noktanı, dokümanlardan kolayca test edebilirsin. Form alanlarına bir örnek prompt, callback URL ve isteğe bağlı resim URL’leri yaz, sonra "Execute" butonuna bas ve sonucu gör.

5. Callback’i Yönetme

5.1. Callback Uç Noktasını Kurma

Video oluşturulduktan sonra, Luma'nin API’si senin sağladığın callback URL’ine bir POST isteği gönderecek. Bunu yönetmek için bir uç noktayı ayarlayalım:

from fastapi import Request

@app.post("/api/cb_task/")
async def handle_callback(request: Request):
    callback_data = await request.json()
    # Callback verisi ile bir şeyler yap, mesela video URL’sini bir veritabanına kaydet
    return {"status": "Callback alındı", "data": callback_data}

5.2. Callback Verisini İşleme

Callback işleyicisinde, verileri istediğin gibi işleyebilirsin. Örneğin, video URL'sini bir veritabanına kaydetmek ya da yanıt üzerine başka bir işlem tetiklemek isteyebilirsin.

6. Sonuç Olarak

Tamam, işte FastAPI kullanarak Luma API’sini sardın ve AI destekli video oluşturmayı projelerine kolayca entegre edebiliyorsun. İster büyük bir uygulama üzerinde çalışıyor ol, ister AI ile neler yapabileceğini keşfetmek için buradasan, bu kurulumparmaklarının ucunda güçlü bir araç sunuyor. İyi kodlamalar!