Hatalar

Bu kılavuzda, Meshy API ile çalışırken bir şeyler ters gittiğinde ne olacağını konuşacağız.


İstek Hataları

Bu hatalar, API isteğiniz reddedildiğinde hemen döndürülür. Ne yanlış gittiğini anlamak için HTTP durum kodunu ve message alanını kontrol edin.

Yanıt Formatı

Hata yanıtı, neyin yanlış gittiğini açıklayan tek bir message alanı içerir:

  • Name
    message
    Type
    string
    Description

    Hatanın kısa bir açıklaması.

Durum Kodları

  • Name
    2xx
    Description

    Bir 2xx durum kodu, başarılı bir yanıtı gösterir.

    • Name
      200 - OK
      Description

      Varsayılan olarak, her şey beklendiği gibi çalıştıysa, 200 durum kodu döndürülecektir.

    • Name
      202 - Accepted
      Description

      İsteğiniz işleme alınmak üzere kabul edildi, ancak işleme tamamlanmadı. Bu, Meshy API'den bağlayıcı olmayan bir yanıttır. Örneğin, yeni bir görev oluşturma isteği 202 durum kodu döndürecektir.

  • Name
    4xx
    Description

    Bir 4xx durum kodu, bir istemci hatasını gösterir.

    • Name
      400 - Bad Request
      Description

      İstek kabul edilemezdi, genellikle zorunlu bir parametrenin eksik olması veya parametrelerden birinin hatalı olması nedeniyle.

    • Name
      401 - Unauthorized
      Description

      Geçerli bir API anahtarı sağlanmadı veya sağlanan API anahtarı Meshy API uç noktasına erişim için yetkilendirilmedi.

    • Name
      402 - Payment Required
      Description

      Sağlanan API anahtarıyla ilişkili hesapta yetersiz bakiye.

    • Name
      403 - Forbidden
      Description

      İstenen kaynağa erişim yasaklandı. Bu, Meshy API'ye doğrudan istemci tarafı JavaScript kodundan erişmeye çalışırsanız meydana gelebilir, çünkü tarayıcılardan Gelen Kaynak Paylaşımı (CORS) isteklerine izin verilmez. Bu tür istekler için sunucu tarafı proxy kullanmayı düşünün. Daha fazla ayrıntı için MDN CORS kılavuzu sayfasına bakın.

    • Name
      404 - Not Found
      Description

      İstenen kaynak mevcut değil. Örneğin, bir görevi kimliğiyle almaya çalıştığınızda ancak geçersiz bir kimlik sağladığınızda, 404 durum kodu alırsınız.

    • Name
      429 - Too Many Requests
      Description

      Meshy API'ye çok hızlı bir şekilde çok fazla istek gönderildi. Ayrıntılar için lütfen Oran Sınırları kılavuzuna bakın.

  • Name
    5xx
    Description

    Bir 5xx durum kodu, bir sunucu hatasını gösterir. Eğer bir tane görürseniz, lütfen daha fazla bilgi için durum sayfamızı kontrol edin ve yardım için Discord üzerinden bizimle iletişime geçin.

Örnek: 400 Bad Request

{
  "message": "Invalid model file extension: .3dm"
}

Görev Hataları

Bu hatalar, bir görev oluşturulduktan ve işlenirken meydana gelir. Hata detayları için görev yanıtındaki task_error nesnesini kontrol edin.

task_error nesnesi aşağıdaki alanları içerir:

  • Name
    type
    Type
    string
    Description

    Hata kategorisi. Başarısız görevlerde her zaman bulunur. Aşağıdaki Hata Türleri bölümüne bakın.

  • Name
    message
    Type
    string
    Description

    Hatanın insan tarafından okunabilir açıklaması. Başarısız görevlerde her zaman bulunur.

  • Name
    code
    Type
    string
    İsteğe bağlı
    Description

    Sorunu tanımlayan belirli bir hata kodu. Ek detaylar mevcut olduğunda bulunur. Aşağıdaki Hata Kodları bölümüne bakın.

  • Name
    doc_url
    Type
    string
    İsteğe bağlı
    Description

    Bu hata kodu için ayrıntılı belgeler ve çözüm rehberliği içeren bir bağlantı. code mevcut olduğunda bulunur.

Detaylı hata

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "status": "FAILED",
  "task_error": {
    "type": "invalid_input",
    "code": "image_too_complex",
    "message": "The uploaded image is too complex for 3D generation.",
    "doc_url": "https://docs.meshy.ai/en/api/errors#image-too-complex"
  }
}

