Cross-Provider Workflow

NVIDIA NIM Vision Caption to Notion Page

Version 1.0.0

Caption an image with NVIDIA NIM vision, then save the caption to Notion.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

nvidia-nim notion

Workflows

caption-and-store
Caption an image with NVIDIA NIM vision and store it in Notion.
Sends an image URL to NVIDIA NIM vision chat completions for a caption, captures the caption text, and creates a Notion page holding the caption.
2 steps inputs: databaseId, imageUrl, model outputs: caption, pageId
1
caption-image
$sourceDescriptions.nvidiaNimApi.createVisionChatCompletion
Ask NVIDIA NIM vision to caption the supplied image.
2
store-caption
$sourceDescriptions.notionApi.createPage
Create a Notion page holding the generated caption.

Source API Descriptions

Arazzo Workflow Specification

ai-nvidia-vision-to-notion-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: NVIDIA NIM Vision Caption to Notion Page
  summary: Caption an image with NVIDIA NIM vision, then save the caption to Notion.
  description: >-
    A cross-provider AI enrichment chain that sends an image to NVIDIA NIM's
    vision chat completions endpoint for captioning and stores the generated
    caption as a Notion page. Demonstrates a multimodal AI step feeding a
    knowledge base across two providers in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: nvidiaNimApi
    url: https://raw.githubusercontent.com/api-evangelist/nvidia-nim/refs/heads/main/openapi/nvidia-nim-vision-api-openapi.yml
    type: openapi
  - name: notionApi
    url: https://raw.githubusercontent.com/api-evangelist/notion/refs/heads/main/openapi/notion-openapi.yml
    type: openapi
workflows:
  - workflowId: caption-and-store
    summary: Caption an image with NVIDIA NIM vision and store it in Notion.
    description: >-
      Sends an image URL to NVIDIA NIM vision chat completions for a caption,
      captures the caption text, and creates a Notion page holding the caption.
    inputs:
      type: object
      properties:
        imageUrl:
          type: string
        model:
          type: string
        databaseId:
          type: string
    steps:
      - stepId: caption-image
        description: Ask NVIDIA NIM vision to caption the supplied image.
        operationId: $sourceDescriptions.nvidiaNimApi.createVisionChatCompletion
        requestBody:
          contentType: application/json
          payload:
            model: $inputs.model
            messages:
              - role: user
                content:
                  - type: text
                    text: "Describe this image in one sentence."
                  - type: image_url
                    image_url:
                      url: $inputs.imageUrl
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          caption: $response.body#/choices/0/message/content
      - stepId: store-caption
        description: Create a Notion page holding the generated caption.
        operationId: $sourceDescriptions.notionApi.createPage
        requestBody:
          contentType: application/json
          payload:
            parent:
              database_id: $inputs.databaseId
            properties:
              Name:
                title:
                  - text:
                      content: $steps.caption-image.outputs.caption
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          pageId: $response.body#/id
    outputs:
      caption: $steps.caption-image.outputs.caption
      pageId: $steps.store-caption.outputs.pageId