TensorFlow · Arazzo Workflow

TensorFlow Serving Preflight and Classify

Version 1.0.0

Confirm a model is loaded and its signature is known before running classification inference.

1 workflow 1 source API 1 provider
View Spec View on GitHub AIDeep LearningJavaScriptMachine LearningModel ServingNeural NetworksOpen SourcePythonArazzoWorkflows

Provider

tensorflow

Workflows

classify-preflight
Check model status, read the signature, then run classification inference.
Verifies the named model reports an AVAILABLE version, resolves its signature metadata, and submits tf.Example inputs for classification.
3 steps inputs: context, examples, modelName, signatureName outputs: modelSpecVersion, result, servingVersion
1
checkModelStatus
getModelStatus
Confirm the ModelServer has the model loaded and reports a version in the AVAILABLE state before any inference is attempted.
2
readModelMetadata
getModelMetadata
Read the metadata of the latest available version to confirm the model exposes a classification signature and to see the features it expects.
3
runClassification
classifyModel
Submit the examples for classification against the model's latest available version, returning label and score pairs for each example.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: TensorFlow Serving Preflight and Classify
  summary: Confirm a model is loaded and its signature is known before running classification inference.
  description: >-
    Classification in TensorFlow Serving follows PredictionService.Classify
    semantics and takes tf.Example style inputs through the examples array rather
    than the instances array used by predict, so it is a genuinely different
    integration path with a different payload shape and a different response.
    This workflow checks that the model reports an AVAILABLE version, reads its
    metadata to confirm the classification signature, and then submits the
    examples for scoring, returning label and score pairs per example. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: tensorflowServingApi
  url: ../openapi/tensorflow-serving-openapi.yml
  type: openapi
workflows:
- workflowId: classify-preflight
  summary: Check model status, read the signature, then run classification inference.
  description: >-
    Verifies the named model reports an AVAILABLE version, resolves its signature
    metadata, and submits tf.Example inputs for classification.
  inputs:
    type: object
    required:
    - modelName
    - examples
    properties:
      modelName:
        type: string
        description: The name the model was registered under in the ModelServer.
      signatureName:
        type: string
        description: >-
          Optional classification signature to target. When omitted the
          ModelServer uses the model's default serving signature.
      context:
        type: object
        description: >-
          Optional context features shared across every supplied example, merged
          into each example by the ModelServer.
      examples:
        type: array
        description: The tf.Example style input records to classify, one result returned per example.
        items:
          type: object
  steps:
  - stepId: checkModelStatus
    description: >-
      Confirm the ModelServer has the model loaded and reports a version in the
      AVAILABLE state before any inference is attempted.
    operationId: getModelStatus
    parameters:
    - name: model_name
      in: path
      value: $inputs.modelName
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.model_version_status[0].state == 'AVAILABLE'
      type: jsonpath
    outputs:
      servingState: $response.body#/model_version_status/0/state
      servingVersion: $response.body#/model_version_status/0/version
      errorMessage: $response.body#/model_version_status/0/status/error_message
  - stepId: readModelMetadata
    description: >-
      Read the metadata of the latest available version to confirm the model
      exposes a classification signature and to see the features it expects.
    operationId: getModelMetadata
    parameters:
    - name: model_name
      in: path
      value: $inputs.modelName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      modelSpecName: $response.body#/model_spec/name
      modelSpecVersion: $response.body#/model_spec/version
      signatureMetadata: $response.body#/metadata
  - stepId: runClassification
    description: >-
      Submit the examples for classification against the model's latest
      available version, returning label and score pairs for each example.
    operationId: classifyModel
    parameters:
    - name: model_name
      in: path
      value: $inputs.modelName
    requestBody:
      contentType: application/json
      payload:
        signature_name: $inputs.signatureName
        context: $inputs.context
        examples: $inputs.examples
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      result: $response.body#/result
      topResult: $response.body#/result/0
  outputs:
    servingVersion: $steps.checkModelStatus.outputs.servingVersion
    modelSpecVersion: $steps.readModelMetadata.outputs.modelSpecVersion
    result: $steps.runClassification.outputs.result