Livepeer AI Network

Open AI inference gateway exposing text-to-image, image-to-image, image-to-video, live video-to-video, upscale, audio-to-text, text-to-speech, LLM (OpenAI-compatible), image-to-text, and Segment Anything 2 pipelines against a permissionless network of GPU Orchestrators. Two interchangeable endpoints: the community gateway at https://dream-gateway.livepeer.cloud and Livepeer Studio's managed gateway at https://livepeer.studio/api/beta/generate. Fees settle in ETH on Arbitrum One via probabilistic micropayment tickets.

Livepeer AI Network is one of 3 APIs that Livepeer publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 2 JSON Schema definitions.

Tagged areas include AI Inference, Generative AI, Text To Image, Image To Image, and Image To Video. The published artifact set on APIs.io includes API documentation, an API reference, an OpenAPI specification, sample payloads, 2 Naftiko capability specs, and 2 JSON Schemas.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

livepeer-ai-worker-openapi.yml Raw ↑
# !!Auto-generated by 'gen_openapi.py'. DO NOT EDIT!!
openapi: 3.1.0
info:
  title: Livepeer AI Runner
  description: An application to run AI pipelines
  version: 0.0.0
servers:
  - url: https://dream-gateway.livepeer.cloud
    description: Livepeer Cloud Community Gateway
  - url: https://livepeer.studio/api/beta/generate
    description: Livepeer Studio Gateway
