syntax = "proto3"; package model.v1alpha; // Google API import "google/api/field_behavior.proto"; // BoundingBox represents a frame in an image that can be drawn when detecting // patterns in objects. message BoundingBox { // Top Y-axis. float top = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Left X-axis. float left = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Width. float width = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Height. float height = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } // PromptImage is an image input for model inference. message PromptImage { // Image could be either a URL or base64 encoded string. oneof type { // Image URL. string prompt_image_url = 1; // Base64-encoded image. string prompt_image_base64 = 2; } } // ImageContent holds an image with some details in plain text. message ImageContent { // Image as URL or base64 code. // // NOTE: the `image_url` name comes from a convention from OpenAI, it doesn't // determine the format of the image. PromptImage image_url = 1; // Additional information. optional string detail = 2; } // MessageContent is a message in a chat history message, used in text // generation models. message MessageContent { // Content type. string type = 1; // Text message content. oneof content { // Image content. // // NOTE: the `image_url` name comes from a convention from OpenAI, it doesn't // determine the format of the image. ImageContent image_url = 2; // Text content. string text = 3; } } // Message is used in chat history in text generation models. message Message { // The Role of a message, e.g. `system`, `user`, etc. Defines the way the model answers questions. string role = 1; // Message content. repeated MessageContent content = 2; } // Permission defines how a pipeline can be used. message Permission { // Defines whether the pipeline can be modified. bool can_edit = 1; // Defines whether the pipeline can be executed. bool can_trigger = 2; }