diff --git a/client-sdks/stainless/openapi.yml b/client-sdks/stainless/openapi.yml
index 06e361debc..0f38cd5a04 100644
--- a/client-sdks/stainless/openapi.yml
+++ b/client-sdks/stainless/openapi.yml
@@ -2981,18 +2981,12 @@ paths:
required: false
schema:
anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
+ - enum:
- in_progress
- - type: string
- enum:
+ - completed
- cancelled
- - type: string
- enum:
- failed
+ type: string
- type: 'null'
description: Filter by file status.
title: Filter
@@ -10335,26 +10329,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListResponse
description: Response from listing vector stores.
VectorStoreObject:
@@ -10365,14 +10360,15 @@ components:
object:
type: string
title: Object
- default: vector_store
+ enum:
+ - vector_store
created_at:
type: integer
title: Created At
name:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Name
+ default: ''
usage_bytes:
type: integer
title: Usage Bytes
@@ -10381,13 +10377,17 @@ components:
$ref: '#/components/schemas/VectorStoreFileCounts'
status:
type: string
+ enum:
+ - expired
+ - in_progress
+ - completed
title: Status
- default: completed
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
expires_at:
anyOf:
- type: integer
@@ -10397,13 +10397,15 @@ components:
- type: integer
- type: 'null'
metadata:
- additionalProperties: true
- type: object
- title: Metadata
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
required:
- id
- created_at
- file_counts
+ - status
title: VectorStoreObject
description: OpenAI Vector Store object.
VectorStoreChunkingStrategy:
@@ -10463,6 +10465,10 @@ components:
anyOf:
- type: string
- type: 'null'
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
file_ids:
anyOf:
- items:
@@ -10471,9 +10477,10 @@ components:
- type: 'null'
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- oneOf:
@@ -10508,13 +10515,14 @@ components:
object:
type: string
title: Object
- default: vector_store.deleted
+ enum:
+ - vector_store.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreDeleteResponse
description: Response from deleting a vector store.
OpenAICreateVectorStoreFileBatchRequestWithExtraBody:
@@ -10524,10 +10532,28 @@ components:
type: string
type: array
title: File Ids
+ files:
+ anyOf:
+ - items:
+ $ref: '#/components/schemas/VectorStoreFileBatchFileEntry'
+ type: array
+ - type: 'null'
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
chunking_strategy:
anyOf:
@@ -10548,8 +10574,6 @@ components:
- type: 'null'
title: Chunking Strategy
additionalProperties: true
- required:
- - file_ids
title: OpenAICreateVectorStoreFileBatchRequestWithExtraBody
description: Request to create a vector store file batch with extra_body support.
VectorStoreFileBatchObject:
@@ -10560,7 +10584,8 @@ components:
object:
type: string
title: Object
- default: vector_store.file_batch
+ enum:
+ - vector_store.file_batch
created_at:
type: integer
title: Created At
@@ -10568,20 +10593,13 @@ components:
type: string
title: Vector Store Id
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
file_counts:
$ref: '#/components/schemas/VectorStoreFileCounts'
required:
@@ -10593,31 +10611,21 @@ components:
title: VectorStoreFileBatchObject
description: OpenAI Vector Store File Batch object.
VectorStoreFileStatus:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ type: string
VectorStoreFileLastError:
properties:
code:
- anyOf:
- - type: string
- enum:
- - server_error
- - type: string
- enum:
- - rate_limit_exceeded
- title: string
+ type: string
+ enum:
+ - server_error
+ - unsupported_file
+ - invalid_file
+ title: Code
message:
type: string
title: Message
@@ -10634,23 +10642,25 @@ components:
object:
type: string
title: Object
- default: vector_store.file
+ enum:
+ - vector_store.file
attributes:
- additionalProperties:
- anyOf:
- - type: string
- maxLength: 512
- - type: number
- - type: boolean
- title: string | number | boolean
- propertyNames:
- type: string
- maxLength: 64
- type: object
- maxProperties: 16
- title: Attributes
- description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
- x-oaiTypeLabel: map
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
chunking_strategy:
oneOf:
- $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
@@ -10676,20 +10686,13 @@ components:
- type: 'null'
title: VectorStoreFileLastError
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
usage_bytes:
type: integer
title: Usage Bytes
@@ -10710,26 +10713,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreFilesListInBatchResponse
description: Response from listing files in a vector store file batch.
VectorStoreListFilesResponse:
@@ -10737,26 +10741,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListFilesResponse
description: Response from listing files in a vector store.
VectorStoreFileDeleteResponse:
@@ -10767,13 +10772,14 @@ components:
object:
type: string
title: Object
- default: vector_store.file.deleted
+ enum:
+ - vector_store.file.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreFileDeleteResponse
description: Response from deleting a vector store file.
VectorStoreContent:
@@ -10823,13 +10829,13 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
- type: 'null'
required:
- data
+ - has_more
title: VectorStoreFileContentResponse
description: Represents the parsed content of a vector store file.
VectorStoreSearchResponse:
@@ -10870,7 +10876,8 @@ components:
object:
type: string
title: Object
- default: vector_store.search_results.page
+ enum:
+ - vector_store.search_results.page
search_query:
items:
type: string
@@ -10884,7 +10891,6 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
@@ -10892,6 +10898,7 @@ components:
required:
- search_query
- data
+ - has_more
title: VectorStoreSearchResponsePage
description: Paginated response from searching a vector store.
VersionInfo:
@@ -12507,8 +12514,20 @@ components:
description: The ID of the file to attach.
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
description: Attributes to associate with the file.
chunking_strategy:
@@ -13169,9 +13188,10 @@ components:
- type: 'null'
description: Filters to apply to the search.
max_num_results:
- anyOf:
- - type: integer
- - type: 'null'
+ type: integer
+ maximum: 50.0
+ minimum: 1.0
+ title: Max Num Results
description: Maximum number of results to return.
default: 10
ranking_options:
@@ -13182,9 +13202,8 @@ components:
description: Options for ranking results.
title: SearchRankingOptions
rewrite_query:
- anyOf:
- - type: boolean
- - type: 'null'
+ type: boolean
+ title: Rewrite Query
description: Whether to rewrite the query for better results.
default: false
search_mode:
@@ -13217,10 +13236,11 @@ components:
description: The new name for the vector store.
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
description: Expiration policy for the vector store.
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -13532,6 +13552,69 @@ components:
description: Maximum concurrent LLM calls. Falls back to config default if not provided.
title: VectorStoreChunkingStrategyContextualConfig
description: Configuration for contextual chunking that uses an LLM to situate chunks within the document.
+ VectorStoreExpirationAfter:
+ properties:
+ anchor:
+ type: string
+ title: Anchor
+ description: Anchor timestamp after which the expiration policy applies.
+ enum:
+ - last_active_at
+ days:
+ type: integer
+ maximum: 365.0
+ minimum: 1.0
+ title: Days
+ description: The number of days after the anchor time that the vector store will expire.
+ required:
+ - anchor
+ - days
+ title: VectorStoreExpirationAfter
+ description: Expiration policy for a vector store.
+ VectorStoreFileBatchFileEntry:
+ properties:
+ file_id:
+ type: string
+ title: File Id
+ chunking_strategy:
+ anyOf:
+ - oneOf:
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ title: VectorStoreChunkingStrategyAuto
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyStatic
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ title: VectorStoreChunkingStrategyContextual
+ discriminator:
+ propertyName: type
+ mapping:
+ auto: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ contextual: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ static: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic | VectorStoreChunkingStrategyContextual
+ - type: 'null'
+ title: Chunking Strategy
+ attributes:
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
+ required:
+ - file_id
+ title: VectorStoreFileBatchFileEntry
+ description: A file entry for creating a vector store file batch with per-file options.
_URLOrData:
properties:
url:
@@ -13717,6 +13800,12 @@ components:
- content_filter
- function_call
type: string
+ VectorStoreStatus:
+ enum:
+ - expired
+ - in_progress
+ - completed
+ type: string
OpenAIResponseInputToolChoice:
anyOf:
- $ref: '#/components/schemas/OpenAIResponseInputToolChoiceMode'
@@ -14637,6 +14726,11 @@ components:
- type: string
- type: 'null'
nullable: true
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
+ nullable: true
file_ids:
items:
type: string
@@ -14644,10 +14738,11 @@ components:
type: array
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- additionalProperties: true
@@ -14655,9 +14750,11 @@ components:
- type: 'null'
nullable: true
metadata:
- additionalProperties: true
- title: Metadata
- type: object
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
+ nullable: true
title: VectorStoreCreateRequest
VectorStoreModifyRequest:
description: Request to modify a vector store.
@@ -14669,10 +14766,11 @@ components:
nullable: true
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -14699,6 +14797,8 @@ components:
nullable: true
max_num_results:
default: 10
+ maximum: 50
+ minimum: 1
title: Max Num Results
type: integer
ranking_options:
diff --git a/docs/docs/api-openai/conformance.mdx b/docs/docs/api-openai/conformance.mdx
index 345e8e12b8..da9b4db0bf 100644
--- a/docs/docs/api-openai/conformance.mdx
+++ b/docs/docs/api-openai/conformance.mdx
@@ -18,12 +18,12 @@ This documentation is auto-generated from the OpenAI API specification compariso
| Metric | Value |
|--------|-------|
-| **Overall Conformance Score** | 87.9% |
+| **Overall Conformance Score** | 89.3% |
| **Endpoints Implemented** | 28/146 |
| **Total Properties Checked** | 3441 |
-| **Schema/Type Issues** | 288 |
-| **Missing Properties** | 130 |
-| **Total Issues to Fix** | 418 |
+| **Schema/Type Issues** | 239 |
+| **Missing Properties** | 128 |
+| **Total Issues to Fix** | 367 |
## Integration Test Coverage
@@ -47,10 +47,10 @@ Categories are sorted by conformance score (lowest first, needing most attention
| Moderations | 15.1% | 53 | 6 | 39 |
| Batch | 39.3% | 168 | 61 | 41 |
| Completions | 56.5% | 46 | 18 | 2 |
-| Vector stores | 61.3% | 310 | 106 | 14 |
| Embeddings | 64.3% | 14 | 5 | 0 |
| Files | 66.7% | 42 | 8 | 6 |
| Models | 66.7% | 15 | 0 | 5 |
+| Vector stores | 77.7% | 310 | 57 | 12 |
| Chat | 87.1% | 403 | 33 | 19 |
| Responses | 87.1% | 225 | 29 | 0 |
| Conversations | 98.8% | 2165 | 22 | 4 |
@@ -508,9 +508,123 @@ Below is a detailed breakdown of conformance issues and missing properties for e
+### Embeddings
+
+**Score:** 64.3% · **Issues:** 5 · **Missing:** 0
+
+#### `/embeddings`
+
+**POST**
+
+
+Schema Issues (5)
+
+| Property | Issues |
+|----------|--------|
+| `requestBody.content.application/json.properties.input` | Union variants added: 4 |
+| `requestBody.content.application/json.properties.model` | Type added: ['string']; Union variants removed: 2 |
+| `responses.200.content.application/json.properties.data.items` | Type removed: ['object'] |
+| `responses.200.content.application/json.properties.data.items.properties.embedding` | Type removed: ['array']; Union variants added: 2 |
+| `responses.200.content.application/json.properties.usage` | Type removed: ['object'] |
+
+
+
+### Files
+
+**Score:** 66.7% · **Issues:** 8 · **Missing:** 6
+
+#### `/files`
+
+**GET**
+
+
+Schema Issues (2)
+
+| Property | Issues |
+|----------|--------|
+| `responses.200.content.application/json.properties.data.items.properties.expires_at` | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
+| `responses.200.content.application/json.properties.data.items.properties.purpose` | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
+
+
+
+**POST**
+
+
+Missing Properties (4)
+
+- `requestBody.content.multipart/form-data.properties.expires_after.properties.anchor`
+- `requestBody.content.multipart/form-data.properties.expires_after.properties.seconds`
+- `responses.200.content.application/json.properties.status`
+- `responses.200.content.application/json.properties.status_details`
+
+
+
+
+Schema Issues (4)
+
+| Property | Issues |
+|----------|--------|
+| `requestBody.content.multipart/form-data.properties.expires_after` | Type removed: ['object']; Union variants added: 2 |
+| `requestBody.content.multipart/form-data.properties.purpose` | Enum values removed: ['fine-tune', 'vision', 'user_data', 'evals'] |
+| `responses.200.content.application/json.properties.expires_at` | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
+| `responses.200.content.application/json.properties.purpose` | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
+
+
+
+#### `/files/{file_id}`
+
+**GET**
+
+
+Missing Properties (2)
+
+- `responses.200.content.application/json.properties.status`
+- `responses.200.content.application/json.properties.status_details`
+
+
+
+
+Schema Issues (2)
+
+| Property | Issues |
+|----------|--------|
+| `responses.200.content.application/json.properties.expires_at` | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
+| `responses.200.content.application/json.properties.purpose` | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
+
+
+
+### Models
+
+**Score:** 66.7% · **Issues:** 0 · **Missing:** 5
+
+#### `/models`
+
+**GET**
+
+
+Missing Properties (1)
+
+- `responses.200.content.application/json.properties.object`
+
+
+
+#### `/models/{model}`
+
+**GET**
+
+
+Missing Properties (4)
+
+- `responses.200.content.application/json.properties.created`
+- `responses.200.content.application/json.properties.id`
+- `responses.200.content.application/json.properties.object`
+- `responses.200.content.application/json.properties.owned_by`
+
+
+
### Vector stores
-**Score:** 61.3% · **Issues:** 106 · **Missing:** 14
+**Score:** 77.7% · **Issues:** 57 · **Missing:** 12
#### `/vector_stores`
@@ -525,31 +639,23 @@ Below is a detailed breakdown of conformance issues and missing properties for e
-Schema Issues (12)
+Schema Issues (5)
| Property | Issues |
|----------|--------|
| `responses.200.content.application/json.properties.data.items` | Type removed: ['object'] |
| `responses.200.content.application/json.properties.data.items.properties.expires_after` | Type removed: ['object']; Union variants added: 2 |
| `responses.200.content.application/json.properties.data.items.properties.file_counts` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.data.items.properties.metadata` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
-| `responses.200.content.application/json.properties.data.items.properties.name` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.data.items.properties.object` | Enum removed: ['vector_store']; Default changed: None -> vector_store |
-| `responses.200.content.application/json.properties.data.items.properties.status` | Enum removed: ['expired', 'in_progress', 'completed']; Default changed: None -> completed |
+| `responses.200.content.application/json.properties.data.items.properties.name` | Default changed: None -> |
| `responses.200.content.application/json.properties.data.items.properties.usage_bytes` | Default changed: None -> 0 |
-| `responses.200.content.application/json.properties.first_id` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.has_more` | Default changed: None -> False |
-| `responses.200.content.application/json.properties.last_id` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.object` | Default changed: None -> list |
**POST**
-Missing Properties (5)
+Missing Properties (4)
-- `requestBody.content.application/json.properties.description`
- `requestBody.content.application/json.properties.expires_after.properties.anchor`
- `requestBody.content.application/json.properties.expires_after.properties.days`
- `responses.200.content.application/json.properties.expires_after.properties.anchor`
@@ -558,38 +664,24 @@ Below is a detailed breakdown of conformance issues and missing properties for e
-Schema Issues (11)
+Schema Issues (9)
| Property | Issues |
|----------|--------|
| `requestBody.content.application/json.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 2 |
+| `requestBody.content.application/json.properties.description` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
| `requestBody.content.application/json.properties.expires_after` | Type removed: ['object']; Union variants added: 2 |
| `requestBody.content.application/json.properties.file_ids` | Type removed: ['array']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
| `requestBody.content.application/json.properties.name` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
| `responses.200.content.application/json.properties.expires_after` | Type removed: ['object']; Union variants added: 2 |
| `responses.200.content.application/json.properties.file_counts` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.metadata` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
-| `responses.200.content.application/json.properties.name` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store']; Default changed: None -> vector_store |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['expired', 'in_progress', 'completed']; Default changed: None -> completed |
+| `responses.200.content.application/json.properties.name` | Default changed: None -> |
| `responses.200.content.application/json.properties.usage_bytes` | Default changed: None -> 0 |
#### `/vector_stores/{vector_store_id}`
-**DELETE**
-
-
-Schema Issues (2)
-
-| Property | Issues |
-|----------|--------|
-| `responses.200.content.application/json.properties.deleted` | Default changed: None -> True |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.deleted']; Default changed: None -> vector_store.deleted |
-
-
-
**GET**
@@ -601,16 +693,13 @@ Below is a detailed breakdown of conformance issues and missing properties for e
-Schema Issues (7)
+Schema Issues (4)
| Property | Issues |
|----------|--------|
| `responses.200.content.application/json.properties.expires_after` | Type removed: ['object']; Union variants added: 2 |
| `responses.200.content.application/json.properties.file_counts` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.metadata` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
-| `responses.200.content.application/json.properties.name` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store']; Default changed: None -> vector_store |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['expired', 'in_progress', 'completed']; Default changed: None -> completed |
+| `responses.200.content.application/json.properties.name` | Default changed: None -> |
| `responses.200.content.application/json.properties.usage_bytes` | Default changed: None -> 0 |
@@ -626,7 +715,7 @@ Below is a detailed breakdown of conformance issues and missing properties for e
-Schema Issues (9)
+Schema Issues (6)
| Property | Issues |
|----------|--------|
@@ -634,10 +723,7 @@ Below is a detailed breakdown of conformance issues and missing properties for e
| `requestBody.content.application/json.properties.name` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
| `responses.200.content.application/json.properties.expires_after` | Type removed: ['object']; Union variants added: 2 |
| `responses.200.content.application/json.properties.file_counts` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.metadata` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
-| `responses.200.content.application/json.properties.name` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store']; Default changed: None -> vector_store |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['expired', 'in_progress', 'completed']; Default changed: None -> completed |
+| `responses.200.content.application/json.properties.name` | Default changed: None -> |
| `responses.200.content.application/json.properties.usage_bytes` | Default changed: None -> 0 |
@@ -646,22 +732,15 @@ Below is a detailed breakdown of conformance issues and missing properties for e
**POST**
-
-Missing Properties (1)
-
-- `requestBody.content.application/json.properties.files`
-
-
-
Schema Issues (4)
| Property | Issues |
|----------|--------|
| `requestBody.content.application/json.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 2 |
+| `requestBody.content.application/json.properties.files` | Type removed: ['array']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
| `responses.200.content.application/json.properties.file_counts` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.files_batch']; Default changed: None -> vector_store.file_batch |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
+| `responses.200.content.application/json.properties.object` | Enum values removed: ['vector_store.files_batch'] |
@@ -670,13 +749,12 @@ Below is a detailed breakdown of conformance issues and missing properties for e
**GET**
-Schema Issues (3)
+Schema Issues (2)
| Property | Issues |
|----------|--------|
| `responses.200.content.application/json.properties.file_counts` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.files_batch']; Default changed: None -> vector_store.file_batch |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
+| `responses.200.content.application/json.properties.object` | Enum values removed: ['vector_store.files_batch'] |
@@ -685,13 +763,12 @@ Below is a detailed breakdown of conformance issues and missing properties for e
**POST**
-Schema Issues (3)
+Schema Issues (2)
| Property | Issues |
|----------|--------|
| `responses.200.content.application/json.properties.file_counts` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.files_batch']; Default changed: None -> vector_store.file_batch |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
+| `responses.200.content.application/json.properties.object` | Enum values removed: ['vector_store.files_batch'] |
@@ -700,21 +777,14 @@ Below is a detailed breakdown of conformance issues and missing properties for e
**GET**
-Schema Issues (11)
+Schema Issues (4)
| Property | Issues |
|----------|--------|
| `responses.200.content.application/json.properties.data.items` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.data.items.properties.attributes` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
| `responses.200.content.application/json.properties.data.items.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
| `responses.200.content.application/json.properties.data.items.properties.last_error` | Union variants added: 1; Union variants removed: 1 |
-| `responses.200.content.application/json.properties.data.items.properties.object` | Enum removed: ['vector_store.file']; Default changed: None -> vector_store.file |
-| `responses.200.content.application/json.properties.data.items.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
| `responses.200.content.application/json.properties.data.items.properties.usage_bytes` | Default changed: None -> 0 |
-| `responses.200.content.application/json.properties.first_id` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.has_more` | Default changed: None -> False |
-| `responses.200.content.application/json.properties.last_id` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.object` | Default changed: None -> list |
@@ -723,67 +793,42 @@ Below is a detailed breakdown of conformance issues and missing properties for e
**GET**
-Schema Issues (11)
+Schema Issues (4)
| Property | Issues |
|----------|--------|
| `responses.200.content.application/json.properties.data.items` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.data.items.properties.attributes` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
| `responses.200.content.application/json.properties.data.items.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
| `responses.200.content.application/json.properties.data.items.properties.last_error` | Union variants added: 1; Union variants removed: 1 |
-| `responses.200.content.application/json.properties.data.items.properties.object` | Enum removed: ['vector_store.file']; Default changed: None -> vector_store.file |
-| `responses.200.content.application/json.properties.data.items.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
| `responses.200.content.application/json.properties.data.items.properties.usage_bytes` | Default changed: None -> 0 |
-| `responses.200.content.application/json.properties.first_id` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.has_more` | Default changed: None -> False |
-| `responses.200.content.application/json.properties.last_id` | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.object` | Default changed: None -> list |
**POST**
-Schema Issues (7)
+Schema Issues (4)
| Property | Issues |
|----------|--------|
| `requestBody.content.application/json.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 2 |
-| `responses.200.content.application/json.properties.attributes` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
| `responses.200.content.application/json.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
| `responses.200.content.application/json.properties.last_error` | Union variants added: 1; Union variants removed: 1 |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.file']; Default changed: None -> vector_store.file |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
| `responses.200.content.application/json.properties.usage_bytes` | Default changed: None -> 0 |
#### `/vector_stores/{vector_store_id}/files/{file_id}`
-**DELETE**
-
-
-Schema Issues (2)
-
-| Property | Issues |
-|----------|--------|
-| `responses.200.content.application/json.properties.deleted` | Default changed: None -> True |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.file.deleted']; Default changed: None -> vector_store.file.deleted |
-
-
-
**GET**
-Schema Issues (6)
+Schema Issues (3)
| Property | Issues |
|----------|--------|
-| `responses.200.content.application/json.properties.attributes` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
| `responses.200.content.application/json.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
| `responses.200.content.application/json.properties.last_error` | Union variants added: 1; Union variants removed: 1 |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.file']; Default changed: None -> vector_store.file |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
| `responses.200.content.application/json.properties.usage_bytes` | Default changed: None -> 0 |
@@ -791,16 +836,13 @@ Below is a detailed breakdown of conformance issues and missing properties for e
**POST**
-Schema Issues (7)
+Schema Issues (4)
| Property | Issues |
|----------|--------|
| `requestBody.content.application/json.properties.attributes` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
-| `responses.200.content.application/json.properties.attributes` | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
| `responses.200.content.application/json.properties.chunking_strategy` | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
| `responses.200.content.application/json.properties.last_error` | Union variants added: 1; Union variants removed: 1 |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.file']; Default changed: None -> vector_store.file |
-| `responses.200.content.application/json.properties.status` | Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']; Type removed: ['string']; Union variants added: 4 |
| `responses.200.content.application/json.properties.usage_bytes` | Default changed: None -> 0 |
@@ -810,12 +852,11 @@ Below is a detailed breakdown of conformance issues and missing properties for e
**GET**
-Schema Issues (2)
+Schema Issues (1)
| Property | Issues |
|----------|--------|
| `responses.200.content.application/json.properties.data.items` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.has_more` | Default changed: None -> False |
@@ -832,133 +873,15 @@ Below is a detailed breakdown of conformance issues and missing properties for e
-Schema Issues (9)
+Schema Issues (5)
| Property | Issues |
|----------|--------|
| `requestBody.content.application/json.properties.filters` | Union variants added: 2 |
-| `requestBody.content.application/json.properties.max_num_results` | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
| `requestBody.content.application/json.properties.query` | Union variants added: 2 |
| `requestBody.content.application/json.properties.ranking_options` | Type removed: ['object']; Union variants added: 2 |
-| `requestBody.content.application/json.properties.rewrite_query` | Type removed: ['boolean']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
| `responses.200.content.application/json.properties.data.items` | Type removed: ['object'] |
| `responses.200.content.application/json.properties.data.items.properties.content.items` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.has_more` | Default changed: None -> False |
-| `responses.200.content.application/json.properties.object` | Enum removed: ['vector_store.search_results.page']; Default changed: None -> vector_store.search_results.page |
-
-
-
-### Embeddings
-
-**Score:** 64.3% · **Issues:** 5 · **Missing:** 0
-
-#### `/embeddings`
-
-**POST**
-
-
-Schema Issues (5)
-
-| Property | Issues |
-|----------|--------|
-| `requestBody.content.application/json.properties.input` | Union variants added: 4 |
-| `requestBody.content.application/json.properties.model` | Type added: ['string']; Union variants removed: 2 |
-| `responses.200.content.application/json.properties.data.items` | Type removed: ['object'] |
-| `responses.200.content.application/json.properties.data.items.properties.embedding` | Type removed: ['array']; Union variants added: 2 |
-| `responses.200.content.application/json.properties.usage` | Type removed: ['object'] |
-
-
-
-### Files
-
-**Score:** 66.7% · **Issues:** 8 · **Missing:** 6
-
-#### `/files`
-
-**GET**
-
-
-Schema Issues (2)
-
-| Property | Issues |
-|----------|--------|
-| `responses.200.content.application/json.properties.data.items.properties.expires_at` | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.data.items.properties.purpose` | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
-
-
-
-**POST**
-
-
-Missing Properties (4)
-
-- `requestBody.content.multipart/form-data.properties.expires_after.properties.anchor`
-- `requestBody.content.multipart/form-data.properties.expires_after.properties.seconds`
-- `responses.200.content.application/json.properties.status`
-- `responses.200.content.application/json.properties.status_details`
-
-
-
-
-Schema Issues (4)
-
-| Property | Issues |
-|----------|--------|
-| `requestBody.content.multipart/form-data.properties.expires_after` | Type removed: ['object']; Union variants added: 2 |
-| `requestBody.content.multipart/form-data.properties.purpose` | Enum values removed: ['fine-tune', 'vision', 'user_data', 'evals'] |
-| `responses.200.content.application/json.properties.expires_at` | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.purpose` | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
-
-
-
-#### `/files/{file_id}`
-
-**GET**
-
-
-Missing Properties (2)
-
-- `responses.200.content.application/json.properties.status`
-- `responses.200.content.application/json.properties.status_details`
-
-
-
-
-Schema Issues (2)
-
-| Property | Issues |
-|----------|--------|
-| `responses.200.content.application/json.properties.expires_at` | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
-| `responses.200.content.application/json.properties.purpose` | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
-
-
-
-### Models
-
-**Score:** 66.7% · **Issues:** 0 · **Missing:** 5
-
-#### `/models`
-
-**GET**
-
-
-Missing Properties (1)
-
-- `responses.200.content.application/json.properties.object`
-
-
-
-#### `/models/{model}`
-
-**GET**
-
-
-Missing Properties (4)
-
-- `responses.200.content.application/json.properties.created`
-- `responses.200.content.application/json.properties.id`
-- `responses.200.content.application/json.properties.object`
-- `responses.200.content.application/json.properties.owned_by`
diff --git a/docs/static/deprecated-llama-stack-spec.yaml b/docs/static/deprecated-llama-stack-spec.yaml
index 12914642cd..59ee98e0bf 100644
--- a/docs/static/deprecated-llama-stack-spec.yaml
+++ b/docs/static/deprecated-llama-stack-spec.yaml
@@ -6246,26 +6246,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListResponse
description: Response from listing vector stores.
VectorStoreObject:
@@ -6276,14 +6277,15 @@ components:
object:
type: string
title: Object
- default: vector_store
+ enum:
+ - vector_store
created_at:
type: integer
title: Created At
name:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Name
+ default: ''
usage_bytes:
type: integer
title: Usage Bytes
@@ -6292,13 +6294,17 @@ components:
$ref: '#/components/schemas/VectorStoreFileCounts'
status:
type: string
+ enum:
+ - expired
+ - in_progress
+ - completed
title: Status
- default: completed
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
expires_at:
anyOf:
- type: integer
@@ -6308,13 +6314,15 @@ components:
- type: integer
- type: 'null'
metadata:
- additionalProperties: true
- type: object
- title: Metadata
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
required:
- id
- created_at
- file_counts
+ - status
title: VectorStoreObject
description: OpenAI Vector Store object.
VectorStoreChunkingStrategy:
@@ -6374,6 +6382,10 @@ components:
anyOf:
- type: string
- type: 'null'
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
file_ids:
anyOf:
- items:
@@ -6382,9 +6394,10 @@ components:
- type: 'null'
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- oneOf:
@@ -6419,13 +6432,14 @@ components:
object:
type: string
title: Object
- default: vector_store.deleted
+ enum:
+ - vector_store.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreDeleteResponse
description: Response from deleting a vector store.
OpenAICreateVectorStoreFileBatchRequestWithExtraBody:
@@ -6435,10 +6449,28 @@ components:
type: string
type: array
title: File Ids
+ files:
+ anyOf:
+ - items:
+ $ref: '#/components/schemas/VectorStoreFileBatchFileEntry'
+ type: array
+ - type: 'null'
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
chunking_strategy:
anyOf:
@@ -6459,8 +6491,6 @@ components:
- type: 'null'
title: Chunking Strategy
additionalProperties: true
- required:
- - file_ids
title: OpenAICreateVectorStoreFileBatchRequestWithExtraBody
description: Request to create a vector store file batch with extra_body support.
VectorStoreFileBatchObject:
@@ -6471,7 +6501,8 @@ components:
object:
type: string
title: Object
- default: vector_store.file_batch
+ enum:
+ - vector_store.file_batch
created_at:
type: integer
title: Created At
@@ -6479,20 +6510,13 @@ components:
type: string
title: Vector Store Id
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
file_counts:
$ref: '#/components/schemas/VectorStoreFileCounts'
required:
@@ -6504,31 +6528,21 @@ components:
title: VectorStoreFileBatchObject
description: OpenAI Vector Store File Batch object.
VectorStoreFileStatus:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ type: string
VectorStoreFileLastError:
properties:
code:
- anyOf:
- - type: string
- enum:
- - server_error
- - type: string
- enum:
- - rate_limit_exceeded
- title: string
+ type: string
+ enum:
+ - server_error
+ - unsupported_file
+ - invalid_file
+ title: Code
message:
type: string
title: Message
@@ -6545,23 +6559,25 @@ components:
object:
type: string
title: Object
- default: vector_store.file
+ enum:
+ - vector_store.file
attributes:
- additionalProperties:
- anyOf:
- - type: string
- maxLength: 512
- - type: number
- - type: boolean
- title: string | number | boolean
- propertyNames:
- type: string
- maxLength: 64
- type: object
- maxProperties: 16
- title: Attributes
- description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
- x-oaiTypeLabel: map
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
chunking_strategy:
oneOf:
- $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
@@ -6587,20 +6603,13 @@ components:
- type: 'null'
title: VectorStoreFileLastError
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
usage_bytes:
type: integer
title: Usage Bytes
@@ -6621,26 +6630,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreFilesListInBatchResponse
description: Response from listing files in a vector store file batch.
VectorStoreListFilesResponse:
@@ -6648,26 +6658,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListFilesResponse
description: Response from listing files in a vector store.
VectorStoreFileDeleteResponse:
@@ -6678,13 +6689,14 @@ components:
object:
type: string
title: Object
- default: vector_store.file.deleted
+ enum:
+ - vector_store.file.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreFileDeleteResponse
description: Response from deleting a vector store file.
VectorStoreContent:
@@ -6734,13 +6746,13 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
- type: 'null'
required:
- data
+ - has_more
title: VectorStoreFileContentResponse
description: Represents the parsed content of a vector store file.
VectorStoreSearchResponse:
@@ -6781,7 +6793,8 @@ components:
object:
type: string
title: Object
- default: vector_store.search_results.page
+ enum:
+ - vector_store.search_results.page
search_query:
items:
type: string
@@ -6795,7 +6808,6 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
@@ -6803,6 +6815,7 @@ components:
required:
- search_query
- data
+ - has_more
title: VectorStoreSearchResponsePage
description: Paginated response from searching a vector store.
VersionInfo:
@@ -8420,8 +8433,20 @@ components:
description: The ID of the file to attach.
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
description: Attributes to associate with the file.
chunking_strategy:
@@ -9082,9 +9107,10 @@ components:
- type: 'null'
description: Filters to apply to the search.
max_num_results:
- anyOf:
- - type: integer
- - type: 'null'
+ type: integer
+ maximum: 50.0
+ minimum: 1.0
+ title: Max Num Results
description: Maximum number of results to return.
default: 10
ranking_options:
@@ -9095,9 +9121,8 @@ components:
description: Options for ranking results.
title: SearchRankingOptions
rewrite_query:
- anyOf:
- - type: boolean
- - type: 'null'
+ type: boolean
+ title: Rewrite Query
description: Whether to rewrite the query for better results.
default: false
search_mode:
@@ -9130,10 +9155,11 @@ components:
description: The new name for the vector store.
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
description: Expiration policy for the vector store.
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -9445,6 +9471,69 @@ components:
description: Maximum concurrent LLM calls. Falls back to config default if not provided.
title: VectorStoreChunkingStrategyContextualConfig
description: Configuration for contextual chunking that uses an LLM to situate chunks within the document.
+ VectorStoreExpirationAfter:
+ properties:
+ anchor:
+ type: string
+ title: Anchor
+ description: Anchor timestamp after which the expiration policy applies.
+ enum:
+ - last_active_at
+ days:
+ type: integer
+ maximum: 365.0
+ minimum: 1.0
+ title: Days
+ description: The number of days after the anchor time that the vector store will expire.
+ required:
+ - anchor
+ - days
+ title: VectorStoreExpirationAfter
+ description: Expiration policy for a vector store.
+ VectorStoreFileBatchFileEntry:
+ properties:
+ file_id:
+ type: string
+ title: File Id
+ chunking_strategy:
+ anyOf:
+ - oneOf:
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ title: VectorStoreChunkingStrategyAuto
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyStatic
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ title: VectorStoreChunkingStrategyContextual
+ discriminator:
+ propertyName: type
+ mapping:
+ auto: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ contextual: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ static: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic | VectorStoreChunkingStrategyContextual
+ - type: 'null'
+ title: Chunking Strategy
+ attributes:
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
+ required:
+ - file_id
+ title: VectorStoreFileBatchFileEntry
+ description: A file entry for creating a vector store file batch with per-file options.
_URLOrData:
properties:
url:
@@ -9630,6 +9719,12 @@ components:
- content_filter
- function_call
type: string
+ VectorStoreStatus:
+ enum:
+ - expired
+ - in_progress
+ - completed
+ type: string
OpenAIResponseInputToolChoice:
anyOf:
- $ref: '#/components/schemas/OpenAIResponseInputToolChoiceMode'
@@ -10550,6 +10645,11 @@ components:
- type: string
- type: 'null'
nullable: true
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
+ nullable: true
file_ids:
items:
type: string
@@ -10557,10 +10657,11 @@ components:
type: array
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- additionalProperties: true
@@ -10568,9 +10669,11 @@ components:
- type: 'null'
nullable: true
metadata:
- additionalProperties: true
- title: Metadata
- type: object
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
+ nullable: true
title: VectorStoreCreateRequest
VectorStoreModifyRequest:
description: Request to modify a vector store.
@@ -10582,10 +10685,11 @@ components:
nullable: true
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -10612,6 +10716,8 @@ components:
nullable: true
max_num_results:
default: 10
+ maximum: 50
+ minimum: 1
title: Max Num Results
type: integer
ranking_options:
diff --git a/docs/static/experimental-llama-stack-spec.yaml b/docs/static/experimental-llama-stack-spec.yaml
index 5e834f4308..2a6f94f4cc 100644
--- a/docs/static/experimental-llama-stack-spec.yaml
+++ b/docs/static/experimental-llama-stack-spec.yaml
@@ -6787,26 +6787,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListResponse
description: Response from listing vector stores.
VectorStoreObject:
@@ -6817,14 +6818,15 @@ components:
object:
type: string
title: Object
- default: vector_store
+ enum:
+ - vector_store
created_at:
type: integer
title: Created At
name:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Name
+ default: ''
usage_bytes:
type: integer
title: Usage Bytes
@@ -6833,13 +6835,17 @@ components:
$ref: '#/components/schemas/VectorStoreFileCounts'
status:
type: string
+ enum:
+ - expired
+ - in_progress
+ - completed
title: Status
- default: completed
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
expires_at:
anyOf:
- type: integer
@@ -6849,13 +6855,15 @@ components:
- type: integer
- type: 'null'
metadata:
- additionalProperties: true
- type: object
- title: Metadata
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
required:
- id
- created_at
- file_counts
+ - status
title: VectorStoreObject
description: OpenAI Vector Store object.
VectorStoreChunkingStrategy:
@@ -6915,6 +6923,10 @@ components:
anyOf:
- type: string
- type: 'null'
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
file_ids:
anyOf:
- items:
@@ -6923,9 +6935,10 @@ components:
- type: 'null'
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- oneOf:
@@ -6960,13 +6973,14 @@ components:
object:
type: string
title: Object
- default: vector_store.deleted
+ enum:
+ - vector_store.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreDeleteResponse
description: Response from deleting a vector store.
OpenAICreateVectorStoreFileBatchRequestWithExtraBody:
@@ -6976,10 +6990,28 @@ components:
type: string
type: array
title: File Ids
+ files:
+ anyOf:
+ - items:
+ $ref: '#/components/schemas/VectorStoreFileBatchFileEntry'
+ type: array
+ - type: 'null'
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
chunking_strategy:
anyOf:
@@ -7000,8 +7032,6 @@ components:
- type: 'null'
title: Chunking Strategy
additionalProperties: true
- required:
- - file_ids
title: OpenAICreateVectorStoreFileBatchRequestWithExtraBody
description: Request to create a vector store file batch with extra_body support.
VectorStoreFileBatchObject:
@@ -7012,7 +7042,8 @@ components:
object:
type: string
title: Object
- default: vector_store.file_batch
+ enum:
+ - vector_store.file_batch
created_at:
type: integer
title: Created At
@@ -7020,20 +7051,13 @@ components:
type: string
title: Vector Store Id
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
file_counts:
$ref: '#/components/schemas/VectorStoreFileCounts'
required:
@@ -7045,31 +7069,21 @@ components:
title: VectorStoreFileBatchObject
description: OpenAI Vector Store File Batch object.
VectorStoreFileStatus:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ type: string
VectorStoreFileLastError:
properties:
code:
- anyOf:
- - type: string
- enum:
- - server_error
- - type: string
- enum:
- - rate_limit_exceeded
- title: string
+ type: string
+ enum:
+ - server_error
+ - unsupported_file
+ - invalid_file
+ title: Code
message:
type: string
title: Message
@@ -7086,23 +7100,25 @@ components:
object:
type: string
title: Object
- default: vector_store.file
+ enum:
+ - vector_store.file
attributes:
- additionalProperties:
- anyOf:
- - type: string
- maxLength: 512
- - type: number
- - type: boolean
- title: string | number | boolean
- propertyNames:
- type: string
- maxLength: 64
- type: object
- maxProperties: 16
- title: Attributes
- description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
- x-oaiTypeLabel: map
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
chunking_strategy:
oneOf:
- $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
@@ -7128,20 +7144,13 @@ components:
- type: 'null'
title: VectorStoreFileLastError
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
usage_bytes:
type: integer
title: Usage Bytes
@@ -7162,26 +7171,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreFilesListInBatchResponse
description: Response from listing files in a vector store file batch.
VectorStoreListFilesResponse:
@@ -7189,26 +7199,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListFilesResponse
description: Response from listing files in a vector store.
VectorStoreFileDeleteResponse:
@@ -7219,13 +7230,14 @@ components:
object:
type: string
title: Object
- default: vector_store.file.deleted
+ enum:
+ - vector_store.file.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreFileDeleteResponse
description: Response from deleting a vector store file.
VectorStoreContent:
@@ -7275,13 +7287,13 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
- type: 'null'
required:
- data
+ - has_more
title: VectorStoreFileContentResponse
description: Represents the parsed content of a vector store file.
VectorStoreSearchResponse:
@@ -7322,7 +7334,8 @@ components:
object:
type: string
title: Object
- default: vector_store.search_results.page
+ enum:
+ - vector_store.search_results.page
search_query:
items:
type: string
@@ -7336,7 +7349,6 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
@@ -7344,6 +7356,7 @@ components:
required:
- search_query
- data
+ - has_more
title: VectorStoreSearchResponsePage
description: Paginated response from searching a vector store.
VersionInfo:
@@ -8654,8 +8667,20 @@ components:
description: The ID of the file to attach.
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
description: Attributes to associate with the file.
chunking_strategy:
@@ -9316,9 +9341,10 @@ components:
- type: 'null'
description: Filters to apply to the search.
max_num_results:
- anyOf:
- - type: integer
- - type: 'null'
+ type: integer
+ maximum: 50.0
+ minimum: 1.0
+ title: Max Num Results
description: Maximum number of results to return.
default: 10
ranking_options:
@@ -9329,9 +9355,8 @@ components:
description: Options for ranking results.
title: SearchRankingOptions
rewrite_query:
- anyOf:
- - type: boolean
- - type: 'null'
+ type: boolean
+ title: Rewrite Query
description: Whether to rewrite the query for better results.
default: false
search_mode:
@@ -9364,10 +9389,11 @@ components:
description: The new name for the vector store.
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
description: Expiration policy for the vector store.
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -9650,6 +9676,69 @@ components:
description: Maximum concurrent LLM calls. Falls back to config default if not provided.
title: VectorStoreChunkingStrategyContextualConfig
description: Configuration for contextual chunking that uses an LLM to situate chunks within the document.
+ VectorStoreExpirationAfter:
+ properties:
+ anchor:
+ type: string
+ title: Anchor
+ description: Anchor timestamp after which the expiration policy applies.
+ enum:
+ - last_active_at
+ days:
+ type: integer
+ maximum: 365.0
+ minimum: 1.0
+ title: Days
+ description: The number of days after the anchor time that the vector store will expire.
+ required:
+ - anchor
+ - days
+ title: VectorStoreExpirationAfter
+ description: Expiration policy for a vector store.
+ VectorStoreFileBatchFileEntry:
+ properties:
+ file_id:
+ type: string
+ title: File Id
+ chunking_strategy:
+ anyOf:
+ - oneOf:
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ title: VectorStoreChunkingStrategyAuto
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyStatic
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ title: VectorStoreChunkingStrategyContextual
+ discriminator:
+ propertyName: type
+ mapping:
+ auto: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ contextual: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ static: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic | VectorStoreChunkingStrategyContextual
+ - type: 'null'
+ title: Chunking Strategy
+ attributes:
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
+ required:
+ - file_id
+ title: VectorStoreFileBatchFileEntry
+ description: A file entry for creating a vector store file batch with per-file options.
_URLOrData:
properties:
url:
@@ -9835,6 +9924,12 @@ components:
- content_filter
- function_call
type: string
+ VectorStoreStatus:
+ enum:
+ - expired
+ - in_progress
+ - completed
+ type: string
OpenAIResponseInputToolChoice:
anyOf:
- $ref: '#/components/schemas/OpenAIResponseInputToolChoiceMode'
@@ -10755,6 +10850,11 @@ components:
- type: string
- type: 'null'
nullable: true
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
+ nullable: true
file_ids:
items:
type: string
@@ -10762,10 +10862,11 @@ components:
type: array
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- additionalProperties: true
@@ -10773,9 +10874,11 @@ components:
- type: 'null'
nullable: true
metadata:
- additionalProperties: true
- title: Metadata
- type: object
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
+ nullable: true
title: VectorStoreCreateRequest
VectorStoreModifyRequest:
description: Request to modify a vector store.
@@ -10787,10 +10890,11 @@ components:
nullable: true
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -10817,6 +10921,8 @@ components:
nullable: true
max_num_results:
default: 10
+ maximum: 50
+ minimum: 1
title: Max Num Results
type: integer
ranking_options:
diff --git a/docs/static/llama-stack-spec.yaml b/docs/static/llama-stack-spec.yaml
index 033219262a..893314258e 100644
--- a/docs/static/llama-stack-spec.yaml
+++ b/docs/static/llama-stack-spec.yaml
@@ -2857,18 +2857,12 @@ paths:
required: false
schema:
anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
+ - enum:
- in_progress
- - type: string
- enum:
+ - completed
- cancelled
- - type: string
- enum:
- failed
+ type: string
- type: 'null'
description: Filter by file status.
title: Filter
@@ -9283,26 +9277,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListResponse
description: Response from listing vector stores.
VectorStoreObject:
@@ -9313,14 +9308,15 @@ components:
object:
type: string
title: Object
- default: vector_store
+ enum:
+ - vector_store
created_at:
type: integer
title: Created At
name:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Name
+ default: ''
usage_bytes:
type: integer
title: Usage Bytes
@@ -9329,13 +9325,17 @@ components:
$ref: '#/components/schemas/VectorStoreFileCounts'
status:
type: string
+ enum:
+ - expired
+ - in_progress
+ - completed
title: Status
- default: completed
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
expires_at:
anyOf:
- type: integer
@@ -9345,13 +9345,15 @@ components:
- type: integer
- type: 'null'
metadata:
- additionalProperties: true
- type: object
- title: Metadata
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
required:
- id
- created_at
- file_counts
+ - status
title: VectorStoreObject
description: OpenAI Vector Store object.
VectorStoreChunkingStrategy:
@@ -9411,6 +9413,10 @@ components:
anyOf:
- type: string
- type: 'null'
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
file_ids:
anyOf:
- items:
@@ -9419,9 +9425,10 @@ components:
- type: 'null'
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- oneOf:
@@ -9456,13 +9463,14 @@ components:
object:
type: string
title: Object
- default: vector_store.deleted
+ enum:
+ - vector_store.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreDeleteResponse
description: Response from deleting a vector store.
OpenAICreateVectorStoreFileBatchRequestWithExtraBody:
@@ -9472,10 +9480,28 @@ components:
type: string
type: array
title: File Ids
+ files:
+ anyOf:
+ - items:
+ $ref: '#/components/schemas/VectorStoreFileBatchFileEntry'
+ type: array
+ - type: 'null'
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
chunking_strategy:
anyOf:
@@ -9496,8 +9522,6 @@ components:
- type: 'null'
title: Chunking Strategy
additionalProperties: true
- required:
- - file_ids
title: OpenAICreateVectorStoreFileBatchRequestWithExtraBody
description: Request to create a vector store file batch with extra_body support.
VectorStoreFileBatchObject:
@@ -9508,7 +9532,8 @@ components:
object:
type: string
title: Object
- default: vector_store.file_batch
+ enum:
+ - vector_store.file_batch
created_at:
type: integer
title: Created At
@@ -9516,20 +9541,13 @@ components:
type: string
title: Vector Store Id
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
file_counts:
$ref: '#/components/schemas/VectorStoreFileCounts'
required:
@@ -9541,31 +9559,21 @@ components:
title: VectorStoreFileBatchObject
description: OpenAI Vector Store File Batch object.
VectorStoreFileStatus:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ type: string
VectorStoreFileLastError:
properties:
code:
- anyOf:
- - type: string
- enum:
- - server_error
- - type: string
- enum:
- - rate_limit_exceeded
- title: string
+ type: string
+ enum:
+ - server_error
+ - unsupported_file
+ - invalid_file
+ title: Code
message:
type: string
title: Message
@@ -9582,23 +9590,25 @@ components:
object:
type: string
title: Object
- default: vector_store.file
+ enum:
+ - vector_store.file
attributes:
- additionalProperties:
- anyOf:
- - type: string
- maxLength: 512
- - type: number
- - type: boolean
- title: string | number | boolean
- propertyNames:
- type: string
- maxLength: 64
- type: object
- maxProperties: 16
- title: Attributes
- description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
- x-oaiTypeLabel: map
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
chunking_strategy:
oneOf:
- $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
@@ -9624,20 +9634,13 @@ components:
- type: 'null'
title: VectorStoreFileLastError
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
usage_bytes:
type: integer
title: Usage Bytes
@@ -9658,26 +9661,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreFilesListInBatchResponse
description: Response from listing files in a vector store file batch.
VectorStoreListFilesResponse:
@@ -9685,26 +9689,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListFilesResponse
description: Response from listing files in a vector store.
VectorStoreFileDeleteResponse:
@@ -9715,13 +9720,14 @@ components:
object:
type: string
title: Object
- default: vector_store.file.deleted
+ enum:
+ - vector_store.file.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreFileDeleteResponse
description: Response from deleting a vector store file.
VectorStoreContent:
@@ -9771,13 +9777,13 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
- type: 'null'
required:
- data
+ - has_more
title: VectorStoreFileContentResponse
description: Represents the parsed content of a vector store file.
VectorStoreSearchResponse:
@@ -9818,7 +9824,8 @@ components:
object:
type: string
title: Object
- default: vector_store.search_results.page
+ enum:
+ - vector_store.search_results.page
search_query:
items:
type: string
@@ -9832,7 +9839,6 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
@@ -9840,6 +9846,7 @@ components:
required:
- search_query
- data
+ - has_more
title: VectorStoreSearchResponsePage
description: Paginated response from searching a vector store.
VersionInfo:
@@ -11432,8 +11439,20 @@ components:
description: The ID of the file to attach.
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
description: Attributes to associate with the file.
chunking_strategy:
@@ -12094,9 +12113,10 @@ components:
- type: 'null'
description: Filters to apply to the search.
max_num_results:
- anyOf:
- - type: integer
- - type: 'null'
+ type: integer
+ maximum: 50.0
+ minimum: 1.0
+ title: Max Num Results
description: Maximum number of results to return.
default: 10
ranking_options:
@@ -12107,9 +12127,8 @@ components:
description: Options for ranking results.
title: SearchRankingOptions
rewrite_query:
- anyOf:
- - type: boolean
- - type: 'null'
+ type: boolean
+ title: Rewrite Query
description: Whether to rewrite the query for better results.
default: false
search_mode:
@@ -12142,10 +12161,11 @@ components:
description: The new name for the vector store.
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
description: Expiration policy for the vector store.
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -12457,6 +12477,69 @@ components:
description: Maximum concurrent LLM calls. Falls back to config default if not provided.
title: VectorStoreChunkingStrategyContextualConfig
description: Configuration for contextual chunking that uses an LLM to situate chunks within the document.
+ VectorStoreExpirationAfter:
+ properties:
+ anchor:
+ type: string
+ title: Anchor
+ description: Anchor timestamp after which the expiration policy applies.
+ enum:
+ - last_active_at
+ days:
+ type: integer
+ maximum: 365.0
+ minimum: 1.0
+ title: Days
+ description: The number of days after the anchor time that the vector store will expire.
+ required:
+ - anchor
+ - days
+ title: VectorStoreExpirationAfter
+ description: Expiration policy for a vector store.
+ VectorStoreFileBatchFileEntry:
+ properties:
+ file_id:
+ type: string
+ title: File Id
+ chunking_strategy:
+ anyOf:
+ - oneOf:
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ title: VectorStoreChunkingStrategyAuto
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyStatic
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ title: VectorStoreChunkingStrategyContextual
+ discriminator:
+ propertyName: type
+ mapping:
+ auto: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ contextual: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ static: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic | VectorStoreChunkingStrategyContextual
+ - type: 'null'
+ title: Chunking Strategy
+ attributes:
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
+ required:
+ - file_id
+ title: VectorStoreFileBatchFileEntry
+ description: A file entry for creating a vector store file batch with per-file options.
_URLOrData:
properties:
url:
@@ -12642,6 +12725,12 @@ components:
- content_filter
- function_call
type: string
+ VectorStoreStatus:
+ enum:
+ - expired
+ - in_progress
+ - completed
+ type: string
OpenAIResponseInputToolChoice:
anyOf:
- $ref: '#/components/schemas/OpenAIResponseInputToolChoiceMode'
@@ -13562,6 +13651,11 @@ components:
- type: string
- type: 'null'
nullable: true
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
+ nullable: true
file_ids:
items:
type: string
@@ -13569,10 +13663,11 @@ components:
type: array
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- additionalProperties: true
@@ -13580,9 +13675,11 @@ components:
- type: 'null'
nullable: true
metadata:
- additionalProperties: true
- title: Metadata
- type: object
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
+ nullable: true
title: VectorStoreCreateRequest
VectorStoreModifyRequest:
description: Request to modify a vector store.
@@ -13594,10 +13691,11 @@ components:
nullable: true
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -13624,6 +13722,8 @@ components:
nullable: true
max_num_results:
default: 10
+ maximum: 50
+ minimum: 1
title: Max Num Results
type: integer
ranking_options:
diff --git a/docs/static/openai-coverage.json b/docs/static/openai-coverage.json
index c41c58e8c6..122057d632 100644
--- a/docs/static/openai-coverage.json
+++ b/docs/static/openai-coverage.json
@@ -128,10 +128,10 @@
]
},
"conformance": {
- "score": 87.9,
- "issues": 288,
- "missing_properties": 130,
- "total_problems": 418,
+ "score": 89.3,
+ "issues": 239,
+ "missing_properties": 128,
+ "total_problems": 367,
"total_properties": 3441
}
},
@@ -1941,9 +1941,9 @@
]
},
"Vector stores": {
- "score": 61.3,
- "issues": 106,
- "missing_properties": 14,
+ "score": 77.7,
+ "issues": 57,
+ "missing_properties": 12,
"total_properties": 310,
"endpoints": [
{
@@ -1975,34 +1975,10 @@
"Type removed: ['object']"
]
},
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.metadata",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.data.items.properties.name",
"details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.object",
- "details": [
- "Enum removed: ['vector_store']",
- "Default changed: None -> vector_store"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.status",
- "details": [
- "Enum removed: ['expired', 'in_progress', 'completed']",
- "Default changed: None -> completed"
+ "Default changed: None -> "
]
},
{
@@ -2010,43 +1986,14 @@
"details": [
"Default changed: None -> 0"
]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.first_id",
- "details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.has_more",
- "details": [
- "Default changed: None -> False"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.last_id",
- "details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.object",
- "details": [
- "Default changed: None -> list"
- ]
}
],
"missing_count": 2,
- "issues_count": 12
+ "issues_count": 5
},
{
"method": "POST",
"missing_properties": [
- "POST.requestBody.content.application/json.properties.description",
"POST.requestBody.content.application/json.properties.expires_after.properties.anchor",
"POST.requestBody.content.application/json.properties.expires_after.properties.days",
"POST.responses.200.content.application/json.properties.expires_after.properties.anchor",
@@ -2060,6 +2007,14 @@
"Union variants added: 2"
]
},
+ {
+ "property": "POST.requestBody.content.application/json.properties.description",
+ "details": [
+ "Type removed: ['string']",
+ "Nullable added (OpenAI non-nullable)",
+ "Union variants added: 2"
+ ]
+ },
{
"property": "POST.requestBody.content.application/json.properties.expires_after",
"details": [
@@ -2096,34 +2051,10 @@
"Type removed: ['object']"
]
},
- {
- "property": "POST.responses.200.content.application/json.properties.metadata",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "POST.responses.200.content.application/json.properties.name",
"details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store']",
- "Default changed: None -> vector_store"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['expired', 'in_progress', 'completed']",
- "Default changed: None -> completed"
+ "Default changed: None -> "
]
},
{
@@ -2133,8 +2064,8 @@
]
}
],
- "missing_count": 5,
- "issues_count": 11
+ "missing_count": 4,
+ "issues_count": 9
}
]
},
@@ -2144,23 +2075,9 @@
{
"method": "DELETE",
"missing_properties": [],
- "conformance_issues": [
- {
- "property": "DELETE.responses.200.content.application/json.properties.deleted",
- "details": [
- "Default changed: None -> True"
- ]
- },
- {
- "property": "DELETE.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store.deleted']",
- "Default changed: None -> vector_store.deleted"
- ]
- }
- ],
+ "conformance_issues": [],
"missing_count": 0,
- "issues_count": 2
+ "issues_count": 0
},
{
"method": "GET",
@@ -2182,34 +2099,10 @@
"Type removed: ['object']"
]
},
- {
- "property": "GET.responses.200.content.application/json.properties.metadata",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.name",
"details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store']",
- "Default changed: None -> vector_store"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['expired', 'in_progress', 'completed']",
- "Default changed: None -> completed"
+ "Default changed: None -> "
]
},
{
@@ -2220,7 +2113,7 @@
}
],
"missing_count": 2,
- "issues_count": 7
+ "issues_count": 4
},
{
"method": "POST",
@@ -2256,34 +2149,10 @@
"Type removed: ['object']"
]
},
- {
- "property": "POST.responses.200.content.application/json.properties.metadata",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "POST.responses.200.content.application/json.properties.name",
"details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store']",
- "Default changed: None -> vector_store"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['expired', 'in_progress', 'completed']",
- "Default changed: None -> completed"
+ "Default changed: None -> "
]
},
{
@@ -2294,7 +2163,7 @@
}
],
"missing_count": 2,
- "issues_count": 9
+ "issues_count": 6
}
]
},
@@ -2303,9 +2172,7 @@
"operations": [
{
"method": "POST",
- "missing_properties": [
- "POST.requestBody.content.application/json.properties.files"
- ],
+ "missing_properties": [],
"conformance_issues": [
{
"property": "POST.requestBody.content.application/json.properties.chunking_strategy",
@@ -2315,28 +2182,27 @@
]
},
{
- "property": "POST.responses.200.content.application/json.properties.file_counts",
+ "property": "POST.requestBody.content.application/json.properties.files",
"details": [
- "Type removed: ['object']"
+ "Type removed: ['array']",
+ "Nullable added (OpenAI non-nullable)",
+ "Union variants added: 2"
]
},
{
- "property": "POST.responses.200.content.application/json.properties.object",
+ "property": "POST.responses.200.content.application/json.properties.file_counts",
"details": [
- "Enum removed: ['vector_store.files_batch']",
- "Default changed: None -> vector_store.file_batch"
+ "Type removed: ['object']"
]
},
{
- "property": "POST.responses.200.content.application/json.properties.status",
+ "property": "POST.responses.200.content.application/json.properties.object",
"details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
+ "Enum values removed: ['vector_store.files_batch']"
]
}
],
- "missing_count": 1,
+ "missing_count": 0,
"issues_count": 4
}
]
@@ -2357,21 +2223,12 @@
{
"property": "GET.responses.200.content.application/json.properties.object",
"details": [
- "Enum removed: ['vector_store.files_batch']",
- "Default changed: None -> vector_store.file_batch"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
+ "Enum values removed: ['vector_store.files_batch']"
]
}
],
"missing_count": 0,
- "issues_count": 3
+ "issues_count": 2
}
]
},
@@ -2391,21 +2248,12 @@
{
"property": "POST.responses.200.content.application/json.properties.object",
"details": [
- "Enum removed: ['vector_store.files_batch']",
- "Default changed: None -> vector_store.file_batch"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
+ "Enum values removed: ['vector_store.files_batch']"
]
}
],
"missing_count": 0,
- "issues_count": 3
+ "issues_count": 2
}
]
},
@@ -2422,14 +2270,6 @@
"Type removed: ['object']"
]
},
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.attributes",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.data.items.properties.chunking_strategy",
"details": [
@@ -2445,58 +2285,15 @@
"Union variants removed: 1"
]
},
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.object",
- "details": [
- "Enum removed: ['vector_store.file']",
- "Default changed: None -> vector_store.file"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.status",
- "details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.data.items.properties.usage_bytes",
"details": [
"Default changed: None -> 0"
]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.first_id",
- "details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.has_more",
- "details": [
- "Default changed: None -> False"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.last_id",
- "details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.object",
- "details": [
- "Default changed: None -> list"
- ]
}
],
"missing_count": 0,
- "issues_count": 11
+ "issues_count": 4
}
]
},
@@ -2513,14 +2310,6 @@
"Type removed: ['object']"
]
},
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.attributes",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.data.items.properties.chunking_strategy",
"details": [
@@ -2536,58 +2325,15 @@
"Union variants removed: 1"
]
},
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.object",
- "details": [
- "Enum removed: ['vector_store.file']",
- "Default changed: None -> vector_store.file"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.data.items.properties.status",
- "details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.data.items.properties.usage_bytes",
"details": [
"Default changed: None -> 0"
]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.first_id",
- "details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.has_more",
- "details": [
- "Default changed: None -> False"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.last_id",
- "details": [
- "Type removed: ['string']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.object",
- "details": [
- "Default changed: None -> list"
- ]
}
],
"missing_count": 0,
- "issues_count": 11
+ "issues_count": 4
},
{
"method": "POST",
@@ -2600,14 +2346,6 @@
"Union variants added: 2"
]
},
- {
- "property": "POST.responses.200.content.application/json.properties.attributes",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "POST.responses.200.content.application/json.properties.chunking_strategy",
"details": [
@@ -2623,21 +2361,6 @@
"Union variants removed: 1"
]
},
- {
- "property": "POST.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store.file']",
- "Default changed: None -> vector_store.file"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
- ]
- },
{
"property": "POST.responses.200.content.application/json.properties.usage_bytes",
"details": [
@@ -2646,7 +2369,7 @@
}
],
"missing_count": 0,
- "issues_count": 7
+ "issues_count": 4
}
]
},
@@ -2656,36 +2379,14 @@
{
"method": "DELETE",
"missing_properties": [],
- "conformance_issues": [
- {
- "property": "DELETE.responses.200.content.application/json.properties.deleted",
- "details": [
- "Default changed: None -> True"
- ]
- },
- {
- "property": "DELETE.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store.file.deleted']",
- "Default changed: None -> vector_store.file.deleted"
- ]
- }
- ],
+ "conformance_issues": [],
"missing_count": 0,
- "issues_count": 2
+ "issues_count": 0
},
{
"method": "GET",
"missing_properties": [],
"conformance_issues": [
- {
- "property": "GET.responses.200.content.application/json.properties.attributes",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.chunking_strategy",
"details": [
@@ -2701,21 +2402,6 @@
"Union variants removed: 1"
]
},
- {
- "property": "GET.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store.file']",
- "Default changed: None -> vector_store.file"
- ]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
- ]
- },
{
"property": "GET.responses.200.content.application/json.properties.usage_bytes",
"details": [
@@ -2724,7 +2410,7 @@
}
],
"missing_count": 0,
- "issues_count": 6
+ "issues_count": 3
},
{
"method": "POST",
@@ -2738,14 +2424,6 @@
"Union variants removed: 2"
]
},
- {
- "property": "POST.responses.200.content.application/json.properties.attributes",
- "details": [
- "Type added: ['object']",
- "Nullable removed (OpenAI nullable)",
- "Union variants removed: 2"
- ]
- },
{
"property": "POST.responses.200.content.application/json.properties.chunking_strategy",
"details": [
@@ -2761,21 +2439,6 @@
"Union variants removed: 1"
]
},
- {
- "property": "POST.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store.file']",
- "Default changed: None -> vector_store.file"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.status",
- "details": [
- "Enum removed: ['in_progress', 'completed', 'cancelled', 'failed']",
- "Type removed: ['string']",
- "Union variants added: 4"
- ]
- },
{
"property": "POST.responses.200.content.application/json.properties.usage_bytes",
"details": [
@@ -2784,7 +2447,7 @@
}
],
"missing_count": 0,
- "issues_count": 7
+ "issues_count": 4
}
]
},
@@ -2800,16 +2463,10 @@
"details": [
"Type removed: ['object']"
]
- },
- {
- "property": "GET.responses.200.content.application/json.properties.has_more",
- "details": [
- "Default changed: None -> False"
- ]
}
],
"missing_count": 0,
- "issues_count": 2
+ "issues_count": 1
}
]
},
@@ -2829,14 +2486,6 @@
"Union variants added: 2"
]
},
- {
- "property": "POST.requestBody.content.application/json.properties.max_num_results",
- "details": [
- "Type removed: ['integer']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
{
"property": "POST.requestBody.content.application/json.properties.query",
"details": [
@@ -2850,14 +2499,6 @@
"Union variants added: 2"
]
},
- {
- "property": "POST.requestBody.content.application/json.properties.rewrite_query",
- "details": [
- "Type removed: ['boolean']",
- "Nullable added (OpenAI non-nullable)",
- "Union variants added: 2"
- ]
- },
{
"property": "POST.responses.200.content.application/json.properties.data.items",
"details": [
@@ -2869,23 +2510,10 @@
"details": [
"Type removed: ['object']"
]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.has_more",
- "details": [
- "Default changed: None -> False"
- ]
- },
- {
- "property": "POST.responses.200.content.application/json.properties.object",
- "details": [
- "Enum removed: ['vector_store.search_results.page']",
- "Default changed: None -> vector_store.search_results.page"
- ]
}
],
"missing_count": 2,
- "issues_count": 9
+ "issues_count": 5
}
]
}
diff --git a/docs/static/stainless-llama-stack-spec.yaml b/docs/static/stainless-llama-stack-spec.yaml
index 06e361debc..0f38cd5a04 100644
--- a/docs/static/stainless-llama-stack-spec.yaml
+++ b/docs/static/stainless-llama-stack-spec.yaml
@@ -2981,18 +2981,12 @@ paths:
required: false
schema:
anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
+ - enum:
- in_progress
- - type: string
- enum:
+ - completed
- cancelled
- - type: string
- enum:
- failed
+ type: string
- type: 'null'
description: Filter by file status.
title: Filter
@@ -10335,26 +10329,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListResponse
description: Response from listing vector stores.
VectorStoreObject:
@@ -10365,14 +10360,15 @@ components:
object:
type: string
title: Object
- default: vector_store
+ enum:
+ - vector_store
created_at:
type: integer
title: Created At
name:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Name
+ default: ''
usage_bytes:
type: integer
title: Usage Bytes
@@ -10381,13 +10377,17 @@ components:
$ref: '#/components/schemas/VectorStoreFileCounts'
status:
type: string
+ enum:
+ - expired
+ - in_progress
+ - completed
title: Status
- default: completed
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
expires_at:
anyOf:
- type: integer
@@ -10397,13 +10397,15 @@ components:
- type: integer
- type: 'null'
metadata:
- additionalProperties: true
- type: object
- title: Metadata
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
required:
- id
- created_at
- file_counts
+ - status
title: VectorStoreObject
description: OpenAI Vector Store object.
VectorStoreChunkingStrategy:
@@ -10463,6 +10465,10 @@ components:
anyOf:
- type: string
- type: 'null'
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
file_ids:
anyOf:
- items:
@@ -10471,9 +10477,10 @@ components:
- type: 'null'
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- oneOf:
@@ -10508,13 +10515,14 @@ components:
object:
type: string
title: Object
- default: vector_store.deleted
+ enum:
+ - vector_store.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreDeleteResponse
description: Response from deleting a vector store.
OpenAICreateVectorStoreFileBatchRequestWithExtraBody:
@@ -10524,10 +10532,28 @@ components:
type: string
type: array
title: File Ids
+ files:
+ anyOf:
+ - items:
+ $ref: '#/components/schemas/VectorStoreFileBatchFileEntry'
+ type: array
+ - type: 'null'
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
chunking_strategy:
anyOf:
@@ -10548,8 +10574,6 @@ components:
- type: 'null'
title: Chunking Strategy
additionalProperties: true
- required:
- - file_ids
title: OpenAICreateVectorStoreFileBatchRequestWithExtraBody
description: Request to create a vector store file batch with extra_body support.
VectorStoreFileBatchObject:
@@ -10560,7 +10584,8 @@ components:
object:
type: string
title: Object
- default: vector_store.file_batch
+ enum:
+ - vector_store.file_batch
created_at:
type: integer
title: Created At
@@ -10568,20 +10593,13 @@ components:
type: string
title: Vector Store Id
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
file_counts:
$ref: '#/components/schemas/VectorStoreFileCounts'
required:
@@ -10593,31 +10611,21 @@ components:
title: VectorStoreFileBatchObject
description: OpenAI Vector Store File Batch object.
VectorStoreFileStatus:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ type: string
VectorStoreFileLastError:
properties:
code:
- anyOf:
- - type: string
- enum:
- - server_error
- - type: string
- enum:
- - rate_limit_exceeded
- title: string
+ type: string
+ enum:
+ - server_error
+ - unsupported_file
+ - invalid_file
+ title: Code
message:
type: string
title: Message
@@ -10634,23 +10642,25 @@ components:
object:
type: string
title: Object
- default: vector_store.file
+ enum:
+ - vector_store.file
attributes:
- additionalProperties:
- anyOf:
- - type: string
- maxLength: 512
- - type: number
- - type: boolean
- title: string | number | boolean
- propertyNames:
- type: string
- maxLength: 64
- type: object
- maxProperties: 16
- title: Attributes
- description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
- x-oaiTypeLabel: map
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
chunking_strategy:
oneOf:
- $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
@@ -10676,20 +10686,13 @@ components:
- type: 'null'
title: VectorStoreFileLastError
status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - in_progress
- - type: string
- enum:
- - cancelled
- - type: string
- enum:
- - failed
- title: string
+ type: string
+ enum:
+ - in_progress
+ - completed
+ - cancelled
+ - failed
+ title: Status
usage_bytes:
type: integer
title: Usage Bytes
@@ -10710,26 +10713,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreFilesListInBatchResponse
description: Response from listing files in a vector store file batch.
VectorStoreListFilesResponse:
@@ -10737,26 +10741,27 @@ components:
object:
type: string
title: Object
- default: list
+ enum:
+ - list
data:
items:
$ref: '#/components/schemas/VectorStoreFileObject'
type: array
title: Data
first_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: First Id
last_id:
- anyOf:
- - type: string
- - type: 'null'
+ type: string
+ title: Last Id
has_more:
type: boolean
title: Has More
- default: false
required:
- data
+ - first_id
+ - last_id
+ - has_more
title: VectorStoreListFilesResponse
description: Response from listing files in a vector store.
VectorStoreFileDeleteResponse:
@@ -10767,13 +10772,14 @@ components:
object:
type: string
title: Object
- default: vector_store.file.deleted
+ enum:
+ - vector_store.file.deleted
deleted:
type: boolean
title: Deleted
- default: true
required:
- id
+ - deleted
title: VectorStoreFileDeleteResponse
description: Response from deleting a vector store file.
VectorStoreContent:
@@ -10823,13 +10829,13 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
- type: 'null'
required:
- data
+ - has_more
title: VectorStoreFileContentResponse
description: Represents the parsed content of a vector store file.
VectorStoreSearchResponse:
@@ -10870,7 +10876,8 @@ components:
object:
type: string
title: Object
- default: vector_store.search_results.page
+ enum:
+ - vector_store.search_results.page
search_query:
items:
type: string
@@ -10884,7 +10891,6 @@ components:
has_more:
type: boolean
title: Has More
- default: false
next_page:
anyOf:
- type: string
@@ -10892,6 +10898,7 @@ components:
required:
- search_query
- data
+ - has_more
title: VectorStoreSearchResponsePage
description: Paginated response from searching a vector store.
VersionInfo:
@@ -12507,8 +12514,20 @@ components:
description: The ID of the file to attach.
attributes:
anyOf:
- - additionalProperties: true
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
- type: 'null'
description: Attributes to associate with the file.
chunking_strategy:
@@ -13169,9 +13188,10 @@ components:
- type: 'null'
description: Filters to apply to the search.
max_num_results:
- anyOf:
- - type: integer
- - type: 'null'
+ type: integer
+ maximum: 50.0
+ minimum: 1.0
+ title: Max Num Results
description: Maximum number of results to return.
default: 10
ranking_options:
@@ -13182,9 +13202,8 @@ components:
description: Options for ranking results.
title: SearchRankingOptions
rewrite_query:
- anyOf:
- - type: boolean
- - type: 'null'
+ type: boolean
+ title: Rewrite Query
description: Whether to rewrite the query for better results.
default: false
search_mode:
@@ -13217,10 +13236,11 @@ components:
description: The new name for the vector store.
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
description: Expiration policy for the vector store.
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -13532,6 +13552,69 @@ components:
description: Maximum concurrent LLM calls. Falls back to config default if not provided.
title: VectorStoreChunkingStrategyContextualConfig
description: Configuration for contextual chunking that uses an LLM to situate chunks within the document.
+ VectorStoreExpirationAfter:
+ properties:
+ anchor:
+ type: string
+ title: Anchor
+ description: Anchor timestamp after which the expiration policy applies.
+ enum:
+ - last_active_at
+ days:
+ type: integer
+ maximum: 365.0
+ minimum: 1.0
+ title: Days
+ description: The number of days after the anchor time that the vector store will expire.
+ required:
+ - anchor
+ - days
+ title: VectorStoreExpirationAfter
+ description: Expiration policy for a vector store.
+ VectorStoreFileBatchFileEntry:
+ properties:
+ file_id:
+ type: string
+ title: File Id
+ chunking_strategy:
+ anyOf:
+ - oneOf:
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ title: VectorStoreChunkingStrategyAuto
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyStatic
+ - $ref: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ title: VectorStoreChunkingStrategyContextual
+ discriminator:
+ propertyName: type
+ mapping:
+ auto: '#/components/schemas/VectorStoreChunkingStrategyAuto'
+ contextual: '#/components/schemas/VectorStoreChunkingStrategyContextual'
+ static: '#/components/schemas/VectorStoreChunkingStrategyStatic'
+ title: VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic | VectorStoreChunkingStrategyContextual
+ - type: 'null'
+ title: Chunking Strategy
+ attributes:
+ anyOf:
+ - additionalProperties:
+ anyOf:
+ - type: string
+ maxLength: 512
+ - type: number
+ - type: boolean
+ title: string | number | boolean
+ propertyNames:
+ type: string
+ maxLength: 64
+ type: object
+ maxProperties: 16
+ description: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
+ x-oaiTypeLabel: map
+ - type: 'null'
+ required:
+ - file_id
+ title: VectorStoreFileBatchFileEntry
+ description: A file entry for creating a vector store file batch with per-file options.
_URLOrData:
properties:
url:
@@ -13717,6 +13800,12 @@ components:
- content_filter
- function_call
type: string
+ VectorStoreStatus:
+ enum:
+ - expired
+ - in_progress
+ - completed
+ type: string
OpenAIResponseInputToolChoice:
anyOf:
- $ref: '#/components/schemas/OpenAIResponseInputToolChoiceMode'
@@ -14637,6 +14726,11 @@ components:
- type: string
- type: 'null'
nullable: true
+ description:
+ anyOf:
+ - type: string
+ - type: 'null'
+ nullable: true
file_ids:
items:
type: string
@@ -14644,10 +14738,11 @@ components:
type: array
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
chunking_strategy:
anyOf:
- additionalProperties: true
@@ -14655,9 +14750,11 @@ components:
- type: 'null'
nullable: true
metadata:
- additionalProperties: true
- title: Metadata
- type: object
+ anyOf:
+ - additionalProperties: true
+ type: object
+ - type: 'null'
+ nullable: true
title: VectorStoreCreateRequest
VectorStoreModifyRequest:
description: Request to modify a vector store.
@@ -14669,10 +14766,11 @@ components:
nullable: true
expires_after:
anyOf:
- - additionalProperties: true
- type: object
+ - $ref: '#/components/schemas/VectorStoreExpirationAfter'
+ title: VectorStoreExpirationAfter
- type: 'null'
nullable: true
+ title: VectorStoreExpirationAfter
metadata:
anyOf:
- additionalProperties: true
@@ -14699,6 +14797,8 @@ components:
nullable: true
max_num_results:
default: 10
+ maximum: 50
+ minimum: 1
title: Max Num Results
type: integer
ranking_options:
diff --git a/src/llama_stack/core/routers/vector_io.py b/src/llama_stack/core/routers/vector_io.py
index 026bd05a62..d9c188debb 100644
--- a/src/llama_stack/core/routers/vector_io.py
+++ b/src/llama_stack/core/routers/vector_io.py
@@ -408,8 +408,8 @@ async def openai_list_vector_stores(
# Determine pagination info
has_more = len(all_stores) > limit
- first_id = limited_stores[0].id if limited_stores else None
- last_id = limited_stores[-1].id if limited_stores else None
+ first_id = limited_stores[0].id if limited_stores else ""
+ last_id = limited_stores[-1].id if limited_stores else ""
return VectorStoreListResponse(
data=limited_stores,
diff --git a/src/llama_stack/providers/utils/memory/openai_vector_store_mixin.py b/src/llama_stack/providers/utils/memory/openai_vector_store_mixin.py
index a09ddc3bf7..b8886cd107 100644
--- a/src/llama_stack/providers/utils/memory/openai_vector_store_mixin.py
+++ b/src/llama_stack/providers/utils/memory/openai_vector_store_mixin.py
@@ -529,11 +529,11 @@ async def openai_create_vector_store(
"id": vector_store_id,
"object": "vector_store",
"created_at": created_at,
- "name": params.name,
+ "name": params.name or "",
"usage_bytes": 0,
"file_counts": file_counts.model_dump(),
"status": status,
- "expires_after": params.expires_after,
+ "expires_after": params.expires_after.model_dump() if params.expires_after else None,
"expires_at": None,
"last_active_at": created_at,
"file_ids": [],
@@ -619,8 +619,8 @@ async def openai_list_vector_stores(
# Determine pagination info
has_more = len(all_stores) > limit
- first_id = data[0].id if data else None
- last_id = data[-1].id if data else None
+ first_id = data[0].id if data else ""
+ last_id = data[-1].id if data else ""
return VectorStoreListResponse(
data=data,
@@ -655,7 +655,11 @@ async def openai_update_vector_store(
if request.name is not None:
store_info["name"] = request.name
if request.expires_after is not None:
- store_info["expires_after"] = request.expires_after
+ store_info["expires_after"] = (
+ request.expires_after.model_dump()
+ if hasattr(request.expires_after, "model_dump")
+ else request.expires_after
+ )
if request.metadata is not None:
store_info["metadata"] = request.metadata
@@ -915,6 +919,7 @@ async def openai_attach_file_to_vector_store(
chunking_strategy=chunking_strategy,
created_at=created_at,
status="in_progress",
+ usage_bytes=0,
vector_store_id=vector_store_id,
)
@@ -1166,8 +1171,8 @@ async def openai_list_files_in_vector_store(
# Determine pagination info
has_more = len(file_objects) > limit
- first_id = limited_files[0].id if file_objects else None
- last_id = limited_files[-1].id if file_objects else None
+ first_id = limited_files[0].id if file_objects else ""
+ last_id = limited_files[-1].id if file_objects else ""
return VectorStoreListFilesResponse(
data=limited_files,
@@ -1217,6 +1222,7 @@ async def openai_retrieve_vector_store_file_contents(
)
return VectorStoreFileContentResponse(
data=content,
+ has_more=False,
)
async def openai_update_vector_store_file(
@@ -1546,8 +1552,8 @@ async def openai_list_files_in_vector_store_file_batch(
# Determine pagination info
has_more = len(file_objects) > limit
- first_id = limited_files[0].id if limited_files else None
- last_id = limited_files[-1].id if limited_files else None
+ first_id = limited_files[0].id if limited_files else ""
+ last_id = limited_files[-1].id if limited_files else ""
return VectorStoreFilesListInBatchResponse(
data=limited_files,
diff --git a/src/llama_stack_api/vector_io/models.py b/src/llama_stack_api/vector_io/models.py
index e4b3ce70eb..799a2ae109 100644
--- a/src/llama_stack_api/vector_io/models.py
+++ b/src/llama_stack_api/vector_io/models.py
@@ -115,6 +115,20 @@ class QueryChunksResponse(BaseModel):
scores: list[float]
+@json_schema_type
+class VectorStoreExpirationAfter(BaseModel):
+ """Expiration policy for a vector store.
+
+ :param anchor: Anchor timestamp after which the expiration policy applies. Supported anchors: last_active_at
+ :param days: The number of days after the anchor time that the vector store will expire
+ """
+
+ anchor: Literal["last_active_at"] = Field(description="Anchor timestamp after which the expiration policy applies.")
+ days: int = Field(
+ ge=1, le=365, description="The number of days after the anchor time that the vector store will expire."
+ )
+
+
@json_schema_type
class VectorStoreFileCounts(BaseModel):
"""File processing status counts for a vector store.
@@ -133,6 +147,10 @@ class VectorStoreFileCounts(BaseModel):
total: int
+VectorStoreStatus = Literal["expired", "in_progress", "completed"]
+register_schema(VectorStoreStatus, name="VectorStoreStatus")
+
+
@json_schema_type
class VectorStoreObject(BaseModel):
"""OpenAI Vector Store object.
@@ -140,7 +158,7 @@ class VectorStoreObject(BaseModel):
:param id: Unique identifier for the vector store
:param object: Object type identifier, always "vector_store"
:param created_at: Timestamp when the vector store was created
- :param name: (Optional) Name of the vector store
+ :param name: Name of the vector store
:param usage_bytes: Storage space used by the vector store in bytes
:param file_counts: File processing status counts for the vector store
:param status: Current status of the vector store
@@ -151,16 +169,16 @@ class VectorStoreObject(BaseModel):
"""
id: str
- object: str = "vector_store"
+ object: Literal["vector_store"] = "vector_store"
created_at: int
- name: str | None = None
+ name: str = ""
usage_bytes: int = 0
file_counts: VectorStoreFileCounts
- status: str = "completed"
- expires_after: dict[str, Any] | None = None
+ status: VectorStoreStatus
+ expires_after: VectorStoreExpirationAfter | None = None
expires_at: int | None = None
last_active_at: int | None = None
- metadata: dict[str, Any] = Field(default_factory=dict)
+ metadata: dict[str, Any] | None = None
@json_schema_type
@@ -168,6 +186,7 @@ class VectorStoreCreateRequest(BaseModel):
"""Request to create a vector store.
:param name: (Optional) Name for the vector store
+ :param description: (Optional) Description of the vector store
:param file_ids: List of file IDs to include in the vector store
:param expires_after: (Optional) Expiration policy for the vector store
:param chunking_strategy: (Optional) Strategy for splitting files into chunks
@@ -175,10 +194,11 @@ class VectorStoreCreateRequest(BaseModel):
"""
name: str | None = None
+ description: str | None = None
file_ids: list[str] = Field(default_factory=list)
- expires_after: dict[str, Any] | None = None
+ expires_after: VectorStoreExpirationAfter | None = None
chunking_strategy: dict[str, Any] | None = None
- metadata: dict[str, Any] = Field(default_factory=dict)
+ metadata: dict[str, Any] | None = None
@json_schema_type
@@ -191,7 +211,7 @@ class VectorStoreModifyRequest(BaseModel):
"""
name: str | None = None
- expires_after: dict[str, Any] | None = None
+ expires_after: VectorStoreExpirationAfter | None = None
metadata: dict[str, Any] | None = None
@@ -201,16 +221,16 @@ class VectorStoreListResponse(BaseModel):
:param object: Object type identifier, always "list"
:param data: List of vector store objects
- :param first_id: (Optional) ID of the first vector store in the list for pagination
- :param last_id: (Optional) ID of the last vector store in the list for pagination
+ :param first_id: ID of the first vector store in the list for pagination
+ :param last_id: ID of the last vector store in the list for pagination
:param has_more: Whether there are more vector stores available beyond this page
"""
- object: str = "list"
+ object: Literal["list"] = "list"
data: list[VectorStoreObject]
- first_id: str | None = None
- last_id: str | None = None
- has_more: bool = False
+ first_id: str
+ last_id: str
+ has_more: bool
@json_schema_type
@@ -226,7 +246,7 @@ class VectorStoreSearchRequest(BaseModel):
query: str | list[str]
filters: dict[str, Any] | None = None
- max_num_results: int = 10
+ max_num_results: int = Field(default=10, ge=1, le=50)
ranking_options: dict[str, Any] | None = None
rewrite_query: bool = False
@@ -278,10 +298,10 @@ class VectorStoreSearchResponsePage(BaseModel):
:param next_page: (Optional) Token for retrieving the next page of results
"""
- object: str = "vector_store.search_results.page"
+ object: Literal["vector_store.search_results.page"] = "vector_store.search_results.page"
search_query: list[str]
data: list[VectorStoreSearchResponse]
- has_more: bool = False
+ has_more: bool
next_page: str | None = None
@@ -295,8 +315,8 @@ class VectorStoreDeleteResponse(BaseModel):
"""
id: str
- object: str = "vector_store.deleted"
- deleted: bool = True
+ object: Literal["vector_store.deleted"] = "vector_store.deleted"
+ deleted: bool
@json_schema_type
@@ -311,7 +331,7 @@ class VectorStoreFileContentResponse(BaseModel):
object: Literal["vector_store.file_content.page"] = "vector_store.file_content.page"
data: list[VectorStoreContent]
- has_more: bool = False
+ has_more: bool
next_page: str | None = None
@@ -516,11 +536,11 @@ class VectorStoreFileLastError(BaseModel):
:param message: Human-readable error message describing the failure
"""
- code: Literal["server_error"] | Literal["rate_limit_exceeded"]
+ code: Literal["server_error", "unsupported_file", "invalid_file"]
message: str
-VectorStoreFileStatus = Literal["completed"] | Literal["in_progress"] | Literal["cancelled"] | Literal["failed"]
+VectorStoreFileStatus = Literal["in_progress", "completed", "cancelled", "failed"]
register_schema(VectorStoreFileStatus, name="VectorStoreFileStatus")
@@ -592,15 +612,15 @@ class VectorStoreFileObject(BaseModel):
:param attributes: Key-value attributes associated with the file
:param chunking_strategy: Strategy used for splitting the file into chunks
:param created_at: Timestamp when the file was added to the vector store
- :param last_error: (Optional) Error information if file processing failed
+ :param last_error: Error information if file processing failed, or null if no errors
:param status: Current processing status of the file
:param usage_bytes: Storage space used by this file in bytes
:param vector_store_id: ID of the vector store containing this file
"""
id: str
- object: str = "vector_store.file"
- attributes: VectorStoreFileAttributes = Field(default_factory=dict)
+ object: Literal["vector_store.file"] = "vector_store.file"
+ attributes: VectorStoreFileAttributes | None = None
chunking_strategy: VectorStoreChunkingStrategy
created_at: int
last_error: VectorStoreFileLastError | None = None
@@ -610,8 +630,10 @@ class VectorStoreFileObject(BaseModel):
@field_validator("attributes", mode="before")
@classmethod
- def _validate_attributes(cls, v: dict[str, Any] | None) -> dict[str, str | float | bool]:
+ def _validate_attributes(cls, v: dict[str, Any] | None) -> dict[str, str | float | bool] | None:
"""Sanitize attributes to match VectorStoreFileAttributes OpenAPI spec."""
+ if v is None:
+ return None
return _sanitize_vector_store_attributes(v)
@@ -621,16 +643,16 @@ class VectorStoreListFilesResponse(BaseModel):
:param object: Object type identifier, always "list"
:param data: List of vector store file objects
- :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 first_id: ID of the first file in the list for pagination
+ :param last_id: 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"
+ object: Literal["list"] = "list"
data: list[VectorStoreFileObject]
- first_id: str | None = None
- last_id: str | None = None
- has_more: bool = False
+ first_id: str
+ last_id: str
+ has_more: bool
@json_schema_type
@@ -643,8 +665,8 @@ class VectorStoreFileDeleteResponse(BaseModel):
"""
id: str
- object: str = "vector_store.file.deleted"
- deleted: bool = True
+ object: Literal["vector_store.file.deleted"] = "vector_store.file.deleted"
+ deleted: bool
@json_schema_type
@@ -660,7 +682,7 @@ class VectorStoreFileBatchObject(BaseModel):
"""
id: str
- object: str = "vector_store.file_batch"
+ object: Literal["vector_store.file_batch"] = "vector_store.file_batch"
created_at: int
vector_store_id: str
status: VectorStoreFileStatus
@@ -673,16 +695,16 @@ class VectorStoreFilesListInBatchResponse(BaseModel):
: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 first_id: ID of the first file in the list for pagination
+ :param last_id: 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"
+ object: Literal["list"] = "list"
data: list[VectorStoreFileObject]
- first_id: str | None = None
- last_id: str | None = None
- has_more: bool = False
+ first_id: str
+ last_id: str
+ has_more: bool
# extra_body can be accessed via .model_extra
@@ -691,6 +713,7 @@ class OpenAICreateVectorStoreRequestWithExtraBody(BaseModel, extra="allow"):
"""Request to create a vector store with extra_body support.
:param name: (Optional) A name for the vector store
+ :param description: (Optional) Description of the vector store
:param file_ids: List of file IDs to include in the vector store
:param expires_after: (Optional) Expiration policy for the vector store
:param chunking_strategy: (Optional) Strategy for splitting files into chunks
@@ -698,24 +721,41 @@ class OpenAICreateVectorStoreRequestWithExtraBody(BaseModel, extra="allow"):
"""
name: str | None = None
+ description: str | None = None
file_ids: list[str] | None = None
- expires_after: dict[str, Any] | None = None
+ expires_after: VectorStoreExpirationAfter | None = None
chunking_strategy: VectorStoreChunkingStrategy | None = None
metadata: dict[str, Any] | None = None
+@json_schema_type
+class VectorStoreFileBatchFileEntry(BaseModel):
+ """A file entry for creating a vector store file batch with per-file options.
+
+ :param file_id: A File ID that the vector store should use
+ :param chunking_strategy: (Optional) The chunking strategy used to chunk the file
+ :param attributes: (Optional) Key-value attributes to store with the file
+ """
+
+ file_id: str
+ chunking_strategy: VectorStoreChunkingStrategy | None = None
+ attributes: VectorStoreFileAttributes | None = None
+
+
# extra_body can be accessed via .model_extra
@json_schema_type
class OpenAICreateVectorStoreFileBatchRequestWithExtraBody(BaseModel, extra="allow"):
"""Request to create a vector store file batch with extra_body support.
- :param file_ids: A list of File IDs that the vector store should use
+ :param file_ids: A list of File IDs that the vector store should use. Mutually exclusive with files
+ :param files: A list of file entries with per-file options. Mutually exclusive with file_ids
: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
"""
- file_ids: list[str]
- attributes: dict[str, Any] | None = None
+ file_ids: list[str] = Field(default_factory=list)
+ files: list[VectorStoreFileBatchFileEntry] | None = None
+ attributes: VectorStoreFileAttributes | None = None
chunking_strategy: VectorStoreChunkingStrategy | None = None
@@ -762,7 +802,9 @@ class OpenAIUpdateVectorStoreRequest(BaseModel):
"""Request body for updating a vector store."""
name: str | None = Field(default=None, description="The new name for the vector store.")
- expires_after: dict[str, Any] | None = Field(default=None, description="Expiration policy for the vector store.")
+ expires_after: VectorStoreExpirationAfter | None = Field(
+ default=None, description="Expiration policy for the vector store."
+ )
metadata: dict[str, Any] | None = Field(default=None, description="Metadata to associate with the vector store.")
@@ -772,9 +814,9 @@ class OpenAISearchVectorStoreRequest(BaseModel):
query: str | list[str] = Field(description="The search query string or list of query strings.")
filters: dict[str, Any] | None = Field(default=None, description="Filters to apply to the search.")
- max_num_results: int | None = Field(default=10, description="Maximum number of results to return.")
+ max_num_results: int = Field(default=10, ge=1, le=50, description="Maximum number of results to return.")
ranking_options: SearchRankingOptions | None = Field(default=None, description="Options for ranking results.")
- rewrite_query: bool | None = Field(default=False, description="Whether to rewrite the query for better results.")
+ rewrite_query: bool = Field(default=False, description="Whether to rewrite the query for better results.")
search_mode: str | None = Field(default="vector", description="The search mode to use (e.g., 'vector', 'keyword').")
@@ -783,7 +825,10 @@ class OpenAIAttachFileRequest(BaseModel):
"""Request body for attaching a file to a vector store."""
file_id: str = Field(description="The ID of the file to attach.")
- attributes: dict[str, Any] | None = Field(default=None, description="Attributes to associate with the file.")
+ attributes: VectorStoreFileAttributes | None = Field(
+ default=None,
+ description="Attributes to associate with the file.",
+ )
chunking_strategy: VectorStoreChunkingStrategy | None = Field(
default=None, description="Strategy for chunking the file content."
)
@@ -824,7 +869,9 @@ class OpenAIUpdateVectorStoreFileRequest(BaseModel):
"VectorStoreContent",
"VectorStoreCreateRequest",
"VectorStoreDeleteResponse",
+ "VectorStoreExpirationAfter",
"VectorStoreFileAttributes",
+ "VectorStoreFileBatchFileEntry",
"VectorStoreFileBatchObject",
"VectorStoreFileContentResponse",
"VectorStoreFileCounts",
@@ -840,4 +887,5 @@ class OpenAIUpdateVectorStoreFileRequest(BaseModel):
"VectorStoreSearchRequest",
"VectorStoreSearchResponse",
"VectorStoreSearchResponsePage",
+ "VectorStoreStatus",
]
diff --git a/tests/unit/core/routers/test_vector_stores_abac.py b/tests/unit/core/routers/test_vector_stores_abac.py
index 72a971f527..48d4bc98df 100644
--- a/tests/unit/core/routers/test_vector_stores_abac.py
+++ b/tests/unit/core/routers/test_vector_stores_abac.py
@@ -63,6 +63,9 @@ def mock_provider():
return_value=VectorStoreObject(
id="vs_123",
created_at=1234567890,
+ name="test",
+ usage_bytes=0,
+ status="completed",
file_counts=VectorStoreFileCounts(completed=0, cancelled=0, failed=0, in_progress=0, total=0),
)
)
@@ -70,6 +73,9 @@ def mock_provider():
return_value=VectorStoreObject(
id="vs_123",
created_at=1234567890,
+ name="test",
+ usage_bytes=0,
+ status="completed",
file_counts=VectorStoreFileCounts(completed=0, cancelled=0, failed=0, in_progress=0, total=0),
)
)
@@ -85,11 +91,12 @@ def mock_provider():
),
created_at=1234567890,
status="completed",
+ usage_bytes=0,
vector_store_id="vs_123",
)
)
provider.openai_list_files_in_vector_store = AsyncMock(
- return_value=VectorStoreListFilesResponse(data=[], has_more=False)
+ return_value=VectorStoreListFilesResponse(data=[], first_id="", last_id="", has_more=False)
)
provider.openai_retrieve_vector_store_file = AsyncMock(
return_value=VectorStoreFileObject(
@@ -99,6 +106,7 @@ def mock_provider():
),
created_at=1234567890,
status="completed",
+ usage_bytes=0,
vector_store_id="vs_123",
)
)
@@ -110,6 +118,7 @@ def mock_provider():
),
created_at=1234567890,
status="completed",
+ usage_bytes=0,
vector_store_id="vs_123",
)
)
@@ -135,7 +144,7 @@ def mock_provider():
)
)
provider.openai_list_files_in_vector_store_file_batch = AsyncMock(
- return_value=VectorStoreFilesListInBatchResponse(data=[], has_more=False)
+ return_value=VectorStoreFilesListInBatchResponse(data=[], first_id="", last_id="", has_more=False)
)
provider.openai_cancel_vector_store_file_batch = AsyncMock(
return_value=VectorStoreFileBatchObject(
diff --git a/tests/unit/providers/responses/builtin/test_openai_responses_tools.py b/tests/unit/providers/responses/builtin/test_openai_responses_tools.py
index b5a2a43533..68c4f93250 100644
--- a/tests/unit/providers/responses/builtin/test_openai_responses_tools.py
+++ b/tests/unit/providers/responses/builtin/test_openai_responses_tools.py
@@ -423,6 +423,7 @@ async def test_file_search_results_include_chunk_metadata_attributes(mock_vector
# Mock vector_io to return search results with custom attributes
mock_vector_io_api.openai_search_vector_store.return_value = VectorStoreSearchResponsePage(
search_query=[query],
+ has_more=False,
data=[
VectorStoreSearchResponse(
file_id="doc-123",
diff --git a/tests/unit/providers/vector_io/test_vector_utils.py b/tests/unit/providers/vector_io/test_vector_utils.py
index 5690937957..9b8b368afb 100644
--- a/tests/unit/providers/vector_io/test_vector_utils.py
+++ b/tests/unit/providers/vector_io/test_vector_utils.py
@@ -135,6 +135,7 @@ def test_vector_store_file_object_attributes_validation():
created_at=1234567890,
status="completed",
vector_store_id="vs-123",
+ usage_bytes=0,
)
# Lists converted to comma-separated strings
@@ -161,6 +162,7 @@ def test_vector_store_file_object_attributes_constraints():
created_at=1234567890,
status="completed",
vector_store_id="vs-123",
+ usage_bytes=0,
)
assert len(file_obj.attributes) == 16 # Max 16 properties
@@ -173,6 +175,7 @@ def test_vector_store_file_object_attributes_constraints():
created_at=1234567890,
status="completed",
vector_store_id="vs-123",
+ usage_bytes=0,
)
assert "a" * 65 not in file_obj.attributes
assert "valid_key" in file_obj.attributes
@@ -186,6 +189,7 @@ def test_vector_store_file_object_attributes_constraints():
created_at=1234567890,
status="completed",
vector_store_id="vs-123",
+ usage_bytes=0,
)
assert len(file_obj.attributes["key"]) == 512
diff --git a/tests/unit/server/test_vector_io_fastapi_router.py b/tests/unit/server/test_vector_io_fastapi_router.py
index 873711b2e4..a09a79eaf3 100644
--- a/tests/unit/server/test_vector_io_fastapi_router.py
+++ b/tests/unit/server/test_vector_io_fastapi_router.py
@@ -16,7 +16,9 @@
def test_vector_io_router_list_vector_stores() -> None:
impl = AsyncMock()
- impl.openai_list_vector_stores = AsyncMock(return_value=VectorStoreListResponse(data=[]))
+ impl.openai_list_vector_stores = AsyncMock(
+ return_value=VectorStoreListResponse(data=[], first_id="", last_id="", has_more=False)
+ )
router = build_fastapi_router(Api.vector_io, impl)
assert router is not None
@@ -28,7 +30,7 @@ def test_vector_io_router_list_vector_stores() -> None:
response = client.get("/v1/vector_stores")
assert response.status_code == 200
- assert response.json() == {"object": "list", "data": [], "first_id": None, "last_id": None, "has_more": False}
+ assert response.json() == {"object": "list", "data": [], "first_id": "", "last_id": "", "has_more": False}
impl.openai_list_vector_stores.assert_awaited_once()
@@ -36,7 +38,7 @@ def test_vector_io_router_list_vector_stores() -> None:
def test_vector_io_router_search_vector_store_passes_body_fields() -> None:
impl = AsyncMock()
impl.openai_search_vector_store = AsyncMock(
- return_value=VectorStoreSearchResponsePage(search_query=["hello"], data=[])
+ return_value=VectorStoreSearchResponsePage(search_query=["hello"], data=[], has_more=False)
)
router = build_fastapi_router(Api.vector_io, impl)