paths:
  /text-to-image:
    post:
      tags:
        - generate
      summary: Text To Image
      description: Generate images from text prompts.
      operationId: genTextToImage
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TextToImageParams"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImageResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: textToImage
  /image-to-image:
    post:
      tags:
        - generate
      summary: Image To Image
      description: Apply image transformations to a provided image.
      operationId: genImageToImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_genImageToImage"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImageResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: imageToImage
  /image-to-video:
    post:
      tags:
        - generate
      summary: Image To Video
      description: Generate a video from a provided image.
      operationId: genImageToVideo
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_genImageToVideo"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VideoResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: imageToVideo
  /upscale:
    post:
      tags:
        - generate
      summary: Upscale
      description: Upscale an image by increasing its resolution.
      operationId: genUpscale
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_genUpscale"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImageResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: upscale
  /audio-to-text:
    post:
      tags:
        - generate
      summary: Audio To Text
      description: Transcribe audio files to text.
      operationId: genAudioToText
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_genAudioToText"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TextResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "413":
          description: Request Entity Too Large
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "415":
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: audioToText
  /segment-anything-2:
    post:
      tags:
        - generate
      summary: Segment Anything 2
      description: Segment objects in an image.
      operationId: genSegmentAnything2
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_genSegmentAnything2"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MasksResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: segmentAnything2
  /llm:
    post:
      tags:
        - generate
      summary: LLM
      description: Generate text using a language model.
      operationId: genLLM
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LLMRequest"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LLMResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: llm
  /image-to-text:
    post:
      tags:
        - generate
      summary: Image To Text
      description: Transform image files to text.
      operationId: genImageToText
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_genImageToText"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImageToTextResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "413":
          description: Request Entity Too Large
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: imageToText
  /live-video-to-video:
    post:
      tags:
        - generate
      summary: Live Video To Video
      description:
        Apply transformations to a live video streamed to the returned
        endpoints.
      operationId: genLiveVideoToVideo
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LiveVideoToVideoParams"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LiveVideoToVideoResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: liveVideoToVideo
  /text-to-speech:
    post:
      tags:
        - generate
      summary: Text To Speech
      description:
        Generate a text-to-speech audio file based on the provided text input
        and speaker description.
      operationId: genTextToSpeech
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TextToSpeechParams"
        required: true
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AudioResponse"
                x-speakeasy-name-override: data
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPError"
        "422":
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
      security:
        - HTTPBearer: []
      x-speakeasy-name-override: textToSpeech
  /health:
    get:
      summary: Health
      operationId: health
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HealthCheck"
  /hardware/info:
    get:
      summary: Hardware Info
      operationId: hardware_info
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HardwareInformation"
  /hardware/stats:
    get:
      summary: Hardware Stats
      operationId: hardware_stats
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HardwareStats"
components:
  schemas:
    APIError:
      properties:
        msg:
          type: string
          title: Msg
          description: The error message.
      type: object
      required:
        - msg
      title: APIError
      description: API error response model.
    AudioResponse:
      properties:
        audio:
          allOf:
            - $ref: "#/components/schemas/MediaURL"
          description: The generated audio.
      type: object
      required:
        - audio
      title: AudioResponse
      description: Response model for audio generation.
    Body_genAudioToText:
      properties:
        audio:
          type: string
          format: binary
          title: Audio
          description: Uploaded audio file to be transcribed.
        model_id:
          type: string
          title: Model Id
          description: Hugging Face model ID used for transcription.
          default: ""
        return_timestamps:
          type: string
          title: Return Timestamps
          description:
            "Return timestamps for the transcribed text. Supported values:
            'sentence', 'word', or a string boolean ('true' or 'false'). Default
            is 'true' ('sentence'). 'false' means no timestamps. 'word' means
            word-based timestamps."
          default: "true"
        metadata:
          type: string
          title: Metadata
          description: Additional job information to be passed to the pipeline.
          default: "{}"
      type: object
      required:
        - audio
      title: Body_genAudioToText
    Body_genImageToImage:
      properties:
        prompt:
          type: string
          title: Prompt
          description: Text prompt(s) to guide image generation.
        image:
          type: string
          format: binary
          title: Image
          description: Uploaded image to modify with the pipeline.
        model_id:
          type: string
          title: Model Id
          description: Hugging Face model ID used for image generation.
          default: ""
        loras:
          type: string
          title: Loras
          description:
            'A LoRA (Low-Rank Adaptation) model and its corresponding weight for
            image generation. Example: { "latent-consistency/lcm-lora-sdxl":
            1.0, "nerijs/pixel-art-xl": 1.2}.'
          default: ""
        strength:
          type: number
          title: Strength
          description:
            Degree of transformation applied to the reference image (0 to 1).
          default: 0.8
        guidance_scale:
          type: number
          title: Guidance Scale
          description:
            Encourages model to generate images closely linked to the text
            prompt (higher values may reduce image quality).
          default: 7.5
        image_guidance_scale:
          type: number
          title: Image Guidance Scale
          description:
            Degree to which the generated image is pushed towards the initial
            image.
          default: 1.5
        negative_prompt:
          type: string
          title: Negative Prompt
          description:
            Text prompt(s) to guide what to exclude from image generation.
            Ignored if guidance_scale < 1.
          default: ""
        safety_check:
          type: boolean
          title: Safety Check
          description:
            Perform a safety check to estimate if generated images could be
            offensive or harmful.
          default: true
        seed:
          type: integer
          title: Seed
          description: Seed for random number generation.
        num_inference_steps:
          type: integer
          title: Num Inference Steps
          description:
            Number of denoising steps. More steps usually lead to higher quality
            images but slower inference. Modulated by strength.
          default: 100
        num_images_per_prompt:
          type: integer
          title: Num Images Per Prompt
          description: Number of images to generate per prompt.
          default: 1
      type: object
      required:
        - prompt
        - image
      title: Body_genImageToImage
    Body_genImageToText:
      properties:
        image:
          type: string
          format: binary
          title: Image
          description: Uploaded image to transform with the pipeline.
        prompt:
          type: string
          title: Prompt
          description: Text prompt(s) to guide transformation.
          default: ""
        model_id:
          type: string
          title: Model Id
          description: Hugging Face model ID used for transformation.
          default: ""
      type: object
      required:
        - image
      title: Body_genImageToText
    Body_genImageToVideo:
      properties:
        image:
          type: string
          format: binary
          title: Image
          description: Uploaded image to generate a video from.
        model_id:
          type: string
          title: Model Id
          description: Hugging Face model ID used for video generation.
          default: ""
        height:
          type: integer
          title: Height
          description: The height in pixels of the generated video.
          default: 576
        width:
          type: integer
          title: Width
          description: The width in pixels of the generated video.
          default: 1024
        fps:
          type: integer
          title: Fps
          description: The frames per second of the generated video.
          default: 6
        motion_bucket_id:
          type: integer
          title: Motion Bucket Id
          description:
            Used for conditioning the amount of motion for the generation. The
            higher the number the more motion will be in the video.
          default: 127
        noise_aug_strength:
          type: number
          title: Noise Aug Strength
          description:
            Amount of noise added to the conditioning image. Higher values
            reduce resemblance to the conditioning image and increase motion.
          default: 0.02
        safety_check:
          type: boolean
          title: Safety Check
          description:
            Perform a safety check to estimate if generated images could be
            offensive or harmful.
          default: true
        seed:
          type: integer
          title: Seed
          description: Seed for random number generation.
        num_inference_steps:
          type: integer
          title: Num Inference Steps
          description:
            Number of denoising steps. More steps usually lead to higher quality
            images but slower inference. Modulated by strength.
          default: 25
      type: object
      required:
        - image
      title: Body_genImageToVideo
    Body_genSegmentAnything2:
      properties:
        image:
          type: string
          format: binary
          title: Image
          description: Image to segment.
        model_id:
          type: string
          title: Model Id
          description: Hugging Face model ID used for image generation.
          default: ""
        point_coords:
          type: string
          title: Point Coords
          description:
            Nx2 array of point prompts to the model, where each point is in
            (X,Y) in pixels.
        point_labels:
          type: string
          title: Point Labels
          description:
            Labels for the point prompts, where 1 indicates a foreground point
            and 0 indicates a background point.
        box:
          type: string
          title: Box
          description:
            A length 4 array given as a box prompt to the model, in XYXY format.
        mask_input:
          type: string
          title: Mask Input
          description:
            A low-resolution mask input to the model, typically from a previous
            prediction iteration, with the form 1xHxW (H=W=256 for SAM).
        multimask_output:
          type: boolean
          title: Multimask Output
          description:
            If true, the model will return three masks for ambiguous input
            prompts, often producing better masks than a single prediction.
          default: true
        return_logits:
          type: boolean
          title: Return Logits
          description:
            If true, returns un-thresholded mask logits instead of a binary
            mask.
          default: true
        normalize_coords:
          type: boolean
          title: Normalize Coords
          description:
            If true, the point coordinates will be normalized to the range
            [0,1], with point_coords expected to be with respect to image
            dimensions.
          default: true
      type: object
      required:
        - image
      title: Body_genSegmentAnything2
    Body_genUpscale:
      properties:
        prompt:
          type: string
          title: Prompt
          description: Text prompt(s) to guide upscaled image generation.
        image:
          type: string
          format: binary
          title: Image
          description: Uploaded image to modify with the pipeline.
        model_id:
          type: string
          title: Model Id
          description: Hugging Face model ID used for upscaled image generation.
          default: ""
        safety_check:
          type: boolean
          title: Safety Check
          description:
            Perform a safety check to estimate if generated images could be
            offensive or harmful.
          default: true
        seed:
          type: integer
          title: Seed
          description: Seed for random number generation.
        num_inference_steps:
          type: integer
          title: Num Inference Steps
          description:
            Number of denoising steps. More steps usually lead to higher quality
            images but slower inference. Modulated by strength.
          default: 75
      type: object
      required:
        - prompt
        - image
      title: Body_genUpscale
    Chunk:
      properties:
        timestamp:
          items: {}
          type: array
          title: Timestamp
          description: The timestamp of the chunk.
        text:
          type: string
          title: Text
          description: The text of the chunk.
      type: object
      required:
        - timestamp
        - text
      title: Chunk
      description: A chunk of text with a timestamp.
    GPUComputeInfo:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        memory_total:
          type: integer
          title: Memory Total
        memory_free:
          type: integer
          title: Memory Free
        major:
          type: integer
          title: Major
        minor:
          type: integer
          title: Minor
      type: object
      required:
        - id
        - name
        - memory_total
        - memory_free
        - major
        - minor
      title: GPUComputeInfo
      description: Model for detailed GPU compute information.
    GPUUtilizationInfo:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        memory_total:
          type: integer
          title: Memory Total
        memory_free:
          type: integer
          title: Memory Free
        utilization_compute:
          type: integer
          title: Utilization Compute
        utilization_memory:
          type: integer
          title: Utilization Memory
      type: object
      required:
        - id
        - name
        - memory_total
        - memory_free
        - utilization_compute
        - utilization_memory
      title: GPUUtilizationInfo
      description: Model for GPU utilization statistics.
    HTTPError:
      properties:
        detail:
          allOf:
            - $ref: "#/components/schemas/APIError"
          description: Detailed error information.
      type: object
      required:
        - detail
      title: HTTPError
      description: HTTP error response model.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    HardwareInformation:
      properties:
        pipeline:
          type: string
          title: Pipeline
        model_id:
          type: string
          title: Model Id
        gpu_info:
          additionalProperties:
            $ref: "#/components/schemas/GPUComputeInfo"
          type: object
          title: Gpu Info
      type: object
      required:
        - pipeline
        - model_id
        - gpu_info
      title: HardwareInformation
      description: Response model for GPU information.
    HardwareStats:
      properties:
        pipeline:
          type: string
          title: Pipeline
        model_id:
          type: string
          title: Model Id
        gpu_stats:
          additionalProperties:
            $ref: "#/components/schemas/GPUUtilizationInfo"
          type: object
          title: Gpu Stats
      type: object
      required:
        - pipeline
        - model_id
        - gpu_stats
      title: HardwareStats
      description: Response model for real-time GPU statistics.
    HealthCheck:
      properties:
        status:
          type: string
          enum:
            - OK
            - ERROR
            - IDLE
          title: Status
          description: The health status of the pipeline
      type: object
      required:
        - status
      title: HealthCheck
    ImageResponse:
      properties:
        images:
          items:
            $ref: "#/components/schemas/Media"
          type: array
          title: Images
          description: The generated images.
      type: object
      required:
        - images
      title: ImageResponse
      description: Response model for image generation.
    ImageToTextResponse:
      properties:
        text:
          type: string
          title: Text
          description: The generated text.
      type: object
      required:
        - text
      title: ImageToTextResponse
      description: Response model for text generation.
    LLMChoice:
      properties:
        index:
          type: integer
          title: Index
        finish_reason:
          type: string
          title: Finish Reason
          default: ""
        delta:
          allOf:
            - $ref: "#/components/schemas/LLMMessage"
        message:
          allOf:
            - $ref: "#/components/schemas/LLMMessage"
      type: object
      required:
        - index
      title: LLMChoice
    LLMMessage:
      properties:
        role:
          type: string
          title: Role
        content:
          type: string
          title: Content
      type: object
      required:
        - role
        - content
      title: LLMMessage
    LLMRequest:
      properties:
        messages:
          items:
            $ref: "#/components/schemas/LLMMessage"
          type: array
          title: Messages
        model:
          type: string
          title: Model
          default: ""
        temperature:
          type: number
          title: Temperature
          default: 0.7
        max_tokens:
          type: integer
          title: Max Tokens
          default: 256
        top_p:
          type: number
          title: Top P
          default: 1.0
        top_k:
          type: integer
          title: Top K
          default: -1
        stream:
          type: boolean
          title: Stream
          default: false
      type: object
      required:
        - messages
      title: LLMRequest
    LLMResponse:
      properties:
        id:
          type: string
          title: Id
        model:
          type: string
          title: Model
        created:
          type: integer
          title: Created
        usage:
          $ref: "#/components/schemas/LLMTokenUsage"
        choices:
          items:
            $ref: "#/components/schemas/LLMChoice"
          type: array
          title: Choices
      type: object
      required:
        - id
        - model
        - created
        - usage
        - choices
      title: LLMResponse
    LLMTokenUsage:
      properties:
        prompt_tokens:
          type: integer
          title: Prompt Tokens
        completion_tokens:
          type: integer
       

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/livepeer-com/refs/heads/main/openapi/livepeer-ai-worker-openapi.yml