Detaysız hata

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "status": "FAILED",
  "task_error": {
    "type": "server_error",
    "message": "An internal error occurred. Please retry."
  }
}

Hata Türleri

type alanı, hatanın geniş kategorisini belirtir. Tekrar deneme stratejinizi belirlemek için bunu kullanın.

  • Name
    invalid_input
    Description

    Sağladığınız girdiyle ilgili bir sorun var. Ayrıntılar için code ve message alanlarını kontrol edin, sorunu düzeltin ve tekrar deneyin.

  • Name
    timeout
    Description

    İşleme süresi sınırı aşıldı. Bu genellikle geçici bir durumdur. İsteği tekrar deneyin ve eğer sürekli başarısız olursa, girdinizi basitleştirmeyi deneyin.

  • Name
    service_unavailable
    Description

    Hizmet geçici olarak kullanılamıyor. Bir süre bekleyin ve tekrar deneyin.

  • Name
    server_error
    Description

    İşleme sırasında dahili bir hata oluştu. İsteği tekrar deneyin. Sorun devam ederse, görev kimliğinizle destek birimine başvurun.


Hata Kodları

code alanı mevcut olduğunda, belirli ve uygulanabilir bir sorunu tanımlar. Aşağıda her hata kodu için tam referans bulunmaktadır.

image_too_complex

Bu hata, giriş resmi veya prompt'un 3D üretim modelinin işlemesi için geometrik olarak çok karmaşık bir konuyu tanımladığında meydana gelir.

Yaygın örnekler şunları içerir:

  • Küçük nesnelerden oluşan yoğun yığınlar (örneğin, meyve dolu bir kasa, kitap yığını)
  • Karmaşık tekrar eden desenler (örneğin, kafes yapılar, iskeleler, tel örgüler)
  • Karmaşık bina yapıları (örneğin, birçok pencere ve balkona sahip çok katlı binalar)
  • Tek bir konu yerine bir görüntüde birden fazla farklı nesne

Muhtemelen çok karmaşık olan giriş örnekleri:

Karışık meyvelerle dolu bir kasaKarmaşık bir katedral tavanıİskeleli bir inşaat binasıBir petek kafes küresi

Çözüm:

  1. Her resimde tek bir nesne kullanın. Model, tek bir net konuyla en iyi şekilde çalışır. Aynı resimde veya prompt'ta birden fazla ayrı nesne bulundurmayın.
  2. Konunuzu basitleştirin. Detay seviyesini azaltın. Örneğin, onlarca çiçekle dolu bir vazo yerine basit bir vazo.
  3. Sahne düzeyinde prompt'lardan kaçının. Tüm binalar, şehir blokları, mobilyalarla dolu iç mekanlar veya manzaralar modelin kapasitesini aşabilir. Bunun yerine tek bir nesneye odaklanın.
  4. Yoğun tekrar eden yapılardan kaçının. İskeleler, tel örgüler, kafes desenler veya birçok küçük öğeden oluşan yığınlar gibi konular yaygın tetikleyicilerdir.

model_missing_uv

Bu hata, enable_original_uv ayarı true olarak ayarlanmış bir modeli doku için yüklediğinizde, ancak modelin UV koordinatları olmadığında ortaya çıkar. UV koordinatları, bir 2D dokunun modelinizin 3D yüzeyine nasıl sarıldığını tanımlar.

UV Yok vs İyi UV'ler

Çözüm:

Doğru çözüm, enable_original_uv ayarını neden true olarak ayarladığınıza bağlıdır:

  • Modelinizin orijinal UV yerleşimini korumanız gerekiyorsa (örneğin, hassas doku eşlemesi için özel dikiş yerleştirme): modelinizin geçerli UV koordinatlarına sahip olması gerekir. Yüklemeden önce 3D yazılımınızın UV düzenleyicisinde UV'lerin varlığını doğrulayın. STL dosyalarının UV verilerini depolayamayacağını unutmayın, bu nedenle GLB, FBX veya OBJ kullanın.
  • Belirli bir UV kontrolüne ihtiyacınız yoksa (veya emin değilseniz): enable_original_uv'yi atlayın veya false olarak ayarlayın. Sistem, modeliniz için otomatik olarak bir UV yerleşimi oluşturacaktır. Otomatik oluşturulan UV'ler kapsama için optimize edilmiştir, ancak doku dikişlerinin nereye yerleştirileceği üzerinde kontrolünüz olmayacaktır.

