pie 0.2.0

Pie: A Programmable LLM Serving System
Documentation
interface image {

    use inferlet:core/common.{queue, pointer, blob, blob-result};

    // Embeds an image blob into model-compatible embeddings
    embed-image: func(
        queue: borrow<queue>,         // Queue to execute the embedding operation
        emb-ptrs: list<pointer>,     // Output object IDs where image embeddings will be stored
        image-blob: list<u8>,         // Raw image data (e.g. JPEG/PNG bytes)
        position-offset: u32          // Positional offset in the embedding space
    );

    // Computes the number of embeddings required for an image of given dimensions
    calculate-embed-size: func(
        queue: borrow<queue>,         // Queue for executing the computation
        image-width: u32,             // Width of the input image in pixels
        image-height: u32             // Height of the input image in pixels
    ) -> u32;                         // Returns required embedding count (e.g. for allocation)

}