PerfectVector
Yazan Jay

Kuyrukla API üzerinden toplu görsel vektörleştirme

Görselleri kalıcı bir kuyrukla API üzerinden vektörleştirin. Dönüşüm kimliklerini saklayın, hataları işleyin ve tamamlanan dosyaları yeniden göndermeden devam edin.

6 dk okuma
Bu sayfada

Görselleri API üzerinden toplu vektörleştirmek için her kaynak dosyayı kuyruğa alın ve sıradakine geçmeden ilerlemeyi kaydedin. PerfectVector API v1'de toplu işi sizin işleyiciniz yönetir. API her istekte bir görsel alır ve varsayılan olarak hesap başına aynı anda bir canlı dönüşüme izin verir. PerfectVector API sınırları

Kendi görselinizle deneyin
Aracın tamamını açın
Denemesi ücretsiz. Vektörünüzün önizlemesini görmek için bir görsel bırakın, üyelik gerekmez.

Her görsel için bir kuyruk kaydı oluşturun

Her kaynağın değişmeyen bir kopyasını ve ayrı bir çıktı klasörünü hazırlayın. Örnekler tek işleyici, yerel SQLite veritabanı ve tek kareli PNG, JPEG veya WebP dosyaları içeren bir klasör varsayar. Dosyaları kuyruğa eklemeden önce API dosya sınırlarını kontrol edin. İki logo.png dosyasının birbirinin üzerine yazılmasını önlemek için farklı çıktı yolları kullanın.

İlk yükleme denemesinden önce aşağıdaki alanları birlikte kaydedin.

AlanSaklanacak bilgi
KaynakSabit yol veya nesne sürümü ve orijinal baytların özeti.
İstek anahtarıİşlemin tekrarlarını tanıyan idempotency anahtarı. İlk POST denemesinin zamanını kaydedin.
Dönüşüm kimliğiAPI'nin vec_… kimliği. Alır almaz kaydedin.
ÇıktıBenzersiz yerel hedef ve doğrulanmış son kuyruk durumu.
Hata ayrıntılarıVarsa API sorun kodu, istek kimliği veya dönüşüm hatası.

POST göndermeden önce kuyruk kaydını kalıcı olarak yazın. API yüklemeyi kabul eder ancak kimliği almadan bağlantınız kesilirse tekrar kullanabileceğiniz bir anahtarınız olur. PerfectVector, aynı hesapta ve modda ilk istekten itibaren 24 saat boyunca anahtarı tanır. İsteği tekrarlarken aynı görsel baytlarını ve seçenekleri kullanın. PerfectVector idempotency kuralları

Kuyruk iş akışı
Etiketli raster görseller kaydedilmiş bir dönüşüm kaydına ve sonra SVG'ye bağlanıyor. Yeniden başlatma oku kaydedilmiş kaydı gösteriyor.
İndirmeden önce dönüşüm kimliğini kaydedin. Kesintiden sonra bu kimlikle devam edin.

İşleri tek tek gönderin, sorgulayın ve kaydedin

/v1/vectorizations adresine multipart POST gönderin. Görseli image alanına, kayıttaki anahtarı Idempotency-Key başlığına koyun. Kısa bir gönderim isteği için Prefer: respond-async kullanın. Durumu sorgulamadan önce başarılı yanıttaki kimliği kaydedin. 202, dönüşümün beklediğini gösterir. 201 başarılı veya başarısız bir dönüşümü bildirebilir. JSON içindeki durumu okuyun. PerfectVector bekleme ve eşzamansız istekler

İşleyicinin kararları aşağıda. saved gibi kuyruk durumlarını siz adlandırırsınız. API, processing ve succeeded gibi durumlar döndürür.

Diskteki kuyruk kaydıİşleyicinin sonraki adımı
Yeni, anahtar kayıtlıOrijinal baytları yükleyin ve dönen dönüşüm kimliğini kaydedin.
Gönderim belirsiz, kimlik bilinmiyorİzin verilen süre içinde aynı dosyayı kayıtlı anahtarla yeniden gönderin. Süre dolduysa yeni ve ücretli olabilecek dönüşümden önce kaydı incelemeye ayırın.
Dönüşüm kimliği kayıtlıVar olan kimliği sorgulayın. Durum istekleri arasında yaklaşık iki saniye bekleyin ve hız sınırlarına uyun.
Dönüşüm başarılı, dosya eksikSonucu indirin, image/svg+xml türünü kontrol edin, geçici dosyaya yazın ve dosyayı hedef adına taşıyın. Ardından kaydı tamamlandı olarak işaretleyin.
KaydedildiPOST'u atlayın. Çıktı kaybolduysa indirme bağlantısı çalıştığı sürece mevcut sonucu alın.
Reddedildi veya başarısızHTTP sorununu ya da son dönüşüm hatasını kaydedin. Kusurlu girdiyi yeni işlemden önce düzeltin.

POST 429 veya 503 döndürürse Retry-After değerine uyun ve 24 saatlik süre içinde aynı görseli, seçenekleri ve ilk anahtarı kullanın. Sorun too_many_in_flight ise etkin dönüşümün bitmesini de bekleyin. Kimliğiniz varsa tekrar göndermeden önce onu kontrol edin. timeout veya provider_unavailable ile kesinleşmiş failed durumu yeni bir denemede yeni anahtar gerektirir. Sağlayıcı erişilemiyorsa hizmetin düzelmesini bekleyin. İstemci zaman aşımında ilk dönüşümün sonucu belirsizdir. Kimliğini sorgulayın veya süre dolmadan ilk anahtarla isteği tekrarlayın. PerfectVector API hataları

