Public demo. Data resets daily at 3:00 UTC. Don't store anything sensitive.

v02-smoke-loop-llm

v1.0 active

Smoke test for loop step with an llm body — classifies each item in a list

View instances
Owner
opensop-core
SLA
Trigger
api
Tags
None

Inputs

messages
object · required

Array of { id, text } items to classify

Outputs

classifications
string

Steps

  1. 1

    Source the messages

    source automated
    Inputs
    messages process.inputs.messages
    Outputs
    messages (object)
    script: steps/v02_passthrough_messages.rb
  2. 2

    Classify each message

    classify-each loop
    Outputs
    classifications (object)
Raw definition
---
opensop: '0.2'
process:
  name: v02-smoke-loop-llm
  owner: opensop-core
  steps:
  - id: source
    run: steps/v02_passthrough_messages.rb
    name: Source the messages
    type: automated
    inputs:
    - from: process.inputs.messages
      name: messages
    outputs:
    - name: messages
      type: object
      collection: true
      item_schema:
        id: string
        text: string
    validation: lenient
  - id: classify-each
    body:
    - id: classify
      name: Classify one message
      type: llm
      model: claude-sonnet-4-7
      tools: []
      inputs:
      - from: loop.msg
        name: msg
      prompt: |
        Classify this message as one of: question, task, complaint.
        Return JSON only.
        Message: {{ msg }}
      outputs:
      - name: intent
        type: enum
        values:
        - question
        - task
        - complaint
      - name: confidence
        type: number
      max_retries: 2
      retry_on_incomplete: true
      expected_output_schema:
        intent: enum[question, task, complaint]
        confidence: number
    loop:
      as: msg
      for_each: steps.source.outputs.messages[*]
      aggregate:
        classifications: concat
      max_iterations: 1000
    name: Classify each message
    type: loop
    outputs:
    - name: classifications
      type: object
      collection: true
      item_schema:
        intent: string
        confidence: number
  inputs:
  - name: messages
    type: object
    required: true
    description: Array of { id, text } items to classify
  outputs:
  - from: steps.classify-each.outputs.classifications
    name: classifications
  trigger:
    type: api
  version: '1.0'
  description: Smoke test for loop step with an llm body — classifies each item in
    a list