Tür kataloğu

Özet

  • Tür kataloğu, Pipelogic'in varsayılan olarak sunduğu Named types kaydıdır: Image, AudioFrame, Tensor, BoundingBox, Polygon ve alan sözlüğünün geri kalanı.
  • Katalog türleri geneldir: her workspace aynı kaydı görür. components onlara component.yml içinde adlarıyla başvurur; platform aktarım anında doğrular.
  • Bir katalog girdisini hak etmeyen ad hoc şekiller için, hat üzerindeki anonim record'lar ({x: Double, y: Double}) sorunsuz çalışır. Katalog, paylaşılan sözlüktür, tek sözlük değil.
  • Okuduğunuz sayfa, zihinsel model ve kategori haritasıdır. Her tür başına tam record şeması, her varyant, her wrapper sınıfı için referansı CLI'den getirin: ppl docs get type-api/catalog.

Neden paylaşılan bir katalog

Farklı ekiplerden iki component, Image üzerinde uzlaşır çünkü kayıt, Image'ın tam olarak ne olduğunu belirtir — width, height, bir renk uzayı varyantı ve bir piksel arabelleği içeren bir record. Üretici bir kez kodlar, tüketici bir kez kod çözer ve tür denetleyici, iki ucun uyuşmadığı her hattı reddeder. Paylaşılan katalog olmadan, her ekip kendi Image record'unu icat eder ve bağlantı yalnızca tesadüfen işe yarardı.

Kategori haritası

Katalog, gerçek yapay zeka ürünlerinin taşıdığı veri şekilleri etrafında kümelenir:

KategoriTemsili Named typesAmaç
GörüntülemeImage, DepthImageÇeşitli bit derinliklerinde ve renk uzaylarında kareler.
SesAudioFrameÖrnekleme hızıyla etiketlenmiş float ses.
TensörlerTensor, Embedding, PointMap3D, MetricDepthMap, DensityMap, OpticalFlowŞekille etiketlenmiş N-B diziler; adlandırılmış takma adlar semantik anlam taşır.
GeometriPoint, Rectangle, Ellipse, Polygon, BoundingBox, Landmark, MaskGörüntüleme türleriyle birleştirilebilen 2-B / 3-B ilkeller.
AlgılamaDetectedClass, BoundingBox, LandmarkAşağı akış tüketicilerinin zincirleyebileceği çıkarım çıktıları.
AlanSes altyazıları, RAG record'ları, mesh / 3-B, gözlem / metrikler, …Platformun sunduğu kullanım durumuna özgü sözlükler.

Her kategorinin kendi iç katmanlaması vardır — Image'ın renk uzayı varyantları, Tensor'un iki skaler dtype'ı, DepthImage'ın üç piksel derinliği varyantı vardır — ancak bir component yazarının yalnızca adları ve wrapper'ın açığa çıkardığı şekilleri bilmesi gerekir.

Atomik vs bileşik vs adlandırılmış

  • Atomik — Pipelang dil bilgisinden gelen yerleşik skaler türler: Int32, UInt32, Int64, UInt64, Float, Double, Bool, Char, String, Bytes.
  • Bileşik — dil bilgisi aracılığıyla herhangi bir şeyden oluşturulur: [T] (liste), (A, B) (demet), {x: A, y: B} (record), A | B (birleşim), Name<T> (jenerik).
  • Adlandırılmış — katalogda kayıtlı. Image, AudioFrame, BoundingBox, … kararlı bir ada sahip, components'in başvurabileceği record'lar veya birleşimlerdir.

Katalog, adlandırılmış katmandır. Atomlardan yeni türler oluşturmanızı sağlayan dil bilgisi ayrı olarak belgelenmiştir: bkz. /type-api/type-syntax.

Doğru sözlüğe uzanma

Bir component yazarken:

  • Hat bir skaler taşıdığında bir atomik kullanın (güven eşiği için Double, etiket için String).
  • Alan için bariz biri varsa bir Named type kullanın (kare için Image, algılama için BoundingBox); ekosistemin geri kalanı otomatik olarak takılır.
  • Bariz olan bir liste, demet veya isteğe bağlı olduğunda Named types'tan oluşan bir bileşik kullanın ([BoundingBox], (Image, String), Maybe<Tensor>).
  • Şekil tek seferlik olduğunda bir anonim record ({label: String, score: Double}) kullanın; üç yerde ortaya çıkarsa, bir katalog girdisini hak eder.

Bunun yeri

Named types, Pipelogic backend'lerinin ortak dilidir. Ürettiğiniz her component çıktısı bu adlardan biri üzerinden akar; kabul ettiğiniz her girdi aynı şekilde adlandırılır. Katalog, farklı yazarlar tarafından aylar arayla yazılan iki component'in çeviri tutkalı olmadan birlikte çalışmasının nedenidir.

Tam referans için

Web sitesi modeli ve kategori haritasını kapsar. Tür başına record şemaları, tam varyant tabloları, JSON kodlama ayrıntıları ve Python ile C++ wrapper API'leri için referansı CLI'den getirin:

ppl docs get type-api/catalogppl docs get type-api/type-syntax

İlgili

  • /type-api/types — bir platform kavramı olarak tür sistemi.
  • /type-api/named-types — Named type kataloğunu genişletmeye karşı anonim record kullanmaya ne zaman karar verilir.
  • /type-api/type-syntax — dil bilgisi.
  • /component-api/component-contract — bu türleri nerede bildirirsiniz.

Bu sayfa yardımcı oldu mu?