Hyperbolic · Arazzo Workflow

Hyperbolic Research Summarize And Narrate

Version 1.0.0

Confirm a reasoning model, summarize a topic with it, and narrate the summary.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub AIArtificial IntelligenceComputeDecentralizedDePINGPUImage GenerationInferenceLLMMarketplaceOpen SourceArazzoWorkflows

Provider

hyperbolic-ai

Workflows

research-summarize-narrate
List models, summarize a topic with a chat model, and narrate the summary.
Confirms the catalog, generates a concise spoken-style summary of a topic with the chosen model, and renders that summary as base64 speech audio.
3 steps inputs: apiKey, language, model, speed, topic outputs: audio, duration, summary
1
listCatalog
listModels
List the live inference catalog so the summarization model can be confirmed before any inference credits are spent.
2
summarize
createChatCompletion
Ask the model for a concise, spoken-style summary of the topic in a few sentences.
3
narrate
generateAudio
Convert the summary to speech audio and capture the base64 audio and its duration.

Source API Descriptions

Arazzo Workflow Specification

hyperbolic-ai-research-summarize-narrate-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Hyperbolic Research Summarize And Narrate
  summary: Confirm a reasoning model, summarize a topic with it, and narrate the summary.
  description: >-
    A three-stage briefing pipeline. The workflow lists the live model catalog
    to confirm a reasoning or instruct model is available, asks that model for a
    short spoken-style summary of a topic, then converts the summary into speech
    audio with the text-to-speech endpoint. Each step inlines its request and
    inline Authorization Bearer credential so the flow reads and runs without
    opening the OpenAPI sources.
  version: 1.0.0
sourceDescriptions:
- name: modelsApi
  url: ../openapi/hyperbolic-models-api-openapi.yml
  type: openapi
- name: chatCompletionsApi
  url: ../openapi/hyperbolic-chat-completions-api-openapi.yml
  type: openapi
- name: audioGenerationApi
  url: ../openapi/hyperbolic-audio-generation-api-openapi.yml
  type: openapi
workflows:
- workflowId: research-summarize-narrate
  summary: List models, summarize a topic with a chat model, and narrate the summary.
  description: >-
    Confirms the catalog, generates a concise spoken-style summary of a topic
    with the chosen model, and renders that summary as base64 speech audio.
  inputs:
    type: object
    required:
    - apiKey
    - model
    - topic
    properties:
      apiKey:
        type: string
        description: Hyperbolic API key passed as a Bearer token.
      model:
        type: string
        description: Chat / reasoning model id used to summarize the topic.
      topic:
        type: string
        description: The subject to summarize.
      language:
        type: string
        description: TTS language code for narration.
      speed:
        type: number
        description: Speech speed between 0.5 and 2.0.
  steps:
  - stepId: listCatalog
    description: >-
      List the live inference catalog so the summarization model can be
      confirmed before any inference credits are spent.
    operationId: listModels
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiKey"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      models: $response.body#/data
  - stepId: summarize
    description: >-
      Ask the model for a concise, spoken-style summary of the topic in a few
      sentences.
    operationId: createChatCompletion
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiKey"
    requestBody:
      contentType: application/json
      payload:
        model: $inputs.model
        messages:
        - role: system
          content: >-
            You summarize topics in three or four clear spoken-style sentences
            with no markdown or lists.
        - role: user
          content: $inputs.topic
        max_tokens: 400
        temperature: 0.4
        stream: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      summary: $response.body#/choices/0/message/content
      totalTokens: $response.body#/usage/total_tokens
  - stepId: narrate
    description: >-
      Convert the summary to speech audio and capture the base64 audio and its
      duration.
    operationId: generateAudio
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiKey"
    requestBody:
      contentType: application/json
      payload:
        text: $steps.summarize.outputs.summary
        language: $inputs.language
        speed: $inputs.speed
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      audio: $response.body#/audio
      duration: $response.body#/duration
  outputs:
    summary: $steps.summarize.outputs.summary
    audio: $steps.narrate.outputs.audio
    duration: $steps.narrate.outputs.duration