- 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!