Add Vector Store File batches api stubc

This commit is contained in:
Swapna Lekkala 2025-09-30 11:49:09 -07:00
parent 1e25a72ece
commit de84c7bda7
4 changed files with 957 additions and 77 deletions

View file

@ -4741,6 +4741,59 @@
}
}
},
"/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": {
"post": {
"responses": {
"200": {
"description": "A VectorStoreFileBatchObject representing the cancelled file batch.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VectorStoreFileBatchObject"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"VectorIO"
],
"summary": "Cancels a vector store file batch.",
"description": "Cancels a vector store file batch.",
"parameters": [
{
"name": "batch_id",
"in": "path",
"description": "The ID of the file batch to cancel.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "vector_store_id",
"in": "path",
"description": "The ID of the vector store containing the file batch.",
"required": true,
"schema": {
"type": "string"
}
}
]
}
},
"/v1/completions": {
"post": {
"responses": {
@ -4898,6 +4951,60 @@
}
}
},
"/v1/vector_stores/{vector_store_id}/file_batches": {
"post": {
"responses": {
"200": {
"description": "A VectorStoreFileBatchObject representing the created file batch.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VectorStoreFileBatchObject"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"VectorIO"
],
"summary": "Create a vector store file batch.",
"description": "Create a vector store file batch.",
"parameters": [
{
"name": "vector_store_id",
"in": "path",
"description": "The ID of the vector store to create the file batch for.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenaiCreateVectorStoreFileBatchRequest"
}
}
},
"required": true
}
}
},
"/v1/files/{file_id}": {
"get": {
"responses": {
@ -5460,6 +5567,104 @@
}
}
},
"/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": {
"get": {
"responses": {
"200": {
"description": "A VectorStoreFilesListInBatchResponse containing the list of files in the batch.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VectorStoreFilesListInBatchResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"VectorIO"
],
"summary": "Returns a list of vector store files in a batch.",
"description": "Returns a list of vector store files in a batch.",
"parameters": [
{
"name": "batch_id",
"in": "path",
"description": "The ID of the file batch to list files from.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "vector_store_id",
"in": "path",
"description": "The ID of the vector store containing the file batch.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "after",
"in": "query",
"description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "before",
"in": "query",
"description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "filter",
"in": "query",
"description": "Filter by file status. One of in_progress, completed, failed, cancelled.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.",
"required": false,
"schema": {
"type": "integer"
}
},
{
"name": "order",
"in": "query",
"description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.",
"required": false,
"schema": {
"type": "string"
}
}
]
}
},
"/v1/files/{file_id}/content": {
"get": {
"responses": {
@ -5504,6 +5709,59 @@
]
}
},
"/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}": {
"get": {
"responses": {
"200": {
"description": "A VectorStoreFileBatchObject representing the file batch.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VectorStoreFileBatchObject"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"VectorIO"
],
"summary": "Retrieve a vector store file batch.",
"description": "Retrieve a vector store file batch.",
"parameters": [
{
"name": "batch_id",
"in": "path",
"description": "The ID of the file batch to retrieve.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "vector_store_id",
"in": "path",
"description": "The ID of the vector store containing the file batch.",
"required": true,
"schema": {
"type": "string"
}
}
]
}
},
"/v1/vector_stores/{vector_store_id}/files/{file_id}/content": {
"get": {
"responses": {
@ -14710,6 +14968,82 @@
}
]
},
"VectorStoreFileBatchObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the file batch"
},
"object": {
"type": "string",
"default": "vector_store.file_batch",
"description": "Object type identifier, always \"vector_store.file_batch\""
},
"created_at": {
"type": "integer",
"description": "Timestamp when the file batch was created"
},
"vector_store_id": {
"type": "string",
"description": "ID of the vector store containing the file batch"
},
"status": {
"$ref": "#/components/schemas/VectorStoreFileStatus",
"description": "Current processing status of the file batch"
},
"file_counts": {
"$ref": "#/components/schemas/VectorStoreFileCounts",
"description": "File processing status counts for the batch"
}
},
"additionalProperties": false,
"required": [
"id",
"object",
"created_at",
"vector_store_id",
"status",
"file_counts"
],
"title": "VectorStoreFileBatchObject",
"description": "OpenAI Vector Store File Batch object."
},
"VectorStoreFileCounts": {
"type": "object",
"properties": {
"completed": {
"type": "integer",
"description": "Number of files that have been successfully processed"
},
"cancelled": {
"type": "integer",
"description": "Number of files that had their processing cancelled"
},
"failed": {
"type": "integer",
"description": "Number of files that failed to process"
},
"in_progress": {
"type": "integer",
"description": "Number of files currently being processed"
},
"total": {
"type": "integer",
"description": "Total number of files in the vector store"
}
},
"additionalProperties": false,
"required": [
"completed",
"cancelled",
"failed",
"in_progress",
"total"
],
"title": "VectorStoreFileCounts",
"description": "File processing status counts for a vector store."
},
"OpenAIJSONSchema": {
"type": "object",
"properties": {
@ -15541,41 +15875,6 @@
"additionalProperties": false,
"title": "OpenaiCreateVectorStoreRequest"
},
"VectorStoreFileCounts": {
"type": "object",
"properties": {
"completed": {
"type": "integer",
"description": "Number of files that have been successfully processed"
},
"cancelled": {
"type": "integer",
"description": "Number of files that had their processing cancelled"
},
"failed": {
"type": "integer",
"description": "Number of files that failed to process"
},
"in_progress": {
"type": "integer",
"description": "Number of files currently being processed"
},
"total": {
"type": "integer",
"description": "Total number of files in the vector store"
}
},
"additionalProperties": false,
"required": [
"completed",
"cancelled",
"failed",
"in_progress",
"total"
],
"title": "VectorStoreFileCounts",
"description": "File processing status counts for a vector store."
},
"VectorStoreObject": {
"type": "object",
"properties": {
@ -15684,6 +15983,53 @@
"title": "VectorStoreObject",
"description": "OpenAI Vector Store object."
},
"OpenaiCreateVectorStoreFileBatchRequest": {
"type": "object",
"properties": {
"file_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of File IDs that the vector store should use."
},
"attributes": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "array"
},
{
"type": "object"
}
]
},
"description": "(Optional) Key-value attributes to store with the files."
},
"chunking_strategy": {
"$ref": "#/components/schemas/VectorStoreChunkingStrategy",
"description": "(Optional) The chunking strategy used to chunk the file(s). Defaults to auto."
}
},
"additionalProperties": false,
"required": [
"file_ids"
],
"title": "OpenaiCreateVectorStoreFileBatchRequest"
},
"OpenAIFileDeleteResponse": {
"type": "object",
"properties": {
@ -16036,6 +16382,44 @@
"title": "VectorStoreListFilesResponse",
"description": "Response from listing files in a vector store."
},
"VectorStoreFilesListInBatchResponse": {
"type": "object",
"properties": {
"object": {
"type": "string",
"default": "list",
"description": "Object type identifier, always \"list\""
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VectorStoreFileObject"
},
"description": "List of vector store file objects in the batch"
},
"first_id": {
"type": "string",
"description": "(Optional) ID of the first file in the list for pagination"
},
"last_id": {
"type": "string",
"description": "(Optional) ID of the last file in the list for pagination"
},
"has_more": {
"type": "boolean",
"default": false,
"description": "Whether there are more files available beyond this page"
}
},
"additionalProperties": false,
"required": [
"object",
"data",
"has_more"
],
"title": "VectorStoreFilesListInBatchResponse",
"description": "Response from listing files in a vector store file batch."
},
"VectorStoreListResponse": {
"type": "object",
"properties": {

View file

@ -3369,6 +3369,44 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiAttachFileToVectorStoreRequest'
required: true
/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel:
post:
responses:
'200':
description: >-
A VectorStoreFileBatchObject representing the cancelled file batch.
content:
application/json:
schema:
$ref: '#/components/schemas/VectorStoreFileBatchObject'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- VectorIO
summary: Cancels a vector store file batch.
description: Cancels a vector store file batch.
parameters:
- name: batch_id
in: path
description: The ID of the file batch to cancel.
required: true
schema:
type: string
- name: vector_store_id
in: path
description: >-
The ID of the vector store containing the file batch.
required: true
schema:
type: string
/v1/completions:
post:
responses:
@ -3490,6 +3528,44 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiCreateVectorStoreRequest'
required: true
/v1/vector_stores/{vector_store_id}/file_batches:
post:
responses:
'200':
description: >-
A VectorStoreFileBatchObject representing the created file batch.
content:
application/json:
schema:
$ref: '#/components/schemas/VectorStoreFileBatchObject'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- VectorIO
summary: Create a vector store file batch.
description: Create a vector store file batch.
parameters:
- name: vector_store_id
in: path
description: >-
The ID of the vector store to create the file batch for.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OpenaiCreateVectorStoreFileBatchRequest'
required: true
/v1/files/{file_id}:
get:
responses:
@ -3916,6 +3992,87 @@ paths:
- file
- purpose
required: true
/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files:
get:
responses:
'200':
description: >-
A VectorStoreFilesListInBatchResponse containing the list of files in
the batch.
content:
application/json:
schema:
$ref: '#/components/schemas/VectorStoreFilesListInBatchResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- VectorIO
summary: >-
Returns a list of vector store files in a batch.
description: >-
Returns a list of vector store files in a batch.
parameters:
- name: batch_id
in: path
description: >-
The ID of the file batch to list files from.
required: true
schema:
type: string
- name: vector_store_id
in: path
description: >-
The ID of the vector store containing the file batch.
required: true
schema:
type: string
- name: after
in: query
description: >-
A cursor for use in pagination. `after` is an object ID that defines your
place in the list.
required: false
schema:
type: string
- name: before
in: query
description: >-
A cursor for use in pagination. `before` is an object ID that defines
your place in the list.
required: false
schema:
type: string
- name: filter
in: query
description: >-
Filter by file status. One of in_progress, completed, failed, cancelled.
required: false
schema:
type: string
- name: limit
in: query
description: >-
A limit on the number of objects to be returned. Limit can range between
1 and 100, and the default is 20.
required: false
schema:
type: integer
- name: order
in: query
description: >-
Sort order by the `created_at` timestamp of the objects. `asc` for ascending
order and `desc` for descending order.
required: false
schema:
type: string
/v1/files/{file_id}/content:
get:
responses:
@ -3950,6 +4107,44 @@ paths:
required: true
schema:
type: string
/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}:
get:
responses:
'200':
description: >-
A VectorStoreFileBatchObject representing the file batch.
content:
application/json:
schema:
$ref: '#/components/schemas/VectorStoreFileBatchObject'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- VectorIO
summary: Retrieve a vector store file batch.
description: Retrieve a vector store file batch.
parameters:
- name: batch_id
in: path
description: The ID of the file batch to retrieve.
required: true
schema:
type: string
- name: vector_store_id
in: path
description: >-
The ID of the vector store containing the file batch.
required: true
schema:
type: string
/v1/vector_stores/{vector_store_id}/files/{file_id}/content:
get:
responses:
@ -10870,6 +11065,75 @@ components:
const: cancelled
- type: string
const: failed
VectorStoreFileBatchObject:
type: object
properties:
id:
type: string
description: Unique identifier for the file batch
object:
type: string
default: vector_store.file_batch
description: >-
Object type identifier, always "vector_store.file_batch"
created_at:
type: integer
description: >-
Timestamp when the file batch was created
vector_store_id:
type: string
description: >-
ID of the vector store containing the file batch
status:
$ref: '#/components/schemas/VectorStoreFileStatus'
description: >-
Current processing status of the file batch
file_counts:
$ref: '#/components/schemas/VectorStoreFileCounts'
description: >-
File processing status counts for the batch
additionalProperties: false
required:
- id
- object
- created_at
- vector_store_id
- status
- file_counts
title: VectorStoreFileBatchObject
description: OpenAI Vector Store File Batch object.
VectorStoreFileCounts:
type: object
properties:
completed:
type: integer
description: >-
Number of files that have been successfully processed
cancelled:
type: integer
description: >-
Number of files that had their processing cancelled
failed:
type: integer
description: Number of files that failed to process
in_progress:
type: integer
description: >-
Number of files currently being processed
total:
type: integer
description: >-
Total number of files in the vector store
additionalProperties: false
required:
- completed
- cancelled
- failed
- in_progress
- total
title: VectorStoreFileCounts
description: >-
File processing status counts for a vector store.
OpenAIJSONSchema:
type: object
properties:
@ -11432,38 +11696,6 @@ components:
The ID of the provider to use for this vector store.
additionalProperties: false
title: OpenaiCreateVectorStoreRequest
VectorStoreFileCounts:
type: object
properties:
completed:
type: integer
description: >-
Number of files that have been successfully processed
cancelled:
type: integer
description: >-
Number of files that had their processing cancelled
failed:
type: integer
description: Number of files that failed to process
in_progress:
type: integer
description: >-
Number of files currently being processed
total:
type: integer
description: >-
Total number of files in the vector store
additionalProperties: false
required:
- completed
- cancelled
- failed
- in_progress
- total
title: VectorStoreFileCounts
description: >-
File processing status counts for a vector store.
VectorStoreObject:
type: object
properties:
@ -11538,6 +11770,36 @@ components:
- metadata
title: VectorStoreObject
description: OpenAI Vector Store object.
OpenaiCreateVectorStoreFileBatchRequest:
type: object
properties:
file_ids:
type: array
items:
type: string
description: >-
A list of File IDs that the vector store should use.
attributes:
type: object
additionalProperties:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
- type: object
description: >-
(Optional) Key-value attributes to store with the files.
chunking_strategy:
$ref: '#/components/schemas/VectorStoreChunkingStrategy'
description: >-
(Optional) The chunking strategy used to chunk the file(s). Defaults to
auto.
additionalProperties: false
required:
- file_ids
title: OpenaiCreateVectorStoreFileBatchRequest
OpenAIFileDeleteResponse:
type: object
properties:
@ -11841,6 +12103,40 @@ components:
title: VectorStoreListFilesResponse
description: >-
Response from listing files in a vector store.
VectorStoreFilesListInBatchResponse:
type: object
properties:
object:
type: string
default: list
description: Object type identifier, always "list"
data:
type: array
items:
$ref: '#/components/schemas/VectorStoreFileObject'
description: >-
List of vector store file objects in the batch
first_id:
type: string
description: >-
(Optional) ID of the first file in the list for pagination
last_id:
type: string
description: >-
(Optional) ID of the last file in the list for pagination
has_more:
type: boolean
default: false
description: >-
Whether there are more files available beyond this page
additionalProperties: false
required:
- object
- data
- has_more
title: VectorStoreFilesListInBatchResponse
description: >-
Response from listing files in a vector store file batch.
VectorStoreListResponse:
type: object
properties:

View file

@ -318,7 +318,8 @@ class VectorStoreChunkingStrategyStatic(BaseModel):
VectorStoreChunkingStrategy = Annotated[
VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic, Field(discriminator="type")
VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic,
Field(discriminator="type"),
]
register_schema(VectorStoreChunkingStrategy, name="VectorStoreChunkingStrategy")
@ -427,6 +428,44 @@ class VectorStoreFileDeleteResponse(BaseModel):
deleted: bool = True
@json_schema_type
class VectorStoreFileBatchObject(BaseModel):
"""OpenAI Vector Store File Batch object.
:param id: Unique identifier for the file batch
:param object: Object type identifier, always "vector_store.file_batch"
:param created_at: Timestamp when the file batch was created
:param vector_store_id: ID of the vector store containing the file batch
:param status: Current processing status of the file batch
:param file_counts: File processing status counts for the batch
"""
id: str
object: str = "vector_store.file_batch"
created_at: int
vector_store_id: str
status: VectorStoreFileStatus
file_counts: VectorStoreFileCounts
@json_schema_type
class VectorStoreFilesListInBatchResponse(BaseModel):
"""Response from listing files in a vector store file batch.
:param object: Object type identifier, always "list"
:param data: List of vector store file objects in the batch
:param first_id: (Optional) ID of the first file in the list for pagination
:param last_id: (Optional) ID of the last file in the list for pagination
:param has_more: Whether there are more files available beyond this page
"""
object: str = "list"
data: list[VectorStoreFileObject]
first_id: str | None = None
last_id: str | None = None
has_more: bool = False
class VectorDBStore(Protocol):
def get_vector_db(self, vector_db_id: str) -> VectorDB | None: ...
@ -529,7 +568,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}",
method="POST",
level=LLAMA_STACK_API_V1,
)
async def openai_update_vector_store(
self,
vector_store_id: str,
@ -547,7 +590,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}", method="DELETE", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}",
method="DELETE",
level=LLAMA_STACK_API_V1,
)
async def openai_delete_vector_store(
self,
vector_store_id: str,
@ -559,7 +606,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}/search", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}/search",
method="POST",
level=LLAMA_STACK_API_V1,
)
async def openai_search_vector_store(
self,
vector_store_id: str,
@ -568,7 +619,9 @@ class VectorIO(Protocol):
max_num_results: int | None = 10,
ranking_options: SearchRankingOptions | None = None,
rewrite_query: bool | None = False,
search_mode: str | None = "vector", # Using str instead of Literal due to OpenAPI schema generator limitations
search_mode: (
str | None
) = "vector", # Using str instead of Literal due to OpenAPI schema generator limitations
) -> VectorStoreSearchResponsePage:
"""Search for chunks in a vector store.
@ -585,7 +638,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}/files", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}/files",
method="POST",
level=LLAMA_STACK_API_V1,
)
async def openai_attach_file_to_vector_store(
self,
vector_store_id: str,
@ -603,7 +660,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}/files", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}/files",
method="GET",
level=LLAMA_STACK_API_V1,
)
async def openai_list_files_in_vector_store(
self,
vector_store_id: str,
@ -625,7 +686,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}/files/{file_id}",
method="GET",
level=LLAMA_STACK_API_V1,
)
async def openai_retrieve_vector_store_file(
self,
vector_store_id: str,
@ -657,7 +722,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}/files/{file_id}", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}/files/{file_id}",
method="POST",
level=LLAMA_STACK_API_V1,
)
async def openai_update_vector_store_file(
self,
vector_store_id: str,
@ -673,7 +742,11 @@ class VectorIO(Protocol):
"""
...
@webmethod(route="/vector_stores/{vector_store_id}/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1)
@webmethod(
route="/vector_stores/{vector_store_id}/files/{file_id}",
method="DELETE",
level=LLAMA_STACK_API_V1,
)
async def openai_delete_vector_store_file(
self,
vector_store_id: str,
@ -686,3 +759,89 @@ class VectorIO(Protocol):
:returns: A VectorStoreFileDeleteResponse indicating the deletion status.
"""
...
@webmethod(
route="/vector_stores/{vector_store_id}/file_batches",
method="POST",
level=LLAMA_STACK_API_V1,
)
async def openai_create_vector_store_file_batch(
self,
vector_store_id: str,
file_ids: list[str],
attributes: dict[str, Any] | None = None,
chunking_strategy: VectorStoreChunkingStrategy | None = None,
) -> VectorStoreFileBatchObject:
"""Create a vector store file batch.
:param vector_store_id: The ID of the vector store to create the file batch for.
:param file_ids: A list of File IDs that the vector store should use.
:param attributes: (Optional) Key-value attributes to store with the files.
:param chunking_strategy: (Optional) The chunking strategy used to chunk the file(s). Defaults to auto.
:returns: A VectorStoreFileBatchObject representing the created file batch.
"""
...
@webmethod(
route="/vector_stores/{vector_store_id}/file_batches/{batch_id}",
method="GET",
level=LLAMA_STACK_API_V1,
)
async def openai_retrieve_vector_store_file_batch(
self,
batch_id: str,
vector_store_id: str,
) -> VectorStoreFileBatchObject:
"""Retrieve a vector store file batch.
:param batch_id: The ID of the file batch to retrieve.
:param vector_store_id: The ID of the vector store containing the file batch.
:returns: A VectorStoreFileBatchObject representing the file batch.
"""
...
@webmethod(
route="/vector_stores/{vector_store_id}/file_batches/{batch_id}/files",
method="GET",
level=LLAMA_STACK_API_V1,
)
async def openai_list_files_in_vector_store_file_batch(
self,
batch_id: str,
vector_store_id: str,
after: str | None = None,
before: str | None = None,
filter: str | None = None,
limit: int | None = 20,
order: str | None = "desc",
) -> VectorStoreFilesListInBatchResponse:
"""Returns a list of vector store files in a batch.
:param batch_id: The ID of the file batch to list files from.
:param vector_store_id: The ID of the vector store containing the file batch.
:param after: A cursor for use in pagination. `after` is an object ID that defines your place in the list.
:param before: A cursor for use in pagination. `before` is an object ID that defines your place in the list.
:param filter: Filter by file status. One of in_progress, completed, failed, cancelled.
:param limit: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
:param order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.
:returns: A VectorStoreFilesListInBatchResponse containing the list of files in the batch.
"""
...
@webmethod(
route="/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel",
method="POST",
level=LLAMA_STACK_API_V1,
)
async def openai_cancel_vector_store_file_batch(
self,
batch_id: str,
vector_store_id: str,
) -> VectorStoreFileBatchObject:
"""Cancels a vector store file batch.
:param batch_id: The ID of the file batch to cancel.
:param vector_store_id: The ID of the vector store containing the file batch.
:returns: A VectorStoreFileBatchObject representing the cancelled file batch.
"""
...

View file

@ -24,11 +24,13 @@ from llama_stack.apis.vector_io import (
VectorStoreChunkingStrategyStatic,
VectorStoreContent,
VectorStoreDeleteResponse,
VectorStoreFileBatchObject,
VectorStoreFileContentsResponse,
VectorStoreFileCounts,
VectorStoreFileDeleteResponse,
VectorStoreFileLastError,
VectorStoreFileObject,
VectorStoreFilesListInBatchResponse,
VectorStoreFileStatus,
VectorStoreListFilesResponse,
VectorStoreListResponse,
@ -805,3 +807,42 @@ class OpenAIVectorStoreMixin(ABC):
id=file_id,
deleted=True,
)
async def openai_create_vector_store_file_batch(
self,
vector_store_id: str,
file_ids: list[str],
attributes: dict[str, Any] | None = None,
chunking_strategy: VectorStoreChunkingStrategy | None = None,
) -> VectorStoreFileBatchObject:
"""Create a vector store file batch."""
raise NotImplementedError("openai_create_vector_store_file_batch is not implemented yet")
async def openai_list_files_in_vector_store_file_batch(
self,
batch_id: str,
vector_store_id: str,
after: str | None = None,
before: str | None = None,
filter: str | None = None,
limit: int | None = 20,
order: str | None = "desc",
) -> VectorStoreFilesListInBatchResponse:
"""Returns a list of vector store files in a batch."""
raise NotImplementedError("openai_list_files_in_vector_store_file_batch is not implemented yet")
async def openai_retrieve_vector_store_file_batch(
self,
batch_id: str,
vector_store_id: str,
) -> VectorStoreFileBatchObject:
"""Retrieve a vector store file batch."""
raise NotImplementedError("openai_retrieve_vector_store_file_batch is not implemented yet")
async def openai_cancel_vector_store_file_batch(
self,
batch_id: str,
vector_store_id: str,
) -> VectorStoreFileBatchObject:
"""Cancel a vector store file batch."""
raise NotImplementedError("openai_cancel_vector_store_file_batch is not implemented yet")