Yeniden başlayan işleyici yeni dönüşüm açmadan durum sorgusunu veya indirmeyi tekrarlayabilir. Sıradaki dosyaya geçmeden önce başarılı SVG'yi indirin ve saklayın. API sonucu dönüşümden 24 saat sonra sona erer. PerfectVector sonuçları ve indirmeler

Aşağıdaki sözde kodu veritabanınıza ve HTTP istemcinize uyarlayın. Deneme, işleyicinin her isteği kaydettiğini ve ikinci dönüşüm kimliğini yazdıktan hemen sonra test için duraklayabildiğini varsayar.

for each queue row in a stable order:
    if the row is rejected or its saved SVG is still on disk:
        continue
    if the row has no conversion ID:
        verify source bytes match the stored digest
        if an earlier POST is uncertain and the replay window expired:
            flag the row for review and continue
        POST with the stored key and original bytes and options
        if the response is a permanent input rejection:
            commit the error and continue
        if the POST times out or the service requests a retry:
            keep the same key, record the retry time and stop this run
        commit the returned conversion ID
        pause here when testing recovery after a commit
    GET status by conversion ID, waiting between pending responses
    if conversion failed:
        commit its error and continue
    download the existing result and check the SVG media type
    write to a temporary file and rename it to the output path
    commit the saved state

Üç dosyayla yeniden başlatmayı sınayın

İki küçük PNG logosu ve bir bozuk PNG kullanın. Kuyruğun reddedilen dosyadan sonra ilerleyip ilerlemediğini görmek için bozuk dosyayı bilerek bırakın. Test anahtarıyla iki geçerli dosya örnek SVG döndürmelidir. Bozuk dosya doğrulamadan geçmemeli ve çıktı klasörüne yazılmamalıdır. Test modu iki geçerli dosya için de aynı SVG'yi döndürür. PerfectVector test modu

  1. İlk dosyanın saved durumuna ulaşmasını bekleyin. İkinci geçerli dosyanın kimliği yazıldıktan sonra, çıktı kaydedilmeden işleyiciyi durdurun.
  2. İşleyiciyi yeniden başlatın. İlk dosyayı atladığını ve ikinci dosyanın sonucunu mevcut kimlikle indirdiğini doğrulayın.
  3. Bozuk dosyanın sorun koduyla hata raporunda bulunduğunu ve onun için SVG yazılmadığını doğrulayın.
  4. İşleyiciyi bir kez daha çalıştırın. Kaydedilen iki dosyanın yerinde kaldığını ve başarılı yüklemelerin yeniden gönderilmediğini kontrol edin.

Yeniden başlatma denemesini API test anahtarıyla yaptık. İşleyici iki örnek SVG kaydetti, bir bozuk girdiyi reddedildi olarak işaretledi ve ikinci başarılı dosyayı mevcut kimlikle tamamladı. Son çalıştırma hiç istek göndermedi. Test dönüşümleri hemen bittiği için bekleyen durumun denetiminde yerel bir test yanıtı kullanın.

Sık sorulan sorular

Tüm dosyaları tek API çağrısında gönderebilir miyim?

PerfectVector API v1 her POST'ta bir görsel kabul eder. Grubu ayrı istekler halinde gönderin. Canlı kullanımda hesabın etkin işlem sınırına uyun ve sıradakini göndermeden önce mevcut dönüşümün bitmesini bekleyin. PerfectVector API sınırları

SVG'nin süresi dolduysa ne yapmalıyım?

Daha önce indirdiyseniz kaydettiğiniz SVG'yi kullanın. Aksi halde dönüşümün durumuna bakıp yeni işlem açıp açmayacağınıza karar verin. Başarılı bir yeni canlı dönüşüm bir kredi daha kullanabilir. PerfectVector sonuçları ve indirmeler

Kaynaklar

  1. PerfectVector — sınırlar — Dosya kontrolleri ve varsayılan eşzamanlı işlem sınırı.
  2. PerfectVector — idempotency — Anahtar kapsamı, tekrar süresi ve aynı girdi koşulu.
  3. PerfectVector — bekleme ve eşzamansız istekler — Eşzamansız gönderim ve durum sorgusu.
  4. PerfectVector — sonuçlar — İndirme, hatalar ve sonuçların geçerlilik süresi.
  5. PerfectVector — test modu — Test anahtarının doğruladığı yükleme ve çıktılar.
  6. PerfectVector — hatalar — Retry-After gecikmeleri, kesinleşen hatalar ve yeni anahtar gereksinimi.

PerfectVector API sayfasından bir test anahtarı alın ve kendi üç dosyanızla deneme yapın. Her başarılı kaydın diskte bir SVG'si olduğunu ve yeniden başlatmada tamamlanmış kayıtların tekrar gönderilmediğini kontrol edin.

Bloga daha fazlası

PerfectVector

Görselinizi
temiz, düzenlenebilir vektör yollarına dönüştürün

Vektörleştirme ve önizleme kontrolü ücretsizdir ve günlük sınırı yoktur.