model_insufficient_uv

Bu hata, bir modelin UV koordinatlarına sahip olduğu, ancak UV kapsamının kaliteli dokulama için çok küçük olduğu durumlarda meydana gelir. Bu genellikle, uygun bir açılım olmadan yer tutucu veya çökmüş UV'ler üreten 3D araçlardan dışa aktarılan modellerde olur.

Yetersiz UV'ler vs İyi UV'ler

Çözüm:

  • Orijinal UV yerleşiminizi korumanız gerekiyorsa: modelin UV'lerini 3D yazılımınızda yeniden açın. UV adalarının UV alanı boyunca düzgün bir şekilde yayıldığından ve küçük bir alana sıkıştırılmadığından emin olun.
  • Belirli bir UV kontrolüne ihtiyacınız yoksa: enable_original_uv'i atlayın veya false olarak ayarlayın. Sistem otomatik olarak yeni bir UV yerleşimi oluşturacaktır. Dezavantajı, orijinal dikiş yerleşiminizi kaybetmenizdir, ancak otomatik oluşturulan UV'ler dokulama için uygun kapsama sahip olacaktır.

invalid_input

Bu, girdi doğrulamadan geçemediğinde ancak daha spesifik bir kod uygulanmadığında kullanılan yedek hata kodudur. message alanı, hatanın belirli nedenini içerir.

Yaygın nedenler şunlardır:

  • Boş veya bozulmuş model dosyaları
  • Desteklenmeyen dosya formatı varyasyonları (örneğin, ASCII FBX dosyaları, meshopt-sıkıştırılmış GLB)
  • Yüklenen modelde geçerli 3D nesneler bulunmaması (örneğin, dosya yalnızca iskeletler, kameralar veya ışıklar içeriyor)
  • Güvenlik filtrelerinden geçemeyen içerik

Çözüm: Ne yanlış gittiğine dair ayrıntılar için message alanını kontrol edin. Girdi dosyalarınızın ve parametrelerinizin uç noktanın gereksinimlerine uygun olduğundan emin olun.

moderation_blocked

Bu hata, prompt veya referans görsellerinizin AI güvenlik filtreleri tarafından reddedildiğinde meydana gelir. Filtre, hem metin prompt'unu hem de referans görsellerini birlikte değerlendirir.

Çözüm:

  • İma edici veya hassas tanımlamaları kaldırmak için metin prompt'unuzu yeniden ifade edin.
  • Güvenlik filtrelerini tetikleyebilecek içerikler gösteriyorsa referans görsellerini ayarlayın.

timeout

Bu hata, görevinizin işleme süresinin izin verilen sınırı aştığı anlamına gelir. Bu, sistem yükünün yüksek olması veya girdinin zaman sınırı içinde işlenemeyecek kadar karmaşık olması nedeniyle meydana gelebilir.

Çözüm:

  1. İsteği yeniden deneyin. Zaman aşımı genellikle geçicidir ve yeniden deneme başarılı olabilir.
  2. Girdinizi basitleştirin. Yeniden denemeler başarısız olmaya devam ederse, girdiniz çok karmaşık olabilir. Görselinizdeki veya prompt'unuzdaki detay seviyesini azaltmayı deneyin. İşlenmesi daha zor olan girdi türleri hakkında rehberlik için image_too_complex bölümüne bakın.

format_conversion_failed

Bu hata, oluşturulan 3D modelin istenen çıktı formatına dönüştürülemediğinde meydana gelir. Model başarıyla oluşturuldu, ancak dönüştürme adımı başarısız oldu.

Çözüm:

  1. İsteği tekrar deneyin.
  2. Farklı bir çıktı formatı deneyin. Belirli bir format sürekli olarak başarısız oluyorsa, ihtiyaçlarınıza uygun başka bir formata geçin.

En İyi Uygulamalar

  1. Yeniden deneme mantığını uygulayın. timeout ve service_unavailable hataları için üstel geri çekilme yeniden deneme mantığını uygulayın.
  2. Görev kimliklerini kaydedin. Hata ayıklama amacıyla her zaman görev kimliğini kaydedin. Destekle iletişime geçerken bunu dahil edin.
  3. Girdileri doğrulayın. Girdi resimlerinizin ve modellerinizin gönderimden önce format gereksinimlerini karşıladığından emin olun.