diff --git a/docs/static/llama-stack-spec.html b/docs/static/llama-stack-spec.html
index c7e2b5ea2..e3ce6df58 100644
--- a/docs/static/llama-stack-spec.html
+++ b/docs/static/llama-stack-spec.html
@@ -545,6 +545,124 @@
}
}
},
+ "/v1/openai/v1/responses": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A ListOpenAIResponseObject.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ListOpenAIResponseObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Agents"
+ ],
+ "summary": "List all OpenAI responses.",
+ "description": "List all OpenAI responses.",
+ "parameters": [
+ {
+ "name": "after",
+ "in": "query",
+ "description": "The ID of the last response to return.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "The number of responses to return.",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "model",
+ "in": "query",
+ "description": "The model to filter responses by.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "order",
+ "in": "query",
+ "description": "The order to sort responses by when sorted by created_at ('asc' or 'desc').",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/Order"
+ }
+ }
+ ]
+ },
+ "post": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIResponseObject.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIResponseObject"
+ }
+ },
+ "text/event-stream": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIResponseObjectStream"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Agents"
+ ],
+ "summary": "Create a new OpenAI response.",
+ "description": "Create a new OpenAI response.",
+ "parameters": [],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateOpenaiResponseRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/prompts": {
"get": {
"responses": {
@@ -895,6 +1013,92 @@
]
}
},
+ "/v1/openai/v1/responses/{response_id}": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIResponseObject.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIResponseObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Agents"
+ ],
+ "summary": "Retrieve an OpenAI response by its ID.",
+ "description": "Retrieve an OpenAI response by its ID.",
+ "parameters": [
+ {
+ "name": "response_id",
+ "in": "path",
+ "description": "The ID of the OpenAI response to retrieve.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "delete": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIDeleteResponseObject",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIDeleteResponseObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Agents"
+ ],
+ "summary": "Delete an OpenAI response by its ID.",
+ "description": "Delete an OpenAI response by its ID.",
+ "parameters": [
+ {
+ "name": "response_id",
+ "in": "path",
+ "description": "The ID of the OpenAI response to delete.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
"/v1/prompts/{prompt_id}": {
"get": {
"responses": {
@@ -1522,6 +1726,50 @@
]
}
},
+ "/v1/openai/v1/chat/completions/{completion_id}": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A OpenAICompletionWithInputMessages.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAICompletionWithInputMessages"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Inference"
+ ],
+ "summary": "Describe a chat completion by its ID.",
+ "description": "Describe a chat completion by its ID.",
+ "parameters": [
+ {
+ "name": "completion_id",
+ "in": "path",
+ "description": "ID of the chat completion.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
"/v1/datasets/{dataset_id}": {
"get": {
"responses": {
@@ -3313,6 +3561,126 @@
}
}
},
+ "/v1/openai/v1/chat/completions": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A ListOpenAIChatCompletionResponse.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ListOpenAIChatCompletionResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Inference"
+ ],
+ "summary": "List all chat completions.",
+ "description": "List all chat completions.",
+ "parameters": [
+ {
+ "name": "after",
+ "in": "query",
+ "description": "The ID of the last chat completion to return.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "The maximum number of chat completions to return.",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "model",
+ "in": "query",
+ "description": "The model to filter by.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "order",
+ "in": "query",
+ "description": "The order to sort the chat completions by: \"asc\" or \"desc\". Defaults to \"desc\".",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/Order"
+ }
+ }
+ ]
+ },
+ "post": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIChatCompletion.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/OpenAIChatCompletion"
+ },
+ {
+ "$ref": "#/components/schemas/OpenAIChatCompletionChunk"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Inference"
+ ],
+ "summary": "Generate an OpenAI-compatible chat completion for the given messages using the specified model.",
+ "description": "Generate an OpenAI-compatible chat completion for the given messages using the specified model.",
+ "parameters": [],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiChatCompletionRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/datasets": {
"get": {
"responses": {
@@ -3557,6 +3925,98 @@
]
}
},
+ "/v1/openai/v1/responses/{response_id}/input_items": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "An ListOpenAIResponseInputItem.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ListOpenAIResponseInputItem"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Agents"
+ ],
+ "summary": "List input items for a given OpenAI response.",
+ "description": "List input items for a given OpenAI response.",
+ "parameters": [
+ {
+ "name": "response_id",
+ "in": "path",
+ "description": "The ID of the response to retrieve input items for.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "after",
+ "in": "query",
+ "description": "An item ID to list items after, used for pagination.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "before",
+ "in": "query",
+ "description": "An item ID to list items before, used for pagination.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "description": "Additional fields to include in the response.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "order",
+ "in": "query",
+ "description": "The order to return the input items in. Default is desc.",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/Order"
+ }
+ }
+ ]
+ }
+ },
"/v1/prompts/{prompt_id}/versions": {
"get": {
"responses": {
@@ -4234,6 +4694,147 @@
}
}
},
+ "/v1/openai/v1/vector_stores/{vector_store_id}/files": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreListFilesResponse containing the list of files.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreListFilesResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "List files in a vector store.",
+ "description": "List files in a vector store.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store to list files from.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "(Optional) A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "order",
+ "in": "query",
+ "description": "(Optional) Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "after",
+ "in": "query",
+ "description": "(Optional) A cursor for use in pagination. `after` is an object ID that defines your place in the list.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "before",
+ "in": "query",
+ "description": "(Optional) A cursor for use in pagination. `before` is an object ID that defines your place in the list.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "description": "(Optional) Filter by file status to only return files with the specified status.",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreFileStatus"
+ }
+ }
+ ]
+ },
+ "post": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreFileObject representing the attached file.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreFileObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Attach a file to a vector store.",
+ "description": "Attach a file to a vector store.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store to attach the file to.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiAttachFileToVectorStoreRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/completions": {
"post": {
"responses": {
@@ -4278,6 +4879,50 @@
}
}
},
+ "/v1/openai/v1/completions": {
+ "post": {
+ "responses": {
+ "200": {
+ "description": "An OpenAICompletion.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAICompletion"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Inference"
+ ],
+ "summary": "Generate an OpenAI-compatible completion for the given prompt using the specified model.",
+ "description": "Generate an OpenAI-compatible completion for the given prompt using the specified model.",
+ "parameters": [],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiCompletionRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/vector_stores": {
"get": {
"responses": {
@@ -4391,6 +5036,119 @@
}
}
},
+ "/v1/openai/v1/vector_stores": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreListResponse containing the list of vector stores.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreListResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Returns a list of vector stores.",
+ "description": "Returns a list of vector stores.",
+ "parameters": [
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "order",
+ "in": "query",
+ "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "after",
+ "in": "query",
+ "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "before",
+ "in": "query",
+ "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "post": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreObject representing the created vector store.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Creates a vector store.",
+ "description": "Creates a vector store.",
+ "parameters": [],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiCreateVectorStoreRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/files/{file_id}": {
"get": {
"responses": {
@@ -4477,6 +5235,92 @@
]
}
},
+ "/v1/openai/v1/files/{file_id}": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIFileObject containing file information.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIFileObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Files"
+ ],
+ "summary": "Returns information about a specific file.",
+ "description": "Returns information about a specific file.",
+ "parameters": [
+ {
+ "name": "file_id",
+ "in": "path",
+ "description": "The ID of the file to use for this request.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "delete": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIFileDeleteResponse indicating successful deletion.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIFileDeleteResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Files"
+ ],
+ "summary": "Delete a file.",
+ "description": "Delete a file.",
+ "parameters": [
+ {
+ "name": "file_id",
+ "in": "path",
+ "description": "The ID of the file to use for this request.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
"/v1/vector_stores/{vector_store_id}": {
"get": {
"responses": {
@@ -4615,6 +5459,144 @@
]
}
},
+ "/v1/openai/v1/vector_stores/{vector_store_id}": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreObject representing the vector store.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Retrieves a vector store.",
+ "description": "Retrieves a vector store.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store to retrieve.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "post": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreObject representing the updated vector store.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Updates a vector store.",
+ "description": "Updates a vector store.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store to update.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiUpdateVectorStoreRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ },
+ "delete": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreDeleteResponse indicating the deletion status.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreDeleteResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Delete a vector store.",
+ "description": "Delete a vector store.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store to delete.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
"/v1/vector_stores/{vector_store_id}/files/{file_id}": {
"get": {
"responses": {
@@ -4780,6 +5762,171 @@
]
}
},
+ "/v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreFileObject representing the file.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreFileObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Retrieves a vector store file.",
+ "description": "Retrieves a vector store file.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store containing the file to retrieve.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "file_id",
+ "in": "path",
+ "description": "The ID of the file to retrieve.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "post": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreFileObject representing the updated file.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreFileObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Updates a vector store file.",
+ "description": "Updates a vector store file.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store containing the file to update.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "file_id",
+ "in": "path",
+ "description": "The ID of the file to update.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiUpdateVectorStoreFileRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ },
+ "delete": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreFileDeleteResponse indicating the deletion status.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreFileDeleteResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Delete a vector store file.",
+ "description": "Delete a vector store file.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store containing the file to delete.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "file_id",
+ "in": "path",
+ "description": "The ID of the file to delete.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
"/v1/embeddings": {
"post": {
"responses": {
@@ -4824,6 +5971,50 @@
}
}
},
+ "/v1/openai/v1/embeddings": {
+ "post": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIEmbeddingsResponse containing the embeddings.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIEmbeddingsResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Inference"
+ ],
+ "summary": "Generate OpenAI-compatible embeddings for the given input using the specified model.",
+ "description": "Generate OpenAI-compatible embeddings for the given input using the specified model.",
+ "parameters": [],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiEmbeddingsRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/files": {
"get": {
"responses": {
@@ -4972,6 +6163,188 @@
}
}
},
+ "/v1/openai/v1/files": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "An ListOpenAIFileResponse containing the list of files.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ListOpenAIFileResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Files"
+ ],
+ "summary": "Returns a list of files that belong to the user's organization.",
+ "description": "Returns a list of files that belong to the user's organization.",
+ "parameters": [
+ {
+ "name": "after",
+ "in": "query",
+ "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "A limit on the number of objects to be returned. Limit can range between 1 and 10,000, and the default is 10,000.",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "order",
+ "in": "query",
+ "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/Order"
+ }
+ },
+ {
+ "name": "purpose",
+ "in": "query",
+ "description": "Only return files with the given purpose.",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIFilePurpose"
+ }
+ }
+ ]
+ },
+ "post": {
+ "responses": {
+ "200": {
+ "description": "An OpenAIFileObject representing the uploaded file.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIFileObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Files"
+ ],
+ "summary": "Upload a file that can be used across various endpoints.",
+ "description": "Upload a file that can be used across various endpoints.\nThe file upload should be a multipart form request with:\n- file: The File object (not file name) to be uploaded.\n- purpose: The intended purpose of the uploaded file.\n- expires_after: Optional form values describing expiration for the file. Expected expires_after[anchor] = \"created_at\", expires_after[seconds] = {integer}. Seconds must be between 3600 and 2592000 (1 hour to 30 days).",
+ "parameters": [],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "file": {
+ "type": "string",
+ "format": "binary"
+ },
+ "purpose": {
+ "$ref": "#/components/schemas/OpenAIFilePurpose"
+ },
+ "expires_after_anchor": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "expires_after_seconds": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "file",
+ "purpose",
+ "expires_after_anchor",
+ "expires_after_seconds"
+ ]
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
+ "/v1/openai/v1/models": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A OpenAIListModelsResponse.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenAIListModelsResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Models"
+ ],
+ "summary": "List models using the OpenAI API.",
+ "description": "List models using the OpenAI API.",
+ "parameters": []
+ }
+ },
"/v1/files/{file_id}/content": {
"get": {
"responses": {
@@ -5016,6 +6389,50 @@
]
}
},
+ "/v1/openai/v1/files/{file_id}/content": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "The raw file content as a binary response.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Response"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Files"
+ ],
+ "summary": "Returns the contents of the specified file.",
+ "description": "Returns the contents of the specified file.",
+ "parameters": [
+ {
+ "name": "file_id",
+ "in": "path",
+ "description": "The ID of the file to use for this request.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
"/v1/vector_stores/{vector_store_id}/files/{file_id}/content": {
"get": {
"responses": {
@@ -5069,6 +6486,59 @@
]
}
},
+ "/v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}/content": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "A list of InterleavedContent representing the file contents.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreFileContentsResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Retrieves the contents of a vector store file.",
+ "description": "Retrieves the contents of a vector store file.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store containing the file to retrieve.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "file_id",
+ "in": "path",
+ "description": "The ID of the file to retrieve.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
"/v1/vector_stores/{vector_store_id}/search": {
"post": {
"responses": {
@@ -5123,6 +6593,60 @@
}
}
},
+ "/v1/openai/v1/vector_stores/{vector_store_id}/search": {
+ "post": {
+ "responses": {
+ "200": {
+ "description": "A VectorStoreSearchResponse containing the search results.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VectorStoreSearchResponsePage"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "VectorIO"
+ ],
+ "summary": "Search for chunks in a vector store.",
+ "description": "Search for chunks in a vector store.\nSearches a vector store for relevant chunks based on a query and optional file attribute filters.",
+ "parameters": [
+ {
+ "name": "vector_store_id",
+ "in": "path",
+ "description": "The ID of the vector store to search.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OpenaiSearchVectorStoreRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1alpha/post-training/preference-optimize": {
"post": {
"responses": {
@@ -5714,6 +7238,50 @@
}
}
},
+ "/v1/openai/v1/moderations": {
+ "post": {
+ "responses": {
+ "200": {
+ "description": "A moderation object.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModerationObject"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Safety"
+ ],
+ "summary": "Classifies if text and/or image inputs are potentially harmful.",
+ "description": "Classifies if text and/or image inputs are potentially harmful.",
+ "parameters": [],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RunModerationRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/safety/run-shield": {
"post": {
"responses": {
diff --git a/docs/static/llama-stack-spec.yaml b/docs/static/llama-stack-spec.yaml
index fc6114e43..ee0240640 100644
--- a/docs/static/llama-stack-spec.yaml
+++ b/docs/static/llama-stack-spec.yaml
@@ -367,6 +367,87 @@ paths:
schema:
$ref: '#/components/schemas/CreateOpenaiResponseRequest'
required: true
+ /v1/openai/v1/responses:
+ get:
+ responses:
+ '200':
+ description: A ListOpenAIResponseObject.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListOpenAIResponseObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Agents
+ summary: List all OpenAI responses.
+ description: List all OpenAI responses.
+ parameters:
+ - name: after
+ in: query
+ description: The ID of the last response to return.
+ required: false
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: The number of responses to return.
+ required: false
+ schema:
+ type: integer
+ - name: model
+ in: query
+ description: The model to filter responses by.
+ required: false
+ schema:
+ type: string
+ - name: order
+ in: query
+ description: >-
+ The order to sort responses by when sorted by created_at ('asc' or 'desc').
+ required: false
+ schema:
+ $ref: '#/components/schemas/Order'
+ post:
+ responses:
+ '200':
+ description: An OpenAIResponseObject.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIResponseObject'
+ text/event-stream:
+ schema:
+ $ref: '#/components/schemas/OpenAIResponseObjectStream'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Agents
+ summary: Create a new OpenAI response.
+ description: Create a new OpenAI response.
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateOpenaiResponseRequest'
+ required: true
/v1/prompts:
get:
responses:
@@ -618,6 +699,66 @@ paths:
required: true
schema:
type: string
+ /v1/openai/v1/responses/{response_id}:
+ get:
+ responses:
+ '200':
+ description: An OpenAIResponseObject.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIResponseObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Agents
+ summary: Retrieve an OpenAI response by its ID.
+ description: Retrieve an OpenAI response by its ID.
+ parameters:
+ - name: response_id
+ in: path
+ description: >-
+ The ID of the OpenAI response to retrieve.
+ required: true
+ schema:
+ type: string
+ delete:
+ responses:
+ '200':
+ description: An OpenAIDeleteResponseObject
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIDeleteResponseObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Agents
+ summary: Delete an OpenAI response by its ID.
+ description: Delete an OpenAI response by its ID.
+ parameters:
+ - name: response_id
+ in: path
+ description: The ID of the OpenAI response to delete.
+ required: true
+ schema:
+ type: string
/v1/prompts/{prompt_id}:
get:
responses:
@@ -1063,6 +1204,36 @@ paths:
required: true
schema:
type: string
+ /v1/openai/v1/chat/completions/{completion_id}:
+ get:
+ responses:
+ '200':
+ description: A OpenAICompletionWithInputMessages.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAICompletionWithInputMessages'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Inference
+ summary: Describe a chat completion by its ID.
+ description: Describe a chat completion by its ID.
+ parameters:
+ - name: completion_id
+ in: path
+ description: ID of the chat completion.
+ required: true
+ schema:
+ type: string
/v1/datasets/{dataset_id}:
get:
responses:
@@ -2346,6 +2517,93 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiChatCompletionRequest'
required: true
+ /v1/openai/v1/chat/completions:
+ get:
+ responses:
+ '200':
+ description: A ListOpenAIChatCompletionResponse.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListOpenAIChatCompletionResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Inference
+ summary: List all chat completions.
+ description: List all chat completions.
+ parameters:
+ - name: after
+ in: query
+ description: >-
+ The ID of the last chat completion to return.
+ required: false
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: >-
+ The maximum number of chat completions to return.
+ required: false
+ schema:
+ type: integer
+ - name: model
+ in: query
+ description: The model to filter by.
+ required: false
+ schema:
+ type: string
+ - name: order
+ in: query
+ description: >-
+ The order to sort the chat completions by: "asc" or "desc". Defaults to
+ "desc".
+ required: false
+ schema:
+ $ref: '#/components/schemas/Order'
+ post:
+ responses:
+ '200':
+ description: An OpenAIChatCompletion.
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/OpenAIChatCompletion'
+ - $ref: '#/components/schemas/OpenAIChatCompletionChunk'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Inference
+ summary: >-
+ Generate an OpenAI-compatible chat completion for the given messages using
+ the specified model.
+ description: >-
+ Generate an OpenAI-compatible chat completion for the given messages using
+ the specified model.
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiChatCompletionRequest'
+ required: true
/v1/datasets:
get:
responses:
@@ -2523,6 +2781,77 @@ paths:
required: false
schema:
$ref: '#/components/schemas/Order'
+ /v1/openai/v1/responses/{response_id}/input_items:
+ get:
+ responses:
+ '200':
+ description: An ListOpenAIResponseInputItem.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListOpenAIResponseInputItem'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Agents
+ summary: >-
+ List input items for a given OpenAI response.
+ description: >-
+ List input items for a given OpenAI response.
+ parameters:
+ - name: response_id
+ in: path
+ description: >-
+ The ID of the response to retrieve input items for.
+ required: true
+ schema:
+ type: string
+ - name: after
+ in: query
+ description: >-
+ An item ID to list items after, used for pagination.
+ required: false
+ schema:
+ type: string
+ - name: before
+ in: query
+ description: >-
+ An item ID to list items before, used for pagination.
+ required: false
+ schema:
+ type: string
+ - name: include
+ in: query
+ description: >-
+ Additional fields to include in the response.
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: limit
+ in: query
+ description: >-
+ A limit on the number of objects to be returned. Limit can range between
+ 1 and 100, and the default is 20.
+ required: false
+ schema:
+ type: integer
+ - name: order
+ in: query
+ description: >-
+ The order to return the input items in. Default is desc.
+ required: false
+ schema:
+ $ref: '#/components/schemas/Order'
/v1/prompts/{prompt_id}/versions:
get:
responses:
@@ -3015,6 +3344,115 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiAttachFileToVectorStoreRequest'
required: true
+ /v1/openai/v1/vector_stores/{vector_store_id}/files:
+ get:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreListFilesResponse containing the list of files.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreListFilesResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: List files in a vector store.
+ description: List files in a vector store.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: >-
+ The ID of the vector store to list files from.
+ required: true
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: >-
+ (Optional) A limit on the number of objects to be returned. Limit can
+ range between 1 and 100, and the default is 20.
+ required: false
+ schema:
+ type: integer
+ - name: order
+ in: query
+ description: >-
+ (Optional) Sort order by the `created_at` timestamp of the objects. `asc`
+ for ascending order and `desc` for descending order.
+ required: false
+ schema:
+ type: string
+ - name: after
+ in: query
+ description: >-
+ (Optional) A cursor for use in pagination. `after` is an object ID that
+ defines your place in the list.
+ required: false
+ schema:
+ type: string
+ - name: before
+ in: query
+ description: >-
+ (Optional) A cursor for use in pagination. `before` is an object ID that
+ defines your place in the list.
+ required: false
+ schema:
+ type: string
+ - name: filter
+ in: query
+ description: >-
+ (Optional) Filter by file status to only return files with the specified
+ status.
+ required: false
+ schema:
+ $ref: '#/components/schemas/VectorStoreFileStatus'
+ post:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreFileObject representing the attached file.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreFileObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Attach a file to a vector store.
+ description: Attach a file to a vector store.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: >-
+ The ID of the vector store to attach the file to.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiAttachFileToVectorStoreRequest'
+ required: true
/v1/completions:
post:
responses:
@@ -3049,6 +3487,40 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiCompletionRequest'
required: true
+ /v1/openai/v1/completions:
+ post:
+ responses:
+ '200':
+ description: An OpenAICompletion.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAICompletion'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Inference
+ summary: >-
+ Generate an OpenAI-compatible completion for the given prompt using the specified
+ model.
+ description: >-
+ Generate an OpenAI-compatible completion for the given prompt using the specified
+ model.
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiCompletionRequest'
+ required: true
/v1/vector_stores:
get:
responses:
@@ -3136,6 +3608,93 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiCreateVectorStoreRequest'
required: true
+ /v1/openai/v1/vector_stores:
+ get:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreListResponse containing the list of vector stores.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreListResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Returns a list of vector stores.
+ description: Returns a list of vector stores.
+ parameters:
+ - name: limit
+ in: query
+ description: >-
+ A limit on the number of objects to be returned. Limit can range between
+ 1 and 100, and the default is 20.
+ required: false
+ schema:
+ type: integer
+ - name: order
+ in: query
+ description: >-
+ Sort order by the `created_at` timestamp of the objects. `asc` for ascending
+ order and `desc` for descending order.
+ required: false
+ schema:
+ type: string
+ - name: after
+ in: query
+ description: >-
+ A cursor for use in pagination. `after` is an object ID that defines your
+ place in the list.
+ required: false
+ schema:
+ type: string
+ - name: before
+ in: query
+ description: >-
+ A cursor for use in pagination. `before` is an object ID that defines
+ your place in the list.
+ required: false
+ schema:
+ type: string
+ post:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreObject representing the created vector store.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Creates a vector store.
+ description: Creates a vector store.
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiCreateVectorStoreRequest'
+ required: true
/v1/files/{file_id}:
get:
responses:
@@ -3201,6 +3760,71 @@ paths:
required: true
schema:
type: string
+ /v1/openai/v1/files/{file_id}:
+ get:
+ responses:
+ '200':
+ description: >-
+ An OpenAIFileObject containing file information.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIFileObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Files
+ summary: >-
+ Returns information about a specific file.
+ description: >-
+ Returns information about a specific file.
+ parameters:
+ - name: file_id
+ in: path
+ description: >-
+ The ID of the file to use for this request.
+ required: true
+ schema:
+ type: string
+ delete:
+ responses:
+ '200':
+ description: >-
+ An OpenAIFileDeleteResponse indicating successful deletion.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIFileDeleteResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Files
+ summary: Delete a file.
+ description: Delete a file.
+ parameters:
+ - name: file_id
+ in: path
+ description: >-
+ The ID of the file to use for this request.
+ required: true
+ schema:
+ type: string
/v1/vector_stores/{vector_store_id}:
get:
responses:
@@ -3298,6 +3922,103 @@ paths:
required: true
schema:
type: string
+ /v1/openai/v1/vector_stores/{vector_store_id}:
+ get:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreObject representing the vector store.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Retrieves a vector store.
+ description: Retrieves a vector store.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: The ID of the vector store to retrieve.
+ required: true
+ schema:
+ type: string
+ post:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreObject representing the updated vector store.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Updates a vector store.
+ description: Updates a vector store.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: The ID of the vector store to update.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiUpdateVectorStoreRequest'
+ required: true
+ delete:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreDeleteResponse indicating the deletion status.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreDeleteResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Delete a vector store.
+ description: Delete a vector store.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: The ID of the vector store to delete.
+ required: true
+ schema:
+ type: string
/v1/vector_stores/{vector_store_id}/files/{file_id}:
get:
responses:
@@ -3416,6 +4137,124 @@ paths:
required: true
schema:
type: string
+ /v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}:
+ get:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreFileObject representing the file.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreFileObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Retrieves a vector store file.
+ description: Retrieves a vector store file.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: >-
+ The ID of the vector store containing the file to retrieve.
+ required: true
+ schema:
+ type: string
+ - name: file_id
+ in: path
+ description: The ID of the file to retrieve.
+ required: true
+ schema:
+ type: string
+ post:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreFileObject representing the updated file.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreFileObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Updates a vector store file.
+ description: Updates a vector store file.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: >-
+ The ID of the vector store containing the file to update.
+ required: true
+ schema:
+ type: string
+ - name: file_id
+ in: path
+ description: The ID of the file to update.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiUpdateVectorStoreFileRequest'
+ required: true
+ delete:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreFileDeleteResponse indicating the deletion status.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreFileDeleteResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Delete a vector store file.
+ description: Delete a vector store file.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: >-
+ The ID of the vector store containing the file to delete.
+ required: true
+ schema:
+ type: string
+ - name: file_id
+ in: path
+ description: The ID of the file to delete.
+ required: true
+ schema:
+ type: string
/v1/embeddings:
post:
responses:
@@ -3451,6 +4290,41 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiEmbeddingsRequest'
required: true
+ /v1/openai/v1/embeddings:
+ post:
+ responses:
+ '200':
+ description: >-
+ An OpenAIEmbeddingsResponse containing the embeddings.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIEmbeddingsResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Inference
+ summary: >-
+ Generate OpenAI-compatible embeddings for the given input using the specified
+ model.
+ description: >-
+ Generate OpenAI-compatible embeddings for the given input using the specified
+ model.
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiEmbeddingsRequest'
+ required: true
/v1/files:
get:
responses:
@@ -3572,6 +4446,151 @@ paths:
- expires_after_anchor
- expires_after_seconds
required: true
+ /v1/openai/v1/files:
+ get:
+ responses:
+ '200':
+ description: >-
+ An ListOpenAIFileResponse containing the list of files.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListOpenAIFileResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Files
+ summary: >-
+ Returns a list of files that belong to the user's organization.
+ description: >-
+ Returns a list of files that belong to the user's organization.
+ parameters:
+ - name: after
+ in: query
+ description: >-
+ A cursor for use in pagination. `after` is an object ID that defines your
+ place in the list. For instance, if you make a list request and receive
+ 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo
+ in order to fetch the next page of the list.
+ required: false
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: >-
+ A limit on the number of objects to be returned. Limit can range between
+ 1 and 10,000, and the default is 10,000.
+ required: false
+ schema:
+ type: integer
+ - name: order
+ in: query
+ description: >-
+ Sort order by the `created_at` timestamp of the objects. `asc` for ascending
+ order and `desc` for descending order.
+ required: false
+ schema:
+ $ref: '#/components/schemas/Order'
+ - name: purpose
+ in: query
+ description: >-
+ Only return files with the given purpose.
+ required: false
+ schema:
+ $ref: '#/components/schemas/OpenAIFilePurpose'
+ post:
+ responses:
+ '200':
+ description: >-
+ An OpenAIFileObject representing the uploaded file.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIFileObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Files
+ summary: >-
+ Upload a file that can be used across various endpoints.
+ description: >-
+ Upload a file that can be used across various endpoints.
+
+ The file upload should be a multipart form request with:
+
+ - file: The File object (not file name) to be uploaded.
+
+ - purpose: The intended purpose of the uploaded file.
+
+ - expires_after: Optional form values describing expiration for the file.
+ Expected expires_after[anchor] = "created_at", expires_after[seconds] = {integer}.
+ Seconds must be between 3600 and 2592000 (1 hour to 30 days).
+ parameters: []
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ file:
+ type: string
+ format: binary
+ purpose:
+ $ref: '#/components/schemas/OpenAIFilePurpose'
+ expires_after_anchor:
+ oneOf:
+ - type: string
+ - type: 'null'
+ expires_after_seconds:
+ oneOf:
+ - type: integer
+ - type: 'null'
+ required:
+ - file
+ - purpose
+ - expires_after_anchor
+ - expires_after_seconds
+ required: true
+ /v1/openai/v1/models:
+ get:
+ responses:
+ '200':
+ description: A OpenAIListModelsResponse.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIListModelsResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Models
+ summary: List models using the OpenAI API.
+ description: List models using the OpenAI API.
+ parameters: []
/v1/files/{file_id}/content:
get:
responses:
@@ -3606,6 +4625,40 @@ paths:
required: true
schema:
type: string
+ /v1/openai/v1/files/{file_id}/content:
+ get:
+ responses:
+ '200':
+ description: >-
+ The raw file content as a binary response.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Response'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Files
+ summary: >-
+ Returns the contents of the specified file.
+ description: >-
+ Returns the contents of the specified file.
+ parameters:
+ - name: file_id
+ in: path
+ description: >-
+ The ID of the file to use for this request.
+ required: true
+ schema:
+ type: string
/v1/vector_stores/{vector_store_id}/files/{file_id}/content:
get:
responses:
@@ -3646,6 +4699,46 @@ paths:
required: true
schema:
type: string
+ /v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}/content:
+ get:
+ responses:
+ '200':
+ description: >-
+ A list of InterleavedContent representing the file contents.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreFileContentsResponse'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: >-
+ Retrieves the contents of a vector store file.
+ description: >-
+ Retrieves the contents of a vector store file.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: >-
+ The ID of the vector store containing the file to retrieve.
+ required: true
+ schema:
+ type: string
+ - name: file_id
+ in: path
+ description: The ID of the file to retrieve.
+ required: true
+ schema:
+ type: string
/v1/vector_stores/{vector_store_id}/search:
post:
responses:
@@ -3687,6 +4780,47 @@ paths:
schema:
$ref: '#/components/schemas/OpenaiSearchVectorStoreRequest'
required: true
+ /v1/openai/v1/vector_stores/{vector_store_id}/search:
+ post:
+ responses:
+ '200':
+ description: >-
+ A VectorStoreSearchResponse containing the search results.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorStoreSearchResponsePage'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - VectorIO
+ summary: Search for chunks in a vector store.
+ description: >-
+ Search for chunks in a vector store.
+
+ Searches a vector store for relevant chunks based on a query and optional
+ file attribute filters.
+ parameters:
+ - name: vector_store_id
+ in: path
+ description: The ID of the vector store to search.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenaiSearchVectorStoreRequest'
+ required: true
/v1alpha/post-training/preference-optimize:
post:
responses:
@@ -4106,6 +5240,38 @@ paths:
schema:
$ref: '#/components/schemas/RunModerationRequest'
required: true
+ /v1/openai/v1/moderations:
+ post:
+ responses:
+ '200':
+ description: A moderation object.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ModerationObject'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Safety
+ summary: >-
+ Classifies if text and/or image inputs are potentially harmful.
+ description: >-
+ Classifies if text and/or image inputs are potentially harmful.
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RunModerationRequest'
+ required: true
/v1/safety/run-shield:
post:
responses:
diff --git a/llama_stack/apis/agents/agents.py b/llama_stack/apis/agents/agents.py
index e8d0c467a..de420be5d 100644
--- a/llama_stack/apis/agents/agents.py
+++ b/llama_stack/apis/agents/agents.py
@@ -694,6 +694,7 @@ class Agents(Protocol):
#
# Both of these APIs are inherently stateful.
+ @webmethod(route="/openai/v1/responses/{response_id}", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/responses/{response_id}", method="GET", level=LLAMA_STACK_API_V1)
async def get_openai_response(
self,
@@ -706,6 +707,7 @@ class Agents(Protocol):
"""
...
+ @webmethod(route="/openai/v1/responses", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/responses", method="POST", level=LLAMA_STACK_API_V1)
async def create_openai_response(
self,
@@ -731,6 +733,7 @@ class Agents(Protocol):
"""
...
+ @webmethod(route="/openai/v1/responses", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/responses", method="GET", level=LLAMA_STACK_API_V1)
async def list_openai_responses(
self,
@@ -749,6 +752,7 @@ class Agents(Protocol):
"""
...
+ @webmethod(route="/openai/v1/responses/{response_id}/input_items", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/responses/{response_id}/input_items", method="GET", level=LLAMA_STACK_API_V1)
async def list_openai_response_input_items(
self,
@@ -771,6 +775,7 @@ class Agents(Protocol):
"""
...
+ @webmethod(route="/openai/v1/responses/{response_id}", method="DELETE", level=LLAMA_STACK_API_V1)
@webmethod(route="/responses/{response_id}", method="DELETE", level=LLAMA_STACK_API_V1)
async def delete_openai_response(self, response_id: str) -> OpenAIDeleteResponseObject:
"""Delete an OpenAI response by its ID.
diff --git a/llama_stack/apis/batches/batches.py b/llama_stack/apis/batches/batches.py
index 1ee9fdb15..1a64257e3 100644
--- a/llama_stack/apis/batches/batches.py
+++ b/llama_stack/apis/batches/batches.py
@@ -43,6 +43,7 @@ class Batches(Protocol):
Note: This API is currently under active development and may undergo changes.
"""
+ @webmethod(route="/openai/v1/batches", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/batches", method="POST", level=LLAMA_STACK_API_V1)
async def create_batch(
self,
@@ -63,6 +64,7 @@ class Batches(Protocol):
"""
...
+ @webmethod(route="/openai/v1/batches/{batch_id}", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/batches/{batch_id}", method="GET", level=LLAMA_STACK_API_V1)
async def retrieve_batch(self, batch_id: str) -> BatchObject:
"""Retrieve information about a specific batch.
@@ -72,6 +74,7 @@ class Batches(Protocol):
"""
...
+ @webmethod(route="/openai/v1/batches/{batch_id}/cancel", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/batches/{batch_id}/cancel", method="POST", level=LLAMA_STACK_API_V1)
async def cancel_batch(self, batch_id: str) -> BatchObject:
"""Cancel a batch that is in progress.
@@ -81,6 +84,7 @@ class Batches(Protocol):
"""
...
+ @webmethod(route="/openai/v1/batches", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/batches", method="GET", level=LLAMA_STACK_API_V1)
async def list_batches(
self,
diff --git a/llama_stack/apis/files/files.py b/llama_stack/apis/files/files.py
index a0f7a5ef2..d5abb6286 100644
--- a/llama_stack/apis/files/files.py
+++ b/llama_stack/apis/files/files.py
@@ -105,6 +105,7 @@ class OpenAIFileDeleteResponse(BaseModel):
@trace_protocol
class Files(Protocol):
# OpenAI Files API Endpoints
+ @webmethod(route="/openai/v1/files", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/files", method="POST", level=LLAMA_STACK_API_V1)
async def openai_upload_file(
self,
@@ -128,6 +129,7 @@ class Files(Protocol):
"""
...
+ @webmethod(route="/openai/v1/files", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/files", method="GET", level=LLAMA_STACK_API_V1)
async def openai_list_files(
self,
@@ -147,6 +149,7 @@ class Files(Protocol):
"""
...
+ @webmethod(route="/openai/v1/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1)
async def openai_retrieve_file(
self,
@@ -160,6 +163,7 @@ class Files(Protocol):
"""
...
+ @webmethod(route="/openai/v1/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1)
@webmethod(route="/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1)
async def openai_delete_file(
self,
@@ -173,6 +177,7 @@ class Files(Protocol):
"""
...
+ @webmethod(route="/openai/v1/files/{file_id}/content", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/files/{file_id}/content", method="GET", level=LLAMA_STACK_API_V1)
async def openai_retrieve_file_content(
self,
diff --git a/llama_stack/apis/inference/inference.py b/llama_stack/apis/inference/inference.py
index 6d266fe25..b46ffe925 100644
--- a/llama_stack/apis/inference/inference.py
+++ b/llama_stack/apis/inference/inference.py
@@ -1109,6 +1109,7 @@ class InferenceProvider(Protocol):
raise NotImplementedError("Reranking is not implemented")
return # this is so mypy's safe-super rule will consider the method concrete
+ @webmethod(route="/openai/v1/completions", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/completions", method="POST", level=LLAMA_STACK_API_V1)
async def openai_completion(
self,
@@ -1160,6 +1161,7 @@ class InferenceProvider(Protocol):
"""
...
+ @webmethod(route="/openai/v1/chat/completions", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/chat/completions", method="POST", level=LLAMA_STACK_API_V1)
async def openai_chat_completion(
self,
@@ -1216,6 +1218,7 @@ class InferenceProvider(Protocol):
"""
...
+ @webmethod(route="/openai/v1/embeddings", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/embeddings", method="POST", level=LLAMA_STACK_API_V1)
async def openai_embeddings(
self,
@@ -1245,6 +1248,7 @@ class Inference(InferenceProvider):
- Embedding models: these models generate embeddings to be used for semantic search.
"""
+ @webmethod(route="/openai/v1/chat/completions", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/chat/completions", method="GET", level=LLAMA_STACK_API_V1)
async def list_chat_completions(
self,
@@ -1263,6 +1267,7 @@ class Inference(InferenceProvider):
"""
raise NotImplementedError("List chat completions is not implemented")
+ @webmethod(route="/openai/v1/chat/completions/{completion_id}", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/chat/completions/{completion_id}", method="GET", level=LLAMA_STACK_API_V1)
async def get_chat_completion(self, completion_id: str) -> OpenAICompletionWithInputMessages:
"""Describe a chat completion by its ID.
diff --git a/llama_stack/apis/models/models.py b/llama_stack/apis/models/models.py
index 17cf2fc58..87f987c6f 100644
--- a/llama_stack/apis/models/models.py
+++ b/llama_stack/apis/models/models.py
@@ -111,6 +111,7 @@ class Models(Protocol):
"""
...
+ @webmethod(route="/openai/v1/models", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/models", method="GET", level=LLAMA_STACK_API_V1)
async def openai_list_models(self) -> OpenAIListModelsResponse:
"""List models using the OpenAI API.
diff --git a/llama_stack/apis/safety/safety.py b/llama_stack/apis/safety/safety.py
index bf37b496a..d9ef6b2a1 100644
--- a/llama_stack/apis/safety/safety.py
+++ b/llama_stack/apis/safety/safety.py
@@ -114,6 +114,7 @@ class Safety(Protocol):
"""
...
+ @webmethod(route="/openai/v1/moderations", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/moderations", method="POST", level=LLAMA_STACK_API_V1)
async def run_moderation(self, input: str | list[str], model: str) -> ModerationObject:
"""Classifies if text and/or image inputs are potentially harmful.
diff --git a/llama_stack/apis/vector_io/vector_io.py b/llama_stack/apis/vector_io/vector_io.py
index cea2a6917..dfd93e481 100644
--- a/llama_stack/apis/vector_io/vector_io.py
+++ b/llama_stack/apis/vector_io/vector_io.py
@@ -473,6 +473,7 @@ class VectorIO(Protocol):
...
# OpenAI Vector Stores API endpoints
+ @webmethod(route="/openai/v1/vector_stores", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores", method="POST", level=LLAMA_STACK_API_V1)
async def openai_create_vector_store(
self,
@@ -499,6 +500,7 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(route="/openai/v1/vector_stores", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores", method="GET", level=LLAMA_STACK_API_V1)
async def openai_list_vector_stores(
self,
@@ -517,6 +519,7 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(route="/openai/v1/vector_stores/{vector_store_id}", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores/{vector_store_id}", method="GET", level=LLAMA_STACK_API_V1)
async def openai_retrieve_vector_store(
self,
@@ -529,6 +532,7 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(route="/openai/v1/vector_stores/{vector_store_id}", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores/{vector_store_id}", method="POST", level=LLAMA_STACK_API_V1)
async def openai_update_vector_store(
self,
@@ -547,6 +551,7 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(route="/openai/v1/vector_stores/{vector_store_id}", method="DELETE", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores/{vector_store_id}", method="DELETE", level=LLAMA_STACK_API_V1)
async def openai_delete_vector_store(
self,
@@ -559,6 +564,7 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(route="/openai/v1/vector_stores/{vector_store_id}/search", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores/{vector_store_id}/search", method="POST", level=LLAMA_STACK_API_V1)
async def openai_search_vector_store(
self,
@@ -585,6 +591,7 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(route="/openai/v1/vector_stores/{vector_store_id}/files", method="POST", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores/{vector_store_id}/files", method="POST", level=LLAMA_STACK_API_V1)
async def openai_attach_file_to_vector_store(
self,
@@ -603,6 +610,7 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(route="/openai/v1/vector_stores/{vector_store_id}/files", method="GET", level=LLAMA_STACK_API_V1)
@webmethod(route="/vector_stores/{vector_store_id}/files", method="GET", level=LLAMA_STACK_API_V1)
async def openai_list_files_in_vector_store(
self,
@@ -625,6 +633,9 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(
+ route="/openai/v1/vector_stores/{vector_store_id}/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1
+ )
@webmethod(route="/vector_stores/{vector_store_id}/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1)
async def openai_retrieve_vector_store_file(
self,
@@ -639,6 +650,11 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(
+ route="/openai/v1/vector_stores/{vector_store_id}/files/{file_id}/content",
+ method="GET",
+ level=LLAMA_STACK_API_V1,
+ )
@webmethod(
route="/vector_stores/{vector_store_id}/files/{file_id}/content",
method="GET",
@@ -657,6 +673,9 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(
+ route="/openai/v1/vector_stores/{vector_store_id}/files/{file_id}", method="POST", level=LLAMA_STACK_API_V1
+ )
@webmethod(route="/vector_stores/{vector_store_id}/files/{file_id}", method="POST", level=LLAMA_STACK_API_V1)
async def openai_update_vector_store_file(
self,
@@ -673,6 +692,9 @@ class VectorIO(Protocol):
"""
...
+ @webmethod(
+ route="/openai/v1/vector_stores/{vector_store_id}/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1
+ )
@webmethod(route="/vector_stores/{vector_store_id}/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1)
async def openai_delete_vector_store_file(
self,