arazzo: 1.0.1
info:
title: OpenAI Vector Store File Batch
summary: Create a vector store, attach a batch of files, and poll the batch to completion.
description: >-
Creates a vector store, attaches a batch of already-uploaded file ids in a
single request, and polls the file batch until it reaches a terminal status,
branching on completion. The vector store endpoints require the OpenAI-Beta
header, which is supplied inline on every step. 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: vectorStoresApi
url: ../openapi/openai-vector-stores-api-openapi.yml
type: openapi
workflows:
- workflowId: vector-store-file-batch
summary: Create a vector store and ingest a batch of files, polling to completion.
description: >-
Creates a vector store, submits a batch of file ids for ingestion, and polls
the batch until it reaches a terminal status, returning the file counts.
inputs:
type: object
required:
- apiKey
- storeName
- fileIds
properties:
apiKey:
type: string
description: OpenAI API key used as a Bearer token.
storeName:
type: string
description: A name for the new vector store.
fileIds:
type: array
description: A list of previously uploaded file ids to ingest as a batch.
items:
type: string
steps:
- stepId: createStore
description: Create a new vector store.
operationId: createVectorStore
parameters:
- name: Authorization
in: header
value: "Bearer $inputs.apiKey"
- name: OpenAI-Beta
in: header
value: assistants=v2
requestBody:
contentType: application/json
payload:
name: $inputs.storeName
successCriteria:
- condition: $statusCode == 200
outputs:
storeId: $response.body#/id
- stepId: createBatch
description: Attach the batch of file ids to the vector store.
operationId: createVectorStoreFileBatch
parameters:
- name: Authorization
in: header
value: "Bearer $inputs.apiKey"
- name: OpenAI-Beta
in: header
value: assistants=v2
- name: vector_store_id
in: path
value: $steps.createStore.outputs.storeId
requestBody:
contentType: application/json
payload:
file_ids: $inputs.fileIds
successCriteria:
- condition: $statusCode == 200
outputs:
batchId: $response.body#/id
status: $response.body#/status
- stepId: pollBatch
description: >-
Poll the file batch until it reaches a terminal status, ending when
completed and looping while it is still in progress.
operationId: getVectorStoreFileBatch
parameters:
- name: Authorization
in: header
value: "Bearer $inputs.apiKey"
- name: OpenAI-Beta
in: header
value: assistants=v2
- name: vector_store_id
in: path
value: $steps.createStore.outputs.storeId
- name: batch_id
in: path
value: $steps.createBatch.outputs.batchId
successCriteria:
- condition: $statusCode == 200
outputs:
status: $response.body#/status
fileCounts: $response.body#/file_counts
onSuccess:
- name: batchCompleted
type: end
criteria:
- context: $response.body
condition: $.status == "completed"
type: jsonpath
- name: batchInProgress
type: goto
stepId: pollBatch
criteria:
- context: $response.body
condition: $.status == "in_progress"
type: jsonpath
outputs:
storeId: $steps.createStore.outputs.storeId
batchId: $steps.createBatch.outputs.batchId
fileCounts: $steps.pollBatch.outputs.fileCounts
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.