diff --git a/client-sdks/stainless/openapi.yml b/client-sdks/stainless/openapi.yml index 22f8d3d5d..31f653afe 100644 --- a/client-sdks/stainless/openapi.yml +++ b/client-sdks/stainless/openapi.yml @@ -9,3637 +9,325 @@ servers: - url: https://staging-api.llamastack.com description: Staging server paths: - /v1/batches: - get: - responses: - '200': - description: A list of batch objects. - content: - application/json: - schema: - $ref: '#/components/schemas/ListBatchesResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: List all batches for the current user. - description: List all batches for the current user. - parameters: - - name: after - in: query - description: >- - A cursor for pagination; returns batches after this batch ID. - required: false - schema: - type: string - - name: limit - in: query - description: >- - Number of batches to return (default 20, max 100). - required: true - schema: - type: integer - deprecated: false - post: - responses: - '200': - description: The created batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: >- - Create a new batch for processing multiple API requests. - description: >- - Create a new batch for processing multiple API requests. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateBatchRequest' - required: true - deprecated: false - /v1/batches/{batch_id}: - get: - responses: - '200': - description: The batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: >- - Retrieve information about a specific batch. - description: >- - Retrieve information about a specific batch. - parameters: - - name: batch_id - in: path - description: The ID of the batch to retrieve. - required: true - schema: - type: string - deprecated: false - /v1/batches/{batch_id}/cancel: - post: - responses: - '200': - description: The updated batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: Cancel a batch that is in progress. - description: Cancel a batch that is in progress. - parameters: - - name: batch_id - in: path - description: The ID of the batch to cancel. - required: true - schema: - type: string - deprecated: false - /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 chat completions. - description: >- - List chat completions. - - :param after: The ID of the last chat completion to return. - :param limit: The maximum number of chat completions to return. - :param model: The model to filter by. - :param order: The order to sort the chat completions by: "asc" or - "desc". Defaults to "desc". - :returns: A ListOpenAIChatCompletionResponse. - parameters: - - name: after - description: >- - The ID of the last chat completion to return. - required: false - schema: - type: string - in: query - - name: limit - description: >- - The maximum number of chat completions to return. - required: false - schema: - type: integer - in: query - - name: model - description: The model to filter by. - required: false - schema: - type: string - in: query - - name: order - description: >- - The order to sort the chat completions by: "asc" or "desc". Defaults to - "desc". - required: false - schema: - $ref: '#/components/schemas/Order' - in: query - deprecated: false - post: - responses: - '200': - description: An OpenAIChatCompletion. - content: - application/json: - schema: - $ref: '#/components/schemas/llama_stack.apis.inference.inference.OpenAIChatCompletion - | collections.abc.AsyncIterator[llama_stack.apis.inference.inference.OpenAIChatCompletionChunk]' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - summary: Create chat completions. - description: >- - Create chat completions. - - Generate an OpenAI-compatible chat completion for the given messages using - the specified model. - :returns: An OpenAIChatCompletion. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /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: Get chat completion. - description: >- - Get chat completion. - - Describe a chat completion by its ID. - - :param completion_id: ID of the chat completion. - :returns: A OpenAICompletionWithInputMessages. - parameters: - - name: completion_id - description: ID of the chat completion. - required: true - schema: - type: string - in: path - deprecated: false - /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: Create completion. - description: >- - Create completion. - - Generate an OpenAI-compatible completion for the given prompt using the specified - model. - :returns: An OpenAICompletion. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /v1/conversations: - post: - responses: - '200': - description: The created conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Create a conversation. - description: >- - Create a conversation. - - Create a conversation. - - :param items: Initial items to include in the conversation context. - :param metadata: Set of key-value pairs that can be attached to an - object. - :returns: The created conversation object. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateConversationRequest' - required: true - deprecated: false - /v1/conversations/{conversation_id}: - get: - responses: - '200': - description: The conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Retrieve a conversation. - description: >- - Retrieve a conversation. - - Get a conversation with the given ID. - - :param conversation_id: The conversation identifier. - :returns: The conversation object. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - deprecated: false - post: - responses: - '200': - description: The updated conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Update a conversation. - description: >- - Update a conversation. - - Update a conversation's metadata with the given ID. - - :param conversation_id: The conversation identifier. - :param metadata: Set of key-value pairs that can be attached to an - object. - :returns: The updated conversation object. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateConversationRequest' - required: true - deprecated: false - delete: - responses: - '200': - description: The deleted conversation resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationDeletedResource' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Delete a conversation. - description: >- - Delete a conversation. - - Delete a conversation with the given ID. - - :param conversation_id: The conversation identifier. - :returns: The deleted conversation resource. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - deprecated: false - /v1/conversations/{conversation_id}/items: - get: - responses: - '200': - description: List of conversation items. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationItemList' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: List items. - description: >- - List items. - - List items in the conversation. - - :param conversation_id: The conversation identifier. - :param after: An item ID to list items after, used in pagination. - :param include: Specify additional output data to include in the response. - :param limit: A limit on the number of objects to be returned (1-100, - default 20). - :param order: The order to return items in (asc or desc, default desc). - :returns: List of conversation items. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - - name: after - description: >- - An item ID to list items after, used in pagination. - required: false - schema: - type: string - in: query - - name: include - description: >- - Specify additional output data to include in the response. - required: false - schema: - $ref: '#/components/schemas/list' - in: query - - name: limit - description: >- - A limit on the number of objects to be returned (1-100, default 20). - required: false - schema: - type: integer - in: query - - name: order - description: >- - The order to return items in (asc or desc, default desc). - required: false - schema: - $ref: '#/components/schemas/Literal' - in: query - deprecated: false - post: - responses: - '200': - description: List of created items. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationItemList' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Create items. - description: >- - Create items. - - Create items in the conversation. - - :param conversation_id: The conversation identifier. - :param items: Items to include in the conversation context. - :returns: List of created items. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AddItemsRequest' - required: true - deprecated: false - /v1/conversations/{conversation_id}/items/{item_id}: - get: - responses: - '200': - description: The conversation item. - content: - application/json: - schema: - id: Annotated - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Retrieve an item. - description: >- - Retrieve an item. - - Retrieve a conversation item. - - :param conversation_id: The conversation identifier. - :param item_id: The item identifier. - :returns: The conversation item. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - - name: item_id - description: The item identifier. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: The deleted item resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationItemDeletedResource' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Delete an item. - description: >- - Delete an item. - - Delete a conversation item. - - :param conversation_id: The conversation identifier. - :param item_id: The item identifier. - :returns: The deleted item resource. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - - name: item_id - description: The item identifier. - required: true - schema: - type: string - in: path - deprecated: false - /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: Create embeddings. - description: >- - Create embeddings. - - Generate OpenAI-compatible embeddings for the given input using the specified - model. - :returns: An OpenAIEmbeddingsResponse containing the embeddings. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /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: List files. - description: >- - List files. - - Returns a list of files that belong to the user's organization. - - :param after: 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. - :param limit: A limit on the number of objects to be returned. Limit - can range between 1 and 10,000, and the default is 10,000. - :param order: Sort order by the `created_at` timestamp of the objects. - `asc` for ascending order and `desc` for descending order. - :param purpose: Only return files with the given purpose. - :returns: An ListOpenAIFileResponse containing the list of files. - parameters: - - name: after - 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 - in: query - - name: limit - 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 - in: query - - name: order - 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' - in: query - - name: purpose - description: >- - Only return files with the given purpose. - required: false - schema: - $ref: '#/components/schemas/OpenAIFilePurpose' - in: query - deprecated: false - 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 file. - description: >- - Upload file. - - 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. - - :param file: The uploaded file object containing content and metadata - (filename, content_type, etc.). - :param purpose: The intended purpose of the uploaded file (e.g., "assistants", - "fine-tune"). - :param expires_after: Optional form values describing expiration for - the file. - :returns: An OpenAIFileObject representing the uploaded file. - parameters: [] - requestBody: - content: - multipart/form-data: - schema: - type: object - properties: - file: - type: string - format: binary - purpose: - $ref: '#/components/schemas/OpenAIFilePurpose' - expires_after: - $ref: '#/components/schemas/ExpiresAfter' - required: - - file - - purpose - required: true - deprecated: false - /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: Retrieve file. - description: >- - Retrieve file. - - Returns information about a specific file. - - :param file_id: The ID of the file to use for this request. - :returns: An OpenAIFileObject containing file information. - parameters: - - name: file_id - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - in: path - deprecated: false - 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 file. - description: >- - Delete file. - - :param file_id: The ID of the file to use for this request. - :returns: An OpenAIFileDeleteResponse indicating successful deletion. - parameters: - - name: file_id - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - in: path - deprecated: false - /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: Retrieve file content. - description: >- - Retrieve file content. - - Returns the contents of the specified file. - - :param file_id: The ID of the file to use for this request. - :returns: The raw file content as a binary response. - parameters: - - name: file_id - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - in: path - deprecated: false - /v1/health: - get: - responses: - '200': - description: >- - Health information indicating if the service is operational. - content: - application/json: - schema: - $ref: '#/components/schemas/HealthInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - summary: Get health status. - description: >- - Get health status. - - Get the current health status of the service. - - :returns: Health information indicating if the service is operational. - parameters: [] - deprecated: false - /v1/inspect/routes: - get: - responses: - '200': - description: >- - Response containing information about all available routes. - content: - application/json: - schema: - $ref: '#/components/schemas/ListRoutesResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - summary: List routes. - description: >- - List routes. - - List all available API routes with their methods and implementing providers. - parameters: - - name: api_filter - in: query - description: >- - Optional filter to control which routes are returned. Can be an API level - ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, - or 'deprecated' to show deprecated routes across all levels. If not specified, - returns only non-deprecated v1 routes. - required: false - schema: - type: string - enum: - - v1 - - v1alpha - - v1beta - - deprecated - deprecated: false - /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: [] - deprecated: false - post: - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - summary: Register model. - description: >- - Register model. - - Register a model. - - :param model_id: The identifier of the model to register. - :param provider_model_id: The identifier of the model in the provider. - :param provider_id: The identifier of the provider. - :param metadata: Any additional metadata for this model. - :param model_type: The type of model to register. - :returns: A Model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterModelRequest' - required: true - deprecated: false - /v1/models/{model_id}: - get: - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - summary: Get model. - description: >- - Get model. - - Get a model by its identifier. - - :param model_id: The identifier of the model to get. - :returns: A Model. - parameters: - - name: model_id - description: The identifier of the model to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - summary: Unregister model. - description: >- - Unregister model. - - Unregister a model. - - :param model_id: The identifier of the model to unregister. - parameters: - - name: model_id - description: >- - The identifier of the model to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /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: Create moderation. - description: >- - Create moderation. - - Classifies if text and/or image inputs are potentially harmful. - :param input: Input (or inputs) to classify. - Can be a single string, an array of strings, or an array of multi-modal - input objects similar to other models. - :param model: (Optional) The content moderation model you would like - to use. - :returns: A moderation object. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunModerationRequest' - required: true - deprecated: false - /v1/prompts: - get: - responses: - '200': - description: >- - A ListPromptsResponse containing all prompts. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: List all prompts. - description: >- - List all prompts. - - :returns: A ListPromptsResponse containing all prompts. - parameters: [] - deprecated: false - post: - responses: - '200': - description: The created Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Create prompt. - description: >- - Create prompt. - - Create a new prompt. - - :param prompt: The prompt text content with variable placeholders. - :param variables: List of variable names that can be used in the prompt - template. - :returns: The created Prompt resource. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreatePromptRequest' - required: true - deprecated: false - /v1/prompts/{prompt_id}: - get: - responses: - '200': - description: A Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Get prompt. - description: >- - Get prompt. - - Get a prompt by its identifier and optional version. - - :param prompt_id: The identifier of the prompt to get. - :param version: The version of the prompt to get (defaults to latest). - :returns: A Prompt resource. - parameters: - - name: prompt_id - description: The identifier of the prompt to get. - required: true - schema: - type: string - in: path - - name: version - description: >- - The version of the prompt to get (defaults to latest). - required: false - schema: - type: integer - in: query - deprecated: false - post: - responses: - '200': - description: >- - The updated Prompt resource with incremented version. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Update prompt. - description: >- - Update prompt. - - Update an existing prompt (increments version). - - :param prompt_id: The identifier of the prompt to update. - :param prompt: The updated prompt text content. - :param version: The current version of the prompt being updated. - :param variables: Updated list of variable names that can be used - in the prompt template. - :param set_as_default: Set the new version as the default (default=True). - :returns: The updated Prompt resource with incremented version. - parameters: - - name: prompt_id - description: The identifier of the prompt to update. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdatePromptRequest' - required: true - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Delete prompt. - description: >- - Delete prompt. - - Delete a prompt. - - :param prompt_id: The identifier of the prompt to delete. - parameters: - - name: prompt_id - description: The identifier of the prompt to delete. - required: true - schema: - type: string - in: path - deprecated: false - /v1/prompts/{prompt_id}/set-default-version: - post: - responses: - '200': - description: >- - The prompt with the specified version now set as default. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Set prompt version. - description: >- - Set prompt version. - - Set which version of a prompt should be the default in get_prompt (latest). - - :param prompt_id: The identifier of the prompt. - :param version: The version to set as default. - :returns: The prompt with the specified version now set as default. - parameters: - - name: prompt_id - description: The identifier of the prompt. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SetDefaultVersionRequest' - required: true - deprecated: false - /v1/prompts/{prompt_id}/versions: - get: - responses: - '200': - description: >- - A ListPromptsResponse containing all versions of the prompt. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: List prompt versions. - description: >- - List prompt versions. - - List all versions of a specific prompt. - - :param prompt_id: The identifier of the prompt to list versions for. - :returns: A ListPromptsResponse containing all versions of the prompt. - parameters: - - name: prompt_id - description: >- - The identifier of the prompt to list versions for. - required: true - schema: - type: string - in: path - deprecated: false - /v1/providers: - get: - responses: - '200': - description: >- - A ListProvidersResponse containing information about all providers. - content: - application/json: - schema: - $ref: '#/components/schemas/ListProvidersResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Providers - summary: List providers. - description: >- - List providers. - - List all available providers. - - :returns: A ListProvidersResponse containing information about all - providers. - parameters: [] - deprecated: false - /v1/providers/{provider_id}: - get: - responses: - '200': - description: >- - A ProviderInfo object containing the provider's details. - content: - application/json: - schema: - $ref: '#/components/schemas/ProviderInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Providers - summary: Get provider. - description: >- - Get provider. - - Get detailed information about a specific provider. - - :param provider_id: The ID of the provider to inspect. - :returns: A ProviderInfo object containing the provider's details. - parameters: - - name: provider_id - description: The ID of the provider to inspect. - required: true - schema: - type: string - in: path - deprecated: false - /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 responses. - description: >- - List all responses. - - :param after: The ID of the last response to return. - :param limit: The number of responses to return. - :param model: The model to filter responses by. - :param order: The order to sort responses by when sorted by created_at - ('asc' or 'desc'). - :returns: A ListOpenAIResponseObject. - parameters: - - name: after - description: The ID of the last response to return. - required: false - schema: - type: string - in: query - - name: limit - description: The number of responses to return. - required: false - schema: - type: integer - in: query - - name: model - description: The model to filter responses by. - required: false - schema: - type: string - in: query - - name: order - description: >- - The order to sort responses by when sorted by created_at ('asc' or 'desc'). - required: false - schema: - $ref: '#/components/schemas/Order' - in: query - deprecated: false - post: - responses: - '200': - description: An OpenAIResponseObject. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIResponseObject' - text/event-stream: - schema: - $ref: '#/components/schemas/AsyncIterator' - '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 model response. - description: >- - Create a model response. - - :param input: Input message(s) to create the response. - :param model: The underlying LLM used for completions. - :param previous_response_id: (Optional) if specified, the new response - will be a continuation of the previous response. This can be used to easily - fork-off new responses from existing responses. - :param conversation: (Optional) The ID of a conversation to add the - response to. Must begin with 'conv_'. Input and output messages will be automatically - added to the conversation. - :param include: (Optional) Additional fields to include in the response. - :param guardrails: (Optional) List of guardrails to apply during response - generation. Can be guardrail IDs (strings) or guardrail specifications. - :returns: An OpenAIResponseObject. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateOpenaiResponseRequest' - required: true - deprecated: false - x-llama-stack-extra-body-params: - - name: guardrails - schema: - id: Annotated - description: >- - List of guardrails to apply during response generation. Guardrails provide - safety and content moderation. - required: true - /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: Get a model response. - description: >- - Get a model response. - - :param response_id: The ID of the OpenAI response to retrieve. - :returns: An OpenAIResponseObject. - parameters: - - name: response_id - description: >- - The ID of the OpenAI response to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - 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 a response. - description: >- - Delete a response. - - :param response_id: The ID of the OpenAI response to delete. - :returns: An OpenAIDeleteResponseObject - parameters: - - name: response_id - description: The ID of the OpenAI response to delete. - required: true - schema: - type: string - in: path - deprecated: false - /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. - description: >- - List input items. - - :param response_id: The ID of the response to retrieve input items for. - :param after: An item ID to list items after, used for pagination. - :param before: An item ID to list items before, used for pagination. - :param include: Additional fields to include in the response. - :param limit: A limit on the number of objects to be returned. Limit - can range between 1 and 100, and the default is 20. - :param order: The order to return the input items in. Default is desc. - :returns: An ListOpenAIResponseInputItem. - parameters: - - name: response_id - description: >- - The ID of the response to retrieve input items for. - required: true - schema: - type: string - in: path - - name: after - description: >- - An item ID to list items after, used for pagination. - required: false - schema: - type: string - in: query - - name: before - description: >- - An item ID to list items before, used for pagination. - required: false - schema: - type: string - in: query - - name: include - description: >- - Additional fields to include in the response. - required: false - schema: - $ref: '#/components/schemas/list' - in: query - - name: limit - 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 - in: query - - name: order - description: >- - The order to return the input items in. Default is desc. - required: false - schema: - $ref: '#/components/schemas/Order' - in: query - deprecated: false - /v1/safety/run-shield: - post: - responses: - '200': - description: A RunShieldResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/RunShieldResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Safety - summary: Run shield. - description: >- - Run shield. - - Run a shield. - - :param shield_id: The identifier of the shield to run. - :param messages: The messages to run the shield on. - :param params: The parameters of the shield. - :returns: A RunShieldResponse. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunShieldRequest' - required: true - deprecated: false - /v1/scoring-functions: - get: - responses: - '200': - description: A ListScoringFunctionsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListScoringFunctionsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: List all scoring functions. - description: >- - List all scoring functions. - - :returns: A ListScoringFunctionsResponse. - parameters: [] - deprecated: false - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: Register a scoring function. - description: >- - Register a scoring function. - - :param scoring_fn_id: The ID of the scoring function to register. - :param description: The description of the scoring function. - :param return_type: The return type of the scoring function. - :param provider_scoring_fn_id: The ID of the provider scoring function - to use for the scoring function. - :param provider_id: The ID of the provider to use for the scoring - function. - :param params: The parameters for the scoring function for benchmark - eval, these can be overridden for app eval. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterScoringFunctionRequest' - required: true - deprecated: false - /v1/scoring-functions/{scoring_fn_id}: - get: - responses: - '200': - description: A ScoringFn. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoringFn' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: Get a scoring function by its ID. - description: >- - Get a scoring function by its ID. - - :param scoring_fn_id: The ID of the scoring function to get. - :returns: A ScoringFn. - parameters: - - name: scoring_fn_id - description: The ID of the scoring function to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: Unregister a scoring function. - description: >- - Unregister a scoring function. - - :param scoring_fn_id: The ID of the scoring function to unregister. - parameters: - - name: scoring_fn_id - description: >- - The ID of the scoring function to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /v1/scoring/score: - post: - responses: - '200': - description: >- - A ScoreResponse object containing rows and aggregated results. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Scoring - summary: Score a list of rows. - description: >- - Score a list of rows. - - :param input_rows: The rows to score. - :param scoring_functions: The scoring functions to use for the scoring. - :returns: A ScoreResponse object containing rows and aggregated results. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreRequest' - required: true - deprecated: false - /v1/scoring/score-batch: - post: - responses: - '200': - description: A ScoreBatchResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Scoring - summary: Score a batch of rows. - description: >- - Score a batch of rows. - - :param dataset_id: The ID of the dataset to score. - :param scoring_functions: The scoring functions to use for the scoring. - :param save_results_dataset: Whether to save the results to a dataset. - :returns: A ScoreBatchResponse. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchRequest' - required: true - deprecated: false - /v1/shields: - get: - responses: - '200': - description: A ListShieldsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListShieldsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: List all shields. - description: >- - List all shields. - - :returns: A ListShieldsResponse. - parameters: [] - deprecated: false - post: - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Register a shield. - description: >- - Register a shield. - - :param shield_id: The identifier of the shield to register. - :param provider_shield_id: The identifier of the shield in the provider. - :param provider_id: The identifier of the provider. - :param params: The parameters of the shield. - :returns: A Shield. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterShieldRequest' - required: true - deprecated: false - /v1/shields/{identifier}: - get: - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Get a shield by its identifier. - description: >- - Get a shield by its identifier. - - :param identifier: The identifier of the shield to get. - :returns: A Shield. - parameters: - - name: identifier - description: The identifier of the shield to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Unregister a shield. - description: >- - Unregister a shield. - - :param identifier: The identifier of the shield to unregister. - parameters: - - name: identifier - description: >- - The identifier of the shield to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /v1/tool-runtime/invoke: - post: - responses: - '200': - description: A ToolInvocationResult. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolInvocationResult' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: Run a tool with the given arguments. - description: >- - Run a tool with the given arguments. - - :param tool_name: The name of the tool to invoke. - :param kwargs: A dictionary of arguments to pass to the tool. - :returns: A ToolInvocationResult. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InvokeToolRequest' - required: true - deprecated: false - /v1/tool-runtime/list-tools: - get: - responses: - '200': - description: A ListToolDefsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolDefsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: List all tools in the runtime. - description: >- - List all tools in the runtime. - - :param tool_group_id: The ID of the tool group to list tools for. - :param mcp_endpoint: The MCP endpoint to use for the tool group. - :returns: A ListToolDefsResponse. - parameters: - - name: tool_group_id - description: >- - The ID of the tool group to list tools for. - required: false - schema: - type: string - in: query - - name: mcp_endpoint - description: >- - The MCP endpoint to use for the tool group. - required: false - schema: - $ref: '#/components/schemas/URL' - in: query - deprecated: false - /v1/tool-runtime/rag-tool/insert: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: >- - Index documents so they can be used by the RAG system. - description: >- - Index documents so they can be used by the RAG system. - - :param documents: List of documents to index in the RAG system - :param vector_store_id: ID of the vector database to store the document - embeddings - :param chunk_size_in_tokens: (Optional) Size in tokens for document - chunking during indexing - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InsertRequest' - required: true - deprecated: false - /v1/tool-runtime/rag-tool/query: - post: - responses: - '200': - description: >- - RAGQueryResult containing the retrieved content and metadata - content: - application/json: - schema: - $ref: '#/components/schemas/RAGQueryResult' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: >- - Query the RAG system for context; typically invoked by the agent. - description: >- - Query the RAG system for context; typically invoked by the agent. - - :param content: The query content to search for in the indexed documents - :param vector_store_ids: List of vector database IDs to search within - :param query_config: (Optional) Configuration parameters for the query - operation - :returns: RAGQueryResult containing the retrieved content and metadata - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryRequest' - required: true - deprecated: false - /v1/toolgroups: - get: - responses: - '200': - description: A ListToolGroupsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolGroupsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: List tool groups with optional provider. - description: >- - List tool groups with optional provider. - - :returns: A ListToolGroupsResponse. - parameters: [] - deprecated: false - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Register a tool group. - description: >- - Register a tool group. - - :param toolgroup_id: The ID of the tool group to register. - :param provider_id: The ID of the provider to use for the tool group. - :param mcp_endpoint: The MCP endpoint to use for the tool group. - :param args: A dictionary of arguments to pass to the tool group. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterToolGroupRequest' - required: true - deprecated: false - /v1/toolgroups/{toolgroup_id}: - get: - responses: - '200': - description: A ToolGroup. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolGroup' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Get a tool group by its ID. - description: >- - Get a tool group by its ID. - - :param toolgroup_id: The ID of the tool group to get. - :returns: A ToolGroup. - parameters: - - name: toolgroup_id - description: The ID of the tool group to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Unregister a tool group. - description: >- - Unregister a tool group. - - :param toolgroup_id: The ID of the tool group to unregister. - parameters: - - name: toolgroup_id - description: The ID of the tool group to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /v1/tools: - get: - responses: - '200': - description: A ListToolDefsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolDefsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: List tools with optional tool group. - description: >- - List tools with optional tool group. - - :param toolgroup_id: The ID of the tool group to list tools for. - :returns: A ListToolDefsResponse. - parameters: - - name: toolgroup_id - description: >- - The ID of the tool group to list tools for. - required: false - schema: - type: string - in: query - deprecated: false - /v1/tools/{tool_name}: - get: - responses: - '200': - description: A ToolDef. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolDef' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Get a tool by its name. - description: >- - Get a tool by its name. - - :param tool_name: The name of the tool to get. - :returns: A ToolDef. - parameters: - - name: tool_name - description: The name of the tool to get. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector-io/insert: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Insert chunks into a vector database. - description: >- - Insert chunks into a vector database. - - :param vector_store_id: The identifier of the vector database to insert the - chunks into. - :param chunks: The chunks to insert. Each `Chunk` should contain content - which can be interleaved text, images, or other types. - `metadata`: `dict[str, Any]` and `embedding`: `List[float]` are - optional. - If `metadata` is provided, you configure how Llama Stack formats - the chunk during generation. - If `embedding` is not provided, it will be computed later. - :param ttl_seconds: The time to live of the chunks. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InsertChunksRequest' - required: true - deprecated: false - /v1/vector-io/query: - post: - responses: - '200': - description: A QueryChunksResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/QueryChunksResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Query chunks from a vector database. - description: >- - Query chunks from a vector database. - - :param vector_store_id: The identifier of the vector database to query. - :param query: The query to search for. - :param params: The parameters of the query. - :returns: A QueryChunksResponse. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryChunksRequest' - required: true - deprecated: false - /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. - - :param limit: A limit on the number of objects to be returned. Limit can range - between 1 and 100, and the default is 20. - :param order: Sort order by the `created_at` timestamp of the objects. - `asc` for ascending order and `desc` for descending order. - :param after: A cursor for use in pagination. `after` is an object - ID that defines your place in the list. - :param before: A cursor for use in pagination. `before` is an object - ID that defines your place in the list. - :returns: A VectorStoreListResponse containing the list of vector - stores. - parameters: - - name: limit - 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 - in: query - - name: order - 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 - in: query - - name: after - description: >- - A cursor for use in pagination. `after` is an object ID that defines your - place in the list. - required: false - schema: - type: string - in: query - - name: before - description: >- - A cursor for use in pagination. `before` is an object ID that defines - your place in the list. - required: false - schema: - type: string - in: query - deprecated: false - 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. - - Generate an OpenAI-compatible vector store with the given parameters. - :returns: A VectorStoreObject representing the created vector store. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store to retrieve. - :returns: A VectorStoreObject representing the vector store. - parameters: - - name: vector_store_id - description: The ID of the vector store to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store to update. - :param name: The name of the vector store. - :param expires_after: The expiration policy for a vector store. - :param metadata: Set of 16 key-value pairs that can be attached to - an object. - :returns: A VectorStoreObject representing the updated vector store. - parameters: - - name: vector_store_id - description: The ID of the vector store to update. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiUpdateVectorStoreRequest' - required: true - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store to delete. - :returns: A VectorStoreDeleteResponse indicating the deletion status. - parameters: - - name: vector_store_id - description: The ID of the vector store to delete. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches: - post: - responses: - '200': - description: >- - A VectorStoreFileBatchObject representing the created file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Create a vector store file batch. - description: >- - Create a vector store file batch. - - Generate an OpenAI-compatible vector store file batch for the given vector - store. - :param vector_store_id: The ID of the vector store to create the file - batch for. - :returns: A VectorStoreFileBatchObject representing the created file - batch. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store to create the file batch for. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}: - get: - responses: - '200': - description: >- - A VectorStoreFileBatchObject representing the file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Retrieve a vector store file batch. - description: >- - Retrieve a vector store file batch. - - :param batch_id: The ID of the file batch to retrieve. - :param vector_store_id: The ID of the vector store containing the - file batch. - :returns: A VectorStoreFileBatchObject representing the file batch. - parameters: - - name: batch_id - description: The ID of the file batch to retrieve. - required: true - schema: - type: string - in: path - - name: vector_store_id - description: >- - The ID of the vector store containing the file batch. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: - post: - responses: - '200': - description: >- - A VectorStoreFileBatchObject representing the cancelled file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Cancels a vector store file batch. - description: >- - Cancels a vector store file batch. - - :param batch_id: The ID of the file batch to cancel. - :param vector_store_id: The ID of the vector store containing the - file batch. - :returns: A VectorStoreFileBatchObject representing the cancelled - file batch. - parameters: - - name: batch_id - description: The ID of the file batch to cancel. - required: true - schema: - type: string - in: path - - name: vector_store_id - description: >- - The ID of the vector store containing the file batch. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files: - get: - responses: - '200': - description: >- - A VectorStoreFilesListInBatchResponse containing the list of files in - the batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFilesListInBatchResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: >- - Returns a list of vector store files in a batch. - description: >- - Returns a list of vector store files in a batch. - - :param batch_id: The ID of the file batch to list files from. - :param vector_store_id: The ID of the vector store containing the - file batch. - :param after: A cursor for use in pagination. `after` is an object - ID that defines your place in the list. - :param before: A cursor for use in pagination. `before` is an object - ID that defines your place in the list. - :param filter: Filter by file status. One of in_progress, completed, - failed, cancelled. - :param limit: A limit on the number of objects to be returned. Limit - can range between 1 and 100, and the default is 20. - :param order: Sort order by the `created_at` timestamp of the objects. - `asc` for ascending order and `desc` for descending order. - :returns: A VectorStoreFilesListInBatchResponse containing the list - of files in the batch. - parameters: - - name: batch_id - description: >- - The ID of the file batch to list files from. - required: true - schema: - type: string - in: path - - name: vector_store_id - description: >- - The ID of the vector store containing the file batch. - required: true - schema: - type: string - in: path - - name: after - description: >- - A cursor for use in pagination. `after` is an object ID that defines your - place in the list. - required: false - schema: - type: string - in: query - - name: before - description: >- - A cursor for use in pagination. `before` is an object ID that defines - your place in the list. - required: false - schema: - type: string - in: query - - name: filter - description: >- - Filter by file status. One of in_progress, completed, failed, cancelled. - required: false - schema: - type: string - in: query - - name: limit - 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 - in: query - - name: order - 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 - in: query - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store to list files from. - :param limit: (Optional) A limit on the number of objects to be returned. - Limit can range between 1 and 100, and the default is 20. - :param order: (Optional) Sort order by the `created_at` timestamp - of the objects. `asc` for ascending order and `desc` for descending order. - :param after: (Optional) A cursor for use in pagination. `after` is - an object ID that defines your place in the list. - :param before: (Optional) A cursor for use in pagination. `before` - is an object ID that defines your place in the list. - :param filter: (Optional) Filter by file status to only return files - with the specified status. - :returns: A VectorStoreListFilesResponse containing the list of files. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store to list files from. - required: true - schema: - type: string - in: path - - name: limit - 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 - in: query - - name: order - 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 - in: query - - name: after - 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 - in: query - - name: before - 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 - in: query - - name: filter - description: >- - (Optional) Filter by file status to only return files with the specified - status. - required: false - schema: - id: Union - in: query - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store to attach the file to. - :param file_id: The ID of the file to attach to the vector store. - :param attributes: The key-value attributes stored with the file, - which can be used for filtering. - :param chunking_strategy: The chunking strategy to use for the file. - :returns: A VectorStoreFileObject representing the attached file. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store to attach the file to. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiAttachFileToVectorStoreRequest' - required: true - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store containing the file to - retrieve. - :param file_id: The ID of the file to retrieve. - :returns: A VectorStoreFileObject representing the file. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to retrieve. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store containing the file to - update. - :param file_id: The ID of the file to update. - :param attributes: The updated key-value attributes to store with - the file. - :returns: A VectorStoreFileObject representing the updated file. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to update. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to update. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiUpdateVectorStoreFileRequest' - required: true - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store containing the file to - delete. - :param file_id: The ID of the file to delete. - :returns: A VectorStoreFileDeleteResponse indicating the deletion - status. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to delete. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to delete. - required: true - schema: - type: string - in: path - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store containing the file to - retrieve. - :param file_id: The ID of the file to retrieve. - :returns: A list of InterleavedContent representing the file contents. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to retrieve. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store to search. - :param query: The query string or array for performing the search. - :param filters: Filters based on file attributes to narrow the search - results. - :param max_num_results: Maximum number of results to return (1 to - 50 inclusive, default 10). - :param ranking_options: Ranking options for fine-tuning the search - results. - :param rewrite_query: Whether to rewrite the natural language query - for vector search (default false) - :param search_mode: The search mode to use - "keyword", "vector", - or "hybrid" (default "vector") - :returns: A VectorStoreSearchResponse containing the search results. - parameters: - - name: vector_store_id - description: The ID of the vector store to search. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiSearchVectorStoreRequest' - required: true - deprecated: false - /v1/version: - get: - responses: - '200': - description: >- - Version information containing the service version number. - content: - application/json: - schema: - $ref: '#/components/schemas/VersionInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - summary: Get version. - description: >- - Get version. - - Get the version of the service. - - :returns: Version information containing the service version number. - parameters: [] - deprecated: false /v1beta/datasetio/append-rows/{dataset_id}: post: tags: - - V1Beta + - DatasetIO summary: Append rows to a dataset. - description: Generic endpoint - this would be replaced with actual implementation. + description: Append rows to a dataset. operationId: append_rows_v1beta_datasetio_append_rows__dataset_id__post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: dataset_id in: path required: true schema: type: string - description: 'Path parameter: dataset_id' + description: The ID of the dataset to append the rows to + title: Dataset Id + description: The ID of the dataset to append the rows to + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: true + description: The rows to append to the dataset. + title: Body + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta/datasetio/iterrows/{dataset_id}: + get: + tags: + - DatasetIO + summary: Get a paginated list of rows from a dataset. + description: Get a paginated list of rows from a dataset using offset-based pagination. + operationId: iterrows_v1beta_datasetio_iterrows__dataset_id__get + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to get the rows from + title: Dataset Id + description: The ID of the dataset to get the rows from + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: Index into dataset for the first row to get. Get all rows if None. + title: Start Index + description: Index into dataset for the first row to get. Get all rows if None. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of rows to get. + title: Limit + description: The number of rows to get. responses: '200': description: Successful Response - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1beta/datasetio/iterrows/{dataset_id}: - get: - tags: - - V1Beta - summary: Get a paginated list of rows from a dataset. - description: Query endpoint for proper schema generation. - operationId: iterrows_v1beta_datasetio_iterrows__dataset_id__get - parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - - name: dataset_id - in: path - required: true - schema: - type: string - title: Dataset Id - responses: - '200': - description: A PaginatedResponse. content: application/json: schema: $ref: '#/components/schemas/PaginatedResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1beta/datasets: get: tags: - - V1Beta - summary: List all datasets. - description: Response-only endpoint for proper schema generation. + - Datasets + summary: List all datasets + description: List all datasets operationId: list_datasets_v1beta_datasets_get responses: '200': - description: A ListDatasetsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListDatasetsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Beta - summary: Register a new dataset. - description: Typed endpoint for proper schema generation. + - Datasets + summary: Register a new dataset + description: Register a new dataset operationId: register_dataset_v1beta_datasets_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/__main_____datasets_Request' + $ref: '#/components/schemas/RegisterDatasetRequest' required: true responses: '200': - description: A Dataset. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Dataset' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1beta/datasets/{dataset_id}: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta/datasets/{{dataset_id}}: delete: tags: - - V1Beta - summary: Unregister a dataset by its ID. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_dataset_v1beta_datasets__dataset_id__delete + - Datasets + summary: Unregister a dataset by its ID + description: Unregister a dataset by its ID + operationId: unregister_dataset_v1beta_datasets___dataset_id___delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: dataset_id in: path required: true schema: type: string - description: 'Path parameter: dataset_id' + description: The ID of the dataset to unregister + title: Dataset Id + description: The ID of the dataset to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Datasets + summary: Get a dataset by its ID + description: Get a dataset by its ID + operationId: get_dataset_v1beta_datasets___dataset_id___get + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to get + title: Dataset Id + description: The ID of the dataset to get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Dataset' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents: + get: + tags: + - Agents + summary: List all agents. + description: List all agents. + operationId: list_agents_v1alpha_agents_get + parameters: + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of agents to return. + title: Limit + description: The number of agents to return. responses: '200': description: Successful Response @@ -3647,385 +335,405 @@ paths: application/json: schema: {} '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: - tags: - - V1Beta - summary: Get a dataset by its ID. - description: Query endpoint for proper schema generation. - operationId: get_dataset_v1beta_datasets__dataset_id__get - parameters: - - name: dataset_id - in: path - required: true - schema: - type: string - title: Dataset Id - responses: - '200': - description: A Dataset. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/Dataset' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents: - get: - tags: - - V1Alpha - summary: List all agents. - description: Query endpoint for proper schema generation. - operationId: list_agents_v1alpha_agents_get - parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - responses: - '200': - description: A PaginatedResponse. + description: The client has sent too many requests in a given amount of time. content: application/json: schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Alpha - summary: Create an agent with the given configuration. - description: Typed endpoint for proper schema generation. + - Agents + summary: Create an agent. + description: Create an agent with the given configuration. operationId: create_agent_v1alpha_agents_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/AgentConfig' + $ref: '#/components/schemas/AgentConfig-Input' responses: '200': - description: An AgentCreateResponse with the agent ID. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AgentCreateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}: - delete: - tags: - - V1Alpha - summary: Delete an agent by its ID and its associated sessions and turns. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_agent_v1alpha_agents__agent_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: agent_id - in: path - required: true - schema: - type: string - description: The ID of the agent to delete. - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}: + delete: tags: - - V1Alpha - summary: Describe an agent by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agent_v1alpha_agents__agent_id__get + - Agents + summary: Delete an agent. + description: Delete an agent by its ID. + operationId: delete_agent_v1alpha_agents___agent_id___delete parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to delete. + title: Agent Id + description: The ID of the agent to delete. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Agents + summary: Describe an agent. + description: Describe an agent by its ID. + operationId: get_agent_v1alpha_agents___agent_id___get + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: ID of the agent. title: Agent Id description: ID of the agent. responses: '200': - description: An Agent of the agent. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Agent' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session: - post: - tags: - - V1Alpha - summary: Create a new session for an agent. - description: Typed endpoint for proper schema generation. - operationId: create_agent_session_v1alpha_agents__agent_id__session_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_Request' - required: true - responses: - '200': - description: An AgentSessionCreateResponse. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/AgentSessionCreateResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: agent_id - in: path - required: true - schema: - type: string - description: The ID of the agent to create the session for. - /v1alpha/agents/{agent_id}/session/{session_id}: - delete: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session: + post: tags: - - V1Alpha - summary: Delete an agent session by its ID and its associated turns. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_agents_session_v1alpha_agents__agent_id__session__session_id__delete + - Agents + summary: Create a new session for an agent. + description: Create a new session for an agent. + operationId: create_agent_session_v1alpha_agents___agent_id___session_post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: session_id - in: path - required: true - schema: - type: string - description: The ID of the session to delete. - name: agent_id in: path required: true schema: type: string - description: The ID of the agent to delete the session for. + description: The ID of the agent to create the session for. + title: Agent Id + description: The ID of the agent to create the session for. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAgentSessionRequest' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/AgentSessionCreateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}: + delete: tags: - - V1Alpha - summary: Retrieve an agent session by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_session_v1alpha_agents__agent_id__session__session_id__get + - Agents + summary: Delete an agent session. + description: Delete an agent session by its ID. + operationId: delete_agents_session_v1alpha_agents___agent_id___session___session_id___delete parameters: - - name: turn_ids - in: query + - name: agent_id + in: path required: true schema: type: string - title: Turn Ids + description: The ID of the agent to delete the session for. + title: Agent Id + description: The ID of the agent to delete the session for. - name: session_id in: path required: true schema: type: string + description: The ID of the session to delete. title: Session Id - description: The ID of the session to get. - - name: agent_id - in: path - required: true - schema: - type: string - title: Agent Id - description: The ID of the agent to get the session for. + description: The ID of the session to delete. responses: - '200': - description: A Session. + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/Session' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session/{session_id}/turn: - post: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: tags: - - V1Alpha - summary: Create a new turn for an agent. - description: Typed endpoint for proper schema generation. - operationId: create_agent_turn_v1alpha_agents__agent_id__session__session_id__turn_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_session_id_turn_Request' - required: true - responses: - '200': - description: If stream=False, returns a Turn object. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' + - Agents + summary: Retrieve an agent session. + description: Retrieve an agent session by its ID. + operationId: get_agents_session_v1alpha_agents___agent_id___session___session_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the session for. + title: Agent Id + description: The ID of the agent to get the session for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to get. + title: Session Id + description: The ID of the session to get. + - name: turn_ids + in: query + required: false + schema: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: List of turn IDs to filter the session by. + title: Turn Ids + description: List of turn IDs to filter the session by. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Session' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn: + post: + tags: + - Agents + summary: Create a new turn for an agent. + description: Create a new turn for an agent. + operationId: create_agent_turn_v1alpha_agents___agent_id___session___session_id___turn_post + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to create the turn for. + title: Agent Id description: The ID of the agent to create the turn for. - name: session_id in: path required: true schema: type: string + description: The ID of the session to create the turn for. + title: Session Id description: The ID of the session to create the turn for. - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnCreateRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}: get: tags: - - V1Alpha - summary: Retrieve an agent turn by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__get + - Agents + summary: Retrieve an agent turn. + description: Retrieve an agent turn by its ID. + operationId: get_agents_turn_v1alpha_agents___agent_id___session___session_id___turn___turn_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the turn for. title: Agent Id description: The ID of the agent to get the turn for. - name: session_id @@ -4033,6 +741,7 @@ paths: required: true schema: type: string + description: The ID of the session to get the turn for. title: Session Id description: The ID of the session to get the turn for. - name: turn_id @@ -4040,91 +749,122 @@ paths: required: true schema: type: string + description: The ID of the turn to get. title: Turn Id description: The ID of the turn to get. responses: '200': - description: A Turn. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Turn' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/resume: post: tags: - - V1Alpha - summary: Resume an agent turn with executed tool call responses. - description: Typed endpoint for proper schema generation. - operationId: resume_agent_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__resume_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request' - required: true - responses: - '200': - description: A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk objects. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' + - Agents + summary: Resume an agent turn. + description: Resume an agent turn with executed tool call responses. + operationId: resume_agent_turn_v1alpha_agents___agent_id___session___session_id___turn___turn_id___resume_post parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to resume. + title: Agent Id description: The ID of the agent to resume. - name: session_id in: path required: true schema: type: string + description: The ID of the session to resume. + title: Session Id description: The ID of the session to resume. - name: turn_id in: path required: true schema: type: string + description: The ID of the turn to resume. + title: Turn Id description: The ID of the turn to resume. - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnResumeRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/step/{{step_id}}: get: tags: - - V1Alpha - summary: Retrieve an agent step by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_step_v1alpha_agents__agent_id__session__session_id__turn__turn_id__step__step_id__get + - Agents + summary: Retrieve an agent step. + description: Retrieve an agent step by its ID. + operationId: get_agents_step_v1alpha_agents___agent_id___session___session_id___turn___turn_id___step___step_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the step for. title: Agent Id description: The ID of the agent to get the step for. - name: session_id @@ -4132,6 +872,7 @@ paths: required: true schema: type: string + description: The ID of the session to get the step for. title: Session Id description: The ID of the session to get the step for. - name: turn_id @@ -4139,6 +880,7 @@ paths: required: true schema: type: string + description: The ID of the turn to get the step for. title: Turn Id description: The ID of the turn to get the step for. - name: step_id @@ -4146,454 +888,588 @@ paths: required: true schema: type: string + description: The ID of the step to get. title: Step Id description: The ID of the step to get. responses: '200': - description: An AgentStepResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AgentStepResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/sessions: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/sessions: get: tags: - - V1Alpha - summary: List all session(s) of a given agent. - description: Query endpoint for proper schema generation. - operationId: list_agent_sessions_v1alpha_agents__agent_id__sessions_get + - Agents + summary: List all sessions of an agent. + description: List all session(s) of a given agent. + operationId: list_agent_sessions_v1alpha_agents___agent_id___sessions_get parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to list sessions for. title: Agent Id description: The ID of the agent to list sessions for. + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of sessions to return. + title: Limit + description: The number of sessions to return. responses: '200': - description: A PaginatedResponse. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/eval/benchmarks: get: tags: - - V1Alpha - summary: List all benchmarks. - description: Response-only endpoint for proper schema generation. + - Benchmarks + summary: List all benchmarks + description: List all benchmarks operationId: list_benchmarks_v1alpha_eval_benchmarks_get responses: '200': - description: A ListBenchmarksResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListBenchmarksResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Alpha - summary: Register a benchmark. - description: Generic endpoint - this would be replaced with actual implementation. + - Benchmarks + summary: Register a benchmark + description: Register a benchmark operationId: register_benchmark_v1alpha_eval_benchmarks_post - parameters: - - name: args - in: query + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterBenchmarkRequest' required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}: delete: tags: - - V1Alpha - summary: Unregister a benchmark. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_benchmark_v1alpha_eval_benchmarks__benchmark_id__delete + - Benchmarks + summary: Unregister a benchmark + description: Unregister a benchmark + operationId: unregister_benchmark_v1alpha_eval_benchmarks___benchmark_id___delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: benchmark_id in: path required: true schema: type: string - description: The ID of the benchmark to unregister. + description: The ID of the benchmark to unregister + title: Benchmark Id + description: The ID of the benchmark to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Benchmarks + summary: Get a benchmark by its ID + description: Get a benchmark by its ID + operationId: get_benchmark_v1alpha_eval_benchmarks___benchmark_id___get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to get + title: Benchmark Id + description: The ID of the benchmark to get responses: '200': description: Successful Response - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: - tags: - - V1Alpha - summary: Get a benchmark by its ID. - description: Query endpoint for proper schema generation. - operationId: get_benchmark_v1alpha_eval_benchmarks__benchmark_id__get - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - title: Benchmark Id - description: The ID of the benchmark to get. - responses: - '200': - description: A Benchmark. content: application/json: schema: $ref: '#/components/schemas/Benchmark' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}/evaluations: - post: - tags: - - V1Alpha - summary: Evaluate a list of rows on a benchmark. - description: Typed endpoint for proper schema generation. - operationId: evaluate_rows_v1alpha_eval_benchmarks__benchmark_id__evaluations_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BenchmarkConfig' - required: true - responses: - '200': - description: EvaluateResponse object containing generations and scores. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/EvaluateResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - description: The ID of the benchmark to run the evaluation on. - /v1alpha/eval/benchmarks/{benchmark_id}/jobs: - post: - tags: - - V1Alpha - summary: Run an evaluation on a benchmark. - description: Typed endpoint for proper schema generation. - operationId: run_eval_v1alpha_eval_benchmarks__benchmark_id__jobs_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BenchmarkConfig' - required: true - responses: - '200': - description: The job that was created to run the evaluation. + description: The client has sent too many requests in a given amount of time. content: application/json: schema: - $ref: '#/components/schemas/Job' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - description: The ID of the benchmark to run the evaluation on. - /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}: - delete: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/evaluations: + post: tags: - - V1Alpha - summary: Cancel a job. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: job_cancel_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__delete + - Eval + summary: Evaluate a list of rows on a benchmark + description: Evaluate a list of rows on a benchmark + operationId: evaluate_rows_v1alpha_eval_benchmarks___benchmark_id___evaluations_post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: benchmark_id in: path required: true schema: type: string - description: The ID of the benchmark to run the evaluation on. - - name: job_id - in: path + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + requestBody: required: true - schema: - type: string - description: The ID of the job to cancel. + content: + application/json: + schema: + $ref: '#/components/schemas/EvaluateRowsRequest' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/EvaluateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs: + post: tags: - - V1Alpha - summary: Get the status of a job. - description: Query endpoint for proper schema generation. - operationId: job_status_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__get + - Eval + summary: Run an evaluation on a benchmark + description: Run an evaluation on a benchmark + operationId: run_eval_v1alpha_eval_benchmarks___benchmark_id___jobs_post parameters: - name: benchmark_id in: path required: true schema: type: string + description: The ID of the benchmark to run the evaluation on title: Benchmark Id - description: The ID of the benchmark to run the evaluation on. - - name: job_id - in: path + description: The ID of the benchmark to run the evaluation on + requestBody: required: true - schema: - type: string - title: Job Id - description: The ID of the job to get the status of. + content: + application/json: + schema: + $ref: '#/components/schemas/BenchmarkConfig' responses: '200': - description: The status of the evaluation job. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Job' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result: - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}: + delete: tags: - - V1Alpha - summary: Get the result of a job. - description: Query endpoint for proper schema generation. - operationId: job_result_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__result_get + - Eval + summary: Cancel a job + description: Cancel a job + operationId: job_cancel_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___delete parameters: - name: benchmark_id in: path required: true schema: type: string + description: The ID of the benchmark to run the evaluation on title: Benchmark Id - description: The ID of the benchmark to run the evaluation on. + description: The ID of the benchmark to run the evaluation on - name: job_id in: path required: true schema: type: string + description: The ID of the job to cancel title: Job Id - description: The ID of the job to get the result of. + description: The ID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Eval + summary: Get the status of a job + description: Get the status of a job + operationId: job_status_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the status of + title: Job Id + description: The ID of the job to get the status of responses: '200': - description: The result of the job. + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}/result: + get: + tags: + - Eval + summary: Get the result of a job + description: Get the result of a job + operationId: job_result_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___result_get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the result of + title: Job Id + description: The ID of the job to get the result of + responses: + '200': + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/EvaluateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/inference/rerank: post: tags: - - V1Alpha - summary: Rerank a list of documents based on their relevance to a query. - description: Typed endpoint for proper schema generation. + - Inference + summary: Rerank a list of documents. + description: Rerank a list of documents based on their relevance to a query. operationId: rerank_v1alpha_inference_rerank_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_inference_rerank_Request' + $ref: '#/components/schemas/Body_rerank_v1alpha_inference_rerank_post' required: true responses: '200': - description: RerankResponse with indices sorted by relevance score (descending). + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RerankResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/job/artifacts: get: tags: - - V1Alpha - summary: Get the artifacts of a training job. - description: Query endpoint for proper schema generation. + - Post Training + summary: Get the artifacts of a training job + description: Get the artifacts of a training job operationId: get_training_job_artifacts_v1alpha_post_training_job_artifacts_get parameters: - name: job_uuid @@ -4601,68 +1477,89 @@ paths: required: true schema: type: string + description: The UUID of the job to get the artifacts of title: Job Uuid - responses: - '200': - description: A PostTrainingJobArtifactsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/post-training/job/cancel: - post: - tags: - - V1Alpha - summary: Cancel a training job. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: cancel_training_job_v1alpha_post_training_job_cancel_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs + description: The UUID of the job to get the artifacts of responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/post-training/job/cancel: + post: + tags: + - Post Training + summary: Cancel a training job + description: Cancel a training job + operationId: cancel_training_job_v1alpha_post_training_job_cancel_post + parameters: + - name: job_uuid + in: query + required: true + schema: + type: string + description: The UUID of the job to cancel + title: Job Uuid + description: The UUID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/job/status: get: tags: - - V1Alpha - summary: Get the status of a training job. - description: Query endpoint for proper schema generation. + - Post Training + summary: Get the status of a training job + description: Get the status of a training job operationId: get_training_job_status_v1alpha_post_training_job_status_get parameters: - name: job_uuid @@ -4670,193 +1567,275 @@ paths: required: true schema: type: string + description: The UUID of the job to get the status of title: Job Uuid + description: The UUID of the job to get the status of responses: '200': - description: A PostTrainingJobStatusResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJobStatusResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/jobs: get: tags: - - V1Alpha - summary: Get all training jobs. - description: Response-only endpoint for proper schema generation. + - Post Training + summary: Get all training jobs + description: Get all training jobs operationId: get_training_jobs_v1alpha_post_training_jobs_get responses: '200': - description: A ListPostTrainingJobsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListPostTrainingJobsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/preference-optimize: post: tags: - - V1Alpha - summary: Run preference optimization of a model. - description: Typed endpoint for proper schema generation. + - Post Training + summary: Run preference optimization of a model + description: Run preference optimization of a model operationId: preference_optimize_v1alpha_post_training_preference_optimize_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/DPOAlignmentConfig' + $ref: '#/components/schemas/PreferenceOptimizeRequest' required: true responses: '200': - description: A PostTrainingJob. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJob' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/supervised-fine-tune: post: tags: - - V1Alpha - summary: Run supervised fine-tuning of a model. - description: Typed endpoint for proper schema generation. + - Post Training + summary: Run supervised fine-tuning of a model + description: Run supervised fine-tuning of a model operationId: supervised_fine_tune_v1alpha_post_training_supervised_fine_tune_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/TrainingConfig' + $ref: '#/components/schemas/SupervisedFineTuneRequest' required: true responses: '200': - description: A PostTrainingJob. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJob' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches: get: tags: - - V1 + - Batches summary: List all batches for the current user. - description: Query endpoint for proper schema generation. + description: List all batches for the current user. operationId: list_batches_v1_batches_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for pagination; returns batches after this batch ID. title: After + description: A cursor for pagination; returns batches after this batch ID. - name: limit in: query required: false schema: type: integer + maximum: 100 + minimum: 1 + description: Number of batches to return (default 20, max 100). default: 20 title: Limit + description: Number of batches to return (default 20, max 100). responses: '200': - description: A list of batch objects. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListBatchesResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Batches summary: Create a new batch for processing multiple API requests. - description: Typed endpoint for proper schema generation. + description: Create a new batch for processing multiple API requests. operationId: create_batch_v1_batches_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_batches_Request' + $ref: '#/components/schemas/CreateBatchRequest' responses: '200': - description: The created batch object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Batch' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches/{batch_id}: get: tags: - - V1 + - Batches summary: Retrieve information about a specific batch. - description: Query endpoint for proper schema generation. + description: Retrieve information about a specific batch. operationId: retrieve_batch_v1_batches__batch_id__get parameters: - name: batch_id @@ -4864,123 +1843,173 @@ paths: required: true schema: type: string + description: The ID of the batch to retrieve. title: Batch Id description: The ID of the batch to retrieve. responses: '200': - description: The batch object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Batch' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches/{batch_id}/cancel: post: tags: - - V1 + - Batches summary: Cancel a batch that is in progress. - description: Typed endpoint for proper schema generation. + description: Cancel a batch that is in progress. operationId: cancel_batch_v1_batches__batch_id__cancel_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_batches_batch_id_cancel_Request' - required: true - responses: - '200': - description: The updated batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - name: batch_id in: path required: true schema: type: string + description: The ID of the batch to cancel. + title: Batch Id description: The ID of the batch to cancel. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Batch' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/chat/completions: get: tags: - - V1 + - Inference summary: List chat completions. - description: Query endpoint for proper schema generation. + description: List chat completions. operationId: list_chat_completions_v1_chat_completions_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the last chat completion to return. title: After - - name: model - in: query - required: true - schema: - type: string - title: Model + description: The ID of the last chat completion to return. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + description: The maximum number of chat completions to return. default: 20 title: Limit + description: The maximum number of chat completions to return. + - name: model + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The model to filter by. + title: Model + description: The model to filter by. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: "The order to sort the chat completions by: 'asc' or 'desc'. Defaults to 'desc'." default: desc + title: Order + description: "The order to sort the chat completions by: 'asc' or 'desc'. Defaults to 'desc'." responses: '200': - description: A ListOpenAIChatCompletionResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIChatCompletionResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Inference summary: Create chat completions. - description: Typed endpoint for proper schema generation. + description: Create chat completions. operationId: openai_chat_completion_v1_chat_completions_post requestBody: required: true @@ -4990,29 +2019,40 @@ paths: $ref: '#/components/schemas/OpenAIChatCompletionRequestWithExtraBody' responses: '200': - description: An OpenAIChatCompletion. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/OpenAIChatCompletion' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/chat/completions/{completion_id}: get: tags: - - V1 + - Inference summary: Get chat completion. - description: Query endpoint for proper schema generation. + description: Get chat completion. operationId: get_chat_completion_v1_chat_completions__completion_id__get parameters: - name: completion_id @@ -5020,33 +2060,46 @@ paths: required: true schema: type: string + description: ID of the chat completion. title: Completion Id description: ID of the chat completion. responses: '200': - description: A OpenAICompletionWithInputMessages. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAICompletionWithInputMessages' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/completions: post: tags: - - V1 + - Inference summary: Create completion. - description: Typed endpoint for proper schema generation. + description: Create completion. operationId: openai_completion_v1_completions_post requestBody: content: @@ -5056,61 +2109,85 @@ paths: required: true responses: '200': - description: An OpenAICompletion. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAICompletion' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations: post: tags: - - V1 - summary: Create a conversation. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Create a conversation + description: Create a conversation operationId: create_conversation_v1_conversations_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_conversations_Request' + $ref: '#/components/schemas/ConversationCreateRequest' required: true responses: '200': - description: The created conversation object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}: delete: tags: - - V1 - summary: Delete a conversation. - description: Query endpoint for proper schema generation. + - Conversations + summary: Delete a conversation + description: Delete a conversation with the given ID operationId: openai_delete_conversation_v1_conversations__conversation_id__delete parameters: - name: conversation_id @@ -5118,32 +2195,45 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier responses: '200': - description: The deleted conversation resource. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationDeletedResource' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Retrieve a conversation. - description: Query endpoint for proper schema generation. + - Conversations + summary: Retrieve a conversation + description: Get a conversation with the given ID operationId: get_conversation_v1_conversations__conversation_id__get parameters: - name: conversation_id @@ -5151,166 +2241,242 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier responses: '200': - description: The conversation object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Update a conversation. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Update a conversation + description: Update a conversation's metadata with the given ID operationId: update_conversation_v1_conversations__conversation_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_conversations_conversation_id_Request' - responses: - '200': - description: The updated conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: conversation_id in: path required: true schema: type: string - description: The conversation identifier. + description: The conversation identifier + title: Conversation Id + description: The conversation identifier + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ConversationUpdateRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Conversation' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}/items: get: tags: - - V1 - summary: List items. - description: Query endpoint for proper schema generation. + - Conversations + summary: List items + description: List items in the conversation operationId: list_items_v1_conversations__conversation_id__items_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: include - in: query - required: true - schema: - $ref: '#/components/schemas/ConversationItemInclude' - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: order - in: query - required: true - schema: - type: string - title: Order - name: conversation_id in: path required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items after, used in pagination + title: After + description: An item ID to list items after, used in pagination + - name: include + in: query + required: false + schema: + anyOf: + - type: array + items: + $ref: '#/components/schemas/ConversationItemInclude' + - type: 'null' + description: Specify additional output data to include in the response + title: Include + description: Specify additional output data to include in the response + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: A limit on the number of objects to be returned (1-100, default 20) + title: Limit + description: A limit on the number of objects to be returned (1-100, default 20) + - name: order + in: query + required: false + schema: + anyOf: + - enum: + - asc + - desc + type: string + - type: 'null' + description: The order to return items in (asc or desc, default desc) + title: Order + description: The order to return items in (asc or desc, default desc) responses: '200': - description: List of conversation items. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemList' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Create items. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Create items + description: Create items in the conversation operationId: add_items_v1_conversations__conversation_id__items_post + parameters: + - name: conversation_id + in: path + required: true + schema: + type: string + description: The conversation identifier + title: Conversation Id + description: The conversation identifier requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_conversations_conversation_id_items_Request' + $ref: '#/components/schemas/ConversationItemCreateRequest' responses: '200': - description: List of created items. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemList' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - parameters: - - name: conversation_id - in: path - required: true - schema: - type: string - description: The conversation identifier. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}/items/{item_id}: delete: tags: - - V1 - summary: Delete an item. - description: Query endpoint for proper schema generation. + - Conversations + summary: Delete an item + description: Delete a conversation item operationId: openai_delete_conversation_item_v1_conversations__conversation_id__items__item_id__delete parameters: - name: conversation_id @@ -5318,39 +2484,53 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier - name: item_id in: path required: true schema: type: string + description: The item identifier title: Item Id - description: The item identifier. + description: The item identifier responses: '200': - description: The deleted item resource. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemDeletedResource' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Retrieve an item. - description: Query endpoint for proper schema generation. + - Conversations + summary: Retrieve an item + description: Retrieve a conversation item operationId: retrieve_v1_conversations__conversation_id__items__item_id__get parameters: - name: conversation_id @@ -5358,40 +2538,76 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier - name: item_id in: path required: true schema: type: string + description: The item identifier title: Item Id - description: The item identifier. + description: The item identifier responses: '200': - description: The conversation item. + description: Successful Response content: application/json: schema: - $ref: '#/components/schemas/OpenAIResponseMessage' + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + title: Response Retrieve V1 Conversations Conversation Id Items Item Id Get '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/embeddings: post: tags: - - V1 + - Inference summary: Create embeddings. - description: Typed endpoint for proper schema generation. + description: Create embeddings. operationId: openai_embeddings_v1_embeddings_post requestBody: content: @@ -5401,105 +2617,165 @@ paths: required: true responses: '200': - description: An OpenAIEmbeddingsResponse containing the embeddings. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIEmbeddingsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/files: get: tags: - - V1 + - Files summary: List files. - description: Query endpoint for proper schema generation. + description: Returns a list of files that belong to the user's organization. operationId: openai_list_files_v1_files_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. title: After - - name: purpose - in: query - required: true - schema: - $ref: '#/components/schemas/OpenAIFilePurpose' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + 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. default: 10000 title: Limit + 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. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc + title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: purpose + in: query + required: false + schema: + anyOf: + - $ref: '#/components/schemas/OpenAIFilePurpose' + - type: 'null' + description: Only return files with the given purpose. + title: Purpose + description: Only return files with the given purpose. responses: '200': - description: An ListOpenAIFileResponse containing the list of files. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIFileResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Files summary: Upload file. - description: Response-only endpoint for proper schema generation. + description: Upload a file that can be used across various endpoints. operationId: openai_upload_file_v1_files_post + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/Body_openai_upload_file_v1_files_post' responses: '200': - description: An OpenAIFileObject representing the uploaded file. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/files/{file_id}: delete: tags: - - V1 + - Files summary: Delete file. - description: Query endpoint for proper schema generation. + description: Delete a file. operationId: openai_delete_file_v1_files__file_id__delete parameters: - name: file_id @@ -5507,32 +2783,45 @@ paths: required: true schema: type: string + description: The ID of the file to use for this request. title: File Id description: The ID of the file to use for this request. responses: '200': - description: An OpenAIFileDeleteResponse indicating successful deletion. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIFileDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Files summary: Retrieve file. - description: Query endpoint for proper schema generation. + description: Returns information about a specific file. operationId: openai_retrieve_file_v1_files__file_id__get parameters: - name: file_id @@ -5540,225 +2829,288 @@ paths: required: true schema: type: string + description: The ID of the file to use for this request. title: File Id description: The ID of the file to use for this request. - responses: - '200': - description: An OpenAIFileObject containing file information. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/files/{file_id}/content: - get: - tags: - - V1 - summary: Retrieve file content. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: openai_retrieve_file_content_v1_files__file_id__content_get - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: file_id - in: path - required: true - schema: - type: string - description: The ID of the file to use for this request. - responses: - '200': - description: The raw file content as a binary response. - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/health: - get: - tags: - - V1 - summary: Get health status. - description: Response-only endpoint for proper schema generation. - operationId: health_v1_health_get - responses: - '200': - description: Health information indicating if the service is operational. - content: - application/json: - schema: - $ref: '#/components/schemas/HealthInfo' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/inspect/routes: - get: - tags: - - V1 - summary: List routes. - description: Response-only endpoint for proper schema generation. - operationId: list_routes_v1_inspect_routes_get - responses: - '200': - description: Response containing information about all available routes. - content: - application/json: - schema: - $ref: '#/components/schemas/ListRoutesResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/models: - get: - tags: - - V1 - summary: List all models. - description: Response-only endpoint for proper schema generation. - operationId: list_models_v1_models_get - responses: - '200': - description: A ListModelsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListModelsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Register model. - description: Typed endpoint for proper schema generation. - operationId: register_model_v1_models_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_models_Request' - required: true - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/models/{model_id}: - delete: - tags: - - V1 - summary: Unregister model. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_model_v1_models__model_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: model_id - in: path - required: true - schema: - type: string - description: 'Path parameter: model_id' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/OpenAIFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/files/{file_id}/content: get: tags: - - V1 + - Files + summary: Retrieve file content. + description: Returns the contents of the specified file. + operationId: openai_retrieve_file_content_v1_files__file_id__content_get + parameters: + - name: file_id + in: path + required: true + schema: + type: string + description: The ID of the file to use for this request. + title: File Id + description: The ID of the file to use for this request. + responses: + '200': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/health: + get: + tags: + - Inspect + summary: Get health status. + description: Get the current health status of the service. + operationId: health_v1_health_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/HealthInfo' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/inspect/routes: + get: + tags: + - Inspect + summary: List routes. + description: List all available API routes with their methods and implementing providers. + operationId: list_routes_v1_inspect_routes_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoutesResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/models: + get: + tags: + - Models + summary: List all models. + description: List all models registered in Llama Stack. + operationId: list_models_v1_models_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListModelsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Models + summary: Register model. + description: Register a new model in Llama Stack. + operationId: register_model_v1_models_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterModelRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Model' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/models/{model_id}: + delete: + tags: + - Models + summary: Unregister model. + description: Unregister a model from Llama Stack. + operationId: unregister_model_v1_models__model_id__delete + parameters: + - name: model_id + in: path + required: true + schema: + type: string + description: The identifier of the model to unregister. + title: Model Id + description: The identifier of the model to unregister. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Models summary: Get model. - description: Query endpoint for proper schema generation. + description: Get a model by its identifier. operationId: get_model_v1_models__model_id__get parameters: - name: model_id @@ -5766,279 +3118,375 @@ paths: required: true schema: type: string + description: The identifier of the model to get. title: Model Id - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/moderations: - post: - tags: - - V1 - summary: Create moderation. - description: Typed endpoint for proper schema generation. - operationId: run_moderation_v1_moderations_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_moderations_Request' - required: true - responses: - '200': - description: A moderation object. - content: - application/json: - schema: - $ref: '#/components/schemas/ModerationObject' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/prompts: - get: - tags: - - V1 - summary: List all prompts. - description: Response-only endpoint for proper schema generation. - operationId: list_prompts_v1_prompts_get - responses: - '200': - description: A ListPromptsResponse containing all prompts. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Create prompt. - description: Typed endpoint for proper schema generation. - operationId: create_prompt_v1_prompts_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_prompts_Request' - required: true - responses: - '200': - description: The created Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/prompts/{prompt_id}: - delete: - tags: - - V1 - summary: Delete prompt. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_prompt_v1_prompts__prompt_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: prompt_id - in: path - required: true - schema: - type: string - description: The identifier of the prompt to delete. + description: The identifier of the model to get. responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/Model' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/moderations: + post: tags: - - V1 - summary: Get prompt. - description: Query endpoint for proper schema generation. - operationId: get_prompt_v1_prompts__prompt_id__get - parameters: - - name: version - in: query + - Safety + summary: Create moderation. + description: Classifies if text and/or image inputs are potentially harmful. + operationId: run_moderation_v1_moderations_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RunModerationRequest' required: true - schema: - type: integer - title: Version - - name: prompt_id - in: path - required: true - schema: - type: string - title: Prompt Id - description: The identifier of the prompt to get. responses: '200': - description: A Prompt resource. + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ModerationObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/prompts: + get: + tags: + - Prompts + summary: List all prompts + description: List all prompts registered in Llama Stack + operationId: list_prompts_v1_prompts_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPromptsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Prompts + summary: Create prompt + description: Create a new prompt + operationId: create_prompt_v1_prompts_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePromptRequest' + required: true + responses: + '200': + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Prompt' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/prompts/{prompt_id}: + delete: + tags: + - Prompts + summary: Delete prompt + description: Delete a prompt + operationId: delete_prompt_v1_prompts__prompt_id__delete + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to delete + title: Prompt Id + description: The identifier of the prompt to delete + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Prompts + summary: Get prompt + description: Get a prompt by its identifier and optional version + operationId: get_prompt_v1_prompts__prompt_id__get + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to get + title: Prompt Id + description: The identifier of the prompt to get + - name: version + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The version of the prompt to get (defaults to latest) + title: Version + description: The version of the prompt to get (defaults to latest) + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Prompt' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Update prompt. - description: Typed endpoint for proper schema generation. + - Prompts + summary: Update prompt + description: Update an existing prompt (increments version) operationId: update_prompt_v1_prompts__prompt_id__post + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to update + title: Prompt Id + description: The identifier of the prompt to update requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_prompts_prompt_id_Request' + $ref: '#/components/schemas/UpdatePromptRequest' responses: '200': - description: The updated Prompt resource with incremented version. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Prompt' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - parameters: - - name: prompt_id - in: path - required: true - schema: - type: string - description: The identifier of the prompt to update. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/prompts/{prompt_id}/set-default-version: post: tags: - - V1 - summary: Set prompt version. - description: Typed endpoint for proper schema generation. + - Prompts + summary: Set prompt version + description: Set which version of a prompt should be the default in get_prompt (latest) operationId: set_default_version_v1_prompts__prompt_id__set_default_version_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_prompts_prompt_id_set_default_version_Request' - required: true - responses: - '200': - description: The prompt with the specified version now set as default. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - name: prompt_id in: path required: true schema: type: string - description: The identifier of the prompt. + description: The identifier of the prompt + title: Prompt Id + description: The identifier of the prompt + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SetDefaultVersionRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Prompt' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/prompts/{prompt_id}/versions: get: tags: - - V1 - summary: List prompt versions. - description: Query endpoint for proper schema generation. + - Prompts + summary: List prompt versions + description: List all versions of a specific prompt operationId: list_prompt_versions_v1_prompts__prompt_id__versions_get parameters: - name: prompt_id @@ -6046,59 +3494,84 @@ paths: required: true schema: type: string + description: The identifier of the prompt to list versions for title: Prompt Id - description: The identifier of the prompt to list versions for. + description: The identifier of the prompt to list versions for responses: '200': - description: A ListPromptsResponse containing all versions of the prompt. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListPromptsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/providers: get: tags: - - V1 - summary: List providers. - description: Response-only endpoint for proper schema generation. + - Providers + summary: List providers + description: List all available providers operationId: list_providers_v1_providers_get responses: '200': - description: A ListProvidersResponse containing information about all providers. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListProvidersResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/providers/{provider_id}: get: tags: - - V1 - summary: Get provider. - description: Query endpoint for proper schema generation. + - Providers + summary: Get provider + description: Get detailed information about a specific provider operationId: inspect_provider_v1_providers__provider_id__get parameters: - name: provider_id @@ -6106,116 +3579,169 @@ paths: required: true schema: type: string + description: The ID of the provider to inspect title: Provider Id - description: The ID of the provider to inspect. + description: The ID of the provider to inspect responses: '200': - description: A ProviderInfo object containing the provider's details. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProviderInfo' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses: get: tags: - - V1 + - Agents summary: List all responses. - description: Query endpoint for proper schema generation. + description: List all responses. operationId: list_openai_responses_v1_responses_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the last response to return. title: After - - name: model - in: query - required: true - schema: - type: string - title: Model + description: The ID of the last response to return. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + description: The number of responses to return. default: 50 title: Limit + description: The number of responses to return. + - name: model + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The model to filter responses by. + title: Model + description: The model to filter responses by. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: The order to sort responses by when sorted by created_at ('asc' or 'desc'). default: desc + title: Order + description: The order to sort responses by when sorted by created_at ('asc' or 'desc'). responses: '200': - description: A ListOpenAIResponseObject. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Agents summary: Create a model response. - description: Typed endpoint for proper schema generation. + description: Create a model response. operationId: create_openai_response_v1_responses_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_responses_Request' + $ref: '#/components/schemas/CreateOpenAIResponseRequest' responses: '200': - description: An OpenAIResponseObject. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/OpenAIResponseObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses/{response_id}: delete: tags: - - V1 + - Agents summary: Delete a response. - description: Query endpoint for proper schema generation. + description: Delete a response. operationId: delete_openai_response_v1_responses__response_id__delete parameters: - name: response_id @@ -6223,32 +3749,45 @@ paths: required: true schema: type: string + description: The ID of the OpenAI response to delete. title: Response Id description: The ID of the OpenAI response to delete. responses: '200': - description: An OpenAIDeleteResponseObject + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIDeleteResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Agents summary: Get a model response. - description: Query endpoint for proper schema generation. + description: Get a model response. operationId: get_openai_response_v1_responses__response_id__get parameters: - name: response_id @@ -6256,232 +3795,312 @@ paths: required: true schema: type: string + description: The ID of the OpenAI response to retrieve. title: Response Id description: The ID of the OpenAI response to retrieve. responses: '200': - description: An OpenAIResponseObject. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses/{response_id}/input_items: get: tags: - - V1 + - Agents summary: List input items. - description: Query endpoint for proper schema generation. + description: List input items. operationId: list_openai_response_input_items_v1_responses__response_id__input_items_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - - name: include - in: query - required: true - schema: - type: string - title: Include - - name: limit - in: query - required: false - schema: - type: integer - default: 20 - title: Limit - - name: order - in: query - required: false - schema: - $ref: '#/components/schemas/Order' - default: desc - name: response_id in: path required: true schema: type: string + description: The ID of the response to retrieve input items for. title: Response Id description: The ID of the response to retrieve input items for. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items after, used for pagination. + title: After + description: An item ID to list items after, used for pagination. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items before, used for pagination. + title: Before + description: An item ID to list items before, used for pagination. + - name: include + in: query + required: false + schema: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: Additional fields to include in the response. + title: Include + description: Additional fields to include in the response. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + default: 20 + title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + - name: order + in: query + required: false + schema: + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: The order to return the input items in. Default is desc. + default: desc + title: Order + description: The order to return the input items in. Default is desc. responses: '200': - description: An ListOpenAIResponseInputItem. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIResponseInputItem' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/safety/run-shield: post: tags: - - V1 + - Safety summary: Run shield. - description: Typed endpoint for proper schema generation. + description: Run a shield. operationId: run_shield_v1_safety_run_shield_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_safety_run_shield_Request' + $ref: '#/components/schemas/RunShieldRequest' required: true responses: '200': - description: A RunShieldResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RunShieldResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/scoring-functions: get: tags: - - V1 - summary: List all scoring functions. - description: Response-only endpoint for proper schema generation. + - Scoring Functions + summary: List all scoring functions + description: List all scoring functions operationId: list_scoring_functions_v1_scoring_functions_get responses: '200': - description: A ListScoringFunctionsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListScoringFunctionsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Register a scoring function. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: register_scoring_function_v1_scoring_functions_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Scoring Functions + summary: Register a scoring function + description: Register a scoring function + operationId: register_scoring_function_v1_scoring_functions_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterScoringFunctionRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/scoring-functions/{scoring_fn_id}: delete: tags: - - V1 - summary: Unregister a scoring function. - description: Generic endpoint - this would be replaced with actual implementation. + - Scoring Functions + summary: Unregister a scoring function + description: Unregister a scoring function operationId: unregister_scoring_function_v1_scoring_functions__scoring_fn_id__delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: scoring_fn_id in: path required: true schema: type: string - description: 'Path parameter: scoring_fn_id' + description: The ID of the scoring function to unregister + title: Scoring Fn Id + description: The ID of the scoring function to unregister responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Get a scoring function by its ID. - description: Query endpoint for proper schema generation. + - Scoring Functions + summary: Get a scoring function by its ID + description: Get a scoring function by its ID operationId: get_scoring_function_v1_scoring_functions__scoring_fn_id__get parameters: - name: scoring_fn_id @@ -6489,194 +4108,257 @@ paths: required: true schema: type: string + description: The ID of the scoring function to get title: Scoring Fn Id - responses: - '200': - description: A ScoringFn. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoringFn' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/scoring/score: - post: - tags: - - V1 - summary: Score a list of rows. - description: Typed endpoint for proper schema generation. - operationId: score_v1_scoring_score_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_scoring_score_Request' - required: true - responses: - '200': - description: A ScoreResponse object containing rows and aggregated results. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/scoring/score-batch: - post: - tags: - - V1 - summary: Score a batch of rows. - description: Typed endpoint for proper schema generation. - operationId: score_batch_v1_scoring_score_batch_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_scoring_score_batch_Request' - required: true - responses: - '200': - description: A ScoreBatchResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/shields: - get: - tags: - - V1 - summary: List all shields. - description: Response-only endpoint for proper schema generation. - operationId: list_shields_v1_shields_get - responses: - '200': - description: A ListShieldsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListShieldsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Register a shield. - description: Typed endpoint for proper schema generation. - operationId: register_shield_v1_shields_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_shields_Request' - required: true - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/shields/{identifier}: - delete: - tags: - - V1 - summary: Unregister a shield. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_shield_v1_shields__identifier__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: identifier - in: path - required: true - schema: - type: string - description: 'Path parameter: identifier' + description: The ID of the scoring function to get responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/ScoringFn' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/scoring/score: + post: + tags: + - Scoring + summary: Score a list of rows + description: Score a list of rows + operationId: score_v1_scoring_score_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/scoring/score-batch: + post: + tags: + - Scoring + summary: Score a batch of rows + description: Score a batch of rows from a dataset + operationId: score_batch_v1_scoring_score_batch_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreBatchRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreBatchResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/shields: get: tags: - - V1 - summary: Get a shield by its identifier. - description: Query endpoint for proper schema generation. + - Shields + summary: List all shields + description: List all shields + operationId: list_shields_v1_shields_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListShieldsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Shields + summary: Register a shield + description: Register a shield + operationId: register_shield_v1_shields_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterShieldRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Shield' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/shields/{identifier}: + delete: + tags: + - Shields + summary: Unregister a shield + description: Unregister a shield + operationId: unregister_shield_v1_shields__identifier__delete + parameters: + - name: identifier + in: path + required: true + schema: + type: string + description: The identifier of the shield to unregister + title: Identifier + description: The identifier of the shield to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Shields + summary: Get a shield by its identifier + description: Get a shield by its identifier operationId: get_shield_v1_shields__identifier__get parameters: - name: identifier @@ -6684,273 +4366,352 @@ paths: required: true schema: type: string + description: The identifier of the shield to get title: Identifier + description: The identifier of the shield to get responses: '200': - description: A Shield. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Shield' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/invoke: post: tags: - - V1 - summary: Run a tool with the given arguments. - description: Typed endpoint for proper schema generation. + - Tool Runtime + summary: Run a tool with the given arguments + description: Run a tool with the given arguments operationId: invoke_tool_v1_tool_runtime_invoke_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_tool_runtime_invoke_Request' + $ref: '#/components/schemas/InvokeToolRequest' required: true responses: '200': - description: A ToolInvocationResult. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ToolInvocationResult' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/list-tools: get: tags: - - V1 - summary: List all tools in the runtime. - description: Query endpoint for proper schema generation. + - Tool Runtime + summary: List all tools in the runtime + description: List all tools in the runtime operationId: list_runtime_tools_v1_tool_runtime_list_tools_get parameters: - name: tool_group_id in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the tool group to list tools for title: Tool Group Id - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/URL' + description: The ID of the tool group to list tools for + - name: mcp_endpoint + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The MCP endpoint URL to use for the tool group + title: Mcp Endpoint + description: The MCP endpoint URL to use for the tool group responses: '200': - description: A ListToolDefsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolDefsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/rag-tool/insert: post: tags: - - V1 - summary: Index documents so they can be used by the RAG system. - description: Generic endpoint - this would be replaced with actual implementation. + - Tool Runtime + summary: Insert documents into the RAG system. + description: Index documents so they can be used by the RAG system. operationId: rag_tool_insert_v1_tool_runtime_rag_tool_insert_post - parameters: - - name: args - in: query + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post' required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/rag-tool/query: post: tags: - - V1 - summary: Query the RAG system for context; typically invoked by the agent. - description: Typed endpoint for proper schema generation. + - Tool Runtime + summary: Query the RAG system for context. + description: Query the RAG system for context; typically invoked by the agent. operationId: rag_tool_query_v1_tool_runtime_rag_tool_query_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_tool_runtime_rag_tool_query_Request' + $ref: '#/components/schemas/Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post' required: true responses: '200': - description: RAGQueryResult containing the retrieved content and metadata + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RAGQueryResult' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/toolgroups: get: tags: - - V1 - summary: List tool groups with optional provider. - description: Response-only endpoint for proper schema generation. + - Tool Groups + summary: List tool groups + description: List tool groups with optional provider operationId: list_tool_groups_v1_toolgroups_get responses: '200': - description: A ListToolGroupsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolGroupsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Register a tool group. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: register_tool_group_v1_toolgroups_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Tool Groups + summary: Register a tool group + description: Register a tool group + operationId: register_tool_group_v1_toolgroups_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterToolGroupRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/toolgroups/{toolgroup_id}: delete: tags: - - V1 - summary: Unregister a tool group. - description: Generic endpoint - this would be replaced with actual implementation. + - Tool Groups + summary: Unregister a tool group + description: Unregister a tool group operationId: unregister_toolgroup_v1_toolgroups__toolgroup_id__delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: toolgroup_id in: path required: true schema: type: string - description: 'Path parameter: toolgroup_id' + description: The ID of the tool group to unregister + title: Toolgroup Id + description: The ID of the tool group to unregister responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Get a tool group by its ID. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: Get a tool group by its ID + description: Get a tool group by its ID operationId: get_tool_group_v1_toolgroups__toolgroup_id__get parameters: - name: toolgroup_id @@ -6958,65 +4719,95 @@ paths: required: true schema: type: string + description: The ID of the tool group to get title: Toolgroup Id + description: The ID of the tool group to get responses: '200': - description: A ToolGroup. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ToolGroup' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tools: get: tags: - - V1 - summary: List tools with optional tool group. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: List tools + description: List tools with optional tool group operationId: list_tools_v1_tools_get parameters: - name: toolgroup_id in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the tool group to list tools for title: Toolgroup Id + description: The ID of the tool group to list tools for responses: '200': - description: A ListToolDefsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolDefsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tools/{tool_name}: get: tags: - - V1 - summary: Get a tool by its name. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: Get a tool by its name + description: Get a tool by its name operationId: get_tool_v1_tools__tool_name__get parameters: - name: tool_name @@ -7024,152 +4815,212 @@ paths: required: true schema: type: string + description: The name of the tool to get title: Tool Name - responses: - '200': - description: A ToolDef. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolDef' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/vector-io/insert: - post: - tags: - - V1 - summary: Insert chunks into a vector database. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: insert_chunks_v1_vector_io_insert_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs + description: The name of the tool to get responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/ToolDef' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/vector-io/insert: + post: + tags: + - Vector IO + summary: Insert chunks into a vector database. + description: Insert chunks into a vector database. + operationId: insert_chunks_v1_vector_io_insert_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InsertChunksRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector-io/query: post: tags: - - V1 + - Vector IO summary: Query chunks from a vector database. - description: Typed endpoint for proper schema generation. + description: Query chunks from a vector database. operationId: query_chunks_v1_vector_io_query_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_vector_io_query_Request' + $ref: '#/components/schemas/QueryChunksRequest' required: true responses: '200': - description: A QueryChunksResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryChunksResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores: get: tags: - - V1 + - Vector IO summary: Returns a list of vector stores. - description: Query endpoint for proper schema generation. + description: Returns a list of vector stores. operationId: openai_list_vector_stores_v1_vector_stores_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. default: 20 title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. responses: '200': - description: A VectorStoreListResponse containing the list of vector stores. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreListResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Creates a vector store. - description: Typed endpoint for proper schema generation. + description: Creates a vector store. operationId: openai_create_vector_store_v1_vector_stores_post requestBody: required: true @@ -7179,29 +5030,41 @@ paths: $ref: '#/components/schemas/OpenAICreateVectorStoreRequestWithExtraBody' responses: '200': - description: A VectorStoreObject representing the created vector store. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}: delete: tags: - - V1 + - Vector IO summary: Delete a vector store. - description: Query endpoint for proper schema generation. + description: Delete a vector store. operationId: openai_delete_vector_store_v1_vector_stores__vector_store_id__delete parameters: - name: vector_store_id @@ -7209,32 +5072,45 @@ paths: required: true schema: type: string + description: The ID of the vector store to delete. title: Vector Store Id description: The ID of the vector store to delete. responses: '200': - description: A VectorStoreDeleteResponse indicating the deletion status. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Vector IO summary: Retrieves a vector store. - description: Query endpoint for proper schema generation. + description: Retrieves a vector store. operationId: openai_retrieve_vector_store_v1_vector_stores__vector_store_id__get parameters: - name: vector_store_id @@ -7242,373 +5118,530 @@ paths: required: true schema: type: string + description: The ID of the vector store to retrieve. title: Vector Store Id description: The ID of the vector store to retrieve. responses: '200': - description: A VectorStoreObject representing the vector store. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Updates a vector store. - description: Typed endpoint for proper schema generation. + description: Updates a vector store. operationId: openai_update_vector_store_v1_vector_stores__vector_store_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_Request' - responses: - '200': - description: A VectorStoreObject representing the updated vector store. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to update. + title: Vector Store Id description: The ID of the vector store to update. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreModifyRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches: post: tags: - - V1 + - Vector IO summary: Create a vector store file batch. - description: Typed endpoint for proper schema generation. + description: Create a vector store file batch. operationId: openai_create_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches_post + parameters: + - name: vector_store_id + in: path + required: true + schema: + type: string + description: The ID of the vector store to create the file batch for. + title: Vector Store Id + description: The ID of the vector store to create the file batch for. requestBody: + required: true content: application/json: schema: $ref: '#/components/schemas/OpenAICreateVectorStoreFileBatchRequestWithExtraBody' - required: true responses: '200': - description: A VectorStoreFileBatchObject representing the created file batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileBatchObject' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: vector_store_id - in: path - required: true - schema: - type: string - description: The ID of the vector store to create the file batch for. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}: get: tags: - - V1 + - Vector IO summary: Retrieve a vector store file batch. - description: Query endpoint for proper schema generation. + description: Retrieve a vector store file batch. operationId: openai_retrieve_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__get parameters: - - name: batch_id - in: path - required: true - schema: - type: string - title: Batch Id - description: The ID of the file batch to retrieve. - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file batch. title: Vector Store Id description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to retrieve. + title: Batch Id + description: The ID of the file batch to retrieve. responses: '200': - description: A VectorStoreFileBatchObject representing the file batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileBatchObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: post: tags: - - V1 + - Vector IO summary: Cancels a vector store file batch. - description: Typed endpoint for proper schema generation. + description: Cancels a vector store file batch. operationId: openai_cancel_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__cancel_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request' - required: true - responses: - '200': - description: A VectorStoreFileBatchObject representing the cancelled file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - - name: batch_id - in: path - required: true - schema: - type: string - description: The ID of the file batch to cancel. - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file batch. + title: Vector Store Id description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to cancel. + title: Batch Id + description: The ID of the file batch to cancel. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileBatchObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files: get: tags: - - V1 + - Vector IO summary: Returns a list of vector store files in a batch. - description: Query endpoint for proper schema generation. + description: Returns a list of vector store files in a batch. operationId: openai_list_files_in_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__files_get parameters: + - name: vector_store_id + in: path + required: true + schema: + type: string + description: The ID of the vector store containing the file batch. + title: Vector Store Id + description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to list files from. + title: Batch Id + description: The ID of the file batch to list files from. - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - name: before in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. - name: filter in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Filter by file status. One of in_progress, completed, failed, cancelled. title: Filter + description: Filter by file status. One of in_progress, completed, failed, cancelled. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. default: 20 title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc title: Order - - name: batch_id - in: path - required: true - schema: - type: string - title: Batch Id - description: The ID of the file batch to list files from. - - name: vector_store_id - in: path - required: true - schema: - type: string - title: Vector Store Id - description: The ID of the vector store containing the file batch. + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. responses: '200': - description: A VectorStoreFilesListInBatchResponse containing the list of files in the batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFilesListInBatchResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files: get: tags: - - V1 + - Vector IO summary: List files in a vector store. - description: Query endpoint for proper schema generation. + description: List files in a vector store. operationId: openai_list_files_in_vector_store_v1_vector_stores__vector_store_id__files_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - - name: filter - in: query - required: true - schema: - type: string - title: Filter - - name: limit - in: query - required: false - schema: - type: integer - default: 20 - title: Limit - - name: order - in: query - required: false - schema: - type: string - default: desc - title: Order - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to list files from. title: Vector Store Id description: The ID of the vector store to list files from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + default: 20 + title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + - name: order + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + default: desc + title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + - name: filter + in: query + required: false + schema: + anyOf: + - const: completed + type: string + - const: in_progress + type: string + - const: cancelled + type: string + - const: failed + type: string + - type: 'null' + description: Filter by file status to only return files with the specified status. + title: Filter + description: Filter by file status to only return files with the specified status. responses: '200': - description: A VectorStoreListFilesResponse containing the list of files. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreListFilesResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Attach a file to a vector store. - description: Typed endpoint for proper schema generation. - operationId: openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_files_Request' - responses: - '200': - description: A VectorStoreFileObject representing the attached file. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Vector IO + summary: Attach a file to a vector store. + description: Attach a file to a vector store. + operationId: openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to attach the file to. + title: Vector Store Id description: The ID of the vector store to attach the file to. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files/{file_id}: delete: tags: - - V1 + - Vector IO summary: Delete a vector store file. - description: Query endpoint for proper schema generation. + description: Delete a vector store file. operationId: openai_delete_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__delete parameters: - name: vector_store_id @@ -7616,6 +5649,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to delete. title: Vector Store Id description: The ID of the vector store containing the file to delete. - name: file_id @@ -7623,32 +5657,45 @@ paths: required: true schema: type: string + description: The ID of the file to delete. title: File Id description: The ID of the file to delete. responses: '200': - description: A VectorStoreFileDeleteResponse indicating the deletion status. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Vector IO summary: Retrieves a vector store file. - description: Query endpoint for proper schema generation. + description: Retrieves a vector store file. operationId: openai_retrieve_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__get parameters: - name: vector_store_id @@ -7656,6 +5703,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to retrieve. title: Vector Store Id description: The ID of the vector store containing the file to retrieve. - name: file_id @@ -7663,77 +5711,109 @@ paths: required: true schema: type: string + description: The ID of the file to retrieve. title: File Id description: The ID of the file to retrieve. responses: '200': - description: A VectorStoreFileObject representing the file. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Updates a vector store file. - description: Typed endpoint for proper schema generation. + description: Updates a vector store file. operationId: openai_update_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_files_file_id_Request' - responses: - '200': - description: A VectorStoreFileObject representing the updated file. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file to update. + title: Vector Store Id description: The ID of the vector store containing the file to update. - name: file_id in: path required: true schema: type: string + description: The ID of the file to update. + title: File Id description: The ID of the file to update. + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + description: The updated key-value attributes to store with the file. + title: Attributes + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files/{file_id}/content: get: tags: - - V1 + - Vector IO summary: Retrieves the contents of a vector store file. - description: Query endpoint for proper schema generation. + description: Retrieves the contents of a vector store file. operationId: openai_retrieve_vector_store_file_contents_v1_vector_stores__vector_store_id__files__file_id__content_get parameters: - name: vector_store_id @@ -7741,6 +5821,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to retrieve. title: Vector Store Id description: The ID of the vector store containing the file to retrieve. - name: file_id @@ -7748,169 +5829,356 @@ paths: required: true schema: type: string + description: The ID of the file to retrieve. title: File Id description: The ID of the file to retrieve. responses: '200': - description: A list of InterleavedContent representing the file contents. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileContentsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/vector_stores/{vector_store_id}/search: - post: - tags: - - V1 - summary: Search for chunks in a vector store. - description: Typed endpoint for proper schema generation. - operationId: openai_search_vector_store_v1_vector_stores__vector_store_id__search_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_search_Request' - required: true - responses: - '200': - description: A VectorStoreSearchResponse containing the search results. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/VectorStoreSearchResponsePage' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/vector_stores/{vector_store_id}/search: + post: + tags: + - Vector IO + summary: Search for chunks in a vector store. + description: Search for chunks in a vector store. + operationId: openai_search_vector_store_v1_vector_stores__vector_store_id__search_post parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to search. + title: Vector Store Id description: The ID of the vector store to search. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreSearchResponsePage' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/version: get: tags: - - V1 + - Inspect summary: Get version. - description: Response-only endpoint for proper schema generation. + description: Get the version of the service. operationId: version_v1_version_get responses: '200': - description: Version information containing the service version number. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VersionInfo' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' components: schemas: + Agent: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + agent_config: + $ref: '#/components/schemas/AgentConfig-Output' + description: Configuration settings for the agent + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the agent was created + type: object + required: + - agent_id + - agent_config + - created_at + title: Agent + description: An agent instance with configuration and metadata. AgentCandidate: properties: type: type: string const: agent title: Type + description: The type of candidate. default: agent config: - $ref: '#/components/schemas/AgentConfig' + $ref: '#/components/schemas/AgentConfig-Input' + description: The configuration for the agent candidate. type: object required: - config title: AgentCandidate description: An agent candidate for evaluation. - AgentConfig: + AgentConfig-Input: properties: sampling_params: - $ref: '#/components/schemas/SamplingParams' + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Input Shields - items: - type: string - type: array output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Output Shields - items: - type: string - type: array toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' title: Toolgroups - items: - anyOf: - - type: string - - $ref: '#/components/schemas/AgentToolGroupWithArgs' - type: array client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' title: Client Tools - items: - $ref: '#/components/schemas/ToolDef' - type: array tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' deprecated: true - $ref: '#/components/schemas/ToolChoice' tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' deprecated: true - $ref: '#/components/schemas/ToolPromptFormat' tool_config: - $ref: '#/components/schemas/ToolConfig' + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' max_infer_iters: + anyOf: + - type: integer + - type: 'null' title: Max Infer Iters default: 10 - type: integer model: type: string title: Model + description: The model identifier to use for the agent instructions: type: string title: Instructions + description: The system instructions for the agent name: + anyOf: + - type: string + - type: 'null' title: Name - type: string + description: Optional name for the agent, used in telemetry and identification enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted default: false - type: boolean response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' title: Response Format - oneOf: - - $ref: '#/components/schemas/JsonSchemaResponseFormat' - - $ref: '#/components/schemas/GrammarResponseFormat' - discriminator: - propertyName: type - mapping: - grammar: '#/components/schemas/GrammarResponseFormat' - json_schema: '#/components/schemas/JsonSchemaResponseFormat' + description: Optional response format configuration + type: object + required: + - model + - instructions + title: AgentConfig + description: Configuration for an agent. + AgentConfig-Output: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + model: + type: string + title: Model + description: The model identifier to use for the agent + instructions: + type: string + title: Instructions + description: The system instructions for the agent + name: + anyOf: + - type: string + - type: 'null' + title: Name + description: Optional name for the agent, used in telemetry and identification + enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' + title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted + default: false + response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' + title: Response Format + description: Optional response format configuration type: object required: - model @@ -7922,6 +6190,7 @@ components: agent_id: type: string title: Agent Id + description: Unique identifier for the created agent type: object required: - agent_id @@ -7932,11 +6201,34 @@ components: session_id: type: string title: Session Id + description: Unique identifier for the created session type: object required: - session_id title: AgentSessionCreateResponse description: Response returned when creating a new agent session. + AgentStepResponse: + properties: + step: + oneOf: + - $ref: '#/components/schemas/InferenceStep-Output' + - $ref: '#/components/schemas/ToolExecutionStep-Output' + - $ref: '#/components/schemas/ShieldCallStep-Output' + - $ref: '#/components/schemas/MemoryRetrievalStep-Output' + title: Step + description: The complete step data and execution details + discriminator: + propertyName: step_type + mapping: + inference: '#/components/schemas/InferenceStep-Output' + memory_retrieval: '#/components/schemas/MemoryRetrievalStep-Output' + shield_call: '#/components/schemas/ShieldCallStep-Output' + tool_execution: '#/components/schemas/ToolExecutionStep-Output' + type: object + required: + - step + title: AgentStepResponse + description: Response containing details of a specific agent step. AgentToolGroupWithArgs: properties: name: @@ -7951,6 +6243,107 @@ components: - name - args title: AgentToolGroupWithArgs + AgentTurnCreateRequest: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + description: List of tool groups to make available for this turn + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + description: Tool configuration to override agent defaults + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + messages: + items: + anyOf: + - $ref: '#/components/schemas/UserMessage-Input' + - $ref: '#/components/schemas/ToolResponseMessage-Input' + type: array + title: Messages + description: List of messages to start the turn with + documents: + anyOf: + - items: + $ref: '#/components/schemas/Document' + type: array + - type: 'null' + title: Documents + description: List of documents to provide to the agent + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - messages + title: AgentTurnCreateRequest + description: Request to create a new turn for an agent. AgentTurnInputType: properties: type: @@ -7960,7 +6353,42 @@ components: default: agent_turn_input type: object title: AgentTurnInputType - description: Parameter type for agent turn input. + description: "Parameter type for agent turn input.\n\n:param type: Discriminator type. Always \"agent_turn_input\"" + AgentTurnResumeRequest: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + turn_id: + type: string + title: Turn Id + description: Unique identifier for the turn within a session + tool_responses: + items: + $ref: '#/components/schemas/ToolResponse-Input' + type: array + title: Tool Responses + description: List of tool responses to submit to continue the turn + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - turn_id + - tool_responses + title: AgentTurnResumeRequest + description: Request to resume an agent turn with tool responses. AggregationFunctionType: type: string enum: @@ -7974,28 +6402,37 @@ components: AllowedToolsFilter: properties: tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Tool Names - items: - type: string - type: array + description: List of specific tool names that are allowed type: object title: AllowedToolsFilter - description: Filter configuration for restricting which MCP tools can be used. + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" ApprovalFilter: properties: always: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Always - items: - type: string - type: array + description: List of tool names that always require approval never: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Never - items: - type: string - type: array + description: List of tool names that never require approval type: object title: ApprovalFilter - description: Filter configuration for MCP tool approval requirements. + description: "Filter configuration for MCP tool approval requirements.\n\n:param always: (Optional) List of tool names that always require approval\n:param never: (Optional) List of tool names that never require approval" ArrayType: properties: type: @@ -8005,7 +6442,7 @@ components: default: array type: object title: ArrayType - description: Parameter type for array values. + description: "Parameter type for array values.\n\n:param type: Discriminator type. Always \"array\"" Attachment-Output: properties: content: @@ -8031,9 +6468,11 @@ components: type: array - $ref: '#/components/schemas/URL' title: Content + description: The content of the attachment. mime_type: type: string title: Mime Type + description: The MIME type of the attachment. type: object required: - content @@ -8090,49 +6529,79 @@ components: - cancelled title: Status cancelled_at: + anyOf: + - type: integer + - type: 'null' title: Cancelled At - type: integer cancelling_at: + anyOf: + - type: integer + - type: 'null' title: Cancelling At - type: integer completed_at: + anyOf: + - type: integer + - type: 'null' title: Completed At - type: integer error_file_id: + anyOf: + - type: string + - type: 'null' title: Error File Id - type: string errors: - $ref: '#/components/schemas/Errors' + anyOf: + - $ref: '#/components/schemas/Errors' + - type: 'null' expired_at: + anyOf: + - type: integer + - type: 'null' title: Expired At - type: integer expires_at: + anyOf: + - type: integer + - type: 'null' title: Expires At - type: integer failed_at: + anyOf: + - type: integer + - type: 'null' title: Failed At - type: integer finalizing_at: + anyOf: + - type: integer + - type: 'null' title: Finalizing At - type: integer in_progress_at: + anyOf: + - type: integer + - type: 'null' title: In Progress At - type: integer metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' title: Metadata - additionalProperties: - type: string - type: object model: + anyOf: + - type: string + - type: 'null' title: Model - type: string output_file_id: + anyOf: + - type: string + - type: 'null' title: Output File Id - type: string request_counts: - $ref: '#/components/schemas/BatchRequestCounts' + anyOf: + - $ref: '#/components/schemas/BatchRequestCounts' + - type: 'null' usage: - $ref: '#/components/schemas/BatchUsage' + anyOf: + - $ref: '#/components/schemas/BatchUsage' + - type: 'null' additionalProperties: true type: object required: @@ -8147,17 +6616,25 @@ components: BatchError: properties: code: + anyOf: + - type: string + - type: 'null' title: Code - type: string line: + anyOf: + - type: integer + - type: 'null' title: Line - type: integer message: + anyOf: + - type: string + - type: 'null' title: Message - type: string param: + anyOf: + - type: string + - type: 'null' title: Param - type: string additionalProperties: true type: object title: BatchError @@ -8210,9 +6687,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -8221,15 +6700,18 @@ components: type: string const: benchmark title: Type + description: The resource type, always benchmark default: benchmark dataset_id: type: string title: Dataset Id + description: The ID of the dataset to use for the benchmark scoring_functions: items: type: string type: array title: Scoring Functions + description: The scoring functions to use for the benchmark metadata: additionalProperties: true type: object @@ -8250,6 +6732,7 @@ components: - $ref: '#/components/schemas/ModelCandidate' - $ref: '#/components/schemas/AgentCandidate' title: Eval Candidate + description: The candidate to evaluate. discriminator: propertyName: type mapping: @@ -8269,16 +6752,212 @@ components: regex_parser: '#/components/schemas/RegexParserScoringFnParams' type: object title: Scoring Params - description: Map between scoring function id and parameters for each scoring function you want to run + description: Map between scoring function id and parameters for each scoring function you want to run. num_examples: + anyOf: + - type: integer + - type: 'null' title: Num Examples - description: Number of examples to evaluate (useful for testing), if not provided, all examples in the dataset will be evaluated - type: integer + description: The number of examples to evaluate. If not provided, all examples in the dataset will be evaluated. type: object required: - eval_candidate title: BenchmarkConfig description: A benchmark configuration for evaluation. + Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post: + properties: + file_id: + type: string + title: File Id + description: The ID of the file to attach to the vector store. + attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Attributes + description: The key-value attributes stored with the file, which can be used for filtering. + chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' + title: Chunking Strategy + description: The chunking strategy to use for the file. + type: object + required: + - file_id + title: Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post + Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post: + properties: + query: + anyOf: + - type: string + - items: + type: string + type: array + title: Query + description: The query string or array for performing the search. + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Filters + description: Filters based on file attributes to narrow the search results. + max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' + title: Max Num Results + description: Maximum number of results to return (1 to 50 inclusive, default 10). + default: 10 + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Ranking options for fine-tuning the search results. + rewrite_query: + type: boolean + title: Rewrite Query + description: Whether to rewrite the natural language query for vector search (default false). + default: false + search_mode: + anyOf: + - type: string + - type: 'null' + title: Search Mode + description: The search mode to use - 'keyword', 'vector', or 'hybrid' (default 'vector'). + default: vector + type: object + required: + - query + title: Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post + Body_openai_upload_file_v1_files_post: + properties: + file: + type: string + format: binary + title: File + description: The File object to be uploaded. + purpose: + $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the uploaded file. + expires_after: + anyOf: + - $ref: '#/components/schemas/ExpiresAfter' + - type: 'null' + description: Optional form values describing expiration for the file. + type: object + required: + - file + - purpose + title: Body_openai_upload_file_v1_files_post + Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post: + properties: + documents: + items: + $ref: '#/components/schemas/RAGDocument' + type: array + title: Documents + description: List of documents to index in the RAG system. + vector_store_id: + type: string + title: Vector Store Id + description: ID of the vector database to store the document embeddings. + chunk_size_in_tokens: + type: integer + title: Chunk Size In Tokens + description: Size in tokens for document chunking during indexing. + default: 512 + type: object + required: + - documents + - vector_store_id + title: Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post + Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + description: The query content to search for in the indexed documents. + vector_store_ids: + items: + type: string + type: array + title: Vector Store Ids + description: List of vector database IDs to search within. + query_config: + anyOf: + - $ref: '#/components/schemas/RAGQueryConfig' + - type: 'null' + description: Configuration parameters for the query operation. + type: object + required: + - content + - vector_store_ids + title: Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post + Body_rerank_v1alpha_inference_rerank_post: + properties: + model: + type: string + title: Model + description: The identifier of the reranking model to use. + query: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + title: Query + description: The search query to rank items against. + items: + items: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + type: array + title: Items + description: List of items to rerank. + max_num_results: + anyOf: + - type: integer + - type: 'null' + title: Max Num Results + description: 'Maximum number of results to return. Default: returns all.' + type: object + required: + - model + - query + - items + title: Body_rerank_v1alpha_inference_rerank_post BooleanType: properties: type: @@ -8288,7 +6967,7 @@ components: default: boolean type: object title: BooleanType - description: Parameter type for boolean values. + description: "Parameter type for boolean values.\n\n:param type: Discriminator type. Always \"boolean\"" BuiltinTool: type: string enum: @@ -8306,7 +6985,93 @@ components: default: chat_completion_input type: object title: ChatCompletionInputType - description: Parameter type for chat completion input. + description: "Parameter type for chat completion input.\n\n:param type: Discriminator type. Always \"chat_completion_input\"" + Checkpoint: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for the checkpoint. + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the checkpoint was created. + epoch: + type: integer + title: Epoch + description: Training epoch when the checkpoint was saved. + post_training_job_id: + type: string + title: Post Training Job Id + description: Identifier of the training job that created this checkpoint. + path: + type: string + title: Path + description: File system path where the checkpoint is stored. + training_metrics: + anyOf: + - $ref: '#/components/schemas/PostTrainingMetric' + - type: 'null' + description: Training metrics associated with this checkpoint. + type: object + required: + - identifier + - created_at + - epoch + - post_training_job_id + - path + - training_metrics + title: Checkpoint + description: Checkpoint created during training runs. + Chunk-Input: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + chunk_id: + type: string + title: Chunk Id + metadata: + additionalProperties: true + type: object + title: Metadata + embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' + title: Embedding + chunk_metadata: + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' + type: object + required: + - content + - chunk_id + title: Chunk + description: A chunk of content that can be inserted into a vector database. Chunk-Output: properties: content: @@ -8339,12 +7104,16 @@ components: type: object title: Metadata embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' title: Embedding - items: - type: number - type: array chunk_metadata: - $ref: '#/components/schemas/ChunkMetadata' + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' type: object required: - content @@ -8354,38 +7123,60 @@ components: ChunkMetadata: properties: chunk_id: + anyOf: + - type: string + - type: 'null' title: Chunk Id - type: string document_id: + anyOf: + - type: string + - type: 'null' title: Document Id - type: string source: + anyOf: + - type: string + - type: 'null' title: Source - type: string created_timestamp: + anyOf: + - type: integer + - type: 'null' title: Created Timestamp - type: integer updated_timestamp: + anyOf: + - type: integer + - type: 'null' title: Updated Timestamp - type: integer chunk_window: + anyOf: + - type: string + - type: 'null' title: Chunk Window - type: string chunk_tokenizer: + anyOf: + - type: string + - type: 'null' title: Chunk Tokenizer - type: string chunk_embedding_model: + anyOf: + - type: string + - type: 'null' title: Chunk Embedding Model - type: string chunk_embedding_dimension: + anyOf: + - type: integer + - type: 'null' title: Chunk Embedding Dimension - type: integer content_token_count: + anyOf: + - type: integer + - type: 'null' title: Content Token Count - type: integer metadata_token_count: + anyOf: + - type: integer + - type: 'null' title: Metadata Token Count - type: integer type: object title: ChunkMetadata description: "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." @@ -8398,7 +7189,7 @@ components: default: completion_input type: object title: CompletionInputType - description: Parameter type for completion input. + description: "Parameter type for completion input.\n\n:param type: Discriminator type. Always \"completion_input\"" CompletionMessage-Output: properties: role: @@ -8431,16 +7222,18 @@ components: stop_reason: $ref: '#/components/schemas/StopReason' tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/ToolCall' - type: array type: object required: - content - stop_reason title: CompletionMessage - description: A message containing the model's (assistant) response in a chat conversation. + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." Conversation: properties: id: @@ -8458,24 +7251,151 @@ components: title: Created At description: The time at which the conversation was created, measured in seconds since the Unix epoch. metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' title: Metadata 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. - additionalProperties: - type: string - type: object items: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Items description: Initial items to include in the conversation context. You may add up to 20 items at a time. - items: - additionalProperties: true - type: object - type: array type: object required: - id - created_at title: Conversation description: OpenAI-compatible conversation object. + ConversationCreateRequest: + properties: + items: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + - type: 'null' + title: Items + description: Initial items to include in the conversation context. You may add up to 20 items at a time. + default: [] + metadata: + anyOf: + - additionalProperties: + type: string + type: object + maxProperties: 16 + - type: 'null' + title: Metadata + description: Set of 16 key-value pairs that can be attached to an object. Useful for storing additional information + default: {} + type: object + title: ConversationCreateRequest + description: Request body for creating a conversation. + ConversationDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted conversation identifier + object: + type: string + title: Object + description: Object type + default: conversation.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationDeletedResource + description: Response for deleted conversation. + ConversationItemCreateRequest: + properties: + items: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + title: Items + description: Items to include in the conversation context. You may add up to 20 items at a time. + type: object + required: + - items + title: ConversationItemCreateRequest + description: Request body for creating conversation items. + ConversationItemDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted item identifier + object: + type: string + title: Object + description: Object type + default: conversation.item.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationItemDeletedResource + description: Response for deleted conversation item. ConversationItemInclude: type: string enum: @@ -8523,13 +7443,17 @@ components: title: Data description: List of conversation items first_id: + anyOf: + - type: string + - type: 'null' title: First Id description: The ID of the first item in the list - type: string last_id: + anyOf: + - type: string + - type: 'null' title: Last Id description: The ID of the last item in the list - type: string has_more: type: boolean title: Has More @@ -8540,6 +7464,219 @@ components: - data title: ConversationItemList description: List of conversation items with pagination. + ConversationUpdateRequest: + properties: + metadata: + additionalProperties: + type: string + type: object + title: Metadata + 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. + type: object + required: + - metadata + title: ConversationUpdateRequest + description: Request body for updating a conversation. + CreateAgentSessionRequest: + properties: + agent_id: + type: string + title: Agent Id + description: The ID of the agent to create the session for + session_name: + type: string + title: Session Name + description: The name of the session to create + type: object + required: + - agent_id + - session_name + title: CreateAgentSessionRequest + description: Request to create a new session for an agent. + CreateBatchRequest: + properties: + input_file_id: + type: string + title: Input File Id + description: The ID of an uploaded file containing requests for the batch. + endpoint: + type: string + title: Endpoint + description: The endpoint to be used for all requests in the batch. + completion_window: + type: string + const: 24h + title: Completion Window + description: The time window within which the batch should be processed. + metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' + title: Metadata + description: Optional metadata for the batch. + idempotency_key: + anyOf: + - type: string + - type: 'null' + title: Idempotency Key + description: Optional idempotency key. When provided, enables idempotent behavior. + type: object + required: + - input_file_id + - endpoint + - completion_window + title: CreateBatchRequest + description: Request model for creating a batch. + CreateOpenAIResponseRequest: + properties: + input: + anyOf: + - type: string + - items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + type: array + title: Input + description: Input message(s) to create the response + model: + type: string + title: Model + description: The underlying LLM used for completions + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Prompt object with ID, version, and variables + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System instructions + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: If specified, the new response will be a continuation of the previous response + conversation: + anyOf: + - type: string + - type: 'null' + title: Conversation + description: The ID of a conversation to add the response to. Must begin with 'conv_' + store: + type: boolean + title: Store + description: Whether to store the response + default: true + stream: + type: boolean + title: Stream + description: Whether to stream the response + default: false + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature + text: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseText' + - type: 'null' + description: Text generation parameters + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseInputToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: Tools to make available + include: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Include + description: Additional fields to include in the response + max_infer_iters: + type: integer + title: Max Infer Iters + description: Maximum number of inference iterations (extension to the OpenAI API) + default: 10 + guardrails: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/ResponseGuardrailSpec' + type: array + - type: 'null' + title: Guardrails + description: List of guardrails to apply during response generation + type: object + required: + - input + - model + title: CreateOpenAIResponseRequest + description: Request to create a model response. + CreatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The prompt text content with variable placeholders. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: List of variable names that can be used in the prompt template. + type: object + required: + - prompt + title: CreatePromptRequest + description: Request model for creating a new prompt. DPOAlignmentConfig: properties: beta: @@ -8575,16 +7712,22 @@ components: data_format: $ref: '#/components/schemas/DatasetFormat' validation_dataset_id: + anyOf: + - type: string + - type: 'null' title: Validation Dataset Id - type: string packed: + anyOf: + - type: boolean + - type: 'null' title: Packed default: false - type: boolean train_on_input: + anyOf: + - type: boolean + - type: 'null' title: Train On Input default: false - type: boolean type: object required: - dataset_id @@ -8600,9 +7743,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -8611,6 +7756,7 @@ components: type: string const: dataset title: Type + description: Type of resource, always 'dataset' for datasets default: dataset purpose: $ref: '#/components/schemas/DatasetPurpose' @@ -8651,7 +7797,7 @@ components: - eval/question-answer - eval/messages-answer title: DatasetPurpose - description: Purpose of the dataset. Each purpose has a required input data schema. + description: "Purpose of the dataset. Each purpose has a required input data schema.\n\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, world!\"},\n {\"role\": \"assistant\", \"content\": \"Hello, world!\"},\n ]\n }\n {\n \"question\": \"What is the capital of France?\",\n \"answer\": \"Paris\"\n }\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, my name is John Doe.\"},\n {\"role\": \"assistant\", \"content\": \"Hello, John Doe. How can I help you today?\"},\n {\"role\": \"user\", \"content\": \"What's my name?\"},\n ],\n \"answer\": \"John Doe\"\n }" DefaultRAGQueryGeneratorConfig: properties: type: @@ -8665,7 +7811,7 @@ components: default: ' ' type: object title: DefaultRAGQueryGeneratorConfig - description: Configuration for the default RAG query generator. + description: "Configuration for the default RAG query generator.\n\n:param type: Type of query generator, always 'default'\n:param separator: String separator used to join query terms" Document: properties: content: @@ -8691,9 +7837,11 @@ components: type: array - $ref: '#/components/schemas/URL' title: Content + description: The content of the document. mime_type: type: string title: Mime Type + description: The MIME type of the document. type: object required: - content @@ -8703,34 +7851,73 @@ components: EfficiencyConfig: properties: enable_activation_checkpointing: + anyOf: + - type: boolean + - type: 'null' title: Enable Activation Checkpointing default: false - type: boolean enable_activation_offloading: + anyOf: + - type: boolean + - type: 'null' title: Enable Activation Offloading default: false - type: boolean memory_efficient_fsdp_wrap: + anyOf: + - type: boolean + - type: 'null' title: Memory Efficient Fsdp Wrap default: false - type: boolean fsdp_cpu_offload: + anyOf: + - type: boolean + - type: 'null' title: Fsdp Cpu Offload default: false - type: boolean type: object title: EfficiencyConfig description: Configuration for memory and compute efficiency optimizations. + Error: + properties: + status: + type: integer + title: Status + description: HTTP status code + title: + type: string + title: Title + description: Error title, a short summary of the error which is invariant for an error type + detail: + type: string + title: Detail + description: Error detail, a longer human-readable description of the error + instance: + anyOf: + - type: string + - type: 'null' + title: Instance + description: (Optional) A URL which can be used to retrieve more information about the specific occurrence of the error + type: object + required: + - status + - title + - detail + title: Error + description: Error response from the API. Roughly follows RFC 7807. Errors: properties: data: + anyOf: + - items: + $ref: '#/components/schemas/BatchError' + type: array + - type: 'null' title: Data - items: - $ref: '#/components/schemas/BatchError' - type: array object: + anyOf: + - type: string + - type: 'null' title: Object - type: string additionalProperties: true type: object title: Errors @@ -8742,17 +7929,63 @@ components: type: object type: array title: Generations + description: The generations from the evaluation. scores: additionalProperties: $ref: '#/components/schemas/ScoringResult' type: object title: Scores + description: The scores from the evaluation. Each key in the dict is a scoring function name. type: object required: - generations - scores title: EvaluateResponse description: The response from an evaluation. + EvaluateRowsRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to evaluate. + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the evaluation. + benchmark_config: + $ref: '#/components/schemas/BenchmarkConfig' + description: The configuration for the benchmark. + type: object + required: + - input_rows + - scoring_functions + - benchmark_config + title: EvaluateRowsRequest + description: Request model for evaluating rows. + ExpiresAfter: + properties: + anchor: + type: string + const: created_at + title: Anchor + description: Anchor must be 'created_at'. + seconds: + type: integer + maximum: 2592000.0 + minimum: 3600.0 + title: Seconds + description: Seconds between 3600 and 2592000 (1 hour to 30 days). + type: object + required: + - anchor + - seconds + title: ExpiresAfter + description: Control expiration of uploaded files. GrammarResponseFormat: properties: type: @@ -8783,6 +8016,7 @@ components: properties: status: $ref: '#/components/schemas/HealthStatus' + description: Current health status of the service type: object required: - status @@ -8808,7 +8042,7 @@ components: required: - image title: ImageContentItem - description: A image content item + description: A image content item. ImageContentItem-Output: properties: type: @@ -8822,23 +8056,31 @@ components: required: - image title: ImageContentItem - description: A image content item + description: A image content item. InferenceStep-Output: properties: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: inference @@ -8846,6 +8088,7 @@ components: default: inference model_response: $ref: '#/components/schemas/CompletionMessage-Output' + description: The response from the LLM. type: object required: - turn_id @@ -8863,6 +8106,47 @@ components: required: - cached_tokens title: InputTokensDetails + InsertChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to insert the chunks into. + chunks: + items: + $ref: '#/components/schemas/Chunk-Input' + type: array + title: Chunks + description: The chunks to insert. + ttl_seconds: + anyOf: + - type: integer + - type: 'null' + title: Ttl Seconds + description: The time to live of the chunks. + type: object + required: + - vector_store_id + - chunks + title: InsertChunksRequest + description: Request to insert chunks into a vector database. + InvokeToolRequest: + properties: + tool_name: + type: string + title: Tool Name + description: The name of the tool to invoke + kwargs: + additionalProperties: true + type: object + title: Kwargs + description: A dictionary of arguments to pass to the tool + type: object + required: + - tool_name + - kwargs + title: InvokeToolRequest + description: Request model for invoking a tool. Job: properties: job_id: @@ -8885,7 +8169,7 @@ components: - scheduled - cancelled title: JobStatus - description: Status of a job execution. + description: "Status of a job execution.\n:cvar completed: Job has finished successfully\n:cvar in_progress: Job is currently running\n:cvar failed: Job has failed during execution\n:cvar scheduled: Job is scheduled but not yet started\n:cvar cancelled: Job was cancelled before completion" JsonSchemaResponseFormat: properties: type: @@ -8911,7 +8195,7 @@ components: default: json type: object title: JsonType - description: Parameter type for JSON values. + description: "Parameter type for JSON values.\n\n:param type: Discriminator type. Always \"json\"" LLMAsJudgeScoringFnParams: properties: type: @@ -8923,8 +8207,10 @@ components: type: string title: Judge Model prompt_template: + anyOf: + - type: string + - type: 'null' title: Prompt Template - type: string judge_score_regexes: items: type: string @@ -8960,7 +8246,43 @@ components: - model - template title: LLMRAGQueryGeneratorConfig - description: Configuration for the LLM-based RAG query generator. + description: "Configuration for the LLM-based RAG query generator.\n\n:param type: Type of query generator, always 'llm'\n:param model: Name of the language model to use for query generation\n:param template: Template string for formatting the query generation prompt" + ListBatchesResponse: + properties: + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + data: + items: + $ref: '#/components/schemas/Batch' + type: array + title: Data + description: List of batch objects. + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + description: ID of the first batch in the list. + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + description: ID of the last batch in the list. + has_more: + type: boolean + title: Has More + description: Whether there are more batches available. + default: false + type: object + required: + - data + title: ListBatchesResponse + description: Response containing a list of batch objects. ListBenchmarksResponse: properties: data: @@ -8968,10 +8290,12 @@ components: $ref: '#/components/schemas/Benchmark' type: array title: Data + description: List of benchmark resources type: object required: - data title: ListBenchmarksResponse + description: Response model for listing benchmarks. ListDatasetsResponse: properties: data: @@ -8979,6 +8303,7 @@ components: $ref: '#/components/schemas/Dataset' type: array title: Data + description: List of datasets type: object required: - data @@ -8991,10 +8316,149 @@ components: $ref: '#/components/schemas/Model' type: array title: Data + description: List of model resources. type: object required: - data title: ListModelsResponse + description: Response model for listing models. + ListOpenAIChatCompletionResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAICompletionWithInputMessages' + type: array + title: Data + has_more: + type: boolean + title: Has More + first_id: + type: string + title: First Id + last_id: + type: string + title: Last Id + object: + type: string + const: list + title: Object + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIChatCompletionResponse + description: Response from listing OpenAI-compatible chat completions. + ListOpenAIFileResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIFileObject' + type: array + title: Data + description: List of file objects. + has_more: + type: boolean + title: Has More + description: Whether there are more files available beyond this page. + first_id: + type: string + title: First Id + description: ID of the first file in the list for pagination. + last_id: + type: string + title: Last Id + description: ID of the last file in the list for pagination. + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIFileResponse + description: Response for listing files in OpenAI Files API. + ListOpenAIResponseInputItem: + properties: + data: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Data + description: List of input items + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + title: ListOpenAIResponseInputItem + description: "List container for OpenAI response input items.\n\n:param data: List of input items\n:param object: Object type identifier, always \"list\"" + ListOpenAIResponseObject: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIResponseObjectWithInput-Output' + type: array + title: Data + description: List of response objects with their input context + has_more: + type: boolean + title: Has More + description: Whether there are more results available beyond this page + first_id: + type: string + title: First Id + description: Identifier of the first item in this page + last_id: + type: string + title: Last Id + description: Identifier of the last item in this page + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIResponseObject + description: "Paginated list of OpenAI response objects with navigation metadata.\n\n:param data: List of response objects with their input context\n:param has_more: Whether there are more results available beyond this page\n:param first_id: Identifier of the first item in this page\n:param last_id: Identifier of the last item in this page\n:param object: Object type identifier, always \"list\"" ListPostTrainingJobsResponse: properties: data: @@ -9002,6 +8466,7 @@ components: $ref: '#/components/schemas/PostTrainingJob' type: array title: Data + description: The list of training jobs type: object required: - data @@ -9013,6 +8478,7 @@ components: $ref: '#/components/schemas/Prompt' type: array title: Data + description: List of prompt resources. type: object required: - data @@ -9025,6 +8491,7 @@ components: $ref: '#/components/schemas/ProviderInfo' type: array title: Data + description: List of provider information objects type: object required: - data @@ -9037,6 +8504,7 @@ components: $ref: '#/components/schemas/RouteInfo' type: array title: Data + description: List of available route information objects type: object required: - data @@ -9046,13 +8514,15 @@ components: properties: data: items: - $ref: '#/components/schemas/ScoringFn-Output' + $ref: '#/components/schemas/ScoringFn' type: array title: Data + description: List of scoring function resources type: object required: - data title: ListScoringFunctionsResponse + description: Response model for listing scoring functions. ListShieldsResponse: properties: data: @@ -9060,10 +8530,25 @@ components: $ref: '#/components/schemas/Shield' type: array title: Data + description: List of shield resources type: object required: - data title: ListShieldsResponse + description: Response model for listing shields. + ListToolDefsResponse: + properties: + data: + items: + $ref: '#/components/schemas/ToolDef' + type: array + title: Data + description: List of tool definitions + type: object + required: + - data + title: ListToolDefsResponse + description: Response containing a list of tool definitions. ListToolGroupsResponse: properties: data: @@ -9071,45 +8556,104 @@ components: $ref: '#/components/schemas/ToolGroup' type: array title: Data + description: List of tool groups type: object required: - data title: ListToolGroupsResponse description: Response containing a list of tool groups. + LoraFinetuningConfig: + properties: + type: + type: string + const: LoRA + title: Type + default: LoRA + lora_attn_modules: + items: + type: string + type: array + title: Lora Attn Modules + apply_lora_to_mlp: + type: boolean + title: Apply Lora To Mlp + apply_lora_to_output: + type: boolean + title: Apply Lora To Output + rank: + type: integer + title: Rank + alpha: + type: integer + title: Alpha + use_dora: + anyOf: + - type: boolean + - type: 'null' + title: Use Dora + default: false + quantize_base: + anyOf: + - type: boolean + - type: 'null' + title: Quantize Base + default: false + type: object + required: + - lora_attn_modules + - apply_lora_to_mlp + - apply_lora_to_output + - rank + - alpha + title: LoraFinetuningConfig + description: Configuration for Low-Rank Adaptation (LoRA) fine-tuning. MCPListToolsTool: properties: input_schema: additionalProperties: true type: object title: Input Schema + description: JSON schema defining the tool's input parameters name: type: string title: Name + description: Name of the tool description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Description of what the tool does type: object required: - input_schema - name title: MCPListToolsTool - description: Tool definition returned by MCP list tools operation. + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" MemoryRetrievalStep-Output: properties: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: memory_retrieval @@ -9118,6 +8662,7 @@ components: vector_store_ids: type: string title: Vector Store Ids + description: The IDs of the vector databases to retrieve context from. inserted_context: anyOf: - type: string @@ -9140,6 +8685,7 @@ components: text: '#/components/schemas/TextContentItem' type: array title: Inserted Context + description: The context retrieved from the vector databases. type: object required: - turn_id @@ -9155,9 +8701,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -9166,14 +8714,16 @@ components: type: string const: model title: Type + description: The resource type, always 'model' for model resources. default: model metadata: additionalProperties: true type: object title: Metadata - description: Any additional metadata for this model + description: Any additional metadata for this model. model_type: $ref: '#/components/schemas/ModelType' + description: The type of model (LLM or embedding model). default: llm type: object required: @@ -9187,14 +8737,20 @@ components: type: string const: model title: Type + description: The type of candidate. default: model model: type: string title: Model + description: The model ID to evaluate. sampling_params: $ref: '#/components/schemas/SamplingParams' + description: The sampling parameters for the model. system_message: - $ref: '#/components/schemas/SystemMessage' + anyOf: + - $ref: '#/components/schemas/SystemMessage' + - type: 'null' + description: The system message providing instructions or context to the model. type: object required: - model @@ -9214,14 +8770,17 @@ components: id: type: string title: Id + description: The unique identifier for the moderation request. model: type: string title: Model + description: The model used to generate the moderation results. results: items: $ref: '#/components/schemas/ModerationObjectResults' type: array title: Results + description: A list of moderation objects. type: object required: - id @@ -9234,30 +8793,44 @@ components: flagged: type: boolean title: Flagged + description: Whether any of the below categories are flagged. categories: + anyOf: + - additionalProperties: + type: boolean + type: object + - type: 'null' title: Categories - additionalProperties: - type: boolean - type: object + description: A list of the categories, and whether they are flagged or not. category_applied_input_types: + anyOf: + - additionalProperties: + items: + type: string + type: array + type: object + - type: 'null' title: Category Applied Input Types - additionalProperties: - items: - type: string - type: array - type: object + description: A list of the categories along with the input type(s) that the score applies to. category_scores: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Category Scores - additionalProperties: - type: number - type: object + description: A list of the categories along with their scores as predicted by model. user_message: + anyOf: + - type: string + - type: 'null' title: User Message - type: string + description: User message. metadata: additionalProperties: true type: object title: Metadata + description: Additional metadata. type: object required: - flagged @@ -9272,7 +8845,7 @@ components: default: number type: object title: NumberType - description: Parameter type for numeric values. + description: "Parameter type for numeric values.\n\n:param type: Discriminator type. Always \"number\"" ObjectType: properties: type: @@ -9282,7 +8855,7 @@ components: default: object type: object title: ObjectType - description: Parameter type for object values. + description: "Parameter type for object values.\n\n:param type: Discriminator type. Always \"object\"" OpenAIAssistantMessageParam-Input: properties: role: @@ -9296,15 +8869,20 @@ components: - items: $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' type: array + - type: 'null' title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array type: object title: OpenAIAssistantMessageParam description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. @@ -9321,49 +8899,23 @@ components: - items: $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' type: array + - type: 'null' title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array type: object title: OpenAIAssistantMessageParam description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. - OpenAIChatCompletion: - properties: - id: - type: string - title: Id - choices: - items: - $ref: '#/components/schemas/OpenAIChoice-Output' - type: array - title: Choices - object: - type: string - const: chat.completion - title: Object - default: chat.completion - created: - type: integer - title: Created - model: - type: string - title: Model - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - type: object - required: - - id - - choices - - created - - model - title: OpenAIChatCompletion - description: Response from an OpenAI-compatible chat completion request. OpenAIChatCompletionContentPartImageParam: properties: type: @@ -9418,96 +8970,135 @@ components: minItems: 1 title: Messages frequency_penalty: + anyOf: + - type: number + - type: 'null' title: Frequency Penalty - type: number function_call: anyOf: - type: string - additionalProperties: true type: object + - type: 'null' title: Function Call functions: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Functions - items: - additionalProperties: true - type: object - type: array logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Logit Bias - additionalProperties: - type: number - type: object logprobs: + anyOf: + - type: boolean + - type: 'null' title: Logprobs - type: boolean max_completion_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Completion Tokens - type: integer max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer n: + anyOf: + - type: integer + - type: 'null' title: N - type: integer parallel_tool_calls: + anyOf: + - type: boolean + - type: 'null' title: Parallel Tool Calls - type: boolean presence_penalty: + anyOf: + - type: number + - type: 'null' title: Presence Penalty - type: number response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseFormatText' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' + discriminator: + propertyName: type + mapping: + json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' + json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' + text: '#/components/schemas/OpenAIResponseFormatText' + - type: 'null' title: Response Format - oneOf: - - $ref: '#/components/schemas/OpenAIResponseFormatText' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' - discriminator: - propertyName: type - mapping: - json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' - json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' - text: '#/components/schemas/OpenAIResponseFormatText' seed: + anyOf: + - type: integer + - type: 'null' title: Seed - type: integer stop: anyOf: - type: string - items: type: string type: array + - type: 'null' title: Stop stream: + anyOf: + - type: boolean + - type: 'null' title: Stream - type: boolean stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Stream Options - additionalProperties: true - type: object temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number tool_choice: anyOf: - type: string - additionalProperties: true type: object + - type: 'null' title: Tool Choice tools: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Tools - items: - additionalProperties: true - type: object - type: array top_logprobs: + anyOf: + - type: integer + - type: 'null' title: Top Logprobs - type: integer top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number user: + anyOf: + - type: string + - type: 'null' title: User - type: string additionalProperties: true type: object required: @@ -9518,29 +9109,39 @@ components: OpenAIChatCompletionToolCall: properties: index: + anyOf: + - type: integer + - type: 'null' title: Index - type: integer id: + anyOf: + - type: string + - type: 'null' title: Id - type: string type: type: string const: function title: Type default: function function: - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' type: object title: OpenAIChatCompletionToolCall description: Tool call specification for OpenAI-compatible chat completion responses. OpenAIChatCompletionToolCallFunction: properties: name: + anyOf: + - type: string + - type: 'null' title: Name - type: string arguments: + anyOf: + - type: string + - type: 'null' title: Arguments - type: string type: object title: OpenAIChatCompletionToolCallFunction description: Function call details for OpenAI-compatible tool calls. @@ -9556,9 +9157,13 @@ components: type: integer title: Total Tokens prompt_tokens_details: - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + - type: 'null' completion_tokens_details: - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + - type: 'null' type: object required: - prompt_tokens @@ -9569,16 +9174,20 @@ components: OpenAIChatCompletionUsageCompletionTokensDetails: properties: reasoning_tokens: + anyOf: + - type: integer + - type: 'null' title: Reasoning Tokens - type: integer type: object title: OpenAIChatCompletionUsageCompletionTokensDetails description: Token details for output tokens in OpenAI chat completion usage. OpenAIChatCompletionUsagePromptTokensDetails: properties: cached_tokens: + anyOf: + - type: integer + - type: 'null' title: Cached Tokens - type: integer type: object title: OpenAIChatCompletionUsagePromptTokensDetails description: Token details for prompt tokens in OpenAI chat completion usage. @@ -9607,7 +9216,9 @@ components: type: integer title: Index logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' type: object required: - message @@ -9618,15 +9229,19 @@ components: OpenAIChoiceLogprobs-Output: properties: content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' title: Content - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' title: Refusal - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array type: object title: OpenAIChoiceLogprobs description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. @@ -9658,7 +9273,7 @@ components: - created - model title: OpenAICompletion - description: Response from an OpenAI-compatible completion request. + description: "Response from an OpenAI-compatible completion request.\n\n:id: The ID of the completion\n:choices: List of choices\n:created: The Unix timestamp in seconds when the completion was created\n:model: The model that was used to generate the completion\n:object: The object type, which will be \"text_completion\"" OpenAICompletionChoice-Output: properties: finish_reason: @@ -9671,14 +9286,16 @@ components: type: integer title: Index logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' type: object required: - finish_reason - text - index title: OpenAICompletionChoice - description: A choice from an OpenAI-compatible completion response. + description: "A choice from an OpenAI-compatible completion response.\n\n:finish_reason: The reason the model stopped generating\n:text: The text of the choice\n:index: The index of the choice\n:logprobs: (Optional) The log probabilities for the tokens in the choice" OpenAICompletionRequestWithExtraBody: properties: model: @@ -9700,60 +9317,93 @@ components: type: array title: Prompt best_of: + anyOf: + - type: integer + - type: 'null' title: Best Of - type: integer echo: + anyOf: + - type: boolean + - type: 'null' title: Echo - type: boolean frequency_penalty: + anyOf: + - type: number + - type: 'null' title: Frequency Penalty - type: number logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Logit Bias - additionalProperties: - type: number - type: object logprobs: + anyOf: + - type: integer + maximum: 5.0 + minimum: 0.0 + - type: 'null' title: Logprobs - type: boolean max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer n: + anyOf: + - type: integer + - type: 'null' title: N - type: integer presence_penalty: + anyOf: + - type: number + - type: 'null' title: Presence Penalty - type: number seed: + anyOf: + - type: integer + - type: 'null' title: Seed - type: integer stop: anyOf: - type: string - items: type: string type: array + - type: 'null' title: Stop stream: + anyOf: + - type: boolean + - type: 'null' title: Stream - type: boolean stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Stream Options - additionalProperties: true - type: object temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number user: + anyOf: + - type: string + - type: 'null' title: User - type: string suffix: + anyOf: + - type: string + - type: 'null' title: Suffix - type: string additionalProperties: true type: object required: @@ -9761,6 +9411,57 @@ components: - prompt title: OpenAICompletionRequestWithExtraBody description: Request parameters for OpenAI-compatible completion endpoint. + OpenAICompletionWithInputMessages: + properties: + id: + type: string + title: Id + choices: + items: + $ref: '#/components/schemas/OpenAIChoice-Output' + type: array + title: Choices + object: + type: string + const: chat.completion + title: Object + default: chat.completion + created: + type: integer + title: Created + model: + type: string + title: Model + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsage' + - type: 'null' + input_messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Output' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Output' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Output' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Output' + type: array + title: Input Messages + type: object + required: + - id + - choices + - created + - model + - input_messages + title: OpenAICompletionWithInputMessages OpenAICreateVectorStoreFileBatchRequestWithExtraBody: properties: file_ids: @@ -9769,19 +9470,23 @@ components: type: array title: File Ids attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Attributes - additionalProperties: true - type: object chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' title: Chunking Strategy - oneOf: - - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' - - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' - discriminator: - propertyName: type - mapping: - auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' - static: '#/components/schemas/VectorStoreChunkingStrategyStatic' additionalProperties: true type: object required: @@ -9791,29 +9496,61 @@ components: OpenAICreateVectorStoreRequestWithExtraBody: properties: name: + anyOf: + - type: string + - type: 'null' title: Name - type: string file_ids: + anyOf: + - items: + type: string + type: array + - type: 'null' title: File Ids - items: - type: string - type: array expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Expires After - additionalProperties: true - type: object chunking_strategy: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Chunking Strategy - additionalProperties: true - type: object metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object additionalProperties: true type: object title: OpenAICreateVectorStoreRequestWithExtraBody description: Request to create a vector store with extra_body support. + OpenAIDeleteResponseObject: + properties: + id: + type: string + title: Id + description: Unique identifier of the deleted response + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + deleted: + type: boolean + title: Deleted + description: Deletion confirmation flag, always True + default: true + type: object + required: + - id + title: OpenAIDeleteResponseObject + description: "Response object confirming deletion of an OpenAI response.\n\n:param id: Unique identifier of the deleted response\n:param object: Object type identifier, always \"response\"\n:param deleted: Deletion confirmation flag, always True" OpenAIDeveloperMessageParam: properties: role: @@ -9829,8 +9566,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -9886,15 +9625,21 @@ components: type: array title: Input encoding_format: + anyOf: + - type: string + - type: 'null' title: Encoding Format default: float - type: string dimensions: + anyOf: + - type: integer + - type: 'null' title: Dimensions - type: integer user: + anyOf: + - type: string + - type: 'null' title: User - type: string additionalProperties: true type: object required: @@ -9939,17 +9684,40 @@ components: required: - file title: OpenAIFile + OpenAIFileDeleteResponse: + properties: + id: + type: string + title: Id + description: The file identifier that was deleted. + object: + type: string + const: file + title: Object + description: The object type, which is always 'file'. + default: file + deleted: + type: boolean + title: Deleted + description: Whether the file was successfully deleted. + type: object + required: + - id + - deleted + title: OpenAIFileDeleteResponse + description: Response for deleting a file in OpenAI Files API. OpenAIFileFile: properties: - file_data: - title: File Data - type: string file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string filename: + anyOf: + - type: string + - type: 'null' title: Filename - type: string type: object title: OpenAIFileFile OpenAIFileObject: @@ -9958,24 +9726,31 @@ components: type: string const: file title: Object + description: The object type, which is always 'file'. default: file id: type: string title: Id + description: The file identifier, which can be referenced in the API endpoints. bytes: type: integer title: Bytes + description: The size of the file, in bytes. created_at: type: integer title: Created At + description: The Unix timestamp (in seconds) for when the file was created. expires_at: type: integer title: Expires At + description: The Unix timestamp (in seconds) for when the file expires. filename: type: string title: Filename + description: The name of the file. purpose: $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the file. type: object required: - id @@ -9999,8 +9774,10 @@ components: type: string title: Url detail: + anyOf: + - type: string + - type: 'null' title: Detail - type: string type: object required: - url @@ -10012,15 +9789,21 @@ components: type: string title: Name description: + anyOf: + - type: string + - type: 'null' title: Description - type: string strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Schema - additionalProperties: true - type: object type: object title: OpenAIJSONSchema description: JSON schema specification for OpenAI-compatible structured response format. @@ -10030,19 +9813,24 @@ components: type: string const: url_citation title: Type + description: Annotation type identifier, always "url_citation" default: url_citation end_index: type: integer title: End Index + description: End position of the citation span in the content start_index: type: integer title: Start Index + description: Start position of the citation span in the content title: type: string title: Title + description: Title of the referenced web resource url: type: string title: Url + description: URL of the referenced web resource type: object required: - end_index @@ -10050,7 +9838,7 @@ components: - title - url title: OpenAIResponseAnnotationCitation - description: URL citation annotation for referencing external web resources. + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" OpenAIResponseAnnotationContainerFileCitation: properties: type: @@ -10087,23 +9875,27 @@ components: type: string const: file_citation title: Type + description: Annotation type identifier, always "file_citation" default: file_citation file_id: type: string title: File Id + description: Unique identifier of the referenced file filename: type: string title: Filename + description: Name of the referenced file index: type: integer title: Index + description: Position index of the citation within the content type: object required: - file_id - filename - index title: OpenAIResponseAnnotationFileCitation - description: File citation annotation for referencing specific files in response content. + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" OpenAIResponseAnnotationFilePath: properties: type: @@ -10128,29 +9920,33 @@ components: type: string const: refusal title: Type + description: Content part type identifier, always "refusal" default: refusal refusal: type: string title: Refusal + description: Refusal text supplied by the model type: object required: - refusal title: OpenAIResponseContentPartRefusal - description: Refusal content within a streamed response part. + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" OpenAIResponseError: properties: code: type: string title: Code + description: Error code identifying the type of failure message: type: string title: Message + description: Human-readable error message describing the failure type: object required: - code - message title: OpenAIResponseError - description: Error details for failed OpenAI response requests. + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" OpenAIResponseFormatJSONObject: properties: type: @@ -10199,11 +9995,15 @@ components: title: Type default: function_call_output id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - call_id @@ -10216,22 +10016,35 @@ components: type: string const: input_file title: Type + description: The type of the input item. Always `input_file`. default: input_file file_data: + anyOf: + - type: string + - type: 'null' title: File Data - type: string + description: The data of the file to be sent to the model. file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string + description: The ID of the file to be sent to the model. file_url: + anyOf: + - type: string + - type: 'null' title: File Url - type: string + description: The URL of the file to be sent to the model. filename: + anyOf: + - type: string + - type: 'null' title: Filename - type: string + description: The name of the file to be sent to the model. type: object title: OpenAIResponseInputMessageContentFile - description: File content for input messages in OpenAI response format. + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." OpenAIResponseInputMessageContentImage: properties: detail: @@ -10243,108 +10056,145 @@ components: - type: string const: auto title: Detail + description: Level of detail for image processing, can be "low", "high", or "auto" default: auto type: type: string const: input_image title: Type + description: Content type identifier, always "input_image" default: input_image file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string + description: The ID of the file to be sent to the model. image_url: + anyOf: + - type: string + - type: 'null' title: Image Url - type: string + description: URL of the image content type: object title: OpenAIResponseInputMessageContentImage - description: Image content for input messages in OpenAI response format. + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" OpenAIResponseInputMessageContentText: properties: text: type: string title: Text + description: The text content of the input message type: type: string const: input_text title: Type + description: Content type identifier, always "input_text" default: input_text type: object required: - text title: OpenAIResponseInputMessageContentText - description: Text content for input messages in OpenAI response format. + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" OpenAIResponseInputToolFileSearch: properties: type: type: string const: file_search title: Type + description: Tool type identifier, always "file_search" default: file_search vector_store_ids: items: type: string type: array title: Vector Store Ids + description: List of vector store identifiers to search within filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Filters - additionalProperties: true - type: object + description: Additional filters to apply to the search max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' title: Max Num Results + description: Maximum number of search results to return (1-50) default: 10 - type: integer - maximum: 50.0 - minimum: 1.0 ranking_options: - $ref: '#/components/schemas/SearchRankingOptions' + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Options for ranking and scoring search results type: object required: - vector_store_ids title: OpenAIResponseInputToolFileSearch - description: File search tool configuration for OpenAI response inputs. + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" OpenAIResponseInputToolFunction: properties: type: type: string const: function title: Type + description: Tool type identifier, always "function" default: function name: type: string title: Name + description: Name of the function that can be called description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Description of what the function does parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Parameters - additionalProperties: true - type: object + description: JSON schema defining the function's parameters strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean + description: Whether to enforce strict parameter validation type: object required: - name - - parameters title: OpenAIResponseInputToolFunction - description: Function tool configuration for OpenAI response inputs. + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" OpenAIResponseInputToolMCP: properties: type: type: string const: mcp title: Type + description: Tool type identifier, always "mcp" default: mcp server_label: type: string title: Server Label + description: Label to identify this MCP server server_url: type: string title: Server Url + description: URL endpoint of the MCP server headers: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Headers - additionalProperties: true - type: object + description: HTTP headers to include when connecting to the server require_approval: anyOf: - type: string @@ -10353,6 +10203,7 @@ components: const: never - $ref: '#/components/schemas/ApprovalFilter' title: Require Approval + description: Approval requirement for tool calls ("always", "never", or filter) default: never allowed_tools: anyOf: @@ -10360,13 +10211,15 @@ components: type: string type: array - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' title: Allowed Tools + description: Restriction on which tools can be used from this server type: object required: - server_label - server_url title: OpenAIResponseInputToolMCP - description: Model Context Protocol (MCP) tool configuration for OpenAI response inputs. + description: "Model Context Protocol (MCP) tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param server_url: URL endpoint of the MCP server\n:param headers: (Optional) HTTP headers to include when connecting to the server\n:param require_approval: Approval requirement for tool calls (\"always\", \"never\", or filter)\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" OpenAIResponseInputToolWebSearch: properties: type: @@ -10378,15 +10231,19 @@ components: - type: string const: web_search_preview_2025_03_11 title: Type + description: Web search tool type variant to use default: web_search search_context_size: + anyOf: + - type: string + pattern: ^low|medium|high$ + - type: 'null' title: Search Context Size + description: Size of search context, must be "low", "medium", or "high" default: medium - type: string - pattern: ^low|medium|high$ type: object title: OpenAIResponseInputToolWebSearch - description: Web search tool configuration for OpenAI response inputs. + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" OpenAIResponseMCPApprovalRequest: properties: arguments: @@ -10428,11 +10285,15 @@ components: title: Type default: mcp_approval_response id: + anyOf: + - type: string + - type: 'null' title: Id - type: string reason: + anyOf: + - type: string + - type: 'null' title: Reason - type: string type: object required: - approval_request_id @@ -10484,11 +10345,15 @@ components: title: Type default: message id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - content @@ -10540,11 +10405,15 @@ components: title: Type default: message id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - content @@ -10556,18 +10425,25 @@ components: created_at: type: integer title: Created At + description: Unix timestamp when the response was created error: - $ref: '#/components/schemas/OpenAIResponseError' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed id: type: string title: Id + description: Unique identifier for this response model: type: string title: Model + description: Model identifier used for generation object: type: string const: response title: Object + description: Object type identifier, always "response" default: response output: items: @@ -10591,55 +10467,80 @@ components: web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' type: array title: Output + description: List of generated output items (messages, tool calls, etc.) parallel_tool_calls: type: boolean title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel default: false previous_response_id: + anyOf: + - type: string + - type: 'null' title: Previous Response Id - type: string + description: ID of the previous response in a conversation prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. status: type: string title: Status + description: Current status of the response generation temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number + description: Sampling temperature used for generation text: $ref: '#/components/schemas/OpenAIResponseText' - default: - format: - type: text + description: Text formatting configuration for the response top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number + description: Nucleus sampling parameter used for generation tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' title: Tools - items: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseToolMCP' - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseToolMCP' - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' - type: array + description: An array of tools the model may call while generating a response. truncation: + anyOf: + - type: string + - type: 'null' title: Truncation - type: string + description: Truncation strategy applied to the response usage: - $ref: '#/components/schemas/OpenAIResponseUsage' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response instructions: + anyOf: + - type: string + - type: 'null' title: Instructions - type: string + description: System message inserted into the model's context type: object required: - created_at @@ -10648,7 +10549,165 @@ components: - output - status title: OpenAIResponseObject - description: Complete OpenAI response object containing generation results and metadata. + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + OpenAIResponseObjectWithInput-Output: + properties: + created_at: + type: integer + title: Created At + description: Unix timestamp when the response was created + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed + id: + type: string + title: Id + description: Unique identifier for this response + model: + type: string + title: Model + description: Model identifier used for generation + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + output: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + title: Output + description: List of generated output items (messages, tool calls, etc.) + parallel_tool_calls: + type: boolean + title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel + default: false + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: ID of the previous response in a conversation + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. + status: + type: string + title: Status + description: Current status of the response generation + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature used for generation + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + description: Nucleus sampling parameter used for generation + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: An array of tools the model may call while generating a response. + truncation: + anyOf: + - type: string + - type: 'null' + title: Truncation + description: Truncation strategy applied to the response + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System message inserted into the model's context + input: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Input + description: List of input items that led to this response + type: object + required: + - created_at + - id + - model + - output + - status + - input + title: OpenAIResponseObjectWithInput + description: "OpenAI response object extended with input context information.\n\n:param input: List of input items that led to this response" OpenAIResponseOutputMessageContentOutputText: properties: text: @@ -10684,49 +10743,61 @@ components: id: type: string title: Id + description: Unique identifier for this tool call queries: items: type: string type: array title: Queries + description: List of search queries executed status: type: string title: Status + description: Current status of the file search operation type: type: string const: file_search_call title: Type + description: Tool call type identifier, always "file_search_call" default: file_search_call results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' title: Results - items: - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' - type: array + description: Search results returned by the file search operation type: object required: - id - queries - status title: OpenAIResponseOutputMessageFileSearchToolCall - description: File search tool call output message for OpenAI responses. + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" OpenAIResponseOutputMessageFileSearchToolCallResults: properties: attributes: additionalProperties: true type: object title: Attributes + description: Key-value attributes associated with the file file_id: type: string title: File Id + description: Unique identifier of the file containing the result filename: type: string title: Filename + description: Name of the file containing the result score: type: number title: Score + description: Relevance score for this search result (between 0 and 1) text: type: string title: Text + description: Text content of the search result type: object required: - attributes @@ -10735,61 +10806,82 @@ components: - score - text title: OpenAIResponseOutputMessageFileSearchToolCallResults - description: Search results returned by the file search operation. + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" OpenAIResponseOutputMessageFunctionToolCall: properties: call_id: type: string title: Call Id + description: Unique identifier for the function call name: type: string title: Name + description: Name of the function being called arguments: type: string title: Arguments + description: JSON string containing the function arguments type: type: string const: function_call title: Type + description: Tool call type identifier, always "function_call" default: function_call id: + anyOf: + - type: string + - type: 'null' title: Id - type: string + description: Additional identifier for the tool call status: + anyOf: + - type: string + - type: 'null' title: Status - type: string + description: Current status of the function call execution type: object required: - call_id - name - arguments title: OpenAIResponseOutputMessageFunctionToolCall - description: Function tool call output message for OpenAI responses. + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" OpenAIResponseOutputMessageMCPCall: properties: id: type: string title: Id + description: Unique identifier for this MCP call type: type: string const: mcp_call title: Type + description: Tool call type identifier, always "mcp_call" default: mcp_call arguments: type: string title: Arguments + description: JSON string containing the MCP call arguments name: type: string title: Name + description: Name of the MCP method being called server_label: type: string title: Server Label + description: Label identifying the MCP server handling the call error: + anyOf: + - type: string + - type: 'null' title: Error - type: string + description: Error message if the MCP call failed output: + anyOf: + - type: string + - type: 'null' title: Output - type: string + description: Output result from the successful MCP call type: object required: - id @@ -10797,85 +10889,102 @@ components: - name - server_label title: OpenAIResponseOutputMessageMCPCall - description: Model Context Protocol (MCP) call output message for OpenAI responses. + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" OpenAIResponseOutputMessageMCPListTools: properties: id: type: string title: Id + description: Unique identifier for this MCP list tools operation type: type: string const: mcp_list_tools title: Type + description: Tool call type identifier, always "mcp_list_tools" default: mcp_list_tools server_label: type: string title: Server Label + description: Label identifying the MCP server providing the tools tools: items: $ref: '#/components/schemas/MCPListToolsTool' type: array title: Tools + description: List of available tools provided by the MCP server type: object required: - id - server_label - tools title: OpenAIResponseOutputMessageMCPListTools - description: MCP list tools output message containing available tools from an MCP server. + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" OpenAIResponseOutputMessageWebSearchToolCall: properties: id: type: string title: Id + description: Unique identifier for this tool call status: type: string title: Status + description: Current status of the web search operation type: type: string const: web_search_call title: Type + description: Tool call type identifier, always "web_search_call" default: web_search_call type: object required: - id - status title: OpenAIResponseOutputMessageWebSearchToolCall - description: Web search tool call output message for OpenAI responses. + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" OpenAIResponsePrompt: properties: id: type: string title: Id + description: Unique identifier of the prompt template variables: + anyOf: + - additionalProperties: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + discriminator: + propertyName: type + mapping: + input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' + input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' + input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' + type: object + - type: 'null' title: Variables - additionalProperties: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' - discriminator: - propertyName: type - mapping: - input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' - input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' - input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' - type: object + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. version: + anyOf: + - type: string + - type: 'null' title: Version - type: string + description: Version number of the prompt to use (defaults to latest if not specified) type: object required: - id title: OpenAIResponsePrompt - description: OpenAI compatible Prompt object that is used in OpenAI responses. + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" OpenAIResponseText: properties: format: - $ref: '#/components/schemas/OpenAIResponseTextFormat' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + description: Text format configuration specifying output format requirements type: object title: OpenAIResponseText - description: Text response configuration for OpenAI responses. + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" OpenAIResponseTextFormat: properties: type: @@ -10888,81 +10997,108 @@ components: const: json_object title: Type name: + anyOf: + - type: string + - type: 'null' title: Name - type: string schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Schema - additionalProperties: true - type: object description: + anyOf: + - type: string + - type: 'null' title: Description - type: string strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean type: object title: OpenAIResponseTextFormat - description: Configuration for Responses API text format. + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." OpenAIResponseToolMCP: properties: type: type: string const: mcp title: Type + description: Tool type identifier, always "mcp" default: mcp server_label: type: string title: Server Label + description: Label to identify this MCP server allowed_tools: anyOf: - items: type: string type: array - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' title: Allowed Tools + description: Restriction on which tools can be used from this server type: object required: - server_label title: OpenAIResponseToolMCP - description: Model Context Protocol (MCP) tool configuration for OpenAI response object. + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" OpenAIResponseUsage: properties: input_tokens: type: integer title: Input Tokens + description: Number of tokens in the input output_tokens: type: integer title: Output Tokens + description: Number of tokens in the output total_tokens: type: integer title: Total Tokens + description: Total tokens used (input + output) input_tokens_details: - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + description: Detailed breakdown of input token usage output_tokens_details: - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + description: Detailed breakdown of output token usage type: object required: - input_tokens - output_tokens - total_tokens title: OpenAIResponseUsage - description: Usage information for OpenAI response. + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" OpenAIResponseUsageInputTokensDetails: properties: cached_tokens: + anyOf: + - type: integer + - type: 'null' title: Cached Tokens - type: integer + description: Number of tokens retrieved from cache type: object title: OpenAIResponseUsageInputTokensDetails - description: Token details for input tokens in OpenAI response usage. + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" OpenAIResponseUsageOutputTokensDetails: properties: reasoning_tokens: + anyOf: + - type: integer + - type: 'null' title: Reasoning Tokens - type: integer + description: Number of tokens used for reasoning (o1/o3 models) type: object title: OpenAIResponseUsageOutputTokensDetails - description: Token details for output tokens in OpenAI response usage. + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" OpenAISystemMessageParam: properties: role: @@ -10978,8 +11114,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -10991,10 +11129,12 @@ components: type: string title: Token bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' title: Bytes - items: - type: integer - type: array logprob: type: number title: Logprob @@ -11009,7 +11149,7 @@ components: - logprob - top_logprobs title: OpenAITokenLogProb - description: The log probability for a token from an OpenAI-compatible chat completion response. + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" OpenAIToolMessageParam: properties: role: @@ -11039,10 +11179,12 @@ components: type: string title: Token bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' title: Bytes - items: - type: integer - type: array logprob: type: number title: Logprob @@ -11051,7 +11193,7 @@ components: - token - logprob title: OpenAITopLogProb - description: The top log probability for a token from an OpenAI-compatible chat completion response. + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" OpenAIUserMessageParam-Input: properties: role: @@ -11076,8 +11218,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -11107,8 +11251,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -11160,40 +11306,189 @@ components: required: - reasoning_tokens title: OutputTokensDetails + PaginatedResponse: + properties: + data: + items: + additionalProperties: true + type: object + type: array + title: Data + description: The list of items for the current page. + has_more: + type: boolean + title: Has More + description: Whether there are more items available after this set. + url: + anyOf: + - type: string + - type: 'null' + title: Url + description: The URL for accessing this list. + type: object + required: + - data + - has_more + - url + title: PaginatedResponse + description: A generic paginated response that follows a simple format. PostTrainingJob: properties: job_uuid: type: string title: Job Uuid + description: The UUID of the job type: object required: - job_uuid title: PostTrainingJob + PostTrainingJobArtifactsResponse: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + title: PostTrainingJobArtifactsResponse + description: Artifacts of a finetuning job. + PostTrainingJobStatusResponse: + properties: + job_uuid: + type: string + title: Job Uuid + status: + $ref: '#/components/schemas/JobStatus' + scheduled_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Scheduled At + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + resources_allocated: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Resources Allocated + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + - status + title: PostTrainingJobStatusResponse + description: Status of a finetuning job. + PostTrainingMetric: + properties: + epoch: + type: integer + title: Epoch + description: Training epoch number. + train_loss: + type: number + title: Train Loss + description: Loss value on the training dataset. + validation_loss: + type: number + title: Validation Loss + description: Loss value on the validation dataset. + perplexity: + type: number + title: Perplexity + description: Perplexity metric indicating model confidence. + type: object + required: + - epoch + - train_loss + - validation_loss + - perplexity + title: PostTrainingMetric + description: Training metrics captured during post-training jobs. + PreferenceOptimizeRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + finetuned_model: + type: string + title: Finetuned Model + description: The model to fine-tune + algorithm_config: + $ref: '#/components/schemas/DPOAlignmentConfig' + description: The algorithm configuration + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + type: object + required: + - job_uuid + - finetuned_model + - algorithm_config + - training_config + - hyperparam_search_config + - logger_config + title: PreferenceOptimizeRequest + description: Request to run preference optimization of a model. Prompt: properties: prompt: + anyOf: + - type: string + - type: 'null' title: Prompt - description: The system prompt with variable placeholders - type: string + description: The system prompt text with variable placeholders. Variables are only supported when using the Responses API. version: type: integer minimum: 1.0 title: Version - description: Version (integer starting at 1, incremented on save) + description: Version (integer starting at 1, incremented on save). prompt_id: type: string title: Prompt Id - description: Unique identifier in format 'pmpt_<48-digit-hash>' + description: Unique identifier formatted as 'pmpt_<48-digit-hash>'. variables: items: type: string type: array title: Variables - description: List of variable names that can be used in the prompt template + description: List of prompt variable names that can be used in the prompt template. is_default: type: boolean title: Is Default - description: Boolean indicating whether this version is the default version + description: Boolean indicating whether this version is the default version for this prompt. default: false type: object required: @@ -11206,20 +11501,25 @@ components: api: type: string title: Api + description: The API name this provider implements provider_id: type: string title: Provider Id + description: Unique identifier for the provider provider_type: type: string title: Provider Type + description: The type of provider implementation config: additionalProperties: true type: object title: Config + description: Configuration parameters for the provider health: additionalProperties: true type: object title: Health + description: Current health status of the provider type: object required: - api @@ -11229,6 +11529,67 @@ components: - health title: ProviderInfo description: Information about a registered provider including its configuration and health status. + QATFinetuningConfig: + properties: + type: + type: string + const: QAT + title: Type + default: QAT + quantizer_name: + type: string + title: Quantizer Name + group_size: + type: integer + title: Group Size + type: object + required: + - quantizer_name + - group_size + title: QATFinetuningConfig + description: Configuration for Quantization-Aware Training (QAT) fine-tuning. + QueryChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to query. + query: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Query + description: The query to search for. + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the query. + type: object + required: + - vector_store_id + - query + title: QueryChunksRequest + description: Request to query chunks from a vector database. QueryChunksResponse: properties: chunks: @@ -11247,6 +11608,49 @@ components: - scores title: QueryChunksResponse description: Response from querying chunks in a vector database. + RAGDocument: + properties: + document_id: + type: string + title: Document Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + title: Content + mime_type: + anyOf: + - type: string + - type: 'null' + title: Mime Type + metadata: + additionalProperties: true + type: object + title: Metadata + type: object + required: + - document_id + - content + title: RAGDocument + description: "A document to be used for document ingestion in the RAG Tool.\n\n:param document_id: The unique identifier for the document.\n:param content: The content of the document.\n:param mime_type: The MIME type of the document.\n:param metadata: Additional metadata for the document." RAGQueryConfig: properties: query_generator_config: @@ -11275,21 +11679,25 @@ components: title: Chunk Template default: "Result {index}\nContent: {chunk.content}\nMetadata: {metadata}\n" mode: + anyOf: + - $ref: '#/components/schemas/RAGSearchMode' + - type: 'null' default: vector - $ref: '#/components/schemas/RAGSearchMode' ranker: + anyOf: + - oneOf: + - $ref: '#/components/schemas/RRFRanker' + - $ref: '#/components/schemas/WeightedRanker' + discriminator: + propertyName: type + mapping: + rrf: '#/components/schemas/RRFRanker' + weighted: '#/components/schemas/WeightedRanker' + - type: 'null' title: Ranker - oneOf: - - $ref: '#/components/schemas/RRFRanker' - - $ref: '#/components/schemas/WeightedRanker' - discriminator: - propertyName: type - mapping: - rrf: '#/components/schemas/RRFRanker' - weighted: '#/components/schemas/WeightedRanker' type: object title: RAGQueryConfig - description: Configuration for the RAG query generation. + description: "Configuration for the RAG query generation.\n\n:param query_generator_config: Configuration for the query generator.\n:param max_tokens_in_context: Maximum number of tokens in the context.\n:param max_chunks: Maximum number of chunks to retrieve.\n:param chunk_template: Template for formatting each retrieved chunk in the context.\n Available placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk content string), {metadata} (chunk metadata dict).\n Default: \"Result {index}\\nContent: {chunk.content}\\nMetadata: {metadata}\\n\"\n:param mode: Search mode for retrieval—either \"vector\", \"keyword\", or \"hybrid\". Default \"vector\".\n:param ranker: Configuration for the ranker to use in hybrid search. Defaults to RRF ranker." RAGQueryResult: properties: content: @@ -11313,6 +11721,7 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Content metadata: additionalProperties: true @@ -11320,7 +11729,7 @@ components: title: Metadata type: object title: RAGQueryResult - description: Result of a RAG query containing retrieved content and metadata. + description: "Result of a RAG query containing retrieved content and metadata.\n\n:param content: (Optional) The retrieved content from the query\n:param metadata: Additional metadata about the query result" RAGSearchMode: type: string enum: @@ -11343,7 +11752,7 @@ components: minimum: 0.0 type: object title: RRFRanker - description: Reciprocal Rank Fusion (RRF) ranker configuration. + description: "Reciprocal Rank Fusion (RRF) ranker configuration.\n\n:param type: The type of ranker, always \"rrf\"\n:param impact_factor: The impact factor for RRF scoring. Higher values give more weight to higher-ranked results.\n Must be greater than 0" RegexParserScoringFnParams: properties: type: @@ -11366,6 +11775,247 @@ components: type: object title: RegexParserScoringFnParams description: Parameters for regex parser scoring function configuration. + RegisterBenchmarkRequest: + properties: + benchmark_id: + type: string + title: Benchmark Id + description: The ID of the benchmark to register + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to use for the benchmark + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the benchmark + provider_benchmark_id: + anyOf: + - type: string + - type: 'null' + title: Provider Benchmark Id + description: The ID of the provider benchmark to use for the benchmark + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the benchmark + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata to use for the benchmark + type: object + required: + - benchmark_id + - dataset_id + - scoring_functions + title: RegisterBenchmarkRequest + description: Request model for registering a benchmark. + RegisterDatasetRequest: + properties: + purpose: + $ref: '#/components/schemas/DatasetPurpose' + description: The purpose of the dataset + source: + oneOf: + - $ref: '#/components/schemas/URIDataSource' + - $ref: '#/components/schemas/RowsDataSource' + title: Source + description: The data source of the dataset + discriminator: + propertyName: type + mapping: + rows: '#/components/schemas/RowsDataSource' + uri: '#/components/schemas/URIDataSource' + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata for the dataset + dataset_id: + anyOf: + - type: string + - type: 'null' + title: Dataset Id + description: The ID of the dataset. If not provided, an ID will be generated + type: object + required: + - purpose + - source + title: RegisterDatasetRequest + description: Request model for registering a dataset. + RegisterModelRequest: + properties: + model_id: + type: string + title: Model Id + description: The identifier of the model to register. + provider_model_id: + anyOf: + - type: string + - type: 'null' + title: Provider Model Id + description: The identifier of the model in the provider. + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider. + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: Any additional metadata for this model. + model_type: + anyOf: + - $ref: '#/components/schemas/ModelType' + - type: 'null' + description: The type of model to register. + type: object + required: + - model_id + title: RegisterModelRequest + description: Request model for registering a new model. + RegisterScoringFunctionRequest: + properties: + scoring_fn_id: + type: string + title: Scoring Fn Id + description: The ID of the scoring function to register + description: + type: string + title: Description + description: The description of the scoring function + return_type: + oneOf: + - $ref: '#/components/schemas/StringType' + - $ref: '#/components/schemas/NumberType' + - $ref: '#/components/schemas/BooleanType' + - $ref: '#/components/schemas/ArrayType' + - $ref: '#/components/schemas/ObjectType' + - $ref: '#/components/schemas/JsonType' + - $ref: '#/components/schemas/UnionType' + - $ref: '#/components/schemas/ChatCompletionInputType' + - $ref: '#/components/schemas/CompletionInputType' + - $ref: '#/components/schemas/AgentTurnInputType' + title: Return Type + description: The return type of the scoring function + discriminator: + propertyName: type + mapping: + agent_turn_input: '#/components/schemas/AgentTurnInputType' + array: '#/components/schemas/ArrayType' + boolean: '#/components/schemas/BooleanType' + chat_completion_input: '#/components/schemas/ChatCompletionInputType' + completion_input: '#/components/schemas/CompletionInputType' + json: '#/components/schemas/JsonType' + number: '#/components/schemas/NumberType' + object: '#/components/schemas/ObjectType' + string: '#/components/schemas/StringType' + union: '#/components/schemas/UnionType' + provider_scoring_fn_id: + anyOf: + - type: string + - type: 'null' + title: Provider Scoring Fn Id + description: The ID of the provider scoring function to use for the scoring function + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the scoring function + params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + title: Params + description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval + type: object + required: + - scoring_fn_id + - description + - return_type + title: RegisterScoringFunctionRequest + description: Request model for registering a scoring function. + RegisterShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to register + provider_shield_id: + anyOf: + - type: string + - type: 'null' + title: Provider Shield Id + description: The identifier of the shield in the provider + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the shield + type: object + required: + - shield_id + title: RegisterShieldRequest + description: Request model for registering a shield. + RegisterToolGroupRequest: + properties: + toolgroup_id: + type: string + title: Toolgroup Id + description: The ID of the tool group to register + provider_id: + type: string + title: Provider Id + description: The ID of the provider to use for the tool group + mcp_endpoint: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: The MCP endpoint to use for the tool group + args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Args + description: A dictionary of arguments to pass to the tool group + type: object + required: + - toolgroup_id + - provider_id + title: RegisterToolGroupRequest + description: Request model for registering a tool group. RerankData: properties: index: @@ -11392,19 +12042,33 @@ components: - data title: RerankResponse description: Response from a reranking request. + ResponseGuardrailSpec: + properties: + type: + type: string + title: Type + description: The type/identifier of the guardrail. + type: object + required: + - type + title: ResponseGuardrailSpec + description: Specification for a guardrail to apply during response generation. RouteInfo: properties: route: type: string title: Route + description: The API endpoint path method: type: string title: Method + description: HTTP method for the route provider_types: items: type: string type: array title: Provider Types + description: List of provider types that implement this route type: object required: - route @@ -11418,6 +12082,7 @@ components: type: string const: rows title: Type + description: The type of data source default: rows rows: items: @@ -11425,15 +12090,77 @@ components: type: object type: array title: Rows + description: "The dataset is stored in rows. E.g. [{'messages': [{'role': 'user', 'content': 'Hello, world!'}, {'role': 'assistant', 'content': 'Hello, world!'}]}]" type: object required: - rows title: RowsDataSource description: A dataset stored in rows. + RunModerationRequest: + properties: + input: + anyOf: + - type: string + - items: + type: string + type: array + title: Input + description: Input (or inputs) to classify. Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models. + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: The content moderation model you would like to use. + type: object + required: + - input + title: RunModerationRequest + description: Request model for running moderation. + RunShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to run. + messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Input' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Input' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Input' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Input' + type: array + title: Messages + description: The messages to run the shield on. + params: + additionalProperties: true + type: object + title: Params + description: The parameters of the shield. + type: object + required: + - shield_id + - messages + - params + title: RunShieldRequest + description: Request model for running a shield. RunShieldResponse: properties: violation: - $ref: '#/components/schemas/SafetyViolation' + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: Safety violation detected by the shield, if any. type: object title: RunShieldResponse description: Response from running a safety shield. @@ -11441,13 +12168,18 @@ components: properties: violation_level: $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. user_message: + anyOf: + - type: string + - type: 'null' title: User Message - type: string + description: Message to convey to the user about the violation. metadata: additionalProperties: true type: object title: Metadata + description: Additional metadata including specific violation codes for debugging and telemetry. type: object required: - violation_level @@ -11468,35 +12200,111 @@ components: top_k: '#/components/schemas/TopKSamplingStrategy' top_p: '#/components/schemas/TopPSamplingStrategy' max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer repetition_penalty: + anyOf: + - type: number + - type: 'null' title: Repetition Penalty default: 1.0 - type: number stop: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Stop - items: - type: string - type: array type: object title: SamplingParams description: Sampling parameters. + ScoreBatchRequest: + properties: + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + save_results_dataset: + type: boolean + title: Save Results Dataset + description: Whether to save the results to a dataset + default: false + type: object + required: + - dataset_id + - scoring_functions + title: ScoreBatchRequest + description: Request for batch scoring operations. ScoreBatchResponse: properties: dataset_id: + anyOf: + - type: string + - type: 'null' title: Dataset Id - type: string + description: The identifier of the dataset that was scored results: additionalProperties: $ref: '#/components/schemas/ScoringResult' type: object title: Results + description: A map of scoring function name to ScoringResult type: object required: - results title: ScoreBatchResponse description: Response from batch scoring operations on datasets. + ScoreRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + type: object + required: + - input_rows + - scoring_functions + title: ScoreRequest + description: Request for scoring a list of rows. ScoreResponse: properties: results: @@ -11504,21 +12312,24 @@ components: $ref: '#/components/schemas/ScoringResult' type: object title: Results + description: A map of scoring function name to ScoringResult type: object required: - results title: ScoreResponse description: The response from scoring. - ScoringFn-Output: + ScoringFn: properties: identifier: type: string title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11529,8 +12340,10 @@ components: title: Type default: scoring_function description: + anyOf: + - type: string + - type: 'null' title: Description - type: string metadata: additionalProperties: true type: object @@ -11564,18 +12377,20 @@ components: string: '#/components/schemas/StringType' union: '#/components/schemas/UnionType' params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' title: Params description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval - oneOf: - - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' - - $ref: '#/components/schemas/RegexParserScoringFnParams' - - $ref: '#/components/schemas/BasicScoringFnParams' - discriminator: - propertyName: type - mapping: - basic: '#/components/schemas/BasicScoringFnParams' - llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' - regex_parser: '#/components/schemas/RegexParserScoringFnParams' type: object required: - identifier @@ -11591,10 +12406,12 @@ components: type: object type: array title: Score Rows + description: The scoring result for each row. Each row is a map of column name to value aggregated_results: additionalProperties: true type: object title: Aggregated Results + description: Map of metric name to aggregated value type: object required: - score_rows @@ -11604,15 +12421,59 @@ components: SearchRankingOptions: properties: ranker: + anyOf: + - type: string + - type: 'null' title: Ranker - type: string score_threshold: + anyOf: + - type: number + - type: 'null' title: Score Threshold default: 0.0 - type: number type: object title: SearchRankingOptions description: Options for ranking and filtering search results. + Session: + properties: + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + session_name: + type: string + title: Session Name + description: Human-readable name for the session + turns: + items: + $ref: '#/components/schemas/Turn' + type: array + title: Turns + description: List of all turns that have occurred in this session + started_at: + type: string + format: date-time + title: Started At + description: Timestamp when the session was created + type: object + required: + - session_id + - session_name + - turns + - started_at + title: Session + description: A single session of an interaction with an Agentic System. + SetDefaultVersionRequest: + properties: + version: + type: integer + title: Version + description: The version to set as default. + type: object + required: + - version + title: SetDefaultVersionRequest + description: Request model for setting a prompt version as default. Shield: properties: identifier: @@ -11620,9 +12481,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11631,11 +12494,15 @@ components: type: string const: shield title: Type + description: The resource type, always shield default: shield params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Params - additionalProperties: true - type: object + description: Configuration parameters for the shield type: object required: - identifier @@ -11647,29 +12514,39 @@ components: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: shield_call title: Step Type default: shield_call violation: - $ref: '#/components/schemas/SafetyViolation' + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: The violation from the shield call. type: object required: - turn_id - step_id - - violation title: ShieldCallStep description: A shield call step in an agent turn. StopReason: @@ -11688,7 +12565,59 @@ components: default: string type: object title: StringType - description: Parameter type for string values. + description: "Parameter type for string values.\n\n:param type: Discriminator type. Always \"string\"" + SupervisedFineTuneRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: Model descriptor for training if not in provider config` + checkpoint_dir: + anyOf: + - type: string + - type: 'null' + title: Checkpoint Dir + description: The directory to save checkpoint(s) to + algorithm_config: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LoraFinetuningConfig' + - $ref: '#/components/schemas/QATFinetuningConfig' + discriminator: + propertyName: type + mapping: + LoRA: '#/components/schemas/LoraFinetuningConfig' + QAT: '#/components/schemas/QATFinetuningConfig' + - type: 'null' + title: Algorithm Config + description: The algorithm configuration + type: object + required: + - job_uuid + - training_config + - hyperparam_search_config + - logger_config + title: SupervisedFineTuneRequest + description: Request to run supervised fine-tuning of a model. SystemMessage: properties: role: @@ -11729,7 +12658,7 @@ components: - append - replace title: SystemMessageBehavior - description: Config for how to override the default system prompt. + description: "Config for how to override the default system prompt.\n\nhttps://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt-\n'{{function_definitions}}' to indicate where the function definitions should be inserted." TextContentItem: properties: type: @@ -11744,7 +12673,7 @@ components: required: - text title: TextContentItem - description: A text content item + description: A text content item. ToolCall: properties: call_id: @@ -11778,39 +12707,60 @@ components: anyOf: - $ref: '#/components/schemas/ToolChoice' - type: string + - type: 'null' title: Tool Choice default: auto tool_prompt_format: - $ref: '#/components/schemas/ToolPromptFormat' + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' system_message_behavior: + anyOf: + - $ref: '#/components/schemas/SystemMessageBehavior' + - type: 'null' default: append - $ref: '#/components/schemas/SystemMessageBehavior' type: object title: ToolConfig - description: Configuration for tool use. + description: "Configuration for tool use.\n\n- `ToolPromptFormat.json`: The tool calls are formatted as a JSON object.\n- `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag.\n- `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls.\n- `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt.\n- `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string\n '{{function_definitions}}' to indicate where the function definitions should be inserted." ToolDef: properties: toolgroup_id: + anyOf: + - type: string + - type: 'null' title: Toolgroup Id - type: string + description: ID of the tool group this tool belongs to name: type: string title: Name + description: Name of the tool description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Human-readable description of what the tool does input_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Input Schema - additionalProperties: true - type: object + description: JSON Schema for tool inputs (MCP inputSchema) output_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Output Schema - additionalProperties: true - type: object + description: JSON Schema for tool outputs (MCP outputSchema) metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object + description: Additional metadata about the tool type: object required: - name @@ -11821,17 +12771,25 @@ components: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: tool_execution @@ -11842,11 +12800,13 @@ components: $ref: '#/components/schemas/ToolCall' type: array title: Tool Calls + description: The tool calls to execute. tool_responses: items: $ref: '#/components/schemas/ToolResponse-Output' type: array title: Tool Responses + description: The tool responses from the tool calls. type: object required: - turn_id @@ -11862,9 +12822,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11873,13 +12835,20 @@ components: type: string const: tool_group title: Type + description: Type of resource, always 'tool_group' default: tool_group mcp_endpoint: - $ref: '#/components/schemas/URL' + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: Model Context Protocol endpoint for remote tools args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Args - additionalProperties: true - type: object + description: Additional arguments for the tool group type: object required: - identifier @@ -11909,17 +12878,28 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Content + description: The output content from the tool execution error_message: + anyOf: + - type: string + - type: 'null' title: Error Message - type: string + description: Error message if the tool execution failed error_code: + anyOf: + - type: integer + - type: 'null' title: Error Code - type: integer + description: Numeric error code if the tool execution failed metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object + description: Additional metadata about the tool execution type: object title: ToolInvocationResult description: Result of a tool invocation. @@ -11930,7 +12910,7 @@ components: - function_tag - python_list title: ToolPromptFormat - description: Prompt format for calling custom / zero shot tools. + description: "Prompt format for calling custom / zero shot tools.\n\n:cvar json: JSON format for calling tools. It takes the form:\n {\n \"type\": \"function\",\n \"function\" : {\n \"name\": \"function_name\",\n \"description\": \"function_description\",\n \"parameters\": {...}\n }\n }\n:cvar function_tag: Function tag format, pseudo-XML. This looks like:\n (parameters)\n\n:cvar python_list: Python list. The output is a valid Python expression that can be\n evaluated to a list. Each element in the list is a function call. Example:\n [\"function_name(param1, param2)\", \"function_name(param1, param2)\"]" ToolResponse-Input: properties: call_id: @@ -11964,9 +12944,11 @@ components: type: array title: Content metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object type: object required: - call_id @@ -12007,9 +12989,11 @@ components: type: array title: Content metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object type: object required: - call_id @@ -12017,6 +13001,44 @@ components: - content title: ToolResponse description: Response from a tool invocation. + ToolResponseMessage-Input: + properties: + role: + type: string + const: tool + title: Role + default: tool + call_id: + type: string + title: Call Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + type: object + required: + - call_id + - content + title: ToolResponseMessage + description: A message representing the result of a tool invocation. ToolResponseMessage-Output: properties: role: @@ -12079,13 +13101,17 @@ components: title: Type default: top_p temperature: + anyOf: + - type: number + minimum: 0.0 + - type: 'null' title: Temperature - type: number - minimum: 0.0 top_p: + anyOf: + - type: number + - type: 'null' title: Top P default: 0.95 - type: number type: object required: - temperature @@ -12105,19 +13131,29 @@ components: title: Gradient Accumulation Steps default: 1 max_validation_steps: + anyOf: + - type: integer + - type: 'null' title: Max Validation Steps default: 1 - type: integer data_config: - $ref: '#/components/schemas/DataConfig' + anyOf: + - $ref: '#/components/schemas/DataConfig' + - type: 'null' optimizer_config: - $ref: '#/components/schemas/OptimizerConfig' + anyOf: + - $ref: '#/components/schemas/OptimizerConfig' + - type: 'null' efficiency_config: - $ref: '#/components/schemas/EfficiencyConfig' + anyOf: + - $ref: '#/components/schemas/EfficiencyConfig' + - type: 'null' dtype: + anyOf: + - type: string + - type: 'null' title: Dtype default: bf16 - type: string type: object required: - n_epochs @@ -12128,9 +13164,11 @@ components: turn_id: type: string title: Turn Id + description: Unique identifier for the turn within a session session_id: type: string title: Session Id + description: Unique identifier for the conversation session input_messages: items: anyOf: @@ -12138,6 +13176,7 @@ components: - $ref: '#/components/schemas/ToolResponseMessage-Output' type: array title: Input Messages + description: List of messages that initiated this turn steps: items: oneOf: @@ -12154,21 +13193,30 @@ components: tool_execution: '#/components/schemas/ToolExecutionStep-Output' type: array title: Steps + description: Ordered list of processing steps executed during this turn output_message: $ref: '#/components/schemas/CompletionMessage-Output' + description: The model's generated response containing content and metadata output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment-Output' + type: array + - type: 'null' title: Output Attachments - items: - $ref: '#/components/schemas/Attachment-Output' - type: array + description: Files or media attached to the agent's response started_at: type: string format: date-time title: Started At + description: Timestamp when the turn began completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: Timestamp when the turn finished, if completed type: object required: - turn_id @@ -12185,10 +13233,12 @@ components: type: string const: uri title: Type + description: The type of data source default: uri uri: type: string title: Uri + description: The dataset can be obtained from a URI. E.g. 'https://mywebsite.com/mydata.jsonl', 'lsfs://mydata.jsonl', 'data:csv;base64,{base64_content}' type: object required: - uri @@ -12213,7 +13263,36 @@ components: default: union type: object title: UnionType - description: Parameter type for union values. + description: "Parameter type for union values.\n\n:param type: Discriminator type. Always \"union\"" + UpdatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The updated prompt text content. + version: + type: integer + title: Version + description: The current version of the prompt being updated. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: Updated list of variable names that can be used in the prompt template. + set_as_default: + type: boolean + title: Set As Default + description: Set the new version as the default (default=True). + default: true + type: object + required: + - prompt + - version + title: UpdatePromptRequest + description: Request model for updating an existing prompt. UserMessage-Input: properties: role: @@ -12264,6 +13343,7 @@ components: image: '#/components/schemas/ImageContentItem-Input' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Context type: object required: @@ -12320,6 +13400,7 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Context type: object required: @@ -12380,6 +13461,24 @@ components: - text title: VectorStoreContent description: Content item from a vector store file or search result. + VectorStoreDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreDeleteResponse + description: Response from deleting a vector store. VectorStoreFileBatchObject: properties: id: @@ -12417,6 +13516,31 @@ components: - file_counts title: VectorStoreFileBatchObject description: OpenAI Vector Store File Batch object. + VectorStoreFileContentsResponse: + properties: + file_id: + type: string + title: File Id + filename: + type: string + title: Filename + attributes: + additionalProperties: true + type: object + title: Attributes + content: + items: + $ref: '#/components/schemas/VectorStoreContent' + type: array + title: Content + type: object + required: + - file_id + - filename + - attributes + - content + title: VectorStoreFileContentsResponse + description: Response from retrieving the contents of a vector store file. VectorStoreFileCounts: properties: completed: @@ -12443,6 +13567,24 @@ components: - total title: VectorStoreFileCounts description: File processing status counts for a vector store. + VectorStoreFileDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.file.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreFileDeleteResponse + description: Response from deleting a vector store file. VectorStoreFileLastError: properties: code: @@ -12488,7 +13630,9 @@ components: type: integer title: Created At last_error: - $ref: '#/components/schemas/VectorStoreFileLastError' + anyOf: + - $ref: '#/components/schemas/VectorStoreFileLastError' + - type: 'null' status: anyOf: - type: string @@ -12516,6 +13660,118 @@ components: - vector_store_id title: VectorStoreFileObject description: OpenAI Vector Store File object. + VectorStoreFilesListInBatchResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreFilesListInBatchResponse + description: Response from listing files in a vector store file batch. + VectorStoreListFilesResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListFilesResponse + description: Response from listing files in a vector store. + VectorStoreListResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListResponse + description: Response from listing vector stores. + VectorStoreModifyRequest: + properties: + name: + anyOf: + - type: string + - type: 'null' + title: Name + expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Expires After + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + type: object + title: VectorStoreModifyRequest + description: Request to modify a vector store. VectorStoreObject: properties: id: @@ -12529,8 +13785,10 @@ components: type: integer title: Created At name: + anyOf: + - type: string + - type: 'null' title: Name - type: string usage_bytes: type: integer title: Usage Bytes @@ -12542,15 +13800,21 @@ components: title: Status default: completed expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Expires After - additionalProperties: true - type: object expires_at: + anyOf: + - type: integer + - type: 'null' title: Expires At - type: integer last_active_at: + anyOf: + - type: integer + - type: 'null' title: Last Active At - type: integer metadata: additionalProperties: true type: object @@ -12574,13 +13838,15 @@ components: type: number title: Score attributes: + anyOf: + - additionalProperties: + anyOf: + - type: string + - type: number + - type: boolean + type: object + - type: 'null' title: Attributes - additionalProperties: - anyOf: - - type: string - - type: number - - type: boolean - type: object content: items: $ref: '#/components/schemas/VectorStoreContent' @@ -12613,8 +13879,10 @@ components: title: Has More default: false next_page: + anyOf: + - type: string + - type: 'null' title: Next Page - type: string type: object required: - search_query @@ -12626,6 +13894,7 @@ components: version: type: string title: Version + description: Version number of the service type: object required: - version @@ -12638,7 +13907,7 @@ components: - warn - error title: ViolationLevel - description: Severity level of a safety violation. + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" WeightedRanker: properties: type: @@ -12655,6205 +13924,19 @@ components: default: 0.5 type: object title: WeightedRanker - description: Weighted ranker configuration that combines vector and keyword scores. + description: "Weighted ranker configuration that combines vector and keyword scores.\n\n:param type: The type of ranker, always \"weighted\"\n:param alpha: Weight factor between 0 and 1.\n 0 means only use keyword scores,\n 1 means only use vector scores,\n values in between blend both scores." _URLOrData: properties: url: - $ref: '#/components/schemas/URL' + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' data: + anyOf: + - type: string + - type: 'null' contentEncoding: base64 title: Data - type: string type: object title: _URLOrData - description: A URL or a base64 encoded string - __main_____agents_agent_id_session_Request: - properties: - agent_id: - type: string - title: Agent Id - session_name: - type: string - title: Session Name - type: object - required: - - agent_id - - session_name - title: _agents_agent_id_session_Request - __main_____agents_agent_id_session_session_id_turn_Request: - properties: - agent_id: - type: string - title: Agent Id - session_id: - type: string - title: Session Id - messages: - $ref: '#/components/schemas/UserMessage-Input' - stream: - type: boolean - title: Stream - default: false - documents: - $ref: '#/components/schemas/Document' - toolgroups: - anyOf: - - type: string - - $ref: '#/components/schemas/AgentToolGroupWithArgs' - title: Toolgroups - tool_config: - $ref: '#/components/schemas/ToolConfig' - type: object - required: - - agent_id - - session_id - - messages - - documents - - toolgroups - - tool_config - title: _agents_agent_id_session_session_id_turn_Request - __main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request: - properties: - agent_id: - type: string - title: Agent Id - session_id: - type: string - title: Session Id - turn_id: - type: string - title: Turn Id - tool_responses: - $ref: '#/components/schemas/ToolResponse-Input' - stream: - type: boolean - title: Stream - default: false - type: object - required: - - agent_id - - session_id - - turn_id - - tool_responses - title: _agents_agent_id_session_session_id_turn_turn_id_resume_Request - __main_____datasets_Request: - properties: - purpose: - $ref: '#/components/schemas/DatasetPurpose' - metadata: - type: string - title: Metadata - dataset_id: - type: string - title: Dataset Id - type: object - required: - - purpose - - metadata - - dataset_id - title: _datasets_Request - _batches_Request: - properties: - input_file_id: - type: string - title: Input File Id - endpoint: - type: string - title: Endpoint - completion_window: - type: string - title: Completion Window - metadata: - type: string - title: Metadata - idempotency_key: - type: string - title: Idempotency Key - type: object - required: - - input_file_id - - endpoint - - completion_window - - metadata - - idempotency_key - title: _batches_Request - _batches_batch_id_cancel_Request: - properties: - batch_id: - type: string - title: Batch Id - type: object - required: - - batch_id - title: _batches_batch_id_cancel_Request - _conversations_Request: - properties: - items: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage-Input' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - title: Items - discriminator: - propertyName: type - mapping: - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - message: '#/components/schemas/OpenAIResponseMessage-Input' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - metadata: - type: string - title: Metadata - type: object - required: - - items - - metadata - title: _conversations_Request - _conversations_conversation_id_Request: - properties: - conversation_id: - type: string - title: Conversation Id - metadata: - type: string - title: Metadata - type: object - required: - - conversation_id - - metadata - title: _conversations_conversation_id_Request - _conversations_conversation_id_items_Request: - properties: - conversation_id: - type: string - title: Conversation Id - items: - anyOf: - - $ref: '#/components/schemas/OpenAIResponseMessage-Input' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - title: Items - type: object - required: - - conversation_id - - items - title: _conversations_conversation_id_items_Request - _inference_rerank_Request: - properties: - model: - type: string - title: Model - query: - type: string - title: Query - items: - type: string - title: Items - max_num_results: - type: integer - title: Max Num Results - type: object - required: - - model - - query - - items - - max_num_results - title: _inference_rerank_Request - _models_Request: - properties: - model_id: - type: string - title: Model Id - provider_model_id: - type: string - title: Provider Model Id - provider_id: - type: string - title: Provider Id - metadata: - type: string - title: Metadata - model_type: - $ref: '#/components/schemas/ModelType' - type: object - required: - - model_id - - provider_model_id - - provider_id - - metadata - - model_type - title: _models_Request - _moderations_Request: - properties: - input: - type: string - title: Input - model: - type: string - title: Model - type: object - required: - - input - - model - title: _moderations_Request - _prompts_Request: - properties: - prompt: - type: string - title: Prompt - variables: - type: string - title: Variables - type: object - required: - - prompt - - variables - title: _prompts_Request - _prompts_prompt_id_Request: - properties: - prompt_id: - type: string - title: Prompt Id - prompt: - type: string - title: Prompt - version: - type: integer - title: Version - variables: - type: string - title: Variables - set_as_default: - type: boolean - title: Set As Default - default: true - type: object - required: - - prompt_id - - prompt - - version - - variables - title: _prompts_prompt_id_Request - _prompts_prompt_id_set_default_version_Request: - properties: - prompt_id: - type: string - title: Prompt Id - version: - type: integer - title: Version - type: object - required: - - prompt_id - - version - title: _prompts_prompt_id_set_default_version_Request - _responses_Request: - properties: - input: - type: string - title: Input - model: - type: string - title: Model - prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' - instructions: - type: string - title: Instructions - previous_response_id: - type: string - title: Previous Response Id - conversation: - type: string - title: Conversation - store: - type: boolean - title: Store - default: true - stream: - type: boolean - title: Stream - default: false - temperature: - type: number - title: Temperature - text: - $ref: '#/components/schemas/OpenAIResponseText' - tools: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' - title: Tools - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseInputToolMCP' - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' - include: - type: string - title: Include - max_infer_iters: - type: integer - title: Max Infer Iters - default: 10 - type: object - required: - - input - - model - - prompt - - instructions - - previous_response_id - - conversation - - temperature - - text - - tools - - include - title: _responses_Request - _scoring_score_Request: - properties: - input_rows: - type: string - title: Input Rows - scoring_functions: - type: string - title: Scoring Functions - type: object - required: - - input_rows - - scoring_functions - title: _scoring_score_Request - _scoring_score_batch_Request: - properties: - dataset_id: - type: string - title: Dataset Id - scoring_functions: - type: string - title: Scoring Functions - save_results_dataset: - type: boolean - title: Save Results Dataset - default: false - type: object - required: - - dataset_id - - scoring_functions - title: _scoring_score_batch_Request - _shields_Request: - properties: - shield_id: - type: string - title: Shield Id - provider_shield_id: - type: string - title: Provider Shield Id - provider_id: - type: string - title: Provider Id - params: - type: string - title: Params - type: object - required: - - shield_id - - provider_shield_id - - provider_id - - params - title: _shields_Request - _tool_runtime_invoke_Request: - properties: - tool_name: - type: string - title: Tool Name - kwargs: - type: string - title: Kwargs - type: object - required: - - tool_name - - kwargs - title: _tool_runtime_invoke_Request - _tool_runtime_rag_tool_query_Request: - properties: - content: - type: string - title: Content - vector_store_ids: - type: string - title: Vector Store Ids - query_config: - $ref: '#/components/schemas/RAGQueryConfig' - type: object - required: - - content - - vector_store_ids - - query_config - title: _tool_runtime_rag_tool_query_Request - _vector_io_query_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - query: - type: string - title: Query - params: - type: string - title: Params - type: object - required: - - vector_store_id - - query - - params - title: _vector_io_query_Request - _vector_stores_vector_store_id_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - name: - type: string - title: Name - expires_after: - type: string - title: Expires After - metadata: - type: string - title: Metadata - type: object - required: - - vector_store_id - - name - - expires_after - - metadata - title: _vector_stores_vector_store_id_Request - _vector_stores_vector_store_id_file_batches_batch_id_cancel_Request: - properties: - batch_id: - type: string - title: Batch Id - vector_store_id: - type: string - title: Vector Store Id - type: object - required: - - batch_id - - vector_store_id - title: _vector_stores_vector_store_id_file_batches_batch_id_cancel_Request - _vector_stores_vector_store_id_files_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - file_id: - type: string - title: File Id - attributes: - type: string - title: Attributes - chunking_strategy: - anyOf: - - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' - - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' - title: Chunking Strategy - type: object - required: - - vector_store_id - - file_id - - attributes - - chunking_strategy - title: _vector_stores_vector_store_id_files_Request - _vector_stores_vector_store_id_files_file_id_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - file_id: - type: string - title: File Id - attributes: - type: string - title: Attributes - type: object - required: - - vector_store_id - - file_id - - attributes - title: _vector_stores_vector_store_id_files_file_id_Request - _vector_stores_vector_store_id_search_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - query: - type: string - title: Query - filters: - type: string - title: Filters - max_num_results: - type: integer - title: Max Num Results - default: 10 - ranking_options: - $ref: '#/components/schemas/SearchRankingOptions' - rewrite_query: - type: boolean - title: Rewrite Query - default: false - search_mode: - type: string - title: Search Mode - default: vector - type: object - required: - - vector_store_id - - query - - filters - - ranking_options - title: _vector_stores_vector_store_id_search_Request - Error: - description: Error response from the API. Roughly follows RFC 7807. - properties: - status: - title: Status - type: integer - title: - title: Title - type: string - detail: - title: Detail - type: string - instance: - title: Instance - type: string - nullable: true - required: - - status - - title - - detail - title: Error - type: object - Agent: - description: An agent instance with configuration and metadata. - properties: - agent_id: - title: Agent Id - type: string - agent_config: - $ref: '#/components/schemas/AgentConfig' - created_at: - format: date-time - title: Created At - type: string - required: - - agent_id - - agent_config - - created_at - title: Agent - type: object - AgentStepResponse: - description: Response containing details of a specific agent step. - properties: - step: - discriminator: - mapping: - inference: '#/$defs/InferenceStep' - memory_retrieval: '#/$defs/MemoryRetrievalStep' - shield_call: '#/$defs/ShieldCallStep' - tool_execution: '#/$defs/ToolExecutionStep' - propertyName: step_type - oneOf: - - $ref: '#/components/schemas/InferenceStep' - - $ref: '#/components/schemas/ToolExecutionStep' - - $ref: '#/components/schemas/ShieldCallStep' - - $ref: '#/components/schemas/MemoryRetrievalStep' - title: Step - required: - - step - title: AgentStepResponse - type: object - CompletionMessage: - description: A message containing the model's (assistant) response in a chat conversation. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Content - stop_reason: - $ref: '#/components/schemas/StopReason' - tool_calls: - title: Tool Calls - items: - $ref: '#/components/schemas/ToolCall' - type: array - required: - - content - - stop_reason - title: CompletionMessage - type: object - InferenceStep: - description: An inference step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: inference - default: inference - title: Step Type - type: string - model_response: - $ref: '#/components/schemas/CompletionMessage' - required: - - turn_id - - step_id - - model_response - title: InferenceStep - type: object - ListOpenAIResponseInputItem: - description: List container for OpenAI response input items. - properties: - data: - items: - anyOf: - - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseMessage' - title: Data - type: array - object: - const: list - default: list - title: Object - type: string - required: - - data - title: ListOpenAIResponseInputItem - type: object - ListOpenAIResponseObject: - description: Paginated list of OpenAI response objects with navigation metadata. - properties: - data: - items: - $ref: '#/components/schemas/OpenAIResponseObjectWithInput' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIResponseObject - type: object - MemoryRetrievalStep: - description: A memory retrieval step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: memory_retrieval - default: memory_retrieval - title: Step Type - type: string - vector_store_ids: - title: Vector Store Ids - type: string - inserted_context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Inserted Context - required: - - turn_id - - step_id - - vector_store_ids - - inserted_context - title: MemoryRetrievalStep - type: object - OpenAIDeleteResponseObject: - description: Response object confirming deletion of an OpenAI response. - properties: - id: - title: Id - type: string - object: - const: response - default: response - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: OpenAIDeleteResponseObject - type: object - PaginatedResponse: - description: A generic paginated response that follows a simple format. - properties: - data: - items: - additionalProperties: true - type: object - title: Data - type: array - has_more: - title: Has More - type: boolean - url: - title: Url - type: string - nullable: true - required: - - data - - has_more - title: PaginatedResponse - type: object - Session: - description: A single session of an interaction with an Agentic System. - properties: - session_id: - title: Session Id - type: string - session_name: - title: Session Name - type: string - turns: - items: - $ref: '#/components/schemas/Turn' - title: Turns - type: array - started_at: - format: date-time - title: Started At - type: string - required: - - session_id - - session_name - - turns - - started_at - title: Session - type: object - ShieldCallStep: - description: A shield call step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: shield_call - default: shield_call - title: Step Type - type: string - violation: - $ref: '#/components/schemas/SafetyViolation' - required: - - turn_id - - step_id - - violation - title: ShieldCallStep - type: object - ToolExecutionStep: - description: A tool execution step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: tool_execution - default: tool_execution - title: Step Type - type: string - tool_calls: - items: - $ref: '#/components/schemas/ToolCall' - title: Tool Calls - type: array - tool_responses: - items: - $ref: '#/components/schemas/ToolResponse' - title: Tool Responses - type: array - required: - - turn_id - - step_id - - tool_calls - - tool_responses - title: ToolExecutionStep - type: object - ToolResponse: - description: Response from a tool invocation. - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/components/schemas/BuiltinTool' - - type: string - title: Tool Name - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Content - metadata: - title: Metadata - additionalProperties: true - type: object - nullable: true - required: - - call_id - - tool_name - - content - title: ToolResponse - type: object - ListBatchesResponse: - description: Response containing a list of batch objects. - properties: - object: - const: list - default: list - title: Object - type: string - data: - description: List of batch objects - items: - $ref: '#/components/schemas/Batch' - title: Data - type: array - first_id: - description: ID of the first batch in the list - title: First Id - type: string - nullable: true - last_id: - description: ID of the last batch in the list - title: Last Id - type: string - nullable: true - has_more: - default: false - description: Whether there are more batches available - title: Has More - type: boolean - required: - - data - title: ListBatchesResponse - type: object - ConversationDeletedResource: - description: Response for deleted conversation. - properties: - id: - description: The deleted conversation identifier - title: Id - type: string - object: - default: conversation.deleted - description: Object type - title: Object - type: string - deleted: - default: true - description: Whether the object was deleted - title: Deleted - type: boolean - required: - - id - title: ConversationDeletedResource - type: object - ConversationItemDeletedResource: - description: Response for deleted conversation item. - properties: - id: - description: The deleted item identifier - title: Id - type: string - object: - default: conversation.item.deleted - description: Object type - title: Object - type: string - deleted: - default: true - description: Whether the object was deleted - title: Deleted - type: boolean - required: - - id - title: ConversationItemDeletedResource - type: object - ListOpenAIFileResponse: - description: Response for listing files in OpenAI Files API. - properties: - data: - items: - $ref: '#/components/schemas/OpenAIFileObject' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIFileResponse - type: object - OpenAIFileDeleteResponse: - description: Response for deleting a file in OpenAI Files API. - properties: - id: - title: Id - type: string - object: - const: file - default: file - title: Object - type: string - deleted: - title: Deleted - type: boolean - required: - - id - - deleted - title: OpenAIFileDeleteResponse - type: object - ListOpenAIChatCompletionResponse: - description: Response from listing OpenAI-compatible chat completions. - properties: - data: - items: - $ref: '#/$defs/RouteInfo' - title: Data - type: array - required: - - data - title: ListRoutesResponse - description: >- - Response containing a list of all available API routes. - OpenAIModel: - type: object - properties: - id: - type: string - object: - type: string - const: model - default: model - created: - type: integer - owned_by: - type: string - custom_metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - additionalProperties: false - required: - - id - - object - - created - - owned_by - title: OpenAIModel - description: A model from OpenAI. - OpenAIListModelsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIModel' - additionalProperties: false - required: - - data - title: OpenAIListModelsResponse - ModelType: - type: string - enum: - - llm - - embedding - - rerank - title: ModelType - description: >- - Enumeration of supported model types in Llama Stack. - RegisterModelRequest: - type: object - properties: - model_id: - type: string - description: The identifier of the model to register. - provider_model_id: - type: string - description: >- - The identifier of the model in the provider. - provider_id: - type: string - description: The identifier of the provider. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model. - model_type: - $ref: '#/components/schemas/ModelType' - description: The type of model to register. - additionalProperties: false - required: - - model_id - title: RegisterModelRequest - Model: - type: object - properties: - identifier: - type: string - description: >- - Unique identifier for this resource in llama stack - provider_resource_id: - type: string - description: >- - Unique identifier for this resource in the provider - provider_id: - type: string - description: >- - ID of the provider that owns this resource - type: - type: string - enum: - - model - - shield - - vector_store - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: model - default: model - description: >- - The resource type, always 'model' for model resources - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model - model_type: - $ref: '#/components/schemas/ModelType' - default: llm - description: >- - The type of model (LLM or embedding model) - additionalProperties: false - required: - - identifier - - provider_id - - type - - metadata - - model_type - title: Model - description: >- - A model resource representing an AI model registered in Llama Stack. - RunModerationRequest: - type: object - ModerationObject: - $defs: - ModerationObjectResults: - description: >- - A moderation object. - - :param flagged: Whether any of the below categories are flagged. - - :param categories: A list of the categories, and whether they are flagged - or not. - - :param category_applied_input_types: A list of the categories along with - the input type(s) that the score applies to. - - :param category_scores: A list of the categories along with their scores - as predicted by model. - properties: - flagged: - title: Flagged - type: boolean - categories: - anyOf: - - additionalProperties: - type: boolean - type: object - - type: 'null' - title: Categories - category_applied_input_types: - anyOf: - - additionalProperties: - items: - type: string - type: array - type: object - - type: 'null' - title: Category Applied Input Types - category_scores: - anyOf: - - additionalProperties: - type: number - type: object - - type: 'null' - title: Category Scores - user_message: - anyOf: - - type: string - - type: 'null' - title: User Message - metadata: - additionalProperties: true - title: Metadata - type: object - required: - - flagged - title: ModerationObjectResults - type: object - description: >- - A moderation object. - - :param id: The unique identifier for the moderation request. - - :param model: The model used to generate the moderation results. - - :param results: A list of moderation objects - properties: - id: - title: Id - type: string - model: - title: Model - type: string - results: - items: - $ref: '#/$defs/ModerationObjectResults' - title: Results - type: array - required: - - id - - model - - results - title: ModerationObject - type: object - ListPromptsResponse: - $defs: - Prompt: - description: >- - A prompt resource representing a stored OpenAI Compatible prompt template - in Llama Stack. - - - :param prompt: The system prompt text with variable placeholders. Variables - are only supported when using the Responses API. - - :param version: Version (integer starting at 1, incremented on save) - - :param prompt_id: Unique identifier formatted as 'pmpt_<48-digit-hash>' - - :param variables: List of prompt variable names that can be used in the - prompt template - - :param is_default: Boolean indicating whether this version is the default - version for this prompt - properties: - prompt: - anyOf: - - type: string - - type: 'null' - description: >- - The system prompt with variable placeholders - title: Prompt - version: - description: >- - Version (integer starting at 1, incremented on save) - minimum: 1 - title: Version - type: integer - prompt_id: - description: >- - Unique identifier in format 'pmpt_<48-digit-hash>' - title: Prompt Id - type: string - variables: - description: >- - List of variable names that can be used in the prompt template - items: - type: string - title: Variables - type: array - is_default: - default: false - description: >- - Boolean indicating whether this version is the default version - title: Is Default - type: boolean - required: - - version - - prompt_id - title: Prompt - type: object - description: Response model to list prompts. - properties: - data: - items: - $ref: '#/$defs/Prompt' - title: Data - type: array - required: - - data - title: ListPromptsResponse - type: object - CreatePromptRequest: - type: object - Prompt: - description: >- - A prompt resource representing a stored OpenAI Compatible prompt template - in Llama Stack. - - - :param prompt: The system prompt text with variable placeholders. Variables - are only supported when using the Responses API. - - :param version: Version (integer starting at 1, incremented on save) - - :param prompt_id: Unique identifier formatted as 'pmpt_<48-digit-hash>' - - :param variables: List of prompt variable names that can be used in the prompt - template - - :param is_default: Boolean indicating whether this version is the default - version for this prompt - properties: - prompt: - anyOf: - - type: string - - type: 'null' - description: >- - The system prompt with variable placeholders - title: Prompt - version: - description: >- - Version (integer starting at 1, incremented on save) - minimum: 1 - title: Version - type: integer - prompt_id: - description: >- - Unique identifier in format 'pmpt_<48-digit-hash>' - title: Prompt Id - type: string - variables: - description: >- - List of variable names that can be used in the prompt template - items: - type: string - title: Variables - type: array - is_default: - default: false - description: >- - Boolean indicating whether this version is the default version - title: Is Default - type: boolean - required: - - version - - prompt_id - title: Prompt - type: object - UpdatePromptRequest: - type: object - SetDefaultVersionRequest: - type: object - ListProvidersResponse: - $defs: - ProviderInfo: - description: >- - Information about a registered provider including its configuration and - health status. - - - :param api: The API name this provider implements - - :param provider_id: Unique identifier for the provider - - :param provider_type: The type of provider implementation - - :param config: Configuration parameters for the provider - - :param health: Current health status of the provider - properties: - api: - title: Api - type: string - provider_id: - title: Provider Id - type: string - provider_type: - title: Provider Type - type: string - config: - additionalProperties: true - title: Config - type: object - health: - additionalProperties: true - title: Health - type: object - required: - - api - - provider_id - - provider_type - - config - - health - title: ProviderInfo - type: object - description: >- - Response containing a list of all available providers. - - - :param data: List of provider information objects - properties: - data: - items: - $ref: '#/$defs/ProviderInfo' - title: Data - type: array - required: - - data - title: ListProvidersResponse - type: object - ProviderInfo: - description: >- - Information about a registered provider including its configuration and health - status. - - - :param api: The API name this provider implements - - :param provider_id: Unique identifier for the provider - - :param provider_type: The type of provider implementation - - :param config: Configuration parameters for the provider - - :param health: Current health status of the provider - properties: - api: - title: Api - type: string - provider_id: - title: Provider Id - type: string - provider_type: - title: Provider Type - type: string - config: - additionalProperties: true - title: Config - type: object - health: - additionalProperties: true - title: Health - type: object - required: - - api - - provider_id - - provider_type - - config - - health - title: ProviderInfo - type: object - ListOpenAIResponseObject: - $defs: - AllowedToolsFilter: - description: >- - Filter configuration for restricting which MCP tools can be used. - - - :param tool_names: (Optional) List of specific tool names that are allowed - properties: - tool_names: - anyOf: - - items: - type: string - type: array - - type: 'null' - title: Tool Names - title: AllowedToolsFilter - type: object - MCPListToolsTool: - description: >- - Tool definition returned by MCP list tools operation. - - - :param input_schema: JSON schema defining the tool's input parameters - - :param name: Name of the tool - - :param description: (Optional) Description of what the tool does - properties: - input_schema: - additionalProperties: true - title: Input Schema - type: object - name: - title: Name - type: string - description: - anyOf: - - type: string - - type: 'null' - title: Description - required: - - input_schema - - name - title: MCPListToolsTool - type: object - OpenAIResponseAnnotationCitation: - description: >- - URL citation annotation for referencing external web resources. - - - :param type: Annotation type identifier, always "url_citation" - - :param end_index: End position of the citation span in the content - - :param start_index: Start position of the citation span in the content - - :param title: Title of the referenced web resource - - :param url: URL of the referenced web resource - properties: - type: - const: url_citation - default: url_citation - title: Type - type: string - end_index: - title: End Index - type: integer - start_index: - title: Start Index - type: integer - title: - title: Title - type: string - url: - title: Url - type: string - required: - - end_index - - start_index - - title - - url - title: OpenAIResponseAnnotationCitation - type: object - "OpenAIResponseAnnotationContainerFileCitation": - properties: - type: - const: container_file_citation - default: container_file_citation - title: Type - type: string - container_id: - title: Container Id - type: string - end_index: - title: End Index - type: integer - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - start_index: - title: Start Index - type: integer - required: - - container_id - - end_index - - file_id - - filename - - start_index - title: >- - OpenAIResponseAnnotationContainerFileCitation - type: object - OpenAIResponseAnnotationFileCitation: - description: >- - File citation annotation for referencing specific files in response content. - - - :param type: Annotation type identifier, always "file_citation" - - :param file_id: Unique identifier of the referenced file - - :param filename: Name of the referenced file - - :param index: Position index of the citation within the content - properties: - type: - const: file_citation - default: file_citation - title: Type - type: string - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - index: - title: Index - type: integer - required: - - file_id - - filename - - index - title: OpenAIResponseAnnotationFileCitation - type: object - OpenAIResponseAnnotationFilePath: - properties: - type: - const: file_path - default: file_path - title: Type - type: string - file_id: - title: File Id - type: string - index: - title: Index - type: integer - required: - - file_id - - index - title: OpenAIResponseAnnotationFilePath - type: object - OpenAIResponseContentPartRefusal: - description: >- - Refusal content within a streamed response part. - - - :param type: Content part type identifier, always "refusal" - - :param refusal: Refusal text supplied by the model - properties: - type: - const: refusal - default: refusal - title: Type - type: string - refusal: - title: Refusal - type: string - required: - - refusal - title: OpenAIResponseContentPartRefusal - type: object - OpenAIResponseError: - description: >- - Error details for failed OpenAI response requests. - - - :param code: Error code identifying the type of failure - - :param message: Human-readable error message describing the failure - properties: - code: - title: Code - type: string - message: - title: Message - type: string - required: - - code - - message - title: OpenAIResponseError - type: object - "OpenAIResponseInputFunctionToolCallOutput": - description: >- - This represents the output of a function call that gets passed back to - the model. - properties: - call_id: - title: Call Id - type: string - output: - title: Output - type: string - type: - const: function_call_output - default: function_call_output - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - status: - anyOf: - - type: string - - type: 'null' - title: Status - required: - - call_id - - output - title: >- - OpenAIResponseInputFunctionToolCallOutput - type: object - OpenAIResponseInputMessageContentImage: - description: >- - Image content for input messages in OpenAI response format. - - - :param detail: Level of detail for image processing, can be "low", "high", - or "auto" - - :param type: Content type identifier, always "input_image" - - :param image_url: (Optional) URL of the image content - properties: - detail: - anyOf: - - const: low - type: string - - const: high - type: string - - const: auto - type: string - default: auto - title: Detail - type: - const: input_image - default: input_image - title: Type - type: string - image_url: - anyOf: - - type: string - - type: 'null' - title: Image Url - title: OpenAIResponseInputMessageContentImage - type: object - OpenAIResponseInputMessageContentText: - description: >- - Text content for input messages in OpenAI response format. - - - :param text: The text content of the input message - - :param type: Content type identifier, always "input_text" - properties: - text: - title: Text - type: string - type: - const: input_text - default: input_text - title: Type - type: string - required: - - text - title: OpenAIResponseInputMessageContentText - type: object - OpenAIResponseInputToolFileSearch: - description: >- - File search tool configuration for OpenAI response inputs. - - - :param type: Tool type identifier, always "file_search" - - :param vector_store_ids: List of vector store identifiers to search within - - :param filters: (Optional) Additional filters to apply to the search - - :param max_num_results: (Optional) Maximum number of search results to - return (1-50) - - :param ranking_options: (Optional) Options for ranking and scoring search - results - properties: - type: - const: file_search - default: file_search - title: Type - type: string - vector_store_ids: - items: - type: string - title: Vector Store Ids - type: array - filters: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Filters - max_num_results: - anyOf: - - maximum: 50 - minimum: 1 - type: integer - - type: 'null' - default: 10 - title: Max Num Results - ranking_options: - anyOf: - - $ref: '#/$defs/SearchRankingOptions' - - type: 'null' - required: - - vector_store_ids - title: OpenAIResponseInputToolFileSearch - type: object - OpenAIResponseInputToolFunction: - description: >- - Function tool configuration for OpenAI response inputs. - - - :param type: Tool type identifier, always "function" - - :param name: Name of the function that can be called - - :param description: (Optional) Description of what the function does - - :param parameters: (Optional) JSON schema defining the function's parameters - - :param strict: (Optional) Whether to enforce strict parameter validation - properties: - type: - const: function - default: function - title: Type - type: string - name: - title: Name - type: string - description: - anyOf: - - type: string - - type: 'null' - title: Description - parameters: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Parameters - strict: - anyOf: - - type: boolean - - type: 'null' - title: Strict - required: - - name - - parameters - title: OpenAIResponseInputToolFunction - type: object - OpenAIResponseInputToolWebSearch: - description: >- - Web search tool configuration for OpenAI response inputs. - - - :param type: Web search tool type variant to use - - :param search_context_size: (Optional) Size of search context, must be - "low", "medium", or "high" - properties: - type: - anyOf: - - const: web_search - type: string - - const: web_search_preview - type: string - - const: web_search_preview_2025_03_11 - type: string - default: web_search - title: Type - search_context_size: - anyOf: - - pattern: ^low|medium|high$ - type: string - - type: 'null' - default: medium - title: Search Context Size - title: OpenAIResponseInputToolWebSearch - type: object - OpenAIResponseMCPApprovalRequest: - description: >- - A request for human approval of a tool invocation. - properties: - arguments: - title: Arguments - type: string - id: - title: Id - type: string - name: - title: Name - type: string - server_label: - title: Server Label - type: string - type: - const: mcp_approval_request - default: mcp_approval_request - title: Type - type: string - required: - - arguments - - id - - name - - server_label - title: OpenAIResponseMCPApprovalRequest - type: object - OpenAIResponseMCPApprovalResponse: - description: A response to an MCP approval request. - properties: - approval_request_id: - title: Approval Request Id - type: string - approve: - title: Approve - type: boolean - type: - const: mcp_approval_response - default: mcp_approval_response - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - reason: - anyOf: - - type: string - - type: 'null' - title: Reason - required: - - approval_request_id - - approve - title: OpenAIResponseMCPApprovalResponse - type: object - OpenAIResponseMessage: - description: >- - Corresponds to the various Message types in the Responses API. - - They are all under one type because the Responses API gives them all - - the same "type" value, and there is no way to tell them apart in certain - - scenarios. - properties: - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - input_image: >- - #/$defs/OpenAIResponseInputMessageContentImage - input_text: >- - #/$defs/OpenAIResponseInputMessageContentText - propertyName: type - oneOf: - - $ref: >- - #/$defs/OpenAIResponseInputMessageContentText - - $ref: >- - #/$defs/OpenAIResponseInputMessageContentImage - type: array - - items: - discriminator: - mapping: - output_text: >- - #/$defs/OpenAIResponseOutputMessageContentOutputText - refusal: '#/$defs/OpenAIResponseContentPartRefusal' - propertyName: type - oneOf: - - $ref: >- - #/$defs/OpenAIResponseOutputMessageContentOutputText - - $ref: '#/$defs/OpenAIResponseContentPartRefusal' - type: array - title: Content - role: - anyOf: - - const: system - type: string - - const: developer - type: string - - const: user - type: string - - const: assistant - type: string - title: Role - type: - const: message - default: message - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - status: - anyOf: - - type: string - - type: 'null' - title: Status - required: - - content - - role - title: OpenAIResponseMessage - type: object - OpenAIResponseObjectWithInput: - description: >- - OpenAI response object extended with input context information. - - - :param input: List of input items that led to this response - properties: - created_at: - title: Created At - type: integer - error: - anyOf: - - $ref: '#/$defs/OpenAIResponseError' - - type: 'null' - id: - title: Id - type: string - model: - title: Model - type: string - object: - const: response - default: response - title: Object - type: string - output: - items: - discriminator: - mapping: - file_search_call: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - function_call: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - mcp_list_tools: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - message: '#/$defs/OpenAIResponseMessage' - web_search_call: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - propertyName: type - oneOf: - - $ref: '#/$defs/OpenAIResponseMessage' - - $ref: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - - $ref: '#/$defs/OpenAIResponseMCPApprovalRequest' - title: Output - type: array - parallel_tool_calls: - default: false - title: Parallel Tool Calls - type: boolean - previous_response_id: - anyOf: - - type: string - - type: 'null' - title: Previous Response Id - status: - title: Status - type: string - temperature: - anyOf: - - type: number - - type: 'null' - title: Temperature - text: - $ref: '#/$defs/OpenAIResponseText' - default: - format: - type: text - top_p: - anyOf: - - type: number - - type: 'null' - title: Top P - tools: - anyOf: - - items: - discriminator: - mapping: - file_search: >- - #/$defs/OpenAIResponseInputToolFileSearch - function: '#/$defs/OpenAIResponseInputToolFunction' - mcp: '#/$defs/OpenAIResponseToolMCP' - web_search: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' - propertyName: type - oneOf: - - $ref: '#/$defs/OpenAIResponseInputToolWebSearch' - - $ref: >- - #/$defs/OpenAIResponseInputToolFileSearch - - $ref: '#/$defs/OpenAIResponseInputToolFunction' - - $ref: '#/$defs/OpenAIResponseToolMCP' - type: array - - type: 'null' - title: Tools - truncation: - anyOf: - - type: string - - type: 'null' - title: Truncation - usage: - anyOf: - - $ref: '#/$defs/OpenAIResponseUsage' - - type: 'null' - instructions: - anyOf: - - type: string - - type: 'null' - title: Instructions - input: - items: - anyOf: - - discriminator: - mapping: - file_search_call: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - function_call: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - mcp_list_tools: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - message: '#/$defs/OpenAIResponseMessage' - web_search_call: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - propertyName: type - oneOf: - - $ref: '#/$defs/OpenAIResponseMessage' - - $ref: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - - $ref: '#/$defs/OpenAIResponseMCPApprovalRequest' - - $ref: >- - #/$defs/OpenAIResponseInputFunctionToolCallOutput - - $ref: >- - #/$defs/OpenAIResponseMCPApprovalResponse - - $ref: '#/$defs/OpenAIResponseMessage' - title: Input - type: array - required: - - created_at - - id - - model - - output - - status - - input - title: OpenAIResponseObjectWithInput - type: object - "OpenAIResponseOutputMessageContentOutputText": - properties: - text: - title: Text - type: string - type: - const: output_text - default: output_text - title: Type - type: string - annotations: - items: - discriminator: - mapping: - container_file_citation: >- - #/$defs/OpenAIResponseAnnotationContainerFileCitation - file_citation: >- - #/$defs/OpenAIResponseAnnotationFileCitation - file_path: '#/$defs/OpenAIResponseAnnotationFilePath' - url_citation: '#/$defs/OpenAIResponseAnnotationCitation' - propertyName: type - oneOf: - - $ref: >- - #/$defs/OpenAIResponseAnnotationFileCitation - - $ref: '#/$defs/OpenAIResponseAnnotationCitation' - - $ref: >- - #/$defs/OpenAIResponseAnnotationContainerFileCitation - - $ref: '#/$defs/OpenAIResponseAnnotationFilePath' - title: Annotations - type: array - required: - - text - title: >- - OpenAIResponseOutputMessageContentOutputText - type: object - "OpenAIResponseOutputMessageFileSearchToolCall": - description: >- - File search tool call output message for OpenAI responses. - - - :param id: Unique identifier for this tool call - - :param queries: List of search queries executed - - :param status: Current status of the file search operation - - :param type: Tool call type identifier, always "file_search_call" - - :param results: (Optional) Search results returned by the file search - operation - properties: - id: - title: Id - type: string - queries: - items: - type: string - title: Queries - type: array - status: - title: Status - type: string - type: - const: file_search_call - default: file_search_call - title: Type - type: string - results: - anyOf: - - items: - $ref: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCallResults - type: array - - type: 'null' - title: Results - required: - - id - - queries - - status - title: >- - OpenAIResponseOutputMessageFileSearchToolCall - type: object - "OpenAIResponseOutputMessageFileSearchToolCallResults": - description: >- - Search results returned by the file search operation. - - - :param attributes: (Optional) Key-value attributes associated with the - file - - :param file_id: Unique identifier of the file containing the result - - :param filename: Name of the file containing the result - - :param score: Relevance score for this search result (between 0 and 1) - - :param text: Text content of the search result - properties: - attributes: - additionalProperties: true - title: Attributes - type: object - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - score: - title: Score - type: number - text: - title: Text - type: string - required: - - attributes - - file_id - - filename - - score - - text - title: >- - OpenAIResponseOutputMessageFileSearchToolCallResults - type: object - "OpenAIResponseOutputMessageFunctionToolCall": - description: >- - Function tool call output message for OpenAI responses. - - - :param call_id: Unique identifier for the function call - - :param name: Name of the function being called - - :param arguments: JSON string containing the function arguments - - :param type: Tool call type identifier, always "function_call" - - :param id: (Optional) Additional identifier for the tool call - - :param status: (Optional) Current status of the function call execution - properties: - call_id: - title: Call Id - type: string - name: - title: Name - type: string - arguments: - title: Arguments - type: string - type: - const: function_call - default: function_call - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - status: - anyOf: - - type: string - - type: 'null' - title: Status - required: - - call_id - - name - - arguments - title: >- - OpenAIResponseOutputMessageFunctionToolCall - type: object - OpenAIResponseOutputMessageMCPCall: - description: >- - Model Context Protocol (MCP) call output message for OpenAI responses. - - - :param id: Unique identifier for this MCP call - - :param type: Tool call type identifier, always "mcp_call" - - :param arguments: JSON string containing the MCP call arguments - - :param name: Name of the MCP method being called - - :param server_label: Label identifying the MCP server handling the call - - :param error: (Optional) Error message if the MCP call failed - - :param output: (Optional) Output result from the successful MCP call - properties: - id: - title: Id - type: string - type: - const: mcp_call - default: mcp_call - title: Type - type: string - arguments: - title: Arguments - type: string - name: - title: Name - type: string - server_label: - title: Server Label - type: string - error: - anyOf: - - type: string - - type: 'null' - title: Error - output: - anyOf: - - type: string - - type: 'null' - title: Output - required: - - id - - arguments - - name - - server_label - title: OpenAIResponseOutputMessageMCPCall - type: object - OpenAIResponseOutputMessageMCPListTools: - description: >- - MCP list tools output message containing available tools from an MCP server. - - - :param id: Unique identifier for this MCP list tools operation - - :param type: Tool call type identifier, always "mcp_list_tools" - - :param server_label: Label identifying the MCP server providing the tools - - :param tools: List of available tools provided by the MCP server - properties: - id: - title: Id - type: string - type: - const: mcp_list_tools - default: mcp_list_tools - title: Type - type: string - server_label: - title: Server Label - type: string - tools: - items: - $ref: '#/$defs/MCPListToolsTool' - title: Tools - type: array - required: - - id - - server_label - - tools - title: OpenAIResponseOutputMessageMCPListTools - type: object - "OpenAIResponseOutputMessageWebSearchToolCall": - description: >- - Web search tool call output message for OpenAI responses. - - - :param id: Unique identifier for this tool call - - :param status: Current status of the web search operation - - :param type: Tool call type identifier, always "web_search_call" - properties: - id: - title: Id - type: string - status: - title: Status - type: string - type: - const: web_search_call - default: web_search_call - title: Type - type: string - required: - - id - - status - title: >- - OpenAIResponseOutputMessageWebSearchToolCall - type: object - OpenAIResponseText: - description: >- - Text response configuration for OpenAI responses. - - - :param format: (Optional) Text format configuration specifying output - format requirements - properties: - format: - anyOf: - - $ref: '#/$defs/OpenAIResponseTextFormat' - - type: 'null' - title: OpenAIResponseText - type: object - OpenAIResponseTextFormat: - description: >- - Configuration for Responses API text format. - - - :param type: Must be "text", "json_schema", or "json_object" to identify - the format type - - :param name: The name of the response format. Only used for json_schema. - - :param schema: The JSON schema the response should conform to. In a Python - SDK, this is often a `pydantic` model. Only used for json_schema. - - :param description: (Optional) A description of the response format. Only - used for json_schema. - - :param strict: (Optional) Whether to strictly enforce the JSON schema. - If true, the response must match the schema exactly. Only used for json_schema. - properties: - type: - anyOf: - - const: text - type: string - - const: json_schema - type: string - - const: json_object - type: string - title: Type - name: - anyOf: - - type: string - - type: 'null' - title: Name - schema: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Schema - description: - anyOf: - - type: string - - type: 'null' - title: Description - strict: - anyOf: - - type: boolean - - type: 'null' - title: Strict - title: OpenAIResponseTextFormat - type: object - OpenAIResponseToolMCP: - description: >- - Model Context Protocol (MCP) tool configuration for OpenAI response object. - - - :param type: Tool type identifier, always "mcp" - - :param server_label: Label to identify this MCP server - - :param allowed_tools: (Optional) Restriction on which tools can be used - from this server - properties: - type: - const: mcp - default: mcp - title: Type - type: string - server_label: - title: Server Label - type: string - allowed_tools: - anyOf: - - items: - type: string - type: array - - $ref: '#/$defs/AllowedToolsFilter' - - type: 'null' - title: Allowed Tools - required: - - server_label - title: OpenAIResponseToolMCP - type: object - OpenAIResponseUsage: - description: >- - Usage information for OpenAI response. - - - :param input_tokens: Number of tokens in the input - - :param output_tokens: Number of tokens in the output - - :param total_tokens: Total tokens used (input + output) - - :param input_tokens_details: Detailed breakdown of input token usage - - :param output_tokens_details: Detailed breakdown of output token usage - properties: - input_tokens: - title: Input Tokens - type: integer - output_tokens: - title: Output Tokens - type: integer - total_tokens: - title: Total Tokens - type: integer - input_tokens_details: - anyOf: - - $ref: >- - #/$defs/OpenAIResponseUsageInputTokensDetails - - type: 'null' - output_tokens_details: - anyOf: - - $ref: >- - #/$defs/OpenAIResponseUsageOutputTokensDetails - - type: 'null' - required: - - input_tokens - - output_tokens - - total_tokens - title: OpenAIResponseUsage - type: object - OpenAIResponseUsageInputTokensDetails: - description: >- - Token details for input tokens in OpenAI response usage. - - - :param cached_tokens: Number of tokens retrieved from cache - properties: - cached_tokens: - anyOf: - - type: integer - - type: 'null' - title: Cached Tokens - title: OpenAIResponseUsageInputTokensDetails - type: object - OpenAIResponseUsageOutputTokensDetails: - description: >- - Token details for output tokens in OpenAI response usage. - - - :param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models) - properties: - reasoning_tokens: - anyOf: - - type: integer - - type: 'null' - title: Reasoning Tokens - title: OpenAIResponseUsageOutputTokensDetails - type: object - SearchRankingOptions: - description: >- - Options for ranking and filtering search results. - - - :param ranker: (Optional) Name of the ranking algorithm to use - - :param score_threshold: (Optional) Minimum relevance score threshold for - results - properties: - ranker: - anyOf: - - type: string - - type: 'null' - title: Ranker - score_threshold: - anyOf: - - type: number - - type: 'null' - default: 0.0 - title: Score Threshold - title: SearchRankingOptions - type: object - description: >- - Paginated list of OpenAI response objects with navigation metadata. - - - :param data: List of response objects with their input context - - :param has_more: Whether there are more results available beyond this page - - :param first_id: Identifier of the first item in this page - - :param last_id: Identifier of the last item in this page - - :param object: Object type identifier, always "list" - properties: - data: - items: - $ref: '#/$defs/OpenAIResponseObjectWithInput' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIChatCompletionResponse - type: object - OpenAIAssistantMessageParam: - description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - type: array - title: Content - nullable: true - name: - title: Name - type: string - nullable: true - tool_calls: - title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array - nullable: true - title: OpenAIAssistantMessageParam - type: object - OpenAIChoice: - description: A choice from an OpenAI-compatible chat completion response. - properties: - message: - discriminator: - mapping: - assistant: '#/$defs/OpenAIAssistantMessageParam' - developer: '#/$defs/OpenAIDeveloperMessageParam' - system: '#/$defs/OpenAISystemMessageParam' - tool: '#/$defs/OpenAIToolMessageParam' - user: '#/$defs/OpenAIUserMessageParam' - propertyName: role - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Message - finish_reason: - title: Finish Reason - type: string - index: - title: Index - type: integer - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - nullable: true - required: - - message - - finish_reason - - index - title: OpenAIChoice - type: object - OpenAIChoiceLogprobs: - description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. - properties: - content: - title: Content - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array - nullable: true - refusal: - title: Refusal - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array - nullable: true - title: OpenAIChoiceLogprobs - type: object - OpenAICompletionWithInputMessages: - properties: - id: - title: Id - type: string - choices: - items: - $ref: '#/components/schemas/OpenAIChoice' - title: Choices - type: array - object: - const: chat.completion - default: chat.completion - title: Object - type: string - created: - title: Created - type: integer - model: - title: Model - type: string - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - nullable: true - input_messages: - items: - discriminator: - mapping: - assistant: '#/$defs/OpenAIAssistantMessageParam' - developer: '#/$defs/OpenAIDeveloperMessageParam' - system: '#/$defs/OpenAISystemMessageParam' - tool: '#/$defs/OpenAIToolMessageParam' - user: '#/$defs/OpenAIUserMessageParam' - propertyName: role - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Input Messages - type: array - required: - - id - - choices - - created - - model - - input_messages - title: OpenAICompletionWithInputMessages - type: object - OpenAIUserMessageParam: - description: A message from the user in an OpenAI-compatible chat completion request. - properties: - role: - const: user - default: user - title: Role - type: string - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - file: '#/$defs/OpenAIFile' - image_url: '#/$defs/OpenAIChatCompletionContentPartImageParam' - text: '#/$defs/OpenAIChatCompletionContentPartTextParam' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - - $ref: '#/components/schemas/OpenAIFile' - type: array - title: Content - name: - title: Name - type: string - nullable: true - required: - - content - title: OpenAIUserMessageParam - type: object - Checkpoint: - description: Checkpoint created during training runs. - properties: - identifier: - title: Identifier - type: string - created_at: - format: date-time - title: Created At - type: string - epoch: - title: Epoch - type: integer - post_training_job_id: - title: Post Training Job Id - type: string - path: - title: Path - type: string - training_metrics: - $ref: '#/components/schemas/PostTrainingMetric' - nullable: true - required: - - identifier - - created_at - - epoch - - post_training_job_id - - path - title: Checkpoint - type: object - PostTrainingJobArtifactsResponse: - description: Artifacts of a finetuning job. - properties: - job_uuid: - title: Job Uuid - type: string - checkpoints: - items: - $ref: '#/components/schemas/Checkpoint' - title: Checkpoints - type: array - required: - - job_uuid - title: PostTrainingJobArtifactsResponse - type: object - PostTrainingJobStatusResponse: - description: Status of a finetuning job. - properties: - job_uuid: - title: Job Uuid - type: string - status: - $ref: '#/components/schemas/JobStatus' - scheduled_at: - title: Scheduled At - format: date-time - type: string - nullable: true - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - resources_allocated: - title: Resources Allocated - additionalProperties: true - type: object - nullable: true - checkpoints: - items: - $ref: '#/components/schemas/Checkpoint' - title: Checkpoints - type: array - required: - - job_uuid - - status - title: PostTrainingJobStatusResponse - type: object - ScoringFn: - description: A scoring function resource for evaluating model outputs. - properties: - identifier: - description: Unique identifier for this resource in llama stack - title: Identifier - type: string - provider_resource_id: - description: Unique identifier for this resource in the provider - title: Provider Resource Id - type: string - nullable: true - provider_id: - description: ID of the provider that owns this resource - title: Provider Id - type: string - type: - const: scoring_function - default: scoring_function - title: Type - type: string - description: - title: Description - type: string - nullable: true - metadata: - additionalProperties: true - description: Any additional metadata for this definition - title: Metadata - type: object - return_type: - description: The return type of the deterministic function - discriminator: - mapping: - agent_turn_input: '#/$defs/AgentTurnInputType' - array: '#/$defs/ArrayType' - boolean: '#/$defs/BooleanType' - chat_completion_input: '#/$defs/ChatCompletionInputType' - completion_input: '#/$defs/CompletionInputType' - json: '#/$defs/JsonType' - number: '#/$defs/NumberType' - object: '#/$defs/ObjectType' - string: '#/$defs/StringType' - union: '#/$defs/UnionType' - propertyName: type - oneOf: - - $ref: '#/components/schemas/StringType' - - $ref: '#/components/schemas/NumberType' - - $ref: '#/components/schemas/BooleanType' - - $ref: '#/components/schemas/ArrayType' - - $ref: '#/components/schemas/ObjectType' - - $ref: '#/components/schemas/JsonType' - - $ref: '#/components/schemas/UnionType' - - $ref: '#/components/schemas/ChatCompletionInputType' - - $ref: '#/components/schemas/CompletionInputType' - - $ref: '#/components/schemas/AgentTurnInputType' - title: Return Type - params: - description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval - title: Params - discriminator: - mapping: - basic: '#/$defs/BasicScoringFnParams' - llm_as_judge: '#/$defs/LLMAsJudgeScoringFnParams' - regex_parser: '#/$defs/RegexParserScoringFnParams' - propertyName: type - oneOf: - - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' - - $ref: '#/components/schemas/RegexParserScoringFnParams' - - $ref: '#/components/schemas/BasicScoringFnParams' - nullable: true - required: - - identifier - - provider_id - - return_type - title: ScoringFn - type: object - ScoreRequest: - type: object - ScoreResponse: - $defs: - ScoringResult: - description: >- - A scoring result for a single row. - - - :param score_rows: The scoring result for each row. Each row is a map - of column name to value. - - :param aggregated_results: Map of metric name to aggregated value - properties: - score_rows: - items: - additionalProperties: true - type: object - title: Score Rows - type: array - aggregated_results: - additionalProperties: true - title: Aggregated Results - type: object - required: - - score_rows - - aggregated_results - title: ScoringResult - type: object - description: >- - The response from scoring. - - - :param results: A map of scoring function name to ScoringResult. - properties: - results: - additionalProperties: - $ref: '#/$defs/ScoringResult' - title: Results - type: object - required: - - results - title: ScoreResponse - type: object - ScoreBatchRequest: - type: object - ScoreBatchResponse: - $defs: - ScoringResult: - description: >- - A scoring result for a single row. - - - :param score_rows: The scoring result for each row. Each row is a map - of column name to value. - - :param aggregated_results: Map of metric name to aggregated value - properties: - score_rows: - items: - additionalProperties: true - type: object - title: Score Rows - type: array - aggregated_results: - additionalProperties: true - title: Aggregated Results - type: object - required: - - score_rows - - aggregated_results - title: ScoringResult - type: object - description: >- - Response from batch scoring operations on datasets. - - - :param dataset_id: (Optional) The identifier of the dataset that was scored - - :param results: A map of scoring function name to ScoringResult - properties: - dataset_id: - anyOf: - - type: string - - type: 'null' - title: Dataset Id - results: - additionalProperties: - $ref: '#/$defs/ScoringResult' - title: Results - type: object - required: - - results - title: ScoreBatchResponse - type: object - ListShieldsResponse: - $defs: - Shield: - description: >- - A safety shield resource that can be used to check content. - - - :param params: (Optional) Configuration parameters for the shield - - :param type: The resource type, always shield - properties: - identifier: - description: >- - Unique identifier for this resource in llama stack - title: Identifier - type: string - provider_resource_id: - anyOf: - - type: string - - type: 'null' - description: >- - Unique identifier for this resource in the provider - title: Provider Resource Id - provider_id: - description: >- - ID of the provider that owns this resource - title: Provider Id - type: string - type: - const: shield - default: shield - title: Type - type: string - params: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Params - required: - - identifier - - provider_id - title: Shield - type: object - properties: - data: - items: - $ref: '#/$defs/Shield' - title: Data - type: array - required: - - data - title: ListShieldsResponse - type: object - RegisterShieldRequest: - type: object - properties: - shield_id: - type: string - description: >- - The identifier of the shield to register. - provider_shield_id: - type: string - description: >- - The identifier of the shield in the provider. - provider_id: - type: string - description: The identifier of the provider. - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The parameters of the shield. - additionalProperties: false - required: - - shield_id - title: RegisterShieldRequest - InvokeToolRequest: - type: object - properties: - tool_name: - type: string - description: The name of the tool to invoke. - kwargs: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - A dictionary of arguments to pass to the tool. - additionalProperties: false - required: - - tool_name - - kwargs - title: InvokeToolRequest - ImageContentItem: - type: object - properties: - type: - type: string - const: image - default: image - description: >- - Discriminator type of the content item. Always "image" - image: - type: object - properties: - url: - $ref: '#/components/schemas/URL' - description: >- - A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - data: - type: string - contentEncoding: base64 - description: base64 encoded image data as string - additionalProperties: false - description: >- - Image as a base64 encoded string or an URL - additionalProperties: false - required: - - type - - image - title: ImageContentItem - description: A image content item - InterleavedContent: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - InterleavedContentItem: - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - discriminator: - propertyName: type - mapping: - image: '#/components/schemas/ImageContentItem' - text: '#/components/schemas/TextContentItem' - TextContentItem: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Discriminator type of the content item. Always "text" - text: - type: string - description: Text content - additionalProperties: false - required: - - type - - text - title: TextContentItem - description: A text content item - ToolInvocationResult: - type: object - properties: - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) The output content from the tool execution - error_message: - type: string - description: >- - (Optional) Error message if the tool execution failed - error_code: - type: integer - description: >- - (Optional) Numeric error code if the tool execution failed - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool execution - additionalProperties: false - title: ToolInvocationResult - description: Result of a tool invocation. - URL: - type: object - properties: - uri: - type: string - description: The URL string pointing to the resource - additionalProperties: false - required: - - uri - title: URL - description: A URL reference to external content. - ToolDef: - type: object - properties: - toolgroup_id: - type: string - description: >- - (Optional) ID of the tool group this tool belongs to - name: - type: string - description: Name of the tool - description: - type: string - description: >- - (Optional) Human-readable description of what the tool does - input_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON Schema for tool inputs (MCP inputSchema) - output_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON Schema for tool outputs (MCP outputSchema) - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool - additionalProperties: false - required: - - name - title: ToolDef - description: >- - Tool definition used in runtime contexts. - ListToolDefsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ToolDef' - description: List of tool definitions - additionalProperties: false - required: - - data - title: ListToolDefsResponse - description: >- - Response containing a list of tool definitions. - RAGDocument: - type: object - properties: - document_id: - type: string - description: The unique identifier for the document. - content: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - - $ref: '#/components/schemas/URL' - description: The content of the document. - mime_type: - type: string - description: The MIME type of the document. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Additional metadata for the document. - additionalProperties: false - required: - - document_id - - content - - metadata - title: RAGDocument - description: >- - A document to be used for document ingestion in the RAG Tool. - InsertRequest: - type: object - properties: - documents: - type: array - items: - $ref: '#/components/schemas/RAGDocument' - description: >- - List of documents to index in the RAG system - vector_store_id: - type: string - description: >- - ID of the vector database to store the document embeddings - chunk_size_in_tokens: - type: integer - description: >- - (Optional) Size in tokens for document chunking during indexing - additionalProperties: false - required: - - documents - - vector_store_id - - chunk_size_in_tokens - title: InsertRequest - DefaultRAGQueryGeneratorConfig: - type: object - properties: - type: - type: string - const: default - default: default - description: >- - Type of query generator, always 'default' - separator: - type: string - default: ' ' - description: >- - String separator used to join query terms - additionalProperties: false - required: - - type - - separator - title: DefaultRAGQueryGeneratorConfig - description: >- - Configuration for the default RAG query generator. - LLMRAGQueryGeneratorConfig: - type: object - properties: - type: - type: string - const: llm - default: llm - description: Type of query generator, always 'llm' - model: - type: string - description: >- - Name of the language model to use for query generation - template: - type: string - description: >- - Template string for formatting the query generation prompt - additionalProperties: false - required: - - type - - model - - template - title: LLMRAGQueryGeneratorConfig - description: >- - Configuration for the LLM-based RAG query generator. - RAGQueryConfig: - type: object - properties: - query_generator_config: - oneOf: - - $ref: '#/components/schemas/DefaultRAGQueryGeneratorConfig' - - $ref: '#/components/schemas/LLMRAGQueryGeneratorConfig' - discriminator: - propertyName: type - mapping: - default: '#/components/schemas/DefaultRAGQueryGeneratorConfig' - llm: '#/components/schemas/LLMRAGQueryGeneratorConfig' - description: Configuration for the query generator. - max_tokens_in_context: - type: integer - default: 4096 - description: Maximum number of tokens in the context. - max_chunks: - type: integer - default: 5 - description: Maximum number of chunks to retrieve. - chunk_template: - type: string - default: > - Result {index} - - - :param params: (Optional) Configuration parameters for the shield - - :param type: The resource type, always shield - properties: - identifier: - description: >- - Unique identifier for this resource in llama stack - title: Identifier - type: string - provider_resource_id: - anyOf: - - type: string - - type: 'null' - description: >- - Unique identifier for this resource in the provider - title: Provider Resource Id - provider_id: - description: >- - ID of the provider that owns this resource - title: Provider Id - type: string - type: - const: shield - default: shield - title: Type - type: string - params: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Params - required: - - identifier - - provider_id - title: Shield - type: object - SyntheticDataGenerateRequest: - type: object - SyntheticDataGenerationResponse: - description: >- - Response from the synthetic data generation. Batch of (prompt, response, score) - tuples that pass the threshold. - - - :param synthetic_data: List of generated synthetic data samples that passed - the filtering criteria - - :param statistics: (Optional) Statistical information about the generation - process and filtering results - properties: - synthetic_data: - items: - additionalProperties: true - type: object - title: Synthetic Data - type: array - statistics: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Statistics - required: - - synthetic_data - title: SyntheticDataGenerationResponse - type: object - InvokeToolRequest: - type: object - ToolInvocationResult: - $defs: - ImageContentItem: - description: >- - A image content item - - - :param type: Discriminator type of the content item. Always "image" - - :param image: Image as a base64 encoded string or an URL - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/$defs/_URLOrData' - required: - - image - title: ImageContentItem - type: object - TextContentItem: - description: >- - A text content item - - - :param type: Discriminator type of the content item. Always "text" - - :param text: Text content - properties: - type: - const: text - default: text - title: Type - type: string - text: - title: Text - type: string - required: - - text - title: TextContentItem - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - _URLOrData: - description: >- - A URL or a base64 encoded string - - - :param url: A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - - :param data: base64 encoded image data as string - properties: - url: - anyOf: - - $ref: '#/$defs/URL' - - type: 'null' - data: - anyOf: - - type: string - - type: 'null' - contentEncoding: base64 - title: Data - title: _URLOrData - type: object - description: >- - Result of a tool invocation. - - - :param content: (Optional) The output content from the tool execution - - :param error_message: (Optional) Error message if the tool execution failed - - :param error_code: (Optional) Numeric error code if the tool execution failed - - :param metadata: (Optional) Additional metadata about the tool execution - properties: - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - type: 'null' - title: Content - error_message: - anyOf: - - type: string - - type: 'null' - title: Error Message - error_code: - anyOf: - - type: integer - - type: 'null' - title: Error Code - metadata: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Metadata - title: ToolInvocationResult - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - ListToolDefsResponse: - description: Response containing a list of tool definitions. - properties: - data: - items: - $ref: '#/components/schemas/ToolDef' - title: Data - type: array - required: - - data - title: ListToolDefsResponse - type: object - VectorStoreDeleteResponse: - description: Response from deleting a vector store. - properties: - id: - title: Id - type: string - object: - default: vector_store.deleted - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: VectorStoreDeleteResponse - type: object - VectorStoreFileContentsResponse: - description: Response from retrieving the contents of a vector store file. - properties: - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - attributes: - additionalProperties: true - title: Attributes - type: object - content: - items: - $ref: '#/components/schemas/VectorStoreContent' - title: Content - type: array - required: - - file_id - - filename - - attributes - - content - title: VectorStoreFileContentsResponse - type: object - VectorStoreFileDeleteResponse: - description: Response from deleting a vector store file. - properties: - id: - title: Id - type: string - object: - default: vector_store.file.deleted - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: VectorStoreFileDeleteResponse - type: object - VectorStoreFilesListInBatchResponse: - description: Response from listing files in a vector store file batch. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreFileObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreFilesListInBatchResponse - type: object - VectorStoreListFilesResponse: - description: Response from listing files in a vector store. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreFileObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreListFilesResponse - type: object - VectorStoreListResponse: - description: Response from listing vector stores. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreListResponse - type: object - OpenAIResponseMessage: - description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - properties: - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - input_file: '#/$defs/OpenAIResponseInputMessageContentFile' - input_image: '#/$defs/OpenAIResponseInputMessageContentImage' - input_text: '#/$defs/OpenAIResponseInputMessageContentText' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' - type: array - - items: - discriminator: - mapping: - output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' - refusal: '#/$defs/OpenAIResponseContentPartRefusal' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' - - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' - type: array - title: Content - role: - anyOf: - - const: system - type: string - - const: developer - type: string - - const: user - type: string - - const: assistant - type: string - title: Role - type: - const: message - default: message - title: Type - type: string - id: - title: Id - type: string - nullable: true - status: - title: Status - type: string - nullable: true - required: - - content - - role - title: OpenAIResponseMessage - type: object - OpenAIResponseObjectWithInput: - description: OpenAI response object extended with input context information. - properties: - created_at: - title: Created At - type: integer - error: - $ref: '#/components/schemas/OpenAIResponseError' - nullable: true - id: - title: Id - type: string - model: - title: Model - type: string - required: - - session_id - title: AgentSessionCreateResponse - description: >- - Response returned when creating a new agent session. - CompletionMessage: - type: object - properties: - role: - type: string - const: assistant - default: assistant - description: >- - Must be "assistant" to identify this as the model's response - content: - $ref: '#/components/schemas/InterleavedContent' - description: The content of the model's response - stop_reason: - type: string - enum: - - end_of_turn - - end_of_message - - out_of_tokens - description: >- - Reason why the model stopped generating. Options are: - `StopReason.end_of_turn`: - The model finished generating the entire response. - `StopReason.end_of_message`: - The model finished generating but generated a partial response -- usually, - a tool call. The user may call the tool and continue the conversation - with the tool's response. - `StopReason.out_of_tokens`: The model ran - out of token budget. - tool_calls: - type: array - items: - $ref: '#/components/schemas/ToolCall' - description: >- - List of tool calls. Each tool call is a ToolCall object. - additionalProperties: false - required: - - role - - content - - stop_reason - title: CompletionMessage - description: >- - A message containing the model's (assistant) response in a chat conversation. - InferenceStep: - type: object - Session: - $defs: - Attachment: - description: >- - An attachment to an agent turn. - - - :param content: The content of the attachment. - - :param mime_type: The MIME type of the attachment. - properties: - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - $ref: '#/$defs/URL' - title: Content - mime_type: - title: Mime Type - type: string - required: - - content - - mime_type - title: Attachment - type: object - BuiltinTool: - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - type: string - CompletionMessage: - description: >- - A message containing the model's (assistant) response in a chat conversation. - - - :param role: Must be "assistant" to identify this as the model's response - - :param content: The content of the model's response - - :param stop_reason: Reason why the model stopped generating. Options are: - - `StopReason.end_of_turn`: The model finished generating the entire - response. - - `StopReason.end_of_message`: The model finished generating but generated - a partial response -- usually, a tool call. The user may call the tool - and continue the conversation with the tool's response. - - `StopReason.out_of_tokens`: The model ran out of token budget. - :param tool_calls: List of tool calls. Each tool call is a ToolCall object. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - stop_reason: - $ref: '#/$defs/StopReason' - tool_calls: - anyOf: - - items: - $ref: '#/$defs/ToolCall' - type: array - - type: 'null' - title: Tool Calls - required: - - content - - stop_reason - title: CompletionMessage - type: object - ImageContentItem: - description: >- - A image content item - - - :param type: Discriminator type of the content item. Always "image" - - :param image: Image as a base64 encoded string or an URL - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/$defs/_URLOrData' - required: - - image - title: ImageContentItem - type: object - InferenceStep: - description: >- - An inference step in an agent turn. - - - :param model_response: The response from the LLM. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: inference - default: inference - title: Step Type - type: string - model_response: - $ref: '#/$defs/CompletionMessage' - required: - - turn_id - - step_id - - model_response - title: InferenceStep - type: object - MemoryRetrievalStep: - description: >- - A memory retrieval step in an agent turn. - - - :param vector_store_ids: The IDs of the vector databases to retrieve context - from. - - :param inserted_context: The context retrieved from the vector databases. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: memory_retrieval - default: memory_retrieval - title: Step Type - type: string - vector_store_ids: - title: Vector Store Ids - type: string - inserted_context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Inserted Context - required: - - turn_id - - step_id - - vector_store_ids - - inserted_context - title: MemoryRetrievalStep - type: object - SafetyViolation: - description: >- - Details of a safety violation detected by content moderation. - - - :param violation_level: Severity level of the violation - - :param user_message: (Optional) Message to convey to the user about the - violation - - :param metadata: Additional metadata including specific violation codes - for debugging and telemetry - properties: - violation_level: - $ref: '#/$defs/ViolationLevel' - user_message: - anyOf: - - type: string - - type: 'null' - title: User Message - metadata: - additionalProperties: true - title: Metadata - type: object - required: - - violation_level - title: SafetyViolation - type: object - ShieldCallStep: - description: >- - A shield call step in an agent turn. - - - :param violation: The violation from the shield call. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: shield_call - default: shield_call - title: Step Type - type: string - violation: - anyOf: - - $ref: '#/$defs/SafetyViolation' - - type: 'null' - required: - - turn_id - - step_id - - violation - title: ShieldCallStep - type: object - StopReason: - enum: - - end_of_turn - - end_of_message - - out_of_tokens - title: StopReason - type: string - TextContentItem: - description: >- - A text content item - - - :param type: Discriminator type of the content item. Always "text" - - :param text: Text content - properties: - type: - const: text - default: text - title: Type - type: string - text: - title: Text - type: string - required: - - text - title: TextContentItem - type: object - ToolCall: - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - arguments: - title: Arguments - type: string - required: - - call_id - - tool_name - - arguments - title: ToolCall - type: object - ToolExecutionStep: - description: >- - A tool execution step in an agent turn. - - - :param tool_calls: The tool calls to execute. - - :param tool_responses: The tool responses from the tool calls. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: tool_execution - default: tool_execution - title: Step Type - type: string - tool_calls: - items: - $ref: '#/$defs/ToolCall' - title: Tool Calls - type: array - tool_responses: - items: - $ref: '#/$defs/ToolResponse' - title: Tool Responses - type: array - required: - - turn_id - - step_id - - tool_calls - - tool_responses - title: ToolExecutionStep - type: object - ToolResponse: - description: >- - Response from a tool invocation. - - - :param call_id: Unique identifier for the tool call this response is for - - :param tool_name: Name of the tool that was invoked - - :param content: The response content from the tool - - :param metadata: (Optional) Additional metadata about the tool response - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - metadata: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Metadata - required: - - call_id - - tool_name - - content - title: ToolResponse - type: object - ToolResponseMessage: - description: >- - A message representing the result of a tool invocation. - - - :param role: Must be "tool" to identify this as a tool response - - :param call_id: Unique identifier for the tool call this response is for - - :param content: The response content from the tool - properties: - role: - const: tool - default: tool - title: Role - type: string - call_id: - title: Call Id - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - required: - - call_id - - content - title: ToolResponseMessage - type: object - Turn: - description: >- - A single turn in an interaction with an Agentic System. - - - :param turn_id: Unique identifier for the turn within a session - - :param session_id: Unique identifier for the conversation session - - :param input_messages: List of messages that initiated this turn - - :param steps: Ordered list of processing steps executed during this turn - - :param output_message: The model's generated response containing content - and metadata - - :param output_attachments: (Optional) Files or media attached to the agent's - response - - :param started_at: Timestamp when the turn began - - :param completed_at: (Optional) Timestamp when the turn finished, if completed - properties: - turn_id: - title: Turn Id - type: string - session_id: - title: Session Id - type: string - input_messages: - items: - anyOf: - - $ref: '#/$defs/UserMessage' - - $ref: '#/$defs/ToolResponseMessage' - title: Input Messages - type: array - steps: - items: - discriminator: - mapping: - inference: '#/$defs/InferenceStep' - memory_retrieval: '#/$defs/MemoryRetrievalStep' - shield_call: '#/$defs/ShieldCallStep' - tool_execution: '#/$defs/ToolExecutionStep' - propertyName: step_type - oneOf: - - $ref: '#/$defs/InferenceStep' - - $ref: '#/$defs/ToolExecutionStep' - - $ref: '#/$defs/ShieldCallStep' - - $ref: '#/$defs/MemoryRetrievalStep' - title: Steps - type: array - output_message: - $ref: '#/$defs/CompletionMessage' - output_attachments: - anyOf: - - items: - $ref: '#/$defs/Attachment' - type: array - - type: 'null' - title: Output Attachments - started_at: - format: date-time - title: Started At - type: string - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - required: - - turn_id - - session_id - - input_messages - - steps - - output_message - - started_at - title: Turn - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - UserMessage: - description: >- - A message from the user in a chat conversation. - - - :param role: Must be "user" to identify this as a user message - - :param content: The content of the message, which can include text and - other media - - :param context: (Optional) This field is used internally by Llama Stack - to pass RAG context. This field may be removed in the API in the future. - properties: - role: - const: user - default: user - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - type: 'null' - title: Context - required: - - content - title: UserMessage - type: object - ViolationLevel: - description: >- - Severity level of a safety violation. - - - :cvar INFO: Informational level violation that does not require action - - :cvar WARN: Warning level violation that suggests caution but allows continuation - - :cvar ERROR: Error level violation that requires blocking or intervention - enum: - - info - - warn - - error - title: ViolationLevel - type: string - _URLOrData: - description: >- - A URL or a base64 encoded string - - - :param url: A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - - :param data: base64 encoded image data as string - properties: - url: - anyOf: - - $ref: '#/$defs/URL' - - type: 'null' - data: - anyOf: - - type: string - - type: 'null' - contentEncoding: base64 - title: Data - title: _URLOrData - type: object - description: >- - A single session of an interaction with an Agentic System. - - - :param session_id: Unique identifier for the conversation session - - :param session_name: Human-readable name for the session - - :param turns: List of all turns that have occurred in this session - - :param started_at: Timestamp when the session was created - properties: - session_id: - title: Session Id - type: string - session_name: - title: Session Name - type: string - turns: - items: - $ref: '#/$defs/Turn' - title: Turns - type: array - started_at: - format: date-time - title: Started At - type: string - required: - - session_id - - session_name - - turns - - started_at - title: Session - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: shield_call - default: shield_call - violation: - $ref: '#/components/schemas/SafetyViolation' - description: The violation from the shield call. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - title: ShieldCallStep - description: A shield call step in an agent turn. - ToolCall: - type: object - properties: - call_id: - type: string - tool_name: - oneOf: - - type: string - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - - type: string - arguments: - type: string - additionalProperties: false - required: - - call_id - - tool_name - - arguments - title: ToolCall - ToolExecutionStep: - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: tool_execution - default: tool_execution - tool_calls: - type: array - items: - $ref: '#/components/schemas/ToolCall' - description: The tool calls to execute. - tool_responses: - type: array - items: - $ref: '#/components/schemas/ToolResponse' - description: The tool responses from the tool calls. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - - tool_calls - - tool_responses - title: ToolExecutionStep - description: A tool execution step in an agent turn. - ToolResponse: - type: object - properties: - call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - tool_name: - oneOf: - - type: string - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - - type: string - description: Name of the tool that was invoked - content: - $ref: '#/components/schemas/InterleavedContent' - description: The response content from the tool - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool response - additionalProperties: false - required: - - call_id - - tool_name - - content - title: ToolResponse - description: Response from a tool invocation. - ToolResponseMessage: - type: object - properties: - role: - type: string - const: tool - default: tool - description: >- - Must be "tool" to identify this as a tool response - call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - content: - $ref: '#/components/schemas/InterleavedContent' - description: The response content from the tool - additionalProperties: false - required: - - role - - call_id - - content - title: ToolResponseMessage - description: >- - A message representing the result of a tool invocation. - Turn: - $defs: - Attachment: - description: >- - An attachment to an agent turn. - - - :param content: The content of the attachment. - - :param mime_type: The MIME type of the attachment. - properties: - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - $ref: '#/$defs/URL' - title: Content - mime_type: - title: Mime Type - type: string - required: - - content - - mime_type - title: Attachment - type: object - BuiltinTool: - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - type: string - CompletionMessage: - description: >- - A message containing the model's (assistant) response in a chat conversation. - - - :param role: Must be "assistant" to identify this as the model's response - - :param content: The content of the model's response - - :param stop_reason: Reason why the model stopped generating. Options are: - - `StopReason.end_of_turn`: The model finished generating the entire - response. - - `StopReason.end_of_message`: The model finished generating but generated - a partial response -- usually, a tool call. The user may call the tool - and continue the conversation with the tool's response. - - `StopReason.out_of_tokens`: The model ran out of token budget. - :param tool_calls: List of tool calls. Each tool call is a ToolCall object. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - stop_reason: - $ref: '#/$defs/StopReason' - tool_calls: - anyOf: - - items: - $ref: '#/$defs/ToolCall' - type: array - - type: 'null' - title: Tool Calls - required: - - content - - stop_reason - title: CompletionMessage - type: object - ImageContentItem: - description: >- - A image content item - - - :param type: Discriminator type of the content item. Always "image" - - :param image: Image as a base64 encoded string or an URL - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/$defs/_URLOrData' - required: - - image - title: ImageContentItem - type: object - InferenceStep: - description: >- - An inference step in an agent turn. - - - :param model_response: The response from the LLM. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: inference - default: inference - title: Step Type - type: string - model_response: - $ref: '#/$defs/CompletionMessage' - required: - - turn_id - - step_id - - model_response - title: InferenceStep - type: object - MemoryRetrievalStep: - description: >- - A memory retrieval step in an agent turn. - - - :param vector_store_ids: The IDs of the vector databases to retrieve context - from. - - :param inserted_context: The context retrieved from the vector databases. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: memory_retrieval - default: memory_retrieval - title: Step Type - type: string - vector_store_ids: - title: Vector Store Ids - type: string - inserted_context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Inserted Context - required: - - turn_id - - step_id - - vector_store_ids - - inserted_context - title: MemoryRetrievalStep - type: object - SafetyViolation: - description: >- - Details of a safety violation detected by content moderation. - - - :param violation_level: Severity level of the violation - - :param user_message: (Optional) Message to convey to the user about the - violation - - :param metadata: Additional metadata including specific violation codes - for debugging and telemetry - properties: - violation_level: - $ref: '#/$defs/ViolationLevel' - user_message: - anyOf: - - type: string - - type: 'null' - title: User Message - metadata: - additionalProperties: true - title: Metadata - type: object - required: - - violation_level - title: SafetyViolation - type: object - ShieldCallStep: - description: >- - A shield call step in an agent turn. - - - :param violation: The violation from the shield call. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: shield_call - default: shield_call - title: Step Type - type: string - violation: - anyOf: - - $ref: '#/$defs/SafetyViolation' - - type: 'null' - required: - - turn_id - - step_id - - violation - title: ShieldCallStep - type: object - StopReason: - enum: - - end_of_turn - - end_of_message - - out_of_tokens - title: StopReason - type: string - TextContentItem: - description: >- - A text content item - - - :param type: Discriminator type of the content item. Always "text" - - :param text: Text content - properties: - type: - const: text - default: text - title: Type - type: string - text: - title: Text - type: string - required: - - text - title: TextContentItem - type: object - ToolCall: - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - arguments: - title: Arguments - type: string - required: - - call_id - - tool_name - - arguments - title: ToolCall - type: object - ToolExecutionStep: - description: >- - A tool execution step in an agent turn. - - - :param tool_calls: The tool calls to execute. - - :param tool_responses: The tool responses from the tool calls. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: tool_execution - default: tool_execution - title: Step Type - type: string - tool_calls: - items: - $ref: '#/$defs/ToolCall' - title: Tool Calls - type: array - tool_responses: - items: - $ref: '#/$defs/ToolResponse' - title: Tool Responses - type: array - required: - - turn_id - - step_id - - tool_calls - - tool_responses - title: ToolExecutionStep - type: object - ToolResponse: - description: >- - Response from a tool invocation. - - - :param call_id: Unique identifier for the tool call this response is for - - :param tool_name: Name of the tool that was invoked - - :param content: The response content from the tool - - :param metadata: (Optional) Additional metadata about the tool response - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - metadata: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Metadata - required: - - call_id - - tool_name - - content - title: ToolResponse - type: object - ToolResponseMessage: - description: >- - A message representing the result of a tool invocation. - - - :param role: Must be "tool" to identify this as a tool response - - :param call_id: Unique identifier for the tool call this response is for - - :param content: The response content from the tool - properties: - role: - const: tool - default: tool - title: Role - type: string - call_id: - title: Call Id - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - required: - - call_id - - content - title: ToolResponseMessage - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - UserMessage: - description: >- - A message from the user in a chat conversation. - - - :param role: Must be "user" to identify this as a user message - - :param content: The content of the message, which can include text and - other media - - :param context: (Optional) This field is used internally by Llama Stack - to pass RAG context. This field may be removed in the API in the future. - properties: - role: - const: user - default: user - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - type: 'null' - title: Context - required: - - content - title: UserMessage - type: object - ViolationLevel: - description: >- - Severity level of a safety violation. - - - :cvar INFO: Informational level violation that does not require action - - :cvar WARN: Warning level violation that suggests caution but allows continuation - - :cvar ERROR: Error level violation that requires blocking or intervention - enum: - - info - - warn - - error - title: ViolationLevel - type: string - _URLOrData: - description: >- - A URL or a base64 encoded string - - - :param url: A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - - :param data: base64 encoded image data as string - properties: - url: - anyOf: - - $ref: '#/$defs/URL' - - type: 'null' - data: - anyOf: - - type: string - - type: 'null' - contentEncoding: base64 - title: Data - title: _URLOrData - type: object - description: >- - A single turn in an interaction with an Agentic System. - - - :param turn_id: Unique identifier for the turn within a session - - :param session_id: Unique identifier for the conversation session - - :param input_messages: List of messages that initiated this turn - - :param steps: Ordered list of processing steps executed during this turn - - :param output_message: The model's generated response containing content and - metadata - - :param output_attachments: (Optional) Files or media attached to the agent's - response - - :param started_at: Timestamp when the turn began - - :param completed_at: (Optional) Timestamp when the turn finished, if completed - properties: - turn_id: - title: Turn Id - type: string - session_id: - title: Session Id - type: string - input_messages: - items: - anyOf: - - $ref: '#/$defs/UserMessage' - - $ref: '#/$defs/ToolResponseMessage' - title: Input Messages - type: array - steps: - items: - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - title: Output - type: array - parallel_tool_calls: - default: false - title: Parallel Tool Calls - type: boolean - previous_response_id: - title: Previous Response Id - type: string - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - required: - - turn_id - - session_id - - input_messages - - steps - - output_message - - started_at - title: Turn - description: >- - A single turn in an interaction with an Agentic System. - UserMessage: - type: object - properties: - role: - type: string - const: user - default: user - description: >- - Must be "user" to identify this as a user message - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content of the message, which can include text and other media - context: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) This field is used internally by Llama Stack to pass RAG context. - This field may be removed in the API in the future. - additionalProperties: false - required: - - role - - content - title: UserMessage - description: >- - A message from the user in a chat conversation. - CreateAgentTurnRequest: - type: object - ResumeAgentTurnRequest: - type: object - AgentStepResponse: - $defs: - BuiltinTool: - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - type: string - temperature: - title: Temperature - type: number - nullable: true - text: - $ref: '#/components/schemas/OpenAIResponseText' - default: - format: - type: text - top_p: - title: Top P - type: number - nullable: true - tools: - title: Tools - items: - discriminator: - mapping: - file_search: '#/$defs/OpenAIResponseInputToolFileSearch' - function: '#/$defs/OpenAIResponseInputToolFunction' - mcp: '#/$defs/OpenAIResponseToolMCP' - web_search: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseToolMCP' - type: array - nullable: true - truncation: - title: Truncation - type: string - nullable: true - usage: - $ref: '#/components/schemas/OpenAIResponseUsage' - nullable: true - instructions: - title: Instructions - type: string - nullable: true - input: - items: - anyOf: - - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseMessage' - title: Input - type: array - required: - - created_at - - id - - model - - output - - status - - input - title: OpenAIResponseObjectWithInput - type: object - ImageContentItem: - description: A image content item - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/components/schemas/_URLOrData' - required: - - image - title: ImageContentItem - type: object - properties: - type: - type: string - const: agent - default: agent - config: - $ref: '#/components/schemas/AgentConfig' - description: >- - The configuration for the agent candidate. - additionalProperties: false - required: - - type - - config - title: AgentCandidate - description: An agent candidate for evaluation. - BenchmarkConfig: - type: object - properties: - eval_candidate: - oneOf: - - $ref: '#/components/schemas/ModelCandidate' - - $ref: '#/components/schemas/AgentCandidate' - discriminator: - propertyName: type - mapping: - model: '#/components/schemas/ModelCandidate' - agent: '#/components/schemas/AgentCandidate' - description: The candidate to evaluate. - scoring_params: - type: object - additionalProperties: - $ref: '#/components/schemas/ScoringFnParams' - description: >- - Map between scoring function id and parameters for each scoring function - you want to run - num_examples: - type: integer - description: >- - (Optional) The number of examples to evaluate. If not provided, all examples - in the dataset will be evaluated - additionalProperties: false - required: - - eval_candidate - - scoring_params - title: BenchmarkConfig - description: >- - A benchmark configuration for evaluation. - ModelCandidate: - type: object - properties: - type: - type: string - const: model - default: model - model: - type: string - description: The model ID to evaluate. - sampling_params: - $ref: '#/components/schemas/SamplingParams' - description: The sampling parameters for the model. - system_message: - $ref: '#/components/schemas/SystemMessage' - description: >- - (Optional) The system message providing instructions or context to the - model. - additionalProperties: false - required: - - type - - model - - sampling_params - title: ModelCandidate - description: A model candidate for evaluation. - SystemMessage: - type: object - properties: - role: - type: string - const: system - default: system - description: >- - Must be "system" to identify this as a system message - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content of the "system prompt". If multiple system messages are provided, - they are concatenated. The underlying Llama Stack code may also add other - system messages (for example, for formatting tool definitions). - additionalProperties: false - required: - - role - - content - title: SystemMessage - description: >- - A system message providing instructions or context to the model. - EvaluateRowsRequest: - type: object - EvaluateResponse: - $defs: - ScoringResult: - description: >- - A scoring result for a single row. - - - :param score_rows: The scoring result for each row. Each row is a map - of column name to value. - - :param aggregated_results: Map of metric name to aggregated value - properties: - score_rows: - items: - additionalProperties: true - type: object - title: Score Rows - type: array - aggregated_results: - additionalProperties: true - title: Aggregated Results - type: object - required: - - score_rows - - aggregated_results - title: ScoringResult - type: object - description: >- - The response from an evaluation. - - - :param generations: The generations from the evaluation. - - :param scores: The scores from the evaluation. - properties: - epoch: - title: Epoch - type: integer - train_loss: - title: Train Loss - type: number - validation_loss: - title: Validation Loss - type: number - perplexity: - title: Perplexity - type: number - required: - - epoch - - train_loss - - validation_loss - - perplexity - title: PostTrainingMetric - type: object - _safety_run_shield_Request: - properties: - shield_id: - title: Shield Id - type: string - messages: - anyOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Messages - params: - title: Params - type: string - required: - - shield_id - - messages - - params - title: _safety_run_shield_Request - type: object - responses: - BadRequest400: - description: The request was invalid or malformed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 400 - title: Bad Request - detail: The request was invalid or malformed - TooManyRequests429: - description: The client has sent too many requests in a given amount of time - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 429 - title: Too Many Requests - detail: You have exceeded the rate limit. Please try again later. - InternalServerError500: - description: The server encountered an unexpected error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 500 - title: Internal Server Error - detail: An unexpected error occurred. Our team has been notified. - DefaultError: - description: An unexpected error occurred - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 0 - title: Error - detail: An unexpected error occurred -security: - - Default: [] -tags: - - name: Agents - description: >- - APIs for creating and interacting with agentic systems. - x-displayName: Agents - - name: Batches - description: >- - The API is designed to allow use of openai client libraries for seamless integration. - - - This API provides the following extensions: - - idempotent batch creation - - Note: This API is currently under active development and may undergo changes. - x-displayName: >- - The Batches API enables efficient processing of multiple requests in a single - operation, particularly useful for processing large datasets, batch evaluation - workflows, and cost-effective inference at scale. - - name: Benchmarks - description: '' - - name: Conversations - description: >- - Protocol for conversation management operations. - x-displayName: Conversations - - name: DatasetIO - description: '' - - name: Datasets - description: '' - - name: Eval - description: >- - Llama Stack Evaluation API for running evaluations on model and agent candidates. - x-displayName: Evaluations - - name: Files - description: >- - This API is used to upload documents that can be used with other Llama Stack - APIs. - x-displayName: Files - - name: Inference - description: >- - Llama Stack Inference API for generating completions, chat completions, and - embeddings. - - This API provides the raw interface to the underlying models. Three kinds - of models are supported: - - LLM models: these models generate "raw" and "chat" (conversational) completions. - - Embedding models: these models generate embeddings to be used for semantic - search. - - Rerank models: these models reorder the documents based on their relevance - to a query. - x-displayName: Inference - - name: Inspect - description: >- - APIs for inspecting the Llama Stack service, including health status, available - API routes with methods and implementing providers. - x-displayName: Inspect - - name: Models - description: '' - - name: PostTraining (Coming Soon) - description: '' - - name: Prompts - description: >- - Protocol for prompt management operations. - x-displayName: Prompts - - name: Providers - description: >- - Providers API for inspecting, listing, and modifying providers and their configurations. - x-displayName: Providers - - name: Safety - description: OpenAI-compatible Moderations API. - x-displayName: Safety - - name: Scoring - description: '' - - name: ScoringFunctions - description: '' - - name: Shields - description: '' - - name: ToolGroups - description: '' - - name: ToolRuntime - description: '' - - name: VectorIO - description: '' -x-tagGroups: - - name: Operations - tags: - - Agents - - Batches - - Benchmarks - - Conversations - - DatasetIO - - Datasets - - Eval - - Files - - Inference - - Inspect - - Models - - PostTraining (Coming Soon) - - Prompts - - Providers - - Safety - - Scoring - - ScoringFunctions - - Shields - - ToolGroups - - ToolRuntime - - VectorIO + description: A URL or a base64 encoded string. diff --git a/docs/static/deprecated-llama-stack-spec.json b/docs/static/deprecated-llama-stack-spec.json deleted file mode 100644 index 8614bd0b7..000000000 --- a/docs/static/deprecated-llama-stack-spec.json +++ /dev/null @@ -1,18640 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Llama Stack API", - "description": "A comprehensive API for building and deploying AI applications", - "version": "1.0.0" - }, - "servers": [ - { - "url": "https://api.llamastack.com", - "description": "Production server" - }, - { - "url": "https://staging-api.llamastack.com", - "description": "Staging server" - } - ], - "paths": { - "/v1/agents": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all agents.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_agents_v1_agents_get", - "deprecated": true, - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create an agent with the given configuration.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_v1_agents_post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentConfig" - } - } - } - }, - "responses": { - "200": { - "description": "An AgentCreateResponse with the agent ID.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentCreateResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/agents/{agent_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete an agent by its ID and its associated sessions and turns.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_agent_v1_agents__agent_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to delete." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Describe an agent by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agent_v1_agents__agent_id__get", - "deprecated": true, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "ID of the agent." - } - ], - "responses": { - "200": { - "description": "An Agent of the agent.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Agent" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/agents/{agent_id}/session": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create a new session for an agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_session_v1_agents__agent_id__session_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An AgentSessionCreateResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentSessionCreateResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to create the session for." - } - ] - } - }, - "/v1/agents/{agent_id}/session/{session_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete an agent session by its ID and its associated turns.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_agents_session_v1_agents__agent_id__session__session_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to delete." - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to delete the session for." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve an agent session by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_session_v1_agents__agent_id__session__session_id__get", - "deprecated": true, - "parameters": [ - { - "name": "turn_ids", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Turn Ids" - } - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get." - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the session for." - } - ], - "responses": { - "200": { - "description": "A Session.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Session" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/agents/{agent_id}/session/{session_id}/turn": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create a new turn for an agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_turn_v1_agents__agent_id__session__session_id__turn_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_session_id_turn_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "If stream=False, returns a Turn object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to create the turn for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to create the turn for." - } - ] - } - }, - "/v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve an agent turn by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_turn_v1_agents__agent_id__session__session_id__turn__turn_id__get", - "deprecated": true, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the turn for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get the turn for." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Turn Id" - }, - "description": "The ID of the turn to get." - } - ], - "responses": { - "200": { - "description": "A Turn.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume": { - "post": { - "tags": [ - "V1" - ], - "summary": "Resume an agent turn with executed tool call responses.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "resume_agent_turn_v1_agents__agent_id__session__session_id__turn__turn_id__resume_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk objects.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to resume." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to resume." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the turn to resume." - } - ] - } - }, - "/v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve an agent step by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_step_v1_agents__agent_id__session__session_id__turn__turn_id__step__step_id__get", - "deprecated": true, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the step for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get the step for." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Turn Id" - }, - "description": "The ID of the turn to get the step for." - }, - { - "name": "step_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Step Id" - }, - "description": "The ID of the step to get." - } - ], - "responses": { - "200": { - "description": "An AgentStepResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentStepResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/agents/{agent_id}/sessions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all session(s) of a given agent.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_agent_sessions_v1_agents__agent_id__sessions_get", - "deprecated": true, - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to list sessions for." - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/datasetio/append-rows/{dataset_id}": { - "post": { - "tags": [ - "V1" - ], - "summary": "Append rows to a dataset.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "append_rows_v1_datasetio_append_rows__dataset_id__post", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: dataset_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/datasetio/iterrows/{dataset_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get a paginated list of rows from a dataset.", - "description": "Query endpoint for proper schema generation.", - "operationId": "iterrows_v1_datasetio_iterrows__dataset_id__get", - "deprecated": true, - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Dataset Id" - } - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/datasets": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all datasets.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_datasets_v1_datasets_get", - "responses": { - "200": { - "description": "A ListDatasetsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListDatasetsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a new dataset.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "register_dataset_v1_datasets_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____datasets_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Dataset.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dataset" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - }, - "/v1/datasets/{dataset_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a dataset by its ID.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_dataset_v1_datasets__dataset_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: dataset_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a dataset by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_dataset_v1_datasets__dataset_id__get", - "deprecated": true, - "parameters": [ - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Dataset Id" - } - } - ], - "responses": { - "200": { - "description": "A Dataset.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dataset" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/eval/benchmarks": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all benchmarks.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_benchmarks_v1_eval_benchmarks_get", - "deprecated": true, - "responses": { - "200": { - "description": "A ListBenchmarksResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListBenchmarksResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a benchmark.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "register_benchmark_v1_eval_benchmarks_post", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/eval/benchmarks/{benchmark_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a benchmark.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_benchmark_v1_eval_benchmarks__benchmark_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to unregister." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a benchmark by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_benchmark_v1_eval_benchmarks__benchmark_id__get", - "deprecated": true, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to get." - } - ], - "responses": { - "200": { - "description": "A Benchmark.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Benchmark" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/eval/benchmarks/{benchmark_id}/evaluations": { - "post": { - "tags": [ - "V1" - ], - "summary": "Evaluate a list of rows on a benchmark.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "evaluate_rows_v1_eval_benchmarks__benchmark_id__evaluations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BenchmarkConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "EvaluateResponse object containing generations and scores.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EvaluateResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - } - ] - } - }, - "/v1/eval/benchmarks/{benchmark_id}/jobs": { - "post": { - "tags": [ - "V1" - ], - "summary": "Run an evaluation on a benchmark.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_eval_v1_eval_benchmarks__benchmark_id__jobs_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BenchmarkConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The job that was created to run the evaluation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Job" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - } - ] - } - }, - "/v1/eval/benchmarks/{benchmark_id}/jobs/{job_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Cancel a job.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "job_cancel_v1_eval_benchmarks__benchmark_id__jobs__job_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the job to cancel." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get the status of a job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "job_status_v1_eval_benchmarks__benchmark_id__jobs__job_id__get", - "deprecated": true, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - }, - "description": "The ID of the job to get the status of." - } - ], - "responses": { - "200": { - "description": "The status of the evaluation job.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Job" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get the result of a job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "job_result_v1_eval_benchmarks__benchmark_id__jobs__job_id__result_get", - "deprecated": true, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - }, - "description": "The ID of the job to get the result of." - } - ], - "responses": { - "200": { - "description": "The result of the job.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EvaluateResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/batches": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all batches for the current user.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_batches_v1_openai_v1_batches_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - } - ], - "responses": { - "200": { - "description": "A list of batch objects.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListBatchesResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create a new batch for processing multiple API requests.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_batch_v1_openai_v1_batches_post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_batches_Request" - } - } - } - }, - "responses": { - "200": { - "description": "The created batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/batches/{batch_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve information about a specific batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "retrieve_batch_v1_openai_v1_batches__batch_id__get", - "deprecated": true, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the batch to retrieve." - } - ], - "responses": { - "200": { - "description": "The batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/batches/{batch_id}/cancel": { - "post": { - "tags": [ - "V1" - ], - "summary": "Cancel a batch that is in progress.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "cancel_batch_v1_openai_v1_batches__batch_id__cancel_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_batches_batch_id_cancel_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The updated batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the batch to cancel." - } - ] - } - }, - "/v1/openai/v1/chat/completions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List chat completions.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_chat_completions_v1_openai_v1_chat_completions_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "model", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Model" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "A ListOpenAIChatCompletionResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIChatCompletionResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create chat completions.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_chat_completion_v1_openai_v1_chat_completions_post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIChatCompletionRequestWithExtraBody" - } - } - } - }, - "responses": { - "200": { - "description": "An OpenAIChatCompletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIChatCompletion" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/chat/completions/{completion_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get chat completion.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_chat_completion_v1_openai_v1_chat_completions__completion_id__get", - "deprecated": true, - "parameters": [ - { - "name": "completion_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Completion Id" - }, - "description": "ID of the chat completion." - } - ], - "responses": { - "200": { - "description": "A OpenAICompletionWithInputMessages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletionWithInputMessages" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/completions": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create completion.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_completion_v1_openai_v1_completions_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletionRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An OpenAICompletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletion" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - }, - "/v1/openai/v1/embeddings": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create embeddings.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_embeddings_v1_openai_v1_embeddings_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIEmbeddingsRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An OpenAIEmbeddingsResponse containing the embeddings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIEmbeddingsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - }, - "/v1/openai/v1/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "List files.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_v1_openai_v1_files_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "purpose", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/OpenAIFilePurpose" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10000, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "An ListOpenAIFileResponse containing the list of files.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIFileResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Upload file.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "openai_upload_file_v1_openai_v1_files_post", - "deprecated": true, - "responses": { - "200": { - "description": "An OpenAIFileObject representing the uploaded file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/files/{file_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_file_v1_openai_v1_files__file_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "An OpenAIFileDeleteResponse indicating successful deletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_file_v1_openai_v1_files__file_id__get", - "deprecated": true, - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "An OpenAIFileObject containing file information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/files/{file_id}/content": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve file content.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "openai_retrieve_file_content_v1_openai_v1_files__file_id__content_get", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "The raw file content as a binary response.", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/models": { - "get": { - "tags": [ - "V1" - ], - "summary": "List models using the OpenAI API.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "openai_list_models_v1_openai_v1_models_get", - "responses": { - "200": { - "description": "A OpenAIListModelsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIListModelsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - }, - "/v1/openai/v1/moderations": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create moderation.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_moderation_v1_openai_v1_moderations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_moderations_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A moderation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModerationObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - }, - "/v1/openai/v1/responses": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all responses.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_openai_responses_v1_openai_v1_responses_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "model", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Model" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 50, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "A ListOpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create a model response.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_openai_response_v1_openai_v1_responses_post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_responses_Request" - } - } - } - }, - "responses": { - "200": { - "description": "An OpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/responses/{response_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a response.", - "description": "Query endpoint for proper schema generation.", - "operationId": "delete_openai_response_v1_openai_v1_responses__response_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the OpenAI response to delete." - } - ], - "responses": { - "200": { - "description": "An OpenAIDeleteResponseObject", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIDeleteResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a model response.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_openai_response_v1_openai_v1_responses__response_id__get", - "deprecated": true, - "parameters": [ - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the OpenAI response to retrieve." - } - ], - "responses": { - "200": { - "description": "An OpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/responses/{response_id}/input_items": { - "get": { - "tags": [ - "V1" - ], - "summary": "List input items.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_openai_response_input_items_v1_openai_v1_responses__response_id__input_items_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "include", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Include" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - }, - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the response to retrieve input items for." - } - ], - "responses": { - "200": { - "description": "An ListOpenAIResponseInputItem.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIResponseInputItem" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/vector_stores": { - "get": { - "tags": [ - "V1" - ], - "summary": "Returns a list of vector stores.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_vector_stores_v1_openai_v1_vector_stores_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - } - ], - "responses": { - "200": { - "description": "A VectorStoreListResponse containing the list of vector stores.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreListResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Creates a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_create_vector_store_v1_openai_v1_vector_stores_post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICreateVectorStoreRequestWithExtraBody" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreObject representing the created vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_vector_store_v1_openai_v1_vector_stores__vector_store_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to delete." - } - ], - "responses": { - "200": { - "description": "A VectorStoreDeleteResponse indicating the deletion status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_v1_openai_v1_vector_stores__vector_store_id__get", - "deprecated": true, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to retrieve." - } - ], - "responses": { - "200": { - "description": "A VectorStoreObject representing the vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Updates a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_update_vector_store_v1_openai_v1_vector_stores__vector_store_id__post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_vector_stores_vector_store_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreObject representing the updated vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to update." - } - ] - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/file_batches": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create a vector store file batch.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_create_vector_store_file_batch_v1_openai_v1_vector_stores__vector_store_id__file_batches_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICreateVectorStoreFileBatchRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the created file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to create the file batch for." - } - ] - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve a vector store file batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_batch_v1_openai_v1_vector_stores__vector_store_id__file_batches__batch_id__get", - "deprecated": true, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the file batch to retrieve." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file batch." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": { - "post": { - "tags": [ - "V1" - ], - "summary": "Cancels a vector store file batch.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_cancel_vector_store_file_batch_v1_openai_v1_vector_stores__vector_store_id__file_batches__batch_id__cancel_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the cancelled file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file batch to cancel." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store containing the file batch." - } - ] - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "Returns a list of vector store files in a batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_in_vector_store_file_batch_v1_openai_v1_vector_stores__vector_store_id__file_batches__batch_id__files_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "filter", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Filter" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - }, - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the file batch to list files from." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file batch." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFilesListInBatchResponse containing the list of files in the batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFilesListInBatchResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "List files in a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_in_vector_store_v1_openai_v1_vector_stores__vector_store_id__files_get", - "deprecated": true, - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "filter", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Filter" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to list files from." - } - ], - "responses": { - "200": { - "description": "A VectorStoreListFilesResponse containing the list of files.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreListFilesResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Attach a file to a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_attach_file_to_vector_store_v1_openai_v1_vector_stores__vector_store_id__files_post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_vector_stores_vector_store_id_files_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the attached file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to attach the file to." - } - ] - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_vector_store_file_v1_openai_v1_vector_stores__vector_store_id__files__file_id__delete", - "deprecated": true, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to delete." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to delete." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileDeleteResponse indicating the deletion status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_v1_openai_v1_vector_stores__vector_store_id__files__file_id__get", - "deprecated": true, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to retrieve." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to retrieve." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Updates a vector store file.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_update_vector_store_file_v1_openai_v1_vector_stores__vector_store_id__files__file_id__post", - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_vector_stores_vector_store_id_files_file_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the updated file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store containing the file to update." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file to update." - } - ] - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/files/{file_id}/content": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves the contents of a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_contents_v1_openai_v1_vector_stores__vector_store_id__files__file_id__content_get", - "deprecated": true, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to retrieve." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to retrieve." - } - ], - "responses": { - "200": { - "description": "A list of InterleavedContent representing the file contents.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileContentsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/openai/v1/vector_stores/{vector_store_id}/search": { - "post": { - "tags": [ - "V1" - ], - "summary": "Search for chunks in a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_search_vector_store_v1_openai_v1_vector_stores__vector_store_id__search_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_openai_v1_vector_stores_vector_store_id_search_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreSearchResponse containing the search results.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreSearchResponsePage" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to search." - } - ] - } - }, - "/v1/post-training/job/artifacts": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get the artifacts of a training job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_training_job_artifacts_v1_post_training_job_artifacts_get", - "deprecated": true, - "parameters": [ - { - "name": "job_uuid", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Job Uuid" - } - } - ], - "responses": { - "200": { - "description": "A PostTrainingJobArtifactsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJobArtifactsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/post-training/job/cancel": { - "post": { - "tags": [ - "V1" - ], - "summary": "Cancel a training job.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "cancel_training_job_v1_post_training_job_cancel_post", - "deprecated": true, - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/post-training/job/status": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get the status of a training job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_training_job_status_v1_post_training_job_status_get", - "deprecated": true, - "parameters": [ - { - "name": "job_uuid", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Job Uuid" - } - } - ], - "responses": { - "200": { - "description": "A PostTrainingJobStatusResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJobStatusResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/post-training/jobs": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get all training jobs.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "get_training_jobs_v1_post_training_jobs_get", - "responses": { - "200": { - "description": "A ListPostTrainingJobsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPostTrainingJobsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - }, - "/v1/post-training/preference-optimize": { - "post": { - "tags": [ - "V1" - ], - "summary": "Run preference optimization of a model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "preference_optimize_v1_post_training_preference_optimize_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DPOAlignmentConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A PostTrainingJob.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJob" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - }, - "/v1/post-training/supervised-fine-tune": { - "post": { - "tags": [ - "V1" - ], - "summary": "Run supervised fine-tuning of a model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "supervised_fine_tune_v1_post_training_supervised_fine_tune_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TrainingConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A PostTrainingJob.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJob" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "deprecated": true - } - } - }, - "components": { - "schemas": { - "AgentCandidate": { - "properties": { - "type": { - "type": "string", - "const": "agent", - "title": "Type", - "default": "agent" - }, - "config": { - "$ref": "#/components/schemas/AgentConfig" - } - }, - "type": "object", - "required": [ - "config" - ], - "title": "AgentCandidate", - "description": "An agent candidate for evaluation." - }, - "AgentConfig": { - "properties": { - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "input_shields": { - "title": "Input Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "output_shields": { - "title": "Output Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "toolgroups": { - "title": "Toolgroups", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ] - }, - "type": "array" - }, - "client_tools": { - "title": "Client Tools", - "items": { - "$ref": "#/components/schemas/ToolDef" - }, - "type": "array" - }, - "tool_choice": { - "deprecated": true, - "$ref": "#/components/schemas/ToolChoice" - }, - "tool_prompt_format": { - "deprecated": true, - "$ref": "#/components/schemas/ToolPromptFormat" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - }, - "max_infer_iters": { - "title": "Max Infer Iters", - "default": 10, - "type": "integer" - }, - "model": { - "type": "string", - "title": "Model" - }, - "instructions": { - "type": "string", - "title": "Instructions" - }, - "name": { - "title": "Name", - "type": "string" - }, - "enable_session_persistence": { - "title": "Enable Session Persistence", - "default": false, - "type": "boolean" - }, - "response_format": { - "title": "Response Format", - "oneOf": [ - { - "$ref": "#/components/schemas/JsonSchemaResponseFormat" - }, - { - "$ref": "#/components/schemas/GrammarResponseFormat" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "grammar": "#/components/schemas/GrammarResponseFormat", - "json_schema": "#/components/schemas/JsonSchemaResponseFormat" - } - } - } - }, - "type": "object", - "required": [ - "model", - "instructions" - ], - "title": "AgentConfig", - "description": "Configuration for an agent." - }, - "AgentCreateResponse": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - } - }, - "type": "object", - "required": [ - "agent_id" - ], - "title": "AgentCreateResponse", - "description": "Response returned when creating a new agent." - }, - "AgentSessionCreateResponse": { - "properties": { - "session_id": { - "type": "string", - "title": "Session Id" - } - }, - "type": "object", - "required": [ - "session_id" - ], - "title": "AgentSessionCreateResponse", - "description": "Response returned when creating a new agent session." - }, - "AgentToolGroupWithArgs": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "args": { - "additionalProperties": true, - "type": "object", - "title": "Args" - } - }, - "type": "object", - "required": [ - "name", - "args" - ], - "title": "AgentToolGroupWithArgs" - }, - "AgentTurnInputType": { - "properties": { - "type": { - "type": "string", - "const": "agent_turn_input", - "title": "Type", - "default": "agent_turn_input" - } - }, - "type": "object", - "title": "AgentTurnInputType", - "description": "Parameter type for agent turn input." - }, - "AggregationFunctionType": { - "type": "string", - "enum": [ - "average", - "weighted_average", - "median", - "categorical_count", - "accuracy" - ], - "title": "AggregationFunctionType", - "description": "Types of aggregation functions for scoring results." - }, - "AllowedToolsFilter": { - "properties": { - "tool_names": { - "title": "Tool Names", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "AllowedToolsFilter", - "description": "Filter configuration for restricting which MCP tools can be used." - }, - "ApprovalFilter": { - "properties": { - "always": { - "title": "Always", - "items": { - "type": "string" - }, - "type": "array" - }, - "never": { - "title": "Never", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "ApprovalFilter", - "description": "Filter configuration for MCP tool approval requirements." - }, - "ArrayType": { - "properties": { - "type": { - "type": "string", - "const": "array", - "title": "Type", - "default": "array" - } - }, - "type": "object", - "title": "ArrayType", - "description": "Parameter type for array values." - }, - "Attachment-Input": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "type": "string", - "title": "Mime Type" - } - }, - "type": "object", - "required": [ - "content", - "mime_type" - ], - "title": "Attachment", - "description": "An attachment to an agent turn." - }, - "Attachment-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "type": "string", - "title": "Mime Type" - } - }, - "type": "object", - "required": [ - "content", - "mime_type" - ], - "title": "Attachment", - "description": "An attachment to an agent turn." - }, - "BasicScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "basic", - "title": "Type", - "default": "basic" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "BasicScoringFnParams", - "description": "Parameters for basic scoring function configuration." - }, - "Batch": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "completion_window": { - "type": "string", - "title": "Completion Window" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "endpoint": { - "type": "string", - "title": "Endpoint" - }, - "input_file_id": { - "type": "string", - "title": "Input File Id" - }, - "object": { - "type": "string", - "const": "batch", - "title": "Object" - }, - "status": { - "type": "string", - "enum": [ - "validating", - "failed", - "in_progress", - "finalizing", - "completed", - "expired", - "cancelling", - "cancelled" - ], - "title": "Status" - }, - "cancelled_at": { - "title": "Cancelled At", - "type": "integer" - }, - "cancelling_at": { - "title": "Cancelling At", - "type": "integer" - }, - "completed_at": { - "title": "Completed At", - "type": "integer" - }, - "error_file_id": { - "title": "Error File Id", - "type": "string" - }, - "errors": { - "$ref": "#/components/schemas/Errors" - }, - "expired_at": { - "title": "Expired At", - "type": "integer" - }, - "expires_at": { - "title": "Expires At", - "type": "integer" - }, - "failed_at": { - "title": "Failed At", - "type": "integer" - }, - "finalizing_at": { - "title": "Finalizing At", - "type": "integer" - }, - "in_progress_at": { - "title": "In Progress At", - "type": "integer" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "model": { - "title": "Model", - "type": "string" - }, - "output_file_id": { - "title": "Output File Id", - "type": "string" - }, - "request_counts": { - "$ref": "#/components/schemas/BatchRequestCounts" - }, - "usage": { - "$ref": "#/components/schemas/BatchUsage" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "id", - "completion_window", - "created_at", - "endpoint", - "input_file_id", - "object", - "status" - ], - "title": "Batch" - }, - "BatchError": { - "properties": { - "code": { - "title": "Code", - "type": "string" - }, - "line": { - "title": "Line", - "type": "integer" - }, - "message": { - "title": "Message", - "type": "string" - }, - "param": { - "title": "Param", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "title": "BatchError" - }, - "BatchRequestCounts": { - "properties": { - "completed": { - "type": "integer", - "title": "Completed" - }, - "failed": { - "type": "integer", - "title": "Failed" - }, - "total": { - "type": "integer", - "title": "Total" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "completed", - "failed", - "total" - ], - "title": "BatchRequestCounts" - }, - "BatchUsage": { - "properties": { - "input_tokens": { - "type": "integer", - "title": "Input Tokens" - }, - "input_tokens_details": { - "$ref": "#/components/schemas/InputTokensDetails" - }, - "output_tokens": { - "type": "integer", - "title": "Output Tokens" - }, - "output_tokens_details": { - "$ref": "#/components/schemas/OutputTokensDetails" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "input_tokens", - "input_tokens_details", - "output_tokens", - "output_tokens_details", - "total_tokens" - ], - "title": "BatchUsage" - }, - "Benchmark": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "benchmark", - "title": "Type", - "default": "benchmark" - }, - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "scoring_functions": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Scoring Functions" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Metadata for this evaluation task" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "dataset_id", - "scoring_functions" - ], - "title": "Benchmark", - "description": "A benchmark resource for evaluating model performance." - }, - "BenchmarkConfig": { - "properties": { - "eval_candidate": { - "oneOf": [ - { - "$ref": "#/components/schemas/ModelCandidate" - }, - { - "$ref": "#/components/schemas/AgentCandidate" - } - ], - "title": "Eval Candidate", - "discriminator": { - "propertyName": "type", - "mapping": { - "agent": "#/components/schemas/AgentCandidate", - "model": "#/components/schemas/ModelCandidate" - } - } - }, - "scoring_params": { - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "basic": "#/components/schemas/BasicScoringFnParams", - "llm_as_judge": "#/components/schemas/LLMAsJudgeScoringFnParams", - "regex_parser": "#/components/schemas/RegexParserScoringFnParams" - } - } - }, - "type": "object", - "title": "Scoring Params", - "description": "Map between scoring function id and parameters for each scoring function you want to run" - }, - "num_examples": { - "title": "Num Examples", - "description": "Number of examples to evaluate (useful for testing), if not provided, all examples in the dataset will be evaluated", - "type": "integer" - } - }, - "type": "object", - "required": [ - "eval_candidate" - ], - "title": "BenchmarkConfig", - "description": "A benchmark configuration for evaluation." - }, - "BooleanType": { - "properties": { - "type": { - "type": "string", - "const": "boolean", - "title": "Type", - "default": "boolean" - } - }, - "type": "object", - "title": "BooleanType", - "description": "Parameter type for boolean values." - }, - "BuiltinTool": { - "type": "string", - "enum": [ - "brave_search", - "wolfram_alpha", - "photogen", - "code_interpreter" - ], - "title": "BuiltinTool" - }, - "ChatCompletionInputType": { - "properties": { - "type": { - "type": "string", - "const": "chat_completion_input", - "title": "Type", - "default": "chat_completion_input" - } - }, - "type": "object", - "title": "ChatCompletionInputType", - "description": "Parameter type for chat completion input." - }, - "Chunk-Input": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "chunk_id": { - "type": "string", - "title": "Chunk Id" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - }, - "embedding": { - "title": "Embedding", - "items": { - "type": "number" - }, - "type": "array" - }, - "chunk_metadata": { - "$ref": "#/components/schemas/ChunkMetadata" - } - }, - "type": "object", - "required": [ - "content", - "chunk_id" - ], - "title": "Chunk", - "description": "A chunk of content that can be inserted into a vector database." - }, - "Chunk-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "chunk_id": { - "type": "string", - "title": "Chunk Id" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - }, - "embedding": { - "title": "Embedding", - "items": { - "type": "number" - }, - "type": "array" - }, - "chunk_metadata": { - "$ref": "#/components/schemas/ChunkMetadata" - } - }, - "type": "object", - "required": [ - "content", - "chunk_id" - ], - "title": "Chunk", - "description": "A chunk of content that can be inserted into a vector database." - }, - "ChunkMetadata": { - "properties": { - "chunk_id": { - "title": "Chunk Id", - "type": "string" - }, - "document_id": { - "title": "Document Id", - "type": "string" - }, - "source": { - "title": "Source", - "type": "string" - }, - "created_timestamp": { - "title": "Created Timestamp", - "type": "integer" - }, - "updated_timestamp": { - "title": "Updated Timestamp", - "type": "integer" - }, - "chunk_window": { - "title": "Chunk Window", - "type": "string" - }, - "chunk_tokenizer": { - "title": "Chunk Tokenizer", - "type": "string" - }, - "chunk_embedding_model": { - "title": "Chunk Embedding Model", - "type": "string" - }, - "chunk_embedding_dimension": { - "title": "Chunk Embedding Dimension", - "type": "integer" - }, - "content_token_count": { - "title": "Content Token Count", - "type": "integer" - }, - "metadata_token_count": { - "title": "Metadata Token Count", - "type": "integer" - } - }, - "type": "object", - "title": "ChunkMetadata", - "description": "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." - }, - "CompletionInputType": { - "properties": { - "type": { - "type": "string", - "const": "completion_input", - "title": "Type", - "default": "completion_input" - } - }, - "type": "object", - "title": "CompletionInputType", - "description": "Parameter type for completion input." - }, - "CompletionMessage-Input": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionMessage", - "description": "A message containing the model's (assistant) response in a chat conversation." - }, - "CompletionMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionMessage", - "description": "A message containing the model's (assistant) response in a chat conversation." - }, - "Conversation": { - "properties": { - "id": { - "type": "string", - "title": "Id", - "description": "The unique ID of the conversation." - }, - "object": { - "type": "string", - "const": "conversation", - "title": "Object", - "description": "The object type, which is always conversation.", - "default": "conversation" - }, - "created_at": { - "type": "integer", - "title": "Created At", - "description": "The time at which the conversation was created, measured in seconds since the Unix epoch." - }, - "metadata": { - "title": "Metadata", - "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.", - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "items": { - "title": "Items", - "description": "Initial items to include in the conversation context. You may add up to 20 items at a time.", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "id", - "created_at" - ], - "title": "Conversation", - "description": "OpenAI-compatible conversation object." - }, - "ConversationItemInclude": { - "type": "string", - "enum": [ - "web_search_call.action.sources", - "code_interpreter_call.outputs", - "computer_call_output.output.image_url", - "file_search_call.results", - "message.input_image.image_url", - "message.output_text.logprobs", - "reasoning.encrypted_content" - ], - "title": "ConversationItemInclude", - "description": "Specify additional output data to include in the model response." - }, - "ConversationItemList": { - "properties": { - "object": { - "type": "string", - "title": "Object", - "description": "Object type", - "default": "list" - }, - "data": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Output" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/components/schemas/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Output", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "type": "array", - "title": "Data", - "description": "List of conversation items" - }, - "first_id": { - "title": "First Id", - "description": "The ID of the first item in the list", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "description": "The ID of the last item in the list", - "type": "string" - }, - "has_more": { - "type": "boolean", - "title": "Has More", - "description": "Whether there are more items available", - "default": false - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ConversationItemList", - "description": "List of conversation items with pagination." - }, - "DPOAlignmentConfig": { - "properties": { - "beta": { - "type": "number", - "title": "Beta" - }, - "loss_type": { - "$ref": "#/components/schemas/DPOLossType", - "default": "sigmoid" - } - }, - "type": "object", - "required": [ - "beta" - ], - "title": "DPOAlignmentConfig", - "description": "Configuration for Direct Preference Optimization (DPO) alignment." - }, - "DPOLossType": { - "type": "string", - "enum": [ - "sigmoid", - "hinge", - "ipo", - "kto_pair" - ], - "title": "DPOLossType" - }, - "DataConfig": { - "properties": { - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "batch_size": { - "type": "integer", - "title": "Batch Size" - }, - "shuffle": { - "type": "boolean", - "title": "Shuffle" - }, - "data_format": { - "$ref": "#/components/schemas/DatasetFormat" - }, - "validation_dataset_id": { - "title": "Validation Dataset Id", - "type": "string" - }, - "packed": { - "title": "Packed", - "default": false, - "type": "boolean" - }, - "train_on_input": { - "title": "Train On Input", - "default": false, - "type": "boolean" - } - }, - "type": "object", - "required": [ - "dataset_id", - "batch_size", - "shuffle", - "data_format" - ], - "title": "DataConfig", - "description": "Configuration for training data and data loading." - }, - "Dataset": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "dataset", - "title": "Type", - "default": "dataset" - }, - "purpose": { - "$ref": "#/components/schemas/DatasetPurpose" - }, - "source": { - "oneOf": [ - { - "$ref": "#/components/schemas/URIDataSource" - }, - { - "$ref": "#/components/schemas/RowsDataSource" - } - ], - "title": "Source", - "discriminator": { - "propertyName": "type", - "mapping": { - "rows": "#/components/schemas/RowsDataSource", - "uri": "#/components/schemas/URIDataSource" - } - } - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this dataset" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "purpose", - "source" - ], - "title": "Dataset", - "description": "Dataset resource for storing and accessing training or evaluation data." - }, - "DatasetFormat": { - "type": "string", - "enum": [ - "instruct", - "dialog" - ], - "title": "DatasetFormat", - "description": "Format of the training dataset." - }, - "DatasetPurpose": { - "type": "string", - "enum": [ - "post-training/messages", - "eval/question-answer", - "eval/messages-answer" - ], - "title": "DatasetPurpose", - "description": "Purpose of the dataset. Each purpose has a required input data schema." - }, - "DefaultRAGQueryGeneratorConfig": { - "properties": { - "type": { - "type": "string", - "const": "default", - "title": "Type", - "default": "default" - }, - "separator": { - "type": "string", - "title": "Separator", - "default": " " - } - }, - "type": "object", - "title": "DefaultRAGQueryGeneratorConfig", - "description": "Configuration for the default RAG query generator." - }, - "Document": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "type": "string", - "title": "Mime Type" - } - }, - "type": "object", - "required": [ - "content", - "mime_type" - ], - "title": "Document", - "description": "A document to be used by an agent." - }, - "EfficiencyConfig": { - "properties": { - "enable_activation_checkpointing": { - "title": "Enable Activation Checkpointing", - "default": false, - "type": "boolean" - }, - "enable_activation_offloading": { - "title": "Enable Activation Offloading", - "default": false, - "type": "boolean" - }, - "memory_efficient_fsdp_wrap": { - "title": "Memory Efficient Fsdp Wrap", - "default": false, - "type": "boolean" - }, - "fsdp_cpu_offload": { - "title": "Fsdp Cpu Offload", - "default": false, - "type": "boolean" - } - }, - "type": "object", - "title": "EfficiencyConfig", - "description": "Configuration for memory and compute efficiency optimizations." - }, - "Errors": { - "properties": { - "data": { - "title": "Data", - "items": { - "$ref": "#/components/schemas/BatchError" - }, - "type": "array" - }, - "object": { - "title": "Object", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "title": "Errors" - }, - "EvaluateResponse": { - "properties": { - "generations": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Generations" - }, - "scores": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Scores" - } - }, - "type": "object", - "required": [ - "generations", - "scores" - ], - "title": "EvaluateResponse", - "description": "The response from an evaluation." - }, - "GrammarResponseFormat": { - "properties": { - "type": { - "type": "string", - "const": "grammar", - "title": "Type", - "default": "grammar" - }, - "bnf": { - "additionalProperties": true, - "type": "object", - "title": "Bnf" - } - }, - "type": "object", - "required": [ - "bnf" - ], - "title": "GrammarResponseFormat", - "description": "Configuration for grammar-guided response generation." - }, - "GreedySamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "greedy", - "title": "Type", - "default": "greedy" - } - }, - "type": "object", - "title": "GreedySamplingStrategy", - "description": "Greedy sampling strategy that selects the highest probability token at each step." - }, - "HealthInfo": { - "properties": { - "status": { - "$ref": "#/components/schemas/HealthStatus" - } - }, - "type": "object", - "required": [ - "status" - ], - "title": "HealthInfo", - "description": "Health status information for the service." - }, - "HealthStatus": { - "type": "string", - "enum": [ - "OK", - "Error", - "Not Implemented" - ], - "title": "HealthStatus" - }, - "ImageContentItem-Input": { - "properties": { - "type": { - "type": "string", - "const": "image", - "title": "Type", - "default": "image" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "type": "object", - "required": [ - "image" - ], - "title": "ImageContentItem", - "description": "A image content item" - }, - "ImageContentItem-Output": { - "properties": { - "type": { - "type": "string", - "const": "image", - "title": "Type", - "default": "image" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "type": "object", - "required": [ - "image" - ], - "title": "ImageContentItem", - "description": "A image content item" - }, - "InferenceStep-Input": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "inference", - "title": "Step Type", - "default": "inference" - }, - "model_response": { - "$ref": "#/components/schemas/CompletionMessage-Input" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "model_response" - ], - "title": "InferenceStep", - "description": "An inference step in an agent turn." - }, - "InferenceStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "inference", - "title": "Step Type", - "default": "inference" - }, - "model_response": { - "$ref": "#/components/schemas/CompletionMessage-Output" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "model_response" - ], - "title": "InferenceStep", - "description": "An inference step in an agent turn." - }, - "InputTokensDetails": { - "properties": { - "cached_tokens": { - "type": "integer", - "title": "Cached Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "cached_tokens" - ], - "title": "InputTokensDetails" - }, - "Job": { - "properties": { - "job_id": { - "type": "string", - "title": "Job Id" - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - } - }, - "type": "object", - "required": [ - "job_id", - "status" - ], - "title": "Job", - "description": "A job execution instance with status tracking." - }, - "JobStatus": { - "type": "string", - "enum": [ - "completed", - "in_progress", - "failed", - "scheduled", - "cancelled" - ], - "title": "JobStatus", - "description": "Status of a job execution." - }, - "JsonSchemaResponseFormat": { - "properties": { - "type": { - "type": "string", - "const": "json_schema", - "title": "Type", - "default": "json_schema" - }, - "json_schema": { - "additionalProperties": true, - "type": "object", - "title": "Json Schema" - } - }, - "type": "object", - "required": [ - "json_schema" - ], - "title": "JsonSchemaResponseFormat", - "description": "Configuration for JSON schema-guided response generation." - }, - "JsonType": { - "properties": { - "type": { - "type": "string", - "const": "json", - "title": "Type", - "default": "json" - } - }, - "type": "object", - "title": "JsonType", - "description": "Parameter type for JSON values." - }, - "LLMAsJudgeScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "llm_as_judge", - "title": "Type", - "default": "llm_as_judge" - }, - "judge_model": { - "type": "string", - "title": "Judge Model" - }, - "prompt_template": { - "title": "Prompt Template", - "type": "string" - }, - "judge_score_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Judge Score Regexes", - "description": "Regexes to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "required": [ - "judge_model" - ], - "title": "LLMAsJudgeScoringFnParams", - "description": "Parameters for LLM-as-judge scoring function configuration." - }, - "LLMRAGQueryGeneratorConfig": { - "properties": { - "type": { - "type": "string", - "const": "llm", - "title": "Type", - "default": "llm" - }, - "model": { - "type": "string", - "title": "Model" - }, - "template": { - "type": "string", - "title": "Template" - } - }, - "type": "object", - "required": [ - "model", - "template" - ], - "title": "LLMRAGQueryGeneratorConfig", - "description": "Configuration for the LLM-based RAG query generator." - }, - "ListBenchmarksResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Benchmark" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListBenchmarksResponse" - }, - "ListDatasetsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Dataset" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListDatasetsResponse", - "description": "Response from listing datasets." - }, - "ListModelsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Model" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListModelsResponse" - }, - "ListPostTrainingJobsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/PostTrainingJob" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListPostTrainingJobsResponse" - }, - "ListPromptsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Prompt" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListPromptsResponse", - "description": "Response model to list prompts." - }, - "ListProvidersResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ProviderInfo" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListProvidersResponse", - "description": "Response containing a list of all available providers." - }, - "ListRoutesResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/RouteInfo" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListRoutesResponse", - "description": "Response containing a list of all available API routes." - }, - "ListScoringFunctionsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ScoringFn-Output" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListScoringFunctionsResponse" - }, - "ListShieldsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Shield" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListShieldsResponse" - }, - "ListToolGroupsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ToolGroup" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListToolGroupsResponse", - "description": "Response containing a list of tool groups." - }, - "MCPListToolsTool": { - "properties": { - "input_schema": { - "additionalProperties": true, - "type": "object", - "title": "Input Schema" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - } - }, - "type": "object", - "required": [ - "input_schema", - "name" - ], - "title": "MCPListToolsTool", - "description": "Tool definition returned by MCP list tools operation." - }, - "MemoryRetrievalStep-Input": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "memory_retrieval", - "title": "Step Type", - "default": "memory_retrieval" - }, - "vector_store_ids": { - "type": "string", - "title": "Vector Store Ids" - }, - "inserted_context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Inserted Context" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "vector_store_ids", - "inserted_context" - ], - "title": "MemoryRetrievalStep", - "description": "A memory retrieval step in an agent turn." - }, - "MemoryRetrievalStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "memory_retrieval", - "title": "Step Type", - "default": "memory_retrieval" - }, - "vector_store_ids": { - "type": "string", - "title": "Vector Store Ids" - }, - "inserted_context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Inserted Context" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "vector_store_ids", - "inserted_context" - ], - "title": "MemoryRetrievalStep", - "description": "A memory retrieval step in an agent turn." - }, - "Model": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "model", - "title": "Type", - "default": "model" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this model" - }, - "model_type": { - "$ref": "#/components/schemas/ModelType", - "default": "llm" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "Model", - "description": "A model resource representing an AI model registered in Llama Stack." - }, - "ModelCandidate": { - "properties": { - "type": { - "type": "string", - "const": "model", - "title": "Type", - "default": "model" - }, - "model": { - "type": "string", - "title": "Model" - }, - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "system_message": { - "$ref": "#/components/schemas/SystemMessage" - } - }, - "type": "object", - "required": [ - "model", - "sampling_params" - ], - "title": "ModelCandidate", - "description": "A model candidate for evaluation." - }, - "ModelType": { - "type": "string", - "enum": [ - "llm", - "embedding", - "rerank" - ], - "title": "ModelType", - "description": "Enumeration of supported model types in Llama Stack." - }, - "ModerationObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "model": { - "type": "string", - "title": "Model" - }, - "results": { - "items": { - "$ref": "#/components/schemas/ModerationObjectResults" - }, - "type": "array", - "title": "Results" - } - }, - "type": "object", - "required": [ - "id", - "model", - "results" - ], - "title": "ModerationObject", - "description": "A moderation object." - }, - "ModerationObjectResults": { - "properties": { - "flagged": { - "type": "boolean", - "title": "Flagged" - }, - "categories": { - "title": "Categories", - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - "category_applied_input_types": { - "title": "Category Applied Input Types", - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "category_scores": { - "title": "Category Scores", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "user_message": { - "title": "User Message", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "flagged" - ], - "title": "ModerationObjectResults", - "description": "A moderation object." - }, - "NumberType": { - "properties": { - "type": { - "type": "string", - "const": "number", - "title": "Type", - "default": "number" - } - }, - "type": "object", - "title": "NumberType", - "description": "Parameter type for numeric values." - }, - "ObjectType": { - "properties": { - "type": { - "type": "string", - "const": "object", - "title": "Type", - "default": "object" - } - }, - "type": "object", - "title": "ObjectType", - "description": "Parameter type for object values." - }, - "OpenAIAssistantMessageParam-Input": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIAssistantMessageParam", - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request." - }, - "OpenAIAssistantMessageParam-Output": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIAssistantMessageParam", - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request." - }, - "OpenAIChatCompletion": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAIChoice-Output" - }, - "type": "array", - "title": "Choices" - }, - "object": { - "type": "string", - "const": "chat.completion", - "title": "Object", - "default": "chat.completion" - }, - "created": { - "type": "integer", - "title": "Created" - }, - "model": { - "type": "string", - "title": "Model" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsage" - } - }, - "type": "object", - "required": [ - "id", - "choices", - "created", - "model" - ], - "title": "OpenAIChatCompletion", - "description": "Response from an OpenAI-compatible chat completion request." - }, - "OpenAIChatCompletionContentPartImageParam": { - "properties": { - "type": { - "type": "string", - "const": "image_url", - "title": "Type", - "default": "image_url" - }, - "image_url": { - "$ref": "#/components/schemas/OpenAIImageURL" - } - }, - "type": "object", - "required": [ - "image_url" - ], - "title": "OpenAIChatCompletionContentPartImageParam", - "description": "Image content part for OpenAI-compatible chat completion messages." - }, - "OpenAIChatCompletionContentPartTextParam": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIChatCompletionContentPartTextParam", - "description": "Text content part for OpenAI-compatible chat completion messages." - }, - "OpenAIChatCompletionRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "messages": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "discriminator": { - "propertyName": "role", - "mapping": { - "assistant": "#/components/schemas/OpenAIAssistantMessageParam-Input", - "developer": "#/components/schemas/OpenAIDeveloperMessageParam", - "system": "#/components/schemas/OpenAISystemMessageParam", - "tool": "#/components/schemas/OpenAIToolMessageParam", - "user": "#/components/schemas/OpenAIUserMessageParam-Input" - } - } - }, - "type": "array", - "minItems": 1, - "title": "Messages" - }, - "frequency_penalty": { - "title": "Frequency Penalty", - "type": "number" - }, - "function_call": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } - ], - "title": "Function Call" - }, - "functions": { - "title": "Functions", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "logit_bias": { - "title": "Logit Bias", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "logprobs": { - "title": "Logprobs", - "type": "boolean" - }, - "max_completion_tokens": { - "title": "Max Completion Tokens", - "type": "integer" - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "n": { - "title": "N", - "type": "integer" - }, - "parallel_tool_calls": { - "title": "Parallel Tool Calls", - "type": "boolean" - }, - "presence_penalty": { - "title": "Presence Penalty", - "type": "number" - }, - "response_format": { - "title": "Response Format", - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseFormatText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseFormatJSONSchema" - }, - { - "$ref": "#/components/schemas/OpenAIResponseFormatJSONObject" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "json_object": "#/components/schemas/OpenAIResponseFormatJSONObject", - "json_schema": "#/components/schemas/OpenAIResponseFormatJSONSchema", - "text": "#/components/schemas/OpenAIResponseFormatText" - } - } - }, - "seed": { - "title": "Seed", - "type": "integer" - }, - "stop": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Stop" - }, - "stream": { - "title": "Stream", - "type": "boolean" - }, - "stream_options": { - "title": "Stream Options", - "additionalProperties": true, - "type": "object" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "tool_choice": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } - ], - "title": "Tool Choice" - }, - "tools": { - "title": "Tools", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "top_logprobs": { - "title": "Top Logprobs", - "type": "integer" - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "user": { - "title": "User", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "messages" - ], - "title": "OpenAIChatCompletionRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible chat completion endpoint." - }, - "OpenAIChatCompletionToolCall": { - "properties": { - "index": { - "title": "Index", - "type": "integer" - }, - "id": { - "title": "Id", - "type": "string" - }, - "type": { - "type": "string", - "const": "function", - "title": "Type", - "default": "function" - }, - "function": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCallFunction" - } - }, - "type": "object", - "title": "OpenAIChatCompletionToolCall", - "description": "Tool call specification for OpenAI-compatible chat completion responses." - }, - "OpenAIChatCompletionToolCallFunction": { - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "arguments": { - "title": "Arguments", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIChatCompletionToolCallFunction", - "description": "Function call details for OpenAI-compatible tool calls." - }, - "OpenAIChatCompletionUsage": { - "properties": { - "prompt_tokens": { - "type": "integer", - "title": "Prompt Tokens" - }, - "completion_tokens": { - "type": "integer", - "title": "Completion Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - }, - "prompt_tokens_details": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails" - }, - "completion_tokens_details": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails" - } - }, - "type": "object", - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "title": "OpenAIChatCompletionUsage", - "description": "Usage information for OpenAI chat completion." - }, - "OpenAIChatCompletionUsageCompletionTokensDetails": { - "properties": { - "reasoning_tokens": { - "title": "Reasoning Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIChatCompletionUsageCompletionTokensDetails", - "description": "Token details for output tokens in OpenAI chat completion usage." - }, - "OpenAIChatCompletionUsagePromptTokensDetails": { - "properties": { - "cached_tokens": { - "title": "Cached Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIChatCompletionUsagePromptTokensDetails", - "description": "Token details for prompt tokens in OpenAI chat completion usage." - }, - "OpenAIChoice-Input": { - "properties": { - "message": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Message", - "discriminator": { - "propertyName": "role", - "mapping": { - "assistant": "#/components/schemas/OpenAIAssistantMessageParam-Input", - "developer": "#/components/schemas/OpenAIDeveloperMessageParam", - "system": "#/components/schemas/OpenAISystemMessageParam", - "tool": "#/components/schemas/OpenAIToolMessageParam", - "user": "#/components/schemas/OpenAIUserMessageParam-Input" - } - } - }, - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Input" - } - }, - "type": "object", - "required": [ - "message", - "finish_reason", - "index" - ], - "title": "OpenAIChoice", - "description": "A choice from an OpenAI-compatible chat completion response." - }, - "OpenAIChoice-Output": { - "properties": { - "message": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam-Output" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam-Output" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Message", - "discriminator": { - "propertyName": "role", - "mapping": { - "assistant": "#/components/schemas/OpenAIAssistantMessageParam-Output", - "developer": "#/components/schemas/OpenAIDeveloperMessageParam", - "system": "#/components/schemas/OpenAISystemMessageParam", - "tool": "#/components/schemas/OpenAIToolMessageParam", - "user": "#/components/schemas/OpenAIUserMessageParam-Output" - } - } - }, - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Output" - } - }, - "type": "object", - "required": [ - "message", - "finish_reason", - "index" - ], - "title": "OpenAIChoice", - "description": "A choice from an OpenAI-compatible chat completion response." - }, - "OpenAIChoiceLogprobs-Input": { - "properties": { - "content": { - "title": "Content", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - }, - "refusal": { - "title": "Refusal", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIChoiceLogprobs", - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response." - }, - "OpenAIChoiceLogprobs-Output": { - "properties": { - "content": { - "title": "Content", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - }, - "refusal": { - "title": "Refusal", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIChoiceLogprobs", - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response." - }, - "OpenAICompletion": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAICompletionChoice-Output" - }, - "type": "array", - "title": "Choices" - }, - "created": { - "type": "integer", - "title": "Created" - }, - "model": { - "type": "string", - "title": "Model" - }, - "object": { - "type": "string", - "const": "text_completion", - "title": "Object", - "default": "text_completion" - } - }, - "type": "object", - "required": [ - "id", - "choices", - "created", - "model" - ], - "title": "OpenAICompletion", - "description": "Response from an OpenAI-compatible completion request." - }, - "OpenAICompletionChoice-Input": { - "properties": { - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "text": { - "type": "string", - "title": "Text" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Input" - } - }, - "type": "object", - "required": [ - "finish_reason", - "text", - "index" - ], - "title": "OpenAICompletionChoice", - "description": "A choice from an OpenAI-compatible completion response." - }, - "OpenAICompletionChoice-Output": { - "properties": { - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "text": { - "type": "string", - "title": "Text" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Output" - } - }, - "type": "object", - "required": [ - "finish_reason", - "text", - "index" - ], - "title": "OpenAICompletionChoice", - "description": "A choice from an OpenAI-compatible completion response." - }, - "OpenAICompletionRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "prompt": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "items": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "type": "array" - } - ], - "title": "Prompt" - }, - "best_of": { - "title": "Best Of", - "type": "integer" - }, - "echo": { - "title": "Echo", - "type": "boolean" - }, - "frequency_penalty": { - "title": "Frequency Penalty", - "type": "number" - }, - "logit_bias": { - "title": "Logit Bias", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "logprobs": { - "title": "Logprobs", - "type": "boolean" - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "n": { - "title": "N", - "type": "integer" - }, - "presence_penalty": { - "title": "Presence Penalty", - "type": "number" - }, - "seed": { - "title": "Seed", - "type": "integer" - }, - "stop": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Stop" - }, - "stream": { - "title": "Stream", - "type": "boolean" - }, - "stream_options": { - "title": "Stream Options", - "additionalProperties": true, - "type": "object" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "user": { - "title": "User", - "type": "string" - }, - "suffix": { - "title": "Suffix", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "prompt" - ], - "title": "OpenAICompletionRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible completion endpoint." - }, - "OpenAICreateVectorStoreFileBatchRequestWithExtraBody": { - "properties": { - "file_ids": { - "items": { - "type": "string" - }, - "type": "array", - "title": "File Ids" - }, - "attributes": { - "title": "Attributes", - "additionalProperties": true, - "type": "object" - }, - "chunking_strategy": { - "title": "Chunking Strategy", - "oneOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "auto": "#/components/schemas/VectorStoreChunkingStrategyAuto", - "static": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - } - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "file_ids" - ], - "title": "OpenAICreateVectorStoreFileBatchRequestWithExtraBody", - "description": "Request to create a vector store file batch with extra_body support." - }, - "OpenAICreateVectorStoreRequestWithExtraBody": { - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "file_ids": { - "title": "File Ids", - "items": { - "type": "string" - }, - "type": "array" - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object" - }, - "chunking_strategy": { - "title": "Chunking Strategy", - "additionalProperties": true, - "type": "object" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "additionalProperties": true, - "type": "object", - "title": "OpenAICreateVectorStoreRequestWithExtraBody", - "description": "Request to create a vector store with extra_body support." - }, - "OpenAIDeveloperMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "developer", - "title": "Role", - "default": "developer" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIDeveloperMessageParam", - "description": "A message from the developer in an OpenAI-compatible chat completion request." - }, - "OpenAIEmbeddingData": { - "properties": { - "object": { - "type": "string", - "const": "embedding", - "title": "Object", - "default": "embedding" - }, - "embedding": { - "anyOf": [ - { - "items": { - "type": "number" - }, - "type": "array" - }, - { - "type": "string" - } - ], - "title": "Embedding" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "embedding", - "index" - ], - "title": "OpenAIEmbeddingData", - "description": "A single embedding data object from an OpenAI-compatible embeddings response." - }, - "OpenAIEmbeddingUsage": { - "properties": { - "prompt_tokens": { - "type": "integer", - "title": "Prompt Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - } - }, - "type": "object", - "required": [ - "prompt_tokens", - "total_tokens" - ], - "title": "OpenAIEmbeddingUsage", - "description": "Usage information for an OpenAI-compatible embeddings response." - }, - "OpenAIEmbeddingsRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Input" - }, - "encoding_format": { - "title": "Encoding Format", - "default": "float", - "type": "string" - }, - "dimensions": { - "title": "Dimensions", - "type": "integer" - }, - "user": { - "title": "User", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "input" - ], - "title": "OpenAIEmbeddingsRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible embeddings endpoint." - }, - "OpenAIEmbeddingsResponse": { - "properties": { - "object": { - "type": "string", - "const": "list", - "title": "Object", - "default": "list" - }, - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIEmbeddingData" - }, - "type": "array", - "title": "Data" - }, - "model": { - "type": "string", - "title": "Model" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIEmbeddingUsage" - } - }, - "type": "object", - "required": [ - "data", - "model", - "usage" - ], - "title": "OpenAIEmbeddingsResponse", - "description": "Response from an OpenAI-compatible embeddings request." - }, - "OpenAIFile": { - "properties": { - "type": { - "type": "string", - "const": "file", - "title": "Type", - "default": "file" - }, - "file": { - "$ref": "#/components/schemas/OpenAIFileFile" - } - }, - "type": "object", - "required": [ - "file" - ], - "title": "OpenAIFile" - }, - "OpenAIFileFile": { - "properties": { - "file_data": { - "title": "File Data", - "type": "string" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIFileFile" - }, - "OpenAIFileObject": { - "properties": { - "object": { - "type": "string", - "const": "file", - "title": "Object", - "default": "file" - }, - "id": { - "type": "string", - "title": "Id" - }, - "bytes": { - "type": "integer", - "title": "Bytes" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "expires_at": { - "type": "integer", - "title": "Expires At" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "purpose": { - "$ref": "#/components/schemas/OpenAIFilePurpose" - } - }, - "type": "object", - "required": [ - "id", - "bytes", - "created_at", - "expires_at", - "filename", - "purpose" - ], - "title": "OpenAIFileObject", - "description": "OpenAI File object as defined in the OpenAI Files API." - }, - "OpenAIFilePurpose": { - "type": "string", - "enum": [ - "assistants", - "batch" - ], - "title": "OpenAIFilePurpose", - "description": "Valid purpose values for OpenAI Files API." - }, - "OpenAIImageURL": { - "properties": { - "url": { - "type": "string", - "title": "Url" - }, - "detail": { - "title": "Detail", - "type": "string" - } - }, - "type": "object", - "required": [ - "url" - ], - "title": "OpenAIImageURL", - "description": "Image URL specification for OpenAI-compatible chat completion messages." - }, - "OpenAIJSONSchema": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "strict": { - "title": "Strict", - "type": "boolean" - }, - "schema": { - "title": "Schema", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "title": "OpenAIJSONSchema", - "description": "JSON schema specification for OpenAI-compatible structured response format." - }, - "OpenAIListModelsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIModel" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "OpenAIListModelsResponse" - }, - "OpenAIModel": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "const": "model", - "title": "Object", - "default": "model" - }, - "created": { - "type": "integer", - "title": "Created" - }, - "owned_by": { - "type": "string", - "title": "Owned By" - } - }, - "type": "object", - "required": [ - "id", - "created", - "owned_by" - ], - "title": "OpenAIModel", - "description": "A model from OpenAI." - }, - "OpenAIResponseAnnotationCitation": { - "properties": { - "type": { - "type": "string", - "const": "url_citation", - "title": "Type", - "default": "url_citation" - }, - "end_index": { - "type": "integer", - "title": "End Index" - }, - "start_index": { - "type": "integer", - "title": "Start Index" - }, - "title": { - "type": "string", - "title": "Title" - }, - "url": { - "type": "string", - "title": "Url" - } - }, - "type": "object", - "required": [ - "end_index", - "start_index", - "title", - "url" - ], - "title": "OpenAIResponseAnnotationCitation", - "description": "URL citation annotation for referencing external web resources." - }, - "OpenAIResponseAnnotationContainerFileCitation": { - "properties": { - "type": { - "type": "string", - "const": "container_file_citation", - "title": "Type", - "default": "container_file_citation" - }, - "container_id": { - "type": "string", - "title": "Container Id" - }, - "end_index": { - "type": "integer", - "title": "End Index" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "start_index": { - "type": "integer", - "title": "Start Index" - } - }, - "type": "object", - "required": [ - "container_id", - "end_index", - "file_id", - "filename", - "start_index" - ], - "title": "OpenAIResponseAnnotationContainerFileCitation" - }, - "OpenAIResponseAnnotationFileCitation": { - "properties": { - "type": { - "type": "string", - "const": "file_citation", - "title": "Type", - "default": "file_citation" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "file_id", - "filename", - "index" - ], - "title": "OpenAIResponseAnnotationFileCitation", - "description": "File citation annotation for referencing specific files in response content." - }, - "OpenAIResponseAnnotationFilePath": { - "properties": { - "type": { - "type": "string", - "const": "file_path", - "title": "Type", - "default": "file_path" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "file_id", - "index" - ], - "title": "OpenAIResponseAnnotationFilePath" - }, - "OpenAIResponseContentPartRefusal": { - "properties": { - "type": { - "type": "string", - "const": "refusal", - "title": "Type", - "default": "refusal" - }, - "refusal": { - "type": "string", - "title": "Refusal" - } - }, - "type": "object", - "required": [ - "refusal" - ], - "title": "OpenAIResponseContentPartRefusal", - "description": "Refusal content within a streamed response part." - }, - "OpenAIResponseError": { - "properties": { - "code": { - "type": "string", - "title": "Code" - }, - "message": { - "type": "string", - "title": "Message" - } - }, - "type": "object", - "required": [ - "code", - "message" - ], - "title": "OpenAIResponseError", - "description": "Error details for failed OpenAI response requests." - }, - "OpenAIResponseFormatJSONObject": { - "properties": { - "type": { - "type": "string", - "const": "json_object", - "title": "Type", - "default": "json_object" - } - }, - "type": "object", - "title": "OpenAIResponseFormatJSONObject", - "description": "JSON object response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseFormatJSONSchema": { - "properties": { - "type": { - "type": "string", - "const": "json_schema", - "title": "Type", - "default": "json_schema" - }, - "json_schema": { - "$ref": "#/components/schemas/OpenAIJSONSchema" - } - }, - "type": "object", - "required": [ - "json_schema" - ], - "title": "OpenAIResponseFormatJSONSchema", - "description": "JSON schema response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseFormatText": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - } - }, - "type": "object", - "title": "OpenAIResponseFormatText", - "description": "Text response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseInputFunctionToolCallOutput": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "output": { - "type": "string", - "title": "Output" - }, - "type": { - "type": "string", - "const": "function_call_output", - "title": "Type", - "default": "function_call_output" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "call_id", - "output" - ], - "title": "OpenAIResponseInputFunctionToolCallOutput", - "description": "This represents the output of a function call that gets passed back to the model." - }, - "OpenAIResponseInputMessageContentFile": { - "properties": { - "type": { - "type": "string", - "const": "input_file", - "title": "Type", - "default": "input_file" - }, - "file_data": { - "title": "File Data", - "type": "string" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "file_url": { - "title": "File Url", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIResponseInputMessageContentFile", - "description": "File content for input messages in OpenAI response format." - }, - "OpenAIResponseInputMessageContentImage": { - "properties": { - "detail": { - "anyOf": [ - { - "type": "string", - "const": "low" - }, - { - "type": "string", - "const": "high" - }, - { - "type": "string", - "const": "auto" - } - ], - "title": "Detail", - "default": "auto" - }, - "type": { - "type": "string", - "const": "input_image", - "title": "Type", - "default": "input_image" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "image_url": { - "title": "Image Url", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIResponseInputMessageContentImage", - "description": "Image content for input messages in OpenAI response format." - }, - "OpenAIResponseInputMessageContentText": { - "properties": { - "text": { - "type": "string", - "title": "Text" - }, - "type": { - "type": "string", - "const": "input_text", - "title": "Type", - "default": "input_text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIResponseInputMessageContentText", - "description": "Text content for input messages in OpenAI response format." - }, - "OpenAIResponseInputToolFileSearch": { - "properties": { - "type": { - "type": "string", - "const": "file_search", - "title": "Type", - "default": "file_search" - }, - "vector_store_ids": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Vector Store Ids" - }, - "filters": { - "title": "Filters", - "additionalProperties": true, - "type": "object" - }, - "max_num_results": { - "title": "Max Num Results", - "default": 10, - "type": "integer", - "maximum": 50.0, - "minimum": 1.0 - }, - "ranking_options": { - "$ref": "#/components/schemas/SearchRankingOptions" - } - }, - "type": "object", - "required": [ - "vector_store_ids" - ], - "title": "OpenAIResponseInputToolFileSearch", - "description": "File search tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolFunction": { - "properties": { - "type": { - "type": "string", - "const": "function", - "title": "Type", - "default": "function" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "parameters": { - "title": "Parameters", - "additionalProperties": true, - "type": "object" - }, - "strict": { - "title": "Strict", - "type": "boolean" - } - }, - "type": "object", - "required": [ - "name", - "parameters" - ], - "title": "OpenAIResponseInputToolFunction", - "description": "Function tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolMCP": { - "properties": { - "type": { - "type": "string", - "const": "mcp", - "title": "Type", - "default": "mcp" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "server_url": { - "type": "string", - "title": "Server Url" - }, - "headers": { - "title": "Headers", - "additionalProperties": true, - "type": "object" - }, - "require_approval": { - "anyOf": [ - { - "type": "string", - "const": "always" - }, - { - "type": "string", - "const": "never" - }, - { - "$ref": "#/components/schemas/ApprovalFilter" - } - ], - "title": "Require Approval", - "default": "never" - }, - "allowed_tools": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/AllowedToolsFilter" - } - ], - "title": "Allowed Tools" - } - }, - "type": "object", - "required": [ - "server_label", - "server_url" - ], - "title": "OpenAIResponseInputToolMCP", - "description": "Model Context Protocol (MCP) tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolWebSearch": { - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "const": "web_search" - }, - { - "type": "string", - "const": "web_search_preview" - }, - { - "type": "string", - "const": "web_search_preview_2025_03_11" - } - ], - "title": "Type", - "default": "web_search" - }, - "search_context_size": { - "title": "Search Context Size", - "default": "medium", - "type": "string", - "pattern": "^low|medium|high$" - } - }, - "type": "object", - "title": "OpenAIResponseInputToolWebSearch", - "description": "Web search tool configuration for OpenAI response inputs." - }, - "OpenAIResponseMCPApprovalRequest": { - "properties": { - "arguments": { - "type": "string", - "title": "Arguments" - }, - "id": { - "type": "string", - "title": "Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "type": { - "type": "string", - "const": "mcp_approval_request", - "title": "Type", - "default": "mcp_approval_request" - } - }, - "type": "object", - "required": [ - "arguments", - "id", - "name", - "server_label" - ], - "title": "OpenAIResponseMCPApprovalRequest", - "description": "A request for human approval of a tool invocation." - }, - "OpenAIResponseMCPApprovalResponse": { - "properties": { - "approval_request_id": { - "type": "string", - "title": "Approval Request Id" - }, - "approve": { - "type": "boolean", - "title": "Approve" - }, - "type": { - "type": "string", - "const": "mcp_approval_response", - "title": "Type", - "default": "mcp_approval_response" - }, - "id": { - "title": "Id", - "type": "string" - }, - "reason": { - "title": "Reason", - "type": "string" - } - }, - "type": "object", - "required": [ - "approval_request_id", - "approve" - ], - "title": "OpenAIResponseMCPApprovalResponse", - "description": "A response to an MCP approval request." - }, - "OpenAIResponseMessage-Input": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "array" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "output_text": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "type": "string", - "const": "system" - }, - { - "type": "string", - "const": "developer" - }, - { - "type": "string", - "const": "user" - }, - { - "type": "string", - "const": "assistant" - } - ], - "title": "Role" - }, - "type": { - "type": "string", - "const": "message", - "title": "Type", - "default": "message" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - }, - "OpenAIResponseMessage-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "array" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "output_text": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "type": "string", - "const": "system" - }, - { - "type": "string", - "const": "developer" - }, - { - "type": "string", - "const": "user" - }, - { - "type": "string", - "const": "assistant" - } - ], - "title": "Role" - }, - "type": { - "type": "string", - "const": "message", - "title": "Type", - "default": "message" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - }, - "OpenAIResponseObject": { - "properties": { - "created_at": { - "type": "integer", - "title": "Created At" - }, - "error": { - "$ref": "#/components/schemas/OpenAIResponseError" - }, - "id": { - "type": "string", - "title": "Id" - }, - "model": { - "type": "string", - "title": "Model" - }, - "object": { - "type": "string", - "const": "response", - "title": "Object", - "default": "response" - }, - "output": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Output" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Output", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "type": "array", - "title": "Output" - }, - "parallel_tool_calls": { - "type": "boolean", - "title": "Parallel Tool Calls", - "default": false - }, - "previous_response_id": { - "title": "Previous Response Id", - "type": "string" - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt" - }, - "status": { - "type": "string", - "title": "Status" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText", - "default": { - "format": { - "type": "text" - } - } - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "tools": { - "title": "Tools", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseToolMCP" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAIResponseInputToolFileSearch", - "function": "#/components/schemas/OpenAIResponseInputToolFunction", - "mcp": "#/components/schemas/OpenAIResponseToolMCP", - "web_search": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/components/schemas/OpenAIResponseInputToolWebSearch" - } - } - }, - "type": "array" - }, - "truncation": { - "title": "Truncation", - "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIResponseUsage" - }, - "instructions": { - "title": "Instructions", - "type": "string" - } - }, - "type": "object", - "required": [ - "created_at", - "id", - "model", - "output", - "status" - ], - "title": "OpenAIResponseObject", - "description": "Complete OpenAI response object containing generation results and metadata." - }, - "OpenAIResponseOutputMessageContentOutputText": { - "properties": { - "text": { - "type": "string", - "title": "Text" - }, - "type": { - "type": "string", - "const": "output_text", - "title": "Type", - "default": "output_text" - }, - "annotations": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFilePath" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "container_file_citation": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation", - "file_citation": "#/components/schemas/OpenAIResponseAnnotationFileCitation", - "file_path": "#/components/schemas/OpenAIResponseAnnotationFilePath", - "url_citation": "#/components/schemas/OpenAIResponseAnnotationCitation" - } - } - }, - "type": "array", - "title": "Annotations" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIResponseOutputMessageContentOutputText" - }, - "OpenAIResponseOutputMessageFileSearchToolCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "queries": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Queries" - }, - "status": { - "type": "string", - "title": "Status" - }, - "type": { - "type": "string", - "const": "file_search_call", - "title": "Type", - "default": "file_search_call" - }, - "results": { - "title": "Results", - "items": { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "id", - "queries", - "status" - ], - "title": "OpenAIResponseOutputMessageFileSearchToolCall", - "description": "File search tool call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageFileSearchToolCallResults": { - "properties": { - "attributes": { - "additionalProperties": true, - "type": "object", - "title": "Attributes" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "score": { - "type": "number", - "title": "Score" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "attributes", - "file_id", - "filename", - "score", - "text" - ], - "title": "OpenAIResponseOutputMessageFileSearchToolCallResults", - "description": "Search results returned by the file search operation." - }, - "OpenAIResponseOutputMessageFunctionToolCall": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "arguments": { - "type": "string", - "title": "Arguments" - }, - "type": { - "type": "string", - "const": "function_call", - "title": "Type", - "default": "function_call" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "call_id", - "name", - "arguments" - ], - "title": "OpenAIResponseOutputMessageFunctionToolCall", - "description": "Function tool call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageMCPCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "type": { - "type": "string", - "const": "mcp_call", - "title": "Type", - "default": "mcp_call" - }, - "arguments": { - "type": "string", - "title": "Arguments" - }, - "name": { - "type": "string", - "title": "Name" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "error": { - "title": "Error", - "type": "string" - }, - "output": { - "title": "Output", - "type": "string" - } - }, - "type": "object", - "required": [ - "id", - "arguments", - "name", - "server_label" - ], - "title": "OpenAIResponseOutputMessageMCPCall", - "description": "Model Context Protocol (MCP) call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageMCPListTools": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "type": { - "type": "string", - "const": "mcp_list_tools", - "title": "Type", - "default": "mcp_list_tools" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "tools": { - "items": { - "$ref": "#/components/schemas/MCPListToolsTool" - }, - "type": "array", - "title": "Tools" - } - }, - "type": "object", - "required": [ - "id", - "server_label", - "tools" - ], - "title": "OpenAIResponseOutputMessageMCPListTools", - "description": "MCP list tools output message containing available tools from an MCP server." - }, - "OpenAIResponseOutputMessageWebSearchToolCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "status": { - "type": "string", - "title": "Status" - }, - "type": { - "type": "string", - "const": "web_search_call", - "title": "Type", - "default": "web_search_call" - } - }, - "type": "object", - "required": [ - "id", - "status" - ], - "title": "OpenAIResponseOutputMessageWebSearchToolCall", - "description": "Web search tool call output message for OpenAI responses." - }, - "OpenAIResponsePrompt": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "variables": { - "title": "Variables", - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "object" - }, - "version": { - "title": "Version", - "type": "string" - } - }, - "type": "object", - "required": [ - "id" - ], - "title": "OpenAIResponsePrompt", - "description": "OpenAI compatible Prompt object that is used in OpenAI responses." - }, - "OpenAIResponseText": { - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAIResponseTextFormat" - } - }, - "type": "object", - "title": "OpenAIResponseText", - "description": "Text response configuration for OpenAI responses." - }, - "OpenAIResponseTextFormat": { - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "const": "text" - }, - { - "type": "string", - "const": "json_schema" - }, - { - "type": "string", - "const": "json_object" - } - ], - "title": "Type" - }, - "name": { - "title": "Name", - "type": "string" - }, - "schema": { - "title": "Schema", - "additionalProperties": true, - "type": "object" - }, - "description": { - "title": "Description", - "type": "string" - }, - "strict": { - "title": "Strict", - "type": "boolean" - } - }, - "type": "object", - "title": "OpenAIResponseTextFormat", - "description": "Configuration for Responses API text format." - }, - "OpenAIResponseToolMCP": { - "properties": { - "type": { - "type": "string", - "const": "mcp", - "title": "Type", - "default": "mcp" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "allowed_tools": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/AllowedToolsFilter" - } - ], - "title": "Allowed Tools" - } - }, - "type": "object", - "required": [ - "server_label" - ], - "title": "OpenAIResponseToolMCP", - "description": "Model Context Protocol (MCP) tool configuration for OpenAI response object." - }, - "OpenAIResponseUsage": { - "properties": { - "input_tokens": { - "type": "integer", - "title": "Input Tokens" - }, - "output_tokens": { - "type": "integer", - "title": "Output Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - }, - "input_tokens_details": { - "$ref": "#/components/schemas/OpenAIResponseUsageInputTokensDetails" - }, - "output_tokens_details": { - "$ref": "#/components/schemas/OpenAIResponseUsageOutputTokensDetails" - } - }, - "type": "object", - "required": [ - "input_tokens", - "output_tokens", - "total_tokens" - ], - "title": "OpenAIResponseUsage", - "description": "Usage information for OpenAI response." - }, - "OpenAIResponseUsageInputTokensDetails": { - "properties": { - "cached_tokens": { - "title": "Cached Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIResponseUsageInputTokensDetails", - "description": "Token details for input tokens in OpenAI response usage." - }, - "OpenAIResponseUsageOutputTokensDetails": { - "properties": { - "reasoning_tokens": { - "title": "Reasoning Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIResponseUsageOutputTokensDetails", - "description": "Token details for output tokens in OpenAI response usage." - }, - "OpenAISystemMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "system", - "title": "Role", - "default": "system" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAISystemMessageParam", - "description": "A system message providing instructions or context to the model." - }, - "OpenAITokenLogProb": { - "properties": { - "token": { - "type": "string", - "title": "Token" - }, - "bytes": { - "title": "Bytes", - "items": { - "type": "integer" - }, - "type": "array" - }, - "logprob": { - "type": "number", - "title": "Logprob" - }, - "top_logprobs": { - "items": { - "$ref": "#/components/schemas/OpenAITopLogProb" - }, - "type": "array", - "title": "Top Logprobs" - } - }, - "type": "object", - "required": [ - "token", - "logprob", - "top_logprobs" - ], - "title": "OpenAITokenLogProb", - "description": "The log probability for a token from an OpenAI-compatible chat completion response." - }, - "OpenAIToolMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "tool", - "title": "Role", - "default": "tool" - }, - "tool_call_id": { - "type": "string", - "title": "Tool Call Id" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "tool_call_id", - "content" - ], - "title": "OpenAIToolMessageParam", - "description": "A message representing the result of a tool invocation in an OpenAI-compatible chat completion request." - }, - "OpenAITopLogProb": { - "properties": { - "token": { - "type": "string", - "title": "Token" - }, - "bytes": { - "title": "Bytes", - "items": { - "type": "integer" - }, - "type": "array" - }, - "logprob": { - "type": "number", - "title": "Logprob" - } - }, - "type": "object", - "required": [ - "token", - "logprob" - ], - "title": "OpenAITopLogProb", - "description": "The top log probability for a token from an OpenAI-compatible chat completion response." - }, - "OpenAIUserMessageParam-Input": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file": "#/components/schemas/OpenAIFile", - "image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam", - "text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "description": "A message from the user in an OpenAI-compatible chat completion request." - }, - "OpenAIUserMessageParam-Output": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file": "#/components/schemas/OpenAIFile", - "image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam", - "text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "description": "A message from the user in an OpenAI-compatible chat completion request." - }, - "OptimizerConfig": { - "properties": { - "optimizer_type": { - "$ref": "#/components/schemas/OptimizerType" - }, - "lr": { - "type": "number", - "title": "Lr" - }, - "weight_decay": { - "type": "number", - "title": "Weight Decay" - }, - "num_warmup_steps": { - "type": "integer", - "title": "Num Warmup Steps" - } - }, - "type": "object", - "required": [ - "optimizer_type", - "lr", - "weight_decay", - "num_warmup_steps" - ], - "title": "OptimizerConfig", - "description": "Configuration parameters for the optimization algorithm." - }, - "OptimizerType": { - "type": "string", - "enum": [ - "adam", - "adamw", - "sgd" - ], - "title": "OptimizerType", - "description": "Available optimizer algorithms for training." - }, - "Order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "title": "Order", - "description": "Sort order for paginated responses." - }, - "OutputTokensDetails": { - "properties": { - "reasoning_tokens": { - "type": "integer", - "title": "Reasoning Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "reasoning_tokens" - ], - "title": "OutputTokensDetails" - }, - "PostTrainingJob": { - "properties": { - "job_uuid": { - "type": "string", - "title": "Job Uuid" - } - }, - "type": "object", - "required": [ - "job_uuid" - ], - "title": "PostTrainingJob" - }, - "Prompt": { - "properties": { - "prompt": { - "title": "Prompt", - "description": "The system prompt with variable placeholders", - "type": "string" - }, - "version": { - "type": "integer", - "minimum": 1.0, - "title": "Version", - "description": "Version (integer starting at 1, incremented on save)" - }, - "prompt_id": { - "type": "string", - "title": "Prompt Id", - "description": "Unique identifier in format 'pmpt_<48-digit-hash>'" - }, - "variables": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Variables", - "description": "List of variable names that can be used in the prompt template" - }, - "is_default": { - "type": "boolean", - "title": "Is Default", - "description": "Boolean indicating whether this version is the default version", - "default": false - } - }, - "type": "object", - "required": [ - "version", - "prompt_id" - ], - "title": "Prompt", - "description": "A prompt resource representing a stored OpenAI Compatible prompt template in Llama Stack." - }, - "ProviderInfo": { - "properties": { - "api": { - "type": "string", - "title": "Api" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "provider_type": { - "type": "string", - "title": "Provider Type" - }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - }, - "health": { - "additionalProperties": true, - "type": "object", - "title": "Health" - } - }, - "type": "object", - "required": [ - "api", - "provider_id", - "provider_type", - "config", - "health" - ], - "title": "ProviderInfo", - "description": "Information about a registered provider including its configuration and health status." - }, - "QueryChunksResponse": { - "properties": { - "chunks": { - "items": { - "$ref": "#/components/schemas/Chunk-Output" - }, - "type": "array", - "title": "Chunks" - }, - "scores": { - "items": { - "type": "number" - }, - "type": "array", - "title": "Scores" - } - }, - "type": "object", - "required": [ - "chunks", - "scores" - ], - "title": "QueryChunksResponse", - "description": "Response from querying chunks in a vector database." - }, - "RAGQueryConfig": { - "properties": { - "query_generator_config": { - "oneOf": [ - { - "$ref": "#/components/schemas/DefaultRAGQueryGeneratorConfig" - }, - { - "$ref": "#/components/schemas/LLMRAGQueryGeneratorConfig" - } - ], - "title": "Query Generator Config", - "default": { - "type": "default", - "separator": " " - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "default": "#/components/schemas/DefaultRAGQueryGeneratorConfig", - "llm": "#/components/schemas/LLMRAGQueryGeneratorConfig" - } - } - }, - "max_tokens_in_context": { - "type": "integer", - "title": "Max Tokens In Context", - "default": 4096 - }, - "max_chunks": { - "type": "integer", - "title": "Max Chunks", - "default": 5 - }, - "chunk_template": { - "type": "string", - "title": "Chunk Template", - "default": "Result {index}\nContent: {chunk.content}\nMetadata: {metadata}\n" - }, - "mode": { - "default": "vector", - "$ref": "#/components/schemas/RAGSearchMode" - }, - "ranker": { - "title": "Ranker", - "oneOf": [ - { - "$ref": "#/components/schemas/RRFRanker" - }, - { - "$ref": "#/components/schemas/WeightedRanker" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "rrf": "#/components/schemas/RRFRanker", - "weighted": "#/components/schemas/WeightedRanker" - } - } - } - }, - "type": "object", - "title": "RAGQueryConfig", - "description": "Configuration for the RAG query generation." - }, - "RAGQueryResult": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "title": "RAGQueryResult", - "description": "Result of a RAG query containing retrieved content and metadata." - }, - "RAGSearchMode": { - "type": "string", - "enum": [ - "vector", - "keyword", - "hybrid" - ], - "title": "RAGSearchMode", - "description": "Search modes for RAG query retrieval:\n- VECTOR: Uses vector similarity search for semantic matching\n- KEYWORD: Uses keyword-based search for exact matching\n- HYBRID: Combines both vector and keyword search for better results" - }, - "RRFRanker": { - "properties": { - "type": { - "type": "string", - "const": "rrf", - "title": "Type", - "default": "rrf" - }, - "impact_factor": { - "type": "number", - "title": "Impact Factor", - "default": 60.0, - "minimum": 0.0 - } - }, - "type": "object", - "title": "RRFRanker", - "description": "Reciprocal Rank Fusion (RRF) ranker configuration." - }, - "RegexParserScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "regex_parser", - "title": "Type", - "default": "regex_parser" - }, - "parsing_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Parsing Regexes", - "description": "Regex to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "RegexParserScoringFnParams", - "description": "Parameters for regex parser scoring function configuration." - }, - "RerankData": { - "properties": { - "index": { - "type": "integer", - "title": "Index" - }, - "relevance_score": { - "type": "number", - "title": "Relevance Score" - } - }, - "type": "object", - "required": [ - "index", - "relevance_score" - ], - "title": "RerankData", - "description": "A single rerank result from a reranking response." - }, - "RerankResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/RerankData" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "RerankResponse", - "description": "Response from a reranking request." - }, - "RouteInfo": { - "properties": { - "route": { - "type": "string", - "title": "Route" - }, - "method": { - "type": "string", - "title": "Method" - }, - "provider_types": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Provider Types" - } - }, - "type": "object", - "required": [ - "route", - "method", - "provider_types" - ], - "title": "RouteInfo", - "description": "Information about an API route including its path, method, and implementing providers." - }, - "RowsDataSource": { - "properties": { - "type": { - "type": "string", - "const": "rows", - "title": "Type", - "default": "rows" - }, - "rows": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Rows" - } - }, - "type": "object", - "required": [ - "rows" - ], - "title": "RowsDataSource", - "description": "A dataset stored in rows." - }, - "RunShieldResponse": { - "properties": { - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "type": "object", - "title": "RunShieldResponse", - "description": "Response from running a safety shield." - }, - "SafetyViolation": { - "properties": { - "violation_level": { - "$ref": "#/components/schemas/ViolationLevel" - }, - "user_message": { - "title": "User Message", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "violation_level" - ], - "title": "SafetyViolation", - "description": "Details of a safety violation detected by content moderation." - }, - "SamplingParams": { - "properties": { - "strategy": { - "oneOf": [ - { - "$ref": "#/components/schemas/GreedySamplingStrategy" - }, - { - "$ref": "#/components/schemas/TopPSamplingStrategy" - }, - { - "$ref": "#/components/schemas/TopKSamplingStrategy" - } - ], - "title": "Strategy", - "discriminator": { - "propertyName": "type", - "mapping": { - "greedy": "#/components/schemas/GreedySamplingStrategy", - "top_k": "#/components/schemas/TopKSamplingStrategy", - "top_p": "#/components/schemas/TopPSamplingStrategy" - } - } - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "repetition_penalty": { - "title": "Repetition Penalty", - "default": 1.0, - "type": "number" - }, - "stop": { - "title": "Stop", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "SamplingParams", - "description": "Sampling parameters." - }, - "ScoreBatchResponse": { - "properties": { - "dataset_id": { - "title": "Dataset Id", - "type": "string" - }, - "results": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Results" - } - }, - "type": "object", - "required": [ - "results" - ], - "title": "ScoreBatchResponse", - "description": "Response from batch scoring operations on datasets." - }, - "ScoreResponse": { - "properties": { - "results": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Results" - } - }, - "type": "object", - "required": [ - "results" - ], - "title": "ScoreResponse", - "description": "The response from scoring." - }, - "ScoringFn-Input": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "scoring_function", - "title": "Type", - "default": "scoring_function" - }, - "description": { - "title": "Description", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this definition" - }, - "return_type": { - "oneOf": [ - { - "$ref": "#/components/schemas/StringType" - }, - { - "$ref": "#/components/schemas/NumberType" - }, - { - "$ref": "#/components/schemas/BooleanType" - }, - { - "$ref": "#/components/schemas/ArrayType" - }, - { - "$ref": "#/components/schemas/ObjectType" - }, - { - "$ref": "#/components/schemas/JsonType" - }, - { - "$ref": "#/components/schemas/UnionType" - }, - { - "$ref": "#/components/schemas/ChatCompletionInputType" - }, - { - "$ref": "#/components/schemas/CompletionInputType" - }, - { - "$ref": "#/components/schemas/AgentTurnInputType" - } - ], - "title": "Return Type", - "description": "The return type of the deterministic function", - "discriminator": { - "propertyName": "type", - "mapping": { - "agent_turn_input": "#/components/schemas/AgentTurnInputType", - "array": "#/components/schemas/ArrayType", - "boolean": "#/components/schemas/BooleanType", - "chat_completion_input": "#/components/schemas/ChatCompletionInputType", - "completion_input": "#/components/schemas/CompletionInputType", - "json": "#/components/schemas/JsonType", - "number": "#/components/schemas/NumberType", - "object": "#/components/schemas/ObjectType", - "string": "#/components/schemas/StringType", - "union": "#/components/schemas/UnionType" - } - } - }, - "params": { - "title": "Params", - "description": "The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "basic": "#/components/schemas/BasicScoringFnParams", - "llm_as_judge": "#/components/schemas/LLMAsJudgeScoringFnParams", - "regex_parser": "#/components/schemas/RegexParserScoringFnParams" - } - } - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "return_type" - ], - "title": "ScoringFn", - "description": "A scoring function resource for evaluating model outputs." - }, - "ScoringFn-Output": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "scoring_function", - "title": "Type", - "default": "scoring_function" - }, - "description": { - "title": "Description", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this definition" - }, - "return_type": { - "oneOf": [ - { - "$ref": "#/components/schemas/StringType" - }, - { - "$ref": "#/components/schemas/NumberType" - }, - { - "$ref": "#/components/schemas/BooleanType" - }, - { - "$ref": "#/components/schemas/ArrayType" - }, - { - "$ref": "#/components/schemas/ObjectType" - }, - { - "$ref": "#/components/schemas/JsonType" - }, - { - "$ref": "#/components/schemas/UnionType" - }, - { - "$ref": "#/components/schemas/ChatCompletionInputType" - }, - { - "$ref": "#/components/schemas/CompletionInputType" - }, - { - "$ref": "#/components/schemas/AgentTurnInputType" - } - ], - "title": "Return Type", - "description": "The return type of the deterministic function", - "discriminator": { - "propertyName": "type", - "mapping": { - "agent_turn_input": "#/components/schemas/AgentTurnInputType", - "array": "#/components/schemas/ArrayType", - "boolean": "#/components/schemas/BooleanType", - "chat_completion_input": "#/components/schemas/ChatCompletionInputType", - "completion_input": "#/components/schemas/CompletionInputType", - "json": "#/components/schemas/JsonType", - "number": "#/components/schemas/NumberType", - "object": "#/components/schemas/ObjectType", - "string": "#/components/schemas/StringType", - "union": "#/components/schemas/UnionType" - } - } - }, - "params": { - "title": "Params", - "description": "The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "basic": "#/components/schemas/BasicScoringFnParams", - "llm_as_judge": "#/components/schemas/LLMAsJudgeScoringFnParams", - "regex_parser": "#/components/schemas/RegexParserScoringFnParams" - } - } - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "return_type" - ], - "title": "ScoringFn", - "description": "A scoring function resource for evaluating model outputs." - }, - "ScoringResult": { - "properties": { - "score_rows": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Score Rows" - }, - "aggregated_results": { - "additionalProperties": true, - "type": "object", - "title": "Aggregated Results" - } - }, - "type": "object", - "required": [ - "score_rows", - "aggregated_results" - ], - "title": "ScoringResult", - "description": "A scoring result for a single row." - }, - "SearchRankingOptions": { - "properties": { - "ranker": { - "title": "Ranker", - "type": "string" - }, - "score_threshold": { - "title": "Score Threshold", - "default": 0.0, - "type": "number" - } - }, - "type": "object", - "title": "SearchRankingOptions", - "description": "Options for ranking and filtering search results." - }, - "Shield": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "shield", - "title": "Type", - "default": "shield" - }, - "params": { - "title": "Params", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "Shield", - "description": "A safety shield resource that can be used to check content." - }, - "ShieldCallStep-Input": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "shield_call", - "title": "Step Type", - "default": "shield_call" - }, - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "violation" - ], - "title": "ShieldCallStep", - "description": "A shield call step in an agent turn." - }, - "ShieldCallStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "shield_call", - "title": "Step Type", - "default": "shield_call" - }, - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "violation" - ], - "title": "ShieldCallStep", - "description": "A shield call step in an agent turn." - }, - "StopReason": { - "type": "string", - "enum": [ - "end_of_turn", - "end_of_message", - "out_of_tokens" - ], - "title": "StopReason" - }, - "StringType": { - "properties": { - "type": { - "type": "string", - "const": "string", - "title": "Type", - "default": "string" - } - }, - "type": "object", - "title": "StringType", - "description": "Parameter type for string values." - }, - "SystemMessage": { - "properties": { - "role": { - "type": "string", - "const": "system", - "title": "Role", - "default": "system" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "SystemMessage", - "description": "A system message providing instructions or context to the model." - }, - "SystemMessageBehavior": { - "type": "string", - "enum": [ - "append", - "replace" - ], - "title": "SystemMessageBehavior", - "description": "Config for how to override the default system prompt." - }, - "TextContentItem": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "TextContentItem", - "description": "A text content item" - }, - "ToolCall": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "arguments": { - "type": "string", - "title": "Arguments" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "arguments" - ], - "title": "ToolCall" - }, - "ToolChoice": { - "type": "string", - "enum": [ - "auto", - "required", - "none" - ], - "title": "ToolChoice", - "description": "Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model." - }, - "ToolConfig": { - "properties": { - "tool_choice": { - "anyOf": [ - { - "$ref": "#/components/schemas/ToolChoice" - }, - { - "type": "string" - } - ], - "title": "Tool Choice", - "default": "auto" - }, - "tool_prompt_format": { - "$ref": "#/components/schemas/ToolPromptFormat" - }, - "system_message_behavior": { - "default": "append", - "$ref": "#/components/schemas/SystemMessageBehavior" - } - }, - "type": "object", - "title": "ToolConfig", - "description": "Configuration for tool use." - }, - "ToolDef": { - "properties": { - "toolgroup_id": { - "title": "Toolgroup Id", - "type": "string" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "input_schema": { - "title": "Input Schema", - "additionalProperties": true, - "type": "object" - }, - "output_schema": { - "title": "Output Schema", - "additionalProperties": true, - "type": "object" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "name" - ], - "title": "ToolDef", - "description": "Tool definition used in runtime contexts." - }, - "ToolExecutionStep-Input": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "tool_execution", - "title": "Step Type", - "default": "tool_execution" - }, - "tool_calls": { - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array", - "title": "Tool Calls" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse-Input" - }, - "type": "array", - "title": "Tool Responses" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "tool_calls", - "tool_responses" - ], - "title": "ToolExecutionStep", - "description": "A tool execution step in an agent turn." - }, - "ToolExecutionStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "tool_execution", - "title": "Step Type", - "default": "tool_execution" - }, - "tool_calls": { - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array", - "title": "Tool Calls" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse-Output" - }, - "type": "array", - "title": "Tool Responses" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "tool_calls", - "tool_responses" - ], - "title": "ToolExecutionStep", - "description": "A tool execution step in an agent turn." - }, - "ToolGroup": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "tool_group", - "title": "Type", - "default": "tool_group" - }, - "mcp_endpoint": { - "$ref": "#/components/schemas/URL" - }, - "args": { - "title": "Args", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "ToolGroup", - "description": "A group of related tools managed together." - }, - "ToolInvocationResult": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "error_message": { - "title": "Error Message", - "type": "string" - }, - "error_code": { - "title": "Error Code", - "type": "integer" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "title": "ToolInvocationResult", - "description": "Result of a tool invocation." - }, - "ToolPromptFormat": { - "type": "string", - "enum": [ - "json", - "function_tag", - "python_list" - ], - "title": "ToolPromptFormat", - "description": "Prompt format for calling custom / zero shot tools." - }, - "ToolResponse-Input": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "description": "Response from a tool invocation." - }, - "ToolResponse-Output": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "description": "Response from a tool invocation." - }, - "ToolResponseMessage-Input": { - "properties": { - "role": { - "type": "string", - "const": "tool", - "title": "Role", - "default": "tool" - }, - "call_id": { - "type": "string", - "title": "Call Id" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "call_id", - "content" - ], - "title": "ToolResponseMessage", - "description": "A message representing the result of a tool invocation." - }, - "ToolResponseMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "tool", - "title": "Role", - "default": "tool" - }, - "call_id": { - "type": "string", - "title": "Call Id" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "call_id", - "content" - ], - "title": "ToolResponseMessage", - "description": "A message representing the result of a tool invocation." - }, - "TopKSamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "top_k", - "title": "Type", - "default": "top_k" - }, - "top_k": { - "type": "integer", - "minimum": 1.0, - "title": "Top K" - } - }, - "type": "object", - "required": [ - "top_k" - ], - "title": "TopKSamplingStrategy", - "description": "Top-k sampling strategy that restricts sampling to the k most likely tokens." - }, - "TopPSamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "top_p", - "title": "Type", - "default": "top_p" - }, - "temperature": { - "title": "Temperature", - "type": "number", - "minimum": 0.0 - }, - "top_p": { - "title": "Top P", - "default": 0.95, - "type": "number" - } - }, - "type": "object", - "required": [ - "temperature" - ], - "title": "TopPSamplingStrategy", - "description": "Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p." - }, - "TrainingConfig": { - "properties": { - "n_epochs": { - "type": "integer", - "title": "N Epochs" - }, - "max_steps_per_epoch": { - "type": "integer", - "title": "Max Steps Per Epoch", - "default": 1 - }, - "gradient_accumulation_steps": { - "type": "integer", - "title": "Gradient Accumulation Steps", - "default": 1 - }, - "max_validation_steps": { - "title": "Max Validation Steps", - "default": 1, - "type": "integer" - }, - "data_config": { - "$ref": "#/components/schemas/DataConfig" - }, - "optimizer_config": { - "$ref": "#/components/schemas/OptimizerConfig" - }, - "efficiency_config": { - "$ref": "#/components/schemas/EfficiencyConfig" - }, - "dtype": { - "title": "Dtype", - "default": "bf16", - "type": "string" - } - }, - "type": "object", - "required": [ - "n_epochs" - ], - "title": "TrainingConfig", - "description": "Comprehensive configuration for the training process." - }, - "Turn": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "input_messages": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/UserMessage-Output" - }, - { - "$ref": "#/components/schemas/ToolResponseMessage-Output" - } - ] - }, - "type": "array", - "title": "Input Messages" - }, - "steps": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/InferenceStep-Output" - }, - { - "$ref": "#/components/schemas/ToolExecutionStep-Output" - }, - { - "$ref": "#/components/schemas/ShieldCallStep-Output" - }, - { - "$ref": "#/components/schemas/MemoryRetrievalStep-Output" - } - ], - "discriminator": { - "propertyName": "step_type", - "mapping": { - "inference": "#/components/schemas/InferenceStep-Output", - "memory_retrieval": "#/components/schemas/MemoryRetrievalStep-Output", - "shield_call": "#/components/schemas/ShieldCallStep-Output", - "tool_execution": "#/components/schemas/ToolExecutionStep-Output" - } - } - }, - "type": "array", - "title": "Steps" - }, - "output_message": { - "$ref": "#/components/schemas/CompletionMessage-Output" - }, - "output_attachments": { - "title": "Output Attachments", - "items": { - "$ref": "#/components/schemas/Attachment-Output" - }, - "type": "array" - }, - "started_at": { - "type": "string", - "format": "date-time", - "title": "Started At" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - } - }, - "type": "object", - "required": [ - "turn_id", - "session_id", - "input_messages", - "steps", - "output_message", - "started_at" - ], - "title": "Turn", - "description": "A single turn in an interaction with an Agentic System." - }, - "URIDataSource": { - "properties": { - "type": { - "type": "string", - "const": "uri", - "title": "Type", - "default": "uri" - }, - "uri": { - "type": "string", - "title": "Uri" - } - }, - "type": "object", - "required": [ - "uri" - ], - "title": "URIDataSource", - "description": "A dataset that can be obtained from a URI." - }, - "URL": { - "properties": { - "uri": { - "type": "string", - "title": "Uri" - } - }, - "type": "object", - "required": [ - "uri" - ], - "title": "URL", - "description": "A URL reference to external content." - }, - "UnionType": { - "properties": { - "type": { - "type": "string", - "const": "union", - "title": "Type", - "default": "union" - } - }, - "type": "object", - "title": "UnionType", - "description": "Parameter type for union values." - }, - "UserMessage-Input": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Context" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "UserMessage", - "description": "A message from the user in a chat conversation." - }, - "UserMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Context" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "UserMessage", - "description": "A message from the user in a chat conversation." - }, - "VectorStoreChunkingStrategyAuto": { - "properties": { - "type": { - "type": "string", - "const": "auto", - "title": "Type", - "default": "auto" - } - }, - "type": "object", - "title": "VectorStoreChunkingStrategyAuto", - "description": "Automatic chunking strategy for vector store files." - }, - "VectorStoreChunkingStrategyStatic": { - "properties": { - "type": { - "type": "string", - "const": "static", - "title": "Type", - "default": "static" - }, - "static": { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStaticConfig" - } - }, - "type": "object", - "required": [ - "static" - ], - "title": "VectorStoreChunkingStrategyStatic", - "description": "Static chunking strategy with configurable parameters." - }, - "VectorStoreChunkingStrategyStaticConfig": { - "properties": { - "chunk_overlap_tokens": { - "type": "integer", - "title": "Chunk Overlap Tokens", - "default": 400 - }, - "max_chunk_size_tokens": { - "type": "integer", - "maximum": 4096.0, - "minimum": 100.0, - "title": "Max Chunk Size Tokens", - "default": 800 - } - }, - "type": "object", - "title": "VectorStoreChunkingStrategyStaticConfig", - "description": "Configuration for static chunking strategy." - }, - "VectorStoreContent": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "type", - "text" - ], - "title": "VectorStoreContent", - "description": "Content item from a vector store file or search result." - }, - "VectorStoreFileBatchObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.file_batch" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "status": { - "anyOf": [ - { - "type": "string", - "const": "completed" - }, - { - "type": "string", - "const": "in_progress" - }, - { - "type": "string", - "const": "cancelled" - }, - { - "type": "string", - "const": "failed" - } - ], - "title": "Status" - }, - "file_counts": { - "$ref": "#/components/schemas/VectorStoreFileCounts" - } - }, - "type": "object", - "required": [ - "id", - "created_at", - "vector_store_id", - "status", - "file_counts" - ], - "title": "VectorStoreFileBatchObject", - "description": "OpenAI Vector Store File Batch object." - }, - "VectorStoreFileCounts": { - "properties": { - "completed": { - "type": "integer", - "title": "Completed" - }, - "cancelled": { - "type": "integer", - "title": "Cancelled" - }, - "failed": { - "type": "integer", - "title": "Failed" - }, - "in_progress": { - "type": "integer", - "title": "In Progress" - }, - "total": { - "type": "integer", - "title": "Total" - } - }, - "type": "object", - "required": [ - "completed", - "cancelled", - "failed", - "in_progress", - "total" - ], - "title": "VectorStoreFileCounts", - "description": "File processing status counts for a vector store." - }, - "VectorStoreFileLastError": { - "properties": { - "code": { - "anyOf": [ - { - "type": "string", - "const": "server_error" - }, - { - "type": "string", - "const": "rate_limit_exceeded" - } - ], - "title": "Code" - }, - "message": { - "type": "string", - "title": "Message" - } - }, - "type": "object", - "required": [ - "code", - "message" - ], - "title": "VectorStoreFileLastError", - "description": "Error information for failed vector store file processing." - }, - "VectorStoreFileObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.file" - }, - "attributes": { - "additionalProperties": true, - "type": "object", - "title": "Attributes" - }, - "chunking_strategy": { - "oneOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "title": "Chunking Strategy", - "discriminator": { - "propertyName": "type", - "mapping": { - "auto": "#/components/schemas/VectorStoreChunkingStrategyAuto", - "static": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - } - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "last_error": { - "$ref": "#/components/schemas/VectorStoreFileLastError" - }, - "status": { - "anyOf": [ - { - "type": "string", - "const": "completed" - }, - { - "type": "string", - "const": "in_progress" - }, - { - "type": "string", - "const": "cancelled" - }, - { - "type": "string", - "const": "failed" - } - ], - "title": "Status" - }, - "usage_bytes": { - "type": "integer", - "title": "Usage Bytes", - "default": 0 - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - } - }, - "type": "object", - "required": [ - "id", - "chunking_strategy", - "created_at", - "status", - "vector_store_id" - ], - "title": "VectorStoreFileObject", - "description": "OpenAI Vector Store File object." - }, - "VectorStoreObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "name": { - "title": "Name", - "type": "string" - }, - "usage_bytes": { - "type": "integer", - "title": "Usage Bytes", - "default": 0 - }, - "file_counts": { - "$ref": "#/components/schemas/VectorStoreFileCounts" - }, - "status": { - "type": "string", - "title": "Status", - "default": "completed" - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object" - }, - "expires_at": { - "title": "Expires At", - "type": "integer" - }, - "last_active_at": { - "title": "Last Active At", - "type": "integer" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "id", - "created_at", - "file_counts" - ], - "title": "VectorStoreObject", - "description": "OpenAI Vector Store object." - }, - "VectorStoreSearchResponse": { - "properties": { - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "score": { - "type": "number", - "title": "Score" - }, - "attributes": { - "title": "Attributes", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ] - }, - "type": "object" - }, - "content": { - "items": { - "$ref": "#/components/schemas/VectorStoreContent" - }, - "type": "array", - "title": "Content" - } - }, - "type": "object", - "required": [ - "file_id", - "filename", - "score", - "content" - ], - "title": "VectorStoreSearchResponse", - "description": "Response from searching a vector store." - }, - "VectorStoreSearchResponsePage": { - "properties": { - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.search_results.page" - }, - "search_query": { - "type": "string", - "title": "Search Query" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreSearchResponse" - }, - "type": "array", - "title": "Data" - }, - "has_more": { - "type": "boolean", - "title": "Has More", - "default": false - }, - "next_page": { - "title": "Next Page", - "type": "string" - } - }, - "type": "object", - "required": [ - "search_query", - "data" - ], - "title": "VectorStoreSearchResponsePage", - "description": "Paginated response from searching a vector store." - }, - "VersionInfo": { - "properties": { - "version": { - "type": "string", - "title": "Version" - } - }, - "type": "object", - "required": [ - "version" - ], - "title": "VersionInfo", - "description": "Version information for the service." - }, - "ViolationLevel": { - "type": "string", - "enum": [ - "info", - "warn", - "error" - ], - "title": "ViolationLevel", - "description": "Severity level of a safety violation." - }, - "WeightedRanker": { - "properties": { - "type": { - "type": "string", - "const": "weighted", - "title": "Type", - "default": "weighted" - }, - "alpha": { - "type": "number", - "maximum": 1.0, - "minimum": 0.0, - "title": "Alpha", - "description": "Weight factor between 0 and 1. 0 means only keyword scores, 1 means only vector scores.", - "default": 0.5 - } - }, - "type": "object", - "title": "WeightedRanker", - "description": "Weighted ranker configuration that combines vector and keyword scores." - }, - "_URLOrData": { - "properties": { - "url": { - "$ref": "#/components/schemas/URL" - }, - "data": { - "contentEncoding": "base64", - "title": "Data", - "type": "string" - } - }, - "type": "object", - "title": "_URLOrData", - "description": "A URL or a base64 encoded string" - }, - "__main_____agents_agent_id_session_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_name": { - "type": "string", - "title": "Session Name" - } - }, - "type": "object", - "required": [ - "agent_id", - "session_name" - ], - "title": "_agents_agent_id_session_Request" - }, - "__main_____agents_agent_id_session_session_id_turn_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "messages": { - "$ref": "#/components/schemas/UserMessage-Input" - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "documents": { - "$ref": "#/components/schemas/Document" - }, - "toolgroups": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ], - "title": "Toolgroups" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - } - }, - "type": "object", - "required": [ - "agent_id", - "session_id", - "messages", - "documents", - "toolgroups", - "tool_config" - ], - "title": "_agents_agent_id_session_session_id_turn_Request" - }, - "__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "tool_responses": { - "$ref": "#/components/schemas/ToolResponse-Input" - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - } - }, - "type": "object", - "required": [ - "agent_id", - "session_id", - "turn_id", - "tool_responses" - ], - "title": "_agents_agent_id_session_session_id_turn_turn_id_resume_Request" - }, - "__main_____datasets_Request": { - "properties": { - "purpose": { - "$ref": "#/components/schemas/DatasetPurpose" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "dataset_id": { - "type": "string", - "title": "Dataset Id" - } - }, - "type": "object", - "required": [ - "purpose", - "metadata", - "dataset_id" - ], - "title": "_datasets_Request" - }, - "_batches_Request": { - "properties": { - "input_file_id": { - "type": "string", - "title": "Input File Id" - }, - "endpoint": { - "type": "string", - "title": "Endpoint" - }, - "completion_window": { - "type": "string", - "title": "Completion Window" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "idempotency_key": { - "type": "string", - "title": "Idempotency Key" - } - }, - "type": "object", - "required": [ - "input_file_id", - "endpoint", - "completion_window", - "metadata", - "idempotency_key" - ], - "title": "_batches_Request" - }, - "_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - } - }, - "type": "object", - "required": [ - "batch_id" - ], - "title": "_batches_batch_id_cancel_Request" - }, - "_conversations_Request": { - "properties": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Input" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "title": "Items", - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/components/schemas/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Input", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "items", - "metadata" - ], - "title": "_conversations_Request" - }, - "_conversations_conversation_id_Request": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "conversation_id", - "metadata" - ], - "title": "_conversations_conversation_id_Request" - }, - "_conversations_conversation_id_items_Request": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Input" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "title": "Items" - } - }, - "type": "object", - "required": [ - "conversation_id", - "items" - ], - "title": "_conversations_conversation_id_items_Request" - }, - "_inference_rerank_Request": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "query": { - "type": "string", - "title": "Query" - }, - "items": { - "type": "string", - "title": "Items" - }, - "max_num_results": { - "type": "integer", - "title": "Max Num Results" - } - }, - "type": "object", - "required": [ - "model", - "query", - "items", - "max_num_results" - ], - "title": "_inference_rerank_Request" - }, - "_models_Request": { - "properties": { - "model_id": { - "type": "string", - "title": "Model Id" - }, - "provider_model_id": { - "type": "string", - "title": "Provider Model Id" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "model_type": { - "$ref": "#/components/schemas/ModelType" - } - }, - "type": "object", - "required": [ - "model_id", - "provider_model_id", - "provider_id", - "metadata", - "model_type" - ], - "title": "_models_Request" - }, - "_moderations_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - } - }, - "type": "object", - "required": [ - "input", - "model" - ], - "title": "_moderations_Request" - }, - "_openai_v1_batches_Request": { - "properties": { - "input_file_id": { - "type": "string", - "title": "Input File Id" - }, - "endpoint": { - "type": "string", - "title": "Endpoint" - }, - "completion_window": { - "type": "string", - "title": "Completion Window" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "idempotency_key": { - "type": "string", - "title": "Idempotency Key" - } - }, - "type": "object", - "required": [ - "input_file_id", - "endpoint", - "completion_window", - "metadata", - "idempotency_key" - ], - "title": "_openai_v1_batches_Request" - }, - "_openai_v1_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - } - }, - "type": "object", - "required": [ - "batch_id" - ], - "title": "_openai_v1_batches_batch_id_cancel_Request" - }, - "_openai_v1_moderations_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - } - }, - "type": "object", - "required": [ - "input", - "model" - ], - "title": "_openai_v1_moderations_Request" - }, - "_openai_v1_responses_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt" - }, - "instructions": { - "type": "string", - "title": "Instructions" - }, - "previous_response_id": { - "type": "string", - "title": "Previous Response Id" - }, - "conversation": { - "type": "string", - "title": "Conversation" - }, - "store": { - "type": "boolean", - "title": "Store", - "default": true - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "temperature": { - "type": "number", - "title": "Temperature" - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText" - }, - "tools": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolMCP" - } - ], - "title": "Tools", - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAIResponseInputToolFileSearch", - "function": "#/components/schemas/OpenAIResponseInputToolFunction", - "mcp": "#/components/schemas/OpenAIResponseInputToolMCP", - "web_search": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/components/schemas/OpenAIResponseInputToolWebSearch" - } - } - }, - "include": { - "type": "string", - "title": "Include" - }, - "max_infer_iters": { - "type": "integer", - "title": "Max Infer Iters", - "default": 10 - } - }, - "type": "object", - "required": [ - "input", - "model", - "prompt", - "instructions", - "previous_response_id", - "conversation", - "temperature", - "text", - "tools", - "include" - ], - "title": "_openai_v1_responses_Request" - }, - "_openai_v1_vector_stores_vector_store_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "expires_after": { - "type": "string", - "title": "Expires After" - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "name", - "expires_after", - "metadata" - ], - "title": "_openai_v1_vector_stores_vector_store_id_Request" - }, - "_openai_v1_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - } - }, - "type": "object", - "required": [ - "batch_id", - "vector_store_id" - ], - "title": "_openai_v1_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request" - }, - "_openai_v1_vector_stores_vector_store_id_files_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - }, - "chunking_strategy": { - "anyOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "title": "Chunking Strategy" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes", - "chunking_strategy" - ], - "title": "_openai_v1_vector_stores_vector_store_id_files_Request" - }, - "_openai_v1_vector_stores_vector_store_id_files_file_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes" - ], - "title": "_openai_v1_vector_stores_vector_store_id_files_file_id_Request" - }, - "_openai_v1_vector_stores_vector_store_id_search_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "query": { - "type": "string", - "title": "Query" - }, - "filters": { - "type": "string", - "title": "Filters" - }, - "max_num_results": { - "type": "integer", - "title": "Max Num Results", - "default": 10 - }, - "ranking_options": { - "$ref": "#/components/schemas/SearchRankingOptions" - }, - "rewrite_query": { - "type": "boolean", - "title": "Rewrite Query", - "default": false - }, - "search_mode": { - "type": "string", - "title": "Search Mode", - "default": "vector" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "query", - "filters", - "ranking_options" - ], - "title": "_openai_v1_vector_stores_vector_store_id_search_Request" - }, - "_prompts_Request": { - "properties": { - "prompt": { - "type": "string", - "title": "Prompt" - }, - "variables": { - "type": "string", - "title": "Variables" - } - }, - "type": "object", - "required": [ - "prompt", - "variables" - ], - "title": "_prompts_Request" - }, - "_prompts_prompt_id_Request": { - "properties": { - "prompt_id": { - "type": "string", - "title": "Prompt Id" - }, - "prompt": { - "type": "string", - "title": "Prompt" - }, - "version": { - "type": "integer", - "title": "Version" - }, - "variables": { - "type": "string", - "title": "Variables" - }, - "set_as_default": { - "type": "boolean", - "title": "Set As Default", - "default": true - } - }, - "type": "object", - "required": [ - "prompt_id", - "prompt", - "version", - "variables" - ], - "title": "_prompts_prompt_id_Request" - }, - "_prompts_prompt_id_set_default_version_Request": { - "properties": { - "prompt_id": { - "type": "string", - "title": "Prompt Id" - }, - "version": { - "type": "integer", - "title": "Version" - } - }, - "type": "object", - "required": [ - "prompt_id", - "version" - ], - "title": "_prompts_prompt_id_set_default_version_Request" - }, - "_responses_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt" - }, - "instructions": { - "type": "string", - "title": "Instructions" - }, - "previous_response_id": { - "type": "string", - "title": "Previous Response Id" - }, - "conversation": { - "type": "string", - "title": "Conversation" - }, - "store": { - "type": "boolean", - "title": "Store", - "default": true - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "temperature": { - "type": "number", - "title": "Temperature" - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText" - }, - "tools": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolMCP" - } - ], - "title": "Tools", - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAIResponseInputToolFileSearch", - "function": "#/components/schemas/OpenAIResponseInputToolFunction", - "mcp": "#/components/schemas/OpenAIResponseInputToolMCP", - "web_search": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/components/schemas/OpenAIResponseInputToolWebSearch" - } - } - }, - "include": { - "type": "string", - "title": "Include" - }, - "max_infer_iters": { - "type": "integer", - "title": "Max Infer Iters", - "default": 10 - } - }, - "type": "object", - "required": [ - "input", - "model", - "prompt", - "instructions", - "previous_response_id", - "conversation", - "temperature", - "text", - "tools", - "include" - ], - "title": "_responses_Request" - }, - "_scoring_score_Request": { - "properties": { - "input_rows": { - "type": "string", - "title": "Input Rows" - }, - "scoring_functions": { - "type": "string", - "title": "Scoring Functions" - } - }, - "type": "object", - "required": [ - "input_rows", - "scoring_functions" - ], - "title": "_scoring_score_Request" - }, - "_scoring_score_batch_Request": { - "properties": { - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "scoring_functions": { - "type": "string", - "title": "Scoring Functions" - }, - "save_results_dataset": { - "type": "boolean", - "title": "Save Results Dataset", - "default": false - } - }, - "type": "object", - "required": [ - "dataset_id", - "scoring_functions" - ], - "title": "_scoring_score_batch_Request" - }, - "_shields_Request": { - "properties": { - "shield_id": { - "type": "string", - "title": "Shield Id" - }, - "provider_shield_id": { - "type": "string", - "title": "Provider Shield Id" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "params": { - "type": "string", - "title": "Params" - } - }, - "type": "object", - "required": [ - "shield_id", - "provider_shield_id", - "provider_id", - "params" - ], - "title": "_shields_Request" - }, - "_tool_runtime_invoke_Request": { - "properties": { - "tool_name": { - "type": "string", - "title": "Tool Name" - }, - "kwargs": { - "type": "string", - "title": "Kwargs" - } - }, - "type": "object", - "required": [ - "tool_name", - "kwargs" - ], - "title": "_tool_runtime_invoke_Request" - }, - "_tool_runtime_rag_tool_query_Request": { - "properties": { - "content": { - "type": "string", - "title": "Content" - }, - "vector_store_ids": { - "type": "string", - "title": "Vector Store Ids" - }, - "query_config": { - "$ref": "#/components/schemas/RAGQueryConfig" - } - }, - "type": "object", - "required": [ - "content", - "vector_store_ids", - "query_config" - ], - "title": "_tool_runtime_rag_tool_query_Request" - }, - "_vector_io_query_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "query": { - "type": "string", - "title": "Query" - }, - "params": { - "type": "string", - "title": "Params" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "query", - "params" - ], - "title": "_vector_io_query_Request" - }, - "_vector_stores_vector_store_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "expires_after": { - "type": "string", - "title": "Expires After" - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "name", - "expires_after", - "metadata" - ], - "title": "_vector_stores_vector_store_id_Request" - }, - "_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - } - }, - "type": "object", - "required": [ - "batch_id", - "vector_store_id" - ], - "title": "_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request" - }, - "_vector_stores_vector_store_id_files_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - }, - "chunking_strategy": { - "anyOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "title": "Chunking Strategy" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes", - "chunking_strategy" - ], - "title": "_vector_stores_vector_store_id_files_Request" - }, - "_vector_stores_vector_store_id_files_file_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes" - ], - "title": "_vector_stores_vector_store_id_files_file_id_Request" - }, - "_vector_stores_vector_store_id_search_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "query": { - "type": "string", - "title": "Query" - }, - "filters": { - "type": "string", - "title": "Filters" - }, - "max_num_results": { - "type": "integer", - "title": "Max Num Results", - "default": 10 - }, - "ranking_options": { - "$ref": "#/components/schemas/SearchRankingOptions" - }, - "rewrite_query": { - "type": "boolean", - "title": "Rewrite Query", - "default": false - }, - "search_mode": { - "type": "string", - "title": "Search Mode", - "default": "vector" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "query", - "filters", - "ranking_options" - ], - "title": "_vector_stores_vector_store_id_search_Request" - }, - "Error": { - "description": "Error response from the API. Roughly follows RFC 7807.", - "properties": { - "status": { - "title": "Status", - "type": "integer" - }, - "title": { - "title": "Title", - "type": "string" - }, - "detail": { - "title": "Detail", - "type": "string" - }, - "instance": { - "title": "Instance", - "type": "string", - "nullable": true - } - }, - "required": [ - "status", - "title", - "detail" - ], - "title": "Error", - "type": "object" - }, - "Agent": { - "description": "An agent instance with configuration and metadata.", - "properties": { - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "agent_config": { - "$ref": "#/components/schemas/AgentConfig" - }, - "created_at": { - "format": "date-time", - "title": "Created At", - "type": "string" - } - }, - "required": [ - "agent_id", - "agent_config", - "created_at" - ], - "title": "Agent", - "type": "object" - }, - "AgentStepResponse": { - "description": "Response containing details of a specific agent step.", - "properties": { - "step": { - "discriminator": { - "mapping": { - "inference": "#/$defs/InferenceStep", - "memory_retrieval": "#/$defs/MemoryRetrievalStep", - "shield_call": "#/$defs/ShieldCallStep", - "tool_execution": "#/$defs/ToolExecutionStep" - }, - "propertyName": "step_type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/InferenceStep" - }, - { - "$ref": "#/components/schemas/ToolExecutionStep" - }, - { - "$ref": "#/components/schemas/ShieldCallStep" - }, - { - "$ref": "#/components/schemas/MemoryRetrievalStep" - } - ], - "title": "Step" - } - }, - "required": [ - "step" - ], - "title": "AgentStepResponse", - "type": "object" - }, - "AgentTurnCreateRequest": { - "description": "Request to create a new turn for an agent.", - "properties": { - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "input_shields": { - "title": "Input Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "output_shields": { - "title": "Output Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "toolgroups": { - "title": "Toolgroups", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ] - }, - "type": "array" - }, - "client_tools": { - "title": "Client Tools", - "items": { - "$ref": "#/components/schemas/ToolDef" - }, - "type": "array" - }, - "tool_choice": { - "deprecated": true, - "$ref": "#/components/schemas/ToolChoice", - "nullable": true - }, - "tool_prompt_format": { - "deprecated": true, - "$ref": "#/components/schemas/ToolPromptFormat", - "nullable": true - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig", - "nullable": true - }, - "max_infer_iters": { - "default": 10, - "title": "Max Infer Iters", - "type": "integer" - }, - "instructions": { - "title": "Instructions", - "type": "string", - "nullable": true - }, - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "session_id": { - "title": "Session Id", - "type": "string" - }, - "messages": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/UserMessage" - }, - { - "$ref": "#/components/schemas/ToolResponseMessage" - } - ] - }, - "title": "Messages", - "type": "array" - }, - "documents": { - "title": "Documents", - "items": { - "$ref": "#/components/schemas/Document" - }, - "type": "array", - "nullable": true - }, - "stream": { - "default": false, - "title": "Stream", - "type": "boolean" - } - }, - "required": [ - "agent_id", - "session_id", - "messages" - ], - "title": "AgentTurnCreateRequest", - "type": "object" - }, - "AgentTurnResponseEvent": { - "description": "An event in an agent turn response stream.", - "properties": { - "payload": { - "discriminator": { - "mapping": { - "step_complete": "#/$defs/AgentTurnResponseStepCompletePayload", - "step_progress": "#/$defs/AgentTurnResponseStepProgressPayload", - "step_start": "#/$defs/AgentTurnResponseStepStartPayload", - "turn_awaiting_input": "#/$defs/AgentTurnResponseTurnAwaitingInputPayload", - "turn_complete": "#/$defs/AgentTurnResponseTurnCompletePayload", - "turn_start": "#/$defs/AgentTurnResponseTurnStartPayload" - }, - "propertyName": "event_type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/AgentTurnResponseStepStartPayload" - }, - { - "$ref": "#/components/schemas/AgentTurnResponseStepProgressPayload" - }, - { - "$ref": "#/components/schemas/AgentTurnResponseStepCompletePayload" - }, - { - "$ref": "#/components/schemas/AgentTurnResponseTurnStartPayload" - }, - { - "$ref": "#/components/schemas/AgentTurnResponseTurnCompletePayload" - }, - { - "$ref": "#/components/schemas/AgentTurnResponseTurnAwaitingInputPayload" - } - ], - "title": "Payload" - } - }, - "required": [ - "payload" - ], - "title": "AgentTurnResponseEvent", - "type": "object" - }, - "AgentTurnResponseStepCompletePayload": { - "description": "Payload for step completion events in agent turn responses.", - "properties": { - "event_type": { - "const": "step_complete", - "default": "step_complete", - "title": "Event Type", - "type": "string" - }, - "step_type": { - "$ref": "#/components/schemas/StepType" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "step_details": { - "discriminator": { - "mapping": { - "inference": "#/$defs/InferenceStep", - "memory_retrieval": "#/$defs/MemoryRetrievalStep", - "shield_call": "#/$defs/ShieldCallStep", - "tool_execution": "#/$defs/ToolExecutionStep" - }, - "propertyName": "step_type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/InferenceStep" - }, - { - "$ref": "#/components/schemas/ToolExecutionStep" - }, - { - "$ref": "#/components/schemas/ShieldCallStep" - }, - { - "$ref": "#/components/schemas/MemoryRetrievalStep" - } - ], - "title": "Step Details" - } - }, - "required": [ - "step_type", - "step_id", - "step_details" - ], - "title": "AgentTurnResponseStepCompletePayload", - "type": "object" - }, - "AgentTurnResponseStepProgressPayload": { - "description": "Payload for step progress events in agent turn responses.", - "properties": { - "event_type": { - "const": "step_progress", - "default": "step_progress", - "title": "Event Type", - "type": "string" - }, - "step_type": { - "$ref": "#/components/schemas/StepType" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "delta": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageDelta", - "text": "#/$defs/TextDelta", - "tool_call": "#/$defs/ToolCallDelta" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/TextDelta" - }, - { - "$ref": "#/components/schemas/ImageDelta" - }, - { - "$ref": "#/components/schemas/ToolCallDelta" - } - ], - "title": "Delta" - } - }, - "required": [ - "step_type", - "step_id", - "delta" - ], - "title": "AgentTurnResponseStepProgressPayload", - "type": "object" - }, - "AgentTurnResponseStepStartPayload": { - "description": "Payload for step start events in agent turn responses.", - "properties": { - "event_type": { - "const": "step_start", - "default": "step_start", - "title": "Event Type", - "type": "string" - }, - "step_type": { - "$ref": "#/components/schemas/StepType" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "required": [ - "step_type", - "step_id" - ], - "title": "AgentTurnResponseStepStartPayload", - "type": "object" - }, - "AgentTurnResponseStreamChunk": { - "description": "Streamed agent turn completion response.", - "properties": { - "event": { - "$ref": "#/components/schemas/AgentTurnResponseEvent" - } - }, - "required": [ - "event" - ], - "title": "AgentTurnResponseStreamChunk", - "type": "object" - }, - "AgentTurnResponseTurnAwaitingInputPayload": { - "description": "Payload for turn awaiting input events in agent turn responses.", - "properties": { - "event_type": { - "const": "turn_awaiting_input", - "default": "turn_awaiting_input", - "title": "Event Type", - "type": "string" - }, - "turn": { - "$ref": "#/components/schemas/Turn" - } - }, - "required": [ - "turn" - ], - "title": "AgentTurnResponseTurnAwaitingInputPayload", - "type": "object" - }, - "AgentTurnResponseTurnCompletePayload": { - "description": "Payload for turn completion events in agent turn responses.", - "properties": { - "event_type": { - "const": "turn_complete", - "default": "turn_complete", - "title": "Event Type", - "type": "string" - }, - "turn": { - "$ref": "#/components/schemas/Turn" - } - }, - "required": [ - "turn" - ], - "title": "AgentTurnResponseTurnCompletePayload", - "type": "object" - }, - "AgentTurnResponseTurnStartPayload": { - "description": "Payload for turn start events in agent turn responses.", - "properties": { - "event_type": { - "const": "turn_start", - "default": "turn_start", - "title": "Event Type", - "type": "string" - }, - "turn_id": { - "title": "Turn Id", - "type": "string" - } - }, - "required": [ - "turn_id" - ], - "title": "AgentTurnResponseTurnStartPayload", - "type": "object" - }, - "AgentTurnResumeRequest": { - "description": "Request to resume an agent turn with tool responses.", - "properties": { - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "session_id": { - "title": "Session Id", - "type": "string" - }, - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse" - }, - "title": "Tool Responses", - "type": "array" - }, - "stream": { - "default": false, - "title": "Stream", - "type": "boolean" - } - }, - "required": [ - "agent_id", - "session_id", - "turn_id", - "tool_responses" - ], - "title": "AgentTurnResumeRequest", - "type": "object" - }, - "CompletionMessage": { - "description": "A message containing the model's (assistant) response in a chat conversation.", - "properties": { - "role": { - "const": "assistant", - "default": "assistant", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array" - } - }, - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionMessage", - "type": "object" - }, - "InferenceStep": { - "description": "An inference step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "inference", - "default": "inference", - "title": "Step Type", - "type": "string" - }, - "model_response": { - "$ref": "#/components/schemas/CompletionMessage" - } - }, - "required": [ - "turn_id", - "step_id", - "model_response" - ], - "title": "InferenceStep", - "type": "object" - }, - "ListOpenAIResponseInputItem": { - "description": "List container for OpenAI response input items.", - "properties": { - "data": { - "items": { - "anyOf": [ - { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - ] - }, - "title": "Data", - "type": "array" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data" - ], - "title": "ListOpenAIResponseInputItem", - "type": "object" - }, - "ListOpenAIResponseObject": { - "description": "Paginated list of OpenAI response objects with navigation metadata.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIResponseObjectWithInput" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIResponseObject", - "type": "object" - }, - "MemoryRetrievalStep": { - "description": "A memory retrieval step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "memory_retrieval", - "default": "memory_retrieval", - "title": "Step Type", - "type": "string" - }, - "vector_store_ids": { - "title": "Vector Store Ids", - "type": "string" - }, - "inserted_context": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Inserted Context" - } - }, - "required": [ - "turn_id", - "step_id", - "vector_store_ids", - "inserted_context" - ], - "title": "MemoryRetrievalStep", - "type": "object" - }, - "OpenAIDeleteResponseObject": { - "description": "Response object confirming deletion of an OpenAI response.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "OpenAIDeleteResponseObject", - "type": "object" - }, - "PaginatedResponse": { - "description": "A generic paginated response that follows a simple format.", - "properties": { - "data": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "url": { - "title": "Url", - "type": "string", - "nullable": true - } - }, - "required": [ - "data", - "has_more" - ], - "title": "PaginatedResponse", - "type": "object" - }, - "ResponseGuardrailSpec": { - "description": "Specification for a guardrail to apply during response generation.", - "properties": { - "type": { - "title": "Type", - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "ResponseGuardrailSpec", - "type": "object" - }, - "Session": { - "description": "A single session of an interaction with an Agentic System.", - "properties": { - "session_id": { - "title": "Session Id", - "type": "string" - }, - "session_name": { - "title": "Session Name", - "type": "string" - }, - "turns": { - "items": { - "$ref": "#/components/schemas/Turn" - }, - "title": "Turns", - "type": "array" - }, - "started_at": { - "format": "date-time", - "title": "Started At", - "type": "string" - } - }, - "required": [ - "session_id", - "session_name", - "turns", - "started_at" - ], - "title": "Session", - "type": "object" - }, - "ShieldCallStep": { - "description": "A shield call step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "shield_call", - "default": "shield_call", - "title": "Step Type", - "type": "string" - }, - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "required": [ - "turn_id", - "step_id", - "violation" - ], - "title": "ShieldCallStep", - "type": "object" - }, - "ToolExecutionStep": { - "description": "A tool execution step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "tool_execution", - "default": "tool_execution", - "title": "Step Type", - "type": "string" - }, - "tool_calls": { - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "title": "Tool Calls", - "type": "array" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse" - }, - "title": "Tool Responses", - "type": "array" - } - }, - "required": [ - "turn_id", - "step_id", - "tool_calls", - "tool_responses" - ], - "title": "ToolExecutionStep", - "type": "object" - }, - "ToolResponse": { - "description": "Response from a tool invocation.", - "properties": { - "call_id": { - "title": "Call Id", - "type": "string" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object", - "nullable": true - } - }, - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "type": "object" - }, - "ToolResponseMessage": { - "description": "A message representing the result of a tool invocation.", - "properties": { - "role": { - "const": "tool", - "default": "tool", - "title": "Role", - "type": "string" - }, - "call_id": { - "title": "Call Id", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "required": [ - "call_id", - "content" - ], - "title": "ToolResponseMessage", - "type": "object" - }, - "UserMessage": { - "description": "A message from the user in a chat conversation.", - "properties": { - "role": { - "const": "user", - "default": "user", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "context": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Context", - "nullable": true - } - }, - "required": [ - "content" - ], - "title": "UserMessage", - "type": "object" - }, - "ListBatchesResponse": { - "description": "Response containing a list of batch objects.", - "properties": { - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "description": "List of batch objects", - "items": { - "$ref": "#/components/schemas/Batch" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "description": "ID of the first batch in the list", - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "description": "ID of the last batch in the list", - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "description": "Whether there are more batches available", - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "ListBatchesResponse", - "type": "object" - }, - "ConversationCreateRequest": { - "description": "Request body for creating a conversation.", - "properties": { - "items": { - "default": [], - "description": "Initial items to include in the conversation context. You may add up to 20 items at a time.", - "title": "Items", - "items": { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/$defs/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/$defs/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ] - }, - "maxItems": 20, - "type": "array" - }, - "metadata": { - "default": {}, - "description": "Set of 16 key-value pairs that can be attached to an object. Useful for storing additional information", - "title": "Metadata", - "additionalProperties": { - "type": "string" - }, - "maxProperties": 16, - "type": "object" - } - }, - "title": "ConversationCreateRequest", - "type": "object" - }, - "ConversationDeletedResource": { - "description": "Response for deleted conversation.", - "properties": { - "id": { - "description": "The deleted conversation identifier", - "title": "Id", - "type": "string" - }, - "object": { - "default": "conversation.deleted", - "description": "Object type", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "description": "Whether the object was deleted", - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "ConversationDeletedResource", - "type": "object" - }, - "ConversationItemCreateRequest": { - "description": "Request body for creating conversation items.", - "properties": { - "items": { - "description": "Items to include in the conversation context. You may add up to 20 items at a time.", - "items": { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/$defs/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/$defs/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ] - }, - "maxItems": 20, - "title": "Items", - "type": "array" - } - }, - "required": [ - "items" - ], - "title": "ConversationItemCreateRequest", - "type": "object" - }, - "ConversationItemDeletedResource": { - "description": "Response for deleted conversation item.", - "properties": { - "id": { - "description": "The deleted item identifier", - "title": "Id", - "type": "string" - }, - "object": { - "default": "conversation.item.deleted", - "description": "Object type", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "description": "Whether the object was deleted", - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "ConversationItemDeletedResource", - "type": "object" - }, - "ConversationUpdateRequest": { - "description": "Request body for updating a conversation.", - "properties": { - "metadata": { - "additionalProperties": { - "type": "string" - }, - "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.", - "title": "Metadata", - "type": "object" - } - }, - "required": [ - "metadata" - ], - "title": "ConversationUpdateRequest", - "type": "object" - }, - "ExpiresAfter": { - "description": "Control expiration of uploaded files.\n\nParams:\n - anchor, must be \"created_at\"\n - seconds, must be int between 3600 and 2592000 (1 hour to 30 days)", - "properties": { - "anchor": { - "const": "created_at", - "title": "Anchor", - "type": "string" - }, - "seconds": { - "maximum": 2592000, - "minimum": 3600, - "title": "Seconds", - "type": "integer" - } - }, - "required": [ - "anchor", - "seconds" - ], - "title": "ExpiresAfter", - "type": "object" - }, - "ListOpenAIFileResponse": { - "description": "Response for listing files in OpenAI Files API.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIFileObject" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIFileResponse", - "type": "object" - }, - "OpenAIFileDeleteResponse": { - "description": "Response for deleting a file in OpenAI Files API.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "const": "file", - "default": "file", - "title": "Object", - "type": "string" - }, - "deleted": { - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id", - "deleted" - ], - "title": "OpenAIFileDeleteResponse", - "type": "object" - }, - "Bf16QuantizationConfig": { - "description": "Configuration for BFloat16 precision (typically no quantization).", - "properties": { - "type": { - "const": "bf16", - "default": "bf16", - "title": "Type", - "type": "string" - } - }, - "title": "Bf16QuantizationConfig", - "type": "object" - }, - "ChatCompletionRequest": { - "properties": { - "model": { - "title": "Model", - "type": "string" - }, - "messages": { - "items": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/CompletionMessage", - "system": "#/$defs/SystemMessage", - "tool": "#/$defs/ToolResponseMessage", - "user": "#/$defs/UserMessage" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/UserMessage" - }, - { - "$ref": "#/components/schemas/SystemMessage" - }, - { - "$ref": "#/components/schemas/ToolResponseMessage" - }, - { - "$ref": "#/components/schemas/CompletionMessage" - } - ] - }, - "title": "Messages", - "type": "array" - }, - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "tools": { - "title": "Tools", - "items": { - "$ref": "#/components/schemas/ToolDefinition" - }, - "type": "array" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - }, - "response_format": { - "title": "Response Format", - "discriminator": { - "mapping": { - "grammar": "#/$defs/GrammarResponseFormat", - "json_schema": "#/$defs/JsonSchemaResponseFormat" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/JsonSchemaResponseFormat" - }, - { - "$ref": "#/components/schemas/GrammarResponseFormat" - } - ], - "nullable": true - }, - "stream": { - "default": false, - "title": "Stream", - "type": "boolean" - }, - "logprobs": { - "$ref": "#/components/schemas/LogProbConfig", - "nullable": true - } - }, - "required": [ - "model", - "messages" - ], - "title": "ChatCompletionRequest", - "type": "object" - }, - "ChatCompletionResponse": { - "description": "Response from a chat completion request.", - "properties": { - "metrics": { - "title": "Metrics", - "items": { - "$ref": "#/components/schemas/MetricInResponse" - }, - "type": "array", - "nullable": true - }, - "completion_message": { - "$ref": "#/components/schemas/CompletionMessage" - }, - "logprobs": { - "title": "Logprobs", - "items": { - "$ref": "#/components/schemas/TokenLogProbs" - }, - "type": "array", - "nullable": true - } - }, - "required": [ - "completion_message" - ], - "title": "ChatCompletionResponse", - "type": "object" - }, - "ChatCompletionResponseEvent": { - "description": "An event during chat completion generation.", - "properties": { - "event_type": { - "$ref": "#/components/schemas/ChatCompletionResponseEventType" - }, - "delta": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageDelta", - "text": "#/$defs/TextDelta", - "tool_call": "#/$defs/ToolCallDelta" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/TextDelta" - }, - { - "$ref": "#/components/schemas/ImageDelta" - }, - { - "$ref": "#/components/schemas/ToolCallDelta" - } - ], - "title": "Delta" - }, - "logprobs": { - "title": "Logprobs", - "items": { - "$ref": "#/components/schemas/TokenLogProbs" - }, - "type": "array", - "nullable": true - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason", - "nullable": true - } - }, - "required": [ - "event_type", - "delta" - ], - "title": "ChatCompletionResponseEvent", - "type": "object" - }, - "ChatCompletionResponseStreamChunk": { - "description": "A chunk of a streamed chat completion response.", - "properties": { - "metrics": { - "title": "Metrics", - "items": { - "$ref": "#/components/schemas/MetricInResponse" - }, - "type": "array", - "nullable": true - }, - "event": { - "$ref": "#/components/schemas/ChatCompletionResponseEvent" - } - }, - "required": [ - "event" - ], - "title": "ChatCompletionResponseStreamChunk", - "type": "object" - }, - "CompletionResponse": { - "description": "Response from a completion request.", - "properties": { - "metrics": { - "title": "Metrics", - "items": { - "$ref": "#/components/schemas/MetricInResponse" - }, - "type": "array", - "nullable": true - }, - "content": { - "title": "Content", - "type": "string" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "logprobs": { - "title": "Logprobs", - "items": { - "$ref": "#/components/schemas/TokenLogProbs" - }, - "type": "array", - "nullable": true - } - }, - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionResponse", - "type": "object" - }, - "CompletionResponseStreamChunk": { - "description": "A chunk of a streamed completion response.", - "properties": { - "metrics": { - "title": "Metrics", - "items": { - "$ref": "#/components/schemas/MetricInResponse" - }, - "type": "array", - "nullable": true - }, - "delta": { - "title": "Delta", - "type": "string" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason", - "nullable": true - }, - "logprobs": { - "title": "Logprobs", - "items": { - "$ref": "#/components/schemas/TokenLogProbs" - }, - "type": "array", - "nullable": true - } - }, - "required": [ - "delta" - ], - "title": "CompletionResponseStreamChunk", - "type": "object" - }, - "EmbeddingsResponse": { - "description": "Response containing generated embeddings.", - "properties": { - "embeddings": { - "items": { - "items": { - "type": "number" - }, - "type": "array" - }, - "title": "Embeddings", - "type": "array" - } - }, - "required": [ - "embeddings" - ], - "title": "EmbeddingsResponse", - "type": "object" - }, - "Fp8QuantizationConfig": { - "description": "Configuration for 8-bit floating point quantization.", - "properties": { - "type": { - "const": "fp8_mixed", - "default": "fp8_mixed", - "title": "Type", - "type": "string" - } - }, - "title": "Fp8QuantizationConfig", - "type": "object" - }, - "Int4QuantizationConfig": { - "description": "Configuration for 4-bit integer quantization.", - "properties": { - "type": { - "const": "int4_mixed", - "default": "int4_mixed", - "title": "Type", - "type": "string" - }, - "scheme": { - "default": "int4_weight_int8_dynamic_activation", - "title": "Scheme", - "type": "string" - } - }, - "title": "Int4QuantizationConfig", - "type": "object" - }, - "ListOpenAIChatCompletionResponse": { - "description": "Response from listing OpenAI-compatible chat completions.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAICompletionWithInputMessages" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIChatCompletionResponse", - "type": "object" - }, - "OpenAIAssistantMessageParam": { - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request.", - "properties": { - "role": { - "const": "assistant", - "default": "assistant", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "nullable": true - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array", - "nullable": true - } - }, - "title": "OpenAIAssistantMessageParam", - "type": "object" - }, - "OpenAIChatCompletionChunk": { - "description": "Chunk from a streaming response to an OpenAI-compatible chat completion request.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAIChunkChoice" - }, - "title": "Choices", - "type": "array" - }, - "object": { - "const": "chat.completion.chunk", - "default": "chat.completion.chunk", - "title": "Object", - "type": "string" - }, - "created": { - "title": "Created", - "type": "integer" - }, - "model": { - "title": "Model", - "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsage", - "nullable": true - } - }, - "required": [ - "id", - "choices", - "created", - "model" - ], - "title": "OpenAIChatCompletionChunk", - "type": "object" - }, - "OpenAIChoice": { - "description": "A choice from an OpenAI-compatible chat completion response.", - "properties": { - "message": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/OpenAIAssistantMessageParam", - "developer": "#/$defs/OpenAIDeveloperMessageParam", - "system": "#/$defs/OpenAISystemMessageParam", - "tool": "#/$defs/OpenAIToolMessageParam", - "user": "#/$defs/OpenAIUserMessageParam" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Message" - }, - "finish_reason": { - "title": "Finish Reason", - "type": "string" - }, - "index": { - "title": "Index", - "type": "integer" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs", - "nullable": true - } - }, - "required": [ - "message", - "finish_reason", - "index" - ], - "title": "OpenAIChoice", - "type": "object" - }, - "OpenAIChoiceDelta": { - "description": "A delta from an OpenAI-compatible chat completion streaming response.", - "properties": { - "content": { - "title": "Content", - "type": "string", - "nullable": true - }, - "refusal": { - "title": "Refusal", - "type": "string", - "nullable": true - }, - "role": { - "title": "Role", - "type": "string", - "nullable": true - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array", - "nullable": true - }, - "reasoning_content": { - "title": "Reasoning Content", - "type": "string", - "nullable": true - } - }, - "title": "OpenAIChoiceDelta", - "type": "object" - }, - "OpenAIChoiceLogprobs": { - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response.", - "properties": { - "content": { - "title": "Content", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array", - "nullable": true - }, - "refusal": { - "title": "Refusal", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array", - "nullable": true - } - }, - "title": "OpenAIChoiceLogprobs", - "type": "object" - }, - "OpenAIChunkChoice": { - "description": "A chunk choice from an OpenAI-compatible chat completion streaming response.", - "properties": { - "delta": { - "$ref": "#/components/schemas/OpenAIChoiceDelta" - }, - "finish_reason": { - "title": "Finish Reason", - "type": "string" - }, - "index": { - "title": "Index", - "type": "integer" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs", - "nullable": true - } - }, - "required": [ - "delta", - "finish_reason", - "index" - ], - "title": "OpenAIChunkChoice", - "type": "object" - }, - "OpenAICompletionChoice": { - "description": "A choice from an OpenAI-compatible completion response.", - "properties": { - "finish_reason": { - "title": "Finish Reason", - "type": "string" - }, - "text": { - "title": "Text", - "type": "string" - }, - "index": { - "title": "Index", - "type": "integer" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs", - "nullable": true - } - }, - "required": [ - "finish_reason", - "text", - "index" - ], - "title": "OpenAICompletionChoice", - "type": "object" - }, - "OpenAICompletionLogprobs": { - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible completion response.", - "properties": { - "text_offset": { - "title": "Text Offset", - "items": { - "type": "integer" - }, - "type": "array", - "nullable": true - }, - "token_logprobs": { - "title": "Token Logprobs", - "items": { - "type": "number" - }, - "type": "array", - "nullable": true - }, - "tokens": { - "title": "Tokens", - "items": { - "type": "string" - }, - "type": "array", - "nullable": true - }, - "top_logprobs": { - "title": "Top Logprobs", - "items": { - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "type": "array", - "nullable": true - } - }, - "title": "OpenAICompletionLogprobs", - "type": "object" - }, - "OpenAICompletionWithInputMessages": { - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAIChoice" - }, - "title": "Choices", - "type": "array" - }, - "object": { - "const": "chat.completion", - "default": "chat.completion", - "title": "Object", - "type": "string" - }, - "created": { - "title": "Created", - "type": "integer" - }, - "model": { - "title": "Model", - "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsage", - "nullable": true - }, - "input_messages": { - "items": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/OpenAIAssistantMessageParam", - "developer": "#/$defs/OpenAIDeveloperMessageParam", - "system": "#/$defs/OpenAISystemMessageParam", - "tool": "#/$defs/OpenAIToolMessageParam", - "user": "#/$defs/OpenAIUserMessageParam" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ] - }, - "title": "Input Messages", - "type": "array" - } - }, - "required": [ - "id", - "choices", - "created", - "model", - "input_messages" - ], - "title": "OpenAICompletionWithInputMessages", - "type": "object" - }, - "OpenAIUserMessageParam": { - "description": "A message from the user in an OpenAI-compatible chat completion request.", - "properties": { - "role": { - "const": "user", - "default": "user", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "discriminator": { - "mapping": { - "file": "#/$defs/OpenAIFile", - "image_url": "#/$defs/OpenAIChatCompletionContentPartImageParam", - "text": "#/$defs/OpenAIChatCompletionContentPartTextParam" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string", - "nullable": true - } - }, - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "type": "object" - }, - "TokenLogProbs": { - "description": "Log probabilities for generated tokens.", - "properties": { - "logprobs_by_token": { - "additionalProperties": { - "type": "number" - }, - "title": "Logprobs By Token", - "type": "object" - } - }, - "required": [ - "logprobs_by_token" - ], - "title": "TokenLogProbs", - "type": "object" - }, - "Checkpoint": { - "description": "Checkpoint created during training runs.", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string" - }, - "created_at": { - "format": "date-time", - "title": "Created At", - "type": "string" - }, - "epoch": { - "title": "Epoch", - "type": "integer" - }, - "post_training_job_id": { - "title": "Post Training Job Id", - "type": "string" - }, - "path": { - "title": "Path", - "type": "string" - }, - "training_metrics": { - "$ref": "#/components/schemas/PostTrainingMetric", - "nullable": true - } - }, - "required": [ - "identifier", - "created_at", - "epoch", - "post_training_job_id", - "path" - ], - "title": "Checkpoint", - "type": "object" - }, - "LoraFinetuningConfig": { - "description": "Configuration for Low-Rank Adaptation (LoRA) fine-tuning.", - "properties": { - "type": { - "const": "LoRA", - "default": "LoRA", - "title": "Type", - "type": "string" - }, - "lora_attn_modules": { - "items": { - "type": "string" - }, - "title": "Lora Attn Modules", - "type": "array" - }, - "apply_lora_to_mlp": { - "title": "Apply Lora To Mlp", - "type": "boolean" - }, - "apply_lora_to_output": { - "title": "Apply Lora To Output", - "type": "boolean" - }, - "rank": { - "title": "Rank", - "type": "integer" - }, - "alpha": { - "title": "Alpha", - "type": "integer" - }, - "use_dora": { - "default": false, - "title": "Use Dora", - "type": "boolean" - }, - "quantize_base": { - "default": false, - "title": "Quantize Base", - "type": "boolean" - } - }, - "required": [ - "lora_attn_modules", - "apply_lora_to_mlp", - "apply_lora_to_output", - "rank", - "alpha" - ], - "title": "LoraFinetuningConfig", - "type": "object" - }, - "PostTrainingJobArtifactsResponse": { - "description": "Artifacts of a finetuning job.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "checkpoints": { - "items": { - "$ref": "#/components/schemas/Checkpoint" - }, - "title": "Checkpoints", - "type": "array" - } - }, - "required": [ - "job_uuid" - ], - "title": "PostTrainingJobArtifactsResponse", - "type": "object" - }, - "PostTrainingJobLogStream": { - "description": "Stream of logs from a finetuning job.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "log_lines": { - "items": { - "type": "string" - }, - "title": "Log Lines", - "type": "array" - } - }, - "required": [ - "job_uuid", - "log_lines" - ], - "title": "PostTrainingJobLogStream", - "type": "object" - }, - "PostTrainingJobStatusResponse": { - "description": "Status of a finetuning job.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - }, - "scheduled_at": { - "title": "Scheduled At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "resources_allocated": { - "title": "Resources Allocated", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "checkpoints": { - "items": { - "$ref": "#/components/schemas/Checkpoint" - }, - "title": "Checkpoints", - "type": "array" - } - }, - "required": [ - "job_uuid", - "status" - ], - "title": "PostTrainingJobStatusResponse", - "type": "object" - }, - "PostTrainingRLHFRequest": { - "description": "Request to finetune a model using reinforcement learning from human feedback.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "finetuned_model": { - "$ref": "#/components/schemas/URL" - }, - "dataset_id": { - "title": "Dataset Id", - "type": "string" - }, - "validation_dataset_id": { - "title": "Validation Dataset Id", - "type": "string" - }, - "algorithm": { - "$ref": "#/components/schemas/RLHFAlgorithm" - }, - "algorithm_config": { - "$ref": "#/components/schemas/DPOAlignmentConfig" - }, - "optimizer_config": { - "$ref": "#/components/schemas/OptimizerConfig" - }, - "training_config": { - "$ref": "#/components/schemas/TrainingConfig" - }, - "hyperparam_search_config": { - "additionalProperties": true, - "title": "Hyperparam Search Config", - "type": "object" - }, - "logger_config": { - "additionalProperties": true, - "title": "Logger Config", - "type": "object" - } - }, - "required": [ - "job_uuid", - "finetuned_model", - "dataset_id", - "validation_dataset_id", - "algorithm", - "algorithm_config", - "optimizer_config", - "training_config", - "hyperparam_search_config", - "logger_config" - ], - "title": "PostTrainingRLHFRequest", - "type": "object" - }, - "QATFinetuningConfig": { - "description": "Configuration for Quantization-Aware Training (QAT) fine-tuning.", - "properties": { - "type": { - "const": "QAT", - "default": "QAT", - "title": "Type", - "type": "string" - }, - "quantizer_name": { - "title": "Quantizer Name", - "type": "string" - }, - "group_size": { - "title": "Group Size", - "type": "integer" - } - }, - "required": [ - "quantizer_name", - "group_size" - ], - "title": "QATFinetuningConfig", - "type": "object" - }, - "ScoringFn": { - "description": "A scoring function resource for evaluating model outputs.", - "properties": { - "identifier": { - "description": "Unique identifier for this resource in llama stack", - "title": "Identifier", - "type": "string" - }, - "provider_resource_id": { - "description": "Unique identifier for this resource in the provider", - "title": "Provider Resource Id", - "type": "string", - "nullable": true - }, - "provider_id": { - "description": "ID of the provider that owns this resource", - "title": "Provider Id", - "type": "string" - }, - "type": { - "const": "scoring_function", - "default": "scoring_function", - "title": "Type", - "type": "string" - }, - "description": { - "title": "Description", - "type": "string", - "nullable": true - }, - "metadata": { - "additionalProperties": true, - "description": "Any additional metadata for this definition", - "title": "Metadata", - "type": "object" - }, - "return_type": { - "description": "The return type of the deterministic function", - "discriminator": { - "mapping": { - "agent_turn_input": "#/$defs/AgentTurnInputType", - "array": "#/$defs/ArrayType", - "boolean": "#/$defs/BooleanType", - "chat_completion_input": "#/$defs/ChatCompletionInputType", - "completion_input": "#/$defs/CompletionInputType", - "json": "#/$defs/JsonType", - "number": "#/$defs/NumberType", - "object": "#/$defs/ObjectType", - "string": "#/$defs/StringType", - "union": "#/$defs/UnionType" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/StringType" - }, - { - "$ref": "#/components/schemas/NumberType" - }, - { - "$ref": "#/components/schemas/BooleanType" - }, - { - "$ref": "#/components/schemas/ArrayType" - }, - { - "$ref": "#/components/schemas/ObjectType" - }, - { - "$ref": "#/components/schemas/JsonType" - }, - { - "$ref": "#/components/schemas/UnionType" - }, - { - "$ref": "#/components/schemas/ChatCompletionInputType" - }, - { - "$ref": "#/components/schemas/CompletionInputType" - }, - { - "$ref": "#/components/schemas/AgentTurnInputType" - } - ], - "title": "Return Type" - }, - "params": { - "description": "The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - "title": "Params", - "discriminator": { - "mapping": { - "basic": "#/$defs/BasicScoringFnParams", - "llm_as_judge": "#/$defs/LLMAsJudgeScoringFnParams", - "regex_parser": "#/$defs/RegexParserScoringFnParams" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "nullable": true - } - }, - "required": [ - "identifier", - "provider_id", - "return_type" - ], - "title": "ScoringFn", - "type": "object" - }, - "SyntheticDataGenerationRequest": { - "description": "Request to generate synthetic data. A small batch of prompts and a filtering function", - "properties": { - "dialogs": { - "items": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/CompletionMessage", - "system": "#/$defs/SystemMessage", - "tool": "#/$defs/ToolResponseMessage", - "user": "#/$defs/UserMessage" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/UserMessage" - }, - { - "$ref": "#/components/schemas/SystemMessage" - }, - { - "$ref": "#/components/schemas/ToolResponseMessage" - }, - { - "$ref": "#/components/schemas/CompletionMessage" - } - ] - }, - "title": "Dialogs", - "type": "array" - }, - "filtering_function": { - "$ref": "#/components/schemas/FilteringFunction", - "default": "none" - }, - "model": { - "title": "Model", - "type": "string", - "nullable": true - } - }, - "required": [ - "dialogs" - ], - "title": "SyntheticDataGenerationRequest", - "type": "object" - }, - "SyntheticDataGenerationResponse": { - "description": "Response from the synthetic data generation. Batch of (prompt, response, score) tuples that pass the threshold.", - "properties": { - "synthetic_data": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "title": "Synthetic Data", - "type": "array" - }, - "statistics": { - "title": "Statistics", - "additionalProperties": true, - "type": "object", - "nullable": true - } - }, - "required": [ - "synthetic_data" - ], - "title": "SyntheticDataGenerationResponse", - "type": "object" - }, - "ListToolDefsResponse": { - "description": "Response containing a list of tool definitions.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ToolDef" - }, - "title": "Data", - "type": "array" - } - }, - "required": [ - "data" - ], - "title": "ListToolDefsResponse", - "type": "object" - }, - "RAGDocument": { - "description": "A document to be used for document ingestion in the RAG Tool.", - "properties": { - "document_id": { - "title": "Document Id", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "title": "Mime Type", - "type": "string", - "nullable": true - }, - "metadata": { - "additionalProperties": true, - "title": "Metadata", - "type": "object" - } - }, - "required": [ - "document_id", - "content" - ], - "title": "RAGDocument", - "type": "object" - }, - "ToolGroupInput": { - "description": "Input data for registering a tool group.", - "properties": { - "toolgroup_id": { - "title": "Toolgroup Id", - "type": "string" - }, - "provider_id": { - "title": "Provider Id", - "type": "string" - }, - "args": { - "title": "Args", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "mcp_endpoint": { - "$ref": "#/components/schemas/URL", - "nullable": true - } - }, - "required": [ - "toolgroup_id", - "provider_id" - ], - "title": "ToolGroupInput", - "type": "object" - }, - "Chunk": { - "description": "A chunk of content that can be inserted into a vector database.", - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "chunk_id": { - "title": "Chunk Id", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "title": "Metadata", - "type": "object" - }, - "embedding": { - "title": "Embedding", - "items": { - "type": "number" - }, - "type": "array", - "nullable": true - }, - "chunk_metadata": { - "$ref": "#/components/schemas/ChunkMetadata", - "nullable": true - } - }, - "required": [ - "content", - "chunk_id" - ], - "title": "Chunk", - "type": "object" - }, - "VectorStoreCreateRequest": { - "description": "Request to create a vector store.", - "properties": { - "name": { - "title": "Name", - "type": "string", - "nullable": true - }, - "file_ids": { - "items": { - "type": "string" - }, - "title": "File Ids", - "type": "array" - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "chunking_strategy": { - "title": "Chunking Strategy", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "metadata": { - "additionalProperties": true, - "title": "Metadata", - "type": "object" - } - }, - "title": "VectorStoreCreateRequest", - "type": "object" - }, - "VectorStoreDeleteResponse": { - "description": "Response from deleting a vector store.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "default": "vector_store.deleted", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "VectorStoreDeleteResponse", - "type": "object" - }, - "VectorStoreFileContentsResponse": { - "description": "Response from retrieving the contents of a vector store file.", - "properties": { - "file_id": { - "title": "File Id", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - }, - "attributes": { - "additionalProperties": true, - "title": "Attributes", - "type": "object" - }, - "content": { - "items": { - "$ref": "#/components/schemas/VectorStoreContent" - }, - "title": "Content", - "type": "array" - } - }, - "required": [ - "file_id", - "filename", - "attributes", - "content" - ], - "title": "VectorStoreFileContentsResponse", - "type": "object" - }, - "VectorStoreFileDeleteResponse": { - "description": "Response from deleting a vector store file.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "default": "vector_store.file.deleted", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "VectorStoreFileDeleteResponse", - "type": "object" - }, - "VectorStoreFilesListInBatchResponse": { - "description": "Response from listing files in a vector store file batch.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreFileObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreFilesListInBatchResponse", - "type": "object" - }, - "VectorStoreListFilesResponse": { - "description": "Response from listing files in a vector store.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreFileObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreListFilesResponse", - "type": "object" - }, - "VectorStoreListResponse": { - "description": "Response from listing vector stores.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreListResponse", - "type": "object" - }, - "VectorStoreModifyRequest": { - "description": "Request to modify a vector store.", - "properties": { - "name": { - "title": "Name", - "type": "string", - "nullable": true - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object", - "nullable": true - } - }, - "title": "VectorStoreModifyRequest", - "type": "object" - }, - "VectorStoreSearchRequest": { - "description": "Request to search a vector store.", - "properties": { - "query": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Query" - }, - "filters": { - "title": "Filters", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "max_num_results": { - "default": 10, - "title": "Max Num Results", - "type": "integer" - }, - "ranking_options": { - "title": "Ranking Options", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "rewrite_query": { - "default": false, - "title": "Rewrite Query", - "type": "boolean" - } - }, - "required": [ - "query" - ], - "title": "VectorStoreSearchRequest", - "type": "object" - }, - "OpenAIResponseContentPartOutputText": { - "description": "Text content within a streamed response part.", - "properties": { - "type": { - "const": "output_text", - "default": "output_text", - "title": "Type", - "type": "string" - }, - "text": { - "title": "Text", - "type": "string" - }, - "annotations": { - "items": { - "discriminator": { - "mapping": { - "container_file_citation": "#/$defs/OpenAIResponseAnnotationContainerFileCitation", - "file_citation": "#/$defs/OpenAIResponseAnnotationFileCitation", - "file_path": "#/$defs/OpenAIResponseAnnotationFilePath", - "url_citation": "#/$defs/OpenAIResponseAnnotationCitation" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFilePath" - } - ] - }, - "title": "Annotations", - "type": "array" - }, - "logprobs": { - "title": "Logprobs", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "nullable": true - } - }, - "required": [ - "text" - ], - "title": "OpenAIResponseContentPartOutputText", - "type": "object" - }, - "OpenAIResponseContentPartReasoningSummary": { - "description": "Reasoning summary part in a streamed response.", - "properties": { - "type": { - "const": "summary_text", - "default": "summary_text", - "title": "Type", - "type": "string" - }, - "text": { - "title": "Text", - "type": "string" - } - }, - "required": [ - "text" - ], - "title": "OpenAIResponseContentPartReasoningSummary", - "type": "object" - }, - "OpenAIResponseContentPartReasoningText": { - "description": "Reasoning text emitted as part of a streamed response.", - "properties": { - "type": { - "const": "reasoning_text", - "default": "reasoning_text", - "title": "Type", - "type": "string" - }, - "text": { - "title": "Text", - "type": "string" - } - }, - "required": [ - "text" - ], - "title": "OpenAIResponseContentPartReasoningText", - "type": "object" - }, - "OpenAIResponseMessage": { - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios.", - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "discriminator": { - "mapping": { - "input_file": "#/$defs/OpenAIResponseInputMessageContentFile", - "input_image": "#/$defs/OpenAIResponseInputMessageContentImage", - "input_text": "#/$defs/OpenAIResponseInputMessageContentText" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ] - }, - "type": "array" - }, - { - "items": { - "discriminator": { - "mapping": { - "output_text": "#/$defs/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/$defs/OpenAIResponseContentPartRefusal" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "const": "system", - "type": "string" - }, - { - "const": "developer", - "type": "string" - }, - { - "const": "user", - "type": "string" - }, - { - "const": "assistant", - "type": "string" - } - ], - "title": "Role" - }, - "type": { - "const": "message", - "default": "message", - "title": "Type", - "type": "string" - }, - "id": { - "title": "Id", - "type": "string", - "nullable": true - }, - "status": { - "title": "Status", - "type": "string", - "nullable": true - } - }, - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseCompleted": { - "description": "Streaming event indicating a response has been completed.", - "properties": { - "response": { - "$ref": "#/components/schemas/OpenAIResponseObject" - }, - "type": { - "const": "response.completed", - "default": "response.completed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "response" - ], - "title": "OpenAIResponseObjectStreamResponseCompleted", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseContentPartAdded": { - "description": "Streaming event for when a new content part is added to a response item.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "response_id": { - "title": "Response Id", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "part": { - "discriminator": { - "mapping": { - "output_text": "#/$defs/OpenAIResponseContentPartOutputText", - "reasoning_text": "#/$defs/OpenAIResponseContentPartReasoningText", - "refusal": "#/$defs/OpenAIResponseContentPartRefusal" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseContentPartOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartReasoningText" - } - ], - "title": "Part" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.content_part.added", - "default": "response.content_part.added", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "response_id", - "item_id", - "output_index", - "part", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseContentPartAdded", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseContentPartDone": { - "description": "Streaming event for when a content part is completed.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "response_id": { - "title": "Response Id", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "part": { - "discriminator": { - "mapping": { - "output_text": "#/$defs/OpenAIResponseContentPartOutputText", - "reasoning_text": "#/$defs/OpenAIResponseContentPartReasoningText", - "refusal": "#/$defs/OpenAIResponseContentPartRefusal" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseContentPartOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartReasoningText" - } - ], - "title": "Part" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.content_part.done", - "default": "response.content_part.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "response_id", - "item_id", - "output_index", - "part", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseContentPartDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseCreated": { - "description": "Streaming event indicating a new response has been created.", - "properties": { - "response": { - "$ref": "#/components/schemas/OpenAIResponseObject" - }, - "type": { - "const": "response.created", - "default": "response.created", - "title": "Type", - "type": "string" - } - }, - "required": [ - "response" - ], - "title": "OpenAIResponseObjectStreamResponseCreated", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseFailed": { - "description": "Streaming event emitted when a response fails.", - "properties": { - "response": { - "$ref": "#/components/schemas/OpenAIResponseObject" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.failed", - "default": "response.failed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "response", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseFailed", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseFileSearchCallCompleted": { - "description": "Streaming event for completed file search calls.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.file_search_call.completed", - "default": "response.file_search_call.completed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseFileSearchCallCompleted", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseFileSearchCallInProgress": { - "description": "Streaming event for file search calls in progress.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.file_search_call.in_progress", - "default": "response.file_search_call.in_progress", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseFileSearchCallInProgress", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseFileSearchCallSearching": { - "description": "Streaming event for file search currently searching.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.file_search_call.searching", - "default": "response.file_search_call.searching", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseFileSearchCallSearching", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta": { - "description": "Streaming event for incremental function call argument updates.", - "properties": { - "delta": { - "title": "Delta", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.function_call_arguments.delta", - "default": "response.function_call_arguments.delta", - "title": "Type", - "type": "string" - } - }, - "required": [ - "delta", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone": { - "description": "Streaming event for when function call arguments are completed.", - "properties": { - "arguments": { - "title": "Arguments", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.function_call_arguments.done", - "default": "response.function_call_arguments.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "arguments", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseInProgress": { - "description": "Streaming event indicating the response remains in progress.", - "properties": { - "response": { - "$ref": "#/components/schemas/OpenAIResponseObject" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.in_progress", - "default": "response.in_progress", - "title": "Type", - "type": "string" - } - }, - "required": [ - "response", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseInProgress", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseIncomplete": { - "description": "Streaming event emitted when a response ends in an incomplete state.", - "properties": { - "response": { - "$ref": "#/components/schemas/OpenAIResponseObject" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.incomplete", - "default": "response.incomplete", - "title": "Type", - "type": "string" - } - }, - "required": [ - "response", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseIncomplete", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta": { - "properties": { - "delta": { - "title": "Delta", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_call.arguments.delta", - "default": "response.mcp_call.arguments.delta", - "title": "Type", - "type": "string" - } - }, - "required": [ - "delta", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpCallArgumentsDone": { - "properties": { - "arguments": { - "title": "Arguments", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_call.arguments.done", - "default": "response.mcp_call.arguments.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "arguments", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpCallArgumentsDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpCallCompleted": { - "description": "Streaming event for completed MCP calls.", - "properties": { - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_call.completed", - "default": "response.mcp_call.completed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpCallCompleted", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpCallFailed": { - "description": "Streaming event for failed MCP calls.", - "properties": { - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_call.failed", - "default": "response.mcp_call.failed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpCallFailed", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpCallInProgress": { - "description": "Streaming event for MCP calls in progress.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_call.in_progress", - "default": "response.mcp_call.in_progress", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpCallInProgress", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpListToolsCompleted": { - "properties": { - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_list_tools.completed", - "default": "response.mcp_list_tools.completed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpListToolsCompleted", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpListToolsFailed": { - "properties": { - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_list_tools.failed", - "default": "response.mcp_list_tools.failed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpListToolsFailed", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseMcpListToolsInProgress": { - "properties": { - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.mcp_list_tools.in_progress", - "default": "response.mcp_list_tools.in_progress", - "title": "Type", - "type": "string" - } - }, - "required": [ - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseMcpListToolsInProgress", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseOutputItemAdded": { - "description": "Streaming event for when a new output item is added to the response.", - "properties": { - "response_id": { - "title": "Response Id", - "type": "string" - }, - "item": { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ], - "title": "Item" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.output_item.added", - "default": "response.output_item.added", - "title": "Type", - "type": "string" - } - }, - "required": [ - "response_id", - "item", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseOutputItemAdded", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseOutputItemDone": { - "description": "Streaming event for when an output item is completed.", - "properties": { - "response_id": { - "title": "Response Id", - "type": "string" - }, - "item": { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ], - "title": "Item" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.output_item.done", - "default": "response.output_item.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "response_id", - "item", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseOutputItemDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded": { - "description": "Streaming event for when an annotation is added to output text.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "annotation_index": { - "title": "Annotation Index", - "type": "integer" - }, - "annotation": { - "discriminator": { - "mapping": { - "container_file_citation": "#/$defs/OpenAIResponseAnnotationContainerFileCitation", - "file_citation": "#/$defs/OpenAIResponseAnnotationFileCitation", - "file_path": "#/$defs/OpenAIResponseAnnotationFilePath", - "url_citation": "#/$defs/OpenAIResponseAnnotationCitation" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFilePath" - } - ], - "title": "Annotation" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.output_text.annotation.added", - "default": "response.output_text.annotation.added", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "content_index", - "annotation_index", - "annotation", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseOutputTextDelta": { - "description": "Streaming event for incremental text content updates.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "delta": { - "title": "Delta", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.output_text.delta", - "default": "response.output_text.delta", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "delta", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseOutputTextDelta", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseOutputTextDone": { - "description": "Streaming event for when text output is completed.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "text": { - "title": "Text", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.output_text.done", - "default": "response.output_text.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "text", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseOutputTextDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded": { - "description": "Streaming event for when a new reasoning summary part is added.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "part": { - "$ref": "#/components/schemas/OpenAIResponseContentPartReasoningSummary" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "summary_index": { - "title": "Summary Index", - "type": "integer" - }, - "type": { - "const": "response.reasoning_summary_part.added", - "default": "response.reasoning_summary_part.added", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "part", - "sequence_number", - "summary_index" - ], - "title": "OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseReasoningSummaryPartDone": { - "description": "Streaming event for when a reasoning summary part is completed.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "part": { - "$ref": "#/components/schemas/OpenAIResponseContentPartReasoningSummary" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "summary_index": { - "title": "Summary Index", - "type": "integer" - }, - "type": { - "const": "response.reasoning_summary_part.done", - "default": "response.reasoning_summary_part.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "part", - "sequence_number", - "summary_index" - ], - "title": "OpenAIResponseObjectStreamResponseReasoningSummaryPartDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta": { - "description": "Streaming event for incremental reasoning summary text updates.", - "properties": { - "delta": { - "title": "Delta", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "summary_index": { - "title": "Summary Index", - "type": "integer" - }, - "type": { - "const": "response.reasoning_summary_text.delta", - "default": "response.reasoning_summary_text.delta", - "title": "Type", - "type": "string" - } - }, - "required": [ - "delta", - "item_id", - "output_index", - "sequence_number", - "summary_index" - ], - "title": "OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseReasoningSummaryTextDone": { - "description": "Streaming event for when reasoning summary text is completed.", - "properties": { - "text": { - "title": "Text", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "summary_index": { - "title": "Summary Index", - "type": "integer" - }, - "type": { - "const": "response.reasoning_summary_text.done", - "default": "response.reasoning_summary_text.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "text", - "item_id", - "output_index", - "sequence_number", - "summary_index" - ], - "title": "OpenAIResponseObjectStreamResponseReasoningSummaryTextDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseReasoningTextDelta": { - "description": "Streaming event for incremental reasoning text updates.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "delta": { - "title": "Delta", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.reasoning_text.delta", - "default": "response.reasoning_text.delta", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "delta", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseReasoningTextDelta", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseReasoningTextDone": { - "description": "Streaming event for when reasoning text is completed.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "text": { - "title": "Text", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.reasoning_text.done", - "default": "response.reasoning_text.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "text", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseReasoningTextDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseRefusalDelta": { - "description": "Streaming event for incremental refusal text updates.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "delta": { - "title": "Delta", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.refusal.delta", - "default": "response.refusal.delta", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "delta", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseRefusalDelta", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseRefusalDone": { - "description": "Streaming event for when refusal text is completed.", - "properties": { - "content_index": { - "title": "Content Index", - "type": "integer" - }, - "refusal": { - "title": "Refusal", - "type": "string" - }, - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.refusal.done", - "default": "response.refusal.done", - "title": "Type", - "type": "string" - } - }, - "required": [ - "content_index", - "refusal", - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseRefusalDone", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseWebSearchCallCompleted": { - "description": "Streaming event for completed web search calls.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.web_search_call.completed", - "default": "response.web_search_call.completed", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseWebSearchCallCompleted", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseWebSearchCallInProgress": { - "description": "Streaming event for web search calls in progress.", - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.web_search_call.in_progress", - "default": "response.web_search_call.in_progress", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseWebSearchCallInProgress", - "type": "object" - }, - "OpenAIResponseObjectStreamResponseWebSearchCallSearching": { - "properties": { - "item_id": { - "title": "Item Id", - "type": "string" - }, - "output_index": { - "title": "Output Index", - "type": "integer" - }, - "sequence_number": { - "title": "Sequence Number", - "type": "integer" - }, - "type": { - "const": "response.web_search_call.searching", - "default": "response.web_search_call.searching", - "title": "Type", - "type": "string" - } - }, - "required": [ - "item_id", - "output_index", - "sequence_number" - ], - "title": "OpenAIResponseObjectStreamResponseWebSearchCallSearching", - "type": "object" - }, - "OpenAIResponseObjectWithInput": { - "description": "OpenAI response object extended with input context information.", - "properties": { - "created_at": { - "title": "Created At", - "type": "integer" - }, - "error": { - "$ref": "#/components/schemas/OpenAIResponseError", - "nullable": true - }, - "id": { - "title": "Id", - "type": "string" - }, - "model": { - "title": "Model", - "type": "string" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "output": { - "items": { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - "title": "Output", - "type": "array" - }, - "parallel_tool_calls": { - "default": false, - "title": "Parallel Tool Calls", - "type": "boolean" - }, - "previous_response_id": { - "title": "Previous Response Id", - "type": "string", - "nullable": true - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt", - "nullable": true - }, - "status": { - "title": "Status", - "type": "string" - }, - "temperature": { - "title": "Temperature", - "type": "number", - "nullable": true - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText", - "default": { - "format": { - "type": "text" - } - } - }, - "top_p": { - "title": "Top P", - "type": "number", - "nullable": true - }, - "tools": { - "title": "Tools", - "items": { - "discriminator": { - "mapping": { - "file_search": "#/$defs/OpenAIResponseInputToolFileSearch", - "function": "#/$defs/OpenAIResponseInputToolFunction", - "mcp": "#/$defs/OpenAIResponseToolMCP", - "web_search": "#/$defs/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/$defs/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/$defs/OpenAIResponseInputToolWebSearch" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseToolMCP" - } - ] - }, - "type": "array", - "nullable": true - }, - "truncation": { - "title": "Truncation", - "type": "string", - "nullable": true - }, - "usage": { - "$ref": "#/components/schemas/OpenAIResponseUsage", - "nullable": true - }, - "instructions": { - "title": "Instructions", - "type": "string", - "nullable": true - }, - "input": { - "items": { - "anyOf": [ - { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - ] - }, - "title": "Input", - "type": "array" - } - }, - "required": [ - "created_at", - "id", - "model", - "output", - "status", - "input" - ], - "title": "OpenAIResponseObjectWithInput", - "type": "object" - }, - "ImageContentItem": { - "description": "A image content item", - "properties": { - "type": { - "const": "image", - "default": "image", - "title": "Type", - "type": "string" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "required": [ - "image" - ], - "title": "ImageContentItem", - "type": "object" - }, - "ImageDelta": { - "description": "An image content delta for streaming responses.", - "properties": { - "type": { - "const": "image", - "default": "image", - "title": "Type", - "type": "string" - }, - "image": { - "format": "binary", - "title": "Image", - "type": "string" - } - }, - "required": [ - "image" - ], - "title": "ImageDelta", - "type": "object" - }, - "TextDelta": { - "description": "A text content delta for streaming responses.", - "properties": { - "type": { - "const": "text", - "default": "text", - "title": "Type", - "type": "string" - }, - "text": { - "title": "Text", - "type": "string" - } - }, - "required": [ - "text" - ], - "title": "TextDelta", - "type": "object" - }, - "ToolCallDelta": { - "description": "A tool call content delta for streaming responses.", - "properties": { - "type": { - "const": "tool_call", - "default": "tool_call", - "title": "Type", - "type": "string" - }, - "tool_call": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/ToolCall" - } - ], - "title": "Tool Call" - }, - "parse_status": { - "$ref": "#/components/schemas/ToolCallParseStatus" - } - }, - "required": [ - "tool_call", - "parse_status" - ], - "title": "ToolCallDelta", - "type": "object" - }, - "PostTrainingMetric": { - "description": "Training metrics captured during post-training jobs.", - "properties": { - "epoch": { - "title": "Epoch", - "type": "integer" - }, - "train_loss": { - "title": "Train Loss", - "type": "number" - }, - "validation_loss": { - "title": "Validation Loss", - "type": "number" - }, - "perplexity": { - "title": "Perplexity", - "type": "number" - } - }, - "required": [ - "epoch", - "train_loss", - "validation_loss", - "perplexity" - ], - "title": "PostTrainingMetric", - "type": "object" - }, - "DialogType": { - "description": "Parameter type for dialog data with semantic output labels.", - "properties": { - "type": { - "const": "dialog", - "default": "dialog", - "title": "Type", - "type": "string" - } - }, - "title": "DialogType", - "type": "object" - }, - "ConversationMessage": { - "description": "OpenAI-compatible message item for conversations.", - "properties": { - "id": { - "description": "unique identifier for this message", - "title": "Id", - "type": "string" - }, - "content": { - "description": "message content", - "items": { - "additionalProperties": true, - "type": "object" - }, - "title": "Content", - "type": "array" - }, - "role": { - "description": "message role", - "title": "Role", - "type": "string" - }, - "status": { - "description": "message status", - "title": "Status", - "type": "string" - }, - "type": { - "const": "message", - "default": "message", - "title": "Type", - "type": "string" - }, - "object": { - "const": "message", - "default": "message", - "title": "Object", - "type": "string" - } - }, - "required": [ - "id", - "content", - "role", - "status" - ], - "title": "ConversationMessage", - "type": "object" - }, - "_agents_agent_id_session_Request": { - "properties": { - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "session_name": { - "title": "Session Name", - "type": "string" - } - }, - "required": [ - "agent_id", - "session_name" - ], - "title": "_agents_agent_id_session_Request", - "type": "object" - }, - "_agents_agent_id_session_session_id_turn_Request": { - "properties": { - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "session_id": { - "title": "Session Id", - "type": "string" - }, - "messages": { - "$ref": "#/components/schemas/UserMessage" - }, - "stream": { - "default": false, - "title": "Stream", - "type": "boolean" - }, - "documents": { - "$ref": "#/components/schemas/Document" - }, - "toolgroups": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ], - "title": "Toolgroups" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - } - }, - "required": [ - "agent_id", - "session_id", - "messages", - "documents", - "toolgroups", - "tool_config" - ], - "title": "_agents_agent_id_session_session_id_turn_Request", - "type": "object" - }, - "_agents_agent_id_session_session_id_turn_turn_id_resume_Request": { - "properties": { - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "session_id": { - "title": "Session Id", - "type": "string" - }, - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "tool_responses": { - "$ref": "#/components/schemas/ToolResponse" - }, - "stream": { - "default": false, - "title": "Stream", - "type": "boolean" - } - }, - "required": [ - "agent_id", - "session_id", - "turn_id", - "tool_responses" - ], - "title": "_agents_agent_id_session_session_id_turn_turn_id_resume_Request", - "type": "object" - }, - "_safety_run_shield_Request": { - "properties": { - "shield_id": { - "title": "Shield Id", - "type": "string" - }, - "messages": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Messages" - }, - "params": { - "title": "Params", - "type": "string" - } - }, - "required": [ - "shield_id", - "messages", - "params" - ], - "title": "_safety_run_shield_Request", - "type": "object" - }, - "_datasets_Request": { - "properties": { - "purpose": { - "$ref": "#/components/schemas/DatasetPurpose" - }, - "metadata": { - "title": "Metadata", - "type": "string" - }, - "dataset_id": { - "title": "Dataset Id", - "type": "string" - } - }, - "required": [ - "purpose", - "metadata", - "dataset_id" - ], - "title": "_datasets_Request", - "type": "object" - }, - "Attachment": { - "description": "An attachment to an agent turn.", - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "title": "Mime Type", - "type": "string" - } - }, - "required": [ - "content", - "mime_type" - ], - "title": "Attachment", - "type": "object" - }, - "StepType": { - "description": "Type of the step in an agent turn.", - "enum": [ - "inference", - "tool_execution", - "shield_call", - "memory_retrieval" - ], - "title": "StepType", - "type": "string" - }, - "ToolCallParseStatus": { - "description": "Status of tool call parsing during streaming.", - "enum": [ - "started", - "in_progress", - "failed", - "succeeded" - ], - "title": "ToolCallParseStatus", - "type": "string" - }, - "LogProbConfig": { - "description": ":param top_k: How many tokens (for each position) to return log probabilities for.", - "properties": { - "top_k": { - "default": 0, - "title": "Top K", - "type": "integer" - } - }, - "title": "LogProbConfig", - "type": "object" - }, - "ToolDefinition": { - "properties": { - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "description": { - "title": "Description", - "type": "string", - "nullable": true - }, - "input_schema": { - "title": "Input Schema", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "output_schema": { - "title": "Output Schema", - "additionalProperties": true, - "type": "object", - "nullable": true - } - }, - "required": [ - "tool_name" - ], - "title": "ToolDefinition", - "type": "object" - }, - "MetricInResponse": { - "description": "A metric value included in API responses.", - "properties": { - "metric": { - "title": "Metric", - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "number" - } - ], - "title": "Value" - }, - "unit": { - "title": "Unit", - "type": "string", - "nullable": true - } - }, - "required": [ - "metric", - "value" - ], - "title": "MetricInResponse", - "type": "object" - }, - "ChatCompletionResponseEventType": { - "description": "Types of events that can occur during chat completion.", - "enum": [ - "start", - "complete", - "progress" - ], - "title": "ChatCompletionResponseEventType", - "type": "string" - }, - "RLHFAlgorithm": { - "description": "Available reinforcement learning from human feedback algorithms.", - "enum": [ - "dpo" - ], - "title": "RLHFAlgorithm", - "type": "string" - }, - "FilteringFunction": { - "description": "The type of filtering function.", - "enum": [ - "none", - "random", - "top_k", - "top_p", - "top_k_top_p", - "sigmoid" - ], - "title": "FilteringFunction", - "type": "string" - } - }, - "responses": { - "BadRequest400": { - "description": "The request was invalid or malformed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 400, - "title": "Bad Request", - "detail": "The request was invalid or malformed" - } - } - } - }, - "TooManyRequests429": { - "description": "The client has sent too many requests in a given amount of time", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 429, - "title": "Too Many Requests", - "detail": "You have exceeded the rate limit. Please try again later." - } - } - } - }, - "InternalServerError500": { - "description": "The server encountered an unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 500, - "title": "Internal Server Error", - "detail": "An unexpected error occurred. Our team has been notified." - } - } - } - }, - "DefaultError": { - "description": "An unexpected error occurred", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/docs/static/deprecated-llama-stack-spec.yaml b/docs/static/deprecated-llama-stack-spec.yaml index 0526e24df..964cfe065 100644 --- a/docs/static/deprecated-llama-stack-spec.yaml +++ b/docs/static/deprecated-llama-stack-spec.yaml @@ -4,81 +4,28313 @@ info: description: A comprehensive API for building and deploying AI applications version: 1.0.0 servers: - - url: http://any-hosted-llama-stack.com -paths: {} -jsonSchemaDialect: >- - https://json-schema.org/draft/2020-12/schema +- url: https://api.llamastack.com + description: Production server +- url: https://staging-api.llamastack.com + description: Staging server +paths: + /v1/agents: + get: + tags: + - Agents + summary: List all agents. + description: List all agents. + operationId: list_agents_v1_agents_get + deprecated: true + parameters: + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of agents to return. + title: Limit + description: The number of agents to return. + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Agents + summary: Create an agent. + description: Create an agent with the given configuration. + operationId: create_agent_v1_agents_post + deprecated: true + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentConfig-Input' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/AgentCreateResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}: + delete: + tags: + - Agents + summary: Delete an agent. + description: Delete an agent by its ID. + operationId: delete_agent_v1_agents__agent_id__delete + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to delete. + title: Agent Id + description: The ID of the agent to delete. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Agents + summary: Describe an agent. + description: Describe an agent by its ID. + operationId: get_agent_v1_agents__agent_id__get + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: ID of the agent. + title: Agent Id + description: ID of the agent. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Agent' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}/session: + post: + tags: + - Agents + summary: Create a new session for an agent. + description: Create a new session for an agent. + operationId: create_agent_session_v1_agents__agent_id__session_post + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to create the session for. + title: Agent Id + description: The ID of the agent to create the session for. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAgentSessionRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/AgentSessionCreateResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}/session/{session_id}: + delete: + tags: + - Agents + summary: Delete an agent session. + description: Delete an agent session by its ID. + operationId: delete_agents_session_v1_agents__agent_id__session__session_id__delete + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to delete the session for. + title: Agent Id + description: The ID of the agent to delete the session for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to delete. + title: Session Id + description: The ID of the session to delete. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Agents + summary: Retrieve an agent session. + description: Retrieve an agent session by its ID. + operationId: get_agents_session_v1_agents__agent_id__session__session_id__get + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to get the session for. + title: Agent Id + description: The ID of the agent to get the session for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to get. + title: Session Id + description: The ID of the session to get. + - name: turn_ids + in: query + required: false + schema: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: List of turn IDs to filter the session by. + title: Turn Ids + description: List of turn IDs to filter the session by. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Session' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}/session/{session_id}/turn: + post: + tags: + - Agents + summary: Create a new turn for an agent. + description: Create a new turn for an agent. + operationId: create_agent_turn_v1_agents__agent_id__session__session_id__turn_post + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to create the turn for. + title: Agent Id + description: The ID of the agent to create the turn for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to create the turn for. + title: Session Id + description: The ID of the session to create the turn for. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnCreateRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}: + get: + tags: + - Agents + summary: Retrieve an agent turn. + description: Retrieve an agent turn by its ID. + operationId: get_agents_turn_v1_agents__agent_id__session__session_id__turn__turn_id__get + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to get the turn for. + title: Agent Id + description: The ID of the agent to get the turn for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to get the turn for. + title: Session Id + description: The ID of the session to get the turn for. + - name: turn_id + in: path + required: true + schema: + type: string + description: The ID of the turn to get. + title: Turn Id + description: The ID of the turn to get. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Turn' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume: + post: + tags: + - Agents + summary: Resume an agent turn. + description: Resume an agent turn with executed tool call responses. + operationId: resume_agent_turn_v1_agents__agent_id__session__session_id__turn__turn_id__resume_post + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to resume. + title: Agent Id + description: The ID of the agent to resume. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to resume. + title: Session Id + description: The ID of the session to resume. + - name: turn_id + in: path + required: true + schema: + type: string + description: The ID of the turn to resume. + title: Turn Id + description: The ID of the turn to resume. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnResumeRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}: + get: + tags: + - Agents + summary: Retrieve an agent step. + description: Retrieve an agent step by its ID. + operationId: get_agents_step_v1_agents__agent_id__session__session_id__turn__turn_id__step__step_id__get + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to get the step for. + title: Agent Id + description: The ID of the agent to get the step for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to get the step for. + title: Session Id + description: The ID of the session to get the step for. + - name: turn_id + in: path + required: true + schema: + type: string + description: The ID of the turn to get the step for. + title: Turn Id + description: The ID of the turn to get the step for. + - name: step_id + in: path + required: true + schema: + type: string + description: The ID of the step to get. + title: Step Id + description: The ID of the step to get. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/AgentStepResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/agents/{agent_id}/sessions: + get: + tags: + - Agents + summary: List all sessions of an agent. + description: List all session(s) of a given agent. + operationId: list_agent_sessions_v1_agents__agent_id__sessions_get + deprecated: true + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to list sessions for. + title: Agent Id + description: The ID of the agent to list sessions for. + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of sessions to return. + title: Limit + description: The number of sessions to return. + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/datasets: + get: + tags: + - Datasets + summary: List all datasets + description: List all datasets + operationId: list_datasets_v1_datasets_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListDatasetsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + deprecated: true + post: + tags: + - Datasets + summary: Register a new dataset + description: Register a new dataset + operationId: register_dataset_v1_datasets_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterDatasetRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Dataset' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + deprecated: true + /v1/datasets/{dataset_id}: + delete: + tags: + - Datasets + summary: Unregister a dataset by its ID + description: Unregister a dataset by its ID + operationId: unregister_dataset_v1_datasets__dataset_id__delete + deprecated: true + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to unregister + title: Dataset Id + description: The ID of the dataset to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Datasets + summary: Get a dataset by its ID + description: Get a dataset by its ID + operationId: get_dataset_v1_datasets__dataset_id__get + deprecated: true + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to get + title: Dataset Id + description: The ID of the dataset to get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Dataset' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/eval/benchmarks: + get: + tags: + - Benchmarks + summary: List all benchmarks + description: List all benchmarks + operationId: list_benchmarks_v1_eval_benchmarks_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListBenchmarksResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + deprecated: true + post: + tags: + - Benchmarks + summary: Register a benchmark + description: Register a benchmark + operationId: register_benchmark_v1_eval_benchmarks_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterBenchmarkRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + deprecated: true + /v1/eval/benchmarks/{benchmark_id}: + delete: + tags: + - Benchmarks + summary: Unregister a benchmark + description: Unregister a benchmark + operationId: unregister_benchmark_v1_eval_benchmarks__benchmark_id__delete + deprecated: true + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to unregister + title: Benchmark Id + description: The ID of the benchmark to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Benchmarks + summary: Get a benchmark by its ID + description: Get a benchmark by its ID + operationId: get_benchmark_v1_eval_benchmarks__benchmark_id__get + deprecated: true + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to get + title: Benchmark Id + description: The ID of the benchmark to get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Benchmark' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/eval/benchmarks/{benchmark_id}/evaluations: + post: + tags: + - Eval + summary: Evaluate a list of rows on a benchmark + description: Evaluate a list of rows on a benchmark + operationId: evaluate_rows_v1_eval_benchmarks__benchmark_id__evaluations_post + deprecated: true + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/EvaluateRowsRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EvaluateResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/eval/benchmarks/{benchmark_id}/jobs: + post: + tags: + - Eval + summary: Run an evaluation on a benchmark + description: Run an evaluation on a benchmark + operationId: run_eval_v1_eval_benchmarks__benchmark_id__jobs_post + deprecated: true + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BenchmarkConfig' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/eval/benchmarks/{benchmark_id}/jobs/{job_id}: + delete: + tags: + - Eval + summary: Cancel a job + description: Cancel a job + operationId: job_cancel_v1_eval_benchmarks__benchmark_id__jobs__job_id__delete + deprecated: true + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to cancel + title: Job Id + description: The ID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Eval + summary: Get the status of a job + description: Get the status of a job + operationId: job_status_v1_eval_benchmarks__benchmark_id__jobs__job_id__get + deprecated: true + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the status of + title: Job Id + description: The ID of the job to get the status of + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result: + get: + tags: + - Eval + summary: Get the result of a job + description: Get the result of a job + operationId: job_result_v1_eval_benchmarks__benchmark_id__jobs__job_id__result_get + deprecated: true + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the result of + title: Job Id + description: The ID of the job to get the result of + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EvaluateResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/post-training/job/artifacts: + get: + tags: + - Post Training + summary: Get the artifacts of a training job + description: Get the artifacts of a training job + operationId: get_training_job_artifacts_v1_post_training_job_artifacts_get + deprecated: true + parameters: + - name: job_uuid + in: query + required: true + schema: + type: string + description: The UUID of the job to get the artifacts of + title: Job Uuid + description: The UUID of the job to get the artifacts of + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/post-training/job/cancel: + post: + tags: + - Post Training + summary: Cancel a training job + description: Cancel a training job + operationId: cancel_training_job_v1_post_training_job_cancel_post + deprecated: true + parameters: + - name: job_uuid + in: query + required: true + schema: + type: string + description: The UUID of the job to cancel + title: Job Uuid + description: The UUID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/post-training/job/status: + get: + tags: + - Post Training + summary: Get the status of a training job + description: Get the status of a training job + operationId: get_training_job_status_v1_post_training_job_status_get + deprecated: true + parameters: + - name: job_uuid + in: query + required: true + schema: + type: string + description: The UUID of the job to get the status of + title: Job Uuid + description: The UUID of the job to get the status of + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PostTrainingJobStatusResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/post-training/jobs: + get: + tags: + - Post Training + summary: Get all training jobs + description: Get all training jobs + operationId: get_training_jobs_v1_post_training_jobs_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPostTrainingJobsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + deprecated: true + /v1/post-training/preference-optimize: + post: + tags: + - Post Training + summary: Run preference optimization of a model + description: Run preference optimization of a model + operationId: preference_optimize_v1_post_training_preference_optimize_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PreferenceOptimizeRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PostTrainingJob' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + deprecated: true + /v1/post-training/supervised-fine-tune: + post: + tags: + - Post Training + summary: Run supervised fine-tuning of a model + description: Run supervised fine-tuning of a model + operationId: supervised_fine_tune_v1_post_training_supervised_fine_tune_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SupervisedFineTuneRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PostTrainingJob' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + deprecated: true components: schemas: - Error: + Agent: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + agent_config: + $ref: '#/components/schemas/AgentConfig-Output' + description: Configuration settings for the agent + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the agent was created type: object + required: + - agent_id + - agent_config + - created_at + title: Agent + description: An agent instance with configuration and metadata. + AgentCandidate: + properties: + type: + type: string + const: agent + title: Type + description: The type of candidate. + default: agent + config: + $ref: '#/components/schemas/AgentConfig-Input' + description: The configuration for the agent candidate. + type: object + required: + - config + title: AgentCandidate + description: An agent candidate for evaluation. + AgentConfig-Input: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + model: + type: string + title: Model + description: The model identifier to use for the agent + instructions: + type: string + title: Instructions + description: The system instructions for the agent + name: + anyOf: + - type: string + - type: 'null' + title: Name + description: Optional name for the agent, used in telemetry and identification + enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' + title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted + default: false + response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' + title: Response Format + description: Optional response format configuration + type: object + required: + - model + - instructions + title: AgentConfig + description: Configuration for an agent. + AgentConfig-Output: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + model: + type: string + title: Model + description: The model identifier to use for the agent + instructions: + type: string + title: Instructions + description: The system instructions for the agent + name: + anyOf: + - type: string + - type: 'null' + title: Name + description: Optional name for the agent, used in telemetry and identification + enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' + title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted + default: false + response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' + title: Response Format + description: Optional response format configuration + type: object + required: + - model + - instructions + title: AgentConfig + description: Configuration for an agent. + AgentCreateResponse: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the created agent + type: object + required: + - agent_id + title: AgentCreateResponse + description: Response returned when creating a new agent. + AgentSessionCreateResponse: + properties: + session_id: + type: string + title: Session Id + description: Unique identifier for the created session + type: object + required: + - session_id + title: AgentSessionCreateResponse + description: Response returned when creating a new agent session. + AgentStepResponse: + properties: + step: + oneOf: + - $ref: '#/components/schemas/InferenceStep-Output' + - $ref: '#/components/schemas/ToolExecutionStep-Output' + - $ref: '#/components/schemas/ShieldCallStep-Output' + - $ref: '#/components/schemas/MemoryRetrievalStep-Output' + title: Step + description: The complete step data and execution details + discriminator: + propertyName: step_type + mapping: + inference: '#/components/schemas/InferenceStep-Output' + memory_retrieval: '#/components/schemas/MemoryRetrievalStep-Output' + shield_call: '#/components/schemas/ShieldCallStep-Output' + tool_execution: '#/components/schemas/ToolExecutionStep-Output' + type: object + required: + - step + title: AgentStepResponse + description: Response containing details of a specific agent step. + AgentToolGroupWithArgs: + properties: + name: + type: string + title: Name + args: + additionalProperties: true + type: object + title: Args + type: object + required: + - name + - args + title: AgentToolGroupWithArgs + AgentTurnCreateRequest: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + description: List of tool groups to make available for this turn + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + description: Tool configuration to override agent defaults + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + messages: + items: + anyOf: + - $ref: '#/components/schemas/UserMessage-Input' + - $ref: '#/components/schemas/ToolResponseMessage-Input' + type: array + title: Messages + description: List of messages to start the turn with + documents: + anyOf: + - items: + $ref: '#/components/schemas/Document' + type: array + - type: 'null' + title: Documents + description: List of documents to provide to the agent + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - messages + title: AgentTurnCreateRequest + description: Request to create a new turn for an agent. + AgentTurnInputType: + properties: + type: + type: string + const: agent_turn_input + title: Type + default: agent_turn_input + type: object + title: AgentTurnInputType + description: "Parameter type for agent turn input.\n\n:param type: Discriminator type. Always \"agent_turn_input\"" + AgentTurnResumeRequest: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + turn_id: + type: string + title: Turn Id + description: Unique identifier for the turn within a session + tool_responses: + items: + $ref: '#/components/schemas/ToolResponse-Input' + type: array + title: Tool Responses + description: List of tool responses to submit to continue the turn + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - turn_id + - tool_responses + title: AgentTurnResumeRequest + description: Request to resume an agent turn with tool responses. + AggregationFunctionType: + type: string + enum: + - average + - weighted_average + - median + - categorical_count + - accuracy + title: AggregationFunctionType + description: Types of aggregation functions for scoring results. + AllowedToolsFilter: + properties: + tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Tool Names + description: List of specific tool names that are allowed + type: object + title: AllowedToolsFilter + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" + ApprovalFilter: + properties: + always: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Always + description: List of tool names that always require approval + never: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Never + description: List of tool names that never require approval + type: object + title: ApprovalFilter + description: "Filter configuration for MCP tool approval requirements.\n\n:param always: (Optional) List of tool names that always require approval\n:param never: (Optional) List of tool names that never require approval" + ArrayType: + properties: + type: + type: string + const: array + title: Type + default: array + type: object + title: ArrayType + description: "Parameter type for array values.\n\n:param type: Discriminator type. Always \"array\"" + Attachment-Input: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + title: Content + description: The content of the attachment. + mime_type: + type: string + title: Mime Type + description: The MIME type of the attachment. + type: object + required: + - content + - mime_type + title: Attachment + description: An attachment to an agent turn. + Attachment-Output: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + title: Content + description: The content of the attachment. + mime_type: + type: string + title: Mime Type + description: The MIME type of the attachment. + type: object + required: + - content + - mime_type + title: Attachment + description: An attachment to an agent turn. + BasicScoringFnParams: + properties: + type: + type: string + const: basic + title: Type + default: basic + aggregation_functions: + items: + $ref: '#/components/schemas/AggregationFunctionType' + type: array + title: Aggregation Functions + description: Aggregation functions to apply to the scores of each row + type: object + title: BasicScoringFnParams + description: Parameters for basic scoring function configuration. + Batch: + properties: + id: + type: string + title: Id + completion_window: + type: string + title: Completion Window + created_at: + type: integer + title: Created At + endpoint: + type: string + title: Endpoint + input_file_id: + type: string + title: Input File Id + object: + type: string + const: batch + title: Object + status: + type: string + enum: + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + title: Status + cancelled_at: + anyOf: + - type: integer + - type: 'null' + title: Cancelled At + cancelling_at: + anyOf: + - type: integer + - type: 'null' + title: Cancelling At + completed_at: + anyOf: + - type: integer + - type: 'null' + title: Completed At + error_file_id: + anyOf: + - type: string + - type: 'null' + title: Error File Id + errors: + anyOf: + - $ref: '#/components/schemas/Errors' + - type: 'null' + expired_at: + anyOf: + - type: integer + - type: 'null' + title: Expired At + expires_at: + anyOf: + - type: integer + - type: 'null' + title: Expires At + failed_at: + anyOf: + - type: integer + - type: 'null' + title: Failed At + finalizing_at: + anyOf: + - type: integer + - type: 'null' + title: Finalizing At + in_progress_at: + anyOf: + - type: integer + - type: 'null' + title: In Progress At + metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' + title: Metadata + model: + anyOf: + - type: string + - type: 'null' + title: Model + output_file_id: + anyOf: + - type: string + - type: 'null' + title: Output File Id + request_counts: + anyOf: + - $ref: '#/components/schemas/BatchRequestCounts' + - type: 'null' + usage: + anyOf: + - $ref: '#/components/schemas/BatchUsage' + - type: 'null' + additionalProperties: true + type: object + required: + - id + - completion_window + - created_at + - endpoint + - input_file_id + - object + - status + title: Batch + BatchError: + properties: + code: + anyOf: + - type: string + - type: 'null' + title: Code + line: + anyOf: + - type: integer + - type: 'null' + title: Line + message: + anyOf: + - type: string + - type: 'null' + title: Message + param: + anyOf: + - type: string + - type: 'null' + title: Param + additionalProperties: true + type: object + title: BatchError + BatchRequestCounts: + properties: + completed: + type: integer + title: Completed + failed: + type: integer + title: Failed + total: + type: integer + title: Total + additionalProperties: true + type: object + required: + - completed + - failed + - total + title: BatchRequestCounts + BatchUsage: + properties: + input_tokens: + type: integer + title: Input Tokens + input_tokens_details: + $ref: '#/components/schemas/InputTokensDetails' + output_tokens: + type: integer + title: Output Tokens + output_tokens_details: + $ref: '#/components/schemas/OutputTokensDetails' + total_tokens: + type: integer + title: Total Tokens + additionalProperties: true + type: object + required: + - input_tokens + - input_tokens_details + - output_tokens + - output_tokens_details + - total_tokens + title: BatchUsage + Benchmark: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for this resource in llama stack + provider_resource_id: + anyOf: + - type: string + - type: 'null' + title: Provider Resource Id + description: Unique identifier for this resource in the provider + provider_id: + type: string + title: Provider Id + description: ID of the provider that owns this resource + type: + type: string + const: benchmark + title: Type + description: The resource type, always benchmark + default: benchmark + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to use for the benchmark + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the benchmark + metadata: + additionalProperties: true + type: object + title: Metadata + description: Metadata for this evaluation task + type: object + required: + - identifier + - provider_id + - dataset_id + - scoring_functions + title: Benchmark + description: A benchmark resource for evaluating model performance. + BenchmarkConfig: + properties: + eval_candidate: + oneOf: + - $ref: '#/components/schemas/ModelCandidate' + - $ref: '#/components/schemas/AgentCandidate' + title: Eval Candidate + description: The candidate to evaluate. + discriminator: + propertyName: type + mapping: + agent: '#/components/schemas/AgentCandidate' + model: '#/components/schemas/ModelCandidate' + scoring_params: + additionalProperties: + oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + type: object + title: Scoring Params + description: Map between scoring function id and parameters for each scoring function you want to run. + num_examples: + anyOf: + - type: integer + - type: 'null' + title: Num Examples + description: The number of examples to evaluate. If not provided, all examples in the dataset will be evaluated. + type: object + required: + - eval_candidate + title: BenchmarkConfig + description: A benchmark configuration for evaluation. + Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post: + properties: + file_id: + type: string + title: File Id + description: The ID of the file to attach to the vector store. + attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Attributes + description: The key-value attributes stored with the file, which can be used for filtering. + chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' + title: Chunking Strategy + description: The chunking strategy to use for the file. + type: object + required: + - file_id + title: Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post + Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post: + properties: + query: + anyOf: + - type: string + - items: + type: string + type: array + title: Query + description: The query string or array for performing the search. + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Filters + description: Filters based on file attributes to narrow the search results. + max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' + title: Max Num Results + description: Maximum number of results to return (1 to 50 inclusive, default 10). + default: 10 + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Ranking options for fine-tuning the search results. + rewrite_query: + type: boolean + title: Rewrite Query + description: Whether to rewrite the natural language query for vector search (default false). + default: false + search_mode: + anyOf: + - type: string + - type: 'null' + title: Search Mode + description: The search mode to use - 'keyword', 'vector', or 'hybrid' (default 'vector'). + default: vector + type: object + required: + - query + title: Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post + Body_openai_upload_file_v1_files_post: + properties: + file: + type: string + format: binary + title: File + description: The File object to be uploaded. + purpose: + $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the uploaded file. + expires_after: + anyOf: + - $ref: '#/components/schemas/ExpiresAfter' + - type: 'null' + description: Optional form values describing expiration for the file. + type: object + required: + - file + - purpose + title: Body_openai_upload_file_v1_files_post + Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post: + properties: + documents: + items: + $ref: '#/components/schemas/RAGDocument' + type: array + title: Documents + description: List of documents to index in the RAG system. + vector_store_id: + type: string + title: Vector Store Id + description: ID of the vector database to store the document embeddings. + chunk_size_in_tokens: + type: integer + title: Chunk Size In Tokens + description: Size in tokens for document chunking during indexing. + default: 512 + type: object + required: + - documents + - vector_store_id + title: Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post + Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + description: The query content to search for in the indexed documents. + vector_store_ids: + items: + type: string + type: array + title: Vector Store Ids + description: List of vector database IDs to search within. + query_config: + anyOf: + - $ref: '#/components/schemas/RAGQueryConfig' + - type: 'null' + description: Configuration parameters for the query operation. + type: object + required: + - content + - vector_store_ids + title: Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post + Body_rerank_v1alpha_inference_rerank_post: + properties: + model: + type: string + title: Model + description: The identifier of the reranking model to use. + query: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + title: Query + description: The search query to rank items against. + items: + items: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + type: array + title: Items + description: List of items to rerank. + max_num_results: + anyOf: + - type: integer + - type: 'null' + title: Max Num Results + description: 'Maximum number of results to return. Default: returns all.' + type: object + required: + - model + - query + - items + title: Body_rerank_v1alpha_inference_rerank_post + BooleanType: + properties: + type: + type: string + const: boolean + title: Type + default: boolean + type: object + title: BooleanType + description: "Parameter type for boolean values.\n\n:param type: Discriminator type. Always \"boolean\"" + BuiltinTool: + type: string + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + ChatCompletionInputType: + properties: + type: + type: string + const: chat_completion_input + title: Type + default: chat_completion_input + type: object + title: ChatCompletionInputType + description: "Parameter type for chat completion input.\n\n:param type: Discriminator type. Always \"chat_completion_input\"" + Checkpoint: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for the checkpoint. + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the checkpoint was created. + epoch: + type: integer + title: Epoch + description: Training epoch when the checkpoint was saved. + post_training_job_id: + type: string + title: Post Training Job Id + description: Identifier of the training job that created this checkpoint. + path: + type: string + title: Path + description: File system path where the checkpoint is stored. + training_metrics: + anyOf: + - $ref: '#/components/schemas/PostTrainingMetric' + - type: 'null' + description: Training metrics associated with this checkpoint. + type: object + required: + - identifier + - created_at + - epoch + - post_training_job_id + - path + - training_metrics + title: Checkpoint + description: Checkpoint created during training runs. + Chunk-Input: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + chunk_id: + type: string + title: Chunk Id + metadata: + additionalProperties: true + type: object + title: Metadata + embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' + title: Embedding + chunk_metadata: + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' + type: object + required: + - content + - chunk_id + title: Chunk + description: A chunk of content that can be inserted into a vector database. + Chunk-Output: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + chunk_id: + type: string + title: Chunk Id + metadata: + additionalProperties: true + type: object + title: Metadata + embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' + title: Embedding + chunk_metadata: + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' + type: object + required: + - content + - chunk_id + title: Chunk + description: A chunk of content that can be inserted into a vector database. + ChunkMetadata: + properties: + chunk_id: + anyOf: + - type: string + - type: 'null' + title: Chunk Id + document_id: + anyOf: + - type: string + - type: 'null' + title: Document Id + source: + anyOf: + - type: string + - type: 'null' + title: Source + created_timestamp: + anyOf: + - type: integer + - type: 'null' + title: Created Timestamp + updated_timestamp: + anyOf: + - type: integer + - type: 'null' + title: Updated Timestamp + chunk_window: + anyOf: + - type: string + - type: 'null' + title: Chunk Window + chunk_tokenizer: + anyOf: + - type: string + - type: 'null' + title: Chunk Tokenizer + chunk_embedding_model: + anyOf: + - type: string + - type: 'null' + title: Chunk Embedding Model + chunk_embedding_dimension: + anyOf: + - type: integer + - type: 'null' + title: Chunk Embedding Dimension + content_token_count: + anyOf: + - type: integer + - type: 'null' + title: Content Token Count + metadata_token_count: + anyOf: + - type: integer + - type: 'null' + title: Metadata Token Count + type: object + title: ChunkMetadata + description: "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." + CompletionInputType: + properties: + type: + type: string + const: completion_input + title: Type + default: completion_input + type: object + title: CompletionInputType + description: "Parameter type for completion input.\n\n:param type: Discriminator type. Always \"completion_input\"" + CompletionMessage-Input: + properties: + role: + type: string + const: assistant + title: Role + default: assistant + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + type: object + required: + - content + - stop_reason + title: CompletionMessage + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + CompletionMessage-Output: + properties: + role: + type: string + const: assistant + title: Role + default: assistant + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + type: object + required: + - content + - stop_reason + title: CompletionMessage + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + Conversation: + properties: + id: + type: string + title: Id + description: The unique ID of the conversation. + object: + type: string + const: conversation + title: Object + description: The object type, which is always conversation. + default: conversation + created_at: + type: integer + title: Created At + description: The time at which the conversation was created, measured in seconds since the Unix epoch. + metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' + title: Metadata + 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. + items: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' + title: Items + description: Initial items to include in the conversation context. You may add up to 20 items at a time. + type: object + required: + - id + - created_at + title: Conversation + description: OpenAI-compatible conversation object. + ConversationCreateRequest: + properties: + items: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + - type: 'null' + title: Items + description: Initial items to include in the conversation context. You may add up to 20 items at a time. + default: [] + metadata: + anyOf: + - additionalProperties: + type: string + type: object + maxProperties: 16 + - type: 'null' + title: Metadata + description: Set of 16 key-value pairs that can be attached to an object. Useful for storing additional information + default: {} + type: object + title: ConversationCreateRequest + description: Request body for creating a conversation. + ConversationDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted conversation identifier + object: + type: string + title: Object + description: Object type + default: conversation.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationDeletedResource + description: Response for deleted conversation. + ConversationItemCreateRequest: + properties: + items: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + title: Items + description: Items to include in the conversation context. You may add up to 20 items at a time. + type: object + required: + - items + title: ConversationItemCreateRequest + description: Request body for creating conversation items. + ConversationItemDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted item identifier + object: + type: string + title: Object + description: Object type + default: conversation.item.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationItemDeletedResource + description: Response for deleted conversation item. + ConversationItemInclude: + type: string + enum: + - web_search_call.action.sources + - code_interpreter_call.outputs + - computer_call_output.output.image_url + - file_search_call.results + - message.input_image.image_url + - message.output_text.logprobs + - reasoning.encrypted_content + title: ConversationItemInclude + description: Specify additional output data to include in the model response. + ConversationItemList: + properties: + object: + type: string + title: Object + description: Object type + default: list + data: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + title: Data + description: List of conversation items + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + description: The ID of the first item in the list + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + description: The ID of the last item in the list + has_more: + type: boolean + title: Has More + description: Whether there are more items available + default: false + type: object + required: + - data + title: ConversationItemList + description: List of conversation items with pagination. + ConversationUpdateRequest: + properties: + metadata: + additionalProperties: + type: string + type: object + title: Metadata + 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. + type: object + required: + - metadata + title: ConversationUpdateRequest + description: Request body for updating a conversation. + CreateAgentSessionRequest: + properties: + agent_id: + type: string + title: Agent Id + description: The ID of the agent to create the session for + session_name: + type: string + title: Session Name + description: The name of the session to create + type: object + required: + - agent_id + - session_name + title: CreateAgentSessionRequest + description: Request to create a new session for an agent. + CreateBatchRequest: + properties: + input_file_id: + type: string + title: Input File Id + description: The ID of an uploaded file containing requests for the batch. + endpoint: + type: string + title: Endpoint + description: The endpoint to be used for all requests in the batch. + completion_window: + type: string + const: 24h + title: Completion Window + description: The time window within which the batch should be processed. + metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' + title: Metadata + description: Optional metadata for the batch. + idempotency_key: + anyOf: + - type: string + - type: 'null' + title: Idempotency Key + description: Optional idempotency key. When provided, enables idempotent behavior. + type: object + required: + - input_file_id + - endpoint + - completion_window + title: CreateBatchRequest + description: Request model for creating a batch. + CreateOpenAIResponseRequest: + properties: + input: + anyOf: + - type: string + - items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + type: array + title: Input + description: Input message(s) to create the response + model: + type: string + title: Model + description: The underlying LLM used for completions + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Prompt object with ID, version, and variables + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System instructions + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: If specified, the new response will be a continuation of the previous response + conversation: + anyOf: + - type: string + - type: 'null' + title: Conversation + description: The ID of a conversation to add the response to. Must begin with 'conv_' + store: + type: boolean + title: Store + description: Whether to store the response + default: true + stream: + type: boolean + title: Stream + description: Whether to stream the response + default: false + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature + text: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseText' + - type: 'null' + description: Text generation parameters + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseInputToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: Tools to make available + include: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Include + description: Additional fields to include in the response + max_infer_iters: + type: integer + title: Max Infer Iters + description: Maximum number of inference iterations (extension to the OpenAI API) + default: 10 + guardrails: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/ResponseGuardrailSpec' + type: array + - type: 'null' + title: Guardrails + description: List of guardrails to apply during response generation + type: object + required: + - input + - model + title: CreateOpenAIResponseRequest + description: Request to create a model response. + CreatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The prompt text content with variable placeholders. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: List of variable names that can be used in the prompt template. + type: object + required: + - prompt + title: CreatePromptRequest + description: Request model for creating a new prompt. + DPOAlignmentConfig: + properties: + beta: + type: number + title: Beta + loss_type: + $ref: '#/components/schemas/DPOLossType' + default: sigmoid + type: object + required: + - beta + title: DPOAlignmentConfig + description: Configuration for Direct Preference Optimization (DPO) alignment. + DPOLossType: + type: string + enum: + - sigmoid + - hinge + - ipo + - kto_pair + title: DPOLossType + DataConfig: + properties: + dataset_id: + type: string + title: Dataset Id + batch_size: + type: integer + title: Batch Size + shuffle: + type: boolean + title: Shuffle + data_format: + $ref: '#/components/schemas/DatasetFormat' + validation_dataset_id: + anyOf: + - type: string + - type: 'null' + title: Validation Dataset Id + packed: + anyOf: + - type: boolean + - type: 'null' + title: Packed + default: false + train_on_input: + anyOf: + - type: boolean + - type: 'null' + title: Train On Input + default: false + type: object + required: + - dataset_id + - batch_size + - shuffle + - data_format + title: DataConfig + description: Configuration for training data and data loading. + Dataset: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for this resource in llama stack + provider_resource_id: + anyOf: + - type: string + - type: 'null' + title: Provider Resource Id + description: Unique identifier for this resource in the provider + provider_id: + type: string + title: Provider Id + description: ID of the provider that owns this resource + type: + type: string + const: dataset + title: Type + description: Type of resource, always 'dataset' for datasets + default: dataset + purpose: + $ref: '#/components/schemas/DatasetPurpose' + source: + oneOf: + - $ref: '#/components/schemas/URIDataSource' + - $ref: '#/components/schemas/RowsDataSource' + title: Source + discriminator: + propertyName: type + mapping: + rows: '#/components/schemas/RowsDataSource' + uri: '#/components/schemas/URIDataSource' + metadata: + additionalProperties: true + type: object + title: Metadata + description: Any additional metadata for this dataset + type: object + required: + - identifier + - provider_id + - purpose + - source + title: Dataset + description: Dataset resource for storing and accessing training or evaluation data. + DatasetFormat: + type: string + enum: + - instruct + - dialog + title: DatasetFormat + description: Format of the training dataset. + DatasetPurpose: + type: string + enum: + - post-training/messages + - eval/question-answer + - eval/messages-answer + title: DatasetPurpose + description: "Purpose of the dataset. Each purpose has a required input data schema.\n\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, world!\"},\n {\"role\": \"assistant\", \"content\": \"Hello, world!\"},\n ]\n }\n {\n \"question\": \"What is the capital of France?\",\n \"answer\": \"Paris\"\n }\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, my name is John Doe.\"},\n {\"role\": \"assistant\", \"content\": \"Hello, John Doe. How can I help you today?\"},\n {\"role\": \"user\", \"content\": \"What's my name?\"},\n ],\n \"answer\": \"John Doe\"\n }" + DefaultRAGQueryGeneratorConfig: + properties: + type: + type: string + const: default + title: Type + default: default + separator: + type: string + title: Separator + default: ' ' + type: object + title: DefaultRAGQueryGeneratorConfig + description: "Configuration for the default RAG query generator.\n\n:param type: Type of query generator, always 'default'\n:param separator: String separator used to join query terms" + Document: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + title: Content + description: The content of the document. + mime_type: + type: string + title: Mime Type + description: The MIME type of the document. + type: object + required: + - content + - mime_type + title: Document + description: A document to be used by an agent. + EfficiencyConfig: + properties: + enable_activation_checkpointing: + anyOf: + - type: boolean + - type: 'null' + title: Enable Activation Checkpointing + default: false + enable_activation_offloading: + anyOf: + - type: boolean + - type: 'null' + title: Enable Activation Offloading + default: false + memory_efficient_fsdp_wrap: + anyOf: + - type: boolean + - type: 'null' + title: Memory Efficient Fsdp Wrap + default: false + fsdp_cpu_offload: + anyOf: + - type: boolean + - type: 'null' + title: Fsdp Cpu Offload + default: false + type: object + title: EfficiencyConfig + description: Configuration for memory and compute efficiency optimizations. + Error: properties: status: type: integer + title: Status description: HTTP status code title: type: string - description: >- - Error title, a short summary of the error which is invariant for an error - type + title: Title + description: Error title, a short summary of the error which is invariant for an error type detail: type: string - description: >- - Error detail, a longer human-readable description of the error + title: Detail + description: Error detail, a longer human-readable description of the error instance: - type: string - description: >- - (Optional) A URL which can be used to retrieve more information about - the specific occurrence of the error - additionalProperties: false + anyOf: + - type: string + - type: 'null' + title: Instance + description: (Optional) A URL which can be used to retrieve more information about the specific occurrence of the error + type: object required: - - status - - title - - detail + - status + - title + - detail title: Error - description: >- - Error response from the API. Roughly follows RFC 7807. - responses: - BadRequest400: - description: The request was invalid or malformed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 400 - title: Bad Request - detail: The request was invalid or malformed - TooManyRequests429: - description: The client has sent too many requests in a given amount of time - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 429 - title: Too Many Requests - detail: You have exceeded the rate limit. Please try again later. - InternalServerError500: - description: The server encountered an unexpected error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 500 - title: Internal Server Error - detail: An unexpected error occurred. Our team has been notified. - DefaultError: - description: An unexpected error occurred - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 0 - title: Error - detail: An unexpected error occurred -security: - - Default: [] -tags: [] + description: Error response from the API. Roughly follows RFC 7807. + Errors: + properties: + data: + anyOf: + - items: + $ref: '#/components/schemas/BatchError' + type: array + - type: 'null' + title: Data + object: + anyOf: + - type: string + - type: 'null' + title: Object + additionalProperties: true + type: object + title: Errors + EvaluateResponse: + properties: + generations: + items: + additionalProperties: true + type: object + type: array + title: Generations + description: The generations from the evaluation. + scores: + additionalProperties: + $ref: '#/components/schemas/ScoringResult' + type: object + title: Scores + description: The scores from the evaluation. Each key in the dict is a scoring function name. + type: object + required: + - generations + - scores + title: EvaluateResponse + description: The response from an evaluation. + EvaluateRowsRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to evaluate. + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the evaluation. + benchmark_config: + $ref: '#/components/schemas/BenchmarkConfig' + description: The configuration for the benchmark. + type: object + required: + - input_rows + - scoring_functions + - benchmark_config + title: EvaluateRowsRequest + description: Request model for evaluating rows. + ExpiresAfter: + properties: + anchor: + type: string + const: created_at + title: Anchor + description: Anchor must be 'created_at'. + seconds: + type: integer + maximum: 2592000.0 + minimum: 3600.0 + title: Seconds + description: Seconds between 3600 and 2592000 (1 hour to 30 days). + type: object + required: + - anchor + - seconds + title: ExpiresAfter + description: Control expiration of uploaded files. + GrammarResponseFormat: + properties: + type: + type: string + const: grammar + title: Type + default: grammar + bnf: + additionalProperties: true + type: object + minProperties: 1 + title: Bnf + type: object + required: + - bnf + title: GrammarResponseFormat + description: Configuration for grammar-guided response generation. + GreedySamplingStrategy: + properties: + type: + type: string + const: greedy + title: Type + default: greedy + type: object + title: GreedySamplingStrategy + description: Greedy sampling strategy that selects the highest probability token at each step. + HealthInfo: + properties: + status: + $ref: '#/components/schemas/HealthStatus' + description: Current health status of the service + type: object + required: + - status + title: HealthInfo + description: Health status information for the service. + HealthStatus: + type: string + enum: + - OK + - Error + - Not Implemented + title: HealthStatus + ImageContentItem-Input: + properties: + type: + type: string + const: image + title: Type + default: image + image: + $ref: '#/components/schemas/_URLOrData' + type: object + required: + - image + title: ImageContentItem + description: A image content item. + ImageContentItem-Output: + properties: + type: + type: string + const: image + title: Type + default: image + image: + $ref: '#/components/schemas/_URLOrData' + type: object + required: + - image + title: ImageContentItem + description: A image content item. + InferenceStep-Input: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: inference + title: Step Type + default: inference + model_response: + $ref: '#/components/schemas/CompletionMessage-Input' + description: The response from the LLM. + type: object + required: + - turn_id + - step_id + - model_response + title: InferenceStep + description: An inference step in an agent turn. + InferenceStep-Output: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: inference + title: Step Type + default: inference + model_response: + $ref: '#/components/schemas/CompletionMessage-Output' + description: The response from the LLM. + type: object + required: + - turn_id + - step_id + - model_response + title: InferenceStep + description: An inference step in an agent turn. + InputTokensDetails: + properties: + cached_tokens: + type: integer + title: Cached Tokens + additionalProperties: true + type: object + required: + - cached_tokens + title: InputTokensDetails + InsertChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to insert the chunks into. + chunks: + items: + $ref: '#/components/schemas/Chunk-Input' + type: array + title: Chunks + description: The chunks to insert. + ttl_seconds: + anyOf: + - type: integer + - type: 'null' + title: Ttl Seconds + description: The time to live of the chunks. + type: object + required: + - vector_store_id + - chunks + title: InsertChunksRequest + description: Request to insert chunks into a vector database. + InvokeToolRequest: + properties: + tool_name: + type: string + title: Tool Name + description: The name of the tool to invoke + kwargs: + additionalProperties: true + type: object + title: Kwargs + description: A dictionary of arguments to pass to the tool + type: object + required: + - tool_name + - kwargs + title: InvokeToolRequest + description: Request model for invoking a tool. + Job: + properties: + job_id: + type: string + title: Job Id + status: + $ref: '#/components/schemas/JobStatus' + type: object + required: + - job_id + - status + title: Job + description: A job execution instance with status tracking. + JobStatus: + type: string + enum: + - completed + - in_progress + - failed + - scheduled + - cancelled + title: JobStatus + description: "Status of a job execution.\n:cvar completed: Job has finished successfully\n:cvar in_progress: Job is currently running\n:cvar failed: Job has failed during execution\n:cvar scheduled: Job is scheduled but not yet started\n:cvar cancelled: Job was cancelled before completion" + JsonSchemaResponseFormat: + properties: + type: + type: string + const: json_schema + title: Type + default: json_schema + json_schema: + additionalProperties: true + type: object + minProperties: 1 + title: Json Schema + type: object + required: + - json_schema + title: JsonSchemaResponseFormat + description: Configuration for JSON schema-guided response generation. + JsonType: + properties: + type: + type: string + const: json + title: Type + default: json + type: object + title: JsonType + description: "Parameter type for JSON values.\n\n:param type: Discriminator type. Always \"json\"" + LLMAsJudgeScoringFnParams: + properties: + type: + type: string + const: llm_as_judge + title: Type + default: llm_as_judge + judge_model: + type: string + title: Judge Model + prompt_template: + anyOf: + - type: string + - type: 'null' + title: Prompt Template + judge_score_regexes: + items: + type: string + type: array + title: Judge Score Regexes + description: Regexes to extract the answer from generated response + aggregation_functions: + items: + $ref: '#/components/schemas/AggregationFunctionType' + type: array + title: Aggregation Functions + description: Aggregation functions to apply to the scores of each row + type: object + required: + - judge_model + title: LLMAsJudgeScoringFnParams + description: Parameters for LLM-as-judge scoring function configuration. + LLMRAGQueryGeneratorConfig: + properties: + type: + type: string + const: llm + title: Type + default: llm + model: + type: string + title: Model + template: + type: string + title: Template + type: object + required: + - model + - template + title: LLMRAGQueryGeneratorConfig + description: "Configuration for the LLM-based RAG query generator.\n\n:param type: Type of query generator, always 'llm'\n:param model: Name of the language model to use for query generation\n:param template: Template string for formatting the query generation prompt" + ListBatchesResponse: + properties: + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + data: + items: + $ref: '#/components/schemas/Batch' + type: array + title: Data + description: List of batch objects. + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + description: ID of the first batch in the list. + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + description: ID of the last batch in the list. + has_more: + type: boolean + title: Has More + description: Whether there are more batches available. + default: false + type: object + required: + - data + title: ListBatchesResponse + description: Response containing a list of batch objects. + ListBenchmarksResponse: + properties: + data: + items: + $ref: '#/components/schemas/Benchmark' + type: array + title: Data + description: List of benchmark resources + type: object + required: + - data + title: ListBenchmarksResponse + description: Response model for listing benchmarks. + ListDatasetsResponse: + properties: + data: + items: + $ref: '#/components/schemas/Dataset' + type: array + title: Data + description: List of datasets + type: object + required: + - data + title: ListDatasetsResponse + description: Response from listing datasets. + ListModelsResponse: + properties: + data: + items: + $ref: '#/components/schemas/Model' + type: array + title: Data + description: List of model resources. + type: object + required: + - data + title: ListModelsResponse + description: Response model for listing models. + ListOpenAIChatCompletionResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAICompletionWithInputMessages' + type: array + title: Data + has_more: + type: boolean + title: Has More + first_id: + type: string + title: First Id + last_id: + type: string + title: Last Id + object: + type: string + const: list + title: Object + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIChatCompletionResponse + description: Response from listing OpenAI-compatible chat completions. + ListOpenAIFileResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIFileObject' + type: array + title: Data + description: List of file objects. + has_more: + type: boolean + title: Has More + description: Whether there are more files available beyond this page. + first_id: + type: string + title: First Id + description: ID of the first file in the list for pagination. + last_id: + type: string + title: Last Id + description: ID of the last file in the list for pagination. + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIFileResponse + description: Response for listing files in OpenAI Files API. + ListOpenAIResponseInputItem: + properties: + data: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Data + description: List of input items + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + title: ListOpenAIResponseInputItem + description: "List container for OpenAI response input items.\n\n:param data: List of input items\n:param object: Object type identifier, always \"list\"" + ListOpenAIResponseObject: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIResponseObjectWithInput-Output' + type: array + title: Data + description: List of response objects with their input context + has_more: + type: boolean + title: Has More + description: Whether there are more results available beyond this page + first_id: + type: string + title: First Id + description: Identifier of the first item in this page + last_id: + type: string + title: Last Id + description: Identifier of the last item in this page + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIResponseObject + description: "Paginated list of OpenAI response objects with navigation metadata.\n\n:param data: List of response objects with their input context\n:param has_more: Whether there are more results available beyond this page\n:param first_id: Identifier of the first item in this page\n:param last_id: Identifier of the last item in this page\n:param object: Object type identifier, always \"list\"" + ListPostTrainingJobsResponse: + properties: + data: + items: + $ref: '#/components/schemas/PostTrainingJob' + type: array + title: Data + description: The list of training jobs + type: object + required: + - data + title: ListPostTrainingJobsResponse + ListPromptsResponse: + properties: + data: + items: + $ref: '#/components/schemas/Prompt' + type: array + title: Data + description: List of prompt resources. + type: object + required: + - data + title: ListPromptsResponse + description: Response model to list prompts. + ListProvidersResponse: + properties: + data: + items: + $ref: '#/components/schemas/ProviderInfo' + type: array + title: Data + description: List of provider information objects + type: object + required: + - data + title: ListProvidersResponse + description: Response containing a list of all available providers. + ListRoutesResponse: + properties: + data: + items: + $ref: '#/components/schemas/RouteInfo' + type: array + title: Data + description: List of available route information objects + type: object + required: + - data + title: ListRoutesResponse + description: Response containing a list of all available API routes. + ListScoringFunctionsResponse: + properties: + data: + items: + $ref: '#/components/schemas/ScoringFn' + type: array + title: Data + description: List of scoring function resources + type: object + required: + - data + title: ListScoringFunctionsResponse + description: Response model for listing scoring functions. + ListShieldsResponse: + properties: + data: + items: + $ref: '#/components/schemas/Shield' + type: array + title: Data + description: List of shield resources + type: object + required: + - data + title: ListShieldsResponse + description: Response model for listing shields. + ListToolDefsResponse: + properties: + data: + items: + $ref: '#/components/schemas/ToolDef' + type: array + title: Data + description: List of tool definitions + type: object + required: + - data + title: ListToolDefsResponse + description: Response containing a list of tool definitions. + ListToolGroupsResponse: + properties: + data: + items: + $ref: '#/components/schemas/ToolGroup' + type: array + title: Data + description: List of tool groups + type: object + required: + - data + title: ListToolGroupsResponse + description: Response containing a list of tool groups. + LoraFinetuningConfig: + properties: + type: + type: string + const: LoRA + title: Type + default: LoRA + lora_attn_modules: + items: + type: string + type: array + title: Lora Attn Modules + apply_lora_to_mlp: + type: boolean + title: Apply Lora To Mlp + apply_lora_to_output: + type: boolean + title: Apply Lora To Output + rank: + type: integer + title: Rank + alpha: + type: integer + title: Alpha + use_dora: + anyOf: + - type: boolean + - type: 'null' + title: Use Dora + default: false + quantize_base: + anyOf: + - type: boolean + - type: 'null' + title: Quantize Base + default: false + type: object + required: + - lora_attn_modules + - apply_lora_to_mlp + - apply_lora_to_output + - rank + - alpha + title: LoraFinetuningConfig + description: Configuration for Low-Rank Adaptation (LoRA) fine-tuning. + MCPListToolsTool: + properties: + input_schema: + additionalProperties: true + type: object + title: Input Schema + description: JSON schema defining the tool's input parameters + name: + type: string + title: Name + description: Name of the tool + description: + anyOf: + - type: string + - type: 'null' + title: Description + description: Description of what the tool does + type: object + required: + - input_schema + - name + title: MCPListToolsTool + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + MemoryRetrievalStep-Input: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: memory_retrieval + title: Step Type + default: memory_retrieval + vector_store_ids: + type: string + title: Vector Store Ids + description: The IDs of the vector databases to retrieve context from. + inserted_context: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Inserted Context + description: The context retrieved from the vector databases. + type: object + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + description: A memory retrieval step in an agent turn. + MemoryRetrievalStep-Output: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: memory_retrieval + title: Step Type + default: memory_retrieval + vector_store_ids: + type: string + title: Vector Store Ids + description: The IDs of the vector databases to retrieve context from. + inserted_context: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + title: Inserted Context + description: The context retrieved from the vector databases. + type: object + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + description: A memory retrieval step in an agent turn. + Model: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for this resource in llama stack + provider_resource_id: + anyOf: + - type: string + - type: 'null' + title: Provider Resource Id + description: Unique identifier for this resource in the provider + provider_id: + type: string + title: Provider Id + description: ID of the provider that owns this resource + type: + type: string + const: model + title: Type + description: The resource type, always 'model' for model resources. + default: model + metadata: + additionalProperties: true + type: object + title: Metadata + description: Any additional metadata for this model. + model_type: + $ref: '#/components/schemas/ModelType' + description: The type of model (LLM or embedding model). + default: llm + type: object + required: + - identifier + - provider_id + title: Model + description: A model resource representing an AI model registered in Llama Stack. + ModelCandidate: + properties: + type: + type: string + const: model + title: Type + description: The type of candidate. + default: model + model: + type: string + title: Model + description: The model ID to evaluate. + sampling_params: + $ref: '#/components/schemas/SamplingParams' + description: The sampling parameters for the model. + system_message: + anyOf: + - $ref: '#/components/schemas/SystemMessage' + - type: 'null' + description: The system message providing instructions or context to the model. + type: object + required: + - model + - sampling_params + title: ModelCandidate + description: A model candidate for evaluation. + ModelType: + type: string + enum: + - llm + - embedding + - rerank + title: ModelType + description: Enumeration of supported model types in Llama Stack. + ModerationObject: + properties: + id: + type: string + title: Id + description: The unique identifier for the moderation request. + model: + type: string + title: Model + description: The model used to generate the moderation results. + results: + items: + $ref: '#/components/schemas/ModerationObjectResults' + type: array + title: Results + description: A list of moderation objects. + type: object + required: + - id + - model + - results + title: ModerationObject + description: A moderation object. + ModerationObjectResults: + properties: + flagged: + type: boolean + title: Flagged + description: Whether any of the below categories are flagged. + categories: + anyOf: + - additionalProperties: + type: boolean + type: object + - type: 'null' + title: Categories + description: A list of the categories, and whether they are flagged or not. + category_applied_input_types: + anyOf: + - additionalProperties: + items: + type: string + type: array + type: object + - type: 'null' + title: Category Applied Input Types + description: A list of the categories along with the input type(s) that the score applies to. + category_scores: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' + title: Category Scores + description: A list of the categories along with their scores as predicted by model. + user_message: + anyOf: + - type: string + - type: 'null' + title: User Message + description: User message. + metadata: + additionalProperties: true + type: object + title: Metadata + description: Additional metadata. + type: object + required: + - flagged + title: ModerationObjectResults + description: A moderation object. + NumberType: + properties: + type: + type: string + const: number + title: Type + default: number + type: object + title: NumberType + description: "Parameter type for numeric values.\n\n:param type: Discriminator type. Always \"number\"" + ObjectType: + properties: + type: + type: string + const: object + title: Type + default: object + type: object + title: ObjectType + description: "Parameter type for object values.\n\n:param type: Discriminator type. Always \"object\"" + OpenAIAssistantMessageParam-Input: + properties: + role: + type: string + const: assistant + title: Role + default: assistant + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + - type: 'null' + title: Content + name: + anyOf: + - type: string + - type: 'null' + title: Name + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + title: Tool Calls + type: object + title: OpenAIAssistantMessageParam + description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + OpenAIAssistantMessageParam-Output: + properties: + role: + type: string + const: assistant + title: Role + default: assistant + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + - type: 'null' + title: Content + name: + anyOf: + - type: string + - type: 'null' + title: Name + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + title: Tool Calls + type: object + title: OpenAIAssistantMessageParam + description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + OpenAIChatCompletionContentPartImageParam: + properties: + type: + type: string + const: image_url + title: Type + default: image_url + image_url: + $ref: '#/components/schemas/OpenAIImageURL' + type: object + required: + - image_url + title: OpenAIChatCompletionContentPartImageParam + description: Image content part for OpenAI-compatible chat completion messages. + OpenAIChatCompletionContentPartTextParam: + properties: + type: + type: string + const: text + title: Type + default: text + text: + type: string + title: Text + type: object + required: + - text + title: OpenAIChatCompletionContentPartTextParam + description: Text content part for OpenAI-compatible chat completion messages. + OpenAIChatCompletionRequestWithExtraBody: + properties: + model: + type: string + title: Model + messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Input' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Input' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Input' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Input' + type: array + minItems: 1 + title: Messages + frequency_penalty: + anyOf: + - type: number + - type: 'null' + title: Frequency Penalty + function_call: + anyOf: + - type: string + - additionalProperties: true + type: object + - type: 'null' + title: Function Call + functions: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' + title: Functions + logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' + title: Logit Bias + logprobs: + anyOf: + - type: boolean + - type: 'null' + title: Logprobs + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + title: Max Completion Tokens + max_tokens: + anyOf: + - type: integer + - type: 'null' + title: Max Tokens + n: + anyOf: + - type: integer + - type: 'null' + title: N + parallel_tool_calls: + anyOf: + - type: boolean + - type: 'null' + title: Parallel Tool Calls + presence_penalty: + anyOf: + - type: number + - type: 'null' + title: Presence Penalty + response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseFormatText' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' + discriminator: + propertyName: type + mapping: + json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' + json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' + text: '#/components/schemas/OpenAIResponseFormatText' + - type: 'null' + title: Response Format + seed: + anyOf: + - type: integer + - type: 'null' + title: Seed + stop: + anyOf: + - type: string + - items: + type: string + type: array + - type: 'null' + title: Stop + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Stream Options + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + tool_choice: + anyOf: + - type: string + - additionalProperties: true + type: object + - type: 'null' + title: Tool Choice + tools: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' + title: Tools + top_logprobs: + anyOf: + - type: integer + - type: 'null' + title: Top Logprobs + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + user: + anyOf: + - type: string + - type: 'null' + title: User + additionalProperties: true + type: object + required: + - model + - messages + title: OpenAIChatCompletionRequestWithExtraBody + description: Request parameters for OpenAI-compatible chat completion endpoint. + OpenAIChatCompletionToolCall: + properties: + index: + anyOf: + - type: integer + - type: 'null' + title: Index + id: + anyOf: + - type: string + - type: 'null' + title: Id + type: + type: string + const: function + title: Type + default: function + function: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' + type: object + title: OpenAIChatCompletionToolCall + description: Tool call specification for OpenAI-compatible chat completion responses. + OpenAIChatCompletionToolCallFunction: + properties: + name: + anyOf: + - type: string + - type: 'null' + title: Name + arguments: + anyOf: + - type: string + - type: 'null' + title: Arguments + type: object + title: OpenAIChatCompletionToolCallFunction + description: Function call details for OpenAI-compatible tool calls. + OpenAIChatCompletionUsage: + properties: + prompt_tokens: + type: integer + title: Prompt Tokens + completion_tokens: + type: integer + title: Completion Tokens + total_tokens: + type: integer + title: Total Tokens + prompt_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + - type: 'null' + completion_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + - type: 'null' + type: object + required: + - prompt_tokens + - completion_tokens + - total_tokens + title: OpenAIChatCompletionUsage + description: Usage information for OpenAI chat completion. + OpenAIChatCompletionUsageCompletionTokensDetails: + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + title: Reasoning Tokens + type: object + title: OpenAIChatCompletionUsageCompletionTokensDetails + description: Token details for output tokens in OpenAI chat completion usage. + OpenAIChatCompletionUsagePromptTokensDetails: + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + title: Cached Tokens + type: object + title: OpenAIChatCompletionUsagePromptTokensDetails + description: Token details for prompt tokens in OpenAI chat completion usage. + OpenAIChoice-Input: + properties: + message: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Input' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Input' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + title: Message + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Input' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Input' + finish_reason: + type: string + title: Finish Reason + index: + type: integer + title: Index + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Input' + - type: 'null' + type: object + required: + - message + - finish_reason + - index + title: OpenAIChoice + description: A choice from an OpenAI-compatible chat completion response. + OpenAIChoice-Output: + properties: + message: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Output' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Output' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + title: Message + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Output' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Output' + finish_reason: + type: string + title: Finish Reason + index: + type: integer + title: Index + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' + type: object + required: + - message + - finish_reason + - index + title: OpenAIChoice + description: A choice from an OpenAI-compatible chat completion response. + OpenAIChoiceLogprobs-Input: + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + title: Refusal + type: object + title: OpenAIChoiceLogprobs + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + OpenAIChoiceLogprobs-Output: + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + title: Refusal + type: object + title: OpenAIChoiceLogprobs + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + OpenAICompletion: + properties: + id: + type: string + title: Id + choices: + items: + $ref: '#/components/schemas/OpenAICompletionChoice-Output' + type: array + title: Choices + created: + type: integer + title: Created + model: + type: string + title: Model + object: + type: string + const: text_completion + title: Object + default: text_completion + type: object + required: + - id + - choices + - created + - model + title: OpenAICompletion + description: "Response from an OpenAI-compatible completion request.\n\n:id: The ID of the completion\n:choices: List of choices\n:created: The Unix timestamp in seconds when the completion was created\n:model: The model that was used to generate the completion\n:object: The object type, which will be \"text_completion\"" + OpenAICompletionChoice-Input: + properties: + finish_reason: + type: string + title: Finish Reason + text: + type: string + title: Text + index: + type: integer + title: Index + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Input' + - type: 'null' + type: object + required: + - finish_reason + - text + - index + title: OpenAICompletionChoice + description: "A choice from an OpenAI-compatible completion response.\n\n:finish_reason: The reason the model stopped generating\n:text: The text of the choice\n:index: The index of the choice\n:logprobs: (Optional) The log probabilities for the tokens in the choice" + OpenAICompletionChoice-Output: + properties: + finish_reason: + type: string + title: Finish Reason + text: + type: string + title: Text + index: + type: integer + title: Index + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' + type: object + required: + - finish_reason + - text + - index + title: OpenAICompletionChoice + description: "A choice from an OpenAI-compatible completion response.\n\n:finish_reason: The reason the model stopped generating\n:text: The text of the choice\n:index: The index of the choice\n:logprobs: (Optional) The log probabilities for the tokens in the choice" + OpenAICompletionRequestWithExtraBody: + properties: + model: + type: string + title: Model + prompt: + anyOf: + - type: string + - items: + type: string + type: array + - items: + type: integer + type: array + - items: + items: + type: integer + type: array + type: array + title: Prompt + best_of: + anyOf: + - type: integer + - type: 'null' + title: Best Of + echo: + anyOf: + - type: boolean + - type: 'null' + title: Echo + frequency_penalty: + anyOf: + - type: number + - type: 'null' + title: Frequency Penalty + logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' + title: Logit Bias + logprobs: + anyOf: + - type: integer + maximum: 5.0 + minimum: 0.0 + - type: 'null' + title: Logprobs + max_tokens: + anyOf: + - type: integer + - type: 'null' + title: Max Tokens + n: + anyOf: + - type: integer + - type: 'null' + title: N + presence_penalty: + anyOf: + - type: number + - type: 'null' + title: Presence Penalty + seed: + anyOf: + - type: integer + - type: 'null' + title: Seed + stop: + anyOf: + - type: string + - items: + type: string + type: array + - type: 'null' + title: Stop + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Stream Options + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + user: + anyOf: + - type: string + - type: 'null' + title: User + suffix: + anyOf: + - type: string + - type: 'null' + title: Suffix + additionalProperties: true + type: object + required: + - model + - prompt + title: OpenAICompletionRequestWithExtraBody + description: Request parameters for OpenAI-compatible completion endpoint. + OpenAICompletionWithInputMessages: + properties: + id: + type: string + title: Id + choices: + items: + $ref: '#/components/schemas/OpenAIChoice-Output' + type: array + title: Choices + object: + type: string + const: chat.completion + title: Object + default: chat.completion + created: + type: integer + title: Created + model: + type: string + title: Model + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsage' + - type: 'null' + input_messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Output' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Output' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Output' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Output' + type: array + title: Input Messages + type: object + required: + - id + - choices + - created + - model + - input_messages + title: OpenAICompletionWithInputMessages + OpenAICreateVectorStoreFileBatchRequestWithExtraBody: + properties: + file_ids: + items: + type: string + type: array + title: File Ids + attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Attributes + chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' + title: Chunking Strategy + additionalProperties: true + type: object + required: + - file_ids + title: OpenAICreateVectorStoreFileBatchRequestWithExtraBody + description: Request to create a vector store file batch with extra_body support. + OpenAICreateVectorStoreRequestWithExtraBody: + properties: + name: + anyOf: + - type: string + - type: 'null' + title: Name + file_ids: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: File Ids + expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Expires After + chunking_strategy: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Chunking Strategy + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + additionalProperties: true + type: object + title: OpenAICreateVectorStoreRequestWithExtraBody + description: Request to create a vector store with extra_body support. + OpenAIDeleteResponseObject: + properties: + id: + type: string + title: Id + description: Unique identifier of the deleted response + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + deleted: + type: boolean + title: Deleted + description: Deletion confirmation flag, always True + default: true + type: object + required: + - id + title: OpenAIDeleteResponseObject + description: "Response object confirming deletion of an OpenAI response.\n\n:param id: Unique identifier of the deleted response\n:param object: Object type identifier, always \"response\"\n:param deleted: Deletion confirmation flag, always True" + OpenAIDeveloperMessageParam: + properties: + role: + type: string + const: developer + title: Role + default: developer + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + title: Name + type: object + required: + - content + title: OpenAIDeveloperMessageParam + description: A message from the developer in an OpenAI-compatible chat completion request. + OpenAIEmbeddingData: + properties: + object: + type: string + const: embedding + title: Object + default: embedding + embedding: + anyOf: + - items: + type: number + type: array + - type: string + title: Embedding + index: + type: integer + title: Index + type: object + required: + - embedding + - index + title: OpenAIEmbeddingData + description: A single embedding data object from an OpenAI-compatible embeddings response. + OpenAIEmbeddingUsage: + properties: + prompt_tokens: + type: integer + title: Prompt Tokens + total_tokens: + type: integer + title: Total Tokens + type: object + required: + - prompt_tokens + - total_tokens + title: OpenAIEmbeddingUsage + description: Usage information for an OpenAI-compatible embeddings response. + OpenAIEmbeddingsRequestWithExtraBody: + properties: + model: + type: string + title: Model + input: + anyOf: + - type: string + - items: + type: string + type: array + title: Input + encoding_format: + anyOf: + - type: string + - type: 'null' + title: Encoding Format + default: float + dimensions: + anyOf: + - type: integer + - type: 'null' + title: Dimensions + user: + anyOf: + - type: string + - type: 'null' + title: User + additionalProperties: true + type: object + required: + - model + - input + title: OpenAIEmbeddingsRequestWithExtraBody + description: Request parameters for OpenAI-compatible embeddings endpoint. + OpenAIEmbeddingsResponse: + properties: + object: + type: string + const: list + title: Object + default: list + data: + items: + $ref: '#/components/schemas/OpenAIEmbeddingData' + type: array + title: Data + model: + type: string + title: Model + usage: + $ref: '#/components/schemas/OpenAIEmbeddingUsage' + type: object + required: + - data + - model + - usage + title: OpenAIEmbeddingsResponse + description: Response from an OpenAI-compatible embeddings request. + OpenAIFile: + properties: + type: + type: string + const: file + title: Type + default: file + file: + $ref: '#/components/schemas/OpenAIFileFile' + type: object + required: + - file + title: OpenAIFile + OpenAIFileDeleteResponse: + properties: + id: + type: string + title: Id + description: The file identifier that was deleted. + object: + type: string + const: file + title: Object + description: The object type, which is always 'file'. + default: file + deleted: + type: boolean + title: Deleted + description: Whether the file was successfully deleted. + type: object + required: + - id + - deleted + title: OpenAIFileDeleteResponse + description: Response for deleting a file in OpenAI Files API. + OpenAIFileFile: + properties: + file_id: + anyOf: + - type: string + - type: 'null' + title: File Id + filename: + anyOf: + - type: string + - type: 'null' + title: Filename + type: object + title: OpenAIFileFile + OpenAIFileObject: + properties: + object: + type: string + const: file + title: Object + description: The object type, which is always 'file'. + default: file + id: + type: string + title: Id + description: The file identifier, which can be referenced in the API endpoints. + bytes: + type: integer + title: Bytes + description: The size of the file, in bytes. + created_at: + type: integer + title: Created At + description: The Unix timestamp (in seconds) for when the file was created. + expires_at: + type: integer + title: Expires At + description: The Unix timestamp (in seconds) for when the file expires. + filename: + type: string + title: Filename + description: The name of the file. + purpose: + $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the file. + type: object + required: + - id + - bytes + - created_at + - expires_at + - filename + - purpose + title: OpenAIFileObject + description: OpenAI File object as defined in the OpenAI Files API. + OpenAIFilePurpose: + type: string + enum: + - assistants + - batch + title: OpenAIFilePurpose + description: Valid purpose values for OpenAI Files API. + OpenAIImageURL: + properties: + url: + type: string + title: Url + detail: + anyOf: + - type: string + - type: 'null' + title: Detail + type: object + required: + - url + title: OpenAIImageURL + description: Image URL specification for OpenAI-compatible chat completion messages. + OpenAIJSONSchema: + properties: + name: + type: string + title: Name + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + type: object + title: OpenAIJSONSchema + description: JSON schema specification for OpenAI-compatible structured response format. + OpenAIResponseAnnotationCitation: + properties: + type: + type: string + const: url_citation + title: Type + description: Annotation type identifier, always "url_citation" + default: url_citation + end_index: + type: integer + title: End Index + description: End position of the citation span in the content + start_index: + type: integer + title: Start Index + description: Start position of the citation span in the content + title: + type: string + title: Title + description: Title of the referenced web resource + url: + type: string + title: Url + description: URL of the referenced web resource + type: object + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + type: string + const: container_file_citation + title: Type + default: container_file_citation + container_id: + type: string + title: Container Id + end_index: + type: integer + title: End Index + file_id: + type: string + title: File Id + filename: + type: string + title: Filename + start_index: + type: integer + title: Start Index + type: object + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + OpenAIResponseAnnotationFileCitation: + properties: + type: + type: string + const: file_citation + title: Type + description: Annotation type identifier, always "file_citation" + default: file_citation + file_id: + type: string + title: File Id + description: Unique identifier of the referenced file + filename: + type: string + title: Filename + description: Name of the referenced file + index: + type: integer + title: Index + description: Position index of the citation within the content + type: object + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + OpenAIResponseAnnotationFilePath: + properties: + type: + type: string + const: file_path + title: Type + default: file_path + file_id: + type: string + title: File Id + index: + type: integer + title: Index + type: object + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + OpenAIResponseContentPartRefusal: + properties: + type: + type: string + const: refusal + title: Type + description: Content part type identifier, always "refusal" + default: refusal + refusal: + type: string + title: Refusal + description: Refusal text supplied by the model + type: object + required: + - refusal + title: OpenAIResponseContentPartRefusal + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + OpenAIResponseError: + properties: + code: + type: string + title: Code + description: Error code identifying the type of failure + message: + type: string + title: Message + description: Human-readable error message describing the failure + type: object + required: + - code + - message + title: OpenAIResponseError + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" + OpenAIResponseFormatJSONObject: + properties: + type: + type: string + const: json_object + title: Type + default: json_object + type: object + title: OpenAIResponseFormatJSONObject + description: JSON object response format for OpenAI-compatible chat completion requests. + OpenAIResponseFormatJSONSchema: + properties: + type: + type: string + const: json_schema + title: Type + default: json_schema + json_schema: + $ref: '#/components/schemas/OpenAIJSONSchema' + type: object + required: + - json_schema + title: OpenAIResponseFormatJSONSchema + description: JSON schema response format for OpenAI-compatible chat completion requests. + OpenAIResponseFormatText: + properties: + type: + type: string + const: text + title: Type + default: text + type: object + title: OpenAIResponseFormatText + description: Text response format for OpenAI-compatible chat completion requests. + OpenAIResponseInputFunctionToolCallOutput: + properties: + call_id: + type: string + title: Call Id + output: + type: string + title: Output + type: + type: string + const: function_call_output + title: Type + default: function_call_output + id: + anyOf: + - type: string + - type: 'null' + title: Id + status: + anyOf: + - type: string + - type: 'null' + title: Status + type: object + required: + - call_id + - output + title: OpenAIResponseInputFunctionToolCallOutput + description: This represents the output of a function call that gets passed back to the model. + OpenAIResponseInputMessageContentFile: + properties: + type: + type: string + const: input_file + title: Type + description: The type of the input item. Always `input_file`. + default: input_file + file_data: + anyOf: + - type: string + - type: 'null' + title: File Data + description: The data of the file to be sent to the model. + file_id: + anyOf: + - type: string + - type: 'null' + title: File Id + description: The ID of the file to be sent to the model. + file_url: + anyOf: + - type: string + - type: 'null' + title: File Url + description: The URL of the file to be sent to the model. + filename: + anyOf: + - type: string + - type: 'null' + title: Filename + description: The name of the file to be sent to the model. + type: object + title: OpenAIResponseInputMessageContentFile + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + OpenAIResponseInputMessageContentImage: + properties: + detail: + anyOf: + - type: string + const: low + - type: string + const: high + - type: string + const: auto + title: Detail + description: Level of detail for image processing, can be "low", "high", or "auto" + default: auto + type: + type: string + const: input_image + title: Type + description: Content type identifier, always "input_image" + default: input_image + file_id: + anyOf: + - type: string + - type: 'null' + title: File Id + description: The ID of the file to be sent to the model. + image_url: + anyOf: + - type: string + - type: 'null' + title: Image Url + description: URL of the image content + type: object + title: OpenAIResponseInputMessageContentImage + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + OpenAIResponseInputMessageContentText: + properties: + text: + type: string + title: Text + description: The text content of the input message + type: + type: string + const: input_text + title: Type + description: Content type identifier, always "input_text" + default: input_text + type: object + required: + - text + title: OpenAIResponseInputMessageContentText + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + OpenAIResponseInputToolFileSearch: + properties: + type: + type: string + const: file_search + title: Type + description: Tool type identifier, always "file_search" + default: file_search + vector_store_ids: + items: + type: string + type: array + title: Vector Store Ids + description: List of vector store identifiers to search within + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Filters + description: Additional filters to apply to the search + max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' + title: Max Num Results + description: Maximum number of search results to return (1-50) + default: 10 + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Options for ranking and scoring search results + type: object + required: + - vector_store_ids + title: OpenAIResponseInputToolFileSearch + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" + OpenAIResponseInputToolFunction: + properties: + type: + type: string + const: function + title: Type + description: Tool type identifier, always "function" + default: function + name: + type: string + title: Name + description: Name of the function that can be called + description: + anyOf: + - type: string + - type: 'null' + title: Description + description: Description of what the function does + parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Parameters + description: JSON schema defining the function's parameters + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + description: Whether to enforce strict parameter validation + type: object + required: + - name + title: OpenAIResponseInputToolFunction + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" + OpenAIResponseInputToolMCP: + properties: + type: + type: string + const: mcp + title: Type + description: Tool type identifier, always "mcp" + default: mcp + server_label: + type: string + title: Server Label + description: Label to identify this MCP server + server_url: + type: string + title: Server Url + description: URL endpoint of the MCP server + headers: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Headers + description: HTTP headers to include when connecting to the server + require_approval: + anyOf: + - type: string + const: always + - type: string + const: never + - $ref: '#/components/schemas/ApprovalFilter' + title: Require Approval + description: Approval requirement for tool calls ("always", "never", or filter) + default: never + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + title: Allowed Tools + description: Restriction on which tools can be used from this server + type: object + required: + - server_label + - server_url + title: OpenAIResponseInputToolMCP + description: "Model Context Protocol (MCP) tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param server_url: URL endpoint of the MCP server\n:param headers: (Optional) HTTP headers to include when connecting to the server\n:param require_approval: Approval requirement for tool calls (\"always\", \"never\", or filter)\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + OpenAIResponseInputToolWebSearch: + properties: + type: + anyOf: + - type: string + const: web_search + - type: string + const: web_search_preview + - type: string + const: web_search_preview_2025_03_11 + title: Type + description: Web search tool type variant to use + default: web_search + search_context_size: + anyOf: + - type: string + pattern: ^low|medium|high$ + - type: 'null' + title: Search Context Size + description: Size of search context, must be "low", "medium", or "high" + default: medium + type: object + title: OpenAIResponseInputToolWebSearch + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" + OpenAIResponseMCPApprovalRequest: + properties: + arguments: + type: string + title: Arguments + id: + type: string + title: Id + name: + type: string + title: Name + server_label: + type: string + title: Server Label + type: + type: string + const: mcp_approval_request + title: Type + default: mcp_approval_request + type: object + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + description: A request for human approval of a tool invocation. + OpenAIResponseMCPApprovalResponse: + properties: + approval_request_id: + type: string + title: Approval Request Id + approve: + type: boolean + title: Approve + type: + type: string + const: mcp_approval_response + title: Type + default: mcp_approval_response + id: + anyOf: + - type: string + - type: 'null' + title: Id + reason: + anyOf: + - type: string + - type: 'null' + title: Reason + type: object + required: + - approval_request_id + - approve + title: OpenAIResponseMCPApprovalResponse + description: A response to an MCP approval request. + OpenAIResponseMessage-Input: + properties: + content: + anyOf: + - type: string + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + discriminator: + propertyName: type + mapping: + input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' + input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' + input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' + type: array + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + discriminator: + propertyName: type + mapping: + output_text: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - type: string + const: system + - type: string + const: developer + - type: string + const: user + - type: string + const: assistant + title: Role + type: + type: string + const: message + title: Type + default: message + id: + anyOf: + - type: string + - type: 'null' + title: Id + status: + anyOf: + - type: string + - type: 'null' + title: Status + type: object + required: + - content + - role + title: OpenAIResponseMessage + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + OpenAIResponseMessage-Output: + properties: + content: + anyOf: + - type: string + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + discriminator: + propertyName: type + mapping: + input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' + input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' + input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' + type: array + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + discriminator: + propertyName: type + mapping: + output_text: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - type: string + const: system + - type: string + const: developer + - type: string + const: user + - type: string + const: assistant + title: Role + type: + type: string + const: message + title: Type + default: message + id: + anyOf: + - type: string + - type: 'null' + title: Id + status: + anyOf: + - type: string + - type: 'null' + title: Status + type: object + required: + - content + - role + title: OpenAIResponseMessage + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + OpenAIResponseObject: + properties: + created_at: + type: integer + title: Created At + description: Unix timestamp when the response was created + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed + id: + type: string + title: Id + description: Unique identifier for this response + model: + type: string + title: Model + description: Model identifier used for generation + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + output: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + title: Output + description: List of generated output items (messages, tool calls, etc.) + parallel_tool_calls: + type: boolean + title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel + default: false + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: ID of the previous response in a conversation + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. + status: + type: string + title: Status + description: Current status of the response generation + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature used for generation + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + description: Nucleus sampling parameter used for generation + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: An array of tools the model may call while generating a response. + truncation: + anyOf: + - type: string + - type: 'null' + title: Truncation + description: Truncation strategy applied to the response + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System message inserted into the model's context + type: object + required: + - created_at + - id + - model + - output + - status + title: OpenAIResponseObject + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + OpenAIResponseObjectWithInput-Input: + properties: + created_at: + type: integer + title: Created At + description: Unix timestamp when the response was created + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed + id: + type: string + title: Id + description: Unique identifier for this response + model: + type: string + title: Model + description: Model identifier used for generation + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + output: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + title: Output + description: List of generated output items (messages, tool calls, etc.) + parallel_tool_calls: + type: boolean + title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel + default: false + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: ID of the previous response in a conversation + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. + status: + type: string + title: Status + description: Current status of the response generation + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature used for generation + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + description: Nucleus sampling parameter used for generation + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: An array of tools the model may call while generating a response. + truncation: + anyOf: + - type: string + - type: 'null' + title: Truncation + description: Truncation strategy applied to the response + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System message inserted into the model's context + input: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + type: array + title: Input + description: List of input items that led to this response + type: object + required: + - created_at + - id + - model + - output + - status + - input + title: OpenAIResponseObjectWithInput + description: "OpenAI response object extended with input context information.\n\n:param input: List of input items that led to this response" + OpenAIResponseObjectWithInput-Output: + properties: + created_at: + type: integer + title: Created At + description: Unix timestamp when the response was created + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed + id: + type: string + title: Id + description: Unique identifier for this response + model: + type: string + title: Model + description: Model identifier used for generation + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + output: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + title: Output + description: List of generated output items (messages, tool calls, etc.) + parallel_tool_calls: + type: boolean + title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel + default: false + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: ID of the previous response in a conversation + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. + status: + type: string + title: Status + description: Current status of the response generation + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature used for generation + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + description: Nucleus sampling parameter used for generation + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: An array of tools the model may call while generating a response. + truncation: + anyOf: + - type: string + - type: 'null' + title: Truncation + description: Truncation strategy applied to the response + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System message inserted into the model's context + input: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Input + description: List of input items that led to this response + type: object + required: + - created_at + - id + - model + - output + - status + - input + title: OpenAIResponseObjectWithInput + description: "OpenAI response object extended with input context information.\n\n:param input: List of input items that led to this response" + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + type: string + title: Text + type: + type: string + const: output_text + title: Type + default: output_text + annotations: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + discriminator: + propertyName: type + mapping: + container_file_citation: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + file_path: '#/components/schemas/OpenAIResponseAnnotationFilePath' + url_citation: '#/components/schemas/OpenAIResponseAnnotationCitation' + type: array + title: Annotations + type: object + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + OpenAIResponseOutputMessageFileSearchToolCall: + properties: + id: + type: string + title: Id + description: Unique identifier for this tool call + queries: + items: + type: string + type: array + title: Queries + description: List of search queries executed + status: + type: string + title: Status + description: Current status of the file search operation + type: + type: string + const: file_search_call + title: Type + description: Tool call type identifier, always "file_search_call" + default: file_search_call + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + title: Results + description: Search results returned by the file search operation + type: object + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + OpenAIResponseOutputMessageFileSearchToolCallResults: + properties: + attributes: + additionalProperties: true + type: object + title: Attributes + description: Key-value attributes associated with the file + file_id: + type: string + title: File Id + description: Unique identifier of the file containing the result + filename: + type: string + title: Filename + description: Name of the file containing the result + score: + type: number + title: Score + description: Relevance score for this search result (between 0 and 1) + text: + type: string + title: Text + description: Text content of the search result + type: object + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + OpenAIResponseOutputMessageFunctionToolCall: + properties: + call_id: + type: string + title: Call Id + description: Unique identifier for the function call + name: + type: string + title: Name + description: Name of the function being called + arguments: + type: string + title: Arguments + description: JSON string containing the function arguments + type: + type: string + const: function_call + title: Type + description: Tool call type identifier, always "function_call" + default: function_call + id: + anyOf: + - type: string + - type: 'null' + title: Id + description: Additional identifier for the tool call + status: + anyOf: + - type: string + - type: 'null' + title: Status + description: Current status of the function call execution + type: object + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + OpenAIResponseOutputMessageMCPCall: + properties: + id: + type: string + title: Id + description: Unique identifier for this MCP call + type: + type: string + const: mcp_call + title: Type + description: Tool call type identifier, always "mcp_call" + default: mcp_call + arguments: + type: string + title: Arguments + description: JSON string containing the MCP call arguments + name: + type: string + title: Name + description: Name of the MCP method being called + server_label: + type: string + title: Server Label + description: Label identifying the MCP server handling the call + error: + anyOf: + - type: string + - type: 'null' + title: Error + description: Error message if the MCP call failed + output: + anyOf: + - type: string + - type: 'null' + title: Output + description: Output result from the successful MCP call + type: object + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + OpenAIResponseOutputMessageMCPListTools: + properties: + id: + type: string + title: Id + description: Unique identifier for this MCP list tools operation + type: + type: string + const: mcp_list_tools + title: Type + description: Tool call type identifier, always "mcp_list_tools" + default: mcp_list_tools + server_label: + type: string + title: Server Label + description: Label identifying the MCP server providing the tools + tools: + items: + $ref: '#/components/schemas/MCPListToolsTool' + type: array + title: Tools + description: List of available tools provided by the MCP server + type: object + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + OpenAIResponseOutputMessageWebSearchToolCall: + properties: + id: + type: string + title: Id + description: Unique identifier for this tool call + status: + type: string + title: Status + description: Current status of the web search operation + type: + type: string + const: web_search_call + title: Type + description: Tool call type identifier, always "web_search_call" + default: web_search_call + type: object + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + OpenAIResponsePrompt: + properties: + id: + type: string + title: Id + description: Unique identifier of the prompt template + variables: + anyOf: + - additionalProperties: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + discriminator: + propertyName: type + mapping: + input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' + input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' + input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' + type: object + - type: 'null' + title: Variables + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. + version: + anyOf: + - type: string + - type: 'null' + title: Version + description: Version number of the prompt to use (defaults to latest if not specified) + type: object + required: + - id + title: OpenAIResponsePrompt + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" + OpenAIResponseText: + properties: + format: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + description: Text format configuration specifying output format requirements + type: object + title: OpenAIResponseText + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" + OpenAIResponseTextFormat: + properties: + type: + anyOf: + - type: string + const: text + - type: string + const: json_schema + - type: string + const: json_object + title: Type + name: + anyOf: + - type: string + - type: 'null' + title: Name + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + type: object + title: OpenAIResponseTextFormat + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." + OpenAIResponseToolMCP: + properties: + type: + type: string + const: mcp + title: Type + description: Tool type identifier, always "mcp" + default: mcp + server_label: + type: string + title: Server Label + description: Label to identify this MCP server + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + title: Allowed Tools + description: Restriction on which tools can be used from this server + type: object + required: + - server_label + title: OpenAIResponseToolMCP + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + OpenAIResponseUsage: + properties: + input_tokens: + type: integer + title: Input Tokens + description: Number of tokens in the input + output_tokens: + type: integer + title: Output Tokens + description: Number of tokens in the output + total_tokens: + type: integer + title: Total Tokens + description: Total tokens used (input + output) + input_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + description: Detailed breakdown of input token usage + output_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + description: Detailed breakdown of output token usage + type: object + required: + - input_tokens + - output_tokens + - total_tokens + title: OpenAIResponseUsage + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" + OpenAIResponseUsageInputTokensDetails: + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + title: Cached Tokens + description: Number of tokens retrieved from cache + type: object + title: OpenAIResponseUsageInputTokensDetails + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" + OpenAIResponseUsageOutputTokensDetails: + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + title: Reasoning Tokens + description: Number of tokens used for reasoning (o1/o3 models) + type: object + title: OpenAIResponseUsageOutputTokensDetails + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" + OpenAISystemMessageParam: + properties: + role: + type: string + const: system + title: Role + default: system + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + title: Name + type: object + required: + - content + title: OpenAISystemMessageParam + description: A system message providing instructions or context to the model. + OpenAITokenLogProb: + properties: + token: + type: string + title: Token + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + title: Bytes + logprob: + type: number + title: Logprob + top_logprobs: + items: + $ref: '#/components/schemas/OpenAITopLogProb' + type: array + title: Top Logprobs + type: object + required: + - token + - logprob + - top_logprobs + title: OpenAITokenLogProb + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" + OpenAIToolMessageParam: + properties: + role: + type: string + const: tool + title: Role + default: tool + tool_call_id: + type: string + title: Tool Call Id + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + type: object + required: + - tool_call_id + - content + title: OpenAIToolMessageParam + description: A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + OpenAITopLogProb: + properties: + token: + type: string + title: Token + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + title: Bytes + logprob: + type: number + title: Logprob + type: object + required: + - token + - logprob + title: OpenAITopLogProb + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" + OpenAIUserMessageParam-Input: + properties: + role: + type: string + const: user + title: Role + default: user + content: + anyOf: + - type: string + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + - $ref: '#/components/schemas/OpenAIFile' + discriminator: + propertyName: type + mapping: + file: '#/components/schemas/OpenAIFile' + image_url: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + text: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + title: Name + type: object + required: + - content + title: OpenAIUserMessageParam + description: A message from the user in an OpenAI-compatible chat completion request. + OpenAIUserMessageParam-Output: + properties: + role: + type: string + const: user + title: Role + default: user + content: + anyOf: + - type: string + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + - $ref: '#/components/schemas/OpenAIFile' + discriminator: + propertyName: type + mapping: + file: '#/components/schemas/OpenAIFile' + image_url: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + text: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + title: Name + type: object + required: + - content + title: OpenAIUserMessageParam + description: A message from the user in an OpenAI-compatible chat completion request. + OptimizerConfig: + properties: + optimizer_type: + $ref: '#/components/schemas/OptimizerType' + lr: + type: number + title: Lr + weight_decay: + type: number + title: Weight Decay + num_warmup_steps: + type: integer + title: Num Warmup Steps + type: object + required: + - optimizer_type + - lr + - weight_decay + - num_warmup_steps + title: OptimizerConfig + description: Configuration parameters for the optimization algorithm. + OptimizerType: + type: string + enum: + - adam + - adamw + - sgd + title: OptimizerType + description: Available optimizer algorithms for training. + Order: + type: string + enum: + - asc + - desc + title: Order + description: Sort order for paginated responses. + OutputTokensDetails: + properties: + reasoning_tokens: + type: integer + title: Reasoning Tokens + additionalProperties: true + type: object + required: + - reasoning_tokens + title: OutputTokensDetails + PaginatedResponse: + properties: + data: + items: + additionalProperties: true + type: object + type: array + title: Data + description: The list of items for the current page. + has_more: + type: boolean + title: Has More + description: Whether there are more items available after this set. + url: + anyOf: + - type: string + - type: 'null' + title: Url + description: The URL for accessing this list. + type: object + required: + - data + - has_more + - url + title: PaginatedResponse + description: A generic paginated response that follows a simple format. + PostTrainingJob: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job + type: object + required: + - job_uuid + title: PostTrainingJob + PostTrainingJobArtifactsResponse: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + title: PostTrainingJobArtifactsResponse + description: Artifacts of a finetuning job. + PostTrainingJobStatusResponse: + properties: + job_uuid: + type: string + title: Job Uuid + status: + $ref: '#/components/schemas/JobStatus' + scheduled_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Scheduled At + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + resources_allocated: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Resources Allocated + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + - status + title: PostTrainingJobStatusResponse + description: Status of a finetuning job. + PostTrainingMetric: + properties: + epoch: + type: integer + title: Epoch + description: Training epoch number. + train_loss: + type: number + title: Train Loss + description: Loss value on the training dataset. + validation_loss: + type: number + title: Validation Loss + description: Loss value on the validation dataset. + perplexity: + type: number + title: Perplexity + description: Perplexity metric indicating model confidence. + type: object + required: + - epoch + - train_loss + - validation_loss + - perplexity + title: PostTrainingMetric + description: Training metrics captured during post-training jobs. + PreferenceOptimizeRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + finetuned_model: + type: string + title: Finetuned Model + description: The model to fine-tune + algorithm_config: + $ref: '#/components/schemas/DPOAlignmentConfig' + description: The algorithm configuration + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + type: object + required: + - job_uuid + - finetuned_model + - algorithm_config + - training_config + - hyperparam_search_config + - logger_config + title: PreferenceOptimizeRequest + description: Request to run preference optimization of a model. + Prompt: + properties: + prompt: + anyOf: + - type: string + - type: 'null' + title: Prompt + description: The system prompt text with variable placeholders. Variables are only supported when using the Responses API. + version: + type: integer + minimum: 1.0 + title: Version + description: Version (integer starting at 1, incremented on save). + prompt_id: + type: string + title: Prompt Id + description: Unique identifier formatted as 'pmpt_<48-digit-hash>'. + variables: + items: + type: string + type: array + title: Variables + description: List of prompt variable names that can be used in the prompt template. + is_default: + type: boolean + title: Is Default + description: Boolean indicating whether this version is the default version for this prompt. + default: false + type: object + required: + - version + - prompt_id + title: Prompt + description: A prompt resource representing a stored OpenAI Compatible prompt template in Llama Stack. + ProviderInfo: + properties: + api: + type: string + title: Api + description: The API name this provider implements + provider_id: + type: string + title: Provider Id + description: Unique identifier for the provider + provider_type: + type: string + title: Provider Type + description: The type of provider implementation + config: + additionalProperties: true + type: object + title: Config + description: Configuration parameters for the provider + health: + additionalProperties: true + type: object + title: Health + description: Current health status of the provider + type: object + required: + - api + - provider_id + - provider_type + - config + - health + title: ProviderInfo + description: Information about a registered provider including its configuration and health status. + QATFinetuningConfig: + properties: + type: + type: string + const: QAT + title: Type + default: QAT + quantizer_name: + type: string + title: Quantizer Name + group_size: + type: integer + title: Group Size + type: object + required: + - quantizer_name + - group_size + title: QATFinetuningConfig + description: Configuration for Quantization-Aware Training (QAT) fine-tuning. + QueryChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to query. + query: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Query + description: The query to search for. + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the query. + type: object + required: + - vector_store_id + - query + title: QueryChunksRequest + description: Request to query chunks from a vector database. + QueryChunksResponse: + properties: + chunks: + items: + $ref: '#/components/schemas/Chunk-Output' + type: array + title: Chunks + scores: + items: + type: number + type: array + title: Scores + type: object + required: + - chunks + - scores + title: QueryChunksResponse + description: Response from querying chunks in a vector database. + RAGDocument: + properties: + document_id: + type: string + title: Document Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + title: Content + mime_type: + anyOf: + - type: string + - type: 'null' + title: Mime Type + metadata: + additionalProperties: true + type: object + title: Metadata + type: object + required: + - document_id + - content + title: RAGDocument + description: "A document to be used for document ingestion in the RAG Tool.\n\n:param document_id: The unique identifier for the document.\n:param content: The content of the document.\n:param mime_type: The MIME type of the document.\n:param metadata: Additional metadata for the document." + RAGQueryConfig: + properties: + query_generator_config: + oneOf: + - $ref: '#/components/schemas/DefaultRAGQueryGeneratorConfig' + - $ref: '#/components/schemas/LLMRAGQueryGeneratorConfig' + title: Query Generator Config + default: + type: default + separator: ' ' + discriminator: + propertyName: type + mapping: + default: '#/components/schemas/DefaultRAGQueryGeneratorConfig' + llm: '#/components/schemas/LLMRAGQueryGeneratorConfig' + max_tokens_in_context: + type: integer + title: Max Tokens In Context + default: 4096 + max_chunks: + type: integer + title: Max Chunks + default: 5 + chunk_template: + type: string + title: Chunk Template + default: "Result {index}\nContent: {chunk.content}\nMetadata: {metadata}\n" + mode: + anyOf: + - $ref: '#/components/schemas/RAGSearchMode' + - type: 'null' + default: vector + ranker: + anyOf: + - oneOf: + - $ref: '#/components/schemas/RRFRanker' + - $ref: '#/components/schemas/WeightedRanker' + discriminator: + propertyName: type + mapping: + rrf: '#/components/schemas/RRFRanker' + weighted: '#/components/schemas/WeightedRanker' + - type: 'null' + title: Ranker + type: object + title: RAGQueryConfig + description: "Configuration for the RAG query generation.\n\n:param query_generator_config: Configuration for the query generator.\n:param max_tokens_in_context: Maximum number of tokens in the context.\n:param max_chunks: Maximum number of chunks to retrieve.\n:param chunk_template: Template for formatting each retrieved chunk in the context.\n Available placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk content string), {metadata} (chunk metadata dict).\n Default: \"Result {index}\\nContent: {chunk.content}\\nMetadata: {metadata}\\n\"\n:param mode: Search mode for retrieval—either \"vector\", \"keyword\", or \"hybrid\". Default \"vector\".\n:param ranker: Configuration for the ranker to use in hybrid search. Defaults to RRF ranker." + RAGQueryResult: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + title: Content + metadata: + additionalProperties: true + type: object + title: Metadata + type: object + title: RAGQueryResult + description: "Result of a RAG query containing retrieved content and metadata.\n\n:param content: (Optional) The retrieved content from the query\n:param metadata: Additional metadata about the query result" + RAGSearchMode: + type: string + enum: + - vector + - keyword + - hybrid + title: RAGSearchMode + description: "Search modes for RAG query retrieval:\n- VECTOR: Uses vector similarity search for semantic matching\n- KEYWORD: Uses keyword-based search for exact matching\n- HYBRID: Combines both vector and keyword search for better results" + RRFRanker: + properties: + type: + type: string + const: rrf + title: Type + default: rrf + impact_factor: + type: number + title: Impact Factor + default: 60.0 + minimum: 0.0 + type: object + title: RRFRanker + description: "Reciprocal Rank Fusion (RRF) ranker configuration.\n\n:param type: The type of ranker, always \"rrf\"\n:param impact_factor: The impact factor for RRF scoring. Higher values give more weight to higher-ranked results.\n Must be greater than 0" + RegexParserScoringFnParams: + properties: + type: + type: string + const: regex_parser + title: Type + default: regex_parser + parsing_regexes: + items: + type: string + type: array + title: Parsing Regexes + description: Regex to extract the answer from generated response + aggregation_functions: + items: + $ref: '#/components/schemas/AggregationFunctionType' + type: array + title: Aggregation Functions + description: Aggregation functions to apply to the scores of each row + type: object + title: RegexParserScoringFnParams + description: Parameters for regex parser scoring function configuration. + RegisterBenchmarkRequest: + properties: + benchmark_id: + type: string + title: Benchmark Id + description: The ID of the benchmark to register + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to use for the benchmark + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the benchmark + provider_benchmark_id: + anyOf: + - type: string + - type: 'null' + title: Provider Benchmark Id + description: The ID of the provider benchmark to use for the benchmark + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the benchmark + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata to use for the benchmark + type: object + required: + - benchmark_id + - dataset_id + - scoring_functions + title: RegisterBenchmarkRequest + description: Request model for registering a benchmark. + RegisterDatasetRequest: + properties: + purpose: + $ref: '#/components/schemas/DatasetPurpose' + description: The purpose of the dataset + source: + oneOf: + - $ref: '#/components/schemas/URIDataSource' + - $ref: '#/components/schemas/RowsDataSource' + title: Source + description: The data source of the dataset + discriminator: + propertyName: type + mapping: + rows: '#/components/schemas/RowsDataSource' + uri: '#/components/schemas/URIDataSource' + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata for the dataset + dataset_id: + anyOf: + - type: string + - type: 'null' + title: Dataset Id + description: The ID of the dataset. If not provided, an ID will be generated + type: object + required: + - purpose + - source + title: RegisterDatasetRequest + description: Request model for registering a dataset. + RegisterModelRequest: + properties: + model_id: + type: string + title: Model Id + description: The identifier of the model to register. + provider_model_id: + anyOf: + - type: string + - type: 'null' + title: Provider Model Id + description: The identifier of the model in the provider. + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider. + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: Any additional metadata for this model. + model_type: + anyOf: + - $ref: '#/components/schemas/ModelType' + - type: 'null' + description: The type of model to register. + type: object + required: + - model_id + title: RegisterModelRequest + description: Request model for registering a new model. + RegisterScoringFunctionRequest: + properties: + scoring_fn_id: + type: string + title: Scoring Fn Id + description: The ID of the scoring function to register + description: + type: string + title: Description + description: The description of the scoring function + return_type: + oneOf: + - $ref: '#/components/schemas/StringType' + - $ref: '#/components/schemas/NumberType' + - $ref: '#/components/schemas/BooleanType' + - $ref: '#/components/schemas/ArrayType' + - $ref: '#/components/schemas/ObjectType' + - $ref: '#/components/schemas/JsonType' + - $ref: '#/components/schemas/UnionType' + - $ref: '#/components/schemas/ChatCompletionInputType' + - $ref: '#/components/schemas/CompletionInputType' + - $ref: '#/components/schemas/AgentTurnInputType' + title: Return Type + description: The return type of the scoring function + discriminator: + propertyName: type + mapping: + agent_turn_input: '#/components/schemas/AgentTurnInputType' + array: '#/components/schemas/ArrayType' + boolean: '#/components/schemas/BooleanType' + chat_completion_input: '#/components/schemas/ChatCompletionInputType' + completion_input: '#/components/schemas/CompletionInputType' + json: '#/components/schemas/JsonType' + number: '#/components/schemas/NumberType' + object: '#/components/schemas/ObjectType' + string: '#/components/schemas/StringType' + union: '#/components/schemas/UnionType' + provider_scoring_fn_id: + anyOf: + - type: string + - type: 'null' + title: Provider Scoring Fn Id + description: The ID of the provider scoring function to use for the scoring function + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the scoring function + params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + title: Params + description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval + type: object + required: + - scoring_fn_id + - description + - return_type + title: RegisterScoringFunctionRequest + description: Request model for registering a scoring function. + RegisterShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to register + provider_shield_id: + anyOf: + - type: string + - type: 'null' + title: Provider Shield Id + description: The identifier of the shield in the provider + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the shield + type: object + required: + - shield_id + title: RegisterShieldRequest + description: Request model for registering a shield. + RegisterToolGroupRequest: + properties: + toolgroup_id: + type: string + title: Toolgroup Id + description: The ID of the tool group to register + provider_id: + type: string + title: Provider Id + description: The ID of the provider to use for the tool group + mcp_endpoint: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: The MCP endpoint to use for the tool group + args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Args + description: A dictionary of arguments to pass to the tool group + type: object + required: + - toolgroup_id + - provider_id + title: RegisterToolGroupRequest + description: Request model for registering a tool group. + RerankData: + properties: + index: + type: integer + title: Index + relevance_score: + type: number + title: Relevance Score + type: object + required: + - index + - relevance_score + title: RerankData + description: A single rerank result from a reranking response. + RerankResponse: + properties: + data: + items: + $ref: '#/components/schemas/RerankData' + type: array + title: Data + type: object + required: + - data + title: RerankResponse + description: Response from a reranking request. + ResponseGuardrailSpec: + properties: + type: + type: string + title: Type + description: The type/identifier of the guardrail. + type: object + required: + - type + title: ResponseGuardrailSpec + description: Specification for a guardrail to apply during response generation. + RouteInfo: + properties: + route: + type: string + title: Route + description: The API endpoint path + method: + type: string + title: Method + description: HTTP method for the route + provider_types: + items: + type: string + type: array + title: Provider Types + description: List of provider types that implement this route + type: object + required: + - route + - method + - provider_types + title: RouteInfo + description: Information about an API route including its path, method, and implementing providers. + RowsDataSource: + properties: + type: + type: string + const: rows + title: Type + description: The type of data source + default: rows + rows: + items: + additionalProperties: true + type: object + type: array + title: Rows + description: "The dataset is stored in rows. E.g. [{'messages': [{'role': 'user', 'content': 'Hello, world!'}, {'role': 'assistant', 'content': 'Hello, world!'}]}]" + type: object + required: + - rows + title: RowsDataSource + description: A dataset stored in rows. + RunModerationRequest: + properties: + input: + anyOf: + - type: string + - items: + type: string + type: array + title: Input + description: Input (or inputs) to classify. Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models. + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: The content moderation model you would like to use. + type: object + required: + - input + title: RunModerationRequest + description: Request model for running moderation. + RunShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to run. + messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Input' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Input' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Input' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Input' + type: array + title: Messages + description: The messages to run the shield on. + params: + additionalProperties: true + type: object + title: Params + description: The parameters of the shield. + type: object + required: + - shield_id + - messages + - params + title: RunShieldRequest + description: Request model for running a shield. + RunShieldResponse: + properties: + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: Safety violation detected by the shield, if any. + type: object + title: RunShieldResponse + description: Response from running a safety shield. + SafetyViolation: + properties: + violation_level: + $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. + user_message: + anyOf: + - type: string + - type: 'null' + title: User Message + description: Message to convey to the user about the violation. + metadata: + additionalProperties: true + type: object + title: Metadata + description: Additional metadata including specific violation codes for debugging and telemetry. + type: object + required: + - violation_level + title: SafetyViolation + description: Details of a safety violation detected by content moderation. + SamplingParams: + properties: + strategy: + oneOf: + - $ref: '#/components/schemas/GreedySamplingStrategy' + - $ref: '#/components/schemas/TopPSamplingStrategy' + - $ref: '#/components/schemas/TopKSamplingStrategy' + title: Strategy + discriminator: + propertyName: type + mapping: + greedy: '#/components/schemas/GreedySamplingStrategy' + top_k: '#/components/schemas/TopKSamplingStrategy' + top_p: '#/components/schemas/TopPSamplingStrategy' + max_tokens: + anyOf: + - type: integer + minimum: 0.0 + - type: 'null' + title: Max Tokens + repetition_penalty: + anyOf: + - type: number + minimum: 0.0 + - type: 'null' + title: Repetition Penalty + default: 1.0 + stop: + anyOf: + - items: + type: string + type: array + minItems: 1 + - type: 'null' + title: Stop + type: object + title: SamplingParams + description: Sampling parameters. + ScoreBatchRequest: + properties: + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + save_results_dataset: + type: boolean + title: Save Results Dataset + description: Whether to save the results to a dataset + default: false + type: object + required: + - dataset_id + - scoring_functions + title: ScoreBatchRequest + description: Request for batch scoring operations. + ScoreBatchResponse: + properties: + dataset_id: + anyOf: + - type: string + - type: 'null' + title: Dataset Id + description: The identifier of the dataset that was scored + results: + additionalProperties: + $ref: '#/components/schemas/ScoringResult' + type: object + title: Results + description: A map of scoring function name to ScoringResult + type: object + required: + - results + title: ScoreBatchResponse + description: Response from batch scoring operations on datasets. + ScoreRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + type: object + required: + - input_rows + - scoring_functions + title: ScoreRequest + description: Request for scoring a list of rows. + ScoreResponse: + properties: + results: + additionalProperties: + $ref: '#/components/schemas/ScoringResult' + type: object + title: Results + description: A map of scoring function name to ScoringResult + type: object + required: + - results + title: ScoreResponse + description: The response from scoring. + ScoringFn: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for this resource in llama stack + provider_resource_id: + anyOf: + - type: string + - type: 'null' + title: Provider Resource Id + description: Unique identifier for this resource in the provider + provider_id: + type: string + title: Provider Id + description: ID of the provider that owns this resource + type: + type: string + const: scoring_function + title: Type + default: scoring_function + description: + anyOf: + - type: string + - type: 'null' + title: Description + metadata: + additionalProperties: true + type: object + title: Metadata + description: Any additional metadata for this definition + return_type: + oneOf: + - $ref: '#/components/schemas/StringType' + - $ref: '#/components/schemas/NumberType' + - $ref: '#/components/schemas/BooleanType' + - $ref: '#/components/schemas/ArrayType' + - $ref: '#/components/schemas/ObjectType' + - $ref: '#/components/schemas/JsonType' + - $ref: '#/components/schemas/UnionType' + - $ref: '#/components/schemas/ChatCompletionInputType' + - $ref: '#/components/schemas/CompletionInputType' + - $ref: '#/components/schemas/AgentTurnInputType' + title: Return Type + description: The return type of the deterministic function + discriminator: + propertyName: type + mapping: + agent_turn_input: '#/components/schemas/AgentTurnInputType' + array: '#/components/schemas/ArrayType' + boolean: '#/components/schemas/BooleanType' + chat_completion_input: '#/components/schemas/ChatCompletionInputType' + completion_input: '#/components/schemas/CompletionInputType' + json: '#/components/schemas/JsonType' + number: '#/components/schemas/NumberType' + object: '#/components/schemas/ObjectType' + string: '#/components/schemas/StringType' + union: '#/components/schemas/UnionType' + params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + title: Params + description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval + type: object + required: + - identifier + - provider_id + - return_type + title: ScoringFn + description: A scoring function resource for evaluating model outputs. + ScoringResult: + properties: + score_rows: + items: + additionalProperties: true + type: object + type: array + title: Score Rows + description: The scoring result for each row. Each row is a map of column name to value + aggregated_results: + additionalProperties: true + type: object + title: Aggregated Results + description: Map of metric name to aggregated value + type: object + required: + - score_rows + - aggregated_results + title: ScoringResult + description: A scoring result for a single row. + SearchRankingOptions: + properties: + ranker: + anyOf: + - type: string + - type: 'null' + title: Ranker + score_threshold: + anyOf: + - type: number + - type: 'null' + title: Score Threshold + default: 0.0 + type: object + title: SearchRankingOptions + description: Options for ranking and filtering search results. + Session: + properties: + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + session_name: + type: string + title: Session Name + description: Human-readable name for the session + turns: + items: + $ref: '#/components/schemas/Turn' + type: array + title: Turns + description: List of all turns that have occurred in this session + started_at: + type: string + format: date-time + title: Started At + description: Timestamp when the session was created + type: object + required: + - session_id + - session_name + - turns + - started_at + title: Session + description: A single session of an interaction with an Agentic System. + SetDefaultVersionRequest: + properties: + version: + type: integer + title: Version + description: The version to set as default. + type: object + required: + - version + title: SetDefaultVersionRequest + description: Request model for setting a prompt version as default. + Shield: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for this resource in llama stack + provider_resource_id: + anyOf: + - type: string + - type: 'null' + title: Provider Resource Id + description: Unique identifier for this resource in the provider + provider_id: + type: string + title: Provider Id + description: ID of the provider that owns this resource + type: + type: string + const: shield + title: Type + description: The resource type, always shield + default: shield + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: Configuration parameters for the shield + type: object + required: + - identifier + - provider_id + title: Shield + description: A safety shield resource that can be used to check content. + ShieldCallStep-Input: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: shield_call + title: Step Type + default: shield_call + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: The violation from the shield call. + type: object + required: + - turn_id + - step_id + title: ShieldCallStep + description: A shield call step in an agent turn. + ShieldCallStep-Output: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: shield_call + title: Step Type + default: shield_call + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: The violation from the shield call. + type: object + required: + - turn_id + - step_id + title: ShieldCallStep + description: A shield call step in an agent turn. + StopReason: + type: string + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + StringType: + properties: + type: + type: string + const: string + title: Type + default: string + type: object + title: StringType + description: "Parameter type for string values.\n\n:param type: Discriminator type. Always \"string\"" + SupervisedFineTuneRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: Model descriptor for training if not in provider config` + checkpoint_dir: + anyOf: + - type: string + - type: 'null' + title: Checkpoint Dir + description: The directory to save checkpoint(s) to + algorithm_config: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LoraFinetuningConfig' + - $ref: '#/components/schemas/QATFinetuningConfig' + discriminator: + propertyName: type + mapping: + LoRA: '#/components/schemas/LoraFinetuningConfig' + QAT: '#/components/schemas/QATFinetuningConfig' + - type: 'null' + title: Algorithm Config + description: The algorithm configuration + type: object + required: + - job_uuid + - training_config + - hyperparam_search_config + - logger_config + title: SupervisedFineTuneRequest + description: Request to run supervised fine-tuning of a model. + SystemMessage: + properties: + role: + type: string + const: system + title: Role + default: system + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + type: object + required: + - content + title: SystemMessage + description: A system message providing instructions or context to the model. + SystemMessageBehavior: + type: string + enum: + - append + - replace + title: SystemMessageBehavior + description: "Config for how to override the default system prompt.\n\nhttps://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt-\n'{{function_definitions}}' to indicate where the function definitions should be inserted." + TextContentItem: + properties: + type: + type: string + const: text + title: Type + default: text + text: + type: string + title: Text + type: object + required: + - text + title: TextContentItem + description: A text content item. + ToolCall: + properties: + call_id: + type: string + title: Call Id + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + type: string + title: Arguments + type: object + required: + - call_id + - tool_name + - arguments + title: ToolCall + ToolChoice: + type: string + enum: + - auto + - required + - none + title: ToolChoice + description: Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model. + ToolConfig: + properties: + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: string + - type: 'null' + title: Tool Choice + default: auto + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + system_message_behavior: + anyOf: + - $ref: '#/components/schemas/SystemMessageBehavior' + - type: 'null' + default: append + type: object + title: ToolConfig + description: "Configuration for tool use.\n\n- `ToolPromptFormat.json`: The tool calls are formatted as a JSON object.\n- `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag.\n- `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls.\n- `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt.\n- `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string\n '{{function_definitions}}' to indicate where the function definitions should be inserted." + ToolDef: + properties: + toolgroup_id: + anyOf: + - type: string + - type: 'null' + title: Toolgroup Id + description: ID of the tool group this tool belongs to + name: + type: string + title: Name + description: Name of the tool + description: + anyOf: + - type: string + - type: 'null' + title: Description + description: Human-readable description of what the tool does + input_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Input Schema + description: JSON Schema for tool inputs (MCP inputSchema) + output_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Output Schema + description: JSON Schema for tool outputs (MCP outputSchema) + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: Additional metadata about the tool + type: object + required: + - name + title: ToolDef + description: Tool definition used in runtime contexts. + ToolExecutionStep-Input: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: tool_execution + title: Step Type + default: tool_execution + tool_calls: + items: + $ref: '#/components/schemas/ToolCall' + type: array + title: Tool Calls + description: The tool calls to execute. + tool_responses: + items: + $ref: '#/components/schemas/ToolResponse-Input' + type: array + title: Tool Responses + description: The tool responses from the tool calls. + type: object + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + description: A tool execution step in an agent turn. + ToolExecutionStep-Output: + properties: + turn_id: + type: string + title: Turn Id + description: The ID of the turn. + step_id: + type: string + title: Step Id + description: The ID of the step. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + description: The time the step started. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: The time the step completed. + step_type: + type: string + const: tool_execution + title: Step Type + default: tool_execution + tool_calls: + items: + $ref: '#/components/schemas/ToolCall' + type: array + title: Tool Calls + description: The tool calls to execute. + tool_responses: + items: + $ref: '#/components/schemas/ToolResponse-Output' + type: array + title: Tool Responses + description: The tool responses from the tool calls. + type: object + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + description: A tool execution step in an agent turn. + ToolGroup: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for this resource in llama stack + provider_resource_id: + anyOf: + - type: string + - type: 'null' + title: Provider Resource Id + description: Unique identifier for this resource in the provider + provider_id: + type: string + title: Provider Id + description: ID of the provider that owns this resource + type: + type: string + const: tool_group + title: Type + description: Type of resource, always 'tool_group' + default: tool_group + mcp_endpoint: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: Model Context Protocol endpoint for remote tools + args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Args + description: Additional arguments for the tool group + type: object + required: + - identifier + - provider_id + title: ToolGroup + description: A group of related tools managed together. + ToolInvocationResult: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + title: Content + description: The output content from the tool execution + error_message: + anyOf: + - type: string + - type: 'null' + title: Error Message + description: Error message if the tool execution failed + error_code: + anyOf: + - type: integer + - type: 'null' + title: Error Code + description: Numeric error code if the tool execution failed + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: Additional metadata about the tool execution + type: object + title: ToolInvocationResult + description: Result of a tool invocation. + ToolPromptFormat: + type: string + enum: + - json + - function_tag + - python_list + title: ToolPromptFormat + description: "Prompt format for calling custom / zero shot tools.\n\n:cvar json: JSON format for calling tools. It takes the form:\n {\n \"type\": \"function\",\n \"function\" : {\n \"name\": \"function_name\",\n \"description\": \"function_description\",\n \"parameters\": {...}\n }\n }\n:cvar function_tag: Function tag format, pseudo-XML. This looks like:\n (parameters)\n\n:cvar python_list: Python list. The output is a valid Python expression that can be\n evaluated to a list. Each element in the list is a function call. Example:\n [\"function_name(param1, param2)\", \"function_name(param1, param2)\"]" + ToolResponse-Input: + properties: + call_id: + type: string + minLength: 1 + title: Call Id + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + type: object + required: + - call_id + - tool_name + - content + title: ToolResponse + description: Response from a tool invocation. + ToolResponse-Output: + properties: + call_id: + type: string + minLength: 1 + title: Call Id + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + type: object + required: + - call_id + - tool_name + - content + title: ToolResponse + description: Response from a tool invocation. + ToolResponseMessage-Input: + properties: + role: + type: string + const: tool + title: Role + default: tool + call_id: + type: string + title: Call Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + type: object + required: + - call_id + - content + title: ToolResponseMessage + description: A message representing the result of a tool invocation. + ToolResponseMessage-Output: + properties: + role: + type: string + const: tool + title: Role + default: tool + call_id: + type: string + title: Call Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + type: object + required: + - call_id + - content + title: ToolResponseMessage + description: A message representing the result of a tool invocation. + TopKSamplingStrategy: + properties: + type: + type: string + const: top_k + title: Type + default: top_k + top_k: + type: integer + minimum: 1.0 + title: Top K + type: object + required: + - top_k + title: TopKSamplingStrategy + description: Top-k sampling strategy that restricts sampling to the k most likely tokens. + TopPSamplingStrategy: + properties: + type: + type: string + const: top_p + title: Type + default: top_p + temperature: + anyOf: + - type: number + minimum: 0.0 + - type: 'null' + title: Temperature + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + default: 0.95 + type: object + required: + - temperature + title: TopPSamplingStrategy + description: Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p. + TrainingConfig: + properties: + n_epochs: + type: integer + title: N Epochs + max_steps_per_epoch: + type: integer + title: Max Steps Per Epoch + default: 1 + gradient_accumulation_steps: + type: integer + title: Gradient Accumulation Steps + default: 1 + max_validation_steps: + anyOf: + - type: integer + - type: 'null' + title: Max Validation Steps + default: 1 + data_config: + anyOf: + - $ref: '#/components/schemas/DataConfig' + - type: 'null' + optimizer_config: + anyOf: + - $ref: '#/components/schemas/OptimizerConfig' + - type: 'null' + efficiency_config: + anyOf: + - $ref: '#/components/schemas/EfficiencyConfig' + - type: 'null' + dtype: + anyOf: + - type: string + - type: 'null' + title: Dtype + default: bf16 + type: object + required: + - n_epochs + title: TrainingConfig + description: Comprehensive configuration for the training process. + Turn: + properties: + turn_id: + type: string + title: Turn Id + description: Unique identifier for the turn within a session + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + input_messages: + items: + anyOf: + - $ref: '#/components/schemas/UserMessage-Output' + - $ref: '#/components/schemas/ToolResponseMessage-Output' + type: array + title: Input Messages + description: List of messages that initiated this turn + steps: + items: + oneOf: + - $ref: '#/components/schemas/InferenceStep-Output' + - $ref: '#/components/schemas/ToolExecutionStep-Output' + - $ref: '#/components/schemas/ShieldCallStep-Output' + - $ref: '#/components/schemas/MemoryRetrievalStep-Output' + discriminator: + propertyName: step_type + mapping: + inference: '#/components/schemas/InferenceStep-Output' + memory_retrieval: '#/components/schemas/MemoryRetrievalStep-Output' + shield_call: '#/components/schemas/ShieldCallStep-Output' + tool_execution: '#/components/schemas/ToolExecutionStep-Output' + type: array + title: Steps + description: Ordered list of processing steps executed during this turn + output_message: + $ref: '#/components/schemas/CompletionMessage-Output' + description: The model's generated response containing content and metadata + output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment-Output' + type: array + - type: 'null' + title: Output Attachments + description: Files or media attached to the agent's response + started_at: + type: string + format: date-time + title: Started At + description: Timestamp when the turn began + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + description: Timestamp when the turn finished, if completed + type: object + required: + - turn_id + - session_id + - input_messages + - steps + - output_message + - started_at + title: Turn + description: A single turn in an interaction with an Agentic System. + URIDataSource: + properties: + type: + type: string + const: uri + title: Type + description: The type of data source + default: uri + uri: + type: string + title: Uri + description: The dataset can be obtained from a URI. E.g. 'https://mywebsite.com/mydata.jsonl', 'lsfs://mydata.jsonl', 'data:csv;base64,{base64_content}' + type: object + required: + - uri + title: URIDataSource + description: A dataset that can be obtained from a URI. + URL: + properties: + uri: + type: string + title: Uri + type: object + required: + - uri + title: URL + description: A URL reference to external content. + UnionType: + properties: + type: + type: string + const: union + title: Type + default: union + type: object + title: UnionType + description: "Parameter type for union values.\n\n:param type: Discriminator type. Always \"union\"" + UpdatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The updated prompt text content. + version: + type: integer + title: Version + description: The current version of the prompt being updated. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: Updated list of variable names that can be used in the prompt template. + set_as_default: + type: boolean + title: Set As Default + description: Set the new version as the default (default=True). + default: true + type: object + required: + - prompt + - version + title: UpdatePromptRequest + description: Request model for updating an existing prompt. + UserMessage-Input: + properties: + role: + type: string + const: user + title: Role + default: user + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + title: Context + type: object + required: + - content + title: UserMessage + description: A message from the user in a chat conversation. + UserMessage-Output: + properties: + role: + type: string + const: user + title: Role + default: user + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Output' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Output' + text: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + title: Context + type: object + required: + - content + title: UserMessage + description: A message from the user in a chat conversation. + VectorStoreChunkingStrategyAuto: + properties: + type: + type: string + const: auto + title: Type + default: auto + type: object + title: VectorStoreChunkingStrategyAuto + description: Automatic chunking strategy for vector store files. + VectorStoreChunkingStrategyStatic: + properties: + type: + type: string + const: static + title: Type + default: static + static: + $ref: '#/components/schemas/VectorStoreChunkingStrategyStaticConfig' + type: object + required: + - static + title: VectorStoreChunkingStrategyStatic + description: Static chunking strategy with configurable parameters. + VectorStoreChunkingStrategyStaticConfig: + properties: + chunk_overlap_tokens: + type: integer + title: Chunk Overlap Tokens + default: 400 + max_chunk_size_tokens: + type: integer + maximum: 4096.0 + minimum: 100.0 + title: Max Chunk Size Tokens + default: 800 + type: object + title: VectorStoreChunkingStrategyStaticConfig + description: Configuration for static chunking strategy. + VectorStoreContent: + properties: + type: + type: string + const: text + title: Type + text: + type: string + title: Text + type: object + required: + - type + - text + title: VectorStoreContent + description: Content item from a vector store file or search result. + VectorStoreDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreDeleteResponse + description: Response from deleting a vector store. + VectorStoreFileBatchObject: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.file_batch + created_at: + type: integer + title: Created At + vector_store_id: + type: string + title: Vector Store Id + status: + anyOf: + - type: string + const: completed + - type: string + const: in_progress + - type: string + const: cancelled + - type: string + const: failed + title: Status + file_counts: + $ref: '#/components/schemas/VectorStoreFileCounts' + type: object + required: + - id + - created_at + - vector_store_id + - status + - file_counts + title: VectorStoreFileBatchObject + description: OpenAI Vector Store File Batch object. + VectorStoreFileContentsResponse: + properties: + file_id: + type: string + title: File Id + filename: + type: string + title: Filename + attributes: + additionalProperties: true + type: object + title: Attributes + content: + items: + $ref: '#/components/schemas/VectorStoreContent' + type: array + title: Content + type: object + required: + - file_id + - filename + - attributes + - content + title: VectorStoreFileContentsResponse + description: Response from retrieving the contents of a vector store file. + VectorStoreFileCounts: + properties: + completed: + type: integer + title: Completed + cancelled: + type: integer + title: Cancelled + failed: + type: integer + title: Failed + in_progress: + type: integer + title: In Progress + total: + type: integer + title: Total + type: object + required: + - completed + - cancelled + - failed + - in_progress + - total + title: VectorStoreFileCounts + description: File processing status counts for a vector store. + VectorStoreFileDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.file.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreFileDeleteResponse + description: Response from deleting a vector store file. + VectorStoreFileLastError: + properties: + code: + anyOf: + - type: string + const: server_error + - type: string + const: rate_limit_exceeded + title: Code + message: + type: string + title: Message + type: object + required: + - code + - message + title: VectorStoreFileLastError + description: Error information for failed vector store file processing. + VectorStoreFileObject: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.file + attributes: + additionalProperties: true + type: object + title: Attributes + chunking_strategy: + oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + title: Chunking Strategy + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + created_at: + type: integer + title: Created At + last_error: + anyOf: + - $ref: '#/components/schemas/VectorStoreFileLastError' + - type: 'null' + status: + anyOf: + - type: string + const: completed + - type: string + const: in_progress + - type: string + const: cancelled + - type: string + const: failed + title: Status + usage_bytes: + type: integer + title: Usage Bytes + default: 0 + vector_store_id: + type: string + title: Vector Store Id + type: object + required: + - id + - chunking_strategy + - created_at + - status + - vector_store_id + title: VectorStoreFileObject + description: OpenAI Vector Store File object. + VectorStoreFilesListInBatchResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreFilesListInBatchResponse + description: Response from listing files in a vector store file batch. + VectorStoreListFilesResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListFilesResponse + description: Response from listing files in a vector store. + VectorStoreListResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListResponse + description: Response from listing vector stores. + VectorStoreModifyRequest: + properties: + name: + anyOf: + - type: string + - type: 'null' + title: Name + expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Expires After + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + type: object + title: VectorStoreModifyRequest + description: Request to modify a vector store. + VectorStoreObject: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store + created_at: + type: integer + title: Created At + name: + anyOf: + - type: string + - type: 'null' + title: Name + usage_bytes: + type: integer + title: Usage Bytes + default: 0 + file_counts: + $ref: '#/components/schemas/VectorStoreFileCounts' + status: + type: string + title: Status + default: completed + expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Expires After + expires_at: + anyOf: + - type: integer + - type: 'null' + title: Expires At + last_active_at: + anyOf: + - type: integer + - type: 'null' + title: Last Active At + metadata: + additionalProperties: true + type: object + title: Metadata + type: object + required: + - id + - created_at + - file_counts + title: VectorStoreObject + description: OpenAI Vector Store object. + VectorStoreSearchResponse: + properties: + file_id: + type: string + title: File Id + filename: + type: string + title: Filename + score: + type: number + title: Score + attributes: + anyOf: + - additionalProperties: + anyOf: + - type: string + - type: number + - type: boolean + type: object + - type: 'null' + title: Attributes + content: + items: + $ref: '#/components/schemas/VectorStoreContent' + type: array + title: Content + type: object + required: + - file_id + - filename + - score + - content + title: VectorStoreSearchResponse + description: Response from searching a vector store. + VectorStoreSearchResponsePage: + properties: + object: + type: string + title: Object + default: vector_store.search_results.page + search_query: + type: string + title: Search Query + data: + items: + $ref: '#/components/schemas/VectorStoreSearchResponse' + type: array + title: Data + has_more: + type: boolean + title: Has More + default: false + next_page: + anyOf: + - type: string + - type: 'null' + title: Next Page + type: object + required: + - search_query + - data + title: VectorStoreSearchResponsePage + description: Paginated response from searching a vector store. + VersionInfo: + properties: + version: + type: string + title: Version + description: Version number of the service + type: object + required: + - version + title: VersionInfo + description: Version information for the service. + ViolationLevel: + type: string + enum: + - info + - warn + - error + title: ViolationLevel + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" + WeightedRanker: + properties: + type: + type: string + const: weighted + title: Type + default: weighted + alpha: + type: number + maximum: 1.0 + minimum: 0.0 + title: Alpha + description: Weight factor between 0 and 1. 0 means only keyword scores, 1 means only vector scores. + default: 0.5 + type: object + title: WeightedRanker + description: "Weighted ranker configuration that combines vector and keyword scores.\n\n:param type: The type of ranker, always \"weighted\"\n:param alpha: Weight factor between 0 and 1.\n 0 means only use keyword scores,\n 1 means only use vector scores,\n values in between blend both scores." + _URLOrData: + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + title: Data + type: object + title: _URLOrData + description: A URL or a base64 encoded string. + AgentConfig: + $defs: + AgentToolGroupWithArgs: + properties: + name: + title: Name + type: string + args: + additionalProperties: true + title: Args + type: object + required: + - name + - args + title: AgentToolGroupWithArgs + type: object + GrammarResponseFormat: + description: Configuration for grammar-guided response generation. + properties: + type: + const: grammar + default: grammar + title: Type + type: string + bnf: + additionalProperties: true + minProperties: 1 + title: Bnf + type: object + required: + - bnf + title: GrammarResponseFormat + type: object + GreedySamplingStrategy: + description: Greedy sampling strategy that selects the highest probability token at each step. + properties: + type: + const: greedy + default: greedy + title: Type + type: string + title: GreedySamplingStrategy + type: object + JsonSchemaResponseFormat: + description: Configuration for JSON schema-guided response generation. + properties: + type: + const: json_schema + default: json_schema + title: Type + type: string + json_schema: + additionalProperties: true + minProperties: 1 + title: Json Schema + type: object + required: + - json_schema + title: JsonSchemaResponseFormat + type: object + SamplingParams: + description: Sampling parameters. + properties: + strategy: + discriminator: + mapping: + greedy: '#/$defs/GreedySamplingStrategy' + top_k: '#/$defs/TopKSamplingStrategy' + top_p: '#/$defs/TopPSamplingStrategy' + propertyName: type + oneOf: + - $ref: '#/components/schemas/GreedySamplingStrategy' + - $ref: '#/components/schemas/TopPSamplingStrategy' + - $ref: '#/components/schemas/TopKSamplingStrategy' + title: Strategy + max_tokens: + anyOf: + - minimum: 0 + type: integer + - type: 'null' + default: + title: Max Tokens + repetition_penalty: + anyOf: + - minimum: 0.0 + type: number + - type: 'null' + default: 1.0 + title: Repetition Penalty + stop: + anyOf: + - items: + type: string + minItems: 1 + type: array + - type: 'null' + default: + title: Stop + title: SamplingParams + type: object + SystemMessageBehavior: + description: "Config for how to override the default system prompt.\n\nhttps://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt-\n'{{function_definitions}}' to indicate where the function definitions should be inserted." + enum: + - append + - replace + title: SystemMessageBehavior + type: string + ToolChoice: + description: Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model. + enum: + - auto + - required + - none + title: ToolChoice + type: string + ToolConfig: + description: "Configuration for tool use.\n\n- `ToolPromptFormat.json`: The tool calls are formatted as a JSON object.\n- `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag.\n- `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls.\n- `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt.\n- `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string\n '{{function_definitions}}' to indicate where the function definitions should be inserted." + properties: + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: string + - type: 'null' + default: auto + title: Tool Choice + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + default: + system_message_behavior: + anyOf: + - $ref: '#/components/schemas/SystemMessageBehavior' + - type: 'null' + default: append + title: ToolConfig + type: object + ToolDef: + description: Tool definition used in runtime contexts. + properties: + toolgroup_id: + anyOf: + - type: string + - type: 'null' + default: + description: ID of the tool group this tool belongs to + title: Toolgroup Id + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Human-readable description of what the tool does + title: Description + input_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON Schema for tool inputs (MCP inputSchema) + title: Input Schema + output_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON Schema for tool outputs (MCP outputSchema) + title: Output Schema + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional metadata about the tool + title: Metadata + required: + - name + title: ToolDef + type: object + ToolPromptFormat: + description: "Prompt format for calling custom / zero shot tools.\n\n:cvar json: JSON format for calling tools. It takes the form:\n {\n \"type\": \"function\",\n \"function\" : {\n \"name\": \"function_name\",\n \"description\": \"function_description\",\n \"parameters\": {...}\n }\n }\n:cvar function_tag: Function tag format, pseudo-XML. This looks like:\n (parameters)\n\n:cvar python_list: Python list. The output is a valid Python expression that can be\n evaluated to a list. Each element in the list is a function call. Example:\n [\"function_name(param1, param2)\", \"function_name(param1, param2)\"]" + enum: + - json + - function_tag + - python_list + title: ToolPromptFormat + type: string + TopKSamplingStrategy: + description: Top-k sampling strategy that restricts sampling to the k most likely tokens. + properties: + type: + const: top_k + default: top_k + title: Type + type: string + top_k: + minimum: 1 + title: Top K + type: integer + required: + - top_k + title: TopKSamplingStrategy + type: object + TopPSamplingStrategy: + description: Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p. + properties: + type: + const: top_p + default: top_p + title: Type + type: string + temperature: + anyOf: + - type: number + minimum: 0.0 + - type: 'null' + title: Temperature + top_p: + anyOf: + - type: number + - type: 'null' + default: 0.95 + title: Top P + required: + - temperature + title: TopPSamplingStrategy + type: object + description: Configuration for an agent. + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + default: + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + default: + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + default: + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + default: 10 + title: Max Infer Iters + model: + description: The model identifier to use for the agent + title: Model + type: string + instructions: + description: The system instructions for the agent + title: Instructions + type: string + name: + anyOf: + - type: string + - type: 'null' + default: + description: Optional name for the agent, used in telemetry and identification + title: Name + enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' + default: false + description: Optional flag indicating whether session data has to be persisted + title: Enable Session Persistence + response_format: + anyOf: + - discriminator: + mapping: + grammar: '#/$defs/GrammarResponseFormat' + json_schema: '#/$defs/JsonSchemaResponseFormat' + propertyName: type + oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + - type: 'null' + default: + description: Optional response format configuration + title: Response Format + required: + - model + - instructions + title: AgentConfig + type: object + AgentTurnResponseEvent: + $defs: + AgentTurnResponseStepCompletePayload: + description: Payload for step completion events in agent turn responses. + properties: + event_type: + const: step_complete + default: step_complete + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + step_details: + description: Complete details of the executed step + discriminator: + mapping: + inference: '#/$defs/InferenceStep' + memory_retrieval: '#/$defs/MemoryRetrievalStep' + shield_call: '#/$defs/ShieldCallStep' + tool_execution: '#/$defs/ToolExecutionStep' + propertyName: step_type + oneOf: + - $ref: '#/components/schemas/InferenceStep' + - $ref: '#/components/schemas/ToolExecutionStep' + - $ref: '#/components/schemas/ShieldCallStep' + - $ref: '#/components/schemas/MemoryRetrievalStep' + title: Step Details + required: + - step_type + - step_id + - step_details + title: AgentTurnResponseStepCompletePayload + type: object + AgentTurnResponseStepProgressPayload: + description: Payload for step progress events in agent turn responses. + properties: + event_type: + const: step_progress + default: step_progress + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + delta: + description: Incremental content changes during step execution + discriminator: + mapping: + image: '#/$defs/ImageDelta' + text: '#/$defs/TextDelta' + tool_call: '#/$defs/ToolCallDelta' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TextDelta' + - $ref: '#/components/schemas/ImageDelta' + - $ref: '#/components/schemas/ToolCallDelta' + title: Delta + required: + - step_type + - step_id + - delta + title: AgentTurnResponseStepProgressPayload + type: object + AgentTurnResponseStepStartPayload: + description: Payload for step start events in agent turn responses. + properties: + event_type: + const: step_start + default: step_start + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + description: Additional metadata for the step + title: Metadata + required: + - step_type + - step_id + title: AgentTurnResponseStepStartPayload + type: object + AgentTurnResponseTurnAwaitingInputPayload: + description: Payload for turn awaiting input events in agent turn responses. + properties: + event_type: + const: turn_awaiting_input + default: turn_awaiting_input + description: Type of event being reported + title: Event Type + type: string + turn: + $ref: '#/components/schemas/Turn' + description: Turn data when waiting for external tool responses + required: + - turn + title: AgentTurnResponseTurnAwaitingInputPayload + type: object + AgentTurnResponseTurnCompletePayload: + description: Payload for turn completion events in agent turn responses. + properties: + event_type: + const: turn_complete + default: turn_complete + description: Type of event being reported + title: Event Type + type: string + turn: + $ref: '#/components/schemas/Turn' + description: Complete turn data including all steps and results + required: + - turn + title: AgentTurnResponseTurnCompletePayload + type: object + AgentTurnResponseTurnStartPayload: + description: Payload for turn start events in agent turn responses. + properties: + event_type: + const: turn_start + default: turn_start + description: Type of event being reported + title: Event Type + type: string + turn_id: + description: Unique identifier for the turn within a session + title: Turn Id + type: string + required: + - turn_id + title: AgentTurnResponseTurnStartPayload + type: object + Attachment: + description: An attachment to an agent turn. + properties: + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + description: The content of the attachment. + title: Content + mime_type: + description: The MIME type of the attachment. + title: Mime Type + type: string + required: + - content + - mime_type + title: Attachment + type: object + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + ImageDelta: + description: An image content delta for streaming responses. + properties: + type: + const: image + default: image + title: Type + type: string + image: + format: binary + title: Image + type: string + required: + - image + title: ImageDelta + type: object + InferenceStep: + description: An inference step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: inference + default: inference + title: Step Type + type: string + model_response: + $ref: '#/components/schemas/CompletionMessage' + description: The response from the LLM. + required: + - turn_id + - step_id + - model_response + title: InferenceStep + type: object + MemoryRetrievalStep: + description: A memory retrieval step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: memory_retrieval + default: memory_retrieval + title: Step Type + type: string + vector_store_ids: + description: The IDs of the vector databases to retrieve context from. + title: Vector Store Ids + type: string + inserted_context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + description: The context retrieved from the vector databases. + title: Inserted Context + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + type: object + SafetyViolation: + description: Details of a safety violation detected by content moderation. + properties: + violation_level: + $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. + user_message: + anyOf: + - type: string + - type: 'null' + default: + description: Message to convey to the user about the violation. + title: User Message + metadata: + additionalProperties: true + description: Additional metadata including specific violation codes for debugging and telemetry. + title: Metadata + type: object + required: + - violation_level + title: SafetyViolation + type: object + ShieldCallStep: + description: A shield call step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: shield_call + default: shield_call + title: Step Type + type: string + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + default: + description: The violation from the shield call. + required: + - turn_id + - step_id + title: ShieldCallStep + type: object + StepType: + description: Type of the step in an agent turn. + enum: + - inference + - tool_execution + - shield_call + - memory_retrieval + title: StepType + type: string + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + TextDelta: + description: A text content delta for streaming responses. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextDelta + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolCallDelta: + description: A tool call content delta for streaming responses. + properties: + type: + const: tool_call + default: tool_call + title: Type + type: string + tool_call: + anyOf: + - type: string + - $ref: '#/components/schemas/ToolCall' + title: Tool Call + parse_status: + $ref: '#/components/schemas/ToolCallParseStatus' + required: + - tool_call + - parse_status + title: ToolCallDelta + type: object + ToolCallParseStatus: + description: Status of tool call parsing during streaming. + enum: + - started + - in_progress + - failed + - succeeded + title: ToolCallParseStatus + type: string + ToolExecutionStep: + description: A tool execution step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: tool_execution + default: tool_execution + title: Step Type + type: string + tool_calls: + description: The tool calls to execute. + items: + $ref: '#/components/schemas/ToolCall' + title: Tool Calls + type: array + tool_responses: + description: The tool responses from the tool calls. + items: + $ref: '#/components/schemas/ToolResponse' + title: Tool Responses + type: array + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + type: object + ToolResponse: + description: Response from a tool invocation. + properties: + call_id: + minLength: 1 + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Metadata + required: + - call_id + - tool_name + - content + title: ToolResponse + type: object + ToolResponseMessage: + description: A message representing the result of a tool invocation. + properties: + role: + const: tool + default: tool + title: Role + type: string + call_id: + title: Call Id + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + required: + - call_id + - content + title: ToolResponseMessage + type: object + Turn: + description: A single turn in an interaction with an Agentic System. + properties: + turn_id: + description: Unique identifier for the turn within a session + title: Turn Id + type: string + session_id: + description: Unique identifier for the conversation session + title: Session Id + type: string + input_messages: + description: List of messages that initiated this turn + items: + anyOf: + - $ref: '#/components/schemas/UserMessage' + - $ref: '#/components/schemas/ToolResponseMessage' + title: Input Messages + type: array + steps: + description: Ordered list of processing steps executed during this turn + items: + discriminator: + mapping: + inference: '#/$defs/InferenceStep' + memory_retrieval: '#/$defs/MemoryRetrievalStep' + shield_call: '#/$defs/ShieldCallStep' + tool_execution: '#/$defs/ToolExecutionStep' + propertyName: step_type + oneOf: + - $ref: '#/components/schemas/InferenceStep' + - $ref: '#/components/schemas/ToolExecutionStep' + - $ref: '#/components/schemas/ShieldCallStep' + - $ref: '#/components/schemas/MemoryRetrievalStep' + title: Steps + type: array + output_message: + $ref: '#/components/schemas/CompletionMessage' + description: The model's generated response containing content and metadata + output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment' + type: array + - type: 'null' + description: Files or media attached to the agent's response + title: Output Attachments + started_at: + description: Timestamp when the turn began + format: date-time + title: Started At + type: string + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: Timestamp when the turn finished, if completed + title: Completed At + required: + - turn_id + - session_id + - input_messages + - steps + - output_message + - started_at + title: Turn + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + UserMessage: + description: A message from the user in a chat conversation. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + default: + title: Context + required: + - content + title: UserMessage + type: object + ViolationLevel: + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" + enum: + - info + - warn + - error + title: ViolationLevel + type: string + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: An event in an agent turn response stream. + properties: + payload: + description: Event-specific payload containing event data + discriminator: + mapping: + step_complete: '#/$defs/AgentTurnResponseStepCompletePayload' + step_progress: '#/$defs/AgentTurnResponseStepProgressPayload' + step_start: '#/$defs/AgentTurnResponseStepStartPayload' + turn_awaiting_input: '#/$defs/AgentTurnResponseTurnAwaitingInputPayload' + turn_complete: '#/$defs/AgentTurnResponseTurnCompletePayload' + turn_start: '#/$defs/AgentTurnResponseTurnStartPayload' + propertyName: event_type + oneOf: + - $ref: '#/components/schemas/AgentTurnResponseStepStartPayload' + - $ref: '#/components/schemas/AgentTurnResponseStepProgressPayload' + - $ref: '#/components/schemas/AgentTurnResponseStepCompletePayload' + - $ref: '#/components/schemas/AgentTurnResponseTurnStartPayload' + - $ref: '#/components/schemas/AgentTurnResponseTurnCompletePayload' + - $ref: '#/components/schemas/AgentTurnResponseTurnAwaitingInputPayload' + title: Payload + required: + - payload + title: AgentTurnResponseEvent + type: object + AgentTurnResponseStepCompletePayload: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + InferenceStep: + description: An inference step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: inference + default: inference + title: Step Type + type: string + model_response: + $ref: '#/components/schemas/CompletionMessage' + description: The response from the LLM. + required: + - turn_id + - step_id + - model_response + title: InferenceStep + type: object + MemoryRetrievalStep: + description: A memory retrieval step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: memory_retrieval + default: memory_retrieval + title: Step Type + type: string + vector_store_ids: + description: The IDs of the vector databases to retrieve context from. + title: Vector Store Ids + type: string + inserted_context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + description: The context retrieved from the vector databases. + title: Inserted Context + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + type: object + SafetyViolation: + description: Details of a safety violation detected by content moderation. + properties: + violation_level: + $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. + user_message: + anyOf: + - type: string + - type: 'null' + default: + description: Message to convey to the user about the violation. + title: User Message + metadata: + additionalProperties: true + description: Additional metadata including specific violation codes for debugging and telemetry. + title: Metadata + type: object + required: + - violation_level + title: SafetyViolation + type: object + ShieldCallStep: + description: A shield call step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: shield_call + default: shield_call + title: Step Type + type: string + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + default: + description: The violation from the shield call. + required: + - turn_id + - step_id + title: ShieldCallStep + type: object + StepType: + description: Type of the step in an agent turn. + enum: + - inference + - tool_execution + - shield_call + - memory_retrieval + title: StepType + type: string + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolExecutionStep: + description: A tool execution step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: tool_execution + default: tool_execution + title: Step Type + type: string + tool_calls: + description: The tool calls to execute. + items: + $ref: '#/components/schemas/ToolCall' + title: Tool Calls + type: array + tool_responses: + description: The tool responses from the tool calls. + items: + $ref: '#/components/schemas/ToolResponse' + title: Tool Responses + type: array + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + type: object + ToolResponse: + description: Response from a tool invocation. + properties: + call_id: + minLength: 1 + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Metadata + required: + - call_id + - tool_name + - content + title: ToolResponse + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + ViolationLevel: + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" + enum: + - info + - warn + - error + title: ViolationLevel + type: string + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: Payload for step completion events in agent turn responses. + properties: + event_type: + const: step_complete + default: step_complete + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + step_details: + description: Complete details of the executed step + discriminator: + mapping: + inference: '#/$defs/InferenceStep' + memory_retrieval: '#/$defs/MemoryRetrievalStep' + shield_call: '#/$defs/ShieldCallStep' + tool_execution: '#/$defs/ToolExecutionStep' + propertyName: step_type + oneOf: + - $ref: '#/components/schemas/InferenceStep' + - $ref: '#/components/schemas/ToolExecutionStep' + - $ref: '#/components/schemas/ShieldCallStep' + - $ref: '#/components/schemas/MemoryRetrievalStep' + title: Step Details + required: + - step_type + - step_id + - step_details + title: AgentTurnResponseStepCompletePayload + type: object + AgentTurnResponseStepProgressPayload: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + ImageDelta: + description: An image content delta for streaming responses. + properties: + type: + const: image + default: image + title: Type + type: string + image: + format: binary + title: Image + type: string + required: + - image + title: ImageDelta + type: object + StepType: + description: Type of the step in an agent turn. + enum: + - inference + - tool_execution + - shield_call + - memory_retrieval + title: StepType + type: string + TextDelta: + description: A text content delta for streaming responses. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextDelta + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolCallDelta: + description: A tool call content delta for streaming responses. + properties: + type: + const: tool_call + default: tool_call + title: Type + type: string + tool_call: + anyOf: + - type: string + - $ref: '#/components/schemas/ToolCall' + title: Tool Call + parse_status: + $ref: '#/components/schemas/ToolCallParseStatus' + required: + - tool_call + - parse_status + title: ToolCallDelta + type: object + ToolCallParseStatus: + description: Status of tool call parsing during streaming. + enum: + - started + - in_progress + - failed + - succeeded + title: ToolCallParseStatus + type: string + description: Payload for step progress events in agent turn responses. + properties: + event_type: + const: step_progress + default: step_progress + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + delta: + description: Incremental content changes during step execution + discriminator: + mapping: + image: '#/$defs/ImageDelta' + text: '#/$defs/TextDelta' + tool_call: '#/$defs/ToolCallDelta' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TextDelta' + - $ref: '#/components/schemas/ImageDelta' + - $ref: '#/components/schemas/ToolCallDelta' + title: Delta + required: + - step_type + - step_id + - delta + title: AgentTurnResponseStepProgressPayload + type: object + AgentTurnResponseStepStartPayload: + $defs: + StepType: + description: Type of the step in an agent turn. + enum: + - inference + - tool_execution + - shield_call + - memory_retrieval + title: StepType + type: string + description: Payload for step start events in agent turn responses. + properties: + event_type: + const: step_start + default: step_start + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + description: Additional metadata for the step + title: Metadata + required: + - step_type + - step_id + title: AgentTurnResponseStepStartPayload + type: object + AgentTurnResponseStreamChunk: + $defs: + AgentTurnResponseEvent: + description: An event in an agent turn response stream. + properties: + payload: + description: Event-specific payload containing event data + discriminator: + mapping: + step_complete: '#/$defs/AgentTurnResponseStepCompletePayload' + step_progress: '#/$defs/AgentTurnResponseStepProgressPayload' + step_start: '#/$defs/AgentTurnResponseStepStartPayload' + turn_awaiting_input: '#/$defs/AgentTurnResponseTurnAwaitingInputPayload' + turn_complete: '#/$defs/AgentTurnResponseTurnCompletePayload' + turn_start: '#/$defs/AgentTurnResponseTurnStartPayload' + propertyName: event_type + oneOf: + - $ref: '#/components/schemas/AgentTurnResponseStepStartPayload' + - $ref: '#/components/schemas/AgentTurnResponseStepProgressPayload' + - $ref: '#/components/schemas/AgentTurnResponseStepCompletePayload' + - $ref: '#/components/schemas/AgentTurnResponseTurnStartPayload' + - $ref: '#/components/schemas/AgentTurnResponseTurnCompletePayload' + - $ref: '#/components/schemas/AgentTurnResponseTurnAwaitingInputPayload' + title: Payload + required: + - payload + title: AgentTurnResponseEvent + type: object + AgentTurnResponseStepCompletePayload: + description: Payload for step completion events in agent turn responses. + properties: + event_type: + const: step_complete + default: step_complete + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + step_details: + description: Complete details of the executed step + discriminator: + mapping: + inference: '#/$defs/InferenceStep' + memory_retrieval: '#/$defs/MemoryRetrievalStep' + shield_call: '#/$defs/ShieldCallStep' + tool_execution: '#/$defs/ToolExecutionStep' + propertyName: step_type + oneOf: + - $ref: '#/components/schemas/InferenceStep' + - $ref: '#/components/schemas/ToolExecutionStep' + - $ref: '#/components/schemas/ShieldCallStep' + - $ref: '#/components/schemas/MemoryRetrievalStep' + title: Step Details + required: + - step_type + - step_id + - step_details + title: AgentTurnResponseStepCompletePayload + type: object + AgentTurnResponseStepProgressPayload: + description: Payload for step progress events in agent turn responses. + properties: + event_type: + const: step_progress + default: step_progress + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + delta: + description: Incremental content changes during step execution + discriminator: + mapping: + image: '#/$defs/ImageDelta' + text: '#/$defs/TextDelta' + tool_call: '#/$defs/ToolCallDelta' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TextDelta' + - $ref: '#/components/schemas/ImageDelta' + - $ref: '#/components/schemas/ToolCallDelta' + title: Delta + required: + - step_type + - step_id + - delta + title: AgentTurnResponseStepProgressPayload + type: object + AgentTurnResponseStepStartPayload: + description: Payload for step start events in agent turn responses. + properties: + event_type: + const: step_start + default: step_start + description: Type of event being reported + title: Event Type + type: string + step_type: + $ref: '#/components/schemas/StepType' + description: Type of step being executed + step_id: + description: Unique identifier for the step within a turn + title: Step Id + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + description: Additional metadata for the step + title: Metadata + required: + - step_type + - step_id + title: AgentTurnResponseStepStartPayload + type: object + AgentTurnResponseTurnAwaitingInputPayload: + description: Payload for turn awaiting input events in agent turn responses. + properties: + event_type: + const: turn_awaiting_input + default: turn_awaiting_input + description: Type of event being reported + title: Event Type + type: string + turn: + $ref: '#/components/schemas/Turn' + description: Turn data when waiting for external tool responses + required: + - turn + title: AgentTurnResponseTurnAwaitingInputPayload + type: object + AgentTurnResponseTurnCompletePayload: + description: Payload for turn completion events in agent turn responses. + properties: + event_type: + const: turn_complete + default: turn_complete + description: Type of event being reported + title: Event Type + type: string + turn: + $ref: '#/components/schemas/Turn' + description: Complete turn data including all steps and results + required: + - turn + title: AgentTurnResponseTurnCompletePayload + type: object + AgentTurnResponseTurnStartPayload: + description: Payload for turn start events in agent turn responses. + properties: + event_type: + const: turn_start + default: turn_start + description: Type of event being reported + title: Event Type + type: string + turn_id: + description: Unique identifier for the turn within a session + title: Turn Id + type: string + required: + - turn_id + title: AgentTurnResponseTurnStartPayload + type: object + Attachment: + description: An attachment to an agent turn. + properties: + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + description: The content of the attachment. + title: Content + mime_type: + description: The MIME type of the attachment. + title: Mime Type + type: string + required: + - content + - mime_type + title: Attachment + type: object + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + ImageDelta: + description: An image content delta for streaming responses. + properties: + type: + const: image + default: image + title: Type + type: string + image: + format: binary + title: Image + type: string + required: + - image + title: ImageDelta + type: object + InferenceStep: + description: An inference step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: inference + default: inference + title: Step Type + type: string + model_response: + $ref: '#/components/schemas/CompletionMessage' + description: The response from the LLM. + required: + - turn_id + - step_id + - model_response + title: InferenceStep + type: object + MemoryRetrievalStep: + description: A memory retrieval step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: memory_retrieval + default: memory_retrieval + title: Step Type + type: string + vector_store_ids: + description: The IDs of the vector databases to retrieve context from. + title: Vector Store Ids + type: string + inserted_context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + description: The context retrieved from the vector databases. + title: Inserted Context + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + type: object + SafetyViolation: + description: Details of a safety violation detected by content moderation. + properties: + violation_level: + $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. + user_message: + anyOf: + - type: string + - type: 'null' + default: + description: Message to convey to the user about the violation. + title: User Message + metadata: + additionalProperties: true + description: Additional metadata including specific violation codes for debugging and telemetry. + title: Metadata + type: object + required: + - violation_level + title: SafetyViolation + type: object + ShieldCallStep: + description: A shield call step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: shield_call + default: shield_call + title: Step Type + type: string + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + default: + description: The violation from the shield call. + required: + - turn_id + - step_id + title: ShieldCallStep + type: object + StepType: + description: Type of the step in an agent turn. + enum: + - inference + - tool_execution + - shield_call + - memory_retrieval + title: StepType + type: string + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + TextDelta: + description: A text content delta for streaming responses. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextDelta + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolCallDelta: + description: A tool call content delta for streaming responses. + properties: + type: + const: tool_call + default: tool_call + title: Type + type: string + tool_call: + anyOf: + - type: string + - $ref: '#/components/schemas/ToolCall' + title: Tool Call + parse_status: + $ref: '#/components/schemas/ToolCallParseStatus' + required: + - tool_call + - parse_status + title: ToolCallDelta + type: object + ToolCallParseStatus: + description: Status of tool call parsing during streaming. + enum: + - started + - in_progress + - failed + - succeeded + title: ToolCallParseStatus + type: string + ToolExecutionStep: + description: A tool execution step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: tool_execution + default: tool_execution + title: Step Type + type: string + tool_calls: + description: The tool calls to execute. + items: + $ref: '#/components/schemas/ToolCall' + title: Tool Calls + type: array + tool_responses: + description: The tool responses from the tool calls. + items: + $ref: '#/components/schemas/ToolResponse' + title: Tool Responses + type: array + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + type: object + ToolResponse: + description: Response from a tool invocation. + properties: + call_id: + minLength: 1 + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Metadata + required: + - call_id + - tool_name + - content + title: ToolResponse + type: object + ToolResponseMessage: + description: A message representing the result of a tool invocation. + properties: + role: + const: tool + default: tool + title: Role + type: string + call_id: + title: Call Id + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + required: + - call_id + - content + title: ToolResponseMessage + type: object + Turn: + description: A single turn in an interaction with an Agentic System. + properties: + turn_id: + description: Unique identifier for the turn within a session + title: Turn Id + type: string + session_id: + description: Unique identifier for the conversation session + title: Session Id + type: string + input_messages: + description: List of messages that initiated this turn + items: + anyOf: + - $ref: '#/components/schemas/UserMessage' + - $ref: '#/components/schemas/ToolResponseMessage' + title: Input Messages + type: array + steps: + description: Ordered list of processing steps executed during this turn + items: + discriminator: + mapping: + inference: '#/$defs/InferenceStep' + memory_retrieval: '#/$defs/MemoryRetrievalStep' + shield_call: '#/$defs/ShieldCallStep' + tool_execution: '#/$defs/ToolExecutionStep' + propertyName: step_type + oneOf: + - $ref: '#/components/schemas/InferenceStep' + - $ref: '#/components/schemas/ToolExecutionStep' + - $ref: '#/components/schemas/ShieldCallStep' + - $ref: '#/components/schemas/MemoryRetrievalStep' + title: Steps + type: array + output_message: + $ref: '#/components/schemas/CompletionMessage' + description: The model's generated response containing content and metadata + output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment' + type: array + - type: 'null' + description: Files or media attached to the agent's response + title: Output Attachments + started_at: + description: Timestamp when the turn began + format: date-time + title: Started At + type: string + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: Timestamp when the turn finished, if completed + title: Completed At + required: + - turn_id + - session_id + - input_messages + - steps + - output_message + - started_at + title: Turn + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + UserMessage: + description: A message from the user in a chat conversation. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + default: + title: Context + required: + - content + title: UserMessage + type: object + ViolationLevel: + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" + enum: + - info + - warn + - error + title: ViolationLevel + type: string + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: Streamed agent turn completion response. + properties: + event: + $ref: '#/components/schemas/AgentTurnResponseEvent' + description: Individual event in the agent turn response stream + required: + - event + title: AgentTurnResponseStreamChunk + type: object + AgentTurnResponseTurnAwaitingInputPayload: + $defs: + Attachment: + description: An attachment to an agent turn. + properties: + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + description: The content of the attachment. + title: Content + mime_type: + description: The MIME type of the attachment. + title: Mime Type + type: string + required: + - content + - mime_type + title: Attachment + type: object + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + InferenceStep: + description: An inference step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: inference + default: inference + title: Step Type + type: string + model_response: + $ref: '#/components/schemas/CompletionMessage' + description: The response from the LLM. + required: + - turn_id + - step_id + - model_response + title: InferenceStep + type: object + MemoryRetrievalStep: + description: A memory retrieval step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: memory_retrieval + default: memory_retrieval + title: Step Type + type: string + vector_store_ids: + description: The IDs of the vector databases to retrieve context from. + title: Vector Store Ids + type: string + inserted_context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + description: The context retrieved from the vector databases. + title: Inserted Context + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + type: object + SafetyViolation: + description: Details of a safety violation detected by content moderation. + properties: + violation_level: + $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. + user_message: + anyOf: + - type: string + - type: 'null' + default: + description: Message to convey to the user about the violation. + title: User Message + metadata: + additionalProperties: true + description: Additional metadata including specific violation codes for debugging and telemetry. + title: Metadata + type: object + required: + - violation_level + title: SafetyViolation + type: object + ShieldCallStep: + description: A shield call step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: shield_call + default: shield_call + title: Step Type + type: string + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + default: + description: The violation from the shield call. + required: + - turn_id + - step_id + title: ShieldCallStep + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolExecutionStep: + description: A tool execution step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: tool_execution + default: tool_execution + title: Step Type + type: string + tool_calls: + description: The tool calls to execute. + items: + $ref: '#/components/schemas/ToolCall' + title: Tool Calls + type: array + tool_responses: + description: The tool responses from the tool calls. + items: + $ref: '#/components/schemas/ToolResponse' + title: Tool Responses + type: array + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + type: object + ToolResponse: + description: Response from a tool invocation. + properties: + call_id: + minLength: 1 + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Metadata + required: + - call_id + - tool_name + - content + title: ToolResponse + type: object + ToolResponseMessage: + description: A message representing the result of a tool invocation. + properties: + role: + const: tool + default: tool + title: Role + type: string + call_id: + title: Call Id + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + required: + - call_id + - content + title: ToolResponseMessage + type: object + Turn: + description: A single turn in an interaction with an Agentic System. + properties: + turn_id: + description: Unique identifier for the turn within a session + title: Turn Id + type: string + session_id: + description: Unique identifier for the conversation session + title: Session Id + type: string + input_messages: + description: List of messages that initiated this turn + items: + anyOf: + - $ref: '#/components/schemas/UserMessage' + - $ref: '#/components/schemas/ToolResponseMessage' + title: Input Messages + type: array + steps: + description: Ordered list of processing steps executed during this turn + items: + discriminator: + mapping: + inference: '#/$defs/InferenceStep' + memory_retrieval: '#/$defs/MemoryRetrievalStep' + shield_call: '#/$defs/ShieldCallStep' + tool_execution: '#/$defs/ToolExecutionStep' + propertyName: step_type + oneOf: + - $ref: '#/components/schemas/InferenceStep' + - $ref: '#/components/schemas/ToolExecutionStep' + - $ref: '#/components/schemas/ShieldCallStep' + - $ref: '#/components/schemas/MemoryRetrievalStep' + title: Steps + type: array + output_message: + $ref: '#/components/schemas/CompletionMessage' + description: The model's generated response containing content and metadata + output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment' + type: array + - type: 'null' + description: Files or media attached to the agent's response + title: Output Attachments + started_at: + description: Timestamp when the turn began + format: date-time + title: Started At + type: string + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: Timestamp when the turn finished, if completed + title: Completed At + required: + - turn_id + - session_id + - input_messages + - steps + - output_message + - started_at + title: Turn + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + UserMessage: + description: A message from the user in a chat conversation. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + default: + title: Context + required: + - content + title: UserMessage + type: object + ViolationLevel: + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" + enum: + - info + - warn + - error + title: ViolationLevel + type: string + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: Payload for turn awaiting input events in agent turn responses. + properties: + event_type: + const: turn_awaiting_input + default: turn_awaiting_input + description: Type of event being reported + title: Event Type + type: string + turn: + $ref: '#/components/schemas/Turn' + description: Turn data when waiting for external tool responses + required: + - turn + title: AgentTurnResponseTurnAwaitingInputPayload + type: object + AgentTurnResponseTurnCompletePayload: + $defs: + Attachment: + description: An attachment to an agent turn. + properties: + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + description: The content of the attachment. + title: Content + mime_type: + description: The MIME type of the attachment. + title: Mime Type + type: string + required: + - content + - mime_type + title: Attachment + type: object + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + InferenceStep: + description: An inference step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: inference + default: inference + title: Step Type + type: string + model_response: + $ref: '#/components/schemas/CompletionMessage' + description: The response from the LLM. + required: + - turn_id + - step_id + - model_response + title: InferenceStep + type: object + MemoryRetrievalStep: + description: A memory retrieval step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: memory_retrieval + default: memory_retrieval + title: Step Type + type: string + vector_store_ids: + description: The IDs of the vector databases to retrieve context from. + title: Vector Store Ids + type: string + inserted_context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + description: The context retrieved from the vector databases. + title: Inserted Context + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + type: object + SafetyViolation: + description: Details of a safety violation detected by content moderation. + properties: + violation_level: + $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. + user_message: + anyOf: + - type: string + - type: 'null' + default: + description: Message to convey to the user about the violation. + title: User Message + metadata: + additionalProperties: true + description: Additional metadata including specific violation codes for debugging and telemetry. + title: Metadata + type: object + required: + - violation_level + title: SafetyViolation + type: object + ShieldCallStep: + description: A shield call step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: shield_call + default: shield_call + title: Step Type + type: string + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + default: + description: The violation from the shield call. + required: + - turn_id + - step_id + title: ShieldCallStep + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolExecutionStep: + description: A tool execution step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: tool_execution + default: tool_execution + title: Step Type + type: string + tool_calls: + description: The tool calls to execute. + items: + $ref: '#/components/schemas/ToolCall' + title: Tool Calls + type: array + tool_responses: + description: The tool responses from the tool calls. + items: + $ref: '#/components/schemas/ToolResponse' + title: Tool Responses + type: array + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + type: object + ToolResponse: + description: Response from a tool invocation. + properties: + call_id: + minLength: 1 + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Metadata + required: + - call_id + - tool_name + - content + title: ToolResponse + type: object + ToolResponseMessage: + description: A message representing the result of a tool invocation. + properties: + role: + const: tool + default: tool + title: Role + type: string + call_id: + title: Call Id + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + required: + - call_id + - content + title: ToolResponseMessage + type: object + Turn: + description: A single turn in an interaction with an Agentic System. + properties: + turn_id: + description: Unique identifier for the turn within a session + title: Turn Id + type: string + session_id: + description: Unique identifier for the conversation session + title: Session Id + type: string + input_messages: + description: List of messages that initiated this turn + items: + anyOf: + - $ref: '#/components/schemas/UserMessage' + - $ref: '#/components/schemas/ToolResponseMessage' + title: Input Messages + type: array + steps: + description: Ordered list of processing steps executed during this turn + items: + discriminator: + mapping: + inference: '#/$defs/InferenceStep' + memory_retrieval: '#/$defs/MemoryRetrievalStep' + shield_call: '#/$defs/ShieldCallStep' + tool_execution: '#/$defs/ToolExecutionStep' + propertyName: step_type + oneOf: + - $ref: '#/components/schemas/InferenceStep' + - $ref: '#/components/schemas/ToolExecutionStep' + - $ref: '#/components/schemas/ShieldCallStep' + - $ref: '#/components/schemas/MemoryRetrievalStep' + title: Steps + type: array + output_message: + $ref: '#/components/schemas/CompletionMessage' + description: The model's generated response containing content and metadata + output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment' + type: array + - type: 'null' + description: Files or media attached to the agent's response + title: Output Attachments + started_at: + description: Timestamp when the turn began + format: date-time + title: Started At + type: string + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: Timestamp when the turn finished, if completed + title: Completed At + required: + - turn_id + - session_id + - input_messages + - steps + - output_message + - started_at + title: Turn + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + UserMessage: + description: A message from the user in a chat conversation. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + default: + title: Context + required: + - content + title: UserMessage + type: object + ViolationLevel: + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" + enum: + - info + - warn + - error + title: ViolationLevel + type: string + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: Payload for turn completion events in agent turn responses. + properties: + event_type: + const: turn_complete + default: turn_complete + description: Type of event being reported + title: Event Type + type: string + turn: + $ref: '#/components/schemas/Turn' + description: Complete turn data including all steps and results + required: + - turn + title: AgentTurnResponseTurnCompletePayload + type: object + AgentTurnResponseTurnStartPayload: + description: Payload for turn start events in agent turn responses. + properties: + event_type: + const: turn_start + default: turn_start + description: Type of event being reported + title: Event Type + type: string + turn_id: + description: Unique identifier for the turn within a session + title: Turn Id + type: string + required: + - turn_id + title: AgentTurnResponseTurnStartPayload + type: object + InferenceStep: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: An inference step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: inference + default: inference + title: Step Type + type: string + model_response: + $ref: '#/components/schemas/CompletionMessage' + description: The response from the LLM. + required: + - turn_id + - step_id + - model_response + title: InferenceStep + type: object + MemoryRetrievalStep: + $defs: + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: A memory retrieval step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: memory_retrieval + default: memory_retrieval + title: Step Type + type: string + vector_store_ids: + description: The IDs of the vector databases to retrieve context from. + title: Vector Store Ids + type: string + inserted_context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + description: The context retrieved from the vector databases. + title: Inserted Context + required: + - turn_id + - step_id + - vector_store_ids + - inserted_context + title: MemoryRetrievalStep + type: object + ShieldCallStep: + $defs: + SafetyViolation: + description: Details of a safety violation detected by content moderation. + properties: + violation_level: + $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. + user_message: + anyOf: + - type: string + - type: 'null' + default: + description: Message to convey to the user about the violation. + title: User Message + metadata: + additionalProperties: true + description: Additional metadata including specific violation codes for debugging and telemetry. + title: Metadata + type: object + required: + - violation_level + title: SafetyViolation + type: object + ViolationLevel: + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" + enum: + - info + - warn + - error + title: ViolationLevel + type: string + description: A shield call step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: shield_call + default: shield_call + title: Step Type + type: string + violation: + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + default: + description: The violation from the shield call. + required: + - turn_id + - step_id + title: ShieldCallStep + type: object + ToolExecutionStep: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolResponse: + description: Response from a tool invocation. + properties: + call_id: + minLength: 1 + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Metadata + required: + - call_id + - tool_name + - content + title: ToolResponse + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: A tool execution step in an agent turn. + properties: + turn_id: + description: The ID of the turn. + title: Turn Id + type: string + step_id: + description: The ID of the step. + title: Step Id + type: string + started_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step started. + title: Started At + completed_at: + anyOf: + - format: date-time + type: string + - type: 'null' + default: + description: The time the step completed. + title: Completed At + step_type: + const: tool_execution + default: tool_execution + title: Step Type + type: string + tool_calls: + description: The tool calls to execute. + items: + $ref: '#/components/schemas/ToolCall' + title: Tool Calls + type: array + tool_responses: + description: The tool responses from the tool calls. + items: + $ref: '#/components/schemas/ToolResponse' + title: Tool Responses + type: array + required: + - turn_id + - step_id + - tool_calls + - tool_responses + title: ToolExecutionStep + type: object + ConversationMessage: + description: OpenAI-compatible message item for conversations. + properties: + id: + description: unique identifier for this message + title: Id + type: string + content: + description: message content + items: + additionalProperties: true + type: object + title: Content + type: array + role: + description: message role + title: Role + type: string + status: + description: message status + title: Status + type: string + type: + const: message + default: message + title: Type + type: string + object: + const: message + default: message + title: Object + type: string + required: + - id + - content + - role + - status + title: ConversationMessage + type: object + Bf16QuantizationConfig: + description: Configuration for BFloat16 precision (typically no quantization). + properties: + type: + const: bf16 + default: bf16 + title: Type + type: string + title: Bf16QuantizationConfig + type: object + ChatCompletionRequest: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + GrammarResponseFormat: + description: Configuration for grammar-guided response generation. + properties: + type: + const: grammar + default: grammar + title: Type + type: string + bnf: + additionalProperties: true + minProperties: 1 + title: Bnf + type: object + required: + - bnf + title: GrammarResponseFormat + type: object + GreedySamplingStrategy: + description: Greedy sampling strategy that selects the highest probability token at each step. + properties: + type: + const: greedy + default: greedy + title: Type + type: string + title: GreedySamplingStrategy + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + JsonSchemaResponseFormat: + description: Configuration for JSON schema-guided response generation. + properties: + type: + const: json_schema + default: json_schema + title: Type + type: string + json_schema: + additionalProperties: true + minProperties: 1 + title: Json Schema + type: object + required: + - json_schema + title: JsonSchemaResponseFormat + type: object + LogProbConfig: + description: Configuration for log probability generation. + properties: + top_k: + anyOf: + - minimum: 0 + type: integer + - type: 'null' + default: 0 + title: Top K + title: LogProbConfig + type: object + SamplingParams: + description: Sampling parameters. + properties: + strategy: + discriminator: + mapping: + greedy: '#/$defs/GreedySamplingStrategy' + top_k: '#/$defs/TopKSamplingStrategy' + top_p: '#/$defs/TopPSamplingStrategy' + propertyName: type + oneOf: + - $ref: '#/components/schemas/GreedySamplingStrategy' + - $ref: '#/components/schemas/TopPSamplingStrategy' + - $ref: '#/components/schemas/TopKSamplingStrategy' + title: Strategy + max_tokens: + anyOf: + - minimum: 0 + type: integer + - type: 'null' + default: + title: Max Tokens + repetition_penalty: + anyOf: + - minimum: 0.0 + type: number + - type: 'null' + default: 1.0 + title: Repetition Penalty + stop: + anyOf: + - items: + type: string + minItems: 1 + type: array + - type: 'null' + default: + title: Stop + title: SamplingParams + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + SystemMessage: + description: A system message providing instructions or context to the model. + properties: + role: + const: system + default: system + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + required: + - content + title: SystemMessage + type: object + SystemMessageBehavior: + description: "Config for how to override the default system prompt.\n\nhttps://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt-\n'{{function_definitions}}' to indicate where the function definitions should be inserted." + enum: + - append + - replace + title: SystemMessageBehavior + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolChoice: + description: Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model. + enum: + - auto + - required + - none + title: ToolChoice + type: string + ToolConfig: + description: "Configuration for tool use.\n\n- `ToolPromptFormat.json`: The tool calls are formatted as a JSON object.\n- `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag.\n- `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls.\n- `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt.\n- `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string\n '{{function_definitions}}' to indicate where the function definitions should be inserted." + properties: + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: string + - type: 'null' + default: auto + title: Tool Choice + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + default: + system_message_behavior: + anyOf: + - $ref: '#/components/schemas/SystemMessageBehavior' + - type: 'null' + default: append + title: ToolConfig + type: object + ToolDefinition: + properties: + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + description: + anyOf: + - type: string + - type: 'null' + default: + title: Description + input_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Input Schema + output_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Output Schema + required: + - tool_name + title: ToolDefinition + type: object + ToolPromptFormat: + description: "Prompt format for calling custom / zero shot tools.\n\n:cvar json: JSON format for calling tools. It takes the form:\n {\n \"type\": \"function\",\n \"function\" : {\n \"name\": \"function_name\",\n \"description\": \"function_description\",\n \"parameters\": {...}\n }\n }\n:cvar function_tag: Function tag format, pseudo-XML. This looks like:\n (parameters)\n\n:cvar python_list: Python list. The output is a valid Python expression that can be\n evaluated to a list. Each element in the list is a function call. Example:\n [\"function_name(param1, param2)\", \"function_name(param1, param2)\"]" + enum: + - json + - function_tag + - python_list + title: ToolPromptFormat + type: string + ToolResponseMessage: + description: A message representing the result of a tool invocation. + properties: + role: + const: tool + default: tool + title: Role + type: string + call_id: + title: Call Id + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + required: + - call_id + - content + title: ToolResponseMessage + type: object + TopKSamplingStrategy: + description: Top-k sampling strategy that restricts sampling to the k most likely tokens. + properties: + type: + const: top_k + default: top_k + title: Type + type: string + top_k: + minimum: 1 + title: Top K + type: integer + required: + - top_k + title: TopKSamplingStrategy + type: object + TopPSamplingStrategy: + description: Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p. + properties: + type: + const: top_p + default: top_p + title: Type + type: string + temperature: + anyOf: + - type: number + minimum: 0.0 + - type: 'null' + title: Temperature + top_p: + anyOf: + - type: number + - type: 'null' + default: 0.95 + title: Top P + required: + - temperature + title: TopPSamplingStrategy + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + UserMessage: + description: A message from the user in a chat conversation. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + default: + title: Context + required: + - content + title: UserMessage + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + properties: + messages: + items: + discriminator: + mapping: + assistant: '#/$defs/CompletionMessage' + system: '#/$defs/SystemMessage' + tool: '#/$defs/ToolResponseMessage' + user: '#/$defs/UserMessage' + propertyName: role + oneOf: + - $ref: '#/components/schemas/UserMessage' + - $ref: '#/components/schemas/SystemMessage' + - $ref: '#/components/schemas/ToolResponseMessage' + - $ref: '#/components/schemas/CompletionMessage' + title: Messages + type: array + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDefinition' + type: array + - type: 'null' + title: Tools + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + response_format: + anyOf: + - discriminator: + mapping: + grammar: '#/$defs/GrammarResponseFormat' + json_schema: '#/$defs/JsonSchemaResponseFormat' + propertyName: type + oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + - type: 'null' + default: + title: Response Format + stream: + anyOf: + - type: boolean + - type: 'null' + default: false + title: Stream + logprobs: + anyOf: + - $ref: '#/components/schemas/LogProbConfig' + - type: 'null' + default: + required: + - messages + title: ChatCompletionRequest + type: object + ChatCompletionResponse: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + CompletionMessage: + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + MetricInResponse: + description: "A metric value included in API responses.\n:param metric: The name of the metric\n:param value: The numeric value of the metric\n:param unit: (Optional) The unit of measurement for the metric value" + properties: + metric: + title: Metric + type: string + value: + anyOf: + - type: integer + - type: number + title: Value + unit: + anyOf: + - type: string + - type: 'null' + default: + title: Unit + required: + - metric + - value + title: MetricInResponse + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + TokenLogProbs: + description: Log probabilities for generated tokens. + properties: + logprobs_by_token: + additionalProperties: + type: number + minProperties: 1 + title: Logprobs By Token + type: object + required: + - logprobs_by_token + title: TokenLogProbs + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: Response from a chat completion request. + properties: + metrics: + anyOf: + - items: + $ref: '#/components/schemas/MetricInResponse' + type: array + - type: 'null' + default: + title: Metrics + completion_message: + $ref: '#/components/schemas/CompletionMessage' + logprobs: + anyOf: + - items: + $ref: '#/components/schemas/TokenLogProbs' + type: array + - type: 'null' + default: + title: Logprobs + required: + - completion_message + title: ChatCompletionResponse + type: object + ChatCompletionResponseEvent: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + ChatCompletionResponseEventType: + description: Types of events that can occur during chat completion. + enum: + - start + - complete + - progress + title: ChatCompletionResponseEventType + type: string + ImageDelta: + description: An image content delta for streaming responses. + properties: + type: + const: image + default: image + title: Type + type: string + image: + format: binary + title: Image + type: string + required: + - image + title: ImageDelta + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextDelta: + description: A text content delta for streaming responses. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextDelta + type: object + TokenLogProbs: + description: Log probabilities for generated tokens. + properties: + logprobs_by_token: + additionalProperties: + type: number + minProperties: 1 + title: Logprobs By Token + type: object + required: + - logprobs_by_token + title: TokenLogProbs + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolCallDelta: + description: A tool call content delta for streaming responses. + properties: + type: + const: tool_call + default: tool_call + title: Type + type: string + tool_call: + anyOf: + - type: string + - $ref: '#/components/schemas/ToolCall' + title: Tool Call + parse_status: + $ref: '#/components/schemas/ToolCallParseStatus' + required: + - tool_call + - parse_status + title: ToolCallDelta + type: object + ToolCallParseStatus: + description: Status of tool call parsing during streaming. + enum: + - started + - in_progress + - failed + - succeeded + title: ToolCallParseStatus + type: string + description: An event during chat completion generation. + properties: + event_type: + $ref: '#/components/schemas/ChatCompletionResponseEventType' + delta: + discriminator: + mapping: + image: '#/$defs/ImageDelta' + text: '#/$defs/TextDelta' + tool_call: '#/$defs/ToolCallDelta' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TextDelta' + - $ref: '#/components/schemas/ImageDelta' + - $ref: '#/components/schemas/ToolCallDelta' + title: Delta + logprobs: + anyOf: + - items: + $ref: '#/components/schemas/TokenLogProbs' + type: array + - type: 'null' + default: + title: Logprobs + stop_reason: + anyOf: + - $ref: '#/components/schemas/StopReason' + - type: 'null' + default: + required: + - event_type + - delta + title: ChatCompletionResponseEvent + type: object + ChatCompletionResponseStreamChunk: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + ChatCompletionResponseEvent: + description: An event during chat completion generation. + properties: + event_type: + $ref: '#/components/schemas/ChatCompletionResponseEventType' + delta: + discriminator: + mapping: + image: '#/$defs/ImageDelta' + text: '#/$defs/TextDelta' + tool_call: '#/$defs/ToolCallDelta' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TextDelta' + - $ref: '#/components/schemas/ImageDelta' + - $ref: '#/components/schemas/ToolCallDelta' + title: Delta + logprobs: + anyOf: + - items: + $ref: '#/components/schemas/TokenLogProbs' + type: array + - type: 'null' + default: + title: Logprobs + stop_reason: + anyOf: + - $ref: '#/components/schemas/StopReason' + - type: 'null' + default: + required: + - event_type + - delta + title: ChatCompletionResponseEvent + type: object + ChatCompletionResponseEventType: + description: Types of events that can occur during chat completion. + enum: + - start + - complete + - progress + title: ChatCompletionResponseEventType + type: string + ImageDelta: + description: An image content delta for streaming responses. + properties: + type: + const: image + default: image + title: Type + type: string + image: + format: binary + title: Image + type: string + required: + - image + title: ImageDelta + type: object + MetricInResponse: + description: "A metric value included in API responses.\n:param metric: The name of the metric\n:param value: The numeric value of the metric\n:param unit: (Optional) The unit of measurement for the metric value" + properties: + metric: + title: Metric + type: string + value: + anyOf: + - type: integer + - type: number + title: Value + unit: + anyOf: + - type: string + - type: 'null' + default: + title: Unit + required: + - metric + - value + title: MetricInResponse + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextDelta: + description: A text content delta for streaming responses. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextDelta + type: object + TokenLogProbs: + description: Log probabilities for generated tokens. + properties: + logprobs_by_token: + additionalProperties: + type: number + minProperties: 1 + title: Logprobs By Token + type: object + required: + - logprobs_by_token + title: TokenLogProbs + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolCallDelta: + description: A tool call content delta for streaming responses. + properties: + type: + const: tool_call + default: tool_call + title: Type + type: string + tool_call: + anyOf: + - type: string + - $ref: '#/components/schemas/ToolCall' + title: Tool Call + parse_status: + $ref: '#/components/schemas/ToolCallParseStatus' + required: + - tool_call + - parse_status + title: ToolCallDelta + type: object + ToolCallParseStatus: + description: Status of tool call parsing during streaming. + enum: + - started + - in_progress + - failed + - succeeded + title: ToolCallParseStatus + type: string + description: A chunk of a streamed chat completion response. + properties: + metrics: + anyOf: + - items: + $ref: '#/components/schemas/MetricInResponse' + type: array + - type: 'null' + default: + title: Metrics + event: + $ref: '#/components/schemas/ChatCompletionResponseEvent' + required: + - event + title: ChatCompletionResponseStreamChunk + type: object + CompletionMessage: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + stop_reason: + $ref: '#/components/schemas/StopReason' + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' + title: Tool Calls + required: + - content + - stop_reason + title: CompletionMessage + type: object + CompletionResponse: + $defs: + MetricInResponse: + description: "A metric value included in API responses.\n:param metric: The name of the metric\n:param value: The numeric value of the metric\n:param unit: (Optional) The unit of measurement for the metric value" + properties: + metric: + title: Metric + type: string + value: + anyOf: + - type: integer + - type: number + title: Value + unit: + anyOf: + - type: string + - type: 'null' + default: + title: Unit + required: + - metric + - value + title: MetricInResponse + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TokenLogProbs: + description: Log probabilities for generated tokens. + properties: + logprobs_by_token: + additionalProperties: + type: number + minProperties: 1 + title: Logprobs By Token + type: object + required: + - logprobs_by_token + title: TokenLogProbs + type: object + description: Response from a completion request. + properties: + metrics: + anyOf: + - items: + $ref: '#/components/schemas/MetricInResponse' + type: array + - type: 'null' + default: + title: Metrics + content: + title: Content + type: string + stop_reason: + $ref: '#/components/schemas/StopReason' + logprobs: + anyOf: + - items: + $ref: '#/components/schemas/TokenLogProbs' + type: array + - type: 'null' + default: + title: Logprobs + required: + - content + - stop_reason + title: CompletionResponse + type: object + CompletionResponseStreamChunk: + $defs: + MetricInResponse: + description: "A metric value included in API responses.\n:param metric: The name of the metric\n:param value: The numeric value of the metric\n:param unit: (Optional) The unit of measurement for the metric value" + properties: + metric: + title: Metric + type: string + value: + anyOf: + - type: integer + - type: number + title: Value + unit: + anyOf: + - type: string + - type: 'null' + default: + title: Unit + required: + - metric + - value + title: MetricInResponse + type: object + StopReason: + enum: + - end_of_turn + - end_of_message + - out_of_tokens + title: StopReason + type: string + TokenLogProbs: + description: Log probabilities for generated tokens. + properties: + logprobs_by_token: + additionalProperties: + type: number + minProperties: 1 + title: Logprobs By Token + type: object + required: + - logprobs_by_token + title: TokenLogProbs + type: object + description: A chunk of a streamed completion response. + properties: + metrics: + anyOf: + - items: + $ref: '#/components/schemas/MetricInResponse' + type: array + - type: 'null' + default: + title: Metrics + delta: + title: Delta + type: string + stop_reason: + anyOf: + - $ref: '#/components/schemas/StopReason' + - type: 'null' + default: + logprobs: + anyOf: + - items: + $ref: '#/components/schemas/TokenLogProbs' + type: array + - type: 'null' + default: + title: Logprobs + required: + - delta + title: CompletionResponseStreamChunk + type: object + EmbeddingsResponse: + description: Response containing generated embeddings. + properties: + embeddings: + items: + items: + type: number + type: array + title: Embeddings + type: array + required: + - embeddings + title: EmbeddingsResponse + type: object + Fp8QuantizationConfig: + description: Configuration for 8-bit floating point quantization. + properties: + type: + const: fp8_mixed + default: fp8_mixed + title: Type + type: string + title: Fp8QuantizationConfig + type: object + Int4QuantizationConfig: + description: Configuration for 4-bit integer quantization. + properties: + type: + const: int4_mixed + default: int4_mixed + title: Type + type: string + scheme: + anyOf: + - minLength: 1 + type: string + - type: 'null' + default: int4_weight_int8_dynamic_activation + title: Scheme + title: Int4QuantizationConfig + type: object + OpenAIAssistantMessageParam: + $defs: + OpenAIChatCompletionContentPartTextParam: + description: Text content part for OpenAI-compatible chat completion messages. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: OpenAIChatCompletionContentPartTextParam + type: object + OpenAIChatCompletionToolCall: + description: Tool call specification for OpenAI-compatible chat completion responses. + properties: + index: + anyOf: + - type: integer + - type: 'null' + default: + title: Index + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + type: + const: function + default: function + title: Type + type: string + function: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' + default: + title: OpenAIChatCompletionToolCall + type: object + OpenAIChatCompletionToolCallFunction: + description: Function call details for OpenAI-compatible tool calls. + properties: + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + arguments: + anyOf: + - type: string + - type: 'null' + default: + title: Arguments + title: OpenAIChatCompletionToolCallFunction + type: object + description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + - type: 'null' + default: + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + default: + title: Tool Calls + title: OpenAIAssistantMessageParam + type: object + OpenAIChatCompletion: + $defs: + OpenAIAssistantMessageParam: + description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + - type: 'null' + default: + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + default: + title: Tool Calls + title: OpenAIAssistantMessageParam + type: object + OpenAIChatCompletionContentPartImageParam: + description: Image content part for OpenAI-compatible chat completion messages. + properties: + type: + const: image_url + default: image_url + title: Type + type: string + image_url: + $ref: '#/components/schemas/OpenAIImageURL' + required: + - image_url + title: OpenAIChatCompletionContentPartImageParam + type: object + OpenAIChatCompletionContentPartTextParam: + description: Text content part for OpenAI-compatible chat completion messages. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: OpenAIChatCompletionContentPartTextParam + type: object + OpenAIChatCompletionToolCall: + description: Tool call specification for OpenAI-compatible chat completion responses. + properties: + index: + anyOf: + - type: integer + - type: 'null' + default: + title: Index + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + type: + const: function + default: function + title: Type + type: string + function: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' + default: + title: OpenAIChatCompletionToolCall + type: object + OpenAIChatCompletionToolCallFunction: + description: Function call details for OpenAI-compatible tool calls. + properties: + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + arguments: + anyOf: + - type: string + - type: 'null' + default: + title: Arguments + title: OpenAIChatCompletionToolCallFunction + type: object + OpenAIChatCompletionUsage: + description: Usage information for OpenAI chat completion. + properties: + prompt_tokens: + title: Prompt Tokens + type: integer + completion_tokens: + title: Completion Tokens + type: integer + total_tokens: + title: Total Tokens + type: integer + prompt_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + - type: 'null' + default: + completion_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + - type: 'null' + default: + required: + - prompt_tokens + - completion_tokens + - total_tokens + title: OpenAIChatCompletionUsage + type: object + OpenAIChatCompletionUsageCompletionTokensDetails: + description: Token details for output tokens in OpenAI chat completion usage. + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + title: Reasoning Tokens + title: OpenAIChatCompletionUsageCompletionTokensDetails + type: object + OpenAIChatCompletionUsagePromptTokensDetails: + description: Token details for prompt tokens in OpenAI chat completion usage. + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + title: Cached Tokens + title: OpenAIChatCompletionUsagePromptTokensDetails + type: object + OpenAIChoice: + description: A choice from an OpenAI-compatible chat completion response. + properties: + message: + discriminator: + mapping: + assistant: '#/$defs/OpenAIAssistantMessageParam' + developer: '#/$defs/OpenAIDeveloperMessageParam' + system: '#/$defs/OpenAISystemMessageParam' + tool: '#/$defs/OpenAIToolMessageParam' + user: '#/$defs/OpenAIUserMessageParam' + propertyName: role + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + title: Message + finish_reason: + title: Finish Reason + type: string + index: + title: Index + type: integer + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs' + - type: 'null' + default: + required: + - message + - finish_reason + - index + title: OpenAIChoice + type: object + OpenAIChoiceLogprobs: + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Refusal + title: OpenAIChoiceLogprobs + type: object + OpenAIDeveloperMessageParam: + description: A message from the developer in an OpenAI-compatible chat completion request. + properties: + role: + const: developer + default: developer + title: Role + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + required: + - content + title: OpenAIDeveloperMessageParam + type: object + OpenAIFile: + properties: + type: + const: file + default: file + title: Type + type: string + file: + $ref: '#/components/schemas/OpenAIFileFile' + required: + - file + title: OpenAIFile + type: object + OpenAIFileFile: + properties: + file_id: + anyOf: + - type: string + - type: 'null' + default: + title: File Id + filename: + anyOf: + - type: string + - type: 'null' + default: + title: Filename + title: OpenAIFileFile + type: object + OpenAIImageURL: + description: Image URL specification for OpenAI-compatible chat completion messages. + properties: + url: + title: Url + type: string + detail: + anyOf: + - type: string + - type: 'null' + default: + title: Detail + required: + - url + title: OpenAIImageURL + type: object + OpenAISystemMessageParam: + description: A system message providing instructions or context to the model. + properties: + role: + const: system + default: system + title: Role + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + required: + - content + title: OpenAISystemMessageParam + type: object + OpenAITokenLogProb: + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + top_logprobs: + items: + $ref: '#/components/schemas/OpenAITopLogProb' + title: Top Logprobs + type: array + required: + - token + - logprob + - top_logprobs + title: OpenAITokenLogProb + type: object + OpenAIToolMessageParam: + description: A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + properties: + role: + const: tool + default: tool + title: Role + type: string + tool_call_id: + title: Tool Call Id + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + required: + - tool_call_id + - content + title: OpenAIToolMessageParam + type: object + OpenAITopLogProb: + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + required: + - token + - logprob + title: OpenAITopLogProb + type: object + OpenAIUserMessageParam: + description: A message from the user in an OpenAI-compatible chat completion request. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + file: '#/$defs/OpenAIFile' + image_url: '#/$defs/OpenAIChatCompletionContentPartImageParam' + text: '#/$defs/OpenAIChatCompletionContentPartTextParam' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + - $ref: '#/components/schemas/OpenAIFile' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + required: + - content + title: OpenAIUserMessageParam + type: object + description: Response from an OpenAI-compatible chat completion request. + properties: + id: + title: Id + type: string + choices: + items: + $ref: '#/components/schemas/OpenAIChoice' + title: Choices + type: array + object: + const: chat.completion + default: chat.completion + title: Object + type: string + created: + title: Created + type: integer + model: + title: Model + type: string + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsage' + - type: 'null' + default: + required: + - id + - choices + - created + - model + title: OpenAIChatCompletion + type: object + OpenAIChatCompletionChunk: + $defs: + OpenAIChatCompletionToolCall: + description: Tool call specification for OpenAI-compatible chat completion responses. + properties: + index: + anyOf: + - type: integer + - type: 'null' + default: + title: Index + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + type: + const: function + default: function + title: Type + type: string + function: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' + default: + title: OpenAIChatCompletionToolCall + type: object + OpenAIChatCompletionToolCallFunction: + description: Function call details for OpenAI-compatible tool calls. + properties: + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + arguments: + anyOf: + - type: string + - type: 'null' + default: + title: Arguments + title: OpenAIChatCompletionToolCallFunction + type: object + OpenAIChatCompletionUsage: + description: Usage information for OpenAI chat completion. + properties: + prompt_tokens: + title: Prompt Tokens + type: integer + completion_tokens: + title: Completion Tokens + type: integer + total_tokens: + title: Total Tokens + type: integer + prompt_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + - type: 'null' + default: + completion_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + - type: 'null' + default: + required: + - prompt_tokens + - completion_tokens + - total_tokens + title: OpenAIChatCompletionUsage + type: object + OpenAIChatCompletionUsageCompletionTokensDetails: + description: Token details for output tokens in OpenAI chat completion usage. + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + title: Reasoning Tokens + title: OpenAIChatCompletionUsageCompletionTokensDetails + type: object + OpenAIChatCompletionUsagePromptTokensDetails: + description: Token details for prompt tokens in OpenAI chat completion usage. + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + title: Cached Tokens + title: OpenAIChatCompletionUsagePromptTokensDetails + type: object + OpenAIChoiceDelta: + description: A delta from an OpenAI-compatible chat completion streaming response. + properties: + content: + anyOf: + - type: string + - type: 'null' + default: + title: Content + refusal: + anyOf: + - type: string + - type: 'null' + default: + title: Refusal + role: + anyOf: + - type: string + - type: 'null' + default: + title: Role + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + default: + title: Tool Calls + reasoning_content: + anyOf: + - type: string + - type: 'null' + default: + title: Reasoning Content + title: OpenAIChoiceDelta + type: object + OpenAIChoiceLogprobs: + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Refusal + title: OpenAIChoiceLogprobs + type: object + OpenAIChunkChoice: + description: A chunk choice from an OpenAI-compatible chat completion streaming response. + properties: + delta: + $ref: '#/components/schemas/OpenAIChoiceDelta' + finish_reason: + title: Finish Reason + type: string + index: + title: Index + type: integer + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs' + - type: 'null' + default: + required: + - delta + - finish_reason + - index + title: OpenAIChunkChoice + type: object + OpenAITokenLogProb: + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + top_logprobs: + items: + $ref: '#/components/schemas/OpenAITopLogProb' + title: Top Logprobs + type: array + required: + - token + - logprob + - top_logprobs + title: OpenAITokenLogProb + type: object + OpenAITopLogProb: + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + required: + - token + - logprob + title: OpenAITopLogProb + type: object + description: Chunk from a streaming response to an OpenAI-compatible chat completion request. + properties: + id: + title: Id + type: string + choices: + items: + $ref: '#/components/schemas/OpenAIChunkChoice' + title: Choices + type: array + object: + const: chat.completion.chunk + default: chat.completion.chunk + title: Object + type: string + created: + title: Created + type: integer + model: + title: Model + type: string + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsage' + - type: 'null' + default: + required: + - id + - choices + - created + - model + title: OpenAIChatCompletionChunk + type: object + OpenAIChoice: + $defs: + OpenAIAssistantMessageParam: + description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + properties: + role: + const: assistant + default: assistant + title: Role + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + - type: 'null' + default: + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + default: + title: Tool Calls + title: OpenAIAssistantMessageParam + type: object + OpenAIChatCompletionContentPartImageParam: + description: Image content part for OpenAI-compatible chat completion messages. + properties: + type: + const: image_url + default: image_url + title: Type + type: string + image_url: + $ref: '#/components/schemas/OpenAIImageURL' + required: + - image_url + title: OpenAIChatCompletionContentPartImageParam + type: object + OpenAIChatCompletionContentPartTextParam: + description: Text content part for OpenAI-compatible chat completion messages. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: OpenAIChatCompletionContentPartTextParam + type: object + OpenAIChatCompletionToolCall: + description: Tool call specification for OpenAI-compatible chat completion responses. + properties: + index: + anyOf: + - type: integer + - type: 'null' + default: + title: Index + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + type: + const: function + default: function + title: Type + type: string + function: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' + default: + title: OpenAIChatCompletionToolCall + type: object + OpenAIChatCompletionToolCallFunction: + description: Function call details for OpenAI-compatible tool calls. + properties: + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + arguments: + anyOf: + - type: string + - type: 'null' + default: + title: Arguments + title: OpenAIChatCompletionToolCallFunction + type: object + OpenAIChoiceLogprobs: + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Refusal + title: OpenAIChoiceLogprobs + type: object + OpenAIDeveloperMessageParam: + description: A message from the developer in an OpenAI-compatible chat completion request. + properties: + role: + const: developer + default: developer + title: Role + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + required: + - content + title: OpenAIDeveloperMessageParam + type: object + OpenAIFile: + properties: + type: + const: file + default: file + title: Type + type: string + file: + $ref: '#/components/schemas/OpenAIFileFile' + required: + - file + title: OpenAIFile + type: object + OpenAIFileFile: + properties: + file_id: + anyOf: + - type: string + - type: 'null' + default: + title: File Id + filename: + anyOf: + - type: string + - type: 'null' + default: + title: Filename + title: OpenAIFileFile + type: object + OpenAIImageURL: + description: Image URL specification for OpenAI-compatible chat completion messages. + properties: + url: + title: Url + type: string + detail: + anyOf: + - type: string + - type: 'null' + default: + title: Detail + required: + - url + title: OpenAIImageURL + type: object + OpenAISystemMessageParam: + description: A system message providing instructions or context to the model. + properties: + role: + const: system + default: system + title: Role + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + required: + - content + title: OpenAISystemMessageParam + type: object + OpenAITokenLogProb: + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + top_logprobs: + items: + $ref: '#/components/schemas/OpenAITopLogProb' + title: Top Logprobs + type: array + required: + - token + - logprob + - top_logprobs + title: OpenAITokenLogProb + type: object + OpenAIToolMessageParam: + description: A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + properties: + role: + const: tool + default: tool + title: Role + type: string + tool_call_id: + title: Tool Call Id + type: string + content: + anyOf: + - type: string + - items: + $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + type: array + title: Content + required: + - tool_call_id + - content + title: OpenAIToolMessageParam + type: object + OpenAITopLogProb: + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + required: + - token + - logprob + title: OpenAITopLogProb + type: object + OpenAIUserMessageParam: + description: A message from the user in an OpenAI-compatible chat completion request. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + file: '#/$defs/OpenAIFile' + image_url: '#/$defs/OpenAIChatCompletionContentPartImageParam' + text: '#/$defs/OpenAIChatCompletionContentPartTextParam' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + - $ref: '#/components/schemas/OpenAIFile' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + required: + - content + title: OpenAIUserMessageParam + type: object + description: A choice from an OpenAI-compatible chat completion response. + properties: + message: + discriminator: + mapping: + assistant: '#/$defs/OpenAIAssistantMessageParam' + developer: '#/$defs/OpenAIDeveloperMessageParam' + system: '#/$defs/OpenAISystemMessageParam' + tool: '#/$defs/OpenAIToolMessageParam' + user: '#/$defs/OpenAIUserMessageParam' + propertyName: role + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + title: Message + finish_reason: + title: Finish Reason + type: string + index: + title: Index + type: integer + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs' + - type: 'null' + default: + required: + - message + - finish_reason + - index + title: OpenAIChoice + type: object + OpenAIChoiceDelta: + $defs: + OpenAIChatCompletionToolCall: + description: Tool call specification for OpenAI-compatible chat completion responses. + properties: + index: + anyOf: + - type: integer + - type: 'null' + default: + title: Index + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + type: + const: function + default: function + title: Type + type: string + function: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' + default: + title: OpenAIChatCompletionToolCall + type: object + OpenAIChatCompletionToolCallFunction: + description: Function call details for OpenAI-compatible tool calls. + properties: + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + arguments: + anyOf: + - type: string + - type: 'null' + default: + title: Arguments + title: OpenAIChatCompletionToolCallFunction + type: object + description: A delta from an OpenAI-compatible chat completion streaming response. + properties: + content: + anyOf: + - type: string + - type: 'null' + default: + title: Content + refusal: + anyOf: + - type: string + - type: 'null' + default: + title: Refusal + role: + anyOf: + - type: string + - type: 'null' + default: + title: Role + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + default: + title: Tool Calls + reasoning_content: + anyOf: + - type: string + - type: 'null' + default: + title: Reasoning Content + title: OpenAIChoiceDelta + type: object + OpenAIChoiceLogprobs: + $defs: + OpenAITokenLogProb: + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + top_logprobs: + items: + $ref: '#/components/schemas/OpenAITopLogProb' + title: Top Logprobs + type: array + required: + - token + - logprob + - top_logprobs + title: OpenAITokenLogProb + type: object + OpenAITopLogProb: + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + required: + - token + - logprob + title: OpenAITopLogProb + type: object + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Refusal + title: OpenAIChoiceLogprobs + type: object + OpenAIChunkChoice: + $defs: + OpenAIChatCompletionToolCall: + description: Tool call specification for OpenAI-compatible chat completion responses. + properties: + index: + anyOf: + - type: integer + - type: 'null' + default: + title: Index + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + type: + const: function + default: function + title: Type + type: string + function: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' + default: + title: OpenAIChatCompletionToolCall + type: object + OpenAIChatCompletionToolCallFunction: + description: Function call details for OpenAI-compatible tool calls. + properties: + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + arguments: + anyOf: + - type: string + - type: 'null' + default: + title: Arguments + title: OpenAIChatCompletionToolCallFunction + type: object + OpenAIChoiceDelta: + description: A delta from an OpenAI-compatible chat completion streaming response. + properties: + content: + anyOf: + - type: string + - type: 'null' + default: + title: Content + refusal: + anyOf: + - type: string + - type: 'null' + default: + title: Refusal + role: + anyOf: + - type: string + - type: 'null' + default: + title: Role + tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' + default: + title: Tool Calls + reasoning_content: + anyOf: + - type: string + - type: 'null' + default: + title: Reasoning Content + title: OpenAIChoiceDelta + type: object + OpenAIChoiceLogprobs: + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Refusal + title: OpenAIChoiceLogprobs + type: object + OpenAITokenLogProb: + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + top_logprobs: + items: + $ref: '#/components/schemas/OpenAITopLogProb' + title: Top Logprobs + type: array + required: + - token + - logprob + - top_logprobs + title: OpenAITokenLogProb + type: object + OpenAITopLogProb: + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + required: + - token + - logprob + title: OpenAITopLogProb + type: object + description: A chunk choice from an OpenAI-compatible chat completion streaming response. + properties: + delta: + $ref: '#/components/schemas/OpenAIChoiceDelta' + finish_reason: + title: Finish Reason + type: string + index: + title: Index + type: integer + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs' + - type: 'null' + default: + required: + - delta + - finish_reason + - index + title: OpenAIChunkChoice + type: object + OpenAICompletionChoice: + $defs: + OpenAIChoiceLogprobs: + description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + properties: + content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Content + refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' + default: + title: Refusal + title: OpenAIChoiceLogprobs + type: object + OpenAITokenLogProb: + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + top_logprobs: + items: + $ref: '#/components/schemas/OpenAITopLogProb' + title: Top Logprobs + type: array + required: + - token + - logprob + - top_logprobs + title: OpenAITokenLogProb + type: object + OpenAITopLogProb: + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" + properties: + token: + title: Token + type: string + bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Bytes + logprob: + title: Logprob + type: number + required: + - token + - logprob + title: OpenAITopLogProb + type: object + description: "A choice from an OpenAI-compatible completion response.\n\n:finish_reason: The reason the model stopped generating\n:text: The text of the choice\n:index: The index of the choice\n:logprobs: (Optional) The log probabilities for the tokens in the choice" + properties: + finish_reason: + title: Finish Reason + type: string + text: + title: Text + type: string + index: + title: Index + type: integer + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs' + - type: 'null' + default: + required: + - finish_reason + - text + - index + title: OpenAICompletionChoice + type: object + OpenAICompletionLogprobs: + description: "The log probabilities for the tokens in the message from an OpenAI-compatible completion response.\n\n:text_offset: (Optional) The offset of the token in the text\n:token_logprobs: (Optional) The log probabilities for the tokens\n:tokens: (Optional) The tokens\n:top_logprobs: (Optional) The top log probabilities for the tokens" + properties: + text_offset: + anyOf: + - items: + type: integer + type: array + - type: 'null' + default: + title: Text Offset + token_logprobs: + anyOf: + - items: + type: number + type: array + - type: 'null' + default: + title: Token Logprobs + tokens: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: + title: Tokens + top_logprobs: + anyOf: + - items: + additionalProperties: + type: number + type: object + type: array + - type: 'null' + default: + title: Top Logprobs + title: OpenAICompletionLogprobs + type: object + OpenAIUserMessageParam: + $defs: + OpenAIChatCompletionContentPartImageParam: + description: Image content part for OpenAI-compatible chat completion messages. + properties: + type: + const: image_url + default: image_url + title: Type + type: string + image_url: + $ref: '#/components/schemas/OpenAIImageURL' + required: + - image_url + title: OpenAIChatCompletionContentPartImageParam + type: object + OpenAIChatCompletionContentPartTextParam: + description: Text content part for OpenAI-compatible chat completion messages. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: OpenAIChatCompletionContentPartTextParam + type: object + OpenAIFile: + properties: + type: + const: file + default: file + title: Type + type: string + file: + $ref: '#/components/schemas/OpenAIFileFile' + required: + - file + title: OpenAIFile + type: object + OpenAIFileFile: + properties: + file_id: + anyOf: + - type: string + - type: 'null' + default: + title: File Id + filename: + anyOf: + - type: string + - type: 'null' + default: + title: Filename + title: OpenAIFileFile + type: object + OpenAIImageURL: + description: Image URL specification for OpenAI-compatible chat completion messages. + properties: + url: + title: Url + type: string + detail: + anyOf: + - type: string + - type: 'null' + default: + title: Detail + required: + - url + title: OpenAIImageURL + type: object + description: A message from the user in an OpenAI-compatible chat completion request. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + file: '#/$defs/OpenAIFile' + image_url: '#/$defs/OpenAIChatCompletionContentPartImageParam' + text: '#/$defs/OpenAIChatCompletionContentPartTextParam' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + - $ref: '#/components/schemas/OpenAIFile' + type: array + title: Content + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + required: + - content + title: OpenAIUserMessageParam + type: object + TokenLogProbs: + description: Log probabilities for generated tokens. + properties: + logprobs_by_token: + additionalProperties: + type: number + minProperties: 1 + title: Logprobs By Token + type: object + required: + - logprobs_by_token + title: TokenLogProbs + type: object + ToolResponse: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: Response from a tool invocation. + properties: + call_id: + minLength: 1 + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Metadata + required: + - call_id + - tool_name + - content + title: ToolResponse + type: object + ToolResponseMessage: + $defs: + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: A message representing the result of a tool invocation. + properties: + role: + const: tool + default: tool + title: Role + type: string + call_id: + title: Call Id + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + required: + - call_id + - content + title: ToolResponseMessage + type: object + UserMessage: + $defs: + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: A message from the user in a chat conversation. + properties: + role: + const: user + default: user + title: Role + type: string + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + context: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + - type: 'null' + default: + title: Context + required: + - content + title: UserMessage + type: object + OpenAIModel: + description: A model from OpenAI. + properties: + id: + description: The ID of the model. + title: Id + type: string + object: + const: model + default: model + description: The object type, which will be 'model'. + title: Object + type: string + created: + description: The Unix timestamp in seconds when the model was created. + title: Created + type: integer + owned_by: + description: The owner of the model. + title: Owned By + type: string + required: + - id + - created + - owned_by + title: OpenAIModel + type: object + PostTrainingJobLogStream: + description: Stream of logs from a finetuning job. + properties: + job_uuid: + title: Job Uuid + type: string + log_lines: + items: + type: string + title: Log Lines + type: array + required: + - job_uuid + - log_lines + title: PostTrainingJobLogStream + type: object + PostTrainingRLHFRequest: + $defs: + DPOAlignmentConfig: + description: Configuration for Direct Preference Optimization (DPO) alignment. + properties: + beta: + title: Beta + type: number + loss_type: + $ref: '#/components/schemas/DPOLossType' + default: sigmoid + required: + - beta + title: DPOAlignmentConfig + type: object + DPOLossType: + enum: + - sigmoid + - hinge + - ipo + - kto_pair + title: DPOLossType + type: string + DataConfig: + description: Configuration for training data and data loading. + properties: + dataset_id: + title: Dataset Id + type: string + batch_size: + title: Batch Size + type: integer + shuffle: + title: Shuffle + type: boolean + data_format: + $ref: '#/components/schemas/DatasetFormat' + validation_dataset_id: + anyOf: + - type: string + - type: 'null' + default: + title: Validation Dataset Id + packed: + anyOf: + - type: boolean + - type: 'null' + default: false + title: Packed + train_on_input: + anyOf: + - type: boolean + - type: 'null' + default: false + title: Train On Input + required: + - dataset_id + - batch_size + - shuffle + - data_format + title: DataConfig + type: object + DatasetFormat: + description: Format of the training dataset. + enum: + - instruct + - dialog + title: DatasetFormat + type: string + EfficiencyConfig: + description: Configuration for memory and compute efficiency optimizations. + properties: + enable_activation_checkpointing: + anyOf: + - type: boolean + - type: 'null' + default: false + title: Enable Activation Checkpointing + enable_activation_offloading: + anyOf: + - type: boolean + - type: 'null' + default: false + title: Enable Activation Offloading + memory_efficient_fsdp_wrap: + anyOf: + - type: boolean + - type: 'null' + default: false + title: Memory Efficient Fsdp Wrap + fsdp_cpu_offload: + anyOf: + - type: boolean + - type: 'null' + default: false + title: Fsdp Cpu Offload + title: EfficiencyConfig + type: object + OptimizerConfig: + description: Configuration parameters for the optimization algorithm. + properties: + optimizer_type: + $ref: '#/components/schemas/OptimizerType' + lr: + title: Lr + type: number + weight_decay: + title: Weight Decay + type: number + num_warmup_steps: + title: Num Warmup Steps + type: integer + required: + - optimizer_type + - lr + - weight_decay + - num_warmup_steps + title: OptimizerConfig + type: object + OptimizerType: + description: Available optimizer algorithms for training. + enum: + - adam + - adamw + - sgd + title: OptimizerType + type: string + RLHFAlgorithm: + description: Available reinforcement learning from human feedback algorithms. + enum: + - dpo + title: RLHFAlgorithm + type: string + TrainingConfig: + description: Comprehensive configuration for the training process. + properties: + n_epochs: + title: N Epochs + type: integer + max_steps_per_epoch: + default: 1 + title: Max Steps Per Epoch + type: integer + gradient_accumulation_steps: + default: 1 + title: Gradient Accumulation Steps + type: integer + max_validation_steps: + anyOf: + - type: integer + - type: 'null' + default: 1 + title: Max Validation Steps + data_config: + anyOf: + - $ref: '#/components/schemas/DataConfig' + - type: 'null' + default: + optimizer_config: + anyOf: + - $ref: '#/components/schemas/OptimizerConfig' + - type: 'null' + default: + efficiency_config: + anyOf: + - $ref: '#/components/schemas/EfficiencyConfig' + - type: 'null' + default: + dtype: + anyOf: + - type: string + - type: 'null' + default: bf16 + title: Dtype + required: + - n_epochs + title: TrainingConfig + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + description: Request to finetune a model using reinforcement learning from human feedback. + properties: + job_uuid: + title: Job Uuid + type: string + finetuned_model: + $ref: '#/components/schemas/URL' + dataset_id: + title: Dataset Id + type: string + validation_dataset_id: + title: Validation Dataset Id + type: string + algorithm: + $ref: '#/components/schemas/RLHFAlgorithm' + algorithm_config: + $ref: '#/components/schemas/DPOAlignmentConfig' + optimizer_config: + $ref: '#/components/schemas/OptimizerConfig' + training_config: + $ref: '#/components/schemas/TrainingConfig' + hyperparam_search_config: + additionalProperties: true + title: Hyperparam Search Config + type: object + logger_config: + additionalProperties: true + title: Logger Config + type: object + required: + - job_uuid + - finetuned_model + - dataset_id + - validation_dataset_id + - algorithm + - algorithm_config + - optimizer_config + - training_config + - hyperparam_search_config + - logger_config + title: PostTrainingRLHFRequest + type: object + ToolGroupInput: + $defs: + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + description: Input data for registering a tool group. + properties: + toolgroup_id: + description: Unique identifier for the tool group + title: Toolgroup Id + type: string + provider_id: + description: ID of the provider that will handle this tool group + title: Provider Id + type: string + args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional arguments to pass to the provider + title: Args + mcp_endpoint: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + description: Model Context Protocol endpoint for remote tools + required: + - toolgroup_id + - provider_id + title: ToolGroupInput + type: object + Chunk: + $defs: + ChunkMetadata: + description: "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." + properties: + chunk_id: + anyOf: + - type: string + - type: 'null' + default: + title: Chunk Id + document_id: + anyOf: + - type: string + - type: 'null' + default: + title: Document Id + source: + anyOf: + - type: string + - type: 'null' + default: + title: Source + created_timestamp: + anyOf: + - type: integer + - type: 'null' + default: + title: Created Timestamp + updated_timestamp: + anyOf: + - type: integer + - type: 'null' + default: + title: Updated Timestamp + chunk_window: + anyOf: + - type: string + - type: 'null' + default: + title: Chunk Window + chunk_tokenizer: + anyOf: + - type: string + - type: 'null' + default: + title: Chunk Tokenizer + chunk_embedding_model: + anyOf: + - type: string + - type: 'null' + default: + title: Chunk Embedding Model + chunk_embedding_dimension: + anyOf: + - type: integer + - type: 'null' + default: + title: Chunk Embedding Dimension + content_token_count: + anyOf: + - type: integer + - type: 'null' + default: + title: Content Token Count + metadata_token_count: + anyOf: + - type: integer + - type: 'null' + default: + title: Metadata Token Count + title: ChunkMetadata + type: object + ImageContentItem: + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + TextContentItem: + description: A text content item. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextContentItem + type: object + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: A chunk of content that can be inserted into a vector database. + properties: + content: + anyOf: + - type: string + - discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + - items: + discriminator: + mapping: + image: '#/$defs/ImageContentItem' + text: '#/$defs/TextContentItem' + propertyName: type + oneOf: + - $ref: '#/components/schemas/ImageContentItem' + - $ref: '#/components/schemas/TextContentItem' + type: array + title: Content + chunk_id: + title: Chunk Id + type: string + metadata: + additionalProperties: true + title: Metadata + type: object + embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' + default: + title: Embedding + chunk_metadata: + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' + default: + required: + - content + - chunk_id + title: Chunk + type: object + VectorStoreCreateRequest: + description: Request to create a vector store. + properties: + name: + anyOf: + - type: string + - type: 'null' + default: + title: Name + file_ids: + items: + type: string + title: File Ids + type: array + expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Expires After + chunking_strategy: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Chunking Strategy + metadata: + additionalProperties: true + title: Metadata + type: object + title: VectorStoreCreateRequest + type: object + VectorStoreSearchRequest: + description: Request to search a vector store. + properties: + query: + anyOf: + - type: string + - items: + type: string + type: array + title: Query + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Filters + max_num_results: + default: 10 + title: Max Num Results + type: integer + ranking_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + title: Ranking Options + rewrite_query: + default: false + title: Rewrite Query + type: boolean + required: + - query + title: VectorStoreSearchRequest + type: object + OpenAIResponseContentPartOutputText: + $defs: + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + description: "Text content within a streamed response part.\n\n:param type: Content part type identifier, always \"output_text\"\n:param text: Text emitted for this content part\n:param annotations: Structured annotations associated with the text\n:param logprobs: (Optional) Token log probability details" + properties: + type: + const: output_text + default: output_text + description: Content part type identifier, always "output_text" + title: Type + type: string + text: + description: Text emitted for this content part + title: Text + type: string + annotations: + description: Structured annotations associated with the text + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + logprobs: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' + default: + description: Token log probability details + title: Logprobs + required: + - text + title: OpenAIResponseContentPartOutputText + type: object + OpenAIResponseContentPartReasoningSummary: + description: "Reasoning summary part in a streamed response.\n\n:param type: Content part type identifier, always \"summary_text\"\n:param text: Summary text" + properties: + type: + const: summary_text + default: summary_text + description: Content part type identifier, always "summary_text" + title: Type + type: string + text: + description: Summary text + title: Text + type: string + required: + - text + title: OpenAIResponseContentPartReasoningSummary + type: object + OpenAIResponseContentPartReasoningText: + description: "Reasoning text emitted as part of a streamed response.\n\n:param type: Content part type identifier, always \"reasoning_text\"\n:param text: Reasoning text supplied by the model" + properties: + type: + const: reasoning_text + default: reasoning_text + description: Content part type identifier, always "reasoning_text" + title: Type + type: string + text: + description: Reasoning text supplied by the model + title: Text + type: string + required: + - text + title: OpenAIResponseContentPartReasoningText + type: object + OpenAIResponseMessage: + $defs: + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseObjectStreamResponseCompleted: + $defs: + AllowedToolsFilter: + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" + properties: + tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: + description: List of specific tool names that are allowed + title: Tool Names + title: AllowedToolsFilter + type: object + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseError: + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" + properties: + code: + description: Error code identifying the type of failure + title: Code + type: string + message: + description: Human-readable error message describing the failure + title: Message + type: string + required: + - code + - message + title: OpenAIResponseError + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseInputToolFileSearch: + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" + properties: + type: + const: file_search + default: file_search + description: Tool type identifier, always "file_search" + title: Type + type: string + vector_store_ids: + description: List of vector store identifiers to search within + items: + type: string + title: Vector Store Ids + type: array + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional filters to apply to the search + title: Filters + max_num_results: + anyOf: + - maximum: 50 + minimum: 1 + type: integer + - type: 'null' + default: 10 + description: Maximum number of search results to return (1-50) + title: Max Num Results + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + default: + description: Options for ranking and scoring search results + required: + - vector_store_ids + title: OpenAIResponseInputToolFileSearch + type: object + OpenAIResponseInputToolFunction: + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" + properties: + type: + const: function + default: function + description: Tool type identifier, always "function" + title: Type + type: string + name: + description: Name of the function that can be called + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the function does + title: Description + parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON schema defining the function's parameters + title: Parameters + strict: + anyOf: + - type: boolean + - type: 'null' + default: + description: Whether to enforce strict parameter validation + title: Strict + required: + - name + title: OpenAIResponseInputToolFunction + type: object + OpenAIResponseInputToolWebSearch: + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" + properties: + type: + anyOf: + - const: web_search + type: string + - const: web_search_preview + type: string + - const: web_search_preview_2025_03_11 + type: string + default: web_search + description: Web search tool type variant to use + title: Type + search_context_size: + anyOf: + - pattern: ^low|medium|high$ + type: string + - type: 'null' + default: medium + description: Size of search context, must be "low", "medium", or "high" + title: Search Context Size + title: OpenAIResponseInputToolWebSearch + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseObject: + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + properties: + created_at: + description: Unix timestamp when the response was created + title: Created At + type: integer + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + default: + description: Error details if the response generation failed + id: + description: Unique identifier for this response + title: Id + type: string + model: + description: Model identifier used for generation + title: Model + type: string + object: + const: response + default: response + description: Object type identifier, always "response" + title: Object + type: string + output: + description: List of generated output items (messages, tool calls, etc.) + items: + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Output + type: array + parallel_tool_calls: + default: false + description: Whether tool calls can be executed in parallel + title: Parallel Tool Calls + type: boolean + previous_response_id: + anyOf: + - type: string + - type: 'null' + default: + description: ID of the previous response in a conversation + title: Previous Response Id + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + default: + description: Reference to a prompt template and its variables. + status: + description: Current status of the response generation + title: Status + type: string + temperature: + anyOf: + - type: number + - type: 'null' + default: + description: Sampling temperature used for generation + title: Temperature + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + default: + description: Nucleus sampling parameter used for generation + title: Top P + tools: + anyOf: + - items: + discriminator: + mapping: + file_search: '#/$defs/OpenAIResponseInputToolFileSearch' + function: '#/$defs/OpenAIResponseInputToolFunction' + mcp: '#/$defs/OpenAIResponseToolMCP' + web_search: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + type: array + - type: 'null' + default: + description: An array of tools the model may call while generating a response. + title: Tools + truncation: + anyOf: + - type: string + - type: 'null' + default: + description: Truncation strategy applied to the response + title: Truncation + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + default: + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + default: + description: System message inserted into the model's context + title: Instructions + required: + - created_at + - id + - model + - output + - status + title: OpenAIResponseObject + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + OpenAIResponsePrompt: + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" + properties: + id: + description: Unique identifier of the prompt template + title: Id + type: string + variables: + anyOf: + - additionalProperties: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: object + - type: 'null' + default: + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. + title: Variables + version: + anyOf: + - type: string + - type: 'null' + default: + description: Version number of the prompt to use (defaults to latest if not specified) + title: Version + required: + - id + title: OpenAIResponsePrompt + type: object + OpenAIResponseText: + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" + properties: + format: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + default: + description: Text format configuration specifying output format requirements + title: OpenAIResponseText + type: object + OpenAIResponseTextFormat: + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." + properties: + type: + anyOf: + - const: text + type: string + - const: json_schema + type: string + - const: json_object + type: string + title: Type + name: + anyOf: + - type: string + - type: 'null' + title: Name + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + title: OpenAIResponseTextFormat + type: object + OpenAIResponseToolMCP: + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + properties: + type: + const: mcp + default: mcp + description: Tool type identifier, always "mcp" + title: Type + type: string + server_label: + description: Label to identify this MCP server + title: Server Label + type: string + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + default: + description: Restriction on which tools can be used from this server + title: Allowed Tools + required: + - server_label + title: OpenAIResponseToolMCP + type: object + OpenAIResponseUsage: + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" + properties: + input_tokens: + description: Number of tokens in the input + title: Input Tokens + type: integer + output_tokens: + description: Number of tokens in the output + title: Output Tokens + type: integer + total_tokens: + description: Total tokens used (input + output) + title: Total Tokens + type: integer + input_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of input token usage + output_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of output token usage + required: + - input_tokens + - output_tokens + - total_tokens + title: OpenAIResponseUsage + type: object + OpenAIResponseUsageInputTokensDetails: + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens retrieved from cache + title: Cached Tokens + title: OpenAIResponseUsageInputTokensDetails + type: object + OpenAIResponseUsageOutputTokensDetails: + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens used for reasoning (o1/o3 models) + title: Reasoning Tokens + title: OpenAIResponseUsageOutputTokensDetails + type: object + SearchRankingOptions: + description: Options for ranking and filtering search results. + properties: + ranker: + anyOf: + - type: string + - type: 'null' + default: + title: Ranker + score_threshold: + anyOf: + - type: number + - type: 'null' + default: 0.0 + title: Score Threshold + title: SearchRankingOptions + type: object + description: "Streaming event indicating a response has been completed.\n\n:param response: Completed response object\n:param type: Event type identifier, always \"response.completed\"" + properties: + response: + $ref: '#/components/schemas/OpenAIResponseObject' + description: Completed response object + type: + const: response.completed + default: response.completed + description: Event type identifier, always "response.completed" + title: Type + type: string + required: + - response + title: OpenAIResponseObjectStreamResponseCompleted + type: object + OpenAIResponseObjectStreamResponseContentPartAdded: + $defs: + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartOutputText: + description: "Text content within a streamed response part.\n\n:param type: Content part type identifier, always \"output_text\"\n:param text: Text emitted for this content part\n:param annotations: Structured annotations associated with the text\n:param logprobs: (Optional) Token log probability details" + properties: + type: + const: output_text + default: output_text + description: Content part type identifier, always "output_text" + title: Type + type: string + text: + description: Text emitted for this content part + title: Text + type: string + annotations: + description: Structured annotations associated with the text + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + logprobs: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' + default: + description: Token log probability details + title: Logprobs + required: + - text + title: OpenAIResponseContentPartOutputText + type: object + OpenAIResponseContentPartReasoningText: + description: "Reasoning text emitted as part of a streamed response.\n\n:param type: Content part type identifier, always \"reasoning_text\"\n:param text: Reasoning text supplied by the model" + properties: + type: + const: reasoning_text + default: reasoning_text + description: Content part type identifier, always "reasoning_text" + title: Type + type: string + text: + description: Reasoning text supplied by the model + title: Text + type: string + required: + - text + title: OpenAIResponseContentPartReasoningText + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + description: "Streaming event for when a new content part is added to a response item.\n\n:param content_index: Index position of the part within the content array\n:param response_id: Unique identifier of the response containing this content\n:param item_id: Unique identifier of the output item containing this content part\n:param output_index: Index position of the output item in the response\n:param part: The content part that was added\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.content_part.added\"" + properties: + content_index: + description: Index position of the part within the content array + title: Content Index + type: integer + response_id: + description: Unique identifier of the response containing this content + title: Response Id + type: string + item_id: + description: Unique identifier of the output item containing this content part + title: Item Id + type: string + output_index: + description: Index position of the output item in the response + title: Output Index + type: integer + part: + description: The content part that was added + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseContentPartOutputText' + reasoning_text: '#/$defs/OpenAIResponseContentPartReasoningText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseContentPartOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + - $ref: '#/components/schemas/OpenAIResponseContentPartReasoningText' + title: Part + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.content_part.added + default: response.content_part.added + description: Event type identifier, always "response.content_part.added" + title: Type + type: string + required: + - content_index + - response_id + - item_id + - output_index + - part + - sequence_number + title: OpenAIResponseObjectStreamResponseContentPartAdded + type: object + OpenAIResponseObjectStreamResponseContentPartDone: + $defs: + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartOutputText: + description: "Text content within a streamed response part.\n\n:param type: Content part type identifier, always \"output_text\"\n:param text: Text emitted for this content part\n:param annotations: Structured annotations associated with the text\n:param logprobs: (Optional) Token log probability details" + properties: + type: + const: output_text + default: output_text + description: Content part type identifier, always "output_text" + title: Type + type: string + text: + description: Text emitted for this content part + title: Text + type: string + annotations: + description: Structured annotations associated with the text + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + logprobs: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' + default: + description: Token log probability details + title: Logprobs + required: + - text + title: OpenAIResponseContentPartOutputText + type: object + OpenAIResponseContentPartReasoningText: + description: "Reasoning text emitted as part of a streamed response.\n\n:param type: Content part type identifier, always \"reasoning_text\"\n:param text: Reasoning text supplied by the model" + properties: + type: + const: reasoning_text + default: reasoning_text + description: Content part type identifier, always "reasoning_text" + title: Type + type: string + text: + description: Reasoning text supplied by the model + title: Text + type: string + required: + - text + title: OpenAIResponseContentPartReasoningText + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + description: "Streaming event for when a content part is completed.\n\n:param content_index: Index position of the part within the content array\n:param response_id: Unique identifier of the response containing this content\n:param item_id: Unique identifier of the output item containing this content part\n:param output_index: Index position of the output item in the response\n:param part: The completed content part\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.content_part.done\"" + properties: + content_index: + description: Index position of the part within the content array + title: Content Index + type: integer + response_id: + description: Unique identifier of the response containing this content + title: Response Id + type: string + item_id: + description: Unique identifier of the output item containing this content part + title: Item Id + type: string + output_index: + description: Index position of the output item in the response + title: Output Index + type: integer + part: + description: The completed content part + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseContentPartOutputText' + reasoning_text: '#/$defs/OpenAIResponseContentPartReasoningText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseContentPartOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + - $ref: '#/components/schemas/OpenAIResponseContentPartReasoningText' + title: Part + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.content_part.done + default: response.content_part.done + description: Event type identifier, always "response.content_part.done" + title: Type + type: string + required: + - content_index + - response_id + - item_id + - output_index + - part + - sequence_number + title: OpenAIResponseObjectStreamResponseContentPartDone + type: object + OpenAIResponseObjectStreamResponseCreated: + $defs: + AllowedToolsFilter: + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" + properties: + tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: + description: List of specific tool names that are allowed + title: Tool Names + title: AllowedToolsFilter + type: object + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseError: + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" + properties: + code: + description: Error code identifying the type of failure + title: Code + type: string + message: + description: Human-readable error message describing the failure + title: Message + type: string + required: + - code + - message + title: OpenAIResponseError + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseInputToolFileSearch: + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" + properties: + type: + const: file_search + default: file_search + description: Tool type identifier, always "file_search" + title: Type + type: string + vector_store_ids: + description: List of vector store identifiers to search within + items: + type: string + title: Vector Store Ids + type: array + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional filters to apply to the search + title: Filters + max_num_results: + anyOf: + - maximum: 50 + minimum: 1 + type: integer + - type: 'null' + default: 10 + description: Maximum number of search results to return (1-50) + title: Max Num Results + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + default: + description: Options for ranking and scoring search results + required: + - vector_store_ids + title: OpenAIResponseInputToolFileSearch + type: object + OpenAIResponseInputToolFunction: + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" + properties: + type: + const: function + default: function + description: Tool type identifier, always "function" + title: Type + type: string + name: + description: Name of the function that can be called + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the function does + title: Description + parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON schema defining the function's parameters + title: Parameters + strict: + anyOf: + - type: boolean + - type: 'null' + default: + description: Whether to enforce strict parameter validation + title: Strict + required: + - name + title: OpenAIResponseInputToolFunction + type: object + OpenAIResponseInputToolWebSearch: + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" + properties: + type: + anyOf: + - const: web_search + type: string + - const: web_search_preview + type: string + - const: web_search_preview_2025_03_11 + type: string + default: web_search + description: Web search tool type variant to use + title: Type + search_context_size: + anyOf: + - pattern: ^low|medium|high$ + type: string + - type: 'null' + default: medium + description: Size of search context, must be "low", "medium", or "high" + title: Search Context Size + title: OpenAIResponseInputToolWebSearch + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseObject: + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + properties: + created_at: + description: Unix timestamp when the response was created + title: Created At + type: integer + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + default: + description: Error details if the response generation failed + id: + description: Unique identifier for this response + title: Id + type: string + model: + description: Model identifier used for generation + title: Model + type: string + object: + const: response + default: response + description: Object type identifier, always "response" + title: Object + type: string + output: + description: List of generated output items (messages, tool calls, etc.) + items: + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Output + type: array + parallel_tool_calls: + default: false + description: Whether tool calls can be executed in parallel + title: Parallel Tool Calls + type: boolean + previous_response_id: + anyOf: + - type: string + - type: 'null' + default: + description: ID of the previous response in a conversation + title: Previous Response Id + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + default: + description: Reference to a prompt template and its variables. + status: + description: Current status of the response generation + title: Status + type: string + temperature: + anyOf: + - type: number + - type: 'null' + default: + description: Sampling temperature used for generation + title: Temperature + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + default: + description: Nucleus sampling parameter used for generation + title: Top P + tools: + anyOf: + - items: + discriminator: + mapping: + file_search: '#/$defs/OpenAIResponseInputToolFileSearch' + function: '#/$defs/OpenAIResponseInputToolFunction' + mcp: '#/$defs/OpenAIResponseToolMCP' + web_search: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + type: array + - type: 'null' + default: + description: An array of tools the model may call while generating a response. + title: Tools + truncation: + anyOf: + - type: string + - type: 'null' + default: + description: Truncation strategy applied to the response + title: Truncation + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + default: + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + default: + description: System message inserted into the model's context + title: Instructions + required: + - created_at + - id + - model + - output + - status + title: OpenAIResponseObject + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + OpenAIResponsePrompt: + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" + properties: + id: + description: Unique identifier of the prompt template + title: Id + type: string + variables: + anyOf: + - additionalProperties: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: object + - type: 'null' + default: + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. + title: Variables + version: + anyOf: + - type: string + - type: 'null' + default: + description: Version number of the prompt to use (defaults to latest if not specified) + title: Version + required: + - id + title: OpenAIResponsePrompt + type: object + OpenAIResponseText: + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" + properties: + format: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + default: + description: Text format configuration specifying output format requirements + title: OpenAIResponseText + type: object + OpenAIResponseTextFormat: + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." + properties: + type: + anyOf: + - const: text + type: string + - const: json_schema + type: string + - const: json_object + type: string + title: Type + name: + anyOf: + - type: string + - type: 'null' + title: Name + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + title: OpenAIResponseTextFormat + type: object + OpenAIResponseToolMCP: + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + properties: + type: + const: mcp + default: mcp + description: Tool type identifier, always "mcp" + title: Type + type: string + server_label: + description: Label to identify this MCP server + title: Server Label + type: string + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + default: + description: Restriction on which tools can be used from this server + title: Allowed Tools + required: + - server_label + title: OpenAIResponseToolMCP + type: object + OpenAIResponseUsage: + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" + properties: + input_tokens: + description: Number of tokens in the input + title: Input Tokens + type: integer + output_tokens: + description: Number of tokens in the output + title: Output Tokens + type: integer + total_tokens: + description: Total tokens used (input + output) + title: Total Tokens + type: integer + input_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of input token usage + output_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of output token usage + required: + - input_tokens + - output_tokens + - total_tokens + title: OpenAIResponseUsage + type: object + OpenAIResponseUsageInputTokensDetails: + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens retrieved from cache + title: Cached Tokens + title: OpenAIResponseUsageInputTokensDetails + type: object + OpenAIResponseUsageOutputTokensDetails: + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens used for reasoning (o1/o3 models) + title: Reasoning Tokens + title: OpenAIResponseUsageOutputTokensDetails + type: object + SearchRankingOptions: + description: Options for ranking and filtering search results. + properties: + ranker: + anyOf: + - type: string + - type: 'null' + default: + title: Ranker + score_threshold: + anyOf: + - type: number + - type: 'null' + default: 0.0 + title: Score Threshold + title: SearchRankingOptions + type: object + description: "Streaming event indicating a new response has been created.\n\n:param response: The response object that was created\n:param type: Event type identifier, always \"response.created\"" + properties: + response: + $ref: '#/components/schemas/OpenAIResponseObject' + description: The response object that was created + type: + const: response.created + default: response.created + description: Event type identifier, always "response.created" + title: Type + type: string + required: + - response + title: OpenAIResponseObjectStreamResponseCreated + type: object + OpenAIResponseObjectStreamResponseFailed: + $defs: + AllowedToolsFilter: + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" + properties: + tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: + description: List of specific tool names that are allowed + title: Tool Names + title: AllowedToolsFilter + type: object + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseError: + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" + properties: + code: + description: Error code identifying the type of failure + title: Code + type: string + message: + description: Human-readable error message describing the failure + title: Message + type: string + required: + - code + - message + title: OpenAIResponseError + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseInputToolFileSearch: + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" + properties: + type: + const: file_search + default: file_search + description: Tool type identifier, always "file_search" + title: Type + type: string + vector_store_ids: + description: List of vector store identifiers to search within + items: + type: string + title: Vector Store Ids + type: array + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional filters to apply to the search + title: Filters + max_num_results: + anyOf: + - maximum: 50 + minimum: 1 + type: integer + - type: 'null' + default: 10 + description: Maximum number of search results to return (1-50) + title: Max Num Results + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + default: + description: Options for ranking and scoring search results + required: + - vector_store_ids + title: OpenAIResponseInputToolFileSearch + type: object + OpenAIResponseInputToolFunction: + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" + properties: + type: + const: function + default: function + description: Tool type identifier, always "function" + title: Type + type: string + name: + description: Name of the function that can be called + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the function does + title: Description + parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON schema defining the function's parameters + title: Parameters + strict: + anyOf: + - type: boolean + - type: 'null' + default: + description: Whether to enforce strict parameter validation + title: Strict + required: + - name + title: OpenAIResponseInputToolFunction + type: object + OpenAIResponseInputToolWebSearch: + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" + properties: + type: + anyOf: + - const: web_search + type: string + - const: web_search_preview + type: string + - const: web_search_preview_2025_03_11 + type: string + default: web_search + description: Web search tool type variant to use + title: Type + search_context_size: + anyOf: + - pattern: ^low|medium|high$ + type: string + - type: 'null' + default: medium + description: Size of search context, must be "low", "medium", or "high" + title: Search Context Size + title: OpenAIResponseInputToolWebSearch + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseObject: + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + properties: + created_at: + description: Unix timestamp when the response was created + title: Created At + type: integer + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + default: + description: Error details if the response generation failed + id: + description: Unique identifier for this response + title: Id + type: string + model: + description: Model identifier used for generation + title: Model + type: string + object: + const: response + default: response + description: Object type identifier, always "response" + title: Object + type: string + output: + description: List of generated output items (messages, tool calls, etc.) + items: + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Output + type: array + parallel_tool_calls: + default: false + description: Whether tool calls can be executed in parallel + title: Parallel Tool Calls + type: boolean + previous_response_id: + anyOf: + - type: string + - type: 'null' + default: + description: ID of the previous response in a conversation + title: Previous Response Id + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + default: + description: Reference to a prompt template and its variables. + status: + description: Current status of the response generation + title: Status + type: string + temperature: + anyOf: + - type: number + - type: 'null' + default: + description: Sampling temperature used for generation + title: Temperature + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + default: + description: Nucleus sampling parameter used for generation + title: Top P + tools: + anyOf: + - items: + discriminator: + mapping: + file_search: '#/$defs/OpenAIResponseInputToolFileSearch' + function: '#/$defs/OpenAIResponseInputToolFunction' + mcp: '#/$defs/OpenAIResponseToolMCP' + web_search: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + type: array + - type: 'null' + default: + description: An array of tools the model may call while generating a response. + title: Tools + truncation: + anyOf: + - type: string + - type: 'null' + default: + description: Truncation strategy applied to the response + title: Truncation + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + default: + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + default: + description: System message inserted into the model's context + title: Instructions + required: + - created_at + - id + - model + - output + - status + title: OpenAIResponseObject + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + OpenAIResponsePrompt: + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" + properties: + id: + description: Unique identifier of the prompt template + title: Id + type: string + variables: + anyOf: + - additionalProperties: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: object + - type: 'null' + default: + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. + title: Variables + version: + anyOf: + - type: string + - type: 'null' + default: + description: Version number of the prompt to use (defaults to latest if not specified) + title: Version + required: + - id + title: OpenAIResponsePrompt + type: object + OpenAIResponseText: + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" + properties: + format: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + default: + description: Text format configuration specifying output format requirements + title: OpenAIResponseText + type: object + OpenAIResponseTextFormat: + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." + properties: + type: + anyOf: + - const: text + type: string + - const: json_schema + type: string + - const: json_object + type: string + title: Type + name: + anyOf: + - type: string + - type: 'null' + title: Name + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + title: OpenAIResponseTextFormat + type: object + OpenAIResponseToolMCP: + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + properties: + type: + const: mcp + default: mcp + description: Tool type identifier, always "mcp" + title: Type + type: string + server_label: + description: Label to identify this MCP server + title: Server Label + type: string + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + default: + description: Restriction on which tools can be used from this server + title: Allowed Tools + required: + - server_label + title: OpenAIResponseToolMCP + type: object + OpenAIResponseUsage: + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" + properties: + input_tokens: + description: Number of tokens in the input + title: Input Tokens + type: integer + output_tokens: + description: Number of tokens in the output + title: Output Tokens + type: integer + total_tokens: + description: Total tokens used (input + output) + title: Total Tokens + type: integer + input_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of input token usage + output_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of output token usage + required: + - input_tokens + - output_tokens + - total_tokens + title: OpenAIResponseUsage + type: object + OpenAIResponseUsageInputTokensDetails: + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens retrieved from cache + title: Cached Tokens + title: OpenAIResponseUsageInputTokensDetails + type: object + OpenAIResponseUsageOutputTokensDetails: + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens used for reasoning (o1/o3 models) + title: Reasoning Tokens + title: OpenAIResponseUsageOutputTokensDetails + type: object + SearchRankingOptions: + description: Options for ranking and filtering search results. + properties: + ranker: + anyOf: + - type: string + - type: 'null' + default: + title: Ranker + score_threshold: + anyOf: + - type: number + - type: 'null' + default: 0.0 + title: Score Threshold + title: SearchRankingOptions + type: object + description: "Streaming event emitted when a response fails.\n\n:param response: Response object describing the failure\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.failed\"" + properties: + response: + $ref: '#/components/schemas/OpenAIResponseObject' + description: Response object describing the failure + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.failed + default: response.failed + description: Event type identifier, always "response.failed" + title: Type + type: string + required: + - response + - sequence_number + title: OpenAIResponseObjectStreamResponseFailed + type: object + OpenAIResponseObjectStreamResponseFileSearchCallCompleted: + description: "Streaming event for completed file search calls.\n\n:param item_id: Unique identifier of the completed file search call\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.file_search_call.completed\"" + properties: + item_id: + description: Unique identifier of the completed file search call + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.file_search_call.completed + default: response.file_search_call.completed + description: Event type identifier, always "response.file_search_call.completed" + title: Type + type: string + required: + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseFileSearchCallCompleted + type: object + OpenAIResponseObjectStreamResponseFileSearchCallInProgress: + description: "Streaming event for file search calls in progress.\n\n:param item_id: Unique identifier of the file search call\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.file_search_call.in_progress\"" + properties: + item_id: + description: Unique identifier of the file search call + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.file_search_call.in_progress + default: response.file_search_call.in_progress + description: Event type identifier, always "response.file_search_call.in_progress" + title: Type + type: string + required: + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseFileSearchCallInProgress + type: object + OpenAIResponseObjectStreamResponseFileSearchCallSearching: + description: "Streaming event for file search currently searching.\n\n:param item_id: Unique identifier of the file search call\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.file_search_call.searching\"" + properties: + item_id: + description: Unique identifier of the file search call + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.file_search_call.searching + default: response.file_search_call.searching + description: Event type identifier, always "response.file_search_call.searching" + title: Type + type: string + required: + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseFileSearchCallSearching + type: object + OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta: + description: "Streaming event for incremental function call argument updates.\n\n:param delta: Incremental function call arguments being added\n:param item_id: Unique identifier of the function call being updated\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.function_call_arguments.delta\"" + properties: + delta: + description: Incremental function call arguments being added + title: Delta + type: string + item_id: + description: Unique identifier of the function call being updated + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.function_call_arguments.delta + default: response.function_call_arguments.delta + description: Event type identifier, always "response.function_call_arguments.delta" + title: Type + type: string + required: + - delta + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta + type: object + OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone: + description: "Streaming event for when function call arguments are completed.\n\n:param arguments: Final complete arguments JSON string for the function call\n:param item_id: Unique identifier of the completed function call\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.function_call_arguments.done\"" + properties: + arguments: + description: Final complete arguments JSON string for the function call + title: Arguments + type: string + item_id: + description: Unique identifier of the completed function call + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.function_call_arguments.done + default: response.function_call_arguments.done + description: Event type identifier, always "response.function_call_arguments.done" + title: Type + type: string + required: + - arguments + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone + type: object + OpenAIResponseObjectStreamResponseInProgress: + $defs: + AllowedToolsFilter: + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" + properties: + tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: + description: List of specific tool names that are allowed + title: Tool Names + title: AllowedToolsFilter + type: object + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseError: + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" + properties: + code: + description: Error code identifying the type of failure + title: Code + type: string + message: + description: Human-readable error message describing the failure + title: Message + type: string + required: + - code + - message + title: OpenAIResponseError + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseInputToolFileSearch: + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" + properties: + type: + const: file_search + default: file_search + description: Tool type identifier, always "file_search" + title: Type + type: string + vector_store_ids: + description: List of vector store identifiers to search within + items: + type: string + title: Vector Store Ids + type: array + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional filters to apply to the search + title: Filters + max_num_results: + anyOf: + - maximum: 50 + minimum: 1 + type: integer + - type: 'null' + default: 10 + description: Maximum number of search results to return (1-50) + title: Max Num Results + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + default: + description: Options for ranking and scoring search results + required: + - vector_store_ids + title: OpenAIResponseInputToolFileSearch + type: object + OpenAIResponseInputToolFunction: + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" + properties: + type: + const: function + default: function + description: Tool type identifier, always "function" + title: Type + type: string + name: + description: Name of the function that can be called + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the function does + title: Description + parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON schema defining the function's parameters + title: Parameters + strict: + anyOf: + - type: boolean + - type: 'null' + default: + description: Whether to enforce strict parameter validation + title: Strict + required: + - name + title: OpenAIResponseInputToolFunction + type: object + OpenAIResponseInputToolWebSearch: + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" + properties: + type: + anyOf: + - const: web_search + type: string + - const: web_search_preview + type: string + - const: web_search_preview_2025_03_11 + type: string + default: web_search + description: Web search tool type variant to use + title: Type + search_context_size: + anyOf: + - pattern: ^low|medium|high$ + type: string + - type: 'null' + default: medium + description: Size of search context, must be "low", "medium", or "high" + title: Search Context Size + title: OpenAIResponseInputToolWebSearch + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseObject: + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + properties: + created_at: + description: Unix timestamp when the response was created + title: Created At + type: integer + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + default: + description: Error details if the response generation failed + id: + description: Unique identifier for this response + title: Id + type: string + model: + description: Model identifier used for generation + title: Model + type: string + object: + const: response + default: response + description: Object type identifier, always "response" + title: Object + type: string + output: + description: List of generated output items (messages, tool calls, etc.) + items: + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Output + type: array + parallel_tool_calls: + default: false + description: Whether tool calls can be executed in parallel + title: Parallel Tool Calls + type: boolean + previous_response_id: + anyOf: + - type: string + - type: 'null' + default: + description: ID of the previous response in a conversation + title: Previous Response Id + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + default: + description: Reference to a prompt template and its variables. + status: + description: Current status of the response generation + title: Status + type: string + temperature: + anyOf: + - type: number + - type: 'null' + default: + description: Sampling temperature used for generation + title: Temperature + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + default: + description: Nucleus sampling parameter used for generation + title: Top P + tools: + anyOf: + - items: + discriminator: + mapping: + file_search: '#/$defs/OpenAIResponseInputToolFileSearch' + function: '#/$defs/OpenAIResponseInputToolFunction' + mcp: '#/$defs/OpenAIResponseToolMCP' + web_search: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + type: array + - type: 'null' + default: + description: An array of tools the model may call while generating a response. + title: Tools + truncation: + anyOf: + - type: string + - type: 'null' + default: + description: Truncation strategy applied to the response + title: Truncation + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + default: + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + default: + description: System message inserted into the model's context + title: Instructions + required: + - created_at + - id + - model + - output + - status + title: OpenAIResponseObject + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + OpenAIResponsePrompt: + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" + properties: + id: + description: Unique identifier of the prompt template + title: Id + type: string + variables: + anyOf: + - additionalProperties: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: object + - type: 'null' + default: + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. + title: Variables + version: + anyOf: + - type: string + - type: 'null' + default: + description: Version number of the prompt to use (defaults to latest if not specified) + title: Version + required: + - id + title: OpenAIResponsePrompt + type: object + OpenAIResponseText: + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" + properties: + format: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + default: + description: Text format configuration specifying output format requirements + title: OpenAIResponseText + type: object + OpenAIResponseTextFormat: + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." + properties: + type: + anyOf: + - const: text + type: string + - const: json_schema + type: string + - const: json_object + type: string + title: Type + name: + anyOf: + - type: string + - type: 'null' + title: Name + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + title: OpenAIResponseTextFormat + type: object + OpenAIResponseToolMCP: + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + properties: + type: + const: mcp + default: mcp + description: Tool type identifier, always "mcp" + title: Type + type: string + server_label: + description: Label to identify this MCP server + title: Server Label + type: string + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + default: + description: Restriction on which tools can be used from this server + title: Allowed Tools + required: + - server_label + title: OpenAIResponseToolMCP + type: object + OpenAIResponseUsage: + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" + properties: + input_tokens: + description: Number of tokens in the input + title: Input Tokens + type: integer + output_tokens: + description: Number of tokens in the output + title: Output Tokens + type: integer + total_tokens: + description: Total tokens used (input + output) + title: Total Tokens + type: integer + input_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of input token usage + output_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of output token usage + required: + - input_tokens + - output_tokens + - total_tokens + title: OpenAIResponseUsage + type: object + OpenAIResponseUsageInputTokensDetails: + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens retrieved from cache + title: Cached Tokens + title: OpenAIResponseUsageInputTokensDetails + type: object + OpenAIResponseUsageOutputTokensDetails: + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens used for reasoning (o1/o3 models) + title: Reasoning Tokens + title: OpenAIResponseUsageOutputTokensDetails + type: object + SearchRankingOptions: + description: Options for ranking and filtering search results. + properties: + ranker: + anyOf: + - type: string + - type: 'null' + default: + title: Ranker + score_threshold: + anyOf: + - type: number + - type: 'null' + default: 0.0 + title: Score Threshold + title: SearchRankingOptions + type: object + description: "Streaming event indicating the response remains in progress.\n\n:param response: Current response state while in progress\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.in_progress\"" + properties: + response: + $ref: '#/components/schemas/OpenAIResponseObject' + description: Current response state while in progress + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.in_progress + default: response.in_progress + description: Event type identifier, always "response.in_progress" + title: Type + type: string + required: + - response + - sequence_number + title: OpenAIResponseObjectStreamResponseInProgress + type: object + OpenAIResponseObjectStreamResponseIncomplete: + $defs: + AllowedToolsFilter: + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" + properties: + tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: + description: List of specific tool names that are allowed + title: Tool Names + title: AllowedToolsFilter + type: object + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseError: + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" + properties: + code: + description: Error code identifying the type of failure + title: Code + type: string + message: + description: Human-readable error message describing the failure + title: Message + type: string + required: + - code + - message + title: OpenAIResponseError + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseInputToolFileSearch: + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" + properties: + type: + const: file_search + default: file_search + description: Tool type identifier, always "file_search" + title: Type + type: string + vector_store_ids: + description: List of vector store identifiers to search within + items: + type: string + title: Vector Store Ids + type: array + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional filters to apply to the search + title: Filters + max_num_results: + anyOf: + - maximum: 50 + minimum: 1 + type: integer + - type: 'null' + default: 10 + description: Maximum number of search results to return (1-50) + title: Max Num Results + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + default: + description: Options for ranking and scoring search results + required: + - vector_store_ids + title: OpenAIResponseInputToolFileSearch + type: object + OpenAIResponseInputToolFunction: + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" + properties: + type: + const: function + default: function + description: Tool type identifier, always "function" + title: Type + type: string + name: + description: Name of the function that can be called + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the function does + title: Description + parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON schema defining the function's parameters + title: Parameters + strict: + anyOf: + - type: boolean + - type: 'null' + default: + description: Whether to enforce strict parameter validation + title: Strict + required: + - name + title: OpenAIResponseInputToolFunction + type: object + OpenAIResponseInputToolWebSearch: + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" + properties: + type: + anyOf: + - const: web_search + type: string + - const: web_search_preview + type: string + - const: web_search_preview_2025_03_11 + type: string + default: web_search + description: Web search tool type variant to use + title: Type + search_context_size: + anyOf: + - pattern: ^low|medium|high$ + type: string + - type: 'null' + default: medium + description: Size of search context, must be "low", "medium", or "high" + title: Search Context Size + title: OpenAIResponseInputToolWebSearch + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseObject: + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + properties: + created_at: + description: Unix timestamp when the response was created + title: Created At + type: integer + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + default: + description: Error details if the response generation failed + id: + description: Unique identifier for this response + title: Id + type: string + model: + description: Model identifier used for generation + title: Model + type: string + object: + const: response + default: response + description: Object type identifier, always "response" + title: Object + type: string + output: + description: List of generated output items (messages, tool calls, etc.) + items: + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Output + type: array + parallel_tool_calls: + default: false + description: Whether tool calls can be executed in parallel + title: Parallel Tool Calls + type: boolean + previous_response_id: + anyOf: + - type: string + - type: 'null' + default: + description: ID of the previous response in a conversation + title: Previous Response Id + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + default: + description: Reference to a prompt template and its variables. + status: + description: Current status of the response generation + title: Status + type: string + temperature: + anyOf: + - type: number + - type: 'null' + default: + description: Sampling temperature used for generation + title: Temperature + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + default: + description: Nucleus sampling parameter used for generation + title: Top P + tools: + anyOf: + - items: + discriminator: + mapping: + file_search: '#/$defs/OpenAIResponseInputToolFileSearch' + function: '#/$defs/OpenAIResponseInputToolFunction' + mcp: '#/$defs/OpenAIResponseToolMCP' + web_search: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + type: array + - type: 'null' + default: + description: An array of tools the model may call while generating a response. + title: Tools + truncation: + anyOf: + - type: string + - type: 'null' + default: + description: Truncation strategy applied to the response + title: Truncation + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + default: + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + default: + description: System message inserted into the model's context + title: Instructions + required: + - created_at + - id + - model + - output + - status + title: OpenAIResponseObject + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + OpenAIResponsePrompt: + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" + properties: + id: + description: Unique identifier of the prompt template + title: Id + type: string + variables: + anyOf: + - additionalProperties: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: object + - type: 'null' + default: + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. + title: Variables + version: + anyOf: + - type: string + - type: 'null' + default: + description: Version number of the prompt to use (defaults to latest if not specified) + title: Version + required: + - id + title: OpenAIResponsePrompt + type: object + OpenAIResponseText: + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" + properties: + format: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + default: + description: Text format configuration specifying output format requirements + title: OpenAIResponseText + type: object + OpenAIResponseTextFormat: + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." + properties: + type: + anyOf: + - const: text + type: string + - const: json_schema + type: string + - const: json_object + type: string + title: Type + name: + anyOf: + - type: string + - type: 'null' + title: Name + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + title: OpenAIResponseTextFormat + type: object + OpenAIResponseToolMCP: + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + properties: + type: + const: mcp + default: mcp + description: Tool type identifier, always "mcp" + title: Type + type: string + server_label: + description: Label to identify this MCP server + title: Server Label + type: string + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + default: + description: Restriction on which tools can be used from this server + title: Allowed Tools + required: + - server_label + title: OpenAIResponseToolMCP + type: object + OpenAIResponseUsage: + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" + properties: + input_tokens: + description: Number of tokens in the input + title: Input Tokens + type: integer + output_tokens: + description: Number of tokens in the output + title: Output Tokens + type: integer + total_tokens: + description: Total tokens used (input + output) + title: Total Tokens + type: integer + input_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of input token usage + output_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of output token usage + required: + - input_tokens + - output_tokens + - total_tokens + title: OpenAIResponseUsage + type: object + OpenAIResponseUsageInputTokensDetails: + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens retrieved from cache + title: Cached Tokens + title: OpenAIResponseUsageInputTokensDetails + type: object + OpenAIResponseUsageOutputTokensDetails: + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens used for reasoning (o1/o3 models) + title: Reasoning Tokens + title: OpenAIResponseUsageOutputTokensDetails + type: object + SearchRankingOptions: + description: Options for ranking and filtering search results. + properties: + ranker: + anyOf: + - type: string + - type: 'null' + default: + title: Ranker + score_threshold: + anyOf: + - type: number + - type: 'null' + default: 0.0 + title: Score Threshold + title: SearchRankingOptions + type: object + description: "Streaming event emitted when a response ends in an incomplete state.\n\n:param response: Response object describing the incomplete state\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.incomplete\"" + properties: + response: + $ref: '#/components/schemas/OpenAIResponseObject' + description: Response object describing the incomplete state + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.incomplete + default: response.incomplete + description: Event type identifier, always "response.incomplete" + title: Type + type: string + required: + - response + - sequence_number + title: OpenAIResponseObjectStreamResponseIncomplete + type: object + OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta: + properties: + delta: + title: Delta + type: string + item_id: + title: Item Id + type: string + output_index: + title: Output Index + type: integer + sequence_number: + title: Sequence Number + type: integer + type: + const: response.mcp_call.arguments.delta + default: response.mcp_call.arguments.delta + title: Type + type: string + required: + - delta + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta + type: object + OpenAIResponseObjectStreamResponseMcpCallArgumentsDone: + properties: + arguments: + title: Arguments + type: string + item_id: + title: Item Id + type: string + output_index: + title: Output Index + type: integer + sequence_number: + title: Sequence Number + type: integer + type: + const: response.mcp_call.arguments.done + default: response.mcp_call.arguments.done + title: Type + type: string + required: + - arguments + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpCallArgumentsDone + type: object + OpenAIResponseObjectStreamResponseMcpCallCompleted: + description: "Streaming event for completed MCP calls.\n\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.mcp_call.completed\"" + properties: + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.mcp_call.completed + default: response.mcp_call.completed + description: Event type identifier, always "response.mcp_call.completed" + title: Type + type: string + required: + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpCallCompleted + type: object + OpenAIResponseObjectStreamResponseMcpCallFailed: + description: "Streaming event for failed MCP calls.\n\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.mcp_call.failed\"" + properties: + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.mcp_call.failed + default: response.mcp_call.failed + description: Event type identifier, always "response.mcp_call.failed" + title: Type + type: string + required: + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpCallFailed + type: object + OpenAIResponseObjectStreamResponseMcpCallInProgress: + description: "Streaming event for MCP calls in progress.\n\n:param item_id: Unique identifier of the MCP call\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.mcp_call.in_progress\"" + properties: + item_id: + description: Unique identifier of the MCP call + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.mcp_call.in_progress + default: response.mcp_call.in_progress + description: Event type identifier, always "response.mcp_call.in_progress" + title: Type + type: string + required: + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpCallInProgress + type: object + OpenAIResponseObjectStreamResponseMcpListToolsCompleted: + properties: + sequence_number: + title: Sequence Number + type: integer + type: + const: response.mcp_list_tools.completed + default: response.mcp_list_tools.completed + title: Type + type: string + required: + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpListToolsCompleted + type: object + OpenAIResponseObjectStreamResponseMcpListToolsFailed: + properties: + sequence_number: + title: Sequence Number + type: integer + type: + const: response.mcp_list_tools.failed + default: response.mcp_list_tools.failed + title: Type + type: string + required: + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpListToolsFailed + type: object + OpenAIResponseObjectStreamResponseMcpListToolsInProgress: + properties: + sequence_number: + title: Sequence Number + type: integer + type: + const: response.mcp_list_tools.in_progress + default: response.mcp_list_tools.in_progress + title: Type + type: string + required: + - sequence_number + title: OpenAIResponseObjectStreamResponseMcpListToolsInProgress + type: object + OpenAIResponseObjectStreamResponseOutputItemAdded: + $defs: + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + description: "Streaming event for when a new output item is added to the response.\n\n:param response_id: Unique identifier of the response containing this output\n:param item: The output item that was added (message, tool call, etc.)\n:param output_index: Index position of this item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.output_item.added\"" + properties: + response_id: + description: Unique identifier of the response containing this output + title: Response Id + type: string + item: + description: The output item that was added (message, tool call, etc.) + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Item + output_index: + description: Index position of this item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.output_item.added + default: response.output_item.added + description: Event type identifier, always "response.output_item.added" + title: Type + type: string + required: + - response_id + - item + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseOutputItemAdded + type: object + OpenAIResponseObjectStreamResponseOutputItemDone: + $defs: + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + description: "Streaming event for when an output item is completed.\n\n:param response_id: Unique identifier of the response containing this output\n:param item: The completed output item (message, tool call, etc.)\n:param output_index: Index position of this item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.output_item.done\"" + properties: + response_id: + description: Unique identifier of the response containing this output + title: Response Id + type: string + item: + description: The completed output item (message, tool call, etc.) + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Item + output_index: + description: Index position of this item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.output_item.done + default: response.output_item.done + description: Event type identifier, always "response.output_item.done" + title: Type + type: string + required: + - response_id + - item + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseOutputItemDone + type: object + OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded: + $defs: + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + description: "Streaming event for when an annotation is added to output text.\n\n:param item_id: Unique identifier of the item to which the annotation is being added\n:param output_index: Index position of the output item in the response's output array\n:param content_index: Index position of the content part within the output item\n:param annotation_index: Index of the annotation within the content part\n:param annotation: The annotation object being added\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.output_text.annotation.added\"" + properties: + item_id: + description: Unique identifier of the item to which the annotation is being added + title: Item Id + type: string + output_index: + description: Index position of the output item in the response's output array + title: Output Index + type: integer + content_index: + description: Index position of the content part within the output item + title: Content Index + type: integer + annotation_index: + description: Index of the annotation within the content part + title: Annotation Index + type: integer + annotation: + description: The annotation object being added + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotation + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.output_text.annotation.added + default: response.output_text.annotation.added + description: Event type identifier, always "response.output_text.annotation.added" + title: Type + type: string + required: + - item_id + - output_index + - content_index + - annotation_index + - annotation + - sequence_number + title: OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded + type: object + OpenAIResponseObjectStreamResponseOutputTextDelta: + description: "Streaming event for incremental text content updates.\n\n:param content_index: Index position within the text content\n:param delta: Incremental text content being added\n:param item_id: Unique identifier of the output item being updated\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.output_text.delta\"" + properties: + content_index: + description: Index position within the text content + title: Content Index + type: integer + delta: + description: Incremental text content being added + title: Delta + type: string + item_id: + description: Unique identifier of the output item being updated + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.output_text.delta + default: response.output_text.delta + description: Event type identifier, always "response.output_text.delta" + title: Type + type: string + required: + - content_index + - delta + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseOutputTextDelta + type: object + OpenAIResponseObjectStreamResponseOutputTextDone: + description: "Streaming event for when text output is completed.\n\n:param content_index: Index position within the text content\n:param text: Final complete text content of the output item\n:param item_id: Unique identifier of the completed output item\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.output_text.done\"" + properties: + content_index: + description: Index position within the text content + title: Content Index + type: integer + text: + description: Final complete text content of the output item + title: Text + type: string + item_id: + description: Unique identifier of the completed output item + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.output_text.done + default: response.output_text.done + description: Event type identifier, always "response.output_text.done" + title: Type + type: string + required: + - content_index + - text + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseOutputTextDone + type: object + OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded: + $defs: + OpenAIResponseContentPartReasoningSummary: + description: "Reasoning summary part in a streamed response.\n\n:param type: Content part type identifier, always \"summary_text\"\n:param text: Summary text" + properties: + type: + const: summary_text + default: summary_text + description: Content part type identifier, always "summary_text" + title: Type + type: string + text: + description: Summary text + title: Text + type: string + required: + - text + title: OpenAIResponseContentPartReasoningSummary + type: object + description: "Streaming event for when a new reasoning summary part is added.\n\n:param item_id: Unique identifier of the output item\n:param output_index: Index position of the output item\n:param part: The summary part that was added\n:param sequence_number: Sequential number for ordering streaming events\n:param summary_index: Index of the summary part within the reasoning summary\n:param type: Event type identifier, always \"response.reasoning_summary_part.added\"" + properties: + item_id: + description: Unique identifier of the output item + title: Item Id + type: string + output_index: + description: Index position of the output item + title: Output Index + type: integer + part: + $ref: '#/components/schemas/OpenAIResponseContentPartReasoningSummary' + description: The summary part that was added + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + summary_index: + description: Index of the summary part within the reasoning summary + title: Summary Index + type: integer + type: + const: response.reasoning_summary_part.added + default: response.reasoning_summary_part.added + description: Event type identifier, always "response.reasoning_summary_part.added" + title: Type + type: string + required: + - item_id + - output_index + - part + - sequence_number + - summary_index + title: OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded + type: object + OpenAIResponseObjectStreamResponseReasoningSummaryPartDone: + $defs: + OpenAIResponseContentPartReasoningSummary: + description: "Reasoning summary part in a streamed response.\n\n:param type: Content part type identifier, always \"summary_text\"\n:param text: Summary text" + properties: + type: + const: summary_text + default: summary_text + description: Content part type identifier, always "summary_text" + title: Type + type: string + text: + description: Summary text + title: Text + type: string + required: + - text + title: OpenAIResponseContentPartReasoningSummary + type: object + description: "Streaming event for when a reasoning summary part is completed.\n\n:param item_id: Unique identifier of the output item\n:param output_index: Index position of the output item\n:param part: The completed summary part\n:param sequence_number: Sequential number for ordering streaming events\n:param summary_index: Index of the summary part within the reasoning summary\n:param type: Event type identifier, always \"response.reasoning_summary_part.done\"" + properties: + item_id: + description: Unique identifier of the output item + title: Item Id + type: string + output_index: + description: Index position of the output item + title: Output Index + type: integer + part: + $ref: '#/components/schemas/OpenAIResponseContentPartReasoningSummary' + description: The completed summary part + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + summary_index: + description: Index of the summary part within the reasoning summary + title: Summary Index + type: integer + type: + const: response.reasoning_summary_part.done + default: response.reasoning_summary_part.done + description: Event type identifier, always "response.reasoning_summary_part.done" + title: Type + type: string + required: + - item_id + - output_index + - part + - sequence_number + - summary_index + title: OpenAIResponseObjectStreamResponseReasoningSummaryPartDone + type: object + OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta: + description: "Streaming event for incremental reasoning summary text updates.\n\n:param delta: Incremental summary text being added\n:param item_id: Unique identifier of the output item\n:param output_index: Index position of the output item\n:param sequence_number: Sequential number for ordering streaming events\n:param summary_index: Index of the summary part within the reasoning summary\n:param type: Event type identifier, always \"response.reasoning_summary_text.delta\"" + properties: + delta: + description: Incremental summary text being added + title: Delta + type: string + item_id: + description: Unique identifier of the output item + title: Item Id + type: string + output_index: + description: Index position of the output item + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + summary_index: + description: Index of the summary part within the reasoning summary + title: Summary Index + type: integer + type: + const: response.reasoning_summary_text.delta + default: response.reasoning_summary_text.delta + description: Event type identifier, always "response.reasoning_summary_text.delta" + title: Type + type: string + required: + - delta + - item_id + - output_index + - sequence_number + - summary_index + title: OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta + type: object + OpenAIResponseObjectStreamResponseReasoningSummaryTextDone: + description: "Streaming event for when reasoning summary text is completed.\n\n:param text: Final complete summary text\n:param item_id: Unique identifier of the output item\n:param output_index: Index position of the output item\n:param sequence_number: Sequential number for ordering streaming events\n:param summary_index: Index of the summary part within the reasoning summary\n:param type: Event type identifier, always \"response.reasoning_summary_text.done\"" + properties: + text: + description: Final complete summary text + title: Text + type: string + item_id: + description: Unique identifier of the output item + title: Item Id + type: string + output_index: + description: Index position of the output item + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + summary_index: + description: Index of the summary part within the reasoning summary + title: Summary Index + type: integer + type: + const: response.reasoning_summary_text.done + default: response.reasoning_summary_text.done + description: Event type identifier, always "response.reasoning_summary_text.done" + title: Type + type: string + required: + - text + - item_id + - output_index + - sequence_number + - summary_index + title: OpenAIResponseObjectStreamResponseReasoningSummaryTextDone + type: object + OpenAIResponseObjectStreamResponseReasoningTextDelta: + description: "Streaming event for incremental reasoning text updates.\n\n:param content_index: Index position of the reasoning content part\n:param delta: Incremental reasoning text being added\n:param item_id: Unique identifier of the output item being updated\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.reasoning_text.delta\"" + properties: + content_index: + description: Index position of the reasoning content part + title: Content Index + type: integer + delta: + description: Incremental reasoning text being added + title: Delta + type: string + item_id: + description: Unique identifier of the output item being updated + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.reasoning_text.delta + default: response.reasoning_text.delta + description: Event type identifier, always "response.reasoning_text.delta" + title: Type + type: string + required: + - content_index + - delta + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseReasoningTextDelta + type: object + OpenAIResponseObjectStreamResponseReasoningTextDone: + description: "Streaming event for when reasoning text is completed.\n\n:param content_index: Index position of the reasoning content part\n:param text: Final complete reasoning text\n:param item_id: Unique identifier of the completed output item\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.reasoning_text.done\"" + properties: + content_index: + description: Index position of the reasoning content part + title: Content Index + type: integer + text: + description: Final complete reasoning text + title: Text + type: string + item_id: + description: Unique identifier of the completed output item + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.reasoning_text.done + default: response.reasoning_text.done + description: Event type identifier, always "response.reasoning_text.done" + title: Type + type: string + required: + - content_index + - text + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseReasoningTextDone + type: object + OpenAIResponseObjectStreamResponseRefusalDelta: + description: "Streaming event for incremental refusal text updates.\n\n:param content_index: Index position of the content part\n:param delta: Incremental refusal text being added\n:param item_id: Unique identifier of the output item\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.refusal.delta\"" + properties: + content_index: + description: Index position of the content part + title: Content Index + type: integer + delta: + description: Incremental refusal text being added + title: Delta + type: string + item_id: + description: Unique identifier of the output item + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.refusal.delta + default: response.refusal.delta + description: Event type identifier, always "response.refusal.delta" + title: Type + type: string + required: + - content_index + - delta + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseRefusalDelta + type: object + OpenAIResponseObjectStreamResponseRefusalDone: + description: "Streaming event for when refusal text is completed.\n\n:param content_index: Index position of the content part\n:param refusal: Final complete refusal text\n:param item_id: Unique identifier of the output item\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.refusal.done\"" + properties: + content_index: + description: Index position of the content part + title: Content Index + type: integer + refusal: + description: Final complete refusal text + title: Refusal + type: string + item_id: + description: Unique identifier of the output item + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.refusal.done + default: response.refusal.done + description: Event type identifier, always "response.refusal.done" + title: Type + type: string + required: + - content_index + - refusal + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseRefusalDone + type: object + OpenAIResponseObjectStreamResponseWebSearchCallCompleted: + description: "Streaming event for completed web search calls.\n\n:param item_id: Unique identifier of the completed web search call\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.web_search_call.completed\"" + properties: + item_id: + description: Unique identifier of the completed web search call + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.web_search_call.completed + default: response.web_search_call.completed + description: Event type identifier, always "response.web_search_call.completed" + title: Type + type: string + required: + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseWebSearchCallCompleted + type: object + OpenAIResponseObjectStreamResponseWebSearchCallInProgress: + description: "Streaming event for web search calls in progress.\n\n:param item_id: Unique identifier of the web search call\n:param output_index: Index position of the item in the output list\n:param sequence_number: Sequential number for ordering streaming events\n:param type: Event type identifier, always \"response.web_search_call.in_progress\"" + properties: + item_id: + description: Unique identifier of the web search call + title: Item Id + type: string + output_index: + description: Index position of the item in the output list + title: Output Index + type: integer + sequence_number: + description: Sequential number for ordering streaming events + title: Sequence Number + type: integer + type: + const: response.web_search_call.in_progress + default: response.web_search_call.in_progress + description: Event type identifier, always "response.web_search_call.in_progress" + title: Type + type: string + required: + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseWebSearchCallInProgress + type: object + OpenAIResponseObjectStreamResponseWebSearchCallSearching: + properties: + item_id: + title: Item Id + type: string + output_index: + title: Output Index + type: integer + sequence_number: + title: Sequence Number + type: integer + type: + const: response.web_search_call.searching + default: response.web_search_call.searching + title: Type + type: string + required: + - item_id + - output_index + - sequence_number + title: OpenAIResponseObjectStreamResponseWebSearchCallSearching + type: object + OpenAIResponseObjectWithInput: + $defs: + AllowedToolsFilter: + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" + properties: + tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: + description: List of specific tool names that are allowed + title: Tool Names + title: AllowedToolsFilter + type: object + MCPListToolsTool: + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" + properties: + input_schema: + additionalProperties: true + description: JSON schema defining the tool's input parameters + title: Input Schema + type: object + name: + description: Name of the tool + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the tool does + title: Description + required: + - input_schema + - name + title: MCPListToolsTool + type: object + OpenAIResponseAnnotationCitation: + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" + properties: + type: + const: url_citation + default: url_citation + description: Annotation type identifier, always "url_citation" + title: Type + type: string + end_index: + description: End position of the citation span in the content + title: End Index + type: integer + start_index: + description: Start position of the citation span in the content + title: Start Index + type: integer + title: + description: Title of the referenced web resource + title: Title + type: string + url: + description: URL of the referenced web resource + title: Url + type: string + required: + - end_index + - start_index + - title + - url + title: OpenAIResponseAnnotationCitation + type: object + OpenAIResponseAnnotationContainerFileCitation: + properties: + type: + const: container_file_citation + default: container_file_citation + title: Type + type: string + container_id: + title: Container Id + type: string + end_index: + title: End Index + type: integer + file_id: + title: File Id + type: string + filename: + title: Filename + type: string + start_index: + title: Start Index + type: integer + required: + - container_id + - end_index + - file_id + - filename + - start_index + title: OpenAIResponseAnnotationContainerFileCitation + type: object + OpenAIResponseAnnotationFileCitation: + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" + properties: + type: + const: file_citation + default: file_citation + description: Annotation type identifier, always "file_citation" + title: Type + type: string + file_id: + description: Unique identifier of the referenced file + title: File Id + type: string + filename: + description: Name of the referenced file + title: Filename + type: string + index: + description: Position index of the citation within the content + title: Index + type: integer + required: + - file_id + - filename + - index + title: OpenAIResponseAnnotationFileCitation + type: object + OpenAIResponseAnnotationFilePath: + properties: + type: + const: file_path + default: file_path + title: Type + type: string + file_id: + title: File Id + type: string + index: + title: Index + type: integer + required: + - file_id + - index + title: OpenAIResponseAnnotationFilePath + type: object + OpenAIResponseContentPartRefusal: + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" + properties: + type: + const: refusal + default: refusal + description: Content part type identifier, always "refusal" + title: Type + type: string + refusal: + description: Refusal text supplied by the model + title: Refusal + type: string + required: + - refusal + title: OpenAIResponseContentPartRefusal + type: object + OpenAIResponseError: + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" + properties: + code: + description: Error code identifying the type of failure + title: Code + type: string + message: + description: Human-readable error message describing the failure + title: Message + type: string + required: + - code + - message + title: OpenAIResponseError + type: object + OpenAIResponseInputFunctionToolCallOutput: + description: This represents the output of a function call that gets passed back to the model. + properties: + call_id: + title: Call Id + type: string + output: + title: Output + type: string + type: + const: function_call_output + default: function_call_output + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - call_id + - output + title: OpenAIResponseInputFunctionToolCallOutput + type: object + OpenAIResponseInputMessageContentFile: + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." + properties: + type: + const: input_file + default: input_file + description: The type of the input item. Always `input_file`. + title: Type + type: string + file_data: + anyOf: + - type: string + - type: 'null' + default: + description: The data of the file to be sent to the model. + title: File Data + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + file_url: + anyOf: + - type: string + - type: 'null' + default: + description: The URL of the file to be sent to the model. + title: File Url + filename: + anyOf: + - type: string + - type: 'null' + default: + description: The name of the file to be sent to the model. + title: Filename + title: OpenAIResponseInputMessageContentFile + type: object + OpenAIResponseInputMessageContentImage: + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" + properties: + detail: + anyOf: + - const: low + type: string + - const: high + type: string + - const: auto + type: string + default: auto + description: Level of detail for image processing, can be "low", "high", or "auto" + title: Detail + type: + const: input_image + default: input_image + description: Content type identifier, always "input_image" + title: Type + type: string + file_id: + anyOf: + - type: string + - type: 'null' + default: + description: The ID of the file to be sent to the model. + title: File Id + image_url: + anyOf: + - type: string + - type: 'null' + default: + description: URL of the image content + title: Image Url + title: OpenAIResponseInputMessageContentImage + type: object + OpenAIResponseInputMessageContentText: + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" + properties: + text: + description: The text content of the input message + title: Text + type: string + type: + const: input_text + default: input_text + description: Content type identifier, always "input_text" + title: Type + type: string + required: + - text + title: OpenAIResponseInputMessageContentText + type: object + OpenAIResponseInputToolFileSearch: + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" + properties: + type: + const: file_search + default: file_search + description: Tool type identifier, always "file_search" + title: Type + type: string + vector_store_ids: + description: List of vector store identifiers to search within + items: + type: string + title: Vector Store Ids + type: array + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: Additional filters to apply to the search + title: Filters + max_num_results: + anyOf: + - maximum: 50 + minimum: 1 + type: integer + - type: 'null' + default: 10 + description: Maximum number of search results to return (1-50) + title: Max Num Results + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + default: + description: Options for ranking and scoring search results + required: + - vector_store_ids + title: OpenAIResponseInputToolFileSearch + type: object + OpenAIResponseInputToolFunction: + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" + properties: + type: + const: function + default: function + description: Tool type identifier, always "function" + title: Type + type: string + name: + description: Name of the function that can be called + title: Name + type: string + description: + anyOf: + - type: string + - type: 'null' + default: + description: Description of what the function does + title: Description + parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: + description: JSON schema defining the function's parameters + title: Parameters + strict: + anyOf: + - type: boolean + - type: 'null' + default: + description: Whether to enforce strict parameter validation + title: Strict + required: + - name + title: OpenAIResponseInputToolFunction + type: object + OpenAIResponseInputToolWebSearch: + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" + properties: + type: + anyOf: + - const: web_search + type: string + - const: web_search_preview + type: string + - const: web_search_preview_2025_03_11 + type: string + default: web_search + description: Web search tool type variant to use + title: Type + search_context_size: + anyOf: + - pattern: ^low|medium|high$ + type: string + - type: 'null' + default: medium + description: Size of search context, must be "low", "medium", or "high" + title: Search Context Size + title: OpenAIResponseInputToolWebSearch + type: object + OpenAIResponseMCPApprovalRequest: + description: A request for human approval of a tool invocation. + properties: + arguments: + title: Arguments + type: string + id: + title: Id + type: string + name: + title: Name + type: string + server_label: + title: Server Label + type: string + type: + const: mcp_approval_request + default: mcp_approval_request + title: Type + type: string + required: + - arguments + - id + - name + - server_label + title: OpenAIResponseMCPApprovalRequest + type: object + OpenAIResponseMCPApprovalResponse: + description: A response to an MCP approval request. + properties: + approval_request_id: + title: Approval Request Id + type: string + approve: + title: Approve + type: boolean + type: + const: mcp_approval_response + default: mcp_approval_response + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + reason: + anyOf: + - type: string + - type: 'null' + default: + title: Reason + required: + - approval_request_id + - approve + title: OpenAIResponseMCPApprovalResponse + type: object + OpenAIResponseMessage: + description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." + properties: + content: + anyOf: + - type: string + - items: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: array + - items: + discriminator: + mapping: + output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' + refusal: '#/$defs/OpenAIResponseContentPartRefusal' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' + - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' + type: array + title: Content + role: + anyOf: + - const: system + type: string + - const: developer + type: string + - const: user + type: string + - const: assistant + type: string + title: Role + type: + const: message + default: message + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + title: Status + required: + - content + - role + title: OpenAIResponseMessage + type: object + OpenAIResponseOutputMessageContentOutputText: + properties: + text: + title: Text + type: string + type: + const: output_text + default: output_text + title: Type + type: string + annotations: + items: + discriminator: + mapping: + container_file_citation: '#/$defs/OpenAIResponseAnnotationContainerFileCitation' + file_citation: '#/$defs/OpenAIResponseAnnotationFileCitation' + file_path: '#/$defs/OpenAIResponseAnnotationFilePath' + url_citation: '#/$defs/OpenAIResponseAnnotationCitation' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' + - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' + title: Annotations + type: array + required: + - text + title: OpenAIResponseOutputMessageContentOutputText + type: object + OpenAIResponseOutputMessageFileSearchToolCall: + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + queries: + description: List of search queries executed + items: + type: string + title: Queries + type: array + status: + description: Current status of the file search operation + title: Status + type: string + type: + const: file_search_call + default: file_search_call + description: Tool call type identifier, always "file_search_call" + title: Type + type: string + results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' + default: + description: Search results returned by the file search operation + title: Results + required: + - id + - queries + - status + title: OpenAIResponseOutputMessageFileSearchToolCall + type: object + OpenAIResponseOutputMessageFileSearchToolCallResults: + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" + properties: + attributes: + additionalProperties: true + description: Key-value attributes associated with the file + title: Attributes + type: object + file_id: + description: Unique identifier of the file containing the result + title: File Id + type: string + filename: + description: Name of the file containing the result + title: Filename + type: string + score: + description: Relevance score for this search result (between 0 and 1) + title: Score + type: number + text: + description: Text content of the search result + title: Text + type: string + required: + - attributes + - file_id + - filename + - score + - text + title: OpenAIResponseOutputMessageFileSearchToolCallResults + type: object + OpenAIResponseOutputMessageFunctionToolCall: + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" + properties: + call_id: + description: Unique identifier for the function call + title: Call Id + type: string + name: + description: Name of the function being called + title: Name + type: string + arguments: + description: JSON string containing the function arguments + title: Arguments + type: string + type: + const: function_call + default: function_call + description: Tool call type identifier, always "function_call" + title: Type + type: string + id: + anyOf: + - type: string + - type: 'null' + default: + description: Additional identifier for the tool call + title: Id + status: + anyOf: + - type: string + - type: 'null' + default: + description: Current status of the function call execution + title: Status + required: + - call_id + - name + - arguments + title: OpenAIResponseOutputMessageFunctionToolCall + type: object + OpenAIResponseOutputMessageMCPCall: + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" + properties: + id: + description: Unique identifier for this MCP call + title: Id + type: string + type: + const: mcp_call + default: mcp_call + description: Tool call type identifier, always "mcp_call" + title: Type + type: string + arguments: + description: JSON string containing the MCP call arguments + title: Arguments + type: string + name: + description: Name of the MCP method being called + title: Name + type: string + server_label: + description: Label identifying the MCP server handling the call + title: Server Label + type: string + error: + anyOf: + - type: string + - type: 'null' + default: + description: Error message if the MCP call failed + title: Error + output: + anyOf: + - type: string + - type: 'null' + default: + description: Output result from the successful MCP call + title: Output + required: + - id + - arguments + - name + - server_label + title: OpenAIResponseOutputMessageMCPCall + type: object + OpenAIResponseOutputMessageMCPListTools: + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" + properties: + id: + description: Unique identifier for this MCP list tools operation + title: Id + type: string + type: + const: mcp_list_tools + default: mcp_list_tools + description: Tool call type identifier, always "mcp_list_tools" + title: Type + type: string + server_label: + description: Label identifying the MCP server providing the tools + title: Server Label + type: string + tools: + description: List of available tools provided by the MCP server + items: + $ref: '#/components/schemas/MCPListToolsTool' + title: Tools + type: array + required: + - id + - server_label + - tools + title: OpenAIResponseOutputMessageMCPListTools + type: object + OpenAIResponseOutputMessageWebSearchToolCall: + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" + properties: + id: + description: Unique identifier for this tool call + title: Id + type: string + status: + description: Current status of the web search operation + title: Status + type: string + type: + const: web_search_call + default: web_search_call + description: Tool call type identifier, always "web_search_call" + title: Type + type: string + required: + - id + - status + title: OpenAIResponseOutputMessageWebSearchToolCall + type: object + OpenAIResponsePrompt: + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" + properties: + id: + description: Unique identifier of the prompt template + title: Id + type: string + variables: + anyOf: + - additionalProperties: + discriminator: + mapping: + input_file: '#/$defs/OpenAIResponseInputMessageContentFile' + input_image: '#/$defs/OpenAIResponseInputMessageContentImage' + input_text: '#/$defs/OpenAIResponseInputMessageContentText' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + type: object + - type: 'null' + default: + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. + title: Variables + version: + anyOf: + - type: string + - type: 'null' + default: + description: Version number of the prompt to use (defaults to latest if not specified) + title: Version + required: + - id + title: OpenAIResponsePrompt + type: object + OpenAIResponseText: + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" + properties: + format: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + default: + description: Text format configuration specifying output format requirements + title: OpenAIResponseText + type: object + OpenAIResponseTextFormat: + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." + properties: + type: + anyOf: + - const: text + type: string + - const: json_schema + type: string + - const: json_object + type: string + title: Type + name: + anyOf: + - type: string + - type: 'null' + title: Name + schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Schema + description: + anyOf: + - type: string + - type: 'null' + title: Description + strict: + anyOf: + - type: boolean + - type: 'null' + title: Strict + title: OpenAIResponseTextFormat + type: object + OpenAIResponseToolMCP: + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" + properties: + type: + const: mcp + default: mcp + description: Tool type identifier, always "mcp" + title: Type + type: string + server_label: + description: Label to identify this MCP server + title: Server Label + type: string + allowed_tools: + anyOf: + - items: + type: string + type: array + - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' + default: + description: Restriction on which tools can be used from this server + title: Allowed Tools + required: + - server_label + title: OpenAIResponseToolMCP + type: object + OpenAIResponseUsage: + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" + properties: + input_tokens: + description: Number of tokens in the input + title: Input Tokens + type: integer + output_tokens: + description: Number of tokens in the output + title: Output Tokens + type: integer + total_tokens: + description: Total tokens used (input + output) + title: Total Tokens + type: integer + input_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of input token usage + output_tokens_details: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + default: + description: Detailed breakdown of output token usage + required: + - input_tokens + - output_tokens + - total_tokens + title: OpenAIResponseUsage + type: object + OpenAIResponseUsageInputTokensDetails: + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" + properties: + cached_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens retrieved from cache + title: Cached Tokens + title: OpenAIResponseUsageInputTokensDetails + type: object + OpenAIResponseUsageOutputTokensDetails: + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" + properties: + reasoning_tokens: + anyOf: + - type: integer + - type: 'null' + default: + description: Number of tokens used for reasoning (o1/o3 models) + title: Reasoning Tokens + title: OpenAIResponseUsageOutputTokensDetails + type: object + SearchRankingOptions: + description: Options for ranking and filtering search results. + properties: + ranker: + anyOf: + - type: string + - type: 'null' + default: + title: Ranker + score_threshold: + anyOf: + - type: number + - type: 'null' + default: 0.0 + title: Score Threshold + title: SearchRankingOptions + type: object + description: "OpenAI response object extended with input context information.\n\n:param input: List of input items that led to this response" + properties: + created_at: + description: Unix timestamp when the response was created + title: Created At + type: integer + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + default: + description: Error details if the response generation failed + id: + description: Unique identifier for this response + title: Id + type: string + model: + description: Model identifier used for generation + title: Model + type: string + object: + const: response + default: response + description: Object type identifier, always "response" + title: Object + type: string + output: + description: List of generated output items (messages, tool calls, etc.) + items: + discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + title: Output + type: array + parallel_tool_calls: + default: false + description: Whether tool calls can be executed in parallel + title: Parallel Tool Calls + type: boolean + previous_response_id: + anyOf: + - type: string + - type: 'null' + default: + description: ID of the previous response in a conversation + title: Previous Response Id + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + default: + description: Reference to a prompt template and its variables. + status: + description: Current status of the response generation + title: Status + type: string + temperature: + anyOf: + - type: number + - type: 'null' + default: + description: Sampling temperature used for generation + title: Temperature + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + default: + description: Nucleus sampling parameter used for generation + title: Top P + tools: + anyOf: + - items: + discriminator: + mapping: + file_search: '#/$defs/OpenAIResponseInputToolFileSearch' + function: '#/$defs/OpenAIResponseInputToolFunction' + mcp: '#/$defs/OpenAIResponseToolMCP' + web_search: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + type: array + - type: 'null' + default: + description: An array of tools the model may call while generating a response. + title: Tools + truncation: + anyOf: + - type: string + - type: 'null' + default: + description: Truncation strategy applied to the response + title: Truncation + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + default: + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + default: + description: System message inserted into the model's context + title: Instructions + input: + description: List of input items that led to this response + items: + anyOf: + - discriminator: + mapping: + file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' + message: '#/$defs/OpenAIResponseMessage' + web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' + propertyName: type + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage' + title: Input + type: array + required: + - created_at + - id + - model + - output + - status + - input + title: OpenAIResponseObjectWithInput + type: object + ImageContentItem: + $defs: + URL: + description: A URL reference to external content. + properties: + uri: + title: Uri + type: string + required: + - uri + title: URL + type: object + _URLOrData: + description: A URL or a base64 encoded string. + properties: + url: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + default: + data: + anyOf: + - type: string + - type: 'null' + contentEncoding: base64 + default: + title: Data + title: _URLOrData + type: object + description: A image content item. + properties: + type: + const: image + default: image + title: Type + type: string + image: + $ref: '#/components/schemas/_URLOrData' + required: + - image + title: ImageContentItem + type: object + ImageDelta: + description: An image content delta for streaming responses. + properties: + type: + const: image + default: image + title: Type + type: string + image: + format: binary + title: Image + type: string + required: + - image + title: ImageDelta + type: object + TextDelta: + description: A text content delta for streaming responses. + properties: + type: + const: text + default: text + title: Type + type: string + text: + title: Text + type: string + required: + - text + title: TextDelta + type: object + ToolCallDelta: + $defs: + BuiltinTool: + enum: + - brave_search + - wolfram_alpha + - photogen + - code_interpreter + title: BuiltinTool + type: string + ToolCall: + properties: + call_id: + title: Call Id + type: string + tool_name: + anyOf: + - $ref: '#/components/schemas/BuiltinTool' + - type: string + title: Tool Name + arguments: + title: Arguments + type: string + required: + - call_id + - tool_name + - arguments + title: ToolCall + type: object + ToolCallParseStatus: + description: Status of tool call parsing during streaming. + enum: + - started + - in_progress + - failed + - succeeded + title: ToolCallParseStatus + type: string + description: A tool call content delta for streaming responses. + properties: + type: + const: tool_call + default: tool_call + title: Type + type: string + tool_call: + anyOf: + - type: string + - $ref: '#/components/schemas/ToolCall' + title: Tool Call + parse_status: + $ref: '#/components/schemas/ToolCallParseStatus' + required: + - tool_call + - parse_status + title: ToolCallDelta + type: object + DialogType: + description: "Parameter type for dialog data with semantic output labels.\n\n:param type: Discriminator type. Always \"dialog\"" + properties: + type: + const: dialog + default: dialog + title: Type + type: string + title: DialogType + type: object diff --git a/docs/static/experimental-llama-stack-spec.json b/docs/static/experimental-llama-stack-spec.json deleted file mode 100644 index cf426d968..000000000 --- a/docs/static/experimental-llama-stack-spec.json +++ /dev/null @@ -1,5135 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Llama Stack API", - "description": "A comprehensive API for building and deploying AI applications", - "version": "1.0.0" - }, - "servers": [ - { - "url": "https://api.llamastack.com", - "description": "Production server" - }, - { - "url": "https://staging-api.llamastack.com", - "description": "Staging server" - } - ], - "paths": { - "/v1beta/datasetio/append-rows/{dataset_id}": { - "post": { - "tags": [ - "V1Beta" - ], - "summary": "Append rows to a dataset.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "append_rows_v1beta_datasetio_append_rows__dataset_id__post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: dataset_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1beta/datasetio/iterrows/{dataset_id}": { - "get": { - "tags": [ - "V1Beta" - ], - "summary": "Get a paginated list of rows from a dataset.", - "description": "Query endpoint for proper schema generation.", - "operationId": "iterrows_v1beta_datasetio_iterrows__dataset_id__get", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Dataset Id" - } - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1beta/datasets": { - "get": { - "tags": [ - "V1Beta" - ], - "summary": "List all datasets.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_datasets_v1beta_datasets_get", - "responses": { - "200": { - "description": "A ListDatasetsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListDatasetsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1Beta" - ], - "summary": "Register a new dataset.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "register_dataset_v1beta_datasets_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____datasets_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Dataset.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dataset" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1beta/datasets/{dataset_id}": { - "delete": { - "tags": [ - "V1Beta" - ], - "summary": "Unregister a dataset by its ID.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_dataset_v1beta_datasets__dataset_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: dataset_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Beta" - ], - "summary": "Get a dataset by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_dataset_v1beta_datasets__dataset_id__get", - "parameters": [ - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Dataset Id" - } - } - ], - "responses": { - "200": { - "description": "A Dataset.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dataset" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "List all agents.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_agents_v1alpha_agents_get", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Create an agent with the given configuration.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_v1alpha_agents_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentConfig" - } - } - } - }, - "responses": { - "200": { - "description": "An AgentCreateResponse with the agent ID.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentCreateResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Delete an agent by its ID and its associated sessions and turns.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_agent_v1alpha_agents__agent_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to delete." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Describe an agent by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agent_v1alpha_agents__agent_id__get", - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "ID of the agent." - } - ], - "responses": { - "200": { - "description": "An Agent of the agent.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Agent" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/session": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Create a new session for an agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_session_v1alpha_agents__agent_id__session_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An AgentSessionCreateResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentSessionCreateResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to create the session for." - } - ] - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Delete an agent session by its ID and its associated turns.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_agents_session_v1alpha_agents__agent_id__session__session_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to delete." - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to delete the session for." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Retrieve an agent session by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_session_v1alpha_agents__agent_id__session__session_id__get", - "parameters": [ - { - "name": "turn_ids", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Turn Ids" - } - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get." - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the session for." - } - ], - "responses": { - "200": { - "description": "A Session.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Session" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Create a new turn for an agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_turn_v1alpha_agents__agent_id__session__session_id__turn_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_session_id_turn_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "If stream=False, returns a Turn object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to create the turn for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to create the turn for." - } - ] - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Retrieve an agent turn by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__get", - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the turn for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get the turn for." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Turn Id" - }, - "description": "The ID of the turn to get." - } - ], - "responses": { - "200": { - "description": "A Turn.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Resume an agent turn with executed tool call responses.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "resume_agent_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__resume_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk objects.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to resume." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to resume." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the turn to resume." - } - ] - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Retrieve an agent step by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_step_v1alpha_agents__agent_id__session__session_id__turn__turn_id__step__step_id__get", - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the step for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get the step for." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Turn Id" - }, - "description": "The ID of the turn to get the step for." - }, - { - "name": "step_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Step Id" - }, - "description": "The ID of the step to get." - } - ], - "responses": { - "200": { - "description": "An AgentStepResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentStepResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/sessions": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "List all session(s) of a given agent.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_agent_sessions_v1alpha_agents__agent_id__sessions_get", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to list sessions for." - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "List all benchmarks.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_benchmarks_v1alpha_eval_benchmarks_get", - "responses": { - "200": { - "description": "A ListBenchmarksResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListBenchmarksResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Register a benchmark.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "register_benchmark_v1alpha_eval_benchmarks_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Unregister a benchmark.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_benchmark_v1alpha_eval_benchmarks__benchmark_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to unregister." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get a benchmark by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_benchmark_v1alpha_eval_benchmarks__benchmark_id__get", - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to get." - } - ], - "responses": { - "200": { - "description": "A Benchmark.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Benchmark" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/evaluations": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Evaluate a list of rows on a benchmark.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "evaluate_rows_v1alpha_eval_benchmarks__benchmark_id__evaluations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BenchmarkConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "EvaluateResponse object containing generations and scores.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EvaluateResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - } - ] - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/jobs": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Run an evaluation on a benchmark.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_eval_v1alpha_eval_benchmarks__benchmark_id__jobs_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BenchmarkConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The job that was created to run the evaluation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Job" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - } - ] - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Cancel a job.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "job_cancel_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the job to cancel." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the status of a job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "job_status_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__get", - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - }, - "description": "The ID of the job to get the status of." - } - ], - "responses": { - "200": { - "description": "The status of the evaluation job.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Job" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the result of a job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "job_result_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__result_get", - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - }, - "description": "The ID of the job to get the result of." - } - ], - "responses": { - "200": { - "description": "The result of the job.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EvaluateResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/inference/rerank": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Rerank a list of documents based on their relevance to a query.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "rerank_v1alpha_inference_rerank_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_inference_rerank_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "RerankResponse with indices sorted by relevance score (descending).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RerankResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1alpha/post-training/job/artifacts": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the artifacts of a training job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_training_job_artifacts_v1alpha_post_training_job_artifacts_get", - "parameters": [ - { - "name": "job_uuid", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Job Uuid" - } - } - ], - "responses": { - "200": { - "description": "A PostTrainingJobArtifactsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJobArtifactsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/post-training/job/cancel": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Cancel a training job.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "cancel_training_job_v1alpha_post_training_job_cancel_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/post-training/job/status": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the status of a training job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_training_job_status_v1alpha_post_training_job_status_get", - "parameters": [ - { - "name": "job_uuid", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Job Uuid" - } - } - ], - "responses": { - "200": { - "description": "A PostTrainingJobStatusResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJobStatusResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/post-training/jobs": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get all training jobs.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "get_training_jobs_v1alpha_post_training_jobs_get", - "responses": { - "200": { - "description": "A ListPostTrainingJobsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPostTrainingJobsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1alpha/post-training/preference-optimize": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Run preference optimization of a model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "preference_optimize_v1alpha_post_training_preference_optimize_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DPOAlignmentConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A PostTrainingJob.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJob" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1alpha/post-training/supervised-fine-tune": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Run supervised fine-tuning of a model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "supervised_fine_tune_v1alpha_post_training_supervised_fine_tune_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TrainingConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A PostTrainingJob.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJob" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - } - }, - "components": { - "schemas": { - "AgentCandidate": { - "properties": { - "type": { - "type": "string", - "const": "agent", - "title": "Type", - "default": "agent" - }, - "config": { - "$ref": "#/components/schemas/AgentConfig" - } - }, - "type": "object", - "required": [ - "config" - ], - "title": "AgentCandidate", - "description": "An agent candidate for evaluation." - }, - "AgentConfig": { - "properties": { - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "input_shields": { - "title": "Input Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "output_shields": { - "title": "Output Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "toolgroups": { - "title": "Toolgroups", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ] - }, - "type": "array" - }, - "client_tools": { - "title": "Client Tools", - "items": { - "$ref": "#/components/schemas/ToolDef" - }, - "type": "array" - }, - "tool_choice": { - "deprecated": true, - "$ref": "#/components/schemas/ToolChoice" - }, - "tool_prompt_format": { - "deprecated": true, - "$ref": "#/components/schemas/ToolPromptFormat" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - }, - "max_infer_iters": { - "title": "Max Infer Iters", - "default": 10, - "type": "integer" - }, - "model": { - "type": "string", - "title": "Model" - }, - "instructions": { - "type": "string", - "title": "Instructions" - }, - "name": { - "title": "Name", - "type": "string" - }, - "enable_session_persistence": { - "title": "Enable Session Persistence", - "default": false, - "type": "boolean" - }, - "response_format": { - "title": "Response Format", - "oneOf": [ - { - "$ref": "#/components/schemas/JsonSchemaResponseFormat" - }, - { - "$ref": "#/components/schemas/GrammarResponseFormat" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "grammar": "#/components/schemas/GrammarResponseFormat", - "json_schema": "#/components/schemas/JsonSchemaResponseFormat" - } - } - } - }, - "type": "object", - "required": [ - "model", - "instructions" - ], - "title": "AgentConfig", - "description": "Configuration for an agent." - }, - "AgentCreateResponse": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - } - }, - "type": "object", - "required": [ - "agent_id" - ], - "title": "AgentCreateResponse", - "description": "Response returned when creating a new agent." - }, - "AgentSessionCreateResponse": { - "properties": { - "session_id": { - "type": "string", - "title": "Session Id" - } - }, - "type": "object", - "required": [ - "session_id" - ], - "title": "AgentSessionCreateResponse", - "description": "Response returned when creating a new agent session." - }, - "AgentToolGroupWithArgs": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "args": { - "additionalProperties": true, - "type": "object", - "title": "Args" - } - }, - "type": "object", - "required": [ - "name", - "args" - ], - "title": "AgentToolGroupWithArgs" - }, - "AggregationFunctionType": { - "type": "string", - "enum": [ - "average", - "weighted_average", - "median", - "categorical_count", - "accuracy" - ], - "title": "AggregationFunctionType", - "description": "Types of aggregation functions for scoring results." - }, - "Attachment-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "type": "string", - "title": "Mime Type" - } - }, - "type": "object", - "required": [ - "content", - "mime_type" - ], - "title": "Attachment", - "description": "An attachment to an agent turn." - }, - "BasicScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "basic", - "title": "Type", - "default": "basic" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "BasicScoringFnParams", - "description": "Parameters for basic scoring function configuration." - }, - "Benchmark": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "benchmark", - "title": "Type", - "default": "benchmark" - }, - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "scoring_functions": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Scoring Functions" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Metadata for this evaluation task" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "dataset_id", - "scoring_functions" - ], - "title": "Benchmark", - "description": "A benchmark resource for evaluating model performance." - }, - "BenchmarkConfig": { - "properties": { - "eval_candidate": { - "oneOf": [ - { - "$ref": "#/components/schemas/ModelCandidate" - }, - { - "$ref": "#/components/schemas/AgentCandidate" - } - ], - "title": "Eval Candidate", - "discriminator": { - "propertyName": "type", - "mapping": { - "agent": "#/components/schemas/AgentCandidate", - "model": "#/components/schemas/ModelCandidate" - } - } - }, - "scoring_params": { - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "basic": "#/components/schemas/BasicScoringFnParams", - "llm_as_judge": "#/components/schemas/LLMAsJudgeScoringFnParams", - "regex_parser": "#/components/schemas/RegexParserScoringFnParams" - } - } - }, - "type": "object", - "title": "Scoring Params", - "description": "Map between scoring function id and parameters for each scoring function you want to run" - }, - "num_examples": { - "title": "Num Examples", - "description": "Number of examples to evaluate (useful for testing), if not provided, all examples in the dataset will be evaluated", - "type": "integer" - } - }, - "type": "object", - "required": [ - "eval_candidate" - ], - "title": "BenchmarkConfig", - "description": "A benchmark configuration for evaluation." - }, - "BuiltinTool": { - "type": "string", - "enum": [ - "brave_search", - "wolfram_alpha", - "photogen", - "code_interpreter" - ], - "title": "BuiltinTool" - }, - "CompletionMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionMessage", - "description": "A message containing the model's (assistant) response in a chat conversation." - }, - "DPOAlignmentConfig": { - "properties": { - "beta": { - "type": "number", - "title": "Beta" - }, - "loss_type": { - "$ref": "#/components/schemas/DPOLossType", - "default": "sigmoid" - } - }, - "type": "object", - "required": [ - "beta" - ], - "title": "DPOAlignmentConfig", - "description": "Configuration for Direct Preference Optimization (DPO) alignment." - }, - "DPOLossType": { - "type": "string", - "enum": [ - "sigmoid", - "hinge", - "ipo", - "kto_pair" - ], - "title": "DPOLossType" - }, - "DataConfig": { - "properties": { - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "batch_size": { - "type": "integer", - "title": "Batch Size" - }, - "shuffle": { - "type": "boolean", - "title": "Shuffle" - }, - "data_format": { - "$ref": "#/components/schemas/DatasetFormat" - }, - "validation_dataset_id": { - "title": "Validation Dataset Id", - "type": "string" - }, - "packed": { - "title": "Packed", - "default": false, - "type": "boolean" - }, - "train_on_input": { - "title": "Train On Input", - "default": false, - "type": "boolean" - } - }, - "type": "object", - "required": [ - "dataset_id", - "batch_size", - "shuffle", - "data_format" - ], - "title": "DataConfig", - "description": "Configuration for training data and data loading." - }, - "Dataset": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "dataset", - "title": "Type", - "default": "dataset" - }, - "purpose": { - "$ref": "#/components/schemas/DatasetPurpose" - }, - "source": { - "oneOf": [ - { - "$ref": "#/components/schemas/URIDataSource" - }, - { - "$ref": "#/components/schemas/RowsDataSource" - } - ], - "title": "Source", - "discriminator": { - "propertyName": "type", - "mapping": { - "rows": "#/components/schemas/RowsDataSource", - "uri": "#/components/schemas/URIDataSource" - } - } - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this dataset" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "purpose", - "source" - ], - "title": "Dataset", - "description": "Dataset resource for storing and accessing training or evaluation data." - }, - "DatasetFormat": { - "type": "string", - "enum": [ - "instruct", - "dialog" - ], - "title": "DatasetFormat", - "description": "Format of the training dataset." - }, - "DatasetPurpose": { - "type": "string", - "enum": [ - "post-training/messages", - "eval/question-answer", - "eval/messages-answer" - ], - "title": "DatasetPurpose", - "description": "Purpose of the dataset. Each purpose has a required input data schema." - }, - "Document": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "type": "string", - "title": "Mime Type" - } - }, - "type": "object", - "required": [ - "content", - "mime_type" - ], - "title": "Document", - "description": "A document to be used by an agent." - }, - "EfficiencyConfig": { - "properties": { - "enable_activation_checkpointing": { - "title": "Enable Activation Checkpointing", - "default": false, - "type": "boolean" - }, - "enable_activation_offloading": { - "title": "Enable Activation Offloading", - "default": false, - "type": "boolean" - }, - "memory_efficient_fsdp_wrap": { - "title": "Memory Efficient Fsdp Wrap", - "default": false, - "type": "boolean" - }, - "fsdp_cpu_offload": { - "title": "Fsdp Cpu Offload", - "default": false, - "type": "boolean" - } - }, - "type": "object", - "title": "EfficiencyConfig", - "description": "Configuration for memory and compute efficiency optimizations." - }, - "EvaluateResponse": { - "properties": { - "generations": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Generations" - }, - "scores": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Scores" - } - }, - "type": "object", - "required": [ - "generations", - "scores" - ], - "title": "EvaluateResponse", - "description": "The response from an evaluation." - }, - "GrammarResponseFormat": { - "properties": { - "type": { - "type": "string", - "const": "grammar", - "title": "Type", - "default": "grammar" - }, - "bnf": { - "additionalProperties": true, - "type": "object", - "title": "Bnf" - } - }, - "type": "object", - "required": [ - "bnf" - ], - "title": "GrammarResponseFormat", - "description": "Configuration for grammar-guided response generation." - }, - "GreedySamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "greedy", - "title": "Type", - "default": "greedy" - } - }, - "type": "object", - "title": "GreedySamplingStrategy", - "description": "Greedy sampling strategy that selects the highest probability token at each step." - }, - "ImageContentItem-Input": { - "properties": { - "type": { - "type": "string", - "const": "image", - "title": "Type", - "default": "image" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "type": "object", - "required": [ - "image" - ], - "title": "ImageContentItem", - "description": "A image content item" - }, - "ImageContentItem-Output": { - "properties": { - "type": { - "type": "string", - "const": "image", - "title": "Type", - "default": "image" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "type": "object", - "required": [ - "image" - ], - "title": "ImageContentItem", - "description": "A image content item" - }, - "InferenceStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "inference", - "title": "Step Type", - "default": "inference" - }, - "model_response": { - "$ref": "#/components/schemas/CompletionMessage-Output" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "model_response" - ], - "title": "InferenceStep", - "description": "An inference step in an agent turn." - }, - "Job": { - "properties": { - "job_id": { - "type": "string", - "title": "Job Id" - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - } - }, - "type": "object", - "required": [ - "job_id", - "status" - ], - "title": "Job", - "description": "A job execution instance with status tracking." - }, - "JobStatus": { - "type": "string", - "enum": [ - "completed", - "in_progress", - "failed", - "scheduled", - "cancelled" - ], - "title": "JobStatus", - "description": "Status of a job execution." - }, - "JsonSchemaResponseFormat": { - "properties": { - "type": { - "type": "string", - "const": "json_schema", - "title": "Type", - "default": "json_schema" - }, - "json_schema": { - "additionalProperties": true, - "type": "object", - "title": "Json Schema" - } - }, - "type": "object", - "required": [ - "json_schema" - ], - "title": "JsonSchemaResponseFormat", - "description": "Configuration for JSON schema-guided response generation." - }, - "LLMAsJudgeScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "llm_as_judge", - "title": "Type", - "default": "llm_as_judge" - }, - "judge_model": { - "type": "string", - "title": "Judge Model" - }, - "prompt_template": { - "title": "Prompt Template", - "type": "string" - }, - "judge_score_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Judge Score Regexes", - "description": "Regexes to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "required": [ - "judge_model" - ], - "title": "LLMAsJudgeScoringFnParams", - "description": "Parameters for LLM-as-judge scoring function configuration." - }, - "ListBenchmarksResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Benchmark" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListBenchmarksResponse" - }, - "ListDatasetsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Dataset" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListDatasetsResponse", - "description": "Response from listing datasets." - }, - "ListPostTrainingJobsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/PostTrainingJob" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListPostTrainingJobsResponse" - }, - "MemoryRetrievalStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "memory_retrieval", - "title": "Step Type", - "default": "memory_retrieval" - }, - "vector_store_ids": { - "type": "string", - "title": "Vector Store Ids" - }, - "inserted_context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Inserted Context" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "vector_store_ids", - "inserted_context" - ], - "title": "MemoryRetrievalStep", - "description": "A memory retrieval step in an agent turn." - }, - "ModelCandidate": { - "properties": { - "type": { - "type": "string", - "const": "model", - "title": "Type", - "default": "model" - }, - "model": { - "type": "string", - "title": "Model" - }, - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "system_message": { - "$ref": "#/components/schemas/SystemMessage" - } - }, - "type": "object", - "required": [ - "model", - "sampling_params" - ], - "title": "ModelCandidate", - "description": "A model candidate for evaluation." - }, - "OptimizerConfig": { - "properties": { - "optimizer_type": { - "$ref": "#/components/schemas/OptimizerType" - }, - "lr": { - "type": "number", - "title": "Lr" - }, - "weight_decay": { - "type": "number", - "title": "Weight Decay" - }, - "num_warmup_steps": { - "type": "integer", - "title": "Num Warmup Steps" - } - }, - "type": "object", - "required": [ - "optimizer_type", - "lr", - "weight_decay", - "num_warmup_steps" - ], - "title": "OptimizerConfig", - "description": "Configuration parameters for the optimization algorithm." - }, - "OptimizerType": { - "type": "string", - "enum": [ - "adam", - "adamw", - "sgd" - ], - "title": "OptimizerType", - "description": "Available optimizer algorithms for training." - }, - "PostTrainingJob": { - "properties": { - "job_uuid": { - "type": "string", - "title": "Job Uuid" - } - }, - "type": "object", - "required": [ - "job_uuid" - ], - "title": "PostTrainingJob" - }, - "RegexParserScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "regex_parser", - "title": "Type", - "default": "regex_parser" - }, - "parsing_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Parsing Regexes", - "description": "Regex to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "RegexParserScoringFnParams", - "description": "Parameters for regex parser scoring function configuration." - }, - "RerankData": { - "properties": { - "index": { - "type": "integer", - "title": "Index" - }, - "relevance_score": { - "type": "number", - "title": "Relevance Score" - } - }, - "type": "object", - "required": [ - "index", - "relevance_score" - ], - "title": "RerankData", - "description": "A single rerank result from a reranking response." - }, - "RerankResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/RerankData" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "RerankResponse", - "description": "Response from a reranking request." - }, - "RowsDataSource": { - "properties": { - "type": { - "type": "string", - "const": "rows", - "title": "Type", - "default": "rows" - }, - "rows": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Rows" - } - }, - "type": "object", - "required": [ - "rows" - ], - "title": "RowsDataSource", - "description": "A dataset stored in rows." - }, - "SafetyViolation": { - "properties": { - "violation_level": { - "$ref": "#/components/schemas/ViolationLevel" - }, - "user_message": { - "title": "User Message", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "violation_level" - ], - "title": "SafetyViolation", - "description": "Details of a safety violation detected by content moderation." - }, - "SamplingParams": { - "properties": { - "strategy": { - "oneOf": [ - { - "$ref": "#/components/schemas/GreedySamplingStrategy" - }, - { - "$ref": "#/components/schemas/TopPSamplingStrategy" - }, - { - "$ref": "#/components/schemas/TopKSamplingStrategy" - } - ], - "title": "Strategy", - "discriminator": { - "propertyName": "type", - "mapping": { - "greedy": "#/components/schemas/GreedySamplingStrategy", - "top_k": "#/components/schemas/TopKSamplingStrategy", - "top_p": "#/components/schemas/TopPSamplingStrategy" - } - } - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "repetition_penalty": { - "title": "Repetition Penalty", - "default": 1.0, - "type": "number" - }, - "stop": { - "title": "Stop", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "SamplingParams", - "description": "Sampling parameters." - }, - "ScoringResult": { - "properties": { - "score_rows": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Score Rows" - }, - "aggregated_results": { - "additionalProperties": true, - "type": "object", - "title": "Aggregated Results" - } - }, - "type": "object", - "required": [ - "score_rows", - "aggregated_results" - ], - "title": "ScoringResult", - "description": "A scoring result for a single row." - }, - "ShieldCallStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "shield_call", - "title": "Step Type", - "default": "shield_call" - }, - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "violation" - ], - "title": "ShieldCallStep", - "description": "A shield call step in an agent turn." - }, - "StopReason": { - "type": "string", - "enum": [ - "end_of_turn", - "end_of_message", - "out_of_tokens" - ], - "title": "StopReason" - }, - "SystemMessage": { - "properties": { - "role": { - "type": "string", - "const": "system", - "title": "Role", - "default": "system" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "SystemMessage", - "description": "A system message providing instructions or context to the model." - }, - "SystemMessageBehavior": { - "type": "string", - "enum": [ - "append", - "replace" - ], - "title": "SystemMessageBehavior", - "description": "Config for how to override the default system prompt." - }, - "TextContentItem": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "TextContentItem", - "description": "A text content item" - }, - "ToolCall": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "arguments": { - "type": "string", - "title": "Arguments" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "arguments" - ], - "title": "ToolCall" - }, - "ToolChoice": { - "type": "string", - "enum": [ - "auto", - "required", - "none" - ], - "title": "ToolChoice", - "description": "Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model." - }, - "ToolConfig": { - "properties": { - "tool_choice": { - "anyOf": [ - { - "$ref": "#/components/schemas/ToolChoice" - }, - { - "type": "string" - } - ], - "title": "Tool Choice", - "default": "auto" - }, - "tool_prompt_format": { - "$ref": "#/components/schemas/ToolPromptFormat" - }, - "system_message_behavior": { - "default": "append", - "$ref": "#/components/schemas/SystemMessageBehavior" - } - }, - "type": "object", - "title": "ToolConfig", - "description": "Configuration for tool use." - }, - "ToolDef": { - "properties": { - "toolgroup_id": { - "title": "Toolgroup Id", - "type": "string" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "input_schema": { - "title": "Input Schema", - "additionalProperties": true, - "type": "object" - }, - "output_schema": { - "title": "Output Schema", - "additionalProperties": true, - "type": "object" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "name" - ], - "title": "ToolDef", - "description": "Tool definition used in runtime contexts." - }, - "ToolExecutionStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "tool_execution", - "title": "Step Type", - "default": "tool_execution" - }, - "tool_calls": { - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array", - "title": "Tool Calls" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse-Output" - }, - "type": "array", - "title": "Tool Responses" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "tool_calls", - "tool_responses" - ], - "title": "ToolExecutionStep", - "description": "A tool execution step in an agent turn." - }, - "ToolPromptFormat": { - "type": "string", - "enum": [ - "json", - "function_tag", - "python_list" - ], - "title": "ToolPromptFormat", - "description": "Prompt format for calling custom / zero shot tools." - }, - "ToolResponse-Input": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "description": "Response from a tool invocation." - }, - "ToolResponse-Output": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "description": "Response from a tool invocation." - }, - "ToolResponseMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "tool", - "title": "Role", - "default": "tool" - }, - "call_id": { - "type": "string", - "title": "Call Id" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "call_id", - "content" - ], - "title": "ToolResponseMessage", - "description": "A message representing the result of a tool invocation." - }, - "TopKSamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "top_k", - "title": "Type", - "default": "top_k" - }, - "top_k": { - "type": "integer", - "minimum": 1.0, - "title": "Top K" - } - }, - "type": "object", - "required": [ - "top_k" - ], - "title": "TopKSamplingStrategy", - "description": "Top-k sampling strategy that restricts sampling to the k most likely tokens." - }, - "TopPSamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "top_p", - "title": "Type", - "default": "top_p" - }, - "temperature": { - "title": "Temperature", - "type": "number", - "minimum": 0.0 - }, - "top_p": { - "title": "Top P", - "default": 0.95, - "type": "number" - } - }, - "type": "object", - "required": [ - "temperature" - ], - "title": "TopPSamplingStrategy", - "description": "Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p." - }, - "TrainingConfig": { - "properties": { - "n_epochs": { - "type": "integer", - "title": "N Epochs" - }, - "max_steps_per_epoch": { - "type": "integer", - "title": "Max Steps Per Epoch", - "default": 1 - }, - "gradient_accumulation_steps": { - "type": "integer", - "title": "Gradient Accumulation Steps", - "default": 1 - }, - "max_validation_steps": { - "title": "Max Validation Steps", - "default": 1, - "type": "integer" - }, - "data_config": { - "$ref": "#/components/schemas/DataConfig" - }, - "optimizer_config": { - "$ref": "#/components/schemas/OptimizerConfig" - }, - "efficiency_config": { - "$ref": "#/components/schemas/EfficiencyConfig" - }, - "dtype": { - "title": "Dtype", - "default": "bf16", - "type": "string" - } - }, - "type": "object", - "required": [ - "n_epochs" - ], - "title": "TrainingConfig", - "description": "Comprehensive configuration for the training process." - }, - "Turn": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "input_messages": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/UserMessage-Output" - }, - { - "$ref": "#/components/schemas/ToolResponseMessage-Output" - } - ] - }, - "type": "array", - "title": "Input Messages" - }, - "steps": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/InferenceStep-Output" - }, - { - "$ref": "#/components/schemas/ToolExecutionStep-Output" - }, - { - "$ref": "#/components/schemas/ShieldCallStep-Output" - }, - { - "$ref": "#/components/schemas/MemoryRetrievalStep-Output" - } - ], - "discriminator": { - "propertyName": "step_type", - "mapping": { - "inference": "#/components/schemas/InferenceStep-Output", - "memory_retrieval": "#/components/schemas/MemoryRetrievalStep-Output", - "shield_call": "#/components/schemas/ShieldCallStep-Output", - "tool_execution": "#/components/schemas/ToolExecutionStep-Output" - } - } - }, - "type": "array", - "title": "Steps" - }, - "output_message": { - "$ref": "#/components/schemas/CompletionMessage-Output" - }, - "output_attachments": { - "title": "Output Attachments", - "items": { - "$ref": "#/components/schemas/Attachment-Output" - }, - "type": "array" - }, - "started_at": { - "type": "string", - "format": "date-time", - "title": "Started At" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - } - }, - "type": "object", - "required": [ - "turn_id", - "session_id", - "input_messages", - "steps", - "output_message", - "started_at" - ], - "title": "Turn", - "description": "A single turn in an interaction with an Agentic System." - }, - "URIDataSource": { - "properties": { - "type": { - "type": "string", - "const": "uri", - "title": "Type", - "default": "uri" - }, - "uri": { - "type": "string", - "title": "Uri" - } - }, - "type": "object", - "required": [ - "uri" - ], - "title": "URIDataSource", - "description": "A dataset that can be obtained from a URI." - }, - "URL": { - "properties": { - "uri": { - "type": "string", - "title": "Uri" - } - }, - "type": "object", - "required": [ - "uri" - ], - "title": "URL", - "description": "A URL reference to external content." - }, - "UserMessage-Input": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Context" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "UserMessage", - "description": "A message from the user in a chat conversation." - }, - "UserMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Context" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "UserMessage", - "description": "A message from the user in a chat conversation." - }, - "ViolationLevel": { - "type": "string", - "enum": [ - "info", - "warn", - "error" - ], - "title": "ViolationLevel", - "description": "Severity level of a safety violation." - }, - "_URLOrData": { - "properties": { - "url": { - "$ref": "#/components/schemas/URL" - }, - "data": { - "contentEncoding": "base64", - "title": "Data", - "type": "string" - } - }, - "type": "object", - "title": "_URLOrData", - "description": "A URL or a base64 encoded string" - }, - "__main_____agents_agent_id_session_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_name": { - "type": "string", - "title": "Session Name" - } - }, - "type": "object", - "required": [ - "agent_id", - "session_name" - ], - "title": "_agents_agent_id_session_Request" - }, - "__main_____agents_agent_id_session_session_id_turn_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "messages": { - "$ref": "#/components/schemas/UserMessage-Input" - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "documents": { - "$ref": "#/components/schemas/Document" - }, - "toolgroups": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ], - "title": "Toolgroups" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - } - }, - "type": "object", - "required": [ - "agent_id", - "session_id", - "messages", - "documents", - "toolgroups", - "tool_config" - ], - "title": "_agents_agent_id_session_session_id_turn_Request" - }, - "__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "tool_responses": { - "$ref": "#/components/schemas/ToolResponse-Input" - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - } - }, - "type": "object", - "required": [ - "agent_id", - "session_id", - "turn_id", - "tool_responses" - ], - "title": "_agents_agent_id_session_session_id_turn_turn_id_resume_Request" - }, - "__main_____datasets_Request": { - "properties": { - "purpose": { - "$ref": "#/components/schemas/DatasetPurpose" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "dataset_id": { - "type": "string", - "title": "Dataset Id" - } - }, - "type": "object", - "required": [ - "purpose", - "metadata", - "dataset_id" - ], - "title": "_datasets_Request" - }, - "_inference_rerank_Request": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "query": { - "type": "string", - "title": "Query" - }, - "items": { - "type": "string", - "title": "Items" - }, - "max_num_results": { - "type": "integer", - "title": "Max Num Results" - } - }, - "type": "object", - "required": [ - "model", - "query", - "items", - "max_num_results" - ], - "title": "_inference_rerank_Request" - }, - "Error": { - "description": "Error response from the API. Roughly follows RFC 7807.", - "properties": { - "status": { - "title": "Status", - "type": "integer" - }, - "title": { - "title": "Title", - "type": "string" - }, - "detail": { - "title": "Detail", - "type": "string" - }, - "instance": { - "title": "Instance", - "type": "string", - "nullable": true - } - }, - "required": [ - "status", - "title", - "detail" - ], - "title": "Error", - "type": "object" - }, - "Agent": { - "description": "An agent instance with configuration and metadata.", - "properties": { - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "agent_config": { - "$ref": "#/components/schemas/AgentConfig" - }, - "created_at": { - "format": "date-time", - "title": "Created At", - "type": "string" - } - }, - "required": [ - "agent_id", - "agent_config", - "created_at" - ], - "title": "Agent", - "type": "object" - }, - "AgentStepResponse": { - "description": "Response containing details of a specific agent step.", - "properties": { - "step": { - "discriminator": { - "mapping": { - "inference": "#/$defs/InferenceStep", - "memory_retrieval": "#/$defs/MemoryRetrievalStep", - "shield_call": "#/$defs/ShieldCallStep", - "tool_execution": "#/$defs/ToolExecutionStep" - }, - "propertyName": "step_type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/InferenceStep" - }, - { - "$ref": "#/components/schemas/ToolExecutionStep" - }, - { - "$ref": "#/components/schemas/ShieldCallStep" - }, - { - "$ref": "#/components/schemas/MemoryRetrievalStep" - } - ], - "title": "Step" - } - }, - "required": [ - "step" - ], - "title": "AgentStepResponse", - "type": "object" - }, - "CompletionMessage": { - "description": "A message containing the model's (assistant) response in a chat conversation.", - "properties": { - "role": { - "const": "assistant", - "default": "assistant", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array" - } - }, - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionMessage", - "type": "object" - }, - "InferenceStep": { - "description": "An inference step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "inference", - "default": "inference", - "title": "Step Type", - "type": "string" - }, - "model_response": { - "$ref": "#/components/schemas/CompletionMessage" - } - }, - "required": [ - "turn_id", - "step_id", - "model_response" - ], - "title": "InferenceStep", - "type": "object" - }, - "MemoryRetrievalStep": { - "description": "A memory retrieval step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "memory_retrieval", - "default": "memory_retrieval", - "title": "Step Type", - "type": "string" - }, - "vector_store_ids": { - "title": "Vector Store Ids", - "type": "string" - }, - "inserted_context": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Inserted Context" - } - }, - "required": [ - "turn_id", - "step_id", - "vector_store_ids", - "inserted_context" - ], - "title": "MemoryRetrievalStep", - "type": "object" - }, - "PaginatedResponse": { - "description": "A generic paginated response that follows a simple format.", - "properties": { - "data": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "url": { - "title": "Url", - "type": "string", - "nullable": true - } - }, - "required": [ - "data", - "has_more" - ], - "title": "PaginatedResponse", - "type": "object" - }, - "Session": { - "description": "A single session of an interaction with an Agentic System.", - "properties": { - "session_id": { - "title": "Session Id", - "type": "string" - }, - "session_name": { - "title": "Session Name", - "type": "string" - }, - "turns": { - "items": { - "$ref": "#/components/schemas/Turn" - }, - "title": "Turns", - "type": "array" - }, - "started_at": { - "format": "date-time", - "title": "Started At", - "type": "string" - } - }, - "required": [ - "session_id", - "session_name", - "turns", - "started_at" - ], - "title": "Session", - "type": "object" - }, - "ShieldCallStep": { - "description": "A shield call step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "shield_call", - "default": "shield_call", - "title": "Step Type", - "type": "string" - }, - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "required": [ - "turn_id", - "step_id", - "violation" - ], - "title": "ShieldCallStep", - "type": "object" - }, - "ToolExecutionStep": { - "description": "A tool execution step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "tool_execution", - "default": "tool_execution", - "title": "Step Type", - "type": "string" - }, - "tool_calls": { - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "title": "Tool Calls", - "type": "array" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse" - }, - "title": "Tool Responses", - "type": "array" - } - }, - "required": [ - "turn_id", - "step_id", - "tool_calls", - "tool_responses" - ], - "title": "ToolExecutionStep", - "type": "object" - }, - "ToolResponse": { - "description": "Response from a tool invocation.", - "properties": { - "call_id": { - "title": "Call Id", - "type": "string" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object", - "nullable": true - } - }, - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "type": "object" - }, - "Checkpoint": { - "description": "Checkpoint created during training runs.", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string" - }, - "created_at": { - "format": "date-time", - "title": "Created At", - "type": "string" - }, - "epoch": { - "title": "Epoch", - "type": "integer" - }, - "post_training_job_id": { - "title": "Post Training Job Id", - "type": "string" - }, - "path": { - "title": "Path", - "type": "string" - }, - "training_metrics": { - "$ref": "#/components/schemas/PostTrainingMetric", - "nullable": true - } - }, - "required": [ - "identifier", - "created_at", - "epoch", - "post_training_job_id", - "path" - ], - "title": "Checkpoint", - "type": "object" - }, - "PostTrainingJobArtifactsResponse": { - "description": "Artifacts of a finetuning job.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "checkpoints": { - "items": { - "$ref": "#/components/schemas/Checkpoint" - }, - "title": "Checkpoints", - "type": "array" - } - }, - "required": [ - "job_uuid" - ], - "title": "PostTrainingJobArtifactsResponse", - "type": "object" - }, - "PostTrainingJobStatusResponse": { - "description": "Status of a finetuning job.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - }, - "scheduled_at": { - "title": "Scheduled At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "resources_allocated": { - "title": "Resources Allocated", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "checkpoints": { - "items": { - "$ref": "#/components/schemas/Checkpoint" - }, - "title": "Checkpoints", - "type": "array" - } - }, - "required": [ - "job_uuid", - "status" - ], - "title": "PostTrainingJobStatusResponse", - "type": "object" - }, - "ImageContentItem": { - "description": "A image content item", - "properties": { - "type": { - "const": "image", - "default": "image", - "title": "Type", - "type": "string" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "required": [ - "image" - ], - "title": "ImageContentItem", - "type": "object" - }, - "PostTrainingMetric": { - "description": "Training metrics captured during post-training jobs.", - "properties": { - "epoch": { - "title": "Epoch", - "type": "integer" - }, - "train_loss": { - "title": "Train Loss", - "type": "number" - }, - "validation_loss": { - "title": "Validation Loss", - "type": "number" - }, - "perplexity": { - "title": "Perplexity", - "type": "number" - } - }, - "required": [ - "epoch", - "train_loss", - "validation_loss", - "perplexity" - ], - "title": "PostTrainingMetric", - "type": "object" - } - }, - "responses": { - "BadRequest400": { - "description": "The request was invalid or malformed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 400, - "title": "Bad Request", - "detail": "The request was invalid or malformed" - } - } - } - }, - "TooManyRequests429": { - "description": "The client has sent too many requests in a given amount of time", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 429, - "title": "Too Many Requests", - "detail": "You have exceeded the rate limit. Please try again later." - } - } - } - }, - "InternalServerError500": { - "description": "The server encountered an unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 500, - "title": "Internal Server Error", - "detail": "An unexpected error occurred. Our team has been notified." - } - } - } - }, - "DefaultError": { - "description": "An unexpected error occurred", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/docs/static/experimental-llama-stack-spec.yaml b/docs/static/experimental-llama-stack-spec.yaml index cd7cbdb23..47692cbe9 100644 --- a/docs/static/experimental-llama-stack-spec.yaml +++ b/docs/static/experimental-llama-stack-spec.yaml @@ -12,171 +12,322 @@ paths: /v1beta/datasetio/append-rows/{dataset_id}: post: tags: - - V1Beta + - DatasetIO summary: Append rows to a dataset. - description: Generic endpoint - this would be replaced with actual implementation. + description: Append rows to a dataset. operationId: append_rows_v1beta_datasetio_append_rows__dataset_id__post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: dataset_id in: path required: true schema: type: string - description: 'Path parameter: dataset_id' + description: The ID of the dataset to append the rows to + title: Dataset Id + description: The ID of the dataset to append the rows to + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: true + description: The rows to append to the dataset. + title: Body + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta/datasetio/iterrows/{dataset_id}: + get: + tags: + - DatasetIO + summary: Get a paginated list of rows from a dataset. + description: Get a paginated list of rows from a dataset using offset-based pagination. + operationId: iterrows_v1beta_datasetio_iterrows__dataset_id__get + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to get the rows from + title: Dataset Id + description: The ID of the dataset to get the rows from + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: Index into dataset for the first row to get. Get all rows if None. + title: Start Index + description: Index into dataset for the first row to get. Get all rows if None. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of rows to get. + title: Limit + description: The number of rows to get. responses: '200': description: Successful Response - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1beta/datasetio/iterrows/{dataset_id}: - get: - tags: - - V1Beta - summary: Get a paginated list of rows from a dataset. - description: Query endpoint for proper schema generation. - operationId: iterrows_v1beta_datasetio_iterrows__dataset_id__get - parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - - name: dataset_id - in: path - required: true - schema: - type: string - title: Dataset Id - responses: - '200': - description: A PaginatedResponse. content: application/json: schema: $ref: '#/components/schemas/PaginatedResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1beta/datasets: get: tags: - - V1Beta - summary: List all datasets. - description: Response-only endpoint for proper schema generation. + - Datasets + summary: List all datasets + description: List all datasets operationId: list_datasets_v1beta_datasets_get responses: '200': - description: A ListDatasetsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListDatasetsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Beta - summary: Register a new dataset. - description: Typed endpoint for proper schema generation. + - Datasets + summary: Register a new dataset + description: Register a new dataset operationId: register_dataset_v1beta_datasets_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/__main_____datasets_Request' + $ref: '#/components/schemas/RegisterDatasetRequest' required: true responses: '200': - description: A Dataset. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Dataset' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1beta/datasets/{dataset_id}: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta/datasets/{{dataset_id}}: delete: tags: - - V1Beta - summary: Unregister a dataset by its ID. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_dataset_v1beta_datasets__dataset_id__delete + - Datasets + summary: Unregister a dataset by its ID + description: Unregister a dataset by its ID + operationId: unregister_dataset_v1beta_datasets___dataset_id___delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: dataset_id in: path required: true schema: type: string - description: 'Path parameter: dataset_id' + description: The ID of the dataset to unregister + title: Dataset Id + description: The ID of the dataset to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Datasets + summary: Get a dataset by its ID + description: Get a dataset by its ID + operationId: get_dataset_v1beta_datasets___dataset_id___get + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to get + title: Dataset Id + description: The ID of the dataset to get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Dataset' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents: + get: + tags: + - Agents + summary: List all agents. + description: List all agents. + operationId: list_agents_v1alpha_agents_get + parameters: + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of agents to return. + title: Limit + description: The number of agents to return. responses: '200': description: Successful Response @@ -184,385 +335,405 @@ paths: application/json: schema: {} '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: - tags: - - V1Beta - summary: Get a dataset by its ID. - description: Query endpoint for proper schema generation. - operationId: get_dataset_v1beta_datasets__dataset_id__get - parameters: - - name: dataset_id - in: path - required: true - schema: - type: string - title: Dataset Id - responses: - '200': - description: A Dataset. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/Dataset' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents: - get: - tags: - - V1Alpha - summary: List all agents. - description: Query endpoint for proper schema generation. - operationId: list_agents_v1alpha_agents_get - parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - responses: - '200': - description: A PaginatedResponse. + description: The client has sent too many requests in a given amount of time. content: application/json: schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Alpha - summary: Create an agent with the given configuration. - description: Typed endpoint for proper schema generation. + - Agents + summary: Create an agent. + description: Create an agent with the given configuration. operationId: create_agent_v1alpha_agents_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/AgentConfig' + $ref: '#/components/schemas/AgentConfig-Input' responses: '200': - description: An AgentCreateResponse with the agent ID. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AgentCreateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}: - delete: - tags: - - V1Alpha - summary: Delete an agent by its ID and its associated sessions and turns. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_agent_v1alpha_agents__agent_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: agent_id - in: path - required: true - schema: - type: string - description: The ID of the agent to delete. - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}: + delete: tags: - - V1Alpha - summary: Describe an agent by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agent_v1alpha_agents__agent_id__get + - Agents + summary: Delete an agent. + description: Delete an agent by its ID. + operationId: delete_agent_v1alpha_agents___agent_id___delete parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to delete. + title: Agent Id + description: The ID of the agent to delete. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Agents + summary: Describe an agent. + description: Describe an agent by its ID. + operationId: get_agent_v1alpha_agents___agent_id___get + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: ID of the agent. title: Agent Id description: ID of the agent. responses: '200': - description: An Agent of the agent. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Agent' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session: - post: - tags: - - V1Alpha - summary: Create a new session for an agent. - description: Typed endpoint for proper schema generation. - operationId: create_agent_session_v1alpha_agents__agent_id__session_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_Request' - required: true - responses: - '200': - description: An AgentSessionCreateResponse. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/AgentSessionCreateResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: agent_id - in: path - required: true - schema: - type: string - description: The ID of the agent to create the session for. - /v1alpha/agents/{agent_id}/session/{session_id}: - delete: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session: + post: tags: - - V1Alpha - summary: Delete an agent session by its ID and its associated turns. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_agents_session_v1alpha_agents__agent_id__session__session_id__delete + - Agents + summary: Create a new session for an agent. + description: Create a new session for an agent. + operationId: create_agent_session_v1alpha_agents___agent_id___session_post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: session_id - in: path - required: true - schema: - type: string - description: The ID of the session to delete. - name: agent_id in: path required: true schema: type: string - description: The ID of the agent to delete the session for. + description: The ID of the agent to create the session for. + title: Agent Id + description: The ID of the agent to create the session for. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAgentSessionRequest' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/AgentSessionCreateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}: + delete: tags: - - V1Alpha - summary: Retrieve an agent session by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_session_v1alpha_agents__agent_id__session__session_id__get + - Agents + summary: Delete an agent session. + description: Delete an agent session by its ID. + operationId: delete_agents_session_v1alpha_agents___agent_id___session___session_id___delete parameters: - - name: turn_ids - in: query + - name: agent_id + in: path required: true schema: type: string - title: Turn Ids + description: The ID of the agent to delete the session for. + title: Agent Id + description: The ID of the agent to delete the session for. - name: session_id in: path required: true schema: type: string + description: The ID of the session to delete. title: Session Id - description: The ID of the session to get. - - name: agent_id - in: path - required: true - schema: - type: string - title: Agent Id - description: The ID of the agent to get the session for. + description: The ID of the session to delete. responses: - '200': - description: A Session. + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/Session' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session/{session_id}/turn: - post: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: tags: - - V1Alpha - summary: Create a new turn for an agent. - description: Typed endpoint for proper schema generation. - operationId: create_agent_turn_v1alpha_agents__agent_id__session__session_id__turn_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_session_id_turn_Request' - required: true - responses: - '200': - description: If stream=False, returns a Turn object. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' + - Agents + summary: Retrieve an agent session. + description: Retrieve an agent session by its ID. + operationId: get_agents_session_v1alpha_agents___agent_id___session___session_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the session for. + title: Agent Id + description: The ID of the agent to get the session for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to get. + title: Session Id + description: The ID of the session to get. + - name: turn_ids + in: query + required: false + schema: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: List of turn IDs to filter the session by. + title: Turn Ids + description: List of turn IDs to filter the session by. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Session' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn: + post: + tags: + - Agents + summary: Create a new turn for an agent. + description: Create a new turn for an agent. + operationId: create_agent_turn_v1alpha_agents___agent_id___session___session_id___turn_post + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to create the turn for. + title: Agent Id description: The ID of the agent to create the turn for. - name: session_id in: path required: true schema: type: string + description: The ID of the session to create the turn for. + title: Session Id description: The ID of the session to create the turn for. - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnCreateRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}: get: tags: - - V1Alpha - summary: Retrieve an agent turn by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__get + - Agents + summary: Retrieve an agent turn. + description: Retrieve an agent turn by its ID. + operationId: get_agents_turn_v1alpha_agents___agent_id___session___session_id___turn___turn_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the turn for. title: Agent Id description: The ID of the agent to get the turn for. - name: session_id @@ -570,6 +741,7 @@ paths: required: true schema: type: string + description: The ID of the session to get the turn for. title: Session Id description: The ID of the session to get the turn for. - name: turn_id @@ -577,92 +749,122 @@ paths: required: true schema: type: string + description: The ID of the turn to get. title: Turn Id description: The ID of the turn to get. responses: '200': - description: A Turn. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Turn' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/resume: post: tags: - - V1Alpha - summary: Resume an agent turn with executed tool call responses. - description: Typed endpoint for proper schema generation. - operationId: resume_agent_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__resume_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request' - required: true - responses: - '200': - description: A Turn object if stream is False, otherwise an AsyncIterator - of AgentTurnResponseStreamChunk objects. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' + - Agents + summary: Resume an agent turn. + description: Resume an agent turn with executed tool call responses. + operationId: resume_agent_turn_v1alpha_agents___agent_id___session___session_id___turn___turn_id___resume_post parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to resume. + title: Agent Id description: The ID of the agent to resume. - name: session_id in: path required: true schema: type: string + description: The ID of the session to resume. + title: Session Id description: The ID of the session to resume. - name: turn_id in: path required: true schema: type: string + description: The ID of the turn to resume. + title: Turn Id description: The ID of the turn to resume. - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnResumeRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/step/{{step_id}}: get: tags: - - V1Alpha - summary: Retrieve an agent step by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_step_v1alpha_agents__agent_id__session__session_id__turn__turn_id__step__step_id__get + - Agents + summary: Retrieve an agent step. + description: Retrieve an agent step by its ID. + operationId: get_agents_step_v1alpha_agents___agent_id___session___session_id___turn___turn_id___step___step_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the step for. title: Agent Id description: The ID of the agent to get the step for. - name: session_id @@ -670,6 +872,7 @@ paths: required: true schema: type: string + description: The ID of the session to get the step for. title: Session Id description: The ID of the session to get the step for. - name: turn_id @@ -677,6 +880,7 @@ paths: required: true schema: type: string + description: The ID of the turn to get the step for. title: Turn Id description: The ID of the turn to get the step for. - name: step_id @@ -684,454 +888,588 @@ paths: required: true schema: type: string + description: The ID of the step to get. title: Step Id description: The ID of the step to get. responses: '200': - description: An AgentStepResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AgentStepResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/sessions: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/sessions: get: tags: - - V1Alpha - summary: List all session(s) of a given agent. - description: Query endpoint for proper schema generation. - operationId: list_agent_sessions_v1alpha_agents__agent_id__sessions_get + - Agents + summary: List all sessions of an agent. + description: List all session(s) of a given agent. + operationId: list_agent_sessions_v1alpha_agents___agent_id___sessions_get parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to list sessions for. title: Agent Id description: The ID of the agent to list sessions for. + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of sessions to return. + title: Limit + description: The number of sessions to return. responses: '200': - description: A PaginatedResponse. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/eval/benchmarks: get: tags: - - V1Alpha - summary: List all benchmarks. - description: Response-only endpoint for proper schema generation. + - Benchmarks + summary: List all benchmarks + description: List all benchmarks operationId: list_benchmarks_v1alpha_eval_benchmarks_get responses: '200': - description: A ListBenchmarksResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListBenchmarksResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Alpha - summary: Register a benchmark. - description: Generic endpoint - this would be replaced with actual implementation. + - Benchmarks + summary: Register a benchmark + description: Register a benchmark operationId: register_benchmark_v1alpha_eval_benchmarks_post - parameters: - - name: args - in: query + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterBenchmarkRequest' required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}: delete: tags: - - V1Alpha - summary: Unregister a benchmark. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_benchmark_v1alpha_eval_benchmarks__benchmark_id__delete + - Benchmarks + summary: Unregister a benchmark + description: Unregister a benchmark + operationId: unregister_benchmark_v1alpha_eval_benchmarks___benchmark_id___delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: benchmark_id in: path required: true schema: type: string - description: The ID of the benchmark to unregister. + description: The ID of the benchmark to unregister + title: Benchmark Id + description: The ID of the benchmark to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Benchmarks + summary: Get a benchmark by its ID + description: Get a benchmark by its ID + operationId: get_benchmark_v1alpha_eval_benchmarks___benchmark_id___get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to get + title: Benchmark Id + description: The ID of the benchmark to get responses: '200': description: Successful Response - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: - tags: - - V1Alpha - summary: Get a benchmark by its ID. - description: Query endpoint for proper schema generation. - operationId: get_benchmark_v1alpha_eval_benchmarks__benchmark_id__get - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - title: Benchmark Id - description: The ID of the benchmark to get. - responses: - '200': - description: A Benchmark. content: application/json: schema: $ref: '#/components/schemas/Benchmark' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}/evaluations: - post: - tags: - - V1Alpha - summary: Evaluate a list of rows on a benchmark. - description: Typed endpoint for proper schema generation. - operationId: evaluate_rows_v1alpha_eval_benchmarks__benchmark_id__evaluations_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BenchmarkConfig' - required: true - responses: - '200': - description: EvaluateResponse object containing generations and scores. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/EvaluateResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - description: The ID of the benchmark to run the evaluation on. - /v1alpha/eval/benchmarks/{benchmark_id}/jobs: - post: - tags: - - V1Alpha - summary: Run an evaluation on a benchmark. - description: Typed endpoint for proper schema generation. - operationId: run_eval_v1alpha_eval_benchmarks__benchmark_id__jobs_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BenchmarkConfig' - required: true - responses: - '200': - description: The job that was created to run the evaluation. + description: The client has sent too many requests in a given amount of time. content: application/json: schema: - $ref: '#/components/schemas/Job' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - description: The ID of the benchmark to run the evaluation on. - /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}: - delete: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/evaluations: + post: tags: - - V1Alpha - summary: Cancel a job. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: job_cancel_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__delete + - Eval + summary: Evaluate a list of rows on a benchmark + description: Evaluate a list of rows on a benchmark + operationId: evaluate_rows_v1alpha_eval_benchmarks___benchmark_id___evaluations_post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: benchmark_id in: path required: true schema: type: string - description: The ID of the benchmark to run the evaluation on. - - name: job_id - in: path + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + requestBody: required: true - schema: - type: string - description: The ID of the job to cancel. + content: + application/json: + schema: + $ref: '#/components/schemas/EvaluateRowsRequest' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/EvaluateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs: + post: tags: - - V1Alpha - summary: Get the status of a job. - description: Query endpoint for proper schema generation. - operationId: job_status_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__get + - Eval + summary: Run an evaluation on a benchmark + description: Run an evaluation on a benchmark + operationId: run_eval_v1alpha_eval_benchmarks___benchmark_id___jobs_post parameters: - name: benchmark_id in: path required: true schema: type: string + description: The ID of the benchmark to run the evaluation on title: Benchmark Id - description: The ID of the benchmark to run the evaluation on. - - name: job_id - in: path + description: The ID of the benchmark to run the evaluation on + requestBody: required: true - schema: - type: string - title: Job Id - description: The ID of the job to get the status of. + content: + application/json: + schema: + $ref: '#/components/schemas/BenchmarkConfig' responses: '200': - description: The status of the evaluation job. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Job' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result: - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}: + delete: tags: - - V1Alpha - summary: Get the result of a job. - description: Query endpoint for proper schema generation. - operationId: job_result_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__result_get + - Eval + summary: Cancel a job + description: Cancel a job + operationId: job_cancel_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___delete parameters: - name: benchmark_id in: path required: true schema: type: string + description: The ID of the benchmark to run the evaluation on title: Benchmark Id - description: The ID of the benchmark to run the evaluation on. + description: The ID of the benchmark to run the evaluation on - name: job_id in: path required: true schema: type: string + description: The ID of the job to cancel title: Job Id - description: The ID of the job to get the result of. + description: The ID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Eval + summary: Get the status of a job + description: Get the status of a job + operationId: job_status_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the status of + title: Job Id + description: The ID of the job to get the status of responses: '200': - description: The result of the job. + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}/result: + get: + tags: + - Eval + summary: Get the result of a job + description: Get the result of a job + operationId: job_result_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___result_get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the result of + title: Job Id + description: The ID of the job to get the result of + responses: + '200': + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/EvaluateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/inference/rerank: post: tags: - - V1Alpha - summary: Rerank a list of documents based on their relevance to a query. - description: Typed endpoint for proper schema generation. + - Inference + summary: Rerank a list of documents. + description: Rerank a list of documents based on their relevance to a query. operationId: rerank_v1alpha_inference_rerank_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_inference_rerank_Request' + $ref: '#/components/schemas/Body_rerank_v1alpha_inference_rerank_post' required: true responses: '200': - description: RerankResponse with indices sorted by relevance score (descending). + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RerankResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/job/artifacts: get: tags: - - V1Alpha - summary: Get the artifacts of a training job. - description: Query endpoint for proper schema generation. + - Post Training + summary: Get the artifacts of a training job + description: Get the artifacts of a training job operationId: get_training_job_artifacts_v1alpha_post_training_job_artifacts_get parameters: - name: job_uuid @@ -1139,68 +1477,89 @@ paths: required: true schema: type: string + description: The UUID of the job to get the artifacts of title: Job Uuid - responses: - '200': - description: A PostTrainingJobArtifactsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/post-training/job/cancel: - post: - tags: - - V1Alpha - summary: Cancel a training job. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: cancel_training_job_v1alpha_post_training_job_cancel_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs + description: The UUID of the job to get the artifacts of responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/post-training/job/cancel: + post: + tags: + - Post Training + summary: Cancel a training job + description: Cancel a training job + operationId: cancel_training_job_v1alpha_post_training_job_cancel_post + parameters: + - name: job_uuid + in: query + required: true + schema: + type: string + description: The UUID of the job to cancel + title: Job Uuid + description: The UUID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/job/status: get: tags: - - V1Alpha - summary: Get the status of a training job. - description: Query endpoint for proper schema generation. + - Post Training + summary: Get the status of a training job + description: Get the status of a training job operationId: get_training_job_status_v1alpha_post_training_job_status_get parameters: - name: job_uuid @@ -1208,193 +1567,391 @@ paths: required: true schema: type: string + description: The UUID of the job to get the status of title: Job Uuid + description: The UUID of the job to get the status of responses: '200': - description: A PostTrainingJobStatusResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJobStatusResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/jobs: get: tags: - - V1Alpha - summary: Get all training jobs. - description: Response-only endpoint for proper schema generation. + - Post Training + summary: Get all training jobs + description: Get all training jobs operationId: get_training_jobs_v1alpha_post_training_jobs_get responses: '200': - description: A ListPostTrainingJobsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListPostTrainingJobsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/preference-optimize: post: tags: - - V1Alpha - summary: Run preference optimization of a model. - description: Typed endpoint for proper schema generation. + - Post Training + summary: Run preference optimization of a model + description: Run preference optimization of a model operationId: preference_optimize_v1alpha_post_training_preference_optimize_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/DPOAlignmentConfig' + $ref: '#/components/schemas/PreferenceOptimizeRequest' required: true responses: '200': - description: A PostTrainingJob. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJob' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/supervised-fine-tune: post: tags: - - V1Alpha - summary: Run supervised fine-tuning of a model. - description: Typed endpoint for proper schema generation. + - Post Training + summary: Run supervised fine-tuning of a model + description: Run supervised fine-tuning of a model operationId: supervised_fine_tune_v1alpha_post_training_supervised_fine_tune_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/TrainingConfig' + $ref: '#/components/schemas/SupervisedFineTuneRequest' required: true responses: '200': - description: A PostTrainingJob. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJob' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' components: schemas: + Agent: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + agent_config: + $ref: '#/components/schemas/AgentConfig-Output' + description: Configuration settings for the agent + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the agent was created + type: object + required: + - agent_id + - agent_config + - created_at + title: Agent + description: An agent instance with configuration and metadata. AgentCandidate: properties: type: type: string const: agent title: Type + description: The type of candidate. default: agent config: - $ref: '#/components/schemas/AgentConfig' + $ref: '#/components/schemas/AgentConfig-Input' + description: The configuration for the agent candidate. type: object required: - config title: AgentCandidate description: An agent candidate for evaluation. - AgentConfig: + AgentConfig-Input: properties: sampling_params: - $ref: '#/components/schemas/SamplingParams' + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Input Shields - items: - type: string - type: array output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Output Shields - items: - type: string - type: array toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' title: Toolgroups - items: - anyOf: - - type: string - - $ref: '#/components/schemas/AgentToolGroupWithArgs' - type: array client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' title: Client Tools - items: - $ref: '#/components/schemas/ToolDef' - type: array tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' deprecated: true - $ref: '#/components/schemas/ToolChoice' tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' deprecated: true - $ref: '#/components/schemas/ToolPromptFormat' tool_config: - $ref: '#/components/schemas/ToolConfig' + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' max_infer_iters: + anyOf: + - type: integer + - type: 'null' title: Max Infer Iters default: 10 - type: integer model: type: string title: Model + description: The model identifier to use for the agent instructions: type: string title: Instructions + description: The system instructions for the agent name: + anyOf: + - type: string + - type: 'null' title: Name - type: string + description: Optional name for the agent, used in telemetry and identification enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted default: false - type: boolean response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' title: Response Format - oneOf: - - $ref: '#/components/schemas/JsonSchemaResponseFormat' - - $ref: '#/components/schemas/GrammarResponseFormat' - discriminator: - propertyName: type - mapping: - grammar: '#/components/schemas/GrammarResponseFormat' - json_schema: '#/components/schemas/JsonSchemaResponseFormat' + description: Optional response format configuration + type: object + required: + - model + - instructions + title: AgentConfig + description: Configuration for an agent. + AgentConfig-Output: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + model: + type: string + title: Model + description: The model identifier to use for the agent + instructions: + type: string + title: Instructions + description: The system instructions for the agent + name: + anyOf: + - type: string + - type: 'null' + title: Name + description: Optional name for the agent, used in telemetry and identification + enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' + title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted + default: false + response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' + title: Response Format + description: Optional response format configuration type: object required: - model @@ -1406,6 +1963,7 @@ components: agent_id: type: string title: Agent Id + description: Unique identifier for the created agent type: object required: - agent_id @@ -1416,11 +1974,34 @@ components: session_id: type: string title: Session Id + description: Unique identifier for the created session type: object required: - session_id title: AgentSessionCreateResponse description: Response returned when creating a new agent session. + AgentStepResponse: + properties: + step: + oneOf: + - $ref: '#/components/schemas/InferenceStep-Output' + - $ref: '#/components/schemas/ToolExecutionStep-Output' + - $ref: '#/components/schemas/ShieldCallStep-Output' + - $ref: '#/components/schemas/MemoryRetrievalStep-Output' + title: Step + description: The complete step data and execution details + discriminator: + propertyName: step_type + mapping: + inference: '#/components/schemas/InferenceStep-Output' + memory_retrieval: '#/components/schemas/MemoryRetrievalStep-Output' + shield_call: '#/components/schemas/ShieldCallStep-Output' + tool_execution: '#/components/schemas/ToolExecutionStep-Output' + type: object + required: + - step + title: AgentStepResponse + description: Response containing details of a specific agent step. AgentToolGroupWithArgs: properties: name: @@ -1435,6 +2016,142 @@ components: - name - args title: AgentToolGroupWithArgs + AgentTurnCreateRequest: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + description: List of tool groups to make available for this turn + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + description: Tool configuration to override agent defaults + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + messages: + items: + anyOf: + - $ref: '#/components/schemas/UserMessage-Input' + - $ref: '#/components/schemas/ToolResponseMessage-Input' + type: array + title: Messages + description: List of messages to start the turn with + documents: + anyOf: + - items: + $ref: '#/components/schemas/Document' + type: array + - type: 'null' + title: Documents + description: List of documents to provide to the agent + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - messages + title: AgentTurnCreateRequest + description: Request to create a new turn for an agent. + AgentTurnResumeRequest: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + turn_id: + type: string + title: Turn Id + description: Unique identifier for the turn within a session + tool_responses: + items: + $ref: '#/components/schemas/ToolResponse-Input' + type: array + title: Tool Responses + description: List of tool responses to submit to continue the turn + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - turn_id + - tool_responses + title: AgentTurnResumeRequest + description: Request to resume an agent turn with tool responses. AggregationFunctionType: type: string enum: @@ -1470,9 +2187,11 @@ components: type: array - $ref: '#/components/schemas/URL' title: Content + description: The content of the attachment. mime_type: type: string title: Mime Type + description: The MIME type of the attachment. type: object required: - content @@ -1502,9 +2221,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -1513,15 +2234,18 @@ components: type: string const: benchmark title: Type + description: The resource type, always benchmark default: benchmark dataset_id: type: string title: Dataset Id + description: The ID of the dataset to use for the benchmark scoring_functions: items: type: string type: array title: Scoring Functions + description: The scoring functions to use for the benchmark metadata: additionalProperties: true type: object @@ -1542,6 +2266,7 @@ components: - $ref: '#/components/schemas/ModelCandidate' - $ref: '#/components/schemas/AgentCandidate' title: Eval Candidate + description: The candidate to evaluate. discriminator: propertyName: type mapping: @@ -1561,18 +2286,52 @@ components: regex_parser: '#/components/schemas/RegexParserScoringFnParams' type: object title: Scoring Params - description: Map between scoring function id and parameters for each scoring - function you want to run + description: Map between scoring function id and parameters for each scoring function you want to run. num_examples: + anyOf: + - type: integer + - type: 'null' title: Num Examples - description: Number of examples to evaluate (useful for testing), if not - provided, all examples in the dataset will be evaluated - type: integer + description: The number of examples to evaluate. If not provided, all examples in the dataset will be evaluated. type: object required: - eval_candidate title: BenchmarkConfig description: A benchmark configuration for evaluation. + Body_rerank_v1alpha_inference_rerank_post: + properties: + model: + type: string + title: Model + description: The identifier of the reranking model to use. + query: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + title: Query + description: The search query to rank items against. + items: + items: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + type: array + title: Items + description: List of items to rerank. + max_num_results: + anyOf: + - type: integer + - type: 'null' + title: Max Num Results + description: 'Maximum number of results to return. Default: returns all.' + type: object + required: + - model + - query + - items + title: Body_rerank_v1alpha_inference_rerank_post BuiltinTool: type: string enum: @@ -1581,6 +2340,44 @@ components: - photogen - code_interpreter title: BuiltinTool + Checkpoint: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for the checkpoint. + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the checkpoint was created. + epoch: + type: integer + title: Epoch + description: Training epoch when the checkpoint was saved. + post_training_job_id: + type: string + title: Post Training Job Id + description: Identifier of the training job that created this checkpoint. + path: + type: string + title: Path + description: File system path where the checkpoint is stored. + training_metrics: + anyOf: + - $ref: '#/components/schemas/PostTrainingMetric' + - type: 'null' + description: Training metrics associated with this checkpoint. + type: object + required: + - identifier + - created_at + - epoch + - post_training_job_id + - path + - training_metrics + title: Checkpoint + description: Checkpoint created during training runs. CompletionMessage-Output: properties: role: @@ -1613,17 +2410,34 @@ components: stop_reason: $ref: '#/components/schemas/StopReason' tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/ToolCall' - type: array type: object required: - content - stop_reason title: CompletionMessage - description: A message containing the model's (assistant) response in a chat - conversation. + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." + CreateAgentSessionRequest: + properties: + agent_id: + type: string + title: Agent Id + description: The ID of the agent to create the session for + session_name: + type: string + title: Session Name + description: The name of the session to create + type: object + required: + - agent_id + - session_name + title: CreateAgentSessionRequest + description: Request to create a new session for an agent. DPOAlignmentConfig: properties: beta: @@ -1659,16 +2473,22 @@ components: data_format: $ref: '#/components/schemas/DatasetFormat' validation_dataset_id: + anyOf: + - type: string + - type: 'null' title: Validation Dataset Id - type: string packed: + anyOf: + - type: boolean + - type: 'null' title: Packed default: false - type: boolean train_on_input: + anyOf: + - type: boolean + - type: 'null' title: Train On Input default: false - type: boolean type: object required: - dataset_id @@ -1684,9 +2504,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -1695,6 +2517,7 @@ components: type: string const: dataset title: Type + description: Type of resource, always 'dataset' for datasets default: dataset purpose: $ref: '#/components/schemas/DatasetPurpose' @@ -1720,8 +2543,7 @@ components: - purpose - source title: Dataset - description: Dataset resource for storing and accessing training or evaluation - data. + description: Dataset resource for storing and accessing training or evaluation data. DatasetFormat: type: string enum: @@ -1736,8 +2558,7 @@ components: - eval/question-answer - eval/messages-answer title: DatasetPurpose - description: Purpose of the dataset. Each purpose has a required input data - schema. + description: "Purpose of the dataset. Each purpose has a required input data schema.\n\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, world!\"},\n {\"role\": \"assistant\", \"content\": \"Hello, world!\"},\n ]\n }\n {\n \"question\": \"What is the capital of France?\",\n \"answer\": \"Paris\"\n }\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, my name is John Doe.\"},\n {\"role\": \"assistant\", \"content\": \"Hello, John Doe. How can I help you today?\"},\n {\"role\": \"user\", \"content\": \"What's my name?\"},\n ],\n \"answer\": \"John Doe\"\n }" Document: properties: content: @@ -1763,9 +2584,11 @@ components: type: array - $ref: '#/components/schemas/URL' title: Content + description: The content of the document. mime_type: type: string title: Mime Type + description: The MIME type of the document. type: object required: - content @@ -1775,24 +2598,59 @@ components: EfficiencyConfig: properties: enable_activation_checkpointing: + anyOf: + - type: boolean + - type: 'null' title: Enable Activation Checkpointing default: false - type: boolean enable_activation_offloading: + anyOf: + - type: boolean + - type: 'null' title: Enable Activation Offloading default: false - type: boolean memory_efficient_fsdp_wrap: + anyOf: + - type: boolean + - type: 'null' title: Memory Efficient Fsdp Wrap default: false - type: boolean fsdp_cpu_offload: + anyOf: + - type: boolean + - type: 'null' title: Fsdp Cpu Offload default: false - type: boolean type: object title: EfficiencyConfig description: Configuration for memory and compute efficiency optimizations. + Error: + properties: + status: + type: integer + title: Status + description: HTTP status code + title: + type: string + title: Title + description: Error title, a short summary of the error which is invariant for an error type + detail: + type: string + title: Detail + description: Error detail, a longer human-readable description of the error + instance: + anyOf: + - type: string + - type: 'null' + title: Instance + description: (Optional) A URL which can be used to retrieve more information about the specific occurrence of the error + type: object + required: + - status + - title + - detail + title: Error + description: Error response from the API. Roughly follows RFC 7807. EvaluateResponse: properties: generations: @@ -1801,17 +2659,44 @@ components: type: object type: array title: Generations + description: The generations from the evaluation. scores: additionalProperties: $ref: '#/components/schemas/ScoringResult' type: object title: Scores + description: The scores from the evaluation. Each key in the dict is a scoring function name. type: object required: - generations - scores title: EvaluateResponse description: The response from an evaluation. + EvaluateRowsRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to evaluate. + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the evaluation. + benchmark_config: + $ref: '#/components/schemas/BenchmarkConfig' + description: The configuration for the benchmark. + type: object + required: + - input_rows + - scoring_functions + - benchmark_config + title: EvaluateRowsRequest + description: Request model for evaluating rows. GrammarResponseFormat: properties: type: @@ -1837,8 +2722,7 @@ components: default: greedy type: object title: GreedySamplingStrategy - description: Greedy sampling strategy that selects the highest probability token - at each step. + description: Greedy sampling strategy that selects the highest probability token at each step. ImageContentItem-Input: properties: type: @@ -1852,7 +2736,7 @@ components: required: - image title: ImageContentItem - description: A image content item + description: A image content item. ImageContentItem-Output: properties: type: @@ -1866,23 +2750,31 @@ components: required: - image title: ImageContentItem - description: A image content item + description: A image content item. InferenceStep-Output: properties: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: inference @@ -1890,6 +2782,7 @@ components: default: inference model_response: $ref: '#/components/schemas/CompletionMessage-Output' + description: The response from the LLM. type: object required: - turn_id @@ -1919,7 +2812,7 @@ components: - scheduled - cancelled title: JobStatus - description: Status of a job execution. + description: "Status of a job execution.\n:cvar completed: Job has finished successfully\n:cvar in_progress: Job is currently running\n:cvar failed: Job has failed during execution\n:cvar scheduled: Job is scheduled but not yet started\n:cvar cancelled: Job was cancelled before completion" JsonSchemaResponseFormat: properties: type: @@ -1947,8 +2840,10 @@ components: type: string title: Judge Model prompt_template: + anyOf: + - type: string + - type: 'null' title: Prompt Template - type: string judge_score_regexes: items: type: string @@ -1973,10 +2868,12 @@ components: $ref: '#/components/schemas/Benchmark' type: array title: Data + description: List of benchmark resources type: object required: - data title: ListBenchmarksResponse + description: Response model for listing benchmarks. ListDatasetsResponse: properties: data: @@ -1984,6 +2881,7 @@ components: $ref: '#/components/schemas/Dataset' type: array title: Data + description: List of datasets type: object required: - data @@ -1996,26 +2894,80 @@ components: $ref: '#/components/schemas/PostTrainingJob' type: array title: Data + description: The list of training jobs type: object required: - data title: ListPostTrainingJobsResponse + LoraFinetuningConfig: + properties: + type: + type: string + const: LoRA + title: Type + default: LoRA + lora_attn_modules: + items: + type: string + type: array + title: Lora Attn Modules + apply_lora_to_mlp: + type: boolean + title: Apply Lora To Mlp + apply_lora_to_output: + type: boolean + title: Apply Lora To Output + rank: + type: integer + title: Rank + alpha: + type: integer + title: Alpha + use_dora: + anyOf: + - type: boolean + - type: 'null' + title: Use Dora + default: false + quantize_base: + anyOf: + - type: boolean + - type: 'null' + title: Quantize Base + default: false + type: object + required: + - lora_attn_modules + - apply_lora_to_mlp + - apply_lora_to_output + - rank + - alpha + title: LoraFinetuningConfig + description: Configuration for Low-Rank Adaptation (LoRA) fine-tuning. MemoryRetrievalStep-Output: properties: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: memory_retrieval @@ -2024,6 +2976,7 @@ components: vector_store_ids: type: string title: Vector Store Ids + description: The IDs of the vector databases to retrieve context from. inserted_context: anyOf: - type: string @@ -2046,6 +2999,7 @@ components: text: '#/components/schemas/TextContentItem' type: array title: Inserted Context + description: The context retrieved from the vector databases. type: object required: - turn_id @@ -2060,20 +3014,70 @@ components: type: string const: model title: Type + description: The type of candidate. default: model model: type: string title: Model + description: The model ID to evaluate. sampling_params: $ref: '#/components/schemas/SamplingParams' + description: The sampling parameters for the model. system_message: - $ref: '#/components/schemas/SystemMessage' + anyOf: + - $ref: '#/components/schemas/SystemMessage' + - type: 'null' + description: The system message providing instructions or context to the model. type: object required: - model - sampling_params title: ModelCandidate description: A model candidate for evaluation. + OpenAIChatCompletionContentPartImageParam: + properties: + type: + type: string + const: image_url + title: Type + default: image_url + image_url: + $ref: '#/components/schemas/OpenAIImageURL' + type: object + required: + - image_url + title: OpenAIChatCompletionContentPartImageParam + description: Image content part for OpenAI-compatible chat completion messages. + OpenAIChatCompletionContentPartTextParam: + properties: + type: + type: string + const: text + title: Type + default: text + text: + type: string + title: Text + type: object + required: + - text + title: OpenAIChatCompletionContentPartTextParam + description: Text content part for OpenAI-compatible chat completion messages. + OpenAIImageURL: + properties: + url: + type: string + title: Url + detail: + anyOf: + - type: string + - type: 'null' + title: Detail + type: object + required: + - url + title: OpenAIImageURL + description: Image URL specification for OpenAI-compatible chat completion messages. OptimizerConfig: properties: optimizer_type: @@ -2103,15 +3107,181 @@ components: - sgd title: OptimizerType description: Available optimizer algorithms for training. + PaginatedResponse: + properties: + data: + items: + additionalProperties: true + type: object + type: array + title: Data + description: The list of items for the current page. + has_more: + type: boolean + title: Has More + description: Whether there are more items available after this set. + url: + anyOf: + - type: string + - type: 'null' + title: Url + description: The URL for accessing this list. + type: object + required: + - data + - has_more + - url + title: PaginatedResponse + description: A generic paginated response that follows a simple format. PostTrainingJob: properties: job_uuid: type: string title: Job Uuid + description: The UUID of the job type: object required: - job_uuid title: PostTrainingJob + PostTrainingJobArtifactsResponse: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + title: PostTrainingJobArtifactsResponse + description: Artifacts of a finetuning job. + PostTrainingJobStatusResponse: + properties: + job_uuid: + type: string + title: Job Uuid + status: + $ref: '#/components/schemas/JobStatus' + scheduled_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Scheduled At + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + resources_allocated: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Resources Allocated + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + - status + title: PostTrainingJobStatusResponse + description: Status of a finetuning job. + PostTrainingMetric: + properties: + epoch: + type: integer + title: Epoch + description: Training epoch number. + train_loss: + type: number + title: Train Loss + description: Loss value on the training dataset. + validation_loss: + type: number + title: Validation Loss + description: Loss value on the validation dataset. + perplexity: + type: number + title: Perplexity + description: Perplexity metric indicating model confidence. + type: object + required: + - epoch + - train_loss + - validation_loss + - perplexity + title: PostTrainingMetric + description: Training metrics captured during post-training jobs. + PreferenceOptimizeRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + finetuned_model: + type: string + title: Finetuned Model + description: The model to fine-tune + algorithm_config: + $ref: '#/components/schemas/DPOAlignmentConfig' + description: The algorithm configuration + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + type: object + required: + - job_uuid + - finetuned_model + - algorithm_config + - training_config + - hyperparam_search_config + - logger_config + title: PreferenceOptimizeRequest + description: Request to run preference optimization of a model. + QATFinetuningConfig: + properties: + type: + type: string + const: QAT + title: Type + default: QAT + quantizer_name: + type: string + title: Quantizer Name + group_size: + type: integer + title: Group Size + type: object + required: + - quantizer_name + - group_size + title: QATFinetuningConfig + description: Configuration for Quantization-Aware Training (QAT) fine-tuning. RegexParserScoringFnParams: properties: type: @@ -2134,6 +3304,83 @@ components: type: object title: RegexParserScoringFnParams description: Parameters for regex parser scoring function configuration. + RegisterBenchmarkRequest: + properties: + benchmark_id: + type: string + title: Benchmark Id + description: The ID of the benchmark to register + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to use for the benchmark + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the benchmark + provider_benchmark_id: + anyOf: + - type: string + - type: 'null' + title: Provider Benchmark Id + description: The ID of the provider benchmark to use for the benchmark + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the benchmark + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata to use for the benchmark + type: object + required: + - benchmark_id + - dataset_id + - scoring_functions + title: RegisterBenchmarkRequest + description: Request model for registering a benchmark. + RegisterDatasetRequest: + properties: + purpose: + $ref: '#/components/schemas/DatasetPurpose' + description: The purpose of the dataset + source: + oneOf: + - $ref: '#/components/schemas/URIDataSource' + - $ref: '#/components/schemas/RowsDataSource' + title: Source + description: The data source of the dataset + discriminator: + propertyName: type + mapping: + rows: '#/components/schemas/RowsDataSource' + uri: '#/components/schemas/URIDataSource' + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata for the dataset + dataset_id: + anyOf: + - type: string + - type: 'null' + title: Dataset Id + description: The ID of the dataset. If not provided, an ID will be generated + type: object + required: + - purpose + - source + title: RegisterDatasetRequest + description: Request model for registering a dataset. RerankData: properties: index: @@ -2166,6 +3413,7 @@ components: type: string const: rows title: Type + description: The type of data source default: rows rows: items: @@ -2173,6 +3421,7 @@ components: type: object type: array title: Rows + description: "The dataset is stored in rows. E.g. [{'messages': [{'role': 'user', 'content': 'Hello, world!'}, {'role': 'assistant', 'content': 'Hello, world!'}]}]" type: object required: - rows @@ -2182,13 +3431,18 @@ components: properties: violation_level: $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. user_message: + anyOf: + - type: string + - type: 'null' title: User Message - type: string + description: Message to convey to the user about the violation. metadata: additionalProperties: true type: object title: Metadata + description: Additional metadata including specific violation codes for debugging and telemetry. type: object required: - violation_level @@ -2209,17 +3463,23 @@ components: top_k: '#/components/schemas/TopKSamplingStrategy' top_p: '#/components/schemas/TopPSamplingStrategy' max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer repetition_penalty: + anyOf: + - type: number + - type: 'null' title: Repetition Penalty default: 1.0 - type: number stop: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Stop - items: - type: string - type: array type: object title: SamplingParams description: Sampling parameters. @@ -2231,44 +3491,85 @@ components: type: object type: array title: Score Rows + description: The scoring result for each row. Each row is a map of column name to value aggregated_results: additionalProperties: true type: object title: Aggregated Results + description: Map of metric name to aggregated value type: object required: - score_rows - aggregated_results title: ScoringResult description: A scoring result for a single row. + Session: + properties: + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + session_name: + type: string + title: Session Name + description: Human-readable name for the session + turns: + items: + $ref: '#/components/schemas/Turn' + type: array + title: Turns + description: List of all turns that have occurred in this session + started_at: + type: string + format: date-time + title: Started At + description: Timestamp when the session was created + type: object + required: + - session_id + - session_name + - turns + - started_at + title: Session + description: A single session of an interaction with an Agentic System. ShieldCallStep-Output: properties: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: shield_call title: Step Type default: shield_call violation: - $ref: '#/components/schemas/SafetyViolation' + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: The violation from the shield call. type: object required: - turn_id - step_id - - violation title: ShieldCallStep description: A shield call step in an agent turn. StopReason: @@ -2278,6 +3579,58 @@ components: - end_of_message - out_of_tokens title: StopReason + SupervisedFineTuneRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: Model descriptor for training if not in provider config` + checkpoint_dir: + anyOf: + - type: string + - type: 'null' + title: Checkpoint Dir + description: The directory to save checkpoint(s) to + algorithm_config: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LoraFinetuningConfig' + - $ref: '#/components/schemas/QATFinetuningConfig' + discriminator: + propertyName: type + mapping: + LoRA: '#/components/schemas/LoraFinetuningConfig' + QAT: '#/components/schemas/QATFinetuningConfig' + - type: 'null' + title: Algorithm Config + description: The algorithm configuration + type: object + required: + - job_uuid + - training_config + - hyperparam_search_config + - logger_config + title: SupervisedFineTuneRequest + description: Request to run supervised fine-tuning of a model. SystemMessage: properties: role: @@ -2318,7 +3671,7 @@ components: - append - replace title: SystemMessageBehavior - description: Config for how to override the default system prompt. + description: "Config for how to override the default system prompt.\n\nhttps://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt-\n'{{function_definitions}}' to indicate where the function definitions should be inserted." TextContentItem: properties: type: @@ -2333,7 +3686,7 @@ components: required: - text title: TextContentItem - description: A text content item + description: A text content item. ToolCall: properties: call_id: @@ -2360,48 +3713,67 @@ components: - required - none title: ToolChoice - description: Whether tool use is required or automatic. This is a hint to the - model which may not be followed. It depends on the Instruction Following capabilities - of the model. + description: Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model. ToolConfig: properties: tool_choice: anyOf: - $ref: '#/components/schemas/ToolChoice' - type: string + - type: 'null' title: Tool Choice default: auto tool_prompt_format: - $ref: '#/components/schemas/ToolPromptFormat' + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' system_message_behavior: + anyOf: + - $ref: '#/components/schemas/SystemMessageBehavior' + - type: 'null' default: append - $ref: '#/components/schemas/SystemMessageBehavior' type: object title: ToolConfig - description: Configuration for tool use. + description: "Configuration for tool use.\n\n- `ToolPromptFormat.json`: The tool calls are formatted as a JSON object.\n- `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag.\n- `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls.\n- `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt.\n- `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string\n '{{function_definitions}}' to indicate where the function definitions should be inserted." ToolDef: properties: toolgroup_id: + anyOf: + - type: string + - type: 'null' title: Toolgroup Id - type: string + description: ID of the tool group this tool belongs to name: type: string title: Name + description: Name of the tool description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Human-readable description of what the tool does input_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Input Schema - additionalProperties: true - type: object + description: JSON Schema for tool inputs (MCP inputSchema) output_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Output Schema - additionalProperties: true - type: object + description: JSON Schema for tool outputs (MCP outputSchema) metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object + description: Additional metadata about the tool type: object required: - name @@ -2412,17 +3784,25 @@ components: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: tool_execution @@ -2433,11 +3813,13 @@ components: $ref: '#/components/schemas/ToolCall' type: array title: Tool Calls + description: The tool calls to execute. tool_responses: items: $ref: '#/components/schemas/ToolResponse-Output' type: array title: Tool Responses + description: The tool responses from the tool calls. type: object required: - turn_id @@ -2453,7 +3835,7 @@ components: - function_tag - python_list title: ToolPromptFormat - description: Prompt format for calling custom / zero shot tools. + description: "Prompt format for calling custom / zero shot tools.\n\n:cvar json: JSON format for calling tools. It takes the form:\n {\n \"type\": \"function\",\n \"function\" : {\n \"name\": \"function_name\",\n \"description\": \"function_description\",\n \"parameters\": {...}\n }\n }\n:cvar function_tag: Function tag format, pseudo-XML. This looks like:\n (parameters)\n\n:cvar python_list: Python list. The output is a valid Python expression that can be\n evaluated to a list. Each element in the list is a function call. Example:\n [\"function_name(param1, param2)\", \"function_name(param1, param2)\"]" ToolResponse-Input: properties: call_id: @@ -2487,9 +3869,11 @@ components: type: array title: Content metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object type: object required: - call_id @@ -2530,9 +3914,11 @@ components: type: array title: Content metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object type: object required: - call_id @@ -2540,6 +3926,44 @@ components: - content title: ToolResponse description: Response from a tool invocation. + ToolResponseMessage-Input: + properties: + role: + type: string + const: tool + title: Role + default: tool + call_id: + type: string + title: Call Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + type: object + required: + - call_id + - content + title: ToolResponseMessage + description: A message representing the result of a tool invocation. ToolResponseMessage-Output: properties: role: @@ -2593,8 +4017,7 @@ components: required: - top_k title: TopKSamplingStrategy - description: Top-k sampling strategy that restricts sampling to the k most likely - tokens. + description: Top-k sampling strategy that restricts sampling to the k most likely tokens. TopPSamplingStrategy: properties: type: @@ -2603,19 +4026,22 @@ components: title: Type default: top_p temperature: + anyOf: + - type: number + minimum: 0.0 + - type: 'null' title: Temperature - type: number - minimum: 0.0 top_p: + anyOf: + - type: number + - type: 'null' title: Top P default: 0.95 - type: number type: object required: - temperature title: TopPSamplingStrategy - description: Top-p (nucleus) sampling strategy that samples from the smallest - set of tokens with cumulative probability >= p. + description: Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p. TrainingConfig: properties: n_epochs: @@ -2630,19 +4056,29 @@ components: title: Gradient Accumulation Steps default: 1 max_validation_steps: + anyOf: + - type: integer + - type: 'null' title: Max Validation Steps default: 1 - type: integer data_config: - $ref: '#/components/schemas/DataConfig' + anyOf: + - $ref: '#/components/schemas/DataConfig' + - type: 'null' optimizer_config: - $ref: '#/components/schemas/OptimizerConfig' + anyOf: + - $ref: '#/components/schemas/OptimizerConfig' + - type: 'null' efficiency_config: - $ref: '#/components/schemas/EfficiencyConfig' + anyOf: + - $ref: '#/components/schemas/EfficiencyConfig' + - type: 'null' dtype: + anyOf: + - type: string + - type: 'null' title: Dtype default: bf16 - type: string type: object required: - n_epochs @@ -2653,9 +4089,11 @@ components: turn_id: type: string title: Turn Id + description: Unique identifier for the turn within a session session_id: type: string title: Session Id + description: Unique identifier for the conversation session input_messages: items: anyOf: @@ -2663,6 +4101,7 @@ components: - $ref: '#/components/schemas/ToolResponseMessage-Output' type: array title: Input Messages + description: List of messages that initiated this turn steps: items: oneOf: @@ -2679,21 +4118,30 @@ components: tool_execution: '#/components/schemas/ToolExecutionStep-Output' type: array title: Steps + description: Ordered list of processing steps executed during this turn output_message: $ref: '#/components/schemas/CompletionMessage-Output' + description: The model's generated response containing content and metadata output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment-Output' + type: array + - type: 'null' title: Output Attachments - items: - $ref: '#/components/schemas/Attachment-Output' - type: array + description: Files or media attached to the agent's response started_at: type: string format: date-time title: Started At + description: Timestamp when the turn began completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: Timestamp when the turn finished, if completed type: object required: - turn_id @@ -2710,10 +4158,12 @@ components: type: string const: uri title: Type + description: The type of data source default: uri uri: type: string title: Uri + description: The dataset can be obtained from a URI. E.g. 'https://mywebsite.com/mydata.jsonl', 'lsfs://mydata.jsonl', 'data:csv;base64,{base64_content}' type: object required: - uri @@ -2779,6 +4229,7 @@ components: image: '#/components/schemas/ImageContentItem-Input' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Context type: object required: @@ -2835,6 +4286,7 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Context type: object required: @@ -2848,632 +4300,19 @@ components: - warn - error title: ViolationLevel - description: Severity level of a safety violation. + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" _URLOrData: properties: url: - $ref: '#/components/schemas/URL' + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' data: + anyOf: + - type: string + - type: 'null' contentEncoding: base64 title: Data - type: string type: object title: _URLOrData - description: A URL or a base64 encoded string - __main_____agents_agent_id_session_Request: - properties: - agent_id: - type: string - title: Agent Id - session_name: - type: string - title: Session Name - type: object - required: - - agent_id - - session_name - title: _agents_agent_id_session_Request - __main_____agents_agent_id_session_session_id_turn_Request: - properties: - agent_id: - type: string - title: Agent Id - session_id: - type: string - title: Session Id - messages: - $ref: '#/components/schemas/UserMessage-Input' - stream: - type: boolean - title: Stream - default: false - documents: - $ref: '#/components/schemas/Document' - toolgroups: - anyOf: - - type: string - - $ref: '#/components/schemas/AgentToolGroupWithArgs' - title: Toolgroups - tool_config: - $ref: '#/components/schemas/ToolConfig' - type: object - required: - - agent_id - - session_id - - messages - - documents - - toolgroups - - tool_config - title: _agents_agent_id_session_session_id_turn_Request - __main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request: - properties: - agent_id: - type: string - title: Agent Id - session_id: - type: string - title: Session Id - turn_id: - type: string - title: Turn Id - tool_responses: - $ref: '#/components/schemas/ToolResponse-Input' - stream: - type: boolean - title: Stream - default: false - type: object - required: - - agent_id - - session_id - - turn_id - - tool_responses - title: _agents_agent_id_session_session_id_turn_turn_id_resume_Request - __main_____datasets_Request: - properties: - purpose: - $ref: '#/components/schemas/DatasetPurpose' - metadata: - type: string - title: Metadata - dataset_id: - type: string - title: Dataset Id - type: object - required: - - purpose - - metadata - - dataset_id - title: _datasets_Request - _inference_rerank_Request: - properties: - model: - type: string - title: Model - query: - type: string - title: Query - items: - type: string - title: Items - max_num_results: - type: integer - title: Max Num Results - type: object - required: - - model - - query - - items - - max_num_results - title: _inference_rerank_Request - Error: - description: Error response from the API. Roughly follows RFC 7807. - properties: - status: - title: Status - type: integer - title: - title: Title - type: string - detail: - title: Detail - type: string - instance: - title: Instance - type: string - nullable: true - required: - - status - - title - - detail - title: Error - type: object - Agent: - description: An agent instance with configuration and metadata. - properties: - agent_id: - title: Agent Id - type: string - agent_config: - $ref: '#/components/schemas/AgentConfig' - created_at: - format: date-time - title: Created At - type: string - required: - - agent_id - - agent_config - - created_at - title: Agent - type: object - AgentStepResponse: - description: Response containing details of a specific agent step. - properties: - step: - discriminator: - mapping: - inference: '#/$defs/InferenceStep' - memory_retrieval: '#/$defs/MemoryRetrievalStep' - shield_call: '#/$defs/ShieldCallStep' - tool_execution: '#/$defs/ToolExecutionStep' - propertyName: step_type - oneOf: - - $ref: '#/components/schemas/InferenceStep' - - $ref: '#/components/schemas/ToolExecutionStep' - - $ref: '#/components/schemas/ShieldCallStep' - - $ref: '#/components/schemas/MemoryRetrievalStep' - title: Step - required: - - step - title: AgentStepResponse - type: object - CompletionMessage: - description: A message containing the model's (assistant) response in a chat - conversation. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Content - stop_reason: - $ref: '#/components/schemas/StopReason' - tool_calls: - title: Tool Calls - items: - $ref: '#/components/schemas/ToolCall' - type: array - required: - - content - - stop_reason - title: CompletionMessage - type: object - InferenceStep: - description: An inference step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: inference - default: inference - title: Step Type - type: string - model_response: - $ref: '#/components/schemas/CompletionMessage' - required: - - turn_id - - step_id - - model_response - title: InferenceStep - type: object - MemoryRetrievalStep: - description: A memory retrieval step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: memory_retrieval - default: memory_retrieval - title: Step Type - type: string - vector_store_ids: - title: Vector Store Ids - type: string - inserted_context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Inserted Context - required: - - turn_id - - step_id - - vector_store_ids - - inserted_context - title: MemoryRetrievalStep - type: object - PaginatedResponse: - description: A generic paginated response that follows a simple format. - properties: - data: - items: - additionalProperties: true - type: object - title: Data - type: array - has_more: - title: Has More - type: boolean - url: - title: Url - type: string - nullable: true - required: - - data - - has_more - title: PaginatedResponse - type: object - Session: - description: A single session of an interaction with an Agentic System. - properties: - session_id: - title: Session Id - type: string - session_name: - title: Session Name - type: string - turns: - items: - $ref: '#/components/schemas/Turn' - title: Turns - type: array - started_at: - format: date-time - title: Started At - type: string - required: - - session_id - - session_name - - turns - - started_at - title: Session - type: object - ShieldCallStep: - description: A shield call step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: shield_call - default: shield_call - title: Step Type - type: string - violation: - $ref: '#/components/schemas/SafetyViolation' - required: - - turn_id - - step_id - - violation - title: ShieldCallStep - type: object - ToolExecutionStep: - description: A tool execution step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: tool_execution - default: tool_execution - title: Step Type - type: string - tool_calls: - items: - $ref: '#/components/schemas/ToolCall' - title: Tool Calls - type: array - tool_responses: - items: - $ref: '#/components/schemas/ToolResponse' - title: Tool Responses - type: array - required: - - turn_id - - step_id - - tool_calls - - tool_responses - title: ToolExecutionStep - type: object - ToolResponse: - description: Response from a tool invocation. - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/components/schemas/BuiltinTool' - - type: string - title: Tool Name - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Content - metadata: - title: Metadata - additionalProperties: true - type: object - nullable: true - required: - - call_id - - tool_name - - content - title: ToolResponse - type: object - Checkpoint: - description: Checkpoint created during training runs. - properties: - identifier: - title: Identifier - type: string - created_at: - format: date-time - title: Created At - type: string - epoch: - title: Epoch - type: integer - post_training_job_id: - title: Post Training Job Id - type: string - path: - title: Path - type: string - training_metrics: - $ref: '#/components/schemas/PostTrainingMetric' - nullable: true - required: - - identifier - - created_at - - epoch - - post_training_job_id - - path - title: Checkpoint - type: object - PostTrainingJobArtifactsResponse: - description: Artifacts of a finetuning job. - properties: - job_uuid: - title: Job Uuid - type: string - checkpoints: - items: - $ref: '#/components/schemas/Checkpoint' - title: Checkpoints - type: array - required: - - job_uuid - title: PostTrainingJobArtifactsResponse - type: object - PostTrainingJobStatusResponse: - description: Status of a finetuning job. - properties: - job_uuid: - title: Job Uuid - type: string - status: - $ref: '#/components/schemas/JobStatus' - scheduled_at: - title: Scheduled At - format: date-time - type: string - nullable: true - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - resources_allocated: - title: Resources Allocated - additionalProperties: true - type: object - nullable: true - checkpoints: - items: - $ref: '#/components/schemas/Checkpoint' - title: Checkpoints - type: array - required: - - job_uuid - - status - title: PostTrainingJobStatusResponse - type: object - ImageContentItem: - description: A image content item - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/components/schemas/_URLOrData' - required: - - image - title: ImageContentItem - type: object - PostTrainingMetric: - description: Training metrics captured during post-training jobs. - properties: - epoch: - title: Epoch - type: integer - train_loss: - title: Train Loss - type: number - validation_loss: - title: Validation Loss - type: number - perplexity: - title: Perplexity - type: number - required: - - epoch - - train_loss - - validation_loss - - perplexity - title: PostTrainingMetric - type: object - responses: - BadRequest400: - description: The request was invalid or malformed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 400 - title: Bad Request - detail: The request was invalid or malformed - TooManyRequests429: - description: The client has sent too many requests in a given amount of time - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 429 - title: Too Many Requests - detail: You have exceeded the rate limit. Please try again later. - InternalServerError500: - description: The server encountered an unexpected error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 500 - title: Internal Server Error - detail: An unexpected error occurred. Our team has been notified. - DefaultError: - description: An unexpected error occurred - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + description: A URL or a base64 encoded string. diff --git a/docs/static/llama-stack-spec.json b/docs/static/llama-stack-spec.json deleted file mode 100644 index 396640dab..000000000 --- a/docs/static/llama-stack-spec.json +++ /dev/null @@ -1,11541 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Llama Stack API", - "description": "A comprehensive API for building and deploying AI applications", - "version": "1.0.0" - }, - "servers": [ - { - "url": "https://api.llamastack.com", - "description": "Production server" - }, - { - "url": "https://staging-api.llamastack.com", - "description": "Staging server" - } - ], - "paths": { - "/v1/batches": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all batches for the current user.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_batches_v1_batches_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - } - ], - "responses": { - "200": { - "description": "A list of batch objects.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListBatchesResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create a new batch for processing multiple API requests.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_batch_v1_batches_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_batches_Request" - } - } - } - }, - "responses": { - "200": { - "description": "The created batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/batches/{batch_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve information about a specific batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "retrieve_batch_v1_batches__batch_id__get", - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the batch to retrieve." - } - ], - "responses": { - "200": { - "description": "The batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/batches/{batch_id}/cancel": { - "post": { - "tags": [ - "V1" - ], - "summary": "Cancel a batch that is in progress.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "cancel_batch_v1_batches__batch_id__cancel_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_batches_batch_id_cancel_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The updated batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the batch to cancel." - } - ] - } - }, - "/v1/chat/completions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List chat completions.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_chat_completions_v1_chat_completions_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "model", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Model" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "A ListOpenAIChatCompletionResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIChatCompletionResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create chat completions.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_chat_completion_v1_chat_completions_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIChatCompletionRequestWithExtraBody" - } - } - } - }, - "responses": { - "200": { - "description": "An OpenAIChatCompletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIChatCompletion" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/chat/completions/{completion_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get chat completion.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_chat_completion_v1_chat_completions__completion_id__get", - "parameters": [ - { - "name": "completion_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Completion Id" - }, - "description": "ID of the chat completion." - } - ], - "responses": { - "200": { - "description": "A OpenAICompletionWithInputMessages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletionWithInputMessages" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/completions": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create completion.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_completion_v1_completions_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletionRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An OpenAICompletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletion" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/conversations": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create a conversation.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_conversation_v1_conversations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_conversations_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The created conversation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Conversation" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/conversations/{conversation_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a conversation.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_conversation_v1_conversations__conversation_id__delete", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - } - ], - "responses": { - "200": { - "description": "The deleted conversation resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationDeletedResource" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve a conversation.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_conversation_v1_conversations__conversation_id__get", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - } - ], - "responses": { - "200": { - "description": "The conversation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Conversation" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Update a conversation.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "update_conversation_v1_conversations__conversation_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_conversations_conversation_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "The updated conversation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Conversation" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The conversation identifier." - } - ] - } - }, - "/v1/conversations/{conversation_id}/items": { - "get": { - "tags": [ - "V1" - ], - "summary": "List items.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_items_v1_conversations__conversation_id__items_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "include", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/ConversationItemInclude" - } - }, - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Order" - } - }, - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - } - ], - "responses": { - "200": { - "description": "List of conversation items.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationItemList" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create items.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "add_items_v1_conversations__conversation_id__items_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_conversations_conversation_id_items_Request" - } - } - } - }, - "responses": { - "200": { - "description": "List of created items.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationItemList" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The conversation identifier." - } - ] - } - }, - "/v1/conversations/{conversation_id}/items/{item_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete an item.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_conversation_item_v1_conversations__conversation_id__items__item_id__delete", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - }, - { - "name": "item_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Item Id" - }, - "description": "The item identifier." - } - ], - "responses": { - "200": { - "description": "The deleted item resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationItemDeletedResource" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve an item.", - "description": "Query endpoint for proper schema generation.", - "operationId": "retrieve_v1_conversations__conversation_id__items__item_id__get", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - }, - { - "name": "item_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Item Id" - }, - "description": "The item identifier." - } - ], - "responses": { - "200": { - "description": "The conversation item.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/embeddings": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create embeddings.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_embeddings_v1_embeddings_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIEmbeddingsRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An OpenAIEmbeddingsResponse containing the embeddings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIEmbeddingsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "List files.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_v1_files_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "purpose", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/OpenAIFilePurpose" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10000, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "An ListOpenAIFileResponse containing the list of files.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIFileResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Upload file.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "openai_upload_file_v1_files_post", - "responses": { - "200": { - "description": "An OpenAIFileObject representing the uploaded file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/files/{file_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_file_v1_files__file_id__delete", - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "An OpenAIFileDeleteResponse indicating successful deletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_file_v1_files__file_id__get", - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "An OpenAIFileObject containing file information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/files/{file_id}/content": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve file content.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "openai_retrieve_file_content_v1_files__file_id__content_get", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "The raw file content as a binary response.", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/health": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get health status.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "health_v1_health_get", - "responses": { - "200": { - "description": "Health information indicating if the service is operational.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthInfo" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/inspect/routes": { - "get": { - "tags": [ - "V1" - ], - "summary": "List routes.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_routes_v1_inspect_routes_get", - "responses": { - "200": { - "description": "Response containing information about all available routes.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListRoutesResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/models": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all models.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_models_v1_models_get", - "responses": { - "200": { - "description": "A ListModelsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListModelsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "register_model_v1_models_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_models_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Model.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Model" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/models/{model_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister model.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_model_v1_models__model_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "model_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: model_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get model.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_model_v1_models__model_id__get", - "parameters": [ - { - "name": "model_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Model Id" - } - } - ], - "responses": { - "200": { - "description": "A Model.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Model" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/moderations": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create moderation.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_moderation_v1_moderations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_moderations_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A moderation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModerationObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/prompts": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all prompts.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_prompts_v1_prompts_get", - "responses": { - "200": { - "description": "A ListPromptsResponse containing all prompts.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPromptsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create prompt.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_prompt_v1_prompts_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_prompts_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The created Prompt resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/prompts/{prompt_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete prompt.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_prompt_v1_prompts__prompt_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The identifier of the prompt to delete." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get prompt.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_prompt_v1_prompts__prompt_id__get", - "parameters": [ - { - "name": "version", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Version" - } - }, - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Prompt Id" - }, - "description": "The identifier of the prompt to get." - } - ], - "responses": { - "200": { - "description": "A Prompt resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Update prompt.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "update_prompt_v1_prompts__prompt_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_prompts_prompt_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "The updated Prompt resource with incremented version.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The identifier of the prompt to update." - } - ] - } - }, - "/v1/prompts/{prompt_id}/set-default-version": { - "post": { - "tags": [ - "V1" - ], - "summary": "Set prompt version.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "set_default_version_v1_prompts__prompt_id__set_default_version_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_prompts_prompt_id_set_default_version_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The prompt with the specified version now set as default.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The identifier of the prompt." - } - ] - } - }, - "/v1/prompts/{prompt_id}/versions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List prompt versions.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_prompt_versions_v1_prompts__prompt_id__versions_get", - "parameters": [ - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Prompt Id" - }, - "description": "The identifier of the prompt to list versions for." - } - ], - "responses": { - "200": { - "description": "A ListPromptsResponse containing all versions of the prompt.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPromptsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/providers": { - "get": { - "tags": [ - "V1" - ], - "summary": "List providers.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_providers_v1_providers_get", - "responses": { - "200": { - "description": "A ListProvidersResponse containing information about all providers.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListProvidersResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/providers/{provider_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get provider.", - "description": "Query endpoint for proper schema generation.", - "operationId": "inspect_provider_v1_providers__provider_id__get", - "parameters": [ - { - "name": "provider_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Provider Id" - }, - "description": "The ID of the provider to inspect." - } - ], - "responses": { - "200": { - "description": "A ProviderInfo object containing the provider's details.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderInfo" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/responses": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all responses.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_openai_responses_v1_responses_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "model", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Model" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 50, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "A ListOpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create a model response.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_openai_response_v1_responses_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_responses_Request" - } - } - } - }, - "responses": { - "200": { - "description": "An OpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/responses/{response_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a response.", - "description": "Query endpoint for proper schema generation.", - "operationId": "delete_openai_response_v1_responses__response_id__delete", - "parameters": [ - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the OpenAI response to delete." - } - ], - "responses": { - "200": { - "description": "An OpenAIDeleteResponseObject", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIDeleteResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a model response.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_openai_response_v1_responses__response_id__get", - "parameters": [ - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the OpenAI response to retrieve." - } - ], - "responses": { - "200": { - "description": "An OpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/responses/{response_id}/input_items": { - "get": { - "tags": [ - "V1" - ], - "summary": "List input items.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_openai_response_input_items_v1_responses__response_id__input_items_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "include", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Include" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - }, - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the response to retrieve input items for." - } - ], - "responses": { - "200": { - "description": "An ListOpenAIResponseInputItem.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIResponseInputItem" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/safety/run-shield": { - "post": { - "tags": [ - "V1" - ], - "summary": "Run shield.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_shield_v1_safety_run_shield_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_safety_run_shield_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A RunShieldResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RunShieldResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/scoring-functions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all scoring functions.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_scoring_functions_v1_scoring_functions_get", - "responses": { - "200": { - "description": "A ListScoringFunctionsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListScoringFunctionsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a scoring function.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "register_scoring_function_v1_scoring_functions_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/scoring-functions/{scoring_fn_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a scoring function.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_scoring_function_v1_scoring_functions__scoring_fn_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "scoring_fn_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: scoring_fn_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a scoring function by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_scoring_function_v1_scoring_functions__scoring_fn_id__get", - "parameters": [ - { - "name": "scoring_fn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Scoring Fn Id" - } - } - ], - "responses": { - "200": { - "description": "A ScoringFn.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScoringFn" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/scoring/score": { - "post": { - "tags": [ - "V1" - ], - "summary": "Score a list of rows.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "score_v1_scoring_score_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_scoring_score_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A ScoreResponse object containing rows and aggregated results.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScoreResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/scoring/score-batch": { - "post": { - "tags": [ - "V1" - ], - "summary": "Score a batch of rows.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "score_batch_v1_scoring_score_batch_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_scoring_score_batch_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A ScoreBatchResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScoreBatchResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/shields": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all shields.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_shields_v1_shields_get", - "responses": { - "200": { - "description": "A ListShieldsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListShieldsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a shield.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "register_shield_v1_shields_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_shields_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Shield.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Shield" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/shields/{identifier}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a shield.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_shield_v1_shields__identifier__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: identifier" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a shield by its identifier.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_shield_v1_shields__identifier__get", - "parameters": [ - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Identifier" - } - } - ], - "responses": { - "200": { - "description": "A Shield.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Shield" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tool-runtime/invoke": { - "post": { - "tags": [ - "V1" - ], - "summary": "Run a tool with the given arguments.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "invoke_tool_v1_tool_runtime_invoke_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_tool_runtime_invoke_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A ToolInvocationResult.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolInvocationResult" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/tool-runtime/list-tools": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all tools in the runtime.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_runtime_tools_v1_tool_runtime_list_tools_get", - "parameters": [ - { - "name": "tool_group_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Tool Group Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/URL" - } - } - } - }, - "responses": { - "200": { - "description": "A ListToolDefsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListToolDefsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tool-runtime/rag-tool/insert": { - "post": { - "tags": [ - "V1" - ], - "summary": "Index documents so they can be used by the RAG system.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "rag_tool_insert_v1_tool_runtime_rag_tool_insert_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tool-runtime/rag-tool/query": { - "post": { - "tags": [ - "V1" - ], - "summary": "Query the RAG system for context; typically invoked by the agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "rag_tool_query_v1_tool_runtime_rag_tool_query_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_tool_runtime_rag_tool_query_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "RAGQueryResult containing the retrieved content and metadata", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RAGQueryResult" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/toolgroups": { - "get": { - "tags": [ - "V1" - ], - "summary": "List tool groups with optional provider.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_tool_groups_v1_toolgroups_get", - "responses": { - "200": { - "description": "A ListToolGroupsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListToolGroupsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a tool group.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "register_tool_group_v1_toolgroups_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/toolgroups/{toolgroup_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a tool group.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_toolgroup_v1_toolgroups__toolgroup_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "toolgroup_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: toolgroup_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a tool group by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_tool_group_v1_toolgroups__toolgroup_id__get", - "parameters": [ - { - "name": "toolgroup_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Toolgroup Id" - } - } - ], - "responses": { - "200": { - "description": "A ToolGroup.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolGroup" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tools": { - "get": { - "tags": [ - "V1" - ], - "summary": "List tools with optional tool group.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_tools_v1_tools_get", - "parameters": [ - { - "name": "toolgroup_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Toolgroup Id" - } - } - ], - "responses": { - "200": { - "description": "A ListToolDefsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListToolDefsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tools/{tool_name}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get a tool by its name.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_tool_v1_tools__tool_name__get", - "parameters": [ - { - "name": "tool_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Tool Name" - } - } - ], - "responses": { - "200": { - "description": "A ToolDef.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolDef" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector-io/insert": { - "post": { - "tags": [ - "V1" - ], - "summary": "Insert chunks into a vector database.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "insert_chunks_v1_vector_io_insert_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector-io/query": { - "post": { - "tags": [ - "V1" - ], - "summary": "Query chunks from a vector database.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "query_chunks_v1_vector_io_query_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_io_query_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A QueryChunksResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryChunksResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/vector_stores": { - "get": { - "tags": [ - "V1" - ], - "summary": "Returns a list of vector stores.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_vector_stores_v1_vector_stores_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - } - ], - "responses": { - "200": { - "description": "A VectorStoreListResponse containing the list of vector stores.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreListResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Creates a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_create_vector_store_v1_vector_stores_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICreateVectorStoreRequestWithExtraBody" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreObject representing the created vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_vector_store_v1_vector_stores__vector_store_id__delete", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to delete." - } - ], - "responses": { - "200": { - "description": "A VectorStoreDeleteResponse indicating the deletion status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_v1_vector_stores__vector_store_id__get", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to retrieve." - } - ], - "responses": { - "200": { - "description": "A VectorStoreObject representing the vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Updates a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_update_vector_store_v1_vector_stores__vector_store_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreObject representing the updated vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to update." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create a vector store file batch.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_create_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICreateVectorStoreFileBatchRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the created file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to create the file batch for." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve a vector store file batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__get", - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the file batch to retrieve." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file batch." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": { - "post": { - "tags": [ - "V1" - ], - "summary": "Cancels a vector store file batch.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_cancel_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__cancel_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the cancelled file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file batch to cancel." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store containing the file batch." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "Returns a list of vector store files in a batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_in_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__files_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "filter", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Filter" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - }, - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the file batch to list files from." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file batch." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFilesListInBatchResponse containing the list of files in the batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFilesListInBatchResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "List files in a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_in_vector_store_v1_vector_stores__vector_store_id__files_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "filter", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Filter" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to list files from." - } - ], - "responses": { - "200": { - "description": "A VectorStoreListFilesResponse containing the list of files.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreListFilesResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Attach a file to a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_files_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the attached file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to attach the file to." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/files/{file_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__delete", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to delete." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to delete." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileDeleteResponse indicating the deletion status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__get", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to retrieve." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to retrieve." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Updates a vector store file.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_update_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_files_file_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the updated file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store containing the file to update." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file to update." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/files/{file_id}/content": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves the contents of a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_contents_v1_vector_stores__vector_store_id__files__file_id__content_get", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to retrieve." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to retrieve." - } - ], - "responses": { - "200": { - "description": "A list of InterleavedContent representing the file contents.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileContentsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}/search": { - "post": { - "tags": [ - "V1" - ], - "summary": "Search for chunks in a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_search_vector_store_v1_vector_stores__vector_store_id__search_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_search_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreSearchResponse containing the search results.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreSearchResponsePage" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to search." - } - ] - } - }, - "/v1/version": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get version.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "version_v1_version_get", - "responses": { - "200": { - "description": "Version information containing the service version number.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VersionInfo" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - } - }, - "components": { - "schemas": { - "AgentTurnInputType": { - "properties": { - "type": { - "type": "string", - "const": "agent_turn_input", - "title": "Type", - "default": "agent_turn_input" - } - }, - "type": "object", - "title": "AgentTurnInputType", - "description": "Parameter type for agent turn input." - }, - "AggregationFunctionType": { - "type": "string", - "enum": [ - "average", - "weighted_average", - "median", - "categorical_count", - "accuracy" - ], - "title": "AggregationFunctionType", - "description": "Types of aggregation functions for scoring results." - }, - "AllowedToolsFilter": { - "properties": { - "tool_names": { - "title": "Tool Names", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "AllowedToolsFilter", - "description": "Filter configuration for restricting which MCP tools can be used." - }, - "ApprovalFilter": { - "properties": { - "always": { - "title": "Always", - "items": { - "type": "string" - }, - "type": "array" - }, - "never": { - "title": "Never", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "ApprovalFilter", - "description": "Filter configuration for MCP tool approval requirements." - }, - "ArrayType": { - "properties": { - "type": { - "type": "string", - "const": "array", - "title": "Type", - "default": "array" - } - }, - "type": "object", - "title": "ArrayType", - "description": "Parameter type for array values." - }, - "BasicScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "basic", - "title": "Type", - "default": "basic" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "BasicScoringFnParams", - "description": "Parameters for basic scoring function configuration." - }, - "Batch": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "completion_window": { - "type": "string", - "title": "Completion Window" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "endpoint": { - "type": "string", - "title": "Endpoint" - }, - "input_file_id": { - "type": "string", - "title": "Input File Id" - }, - "object": { - "type": "string", - "const": "batch", - "title": "Object" - }, - "status": { - "type": "string", - "enum": [ - "validating", - "failed", - "in_progress", - "finalizing", - "completed", - "expired", - "cancelling", - "cancelled" - ], - "title": "Status" - }, - "cancelled_at": { - "title": "Cancelled At", - "type": "integer" - }, - "cancelling_at": { - "title": "Cancelling At", - "type": "integer" - }, - "completed_at": { - "title": "Completed At", - "type": "integer" - }, - "error_file_id": { - "title": "Error File Id", - "type": "string" - }, - "errors": { - "$ref": "#/components/schemas/Errors" - }, - "expired_at": { - "title": "Expired At", - "type": "integer" - }, - "expires_at": { - "title": "Expires At", - "type": "integer" - }, - "failed_at": { - "title": "Failed At", - "type": "integer" - }, - "finalizing_at": { - "title": "Finalizing At", - "type": "integer" - }, - "in_progress_at": { - "title": "In Progress At", - "type": "integer" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "model": { - "title": "Model", - "type": "string" - }, - "output_file_id": { - "title": "Output File Id", - "type": "string" - }, - "request_counts": { - "$ref": "#/components/schemas/BatchRequestCounts" - }, - "usage": { - "$ref": "#/components/schemas/BatchUsage" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "id", - "completion_window", - "created_at", - "endpoint", - "input_file_id", - "object", - "status" - ], - "title": "Batch" - }, - "BatchError": { - "properties": { - "code": { - "title": "Code", - "type": "string" - }, - "line": { - "title": "Line", - "type": "integer" - }, - "message": { - "title": "Message", - "type": "string" - }, - "param": { - "title": "Param", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "title": "BatchError" - }, - "BatchRequestCounts": { - "properties": { - "completed": { - "type": "integer", - "title": "Completed" - }, - "failed": { - "type": "integer", - "title": "Failed" - }, - "total": { - "type": "integer", - "title": "Total" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "completed", - "failed", - "total" - ], - "title": "BatchRequestCounts" - }, - "BatchUsage": { - "properties": { - "input_tokens": { - "type": "integer", - "title": "Input Tokens" - }, - "input_tokens_details": { - "$ref": "#/components/schemas/InputTokensDetails" - }, - "output_tokens": { - "type": "integer", - "title": "Output Tokens" - }, - "output_tokens_details": { - "$ref": "#/components/schemas/OutputTokensDetails" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "input_tokens", - "input_tokens_details", - "output_tokens", - "output_tokens_details", - "total_tokens" - ], - "title": "BatchUsage" - }, - "BooleanType": { - "properties": { - "type": { - "type": "string", - "const": "boolean", - "title": "Type", - "default": "boolean" - } - }, - "type": "object", - "title": "BooleanType", - "description": "Parameter type for boolean values." - }, - "ChatCompletionInputType": { - "properties": { - "type": { - "type": "string", - "const": "chat_completion_input", - "title": "Type", - "default": "chat_completion_input" - } - }, - "type": "object", - "title": "ChatCompletionInputType", - "description": "Parameter type for chat completion input." - }, - "Chunk-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "chunk_id": { - "type": "string", - "title": "Chunk Id" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - }, - "embedding": { - "title": "Embedding", - "items": { - "type": "number" - }, - "type": "array" - }, - "chunk_metadata": { - "$ref": "#/components/schemas/ChunkMetadata" - } - }, - "type": "object", - "required": [ - "content", - "chunk_id" - ], - "title": "Chunk", - "description": "A chunk of content that can be inserted into a vector database." - }, - "ChunkMetadata": { - "properties": { - "chunk_id": { - "title": "Chunk Id", - "type": "string" - }, - "document_id": { - "title": "Document Id", - "type": "string" - }, - "source": { - "title": "Source", - "type": "string" - }, - "created_timestamp": { - "title": "Created Timestamp", - "type": "integer" - }, - "updated_timestamp": { - "title": "Updated Timestamp", - "type": "integer" - }, - "chunk_window": { - "title": "Chunk Window", - "type": "string" - }, - "chunk_tokenizer": { - "title": "Chunk Tokenizer", - "type": "string" - }, - "chunk_embedding_model": { - "title": "Chunk Embedding Model", - "type": "string" - }, - "chunk_embedding_dimension": { - "title": "Chunk Embedding Dimension", - "type": "integer" - }, - "content_token_count": { - "title": "Content Token Count", - "type": "integer" - }, - "metadata_token_count": { - "title": "Metadata Token Count", - "type": "integer" - } - }, - "type": "object", - "title": "ChunkMetadata", - "description": "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." - }, - "CompletionInputType": { - "properties": { - "type": { - "type": "string", - "const": "completion_input", - "title": "Type", - "default": "completion_input" - } - }, - "type": "object", - "title": "CompletionInputType", - "description": "Parameter type for completion input." - }, - "Conversation": { - "properties": { - "id": { - "type": "string", - "title": "Id", - "description": "The unique ID of the conversation." - }, - "object": { - "type": "string", - "const": "conversation", - "title": "Object", - "description": "The object type, which is always conversation.", - "default": "conversation" - }, - "created_at": { - "type": "integer", - "title": "Created At", - "description": "The time at which the conversation was created, measured in seconds since the Unix epoch." - }, - "metadata": { - "title": "Metadata", - "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.", - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "items": { - "title": "Items", - "description": "Initial items to include in the conversation context. You may add up to 20 items at a time.", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "id", - "created_at" - ], - "title": "Conversation", - "description": "OpenAI-compatible conversation object." - }, - "ConversationItemInclude": { - "type": "string", - "enum": [ - "web_search_call.action.sources", - "code_interpreter_call.outputs", - "computer_call_output.output.image_url", - "file_search_call.results", - "message.input_image.image_url", - "message.output_text.logprobs", - "reasoning.encrypted_content" - ], - "title": "ConversationItemInclude", - "description": "Specify additional output data to include in the model response." - }, - "ConversationItemList": { - "properties": { - "object": { - "type": "string", - "title": "Object", - "description": "Object type", - "default": "list" - }, - "data": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Output" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/components/schemas/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Output", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "type": "array", - "title": "Data", - "description": "List of conversation items" - }, - "first_id": { - "title": "First Id", - "description": "The ID of the first item in the list", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "description": "The ID of the last item in the list", - "type": "string" - }, - "has_more": { - "type": "boolean", - "title": "Has More", - "description": "Whether there are more items available", - "default": false - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ConversationItemList", - "description": "List of conversation items with pagination." - }, - "DefaultRAGQueryGeneratorConfig": { - "properties": { - "type": { - "type": "string", - "const": "default", - "title": "Type", - "default": "default" - }, - "separator": { - "type": "string", - "title": "Separator", - "default": " " - } - }, - "type": "object", - "title": "DefaultRAGQueryGeneratorConfig", - "description": "Configuration for the default RAG query generator." - }, - "Errors": { - "properties": { - "data": { - "title": "Data", - "items": { - "$ref": "#/components/schemas/BatchError" - }, - "type": "array" - }, - "object": { - "title": "Object", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "title": "Errors" - }, - "HealthInfo": { - "properties": { - "status": { - "$ref": "#/components/schemas/HealthStatus" - } - }, - "type": "object", - "required": [ - "status" - ], - "title": "HealthInfo", - "description": "Health status information for the service." - }, - "HealthStatus": { - "type": "string", - "enum": [ - "OK", - "Error", - "Not Implemented" - ], - "title": "HealthStatus" - }, - "ImageContentItem-Output": { - "properties": { - "type": { - "type": "string", - "const": "image", - "title": "Type", - "default": "image" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "type": "object", - "required": [ - "image" - ], - "title": "ImageContentItem", - "description": "A image content item" - }, - "InputTokensDetails": { - "properties": { - "cached_tokens": { - "type": "integer", - "title": "Cached Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "cached_tokens" - ], - "title": "InputTokensDetails" - }, - "JsonType": { - "properties": { - "type": { - "type": "string", - "const": "json", - "title": "Type", - "default": "json" - } - }, - "type": "object", - "title": "JsonType", - "description": "Parameter type for JSON values." - }, - "LLMAsJudgeScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "llm_as_judge", - "title": "Type", - "default": "llm_as_judge" - }, - "judge_model": { - "type": "string", - "title": "Judge Model" - }, - "prompt_template": { - "title": "Prompt Template", - "type": "string" - }, - "judge_score_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Judge Score Regexes", - "description": "Regexes to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "required": [ - "judge_model" - ], - "title": "LLMAsJudgeScoringFnParams", - "description": "Parameters for LLM-as-judge scoring function configuration." - }, - "LLMRAGQueryGeneratorConfig": { - "properties": { - "type": { - "type": "string", - "const": "llm", - "title": "Type", - "default": "llm" - }, - "model": { - "type": "string", - "title": "Model" - }, - "template": { - "type": "string", - "title": "Template" - } - }, - "type": "object", - "required": [ - "model", - "template" - ], - "title": "LLMRAGQueryGeneratorConfig", - "description": "Configuration for the LLM-based RAG query generator." - }, - "ListModelsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Model" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListModelsResponse" - }, - "ListPromptsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Prompt" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListPromptsResponse", - "description": "Response model to list prompts." - }, - "ListProvidersResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ProviderInfo" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListProvidersResponse", - "description": "Response containing a list of all available providers." - }, - "ListRoutesResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/RouteInfo" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListRoutesResponse", - "description": "Response containing a list of all available API routes." - }, - "ListScoringFunctionsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ScoringFn-Output" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListScoringFunctionsResponse" - }, - "ListShieldsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Shield" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListShieldsResponse" - }, - "ListToolGroupsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ToolGroup" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListToolGroupsResponse", - "description": "Response containing a list of tool groups." - }, - "MCPListToolsTool": { - "properties": { - "input_schema": { - "additionalProperties": true, - "type": "object", - "title": "Input Schema" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - } - }, - "type": "object", - "required": [ - "input_schema", - "name" - ], - "title": "MCPListToolsTool", - "description": "Tool definition returned by MCP list tools operation." - }, - "Model": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "model", - "title": "Type", - "default": "model" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this model" - }, - "model_type": { - "$ref": "#/components/schemas/ModelType", - "default": "llm" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "Model", - "description": "A model resource representing an AI model registered in Llama Stack." - }, - "ModelType": { - "type": "string", - "enum": [ - "llm", - "embedding", - "rerank" - ], - "title": "ModelType", - "description": "Enumeration of supported model types in Llama Stack." - }, - "ModerationObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "model": { - "type": "string", - "title": "Model" - }, - "results": { - "items": { - "$ref": "#/components/schemas/ModerationObjectResults" - }, - "type": "array", - "title": "Results" - } - }, - "type": "object", - "required": [ - "id", - "model", - "results" - ], - "title": "ModerationObject", - "description": "A moderation object." - }, - "ModerationObjectResults": { - "properties": { - "flagged": { - "type": "boolean", - "title": "Flagged" - }, - "categories": { - "title": "Categories", - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - "category_applied_input_types": { - "title": "Category Applied Input Types", - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "category_scores": { - "title": "Category Scores", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "user_message": { - "title": "User Message", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "flagged" - ], - "title": "ModerationObjectResults", - "description": "A moderation object." - }, - "NumberType": { - "properties": { - "type": { - "type": "string", - "const": "number", - "title": "Type", - "default": "number" - } - }, - "type": "object", - "title": "NumberType", - "description": "Parameter type for numeric values." - }, - "ObjectType": { - "properties": { - "type": { - "type": "string", - "const": "object", - "title": "Type", - "default": "object" - } - }, - "type": "object", - "title": "ObjectType", - "description": "Parameter type for object values." - }, - "OpenAIAssistantMessageParam-Input": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIAssistantMessageParam", - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request." - }, - "OpenAIAssistantMessageParam-Output": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIAssistantMessageParam", - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request." - }, - "OpenAIChatCompletion": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAIChoice-Output" - }, - "type": "array", - "title": "Choices" - }, - "object": { - "type": "string", - "const": "chat.completion", - "title": "Object", - "default": "chat.completion" - }, - "created": { - "type": "integer", - "title": "Created" - }, - "model": { - "type": "string", - "title": "Model" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsage" - } - }, - "type": "object", - "required": [ - "id", - "choices", - "created", - "model" - ], - "title": "OpenAIChatCompletion", - "description": "Response from an OpenAI-compatible chat completion request." - }, - "OpenAIChatCompletionContentPartImageParam": { - "properties": { - "type": { - "type": "string", - "const": "image_url", - "title": "Type", - "default": "image_url" - }, - "image_url": { - "$ref": "#/components/schemas/OpenAIImageURL" - } - }, - "type": "object", - "required": [ - "image_url" - ], - "title": "OpenAIChatCompletionContentPartImageParam", - "description": "Image content part for OpenAI-compatible chat completion messages." - }, - "OpenAIChatCompletionContentPartTextParam": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIChatCompletionContentPartTextParam", - "description": "Text content part for OpenAI-compatible chat completion messages." - }, - "OpenAIChatCompletionRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "messages": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "discriminator": { - "propertyName": "role", - "mapping": { - "assistant": "#/components/schemas/OpenAIAssistantMessageParam-Input", - "developer": "#/components/schemas/OpenAIDeveloperMessageParam", - "system": "#/components/schemas/OpenAISystemMessageParam", - "tool": "#/components/schemas/OpenAIToolMessageParam", - "user": "#/components/schemas/OpenAIUserMessageParam-Input" - } - } - }, - "type": "array", - "minItems": 1, - "title": "Messages" - }, - "frequency_penalty": { - "title": "Frequency Penalty", - "type": "number" - }, - "function_call": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } - ], - "title": "Function Call" - }, - "functions": { - "title": "Functions", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "logit_bias": { - "title": "Logit Bias", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "logprobs": { - "title": "Logprobs", - "type": "boolean" - }, - "max_completion_tokens": { - "title": "Max Completion Tokens", - "type": "integer" - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "n": { - "title": "N", - "type": "integer" - }, - "parallel_tool_calls": { - "title": "Parallel Tool Calls", - "type": "boolean" - }, - "presence_penalty": { - "title": "Presence Penalty", - "type": "number" - }, - "response_format": { - "title": "Response Format", - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseFormatText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseFormatJSONSchema" - }, - { - "$ref": "#/components/schemas/OpenAIResponseFormatJSONObject" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "json_object": "#/components/schemas/OpenAIResponseFormatJSONObject", - "json_schema": "#/components/schemas/OpenAIResponseFormatJSONSchema", - "text": "#/components/schemas/OpenAIResponseFormatText" - } - } - }, - "seed": { - "title": "Seed", - "type": "integer" - }, - "stop": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Stop" - }, - "stream": { - "title": "Stream", - "type": "boolean" - }, - "stream_options": { - "title": "Stream Options", - "additionalProperties": true, - "type": "object" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "tool_choice": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } - ], - "title": "Tool Choice" - }, - "tools": { - "title": "Tools", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "top_logprobs": { - "title": "Top Logprobs", - "type": "integer" - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "user": { - "title": "User", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "messages" - ], - "title": "OpenAIChatCompletionRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible chat completion endpoint." - }, - "OpenAIChatCompletionToolCall": { - "properties": { - "index": { - "title": "Index", - "type": "integer" - }, - "id": { - "title": "Id", - "type": "string" - }, - "type": { - "type": "string", - "const": "function", - "title": "Type", - "default": "function" - }, - "function": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCallFunction" - } - }, - "type": "object", - "title": "OpenAIChatCompletionToolCall", - "description": "Tool call specification for OpenAI-compatible chat completion responses." - }, - "OpenAIChatCompletionToolCallFunction": { - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "arguments": { - "title": "Arguments", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIChatCompletionToolCallFunction", - "description": "Function call details for OpenAI-compatible tool calls." - }, - "OpenAIChatCompletionUsage": { - "properties": { - "prompt_tokens": { - "type": "integer", - "title": "Prompt Tokens" - }, - "completion_tokens": { - "type": "integer", - "title": "Completion Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - }, - "prompt_tokens_details": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails" - }, - "completion_tokens_details": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails" - } - }, - "type": "object", - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "title": "OpenAIChatCompletionUsage", - "description": "Usage information for OpenAI chat completion." - }, - "OpenAIChatCompletionUsageCompletionTokensDetails": { - "properties": { - "reasoning_tokens": { - "title": "Reasoning Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIChatCompletionUsageCompletionTokensDetails", - "description": "Token details for output tokens in OpenAI chat completion usage." - }, - "OpenAIChatCompletionUsagePromptTokensDetails": { - "properties": { - "cached_tokens": { - "title": "Cached Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIChatCompletionUsagePromptTokensDetails", - "description": "Token details for prompt tokens in OpenAI chat completion usage." - }, - "OpenAIChoice-Output": { - "properties": { - "message": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam-Output" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam-Output" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Message", - "discriminator": { - "propertyName": "role", - "mapping": { - "assistant": "#/components/schemas/OpenAIAssistantMessageParam-Output", - "developer": "#/components/schemas/OpenAIDeveloperMessageParam", - "system": "#/components/schemas/OpenAISystemMessageParam", - "tool": "#/components/schemas/OpenAIToolMessageParam", - "user": "#/components/schemas/OpenAIUserMessageParam-Output" - } - } - }, - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Output" - } - }, - "type": "object", - "required": [ - "message", - "finish_reason", - "index" - ], - "title": "OpenAIChoice", - "description": "A choice from an OpenAI-compatible chat completion response." - }, - "OpenAIChoiceLogprobs-Output": { - "properties": { - "content": { - "title": "Content", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - }, - "refusal": { - "title": "Refusal", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIChoiceLogprobs", - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response." - }, - "OpenAICompletion": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAICompletionChoice-Output" - }, - "type": "array", - "title": "Choices" - }, - "created": { - "type": "integer", - "title": "Created" - }, - "model": { - "type": "string", - "title": "Model" - }, - "object": { - "type": "string", - "const": "text_completion", - "title": "Object", - "default": "text_completion" - } - }, - "type": "object", - "required": [ - "id", - "choices", - "created", - "model" - ], - "title": "OpenAICompletion", - "description": "Response from an OpenAI-compatible completion request." - }, - "OpenAICompletionChoice-Output": { - "properties": { - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "text": { - "type": "string", - "title": "Text" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Output" - } - }, - "type": "object", - "required": [ - "finish_reason", - "text", - "index" - ], - "title": "OpenAICompletionChoice", - "description": "A choice from an OpenAI-compatible completion response." - }, - "OpenAICompletionRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "prompt": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "items": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "type": "array" - } - ], - "title": "Prompt" - }, - "best_of": { - "title": "Best Of", - "type": "integer" - }, - "echo": { - "title": "Echo", - "type": "boolean" - }, - "frequency_penalty": { - "title": "Frequency Penalty", - "type": "number" - }, - "logit_bias": { - "title": "Logit Bias", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "logprobs": { - "title": "Logprobs", - "type": "boolean" - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "n": { - "title": "N", - "type": "integer" - }, - "presence_penalty": { - "title": "Presence Penalty", - "type": "number" - }, - "seed": { - "title": "Seed", - "type": "integer" - }, - "stop": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Stop" - }, - "stream": { - "title": "Stream", - "type": "boolean" - }, - "stream_options": { - "title": "Stream Options", - "additionalProperties": true, - "type": "object" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "user": { - "title": "User", - "type": "string" - }, - "suffix": { - "title": "Suffix", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "prompt" - ], - "title": "OpenAICompletionRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible completion endpoint." - }, - "OpenAICreateVectorStoreFileBatchRequestWithExtraBody": { - "properties": { - "file_ids": { - "items": { - "type": "string" - }, - "type": "array", - "title": "File Ids" - }, - "attributes": { - "title": "Attributes", - "additionalProperties": true, - "type": "object" - }, - "chunking_strategy": { - "title": "Chunking Strategy", - "oneOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "auto": "#/components/schemas/VectorStoreChunkingStrategyAuto", - "static": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - } - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "file_ids" - ], - "title": "OpenAICreateVectorStoreFileBatchRequestWithExtraBody", - "description": "Request to create a vector store file batch with extra_body support." - }, - "OpenAICreateVectorStoreRequestWithExtraBody": { - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "file_ids": { - "title": "File Ids", - "items": { - "type": "string" - }, - "type": "array" - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object" - }, - "chunking_strategy": { - "title": "Chunking Strategy", - "additionalProperties": true, - "type": "object" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "additionalProperties": true, - "type": "object", - "title": "OpenAICreateVectorStoreRequestWithExtraBody", - "description": "Request to create a vector store with extra_body support." - }, - "OpenAIDeveloperMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "developer", - "title": "Role", - "default": "developer" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIDeveloperMessageParam", - "description": "A message from the developer in an OpenAI-compatible chat completion request." - }, - "OpenAIEmbeddingData": { - "properties": { - "object": { - "type": "string", - "const": "embedding", - "title": "Object", - "default": "embedding" - }, - "embedding": { - "anyOf": [ - { - "items": { - "type": "number" - }, - "type": "array" - }, - { - "type": "string" - } - ], - "title": "Embedding" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "embedding", - "index" - ], - "title": "OpenAIEmbeddingData", - "description": "A single embedding data object from an OpenAI-compatible embeddings response." - }, - "OpenAIEmbeddingUsage": { - "properties": { - "prompt_tokens": { - "type": "integer", - "title": "Prompt Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - } - }, - "type": "object", - "required": [ - "prompt_tokens", - "total_tokens" - ], - "title": "OpenAIEmbeddingUsage", - "description": "Usage information for an OpenAI-compatible embeddings response." - }, - "OpenAIEmbeddingsRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Input" - }, - "encoding_format": { - "title": "Encoding Format", - "default": "float", - "type": "string" - }, - "dimensions": { - "title": "Dimensions", - "type": "integer" - }, - "user": { - "title": "User", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "input" - ], - "title": "OpenAIEmbeddingsRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible embeddings endpoint." - }, - "OpenAIEmbeddingsResponse": { - "properties": { - "object": { - "type": "string", - "const": "list", - "title": "Object", - "default": "list" - }, - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIEmbeddingData" - }, - "type": "array", - "title": "Data" - }, - "model": { - "type": "string", - "title": "Model" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIEmbeddingUsage" - } - }, - "type": "object", - "required": [ - "data", - "model", - "usage" - ], - "title": "OpenAIEmbeddingsResponse", - "description": "Response from an OpenAI-compatible embeddings request." - }, - "OpenAIFile": { - "properties": { - "type": { - "type": "string", - "const": "file", - "title": "Type", - "default": "file" - }, - "file": { - "$ref": "#/components/schemas/OpenAIFileFile" - } - }, - "type": "object", - "required": [ - "file" - ], - "title": "OpenAIFile" - }, - "OpenAIFileFile": { - "properties": { - "file_data": { - "title": "File Data", - "type": "string" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIFileFile" - }, - "OpenAIFileObject": { - "properties": { - "object": { - "type": "string", - "const": "file", - "title": "Object", - "default": "file" - }, - "id": { - "type": "string", - "title": "Id" - }, - "bytes": { - "type": "integer", - "title": "Bytes" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "expires_at": { - "type": "integer", - "title": "Expires At" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "purpose": { - "$ref": "#/components/schemas/OpenAIFilePurpose" - } - }, - "type": "object", - "required": [ - "id", - "bytes", - "created_at", - "expires_at", - "filename", - "purpose" - ], - "title": "OpenAIFileObject", - "description": "OpenAI File object as defined in the OpenAI Files API." - }, - "OpenAIFilePurpose": { - "type": "string", - "enum": [ - "assistants", - "batch" - ], - "title": "OpenAIFilePurpose", - "description": "Valid purpose values for OpenAI Files API." - }, - "OpenAIImageURL": { - "properties": { - "url": { - "type": "string", - "title": "Url" - }, - "detail": { - "title": "Detail", - "type": "string" - } - }, - "type": "object", - "required": [ - "url" - ], - "title": "OpenAIImageURL", - "description": "Image URL specification for OpenAI-compatible chat completion messages." - }, - "OpenAIJSONSchema": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "strict": { - "title": "Strict", - "type": "boolean" - }, - "schema": { - "title": "Schema", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "title": "OpenAIJSONSchema", - "description": "JSON schema specification for OpenAI-compatible structured response format." - }, - "OpenAIResponseAnnotationCitation": { - "properties": { - "type": { - "type": "string", - "const": "url_citation", - "title": "Type", - "default": "url_citation" - }, - "end_index": { - "type": "integer", - "title": "End Index" - }, - "start_index": { - "type": "integer", - "title": "Start Index" - }, - "title": { - "type": "string", - "title": "Title" - }, - "url": { - "type": "string", - "title": "Url" - } - }, - "type": "object", - "required": [ - "end_index", - "start_index", - "title", - "url" - ], - "title": "OpenAIResponseAnnotationCitation", - "description": "URL citation annotation for referencing external web resources." - }, - "OpenAIResponseAnnotationContainerFileCitation": { - "properties": { - "type": { - "type": "string", - "const": "container_file_citation", - "title": "Type", - "default": "container_file_citation" - }, - "container_id": { - "type": "string", - "title": "Container Id" - }, - "end_index": { - "type": "integer", - "title": "End Index" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "start_index": { - "type": "integer", - "title": "Start Index" - } - }, - "type": "object", - "required": [ - "container_id", - "end_index", - "file_id", - "filename", - "start_index" - ], - "title": "OpenAIResponseAnnotationContainerFileCitation" - }, - "OpenAIResponseAnnotationFileCitation": { - "properties": { - "type": { - "type": "string", - "const": "file_citation", - "title": "Type", - "default": "file_citation" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "file_id", - "filename", - "index" - ], - "title": "OpenAIResponseAnnotationFileCitation", - "description": "File citation annotation for referencing specific files in response content." - }, - "OpenAIResponseAnnotationFilePath": { - "properties": { - "type": { - "type": "string", - "const": "file_path", - "title": "Type", - "default": "file_path" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "file_id", - "index" - ], - "title": "OpenAIResponseAnnotationFilePath" - }, - "OpenAIResponseContentPartRefusal": { - "properties": { - "type": { - "type": "string", - "const": "refusal", - "title": "Type", - "default": "refusal" - }, - "refusal": { - "type": "string", - "title": "Refusal" - } - }, - "type": "object", - "required": [ - "refusal" - ], - "title": "OpenAIResponseContentPartRefusal", - "description": "Refusal content within a streamed response part." - }, - "OpenAIResponseError": { - "properties": { - "code": { - "type": "string", - "title": "Code" - }, - "message": { - "type": "string", - "title": "Message" - } - }, - "type": "object", - "required": [ - "code", - "message" - ], - "title": "OpenAIResponseError", - "description": "Error details for failed OpenAI response requests." - }, - "OpenAIResponseFormatJSONObject": { - "properties": { - "type": { - "type": "string", - "const": "json_object", - "title": "Type", - "default": "json_object" - } - }, - "type": "object", - "title": "OpenAIResponseFormatJSONObject", - "description": "JSON object response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseFormatJSONSchema": { - "properties": { - "type": { - "type": "string", - "const": "json_schema", - "title": "Type", - "default": "json_schema" - }, - "json_schema": { - "$ref": "#/components/schemas/OpenAIJSONSchema" - } - }, - "type": "object", - "required": [ - "json_schema" - ], - "title": "OpenAIResponseFormatJSONSchema", - "description": "JSON schema response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseFormatText": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - } - }, - "type": "object", - "title": "OpenAIResponseFormatText", - "description": "Text response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseInputFunctionToolCallOutput": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "output": { - "type": "string", - "title": "Output" - }, - "type": { - "type": "string", - "const": "function_call_output", - "title": "Type", - "default": "function_call_output" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "call_id", - "output" - ], - "title": "OpenAIResponseInputFunctionToolCallOutput", - "description": "This represents the output of a function call that gets passed back to the model." - }, - "OpenAIResponseInputMessageContentFile": { - "properties": { - "type": { - "type": "string", - "const": "input_file", - "title": "Type", - "default": "input_file" - }, - "file_data": { - "title": "File Data", - "type": "string" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "file_url": { - "title": "File Url", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIResponseInputMessageContentFile", - "description": "File content for input messages in OpenAI response format." - }, - "OpenAIResponseInputMessageContentImage": { - "properties": { - "detail": { - "anyOf": [ - { - "type": "string", - "const": "low" - }, - { - "type": "string", - "const": "high" - }, - { - "type": "string", - "const": "auto" - } - ], - "title": "Detail", - "default": "auto" - }, - "type": { - "type": "string", - "const": "input_image", - "title": "Type", - "default": "input_image" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "image_url": { - "title": "Image Url", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIResponseInputMessageContentImage", - "description": "Image content for input messages in OpenAI response format." - }, - "OpenAIResponseInputMessageContentText": { - "properties": { - "text": { - "type": "string", - "title": "Text" - }, - "type": { - "type": "string", - "const": "input_text", - "title": "Type", - "default": "input_text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIResponseInputMessageContentText", - "description": "Text content for input messages in OpenAI response format." - }, - "OpenAIResponseInputToolFileSearch": { - "properties": { - "type": { - "type": "string", - "const": "file_search", - "title": "Type", - "default": "file_search" - }, - "vector_store_ids": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Vector Store Ids" - }, - "filters": { - "title": "Filters", - "additionalProperties": true, - "type": "object" - }, - "max_num_results": { - "title": "Max Num Results", - "default": 10, - "type": "integer", - "maximum": 50.0, - "minimum": 1.0 - }, - "ranking_options": { - "$ref": "#/components/schemas/SearchRankingOptions" - } - }, - "type": "object", - "required": [ - "vector_store_ids" - ], - "title": "OpenAIResponseInputToolFileSearch", - "description": "File search tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolFunction": { - "properties": { - "type": { - "type": "string", - "const": "function", - "title": "Type", - "default": "function" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "parameters": { - "title": "Parameters", - "additionalProperties": true, - "type": "object" - }, - "strict": { - "title": "Strict", - "type": "boolean" - } - }, - "type": "object", - "required": [ - "name", - "parameters" - ], - "title": "OpenAIResponseInputToolFunction", - "description": "Function tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolMCP": { - "properties": { - "type": { - "type": "string", - "const": "mcp", - "title": "Type", - "default": "mcp" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "server_url": { - "type": "string", - "title": "Server Url" - }, - "headers": { - "title": "Headers", - "additionalProperties": true, - "type": "object" - }, - "require_approval": { - "anyOf": [ - { - "type": "string", - "const": "always" - }, - { - "type": "string", - "const": "never" - }, - { - "$ref": "#/components/schemas/ApprovalFilter" - } - ], - "title": "Require Approval", - "default": "never" - }, - "allowed_tools": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/AllowedToolsFilter" - } - ], - "title": "Allowed Tools" - } - }, - "type": "object", - "required": [ - "server_label", - "server_url" - ], - "title": "OpenAIResponseInputToolMCP", - "description": "Model Context Protocol (MCP) tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolWebSearch": { - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "const": "web_search" - }, - { - "type": "string", - "const": "web_search_preview" - }, - { - "type": "string", - "const": "web_search_preview_2025_03_11" - } - ], - "title": "Type", - "default": "web_search" - }, - "search_context_size": { - "title": "Search Context Size", - "default": "medium", - "type": "string", - "pattern": "^low|medium|high$" - } - }, - "type": "object", - "title": "OpenAIResponseInputToolWebSearch", - "description": "Web search tool configuration for OpenAI response inputs." - }, - "OpenAIResponseMCPApprovalRequest": { - "properties": { - "arguments": { - "type": "string", - "title": "Arguments" - }, - "id": { - "type": "string", - "title": "Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "type": { - "type": "string", - "const": "mcp_approval_request", - "title": "Type", - "default": "mcp_approval_request" - } - }, - "type": "object", - "required": [ - "arguments", - "id", - "name", - "server_label" - ], - "title": "OpenAIResponseMCPApprovalRequest", - "description": "A request for human approval of a tool invocation." - }, - "OpenAIResponseMCPApprovalResponse": { - "properties": { - "approval_request_id": { - "type": "string", - "title": "Approval Request Id" - }, - "approve": { - "type": "boolean", - "title": "Approve" - }, - "type": { - "type": "string", - "const": "mcp_approval_response", - "title": "Type", - "default": "mcp_approval_response" - }, - "id": { - "title": "Id", - "type": "string" - }, - "reason": { - "title": "Reason", - "type": "string" - } - }, - "type": "object", - "required": [ - "approval_request_id", - "approve" - ], - "title": "OpenAIResponseMCPApprovalResponse", - "description": "A response to an MCP approval request." - }, - "OpenAIResponseMessage-Input": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "array" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "output_text": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "type": "string", - "const": "system" - }, - { - "type": "string", - "const": "developer" - }, - { - "type": "string", - "const": "user" - }, - { - "type": "string", - "const": "assistant" - } - ], - "title": "Role" - }, - "type": { - "type": "string", - "const": "message", - "title": "Type", - "default": "message" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - }, - "OpenAIResponseMessage-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "array" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "output_text": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "type": "string", - "const": "system" - }, - { - "type": "string", - "const": "developer" - }, - { - "type": "string", - "const": "user" - }, - { - "type": "string", - "const": "assistant" - } - ], - "title": "Role" - }, - "type": { - "type": "string", - "const": "message", - "title": "Type", - "default": "message" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - }, - "OpenAIResponseObject": { - "properties": { - "created_at": { - "type": "integer", - "title": "Created At" - }, - "error": { - "$ref": "#/components/schemas/OpenAIResponseError" - }, - "id": { - "type": "string", - "title": "Id" - }, - "model": { - "type": "string", - "title": "Model" - }, - "object": { - "type": "string", - "const": "response", - "title": "Object", - "default": "response" - }, - "output": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Output" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Output", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "type": "array", - "title": "Output" - }, - "parallel_tool_calls": { - "type": "boolean", - "title": "Parallel Tool Calls", - "default": false - }, - "previous_response_id": { - "title": "Previous Response Id", - "type": "string" - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt" - }, - "status": { - "type": "string", - "title": "Status" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText", - "default": { - "format": { - "type": "text" - } - } - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "tools": { - "title": "Tools", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseToolMCP" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAIResponseInputToolFileSearch", - "function": "#/components/schemas/OpenAIResponseInputToolFunction", - "mcp": "#/components/schemas/OpenAIResponseToolMCP", - "web_search": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/components/schemas/OpenAIResponseInputToolWebSearch" - } - } - }, - "type": "array" - }, - "truncation": { - "title": "Truncation", - "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIResponseUsage" - }, - "instructions": { - "title": "Instructions", - "type": "string" - } - }, - "type": "object", - "required": [ - "created_at", - "id", - "model", - "output", - "status" - ], - "title": "OpenAIResponseObject", - "description": "Complete OpenAI response object containing generation results and metadata." - }, - "OpenAIResponseOutputMessageContentOutputText": { - "properties": { - "text": { - "type": "string", - "title": "Text" - }, - "type": { - "type": "string", - "const": "output_text", - "title": "Type", - "default": "output_text" - }, - "annotations": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFilePath" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "container_file_citation": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation", - "file_citation": "#/components/schemas/OpenAIResponseAnnotationFileCitation", - "file_path": "#/components/schemas/OpenAIResponseAnnotationFilePath", - "url_citation": "#/components/schemas/OpenAIResponseAnnotationCitation" - } - } - }, - "type": "array", - "title": "Annotations" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIResponseOutputMessageContentOutputText" - }, - "OpenAIResponseOutputMessageFileSearchToolCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "queries": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Queries" - }, - "status": { - "type": "string", - "title": "Status" - }, - "type": { - "type": "string", - "const": "file_search_call", - "title": "Type", - "default": "file_search_call" - }, - "results": { - "title": "Results", - "items": { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "id", - "queries", - "status" - ], - "title": "OpenAIResponseOutputMessageFileSearchToolCall", - "description": "File search tool call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageFileSearchToolCallResults": { - "properties": { - "attributes": { - "additionalProperties": true, - "type": "object", - "title": "Attributes" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "score": { - "type": "number", - "title": "Score" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "attributes", - "file_id", - "filename", - "score", - "text" - ], - "title": "OpenAIResponseOutputMessageFileSearchToolCallResults", - "description": "Search results returned by the file search operation." - }, - "OpenAIResponseOutputMessageFunctionToolCall": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "arguments": { - "type": "string", - "title": "Arguments" - }, - "type": { - "type": "string", - "const": "function_call", - "title": "Type", - "default": "function_call" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "call_id", - "name", - "arguments" - ], - "title": "OpenAIResponseOutputMessageFunctionToolCall", - "description": "Function tool call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageMCPCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "type": { - "type": "string", - "const": "mcp_call", - "title": "Type", - "default": "mcp_call" - }, - "arguments": { - "type": "string", - "title": "Arguments" - }, - "name": { - "type": "string", - "title": "Name" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "error": { - "title": "Error", - "type": "string" - }, - "output": { - "title": "Output", - "type": "string" - } - }, - "type": "object", - "required": [ - "id", - "arguments", - "name", - "server_label" - ], - "title": "OpenAIResponseOutputMessageMCPCall", - "description": "Model Context Protocol (MCP) call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageMCPListTools": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "type": { - "type": "string", - "const": "mcp_list_tools", - "title": "Type", - "default": "mcp_list_tools" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "tools": { - "items": { - "$ref": "#/components/schemas/MCPListToolsTool" - }, - "type": "array", - "title": "Tools" - } - }, - "type": "object", - "required": [ - "id", - "server_label", - "tools" - ], - "title": "OpenAIResponseOutputMessageMCPListTools", - "description": "MCP list tools output message containing available tools from an MCP server." - }, - "OpenAIResponseOutputMessageWebSearchToolCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "status": { - "type": "string", - "title": "Status" - }, - "type": { - "type": "string", - "const": "web_search_call", - "title": "Type", - "default": "web_search_call" - } - }, - "type": "object", - "required": [ - "id", - "status" - ], - "title": "OpenAIResponseOutputMessageWebSearchToolCall", - "description": "Web search tool call output message for OpenAI responses." - }, - "OpenAIResponsePrompt": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "variables": { - "title": "Variables", - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "object" - }, - "version": { - "title": "Version", - "type": "string" - } - }, - "type": "object", - "required": [ - "id" - ], - "title": "OpenAIResponsePrompt", - "description": "OpenAI compatible Prompt object that is used in OpenAI responses." - }, - "OpenAIResponseText": { - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAIResponseTextFormat" - } - }, - "type": "object", - "title": "OpenAIResponseText", - "description": "Text response configuration for OpenAI responses." - }, - "OpenAIResponseTextFormat": { - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "const": "text" - }, - { - "type": "string", - "const": "json_schema" - }, - { - "type": "string", - "const": "json_object" - } - ], - "title": "Type" - }, - "name": { - "title": "Name", - "type": "string" - }, - "schema": { - "title": "Schema", - "additionalProperties": true, - "type": "object" - }, - "description": { - "title": "Description", - "type": "string" - }, - "strict": { - "title": "Strict", - "type": "boolean" - } - }, - "type": "object", - "title": "OpenAIResponseTextFormat", - "description": "Configuration for Responses API text format." - }, - "OpenAIResponseToolMCP": { - "properties": { - "type": { - "type": "string", - "const": "mcp", - "title": "Type", - "default": "mcp" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "allowed_tools": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/AllowedToolsFilter" - } - ], - "title": "Allowed Tools" - } - }, - "type": "object", - "required": [ - "server_label" - ], - "title": "OpenAIResponseToolMCP", - "description": "Model Context Protocol (MCP) tool configuration for OpenAI response object." - }, - "OpenAIResponseUsage": { - "properties": { - "input_tokens": { - "type": "integer", - "title": "Input Tokens" - }, - "output_tokens": { - "type": "integer", - "title": "Output Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - }, - "input_tokens_details": { - "$ref": "#/components/schemas/OpenAIResponseUsageInputTokensDetails" - }, - "output_tokens_details": { - "$ref": "#/components/schemas/OpenAIResponseUsageOutputTokensDetails" - } - }, - "type": "object", - "required": [ - "input_tokens", - "output_tokens", - "total_tokens" - ], - "title": "OpenAIResponseUsage", - "description": "Usage information for OpenAI response." - }, - "OpenAIResponseUsageInputTokensDetails": { - "properties": { - "cached_tokens": { - "title": "Cached Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIResponseUsageInputTokensDetails", - "description": "Token details for input tokens in OpenAI response usage." - }, - "OpenAIResponseUsageOutputTokensDetails": { - "properties": { - "reasoning_tokens": { - "title": "Reasoning Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIResponseUsageOutputTokensDetails", - "description": "Token details for output tokens in OpenAI response usage." - }, - "OpenAISystemMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "system", - "title": "Role", - "default": "system" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAISystemMessageParam", - "description": "A system message providing instructions or context to the model." - }, - "OpenAITokenLogProb": { - "properties": { - "token": { - "type": "string", - "title": "Token" - }, - "bytes": { - "title": "Bytes", - "items": { - "type": "integer" - }, - "type": "array" - }, - "logprob": { - "type": "number", - "title": "Logprob" - }, - "top_logprobs": { - "items": { - "$ref": "#/components/schemas/OpenAITopLogProb" - }, - "type": "array", - "title": "Top Logprobs" - } - }, - "type": "object", - "required": [ - "token", - "logprob", - "top_logprobs" - ], - "title": "OpenAITokenLogProb", - "description": "The log probability for a token from an OpenAI-compatible chat completion response." - }, - "OpenAIToolMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "tool", - "title": "Role", - "default": "tool" - }, - "tool_call_id": { - "type": "string", - "title": "Tool Call Id" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "tool_call_id", - "content" - ], - "title": "OpenAIToolMessageParam", - "description": "A message representing the result of a tool invocation in an OpenAI-compatible chat completion request." - }, - "OpenAITopLogProb": { - "properties": { - "token": { - "type": "string", - "title": "Token" - }, - "bytes": { - "title": "Bytes", - "items": { - "type": "integer" - }, - "type": "array" - }, - "logprob": { - "type": "number", - "title": "Logprob" - } - }, - "type": "object", - "required": [ - "token", - "logprob" - ], - "title": "OpenAITopLogProb", - "description": "The top log probability for a token from an OpenAI-compatible chat completion response." - }, - "OpenAIUserMessageParam-Input": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file": "#/components/schemas/OpenAIFile", - "image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam", - "text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "description": "A message from the user in an OpenAI-compatible chat completion request." - }, - "OpenAIUserMessageParam-Output": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file": "#/components/schemas/OpenAIFile", - "image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam", - "text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "description": "A message from the user in an OpenAI-compatible chat completion request." - }, - "Order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "title": "Order", - "description": "Sort order for paginated responses." - }, - "OutputTokensDetails": { - "properties": { - "reasoning_tokens": { - "type": "integer", - "title": "Reasoning Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "reasoning_tokens" - ], - "title": "OutputTokensDetails" - }, - "Prompt": { - "properties": { - "prompt": { - "title": "Prompt", - "description": "The system prompt with variable placeholders", - "type": "string" - }, - "version": { - "type": "integer", - "minimum": 1.0, - "title": "Version", - "description": "Version (integer starting at 1, incremented on save)" - }, - "prompt_id": { - "type": "string", - "title": "Prompt Id", - "description": "Unique identifier in format 'pmpt_<48-digit-hash>'" - }, - "variables": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Variables", - "description": "List of variable names that can be used in the prompt template" - }, - "is_default": { - "type": "boolean", - "title": "Is Default", - "description": "Boolean indicating whether this version is the default version", - "default": false - } - }, - "type": "object", - "required": [ - "version", - "prompt_id" - ], - "title": "Prompt", - "description": "A prompt resource representing a stored OpenAI Compatible prompt template in Llama Stack." - }, - "ProviderInfo": { - "properties": { - "api": { - "type": "string", - "title": "Api" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "provider_type": { - "type": "string", - "title": "Provider Type" - }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - }, - "health": { - "additionalProperties": true, - "type": "object", - "title": "Health" - } - }, - "type": "object", - "required": [ - "api", - "provider_id", - "provider_type", - "config", - "health" - ], - "title": "ProviderInfo", - "description": "Information about a registered provider including its configuration and health status." - }, - "QueryChunksResponse": { - "properties": { - "chunks": { - "items": { - "$ref": "#/components/schemas/Chunk-Output" - }, - "type": "array", - "title": "Chunks" - }, - "scores": { - "items": { - "type": "number" - }, - "type": "array", - "title": "Scores" - } - }, - "type": "object", - "required": [ - "chunks", - "scores" - ], - "title": "QueryChunksResponse", - "description": "Response from querying chunks in a vector database." - }, - "RAGQueryConfig": { - "properties": { - "query_generator_config": { - "oneOf": [ - { - "$ref": "#/components/schemas/DefaultRAGQueryGeneratorConfig" - }, - { - "$ref": "#/components/schemas/LLMRAGQueryGeneratorConfig" - } - ], - "title": "Query Generator Config", - "default": { - "type": "default", - "separator": " " - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "default": "#/components/schemas/DefaultRAGQueryGeneratorConfig", - "llm": "#/components/schemas/LLMRAGQueryGeneratorConfig" - } - } - }, - "max_tokens_in_context": { - "type": "integer", - "title": "Max Tokens In Context", - "default": 4096 - }, - "max_chunks": { - "type": "integer", - "title": "Max Chunks", - "default": 5 - }, - "chunk_template": { - "type": "string", - "title": "Chunk Template", - "default": "Result {index}\nContent: {chunk.content}\nMetadata: {metadata}\n" - }, - "mode": { - "default": "vector", - "$ref": "#/components/schemas/RAGSearchMode" - }, - "ranker": { - "title": "Ranker", - "oneOf": [ - { - "$ref": "#/components/schemas/RRFRanker" - }, - { - "$ref": "#/components/schemas/WeightedRanker" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "rrf": "#/components/schemas/RRFRanker", - "weighted": "#/components/schemas/WeightedRanker" - } - } - } - }, - "type": "object", - "title": "RAGQueryConfig", - "description": "Configuration for the RAG query generation." - }, - "RAGQueryResult": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "title": "RAGQueryResult", - "description": "Result of a RAG query containing retrieved content and metadata." - }, - "RAGSearchMode": { - "type": "string", - "enum": [ - "vector", - "keyword", - "hybrid" - ], - "title": "RAGSearchMode", - "description": "Search modes for RAG query retrieval:\n- VECTOR: Uses vector similarity search for semantic matching\n- KEYWORD: Uses keyword-based search for exact matching\n- HYBRID: Combines both vector and keyword search for better results" - }, - "RRFRanker": { - "properties": { - "type": { - "type": "string", - "const": "rrf", - "title": "Type", - "default": "rrf" - }, - "impact_factor": { - "type": "number", - "title": "Impact Factor", - "default": 60.0, - "minimum": 0.0 - } - }, - "type": "object", - "title": "RRFRanker", - "description": "Reciprocal Rank Fusion (RRF) ranker configuration." - }, - "RegexParserScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "regex_parser", - "title": "Type", - "default": "regex_parser" - }, - "parsing_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Parsing Regexes", - "description": "Regex to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "RegexParserScoringFnParams", - "description": "Parameters for regex parser scoring function configuration." - }, - "RouteInfo": { - "properties": { - "route": { - "type": "string", - "title": "Route" - }, - "method": { - "type": "string", - "title": "Method" - }, - "provider_types": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Provider Types" - } - }, - "type": "object", - "required": [ - "route", - "method", - "provider_types" - ], - "title": "RouteInfo", - "description": "Information about an API route including its path, method, and implementing providers." - }, - "RunShieldResponse": { - "properties": { - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "type": "object", - "title": "RunShieldResponse", - "description": "Response from running a safety shield." - }, - "SafetyViolation": { - "properties": { - "violation_level": { - "$ref": "#/components/schemas/ViolationLevel" - }, - "user_message": { - "title": "User Message", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "violation_level" - ], - "title": "SafetyViolation", - "description": "Details of a safety violation detected by content moderation." - }, - "ScoreBatchResponse": { - "properties": { - "dataset_id": { - "title": "Dataset Id", - "type": "string" - }, - "results": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Results" - } - }, - "type": "object", - "required": [ - "results" - ], - "title": "ScoreBatchResponse", - "description": "Response from batch scoring operations on datasets." - }, - "ScoreResponse": { - "properties": { - "results": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Results" - } - }, - "type": "object", - "required": [ - "results" - ], - "title": "ScoreResponse", - "description": "The response from scoring." - }, - "ScoringFn-Output": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "scoring_function", - "title": "Type", - "default": "scoring_function" - }, - "description": { - "title": "Description", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this definition" - }, - "return_type": { - "oneOf": [ - { - "$ref": "#/components/schemas/StringType" - }, - { - "$ref": "#/components/schemas/NumberType" - }, - { - "$ref": "#/components/schemas/BooleanType" - }, - { - "$ref": "#/components/schemas/ArrayType" - }, - { - "$ref": "#/components/schemas/ObjectType" - }, - { - "$ref": "#/components/schemas/JsonType" - }, - { - "$ref": "#/components/schemas/UnionType" - }, - { - "$ref": "#/components/schemas/ChatCompletionInputType" - }, - { - "$ref": "#/components/schemas/CompletionInputType" - }, - { - "$ref": "#/components/schemas/AgentTurnInputType" - } - ], - "title": "Return Type", - "description": "The return type of the deterministic function", - "discriminator": { - "propertyName": "type", - "mapping": { - "agent_turn_input": "#/components/schemas/AgentTurnInputType", - "array": "#/components/schemas/ArrayType", - "boolean": "#/components/schemas/BooleanType", - "chat_completion_input": "#/components/schemas/ChatCompletionInputType", - "completion_input": "#/components/schemas/CompletionInputType", - "json": "#/components/schemas/JsonType", - "number": "#/components/schemas/NumberType", - "object": "#/components/schemas/ObjectType", - "string": "#/components/schemas/StringType", - "union": "#/components/schemas/UnionType" - } - } - }, - "params": { - "title": "Params", - "description": "The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "basic": "#/components/schemas/BasicScoringFnParams", - "llm_as_judge": "#/components/schemas/LLMAsJudgeScoringFnParams", - "regex_parser": "#/components/schemas/RegexParserScoringFnParams" - } - } - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "return_type" - ], - "title": "ScoringFn", - "description": "A scoring function resource for evaluating model outputs." - }, - "ScoringResult": { - "properties": { - "score_rows": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Score Rows" - }, - "aggregated_results": { - "additionalProperties": true, - "type": "object", - "title": "Aggregated Results" - } - }, - "type": "object", - "required": [ - "score_rows", - "aggregated_results" - ], - "title": "ScoringResult", - "description": "A scoring result for a single row." - }, - "SearchRankingOptions": { - "properties": { - "ranker": { - "title": "Ranker", - "type": "string" - }, - "score_threshold": { - "title": "Score Threshold", - "default": 0.0, - "type": "number" - } - }, - "type": "object", - "title": "SearchRankingOptions", - "description": "Options for ranking and filtering search results." - }, - "Shield": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "shield", - "title": "Type", - "default": "shield" - }, - "params": { - "title": "Params", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "Shield", - "description": "A safety shield resource that can be used to check content." - }, - "StringType": { - "properties": { - "type": { - "type": "string", - "const": "string", - "title": "Type", - "default": "string" - } - }, - "type": "object", - "title": "StringType", - "description": "Parameter type for string values." - }, - "TextContentItem": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "TextContentItem", - "description": "A text content item" - }, - "ToolDef": { - "properties": { - "toolgroup_id": { - "title": "Toolgroup Id", - "type": "string" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "input_schema": { - "title": "Input Schema", - "additionalProperties": true, - "type": "object" - }, - "output_schema": { - "title": "Output Schema", - "additionalProperties": true, - "type": "object" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "name" - ], - "title": "ToolDef", - "description": "Tool definition used in runtime contexts." - }, - "ToolGroup": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "tool_group", - "title": "Type", - "default": "tool_group" - }, - "mcp_endpoint": { - "$ref": "#/components/schemas/URL" - }, - "args": { - "title": "Args", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "ToolGroup", - "description": "A group of related tools managed together." - }, - "ToolInvocationResult": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "error_message": { - "title": "Error Message", - "type": "string" - }, - "error_code": { - "title": "Error Code", - "type": "integer" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "title": "ToolInvocationResult", - "description": "Result of a tool invocation." - }, - "URL": { - "properties": { - "uri": { - "type": "string", - "title": "Uri" - } - }, - "type": "object", - "required": [ - "uri" - ], - "title": "URL", - "description": "A URL reference to external content." - }, - "UnionType": { - "properties": { - "type": { - "type": "string", - "const": "union", - "title": "Type", - "default": "union" - } - }, - "type": "object", - "title": "UnionType", - "description": "Parameter type for union values." - }, - "VectorStoreChunkingStrategyAuto": { - "properties": { - "type": { - "type": "string", - "const": "auto", - "title": "Type", - "default": "auto" - } - }, - "type": "object", - "title": "VectorStoreChunkingStrategyAuto", - "description": "Automatic chunking strategy for vector store files." - }, - "VectorStoreChunkingStrategyStatic": { - "properties": { - "type": { - "type": "string", - "const": "static", - "title": "Type", - "default": "static" - }, - "static": { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStaticConfig" - } - }, - "type": "object", - "required": [ - "static" - ], - "title": "VectorStoreChunkingStrategyStatic", - "description": "Static chunking strategy with configurable parameters." - }, - "VectorStoreChunkingStrategyStaticConfig": { - "properties": { - "chunk_overlap_tokens": { - "type": "integer", - "title": "Chunk Overlap Tokens", - "default": 400 - }, - "max_chunk_size_tokens": { - "type": "integer", - "maximum": 4096.0, - "minimum": 100.0, - "title": "Max Chunk Size Tokens", - "default": 800 - } - }, - "type": "object", - "title": "VectorStoreChunkingStrategyStaticConfig", - "description": "Configuration for static chunking strategy." - }, - "VectorStoreContent": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "type", - "text" - ], - "title": "VectorStoreContent", - "description": "Content item from a vector store file or search result." - }, - "VectorStoreFileBatchObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.file_batch" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "status": { - "anyOf": [ - { - "type": "string", - "const": "completed" - }, - { - "type": "string", - "const": "in_progress" - }, - { - "type": "string", - "const": "cancelled" - }, - { - "type": "string", - "const": "failed" - } - ], - "title": "Status" - }, - "file_counts": { - "$ref": "#/components/schemas/VectorStoreFileCounts" - } - }, - "type": "object", - "required": [ - "id", - "created_at", - "vector_store_id", - "status", - "file_counts" - ], - "title": "VectorStoreFileBatchObject", - "description": "OpenAI Vector Store File Batch object." - }, - "VectorStoreFileCounts": { - "properties": { - "completed": { - "type": "integer", - "title": "Completed" - }, - "cancelled": { - "type": "integer", - "title": "Cancelled" - }, - "failed": { - "type": "integer", - "title": "Failed" - }, - "in_progress": { - "type": "integer", - "title": "In Progress" - }, - "total": { - "type": "integer", - "title": "Total" - } - }, - "type": "object", - "required": [ - "completed", - "cancelled", - "failed", - "in_progress", - "total" - ], - "title": "VectorStoreFileCounts", - "description": "File processing status counts for a vector store." - }, - "VectorStoreFileLastError": { - "properties": { - "code": { - "anyOf": [ - { - "type": "string", - "const": "server_error" - }, - { - "type": "string", - "const": "rate_limit_exceeded" - } - ], - "title": "Code" - }, - "message": { - "type": "string", - "title": "Message" - } - }, - "type": "object", - "required": [ - "code", - "message" - ], - "title": "VectorStoreFileLastError", - "description": "Error information for failed vector store file processing." - }, - "VectorStoreFileObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.file" - }, - "attributes": { - "additionalProperties": true, - "type": "object", - "title": "Attributes" - }, - "chunking_strategy": { - "oneOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "title": "Chunking Strategy", - "discriminator": { - "propertyName": "type", - "mapping": { - "auto": "#/components/schemas/VectorStoreChunkingStrategyAuto", - "static": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - } - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "last_error": { - "$ref": "#/components/schemas/VectorStoreFileLastError" - }, - "status": { - "anyOf": [ - { - "type": "string", - "const": "completed" - }, - { - "type": "string", - "const": "in_progress" - }, - { - "type": "string", - "const": "cancelled" - }, - { - "type": "string", - "const": "failed" - } - ], - "title": "Status" - }, - "usage_bytes": { - "type": "integer", - "title": "Usage Bytes", - "default": 0 - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - } - }, - "type": "object", - "required": [ - "id", - "chunking_strategy", - "created_at", - "status", - "vector_store_id" - ], - "title": "VectorStoreFileObject", - "description": "OpenAI Vector Store File object." - }, - "VectorStoreObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "name": { - "title": "Name", - "type": "string" - }, - "usage_bytes": { - "type": "integer", - "title": "Usage Bytes", - "default": 0 - }, - "file_counts": { - "$ref": "#/components/schemas/VectorStoreFileCounts" - }, - "status": { - "type": "string", - "title": "Status", - "default": "completed" - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object" - }, - "expires_at": { - "title": "Expires At", - "type": "integer" - }, - "last_active_at": { - "title": "Last Active At", - "type": "integer" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "id", - "created_at", - "file_counts" - ], - "title": "VectorStoreObject", - "description": "OpenAI Vector Store object." - }, - "VectorStoreSearchResponse": { - "properties": { - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "score": { - "type": "number", - "title": "Score" - }, - "attributes": { - "title": "Attributes", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ] - }, - "type": "object" - }, - "content": { - "items": { - "$ref": "#/components/schemas/VectorStoreContent" - }, - "type": "array", - "title": "Content" - } - }, - "type": "object", - "required": [ - "file_id", - "filename", - "score", - "content" - ], - "title": "VectorStoreSearchResponse", - "description": "Response from searching a vector store." - }, - "VectorStoreSearchResponsePage": { - "properties": { - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.search_results.page" - }, - "search_query": { - "type": "string", - "title": "Search Query" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreSearchResponse" - }, - "type": "array", - "title": "Data" - }, - "has_more": { - "type": "boolean", - "title": "Has More", - "default": false - }, - "next_page": { - "title": "Next Page", - "type": "string" - } - }, - "type": "object", - "required": [ - "search_query", - "data" - ], - "title": "VectorStoreSearchResponsePage", - "description": "Paginated response from searching a vector store." - }, - "VersionInfo": { - "properties": { - "version": { - "type": "string", - "title": "Version" - } - }, - "type": "object", - "required": [ - "version" - ], - "title": "VersionInfo", - "description": "Version information for the service." - }, - "ViolationLevel": { - "type": "string", - "enum": [ - "info", - "warn", - "error" - ], - "title": "ViolationLevel", - "description": "Severity level of a safety violation." - }, - "WeightedRanker": { - "properties": { - "type": { - "type": "string", - "const": "weighted", - "title": "Type", - "default": "weighted" - }, - "alpha": { - "type": "number", - "maximum": 1.0, - "minimum": 0.0, - "title": "Alpha", - "description": "Weight factor between 0 and 1. 0 means only keyword scores, 1 means only vector scores.", - "default": 0.5 - } - }, - "type": "object", - "title": "WeightedRanker", - "description": "Weighted ranker configuration that combines vector and keyword scores." - }, - "_URLOrData": { - "properties": { - "url": { - "$ref": "#/components/schemas/URL" - }, - "data": { - "contentEncoding": "base64", - "title": "Data", - "type": "string" - } - }, - "type": "object", - "title": "_URLOrData", - "description": "A URL or a base64 encoded string" - }, - "_batches_Request": { - "properties": { - "input_file_id": { - "type": "string", - "title": "Input File Id" - }, - "endpoint": { - "type": "string", - "title": "Endpoint" - }, - "completion_window": { - "type": "string", - "title": "Completion Window" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "idempotency_key": { - "type": "string", - "title": "Idempotency Key" - } - }, - "type": "object", - "required": [ - "input_file_id", - "endpoint", - "completion_window", - "metadata", - "idempotency_key" - ], - "title": "_batches_Request" - }, - "_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - } - }, - "type": "object", - "required": [ - "batch_id" - ], - "title": "_batches_batch_id_cancel_Request" - }, - "_conversations_Request": { - "properties": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Input" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "title": "Items", - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/components/schemas/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Input", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "items", - "metadata" - ], - "title": "_conversations_Request" - }, - "_conversations_conversation_id_Request": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "conversation_id", - "metadata" - ], - "title": "_conversations_conversation_id_Request" - }, - "_conversations_conversation_id_items_Request": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Input" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "title": "Items" - } - }, - "type": "object", - "required": [ - "conversation_id", - "items" - ], - "title": "_conversations_conversation_id_items_Request" - }, - "_models_Request": { - "properties": { - "model_id": { - "type": "string", - "title": "Model Id" - }, - "provider_model_id": { - "type": "string", - "title": "Provider Model Id" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "model_type": { - "$ref": "#/components/schemas/ModelType" - } - }, - "type": "object", - "required": [ - "model_id", - "provider_model_id", - "provider_id", - "metadata", - "model_type" - ], - "title": "_models_Request" - }, - "_moderations_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - } - }, - "type": "object", - "required": [ - "input", - "model" - ], - "title": "_moderations_Request" - }, - "_prompts_Request": { - "properties": { - "prompt": { - "type": "string", - "title": "Prompt" - }, - "variables": { - "type": "string", - "title": "Variables" - } - }, - "type": "object", - "required": [ - "prompt", - "variables" - ], - "title": "_prompts_Request" - }, - "_prompts_prompt_id_Request": { - "properties": { - "prompt_id": { - "type": "string", - "title": "Prompt Id" - }, - "prompt": { - "type": "string", - "title": "Prompt" - }, - "version": { - "type": "integer", - "title": "Version" - }, - "variables": { - "type": "string", - "title": "Variables" - }, - "set_as_default": { - "type": "boolean", - "title": "Set As Default", - "default": true - } - }, - "type": "object", - "required": [ - "prompt_id", - "prompt", - "version", - "variables" - ], - "title": "_prompts_prompt_id_Request" - }, - "_prompts_prompt_id_set_default_version_Request": { - "properties": { - "prompt_id": { - "type": "string", - "title": "Prompt Id" - }, - "version": { - "type": "integer", - "title": "Version" - } - }, - "type": "object", - "required": [ - "prompt_id", - "version" - ], - "title": "_prompts_prompt_id_set_default_version_Request" - }, - "_responses_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt" - }, - "instructions": { - "type": "string", - "title": "Instructions" - }, - "previous_response_id": { - "type": "string", - "title": "Previous Response Id" - }, - "conversation": { - "type": "string", - "title": "Conversation" - }, - "store": { - "type": "boolean", - "title": "Store", - "default": true - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "temperature": { - "type": "number", - "title": "Temperature" - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText" - }, - "tools": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolMCP" - } - ], - "title": "Tools", - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAIResponseInputToolFileSearch", - "function": "#/components/schemas/OpenAIResponseInputToolFunction", - "mcp": "#/components/schemas/OpenAIResponseInputToolMCP", - "web_search": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/components/schemas/OpenAIResponseInputToolWebSearch" - } - } - }, - "include": { - "type": "string", - "title": "Include" - }, - "max_infer_iters": { - "type": "integer", - "title": "Max Infer Iters", - "default": 10 - } - }, - "type": "object", - "required": [ - "input", - "model", - "prompt", - "instructions", - "previous_response_id", - "conversation", - "temperature", - "text", - "tools", - "include" - ], - "title": "_responses_Request" - }, - "_scoring_score_Request": { - "properties": { - "input_rows": { - "type": "string", - "title": "Input Rows" - }, - "scoring_functions": { - "type": "string", - "title": "Scoring Functions" - } - }, - "type": "object", - "required": [ - "input_rows", - "scoring_functions" - ], - "title": "_scoring_score_Request" - }, - "_scoring_score_batch_Request": { - "properties": { - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "scoring_functions": { - "type": "string", - "title": "Scoring Functions" - }, - "save_results_dataset": { - "type": "boolean", - "title": "Save Results Dataset", - "default": false - } - }, - "type": "object", - "required": [ - "dataset_id", - "scoring_functions" - ], - "title": "_scoring_score_batch_Request" - }, - "_shields_Request": { - "properties": { - "shield_id": { - "type": "string", - "title": "Shield Id" - }, - "provider_shield_id": { - "type": "string", - "title": "Provider Shield Id" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "params": { - "type": "string", - "title": "Params" - } - }, - "type": "object", - "required": [ - "shield_id", - "provider_shield_id", - "provider_id", - "params" - ], - "title": "_shields_Request" - }, - "_tool_runtime_invoke_Request": { - "properties": { - "tool_name": { - "type": "string", - "title": "Tool Name" - }, - "kwargs": { - "type": "string", - "title": "Kwargs" - } - }, - "type": "object", - "required": [ - "tool_name", - "kwargs" - ], - "title": "_tool_runtime_invoke_Request" - }, - "_tool_runtime_rag_tool_query_Request": { - "properties": { - "content": { - "type": "string", - "title": "Content" - }, - "vector_store_ids": { - "type": "string", - "title": "Vector Store Ids" - }, - "query_config": { - "$ref": "#/components/schemas/RAGQueryConfig" - } - }, - "type": "object", - "required": [ - "content", - "vector_store_ids", - "query_config" - ], - "title": "_tool_runtime_rag_tool_query_Request" - }, - "_vector_io_query_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "query": { - "type": "string", - "title": "Query" - }, - "params": { - "type": "string", - "title": "Params" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "query", - "params" - ], - "title": "_vector_io_query_Request" - }, - "_vector_stores_vector_store_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "expires_after": { - "type": "string", - "title": "Expires After" - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "name", - "expires_after", - "metadata" - ], - "title": "_vector_stores_vector_store_id_Request" - }, - "_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - } - }, - "type": "object", - "required": [ - "batch_id", - "vector_store_id" - ], - "title": "_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request" - }, - "_vector_stores_vector_store_id_files_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - }, - "chunking_strategy": { - "anyOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "title": "Chunking Strategy" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes", - "chunking_strategy" - ], - "title": "_vector_stores_vector_store_id_files_Request" - }, - "_vector_stores_vector_store_id_files_file_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes" - ], - "title": "_vector_stores_vector_store_id_files_file_id_Request" - }, - "_vector_stores_vector_store_id_search_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "query": { - "type": "string", - "title": "Query" - }, - "filters": { - "type": "string", - "title": "Filters" - }, - "max_num_results": { - "type": "integer", - "title": "Max Num Results", - "default": 10 - }, - "ranking_options": { - "$ref": "#/components/schemas/SearchRankingOptions" - }, - "rewrite_query": { - "type": "boolean", - "title": "Rewrite Query", - "default": false - }, - "search_mode": { - "type": "string", - "title": "Search Mode", - "default": "vector" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "query", - "filters", - "ranking_options" - ], - "title": "_vector_stores_vector_store_id_search_Request" - }, - "Error": { - "description": "Error response from the API. Roughly follows RFC 7807.", - "properties": { - "status": { - "title": "Status", - "type": "integer" - }, - "title": { - "title": "Title", - "type": "string" - }, - "detail": { - "title": "Detail", - "type": "string" - }, - "instance": { - "title": "Instance", - "type": "string", - "nullable": true - } - }, - "required": [ - "status", - "title", - "detail" - ], - "title": "Error", - "type": "object" - }, - "ListOpenAIResponseInputItem": { - "description": "List container for OpenAI response input items.", - "properties": { - "data": { - "items": { - "anyOf": [ - { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - ] - }, - "title": "Data", - "type": "array" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data" - ], - "title": "ListOpenAIResponseInputItem", - "type": "object" - }, - "ListOpenAIResponseObject": { - "description": "Paginated list of OpenAI response objects with navigation metadata.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIResponseObjectWithInput" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIResponseObject", - "type": "object" - }, - "OpenAIDeleteResponseObject": { - "description": "Response object confirming deletion of an OpenAI response.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "OpenAIDeleteResponseObject", - "type": "object" - }, - "ListBatchesResponse": { - "description": "Response containing a list of batch objects.", - "properties": { - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "description": "List of batch objects", - "items": { - "$ref": "#/components/schemas/Batch" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "description": "ID of the first batch in the list", - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "description": "ID of the last batch in the list", - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "description": "Whether there are more batches available", - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "ListBatchesResponse", - "type": "object" - }, - "ConversationDeletedResource": { - "description": "Response for deleted conversation.", - "properties": { - "id": { - "description": "The deleted conversation identifier", - "title": "Id", - "type": "string" - }, - "object": { - "default": "conversation.deleted", - "description": "Object type", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "description": "Whether the object was deleted", - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "ConversationDeletedResource", - "type": "object" - }, - "ConversationItemDeletedResource": { - "description": "Response for deleted conversation item.", - "properties": { - "id": { - "description": "The deleted item identifier", - "title": "Id", - "type": "string" - }, - "object": { - "default": "conversation.item.deleted", - "description": "Object type", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "description": "Whether the object was deleted", - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "ConversationItemDeletedResource", - "type": "object" - }, - "ListOpenAIFileResponse": { - "description": "Response for listing files in OpenAI Files API.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIFileObject" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIFileResponse", - "type": "object" - }, - "OpenAIFileDeleteResponse": { - "description": "Response for deleting a file in OpenAI Files API.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "const": "file", - "default": "file", - "title": "Object", - "type": "string" - }, - "deleted": { - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id", - "deleted" - ], - "title": "OpenAIFileDeleteResponse", - "type": "object" - }, - "ListOpenAIChatCompletionResponse": { - "description": "Response from listing OpenAI-compatible chat completions.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAICompletionWithInputMessages" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIChatCompletionResponse", - "type": "object" - }, - "OpenAIAssistantMessageParam": { - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request.", - "properties": { - "role": { - "const": "assistant", - "default": "assistant", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "nullable": true - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array", - "nullable": true - } - }, - "title": "OpenAIAssistantMessageParam", - "type": "object" - }, - "OpenAIChoice": { - "description": "A choice from an OpenAI-compatible chat completion response.", - "properties": { - "message": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/OpenAIAssistantMessageParam", - "developer": "#/$defs/OpenAIDeveloperMessageParam", - "system": "#/$defs/OpenAISystemMessageParam", - "tool": "#/$defs/OpenAIToolMessageParam", - "user": "#/$defs/OpenAIUserMessageParam" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Message" - }, - "finish_reason": { - "title": "Finish Reason", - "type": "string" - }, - "index": { - "title": "Index", - "type": "integer" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs", - "nullable": true - } - }, - "required": [ - "message", - "finish_reason", - "index" - ], - "title": "OpenAIChoice", - "type": "object" - }, - "OpenAIChoiceLogprobs": { - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response.", - "properties": { - "content": { - "title": "Content", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array", - "nullable": true - }, - "refusal": { - "title": "Refusal", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array", - "nullable": true - } - }, - "title": "OpenAIChoiceLogprobs", - "type": "object" - }, - "OpenAICompletionWithInputMessages": { - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAIChoice" - }, - "title": "Choices", - "type": "array" - }, - "object": { - "const": "chat.completion", - "default": "chat.completion", - "title": "Object", - "type": "string" - }, - "created": { - "title": "Created", - "type": "integer" - }, - "model": { - "title": "Model", - "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsage", - "nullable": true - }, - "input_messages": { - "items": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/OpenAIAssistantMessageParam", - "developer": "#/$defs/OpenAIDeveloperMessageParam", - "system": "#/$defs/OpenAISystemMessageParam", - "tool": "#/$defs/OpenAIToolMessageParam", - "user": "#/$defs/OpenAIUserMessageParam" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ] - }, - "title": "Input Messages", - "type": "array" - } - }, - "required": [ - "id", - "choices", - "created", - "model", - "input_messages" - ], - "title": "OpenAICompletionWithInputMessages", - "type": "object" - }, - "OpenAIUserMessageParam": { - "description": "A message from the user in an OpenAI-compatible chat completion request.", - "properties": { - "role": { - "const": "user", - "default": "user", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "discriminator": { - "mapping": { - "file": "#/$defs/OpenAIFile", - "image_url": "#/$defs/OpenAIChatCompletionContentPartImageParam", - "text": "#/$defs/OpenAIChatCompletionContentPartTextParam" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string", - "nullable": true - } - }, - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "type": "object" - }, - "ScoringFn": { - "description": "A scoring function resource for evaluating model outputs.", - "properties": { - "identifier": { - "description": "Unique identifier for this resource in llama stack", - "title": "Identifier", - "type": "string" - }, - "provider_resource_id": { - "description": "Unique identifier for this resource in the provider", - "title": "Provider Resource Id", - "type": "string", - "nullable": true - }, - "provider_id": { - "description": "ID of the provider that owns this resource", - "title": "Provider Id", - "type": "string" - }, - "type": { - "const": "scoring_function", - "default": "scoring_function", - "title": "Type", - "type": "string" - }, - "description": { - "title": "Description", - "type": "string", - "nullable": true - }, - "metadata": { - "additionalProperties": true, - "description": "Any additional metadata for this definition", - "title": "Metadata", - "type": "object" - }, - "return_type": { - "description": "The return type of the deterministic function", - "discriminator": { - "mapping": { - "agent_turn_input": "#/$defs/AgentTurnInputType", - "array": "#/$defs/ArrayType", - "boolean": "#/$defs/BooleanType", - "chat_completion_input": "#/$defs/ChatCompletionInputType", - "completion_input": "#/$defs/CompletionInputType", - "json": "#/$defs/JsonType", - "number": "#/$defs/NumberType", - "object": "#/$defs/ObjectType", - "string": "#/$defs/StringType", - "union": "#/$defs/UnionType" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/StringType" - }, - { - "$ref": "#/components/schemas/NumberType" - }, - { - "$ref": "#/components/schemas/BooleanType" - }, - { - "$ref": "#/components/schemas/ArrayType" - }, - { - "$ref": "#/components/schemas/ObjectType" - }, - { - "$ref": "#/components/schemas/JsonType" - }, - { - "$ref": "#/components/schemas/UnionType" - }, - { - "$ref": "#/components/schemas/ChatCompletionInputType" - }, - { - "$ref": "#/components/schemas/CompletionInputType" - }, - { - "$ref": "#/components/schemas/AgentTurnInputType" - } - ], - "title": "Return Type" - }, - "params": { - "description": "The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - "title": "Params", - "discriminator": { - "mapping": { - "basic": "#/$defs/BasicScoringFnParams", - "llm_as_judge": "#/$defs/LLMAsJudgeScoringFnParams", - "regex_parser": "#/$defs/RegexParserScoringFnParams" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "nullable": true - } - }, - "required": [ - "identifier", - "provider_id", - "return_type" - ], - "title": "ScoringFn", - "type": "object" - }, - "ListToolDefsResponse": { - "description": "Response containing a list of tool definitions.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ToolDef" - }, - "title": "Data", - "type": "array" - } - }, - "required": [ - "data" - ], - "title": "ListToolDefsResponse", - "type": "object" - }, - "VectorStoreDeleteResponse": { - "description": "Response from deleting a vector store.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "default": "vector_store.deleted", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "VectorStoreDeleteResponse", - "type": "object" - }, - "VectorStoreFileContentsResponse": { - "description": "Response from retrieving the contents of a vector store file.", - "properties": { - "file_id": { - "title": "File Id", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - }, - "attributes": { - "additionalProperties": true, - "title": "Attributes", - "type": "object" - }, - "content": { - "items": { - "$ref": "#/components/schemas/VectorStoreContent" - }, - "title": "Content", - "type": "array" - } - }, - "required": [ - "file_id", - "filename", - "attributes", - "content" - ], - "title": "VectorStoreFileContentsResponse", - "type": "object" - }, - "VectorStoreFileDeleteResponse": { - "description": "Response from deleting a vector store file.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "default": "vector_store.file.deleted", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "VectorStoreFileDeleteResponse", - "type": "object" - }, - "VectorStoreFilesListInBatchResponse": { - "description": "Response from listing files in a vector store file batch.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreFileObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreFilesListInBatchResponse", - "type": "object" - }, - "VectorStoreListFilesResponse": { - "description": "Response from listing files in a vector store.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreFileObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreListFilesResponse", - "type": "object" - }, - "VectorStoreListResponse": { - "description": "Response from listing vector stores.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreListResponse", - "type": "object" - }, - "OpenAIResponseMessage": { - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios.", - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "discriminator": { - "mapping": { - "input_file": "#/$defs/OpenAIResponseInputMessageContentFile", - "input_image": "#/$defs/OpenAIResponseInputMessageContentImage", - "input_text": "#/$defs/OpenAIResponseInputMessageContentText" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ] - }, - "type": "array" - }, - { - "items": { - "discriminator": { - "mapping": { - "output_text": "#/$defs/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/$defs/OpenAIResponseContentPartRefusal" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "const": "system", - "type": "string" - }, - { - "const": "developer", - "type": "string" - }, - { - "const": "user", - "type": "string" - }, - { - "const": "assistant", - "type": "string" - } - ], - "title": "Role" - }, - "type": { - "const": "message", - "default": "message", - "title": "Type", - "type": "string" - }, - "id": { - "title": "Id", - "type": "string", - "nullable": true - }, - "status": { - "title": "Status", - "type": "string", - "nullable": true - } - }, - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "type": "object" - }, - "OpenAIResponseObjectWithInput": { - "description": "OpenAI response object extended with input context information.", - "properties": { - "created_at": { - "title": "Created At", - "type": "integer" - }, - "error": { - "$ref": "#/components/schemas/OpenAIResponseError", - "nullable": true - }, - "id": { - "title": "Id", - "type": "string" - }, - "model": { - "title": "Model", - "type": "string" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "output": { - "items": { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - "title": "Output", - "type": "array" - }, - "parallel_tool_calls": { - "default": false, - "title": "Parallel Tool Calls", - "type": "boolean" - }, - "previous_response_id": { - "title": "Previous Response Id", - "type": "string", - "nullable": true - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt", - "nullable": true - }, - "status": { - "title": "Status", - "type": "string" - }, - "temperature": { - "title": "Temperature", - "type": "number", - "nullable": true - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText", - "default": { - "format": { - "type": "text" - } - } - }, - "top_p": { - "title": "Top P", - "type": "number", - "nullable": true - }, - "tools": { - "title": "Tools", - "items": { - "discriminator": { - "mapping": { - "file_search": "#/$defs/OpenAIResponseInputToolFileSearch", - "function": "#/$defs/OpenAIResponseInputToolFunction", - "mcp": "#/$defs/OpenAIResponseToolMCP", - "web_search": "#/$defs/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/$defs/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/$defs/OpenAIResponseInputToolWebSearch" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseToolMCP" - } - ] - }, - "type": "array", - "nullable": true - }, - "truncation": { - "title": "Truncation", - "type": "string", - "nullable": true - }, - "usage": { - "$ref": "#/components/schemas/OpenAIResponseUsage", - "nullable": true - }, - "instructions": { - "title": "Instructions", - "type": "string", - "nullable": true - }, - "input": { - "items": { - "anyOf": [ - { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - ] - }, - "title": "Input", - "type": "array" - } - }, - "required": [ - "created_at", - "id", - "model", - "output", - "status", - "input" - ], - "title": "OpenAIResponseObjectWithInput", - "type": "object" - }, - "_safety_run_shield_Request": { - "properties": { - "shield_id": { - "title": "Shield Id", - "type": "string" - }, - "messages": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Messages" - }, - "params": { - "title": "Params", - "type": "string" - } - }, - "required": [ - "shield_id", - "messages", - "params" - ], - "title": "_safety_run_shield_Request", - "type": "object" - } - }, - "responses": { - "BadRequest400": { - "description": "The request was invalid or malformed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 400, - "title": "Bad Request", - "detail": "The request was invalid or malformed" - } - } - } - }, - "TooManyRequests429": { - "description": "The client has sent too many requests in a given amount of time", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 429, - "title": "Too Many Requests", - "detail": "You have exceeded the rate limit. Please try again later." - } - } - } - }, - "InternalServerError500": { - "description": "The server encountered an unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 500, - "title": "Internal Server Error", - "detail": "An unexpected error occurred. Our team has been notified." - } - } - } - }, - "DefaultError": { - "description": "An unexpected error occurred", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/docs/static/llama-stack-spec.yaml b/docs/static/llama-stack-spec.yaml index b1b3ca8cd..4f8219ff2 100644 --- a/docs/static/llama-stack-spec.yaml +++ b/docs/static/llama-stack-spec.yaml @@ -12,80 +12,112 @@ paths: /v1/batches: get: tags: - - V1 + - Batches summary: List all batches for the current user. - description: Query endpoint for proper schema generation. + description: List all batches for the current user. operationId: list_batches_v1_batches_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for pagination; returns batches after this batch ID. title: After + description: A cursor for pagination; returns batches after this batch ID. - name: limit in: query required: false schema: type: integer + maximum: 100 + minimum: 1 + description: Number of batches to return (default 20, max 100). default: 20 title: Limit + description: Number of batches to return (default 20, max 100). responses: '200': - description: A list of batch objects. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListBatchesResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Batches summary: Create a new batch for processing multiple API requests. - description: Typed endpoint for proper schema generation. + description: Create a new batch for processing multiple API requests. operationId: create_batch_v1_batches_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_batches_Request' + $ref: '#/components/schemas/CreateBatchRequest' responses: '200': - description: The created batch object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Batch' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches/{batch_id}: get: tags: - - V1 + - Batches summary: Retrieve information about a specific batch. - description: Query endpoint for proper schema generation. + description: Retrieve information about a specific batch. operationId: retrieve_batch_v1_batches__batch_id__get parameters: - name: batch_id @@ -93,123 +125,173 @@ paths: required: true schema: type: string + description: The ID of the batch to retrieve. title: Batch Id description: The ID of the batch to retrieve. responses: '200': - description: The batch object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Batch' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches/{batch_id}/cancel: post: tags: - - V1 + - Batches summary: Cancel a batch that is in progress. - description: Typed endpoint for proper schema generation. + description: Cancel a batch that is in progress. operationId: cancel_batch_v1_batches__batch_id__cancel_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_batches_batch_id_cancel_Request' - required: true - responses: - '200': - description: The updated batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - name: batch_id in: path required: true schema: type: string + description: The ID of the batch to cancel. + title: Batch Id description: The ID of the batch to cancel. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Batch' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/chat/completions: get: tags: - - V1 + - Inference summary: List chat completions. - description: Query endpoint for proper schema generation. + description: List chat completions. operationId: list_chat_completions_v1_chat_completions_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the last chat completion to return. title: After - - name: model - in: query - required: true - schema: - type: string - title: Model + description: The ID of the last chat completion to return. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + description: The maximum number of chat completions to return. default: 20 title: Limit + description: The maximum number of chat completions to return. + - name: model + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The model to filter by. + title: Model + description: The model to filter by. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: "The order to sort the chat completions by: 'asc' or 'desc'. Defaults to 'desc'." default: desc + title: Order + description: "The order to sort the chat completions by: 'asc' or 'desc'. Defaults to 'desc'." responses: '200': - description: A ListOpenAIChatCompletionResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIChatCompletionResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Inference summary: Create chat completions. - description: Typed endpoint for proper schema generation. + description: Create chat completions. operationId: openai_chat_completion_v1_chat_completions_post requestBody: required: true @@ -219,29 +301,40 @@ paths: $ref: '#/components/schemas/OpenAIChatCompletionRequestWithExtraBody' responses: '200': - description: An OpenAIChatCompletion. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/OpenAIChatCompletion' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/chat/completions/{completion_id}: get: tags: - - V1 + - Inference summary: Get chat completion. - description: Query endpoint for proper schema generation. + description: Get chat completion. operationId: get_chat_completion_v1_chat_completions__completion_id__get parameters: - name: completion_id @@ -249,33 +342,46 @@ paths: required: true schema: type: string + description: ID of the chat completion. title: Completion Id description: ID of the chat completion. responses: '200': - description: A OpenAICompletionWithInputMessages. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAICompletionWithInputMessages' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/completions: post: tags: - - V1 + - Inference summary: Create completion. - description: Typed endpoint for proper schema generation. + description: Create completion. operationId: openai_completion_v1_completions_post requestBody: content: @@ -285,61 +391,85 @@ paths: required: true responses: '200': - description: An OpenAICompletion. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAICompletion' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations: post: tags: - - V1 - summary: Create a conversation. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Create a conversation + description: Create a conversation operationId: create_conversation_v1_conversations_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_conversations_Request' + $ref: '#/components/schemas/ConversationCreateRequest' required: true responses: '200': - description: The created conversation object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}: delete: tags: - - V1 - summary: Delete a conversation. - description: Query endpoint for proper schema generation. + - Conversations + summary: Delete a conversation + description: Delete a conversation with the given ID operationId: openai_delete_conversation_v1_conversations__conversation_id__delete parameters: - name: conversation_id @@ -347,32 +477,45 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier responses: '200': - description: The deleted conversation resource. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationDeletedResource' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Retrieve a conversation. - description: Query endpoint for proper schema generation. + - Conversations + summary: Retrieve a conversation + description: Get a conversation with the given ID operationId: get_conversation_v1_conversations__conversation_id__get parameters: - name: conversation_id @@ -380,166 +523,242 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier responses: '200': - description: The conversation object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Update a conversation. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Update a conversation + description: Update a conversation's metadata with the given ID operationId: update_conversation_v1_conversations__conversation_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_conversations_conversation_id_Request' - responses: - '200': - description: The updated conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: conversation_id in: path required: true schema: type: string - description: The conversation identifier. + description: The conversation identifier + title: Conversation Id + description: The conversation identifier + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ConversationUpdateRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Conversation' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}/items: get: tags: - - V1 - summary: List items. - description: Query endpoint for proper schema generation. + - Conversations + summary: List items + description: List items in the conversation operationId: list_items_v1_conversations__conversation_id__items_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: include - in: query - required: true - schema: - $ref: '#/components/schemas/ConversationItemInclude' - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: order - in: query - required: true - schema: - type: string - title: Order - name: conversation_id in: path required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items after, used in pagination + title: After + description: An item ID to list items after, used in pagination + - name: include + in: query + required: false + schema: + anyOf: + - type: array + items: + $ref: '#/components/schemas/ConversationItemInclude' + - type: 'null' + description: Specify additional output data to include in the response + title: Include + description: Specify additional output data to include in the response + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: A limit on the number of objects to be returned (1-100, default 20) + title: Limit + description: A limit on the number of objects to be returned (1-100, default 20) + - name: order + in: query + required: false + schema: + anyOf: + - enum: + - asc + - desc + type: string + - type: 'null' + description: The order to return items in (asc or desc, default desc) + title: Order + description: The order to return items in (asc or desc, default desc) responses: '200': - description: List of conversation items. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemList' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Create items. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Create items + description: Create items in the conversation operationId: add_items_v1_conversations__conversation_id__items_post + parameters: + - name: conversation_id + in: path + required: true + schema: + type: string + description: The conversation identifier + title: Conversation Id + description: The conversation identifier requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_conversations_conversation_id_items_Request' + $ref: '#/components/schemas/ConversationItemCreateRequest' responses: '200': - description: List of created items. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemList' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - parameters: - - name: conversation_id - in: path - required: true - schema: - type: string - description: The conversation identifier. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}/items/{item_id}: delete: tags: - - V1 - summary: Delete an item. - description: Query endpoint for proper schema generation. + - Conversations + summary: Delete an item + description: Delete a conversation item operationId: openai_delete_conversation_item_v1_conversations__conversation_id__items__item_id__delete parameters: - name: conversation_id @@ -547,39 +766,53 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier - name: item_id in: path required: true schema: type: string + description: The item identifier title: Item Id - description: The item identifier. + description: The item identifier responses: '200': - description: The deleted item resource. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemDeletedResource' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Retrieve an item. - description: Query endpoint for proper schema generation. + - Conversations + summary: Retrieve an item + description: Retrieve a conversation item operationId: retrieve_v1_conversations__conversation_id__items__item_id__get parameters: - name: conversation_id @@ -587,40 +820,76 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier - name: item_id in: path required: true schema: type: string + description: The item identifier title: Item Id - description: The item identifier. + description: The item identifier responses: '200': - description: The conversation item. + description: Successful Response content: application/json: schema: - $ref: '#/components/schemas/OpenAIResponseMessage' + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + title: Response Retrieve V1 Conversations Conversation Id Items Item Id Get '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/embeddings: post: tags: - - V1 + - Inference summary: Create embeddings. - description: Typed endpoint for proper schema generation. + description: Create embeddings. operationId: openai_embeddings_v1_embeddings_post requestBody: content: @@ -630,105 +899,165 @@ paths: required: true responses: '200': - description: An OpenAIEmbeddingsResponse containing the embeddings. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIEmbeddingsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/files: get: tags: - - V1 + - Files summary: List files. - description: Query endpoint for proper schema generation. + description: Returns a list of files that belong to the user's organization. operationId: openai_list_files_v1_files_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. title: After - - name: purpose - in: query - required: true - schema: - $ref: '#/components/schemas/OpenAIFilePurpose' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + 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. default: 10000 title: Limit + 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. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc + title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: purpose + in: query + required: false + schema: + anyOf: + - $ref: '#/components/schemas/OpenAIFilePurpose' + - type: 'null' + description: Only return files with the given purpose. + title: Purpose + description: Only return files with the given purpose. responses: '200': - description: An ListOpenAIFileResponse containing the list of files. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIFileResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Files summary: Upload file. - description: Response-only endpoint for proper schema generation. + description: Upload a file that can be used across various endpoints. operationId: openai_upload_file_v1_files_post + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/Body_openai_upload_file_v1_files_post' responses: '200': - description: An OpenAIFileObject representing the uploaded file. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/files/{file_id}: delete: tags: - - V1 + - Files summary: Delete file. - description: Query endpoint for proper schema generation. + description: Delete a file. operationId: openai_delete_file_v1_files__file_id__delete parameters: - name: file_id @@ -736,32 +1065,45 @@ paths: required: true schema: type: string + description: The ID of the file to use for this request. title: File Id description: The ID of the file to use for this request. responses: '200': - description: An OpenAIFileDeleteResponse indicating successful deletion. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIFileDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Files summary: Retrieve file. - description: Query endpoint for proper schema generation. + description: Returns information about a specific file. operationId: openai_retrieve_file_v1_files__file_id__get parameters: - name: file_id @@ -769,254 +1111,288 @@ paths: required: true schema: type: string + description: The ID of the file to use for this request. title: File Id description: The ID of the file to use for this request. - responses: - '200': - description: An OpenAIFileObject containing file information. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/files/{file_id}/content: - get: - tags: - - V1 - summary: Retrieve file content. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: openai_retrieve_file_content_v1_files__file_id__content_get - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: file_id - in: path - required: true - schema: - type: string - description: The ID of the file to use for this request. - responses: - '200': - description: The raw file content as a binary response. - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/health: - get: - tags: - - V1 - summary: Get health status. - description: Response-only endpoint for proper schema generation. - operationId: health_v1_health_get - responses: - '200': - description: Health information indicating if the service is operational. - content: - application/json: - schema: - $ref: '#/components/schemas/HealthInfo' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/inspect/routes: - get: - tags: - - V1 - summary: List routes. - description: Response-only endpoint for proper schema generation. - operationId: list_routes_v1_inspect_routes_get - responses: - '200': - description: Response containing information about all available routes. - content: - application/json: - schema: - $ref: '#/components/schemas/ListRoutesResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - summary: List routes. - description: >- - List routes. - - List all available API routes with their methods and implementing providers. - parameters: - - name: api_filter - in: query - description: >- - Optional filter to control which routes are returned. Can be an API level - ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, - or 'deprecated' to show deprecated routes across all levels. If not specified, - returns only non-deprecated v1 routes. - required: false - schema: - type: string - enum: - - v1 - - v1alpha - - v1beta - - deprecated - deprecated: false - /v1/models: - get: - tags: - - V1 - summary: List all models. - description: Response-only endpoint for proper schema generation. - operationId: list_models_v1_models_get - responses: - '200': - description: A OpenAIListModelsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIListModelsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $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: [] - deprecated: false - post: - tags: - - V1 - summary: Register model. - description: Typed endpoint for proper schema generation. - operationId: register_model_v1_models_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_models_Request' - required: true - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/models/{model_id}: - delete: - tags: - - V1 - summary: Unregister model. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_model_v1_models__model_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: model_id - in: path - required: true - schema: - type: string - description: 'Path parameter: model_id' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/OpenAIFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/files/{file_id}/content: get: tags: - - V1 + - Files + summary: Retrieve file content. + description: Returns the contents of the specified file. + operationId: openai_retrieve_file_content_v1_files__file_id__content_get + parameters: + - name: file_id + in: path + required: true + schema: + type: string + description: The ID of the file to use for this request. + title: File Id + description: The ID of the file to use for this request. + responses: + '200': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/health: + get: + tags: + - Inspect + summary: Get health status. + description: Get the current health status of the service. + operationId: health_v1_health_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/HealthInfo' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/inspect/routes: + get: + tags: + - Inspect + summary: List routes. + description: List all available API routes with their methods and implementing providers. + operationId: list_routes_v1_inspect_routes_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoutesResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/models: + get: + tags: + - Models + summary: List all models. + description: List all models registered in Llama Stack. + operationId: list_models_v1_models_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListModelsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Models + summary: Register model. + description: Register a new model in Llama Stack. + operationId: register_model_v1_models_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterModelRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Model' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/models/{model_id}: + delete: + tags: + - Models + summary: Unregister model. + description: Unregister a model from Llama Stack. + operationId: unregister_model_v1_models__model_id__delete + parameters: + - name: model_id + in: path + required: true + schema: + type: string + description: The identifier of the model to unregister. + title: Model Id + description: The identifier of the model to unregister. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Models summary: Get model. - description: Query endpoint for proper schema generation. + description: Get a model by its identifier. operationId: get_model_v1_models__model_id__get parameters: - name: model_id @@ -1024,279 +1400,375 @@ paths: required: true schema: type: string + description: The identifier of the model to get. title: Model Id - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/moderations: - post: - tags: - - V1 - summary: Create moderation. - description: Typed endpoint for proper schema generation. - operationId: run_moderation_v1_moderations_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_moderations_Request' - required: true - responses: - '200': - description: A moderation object. - content: - application/json: - schema: - $ref: '#/components/schemas/ModerationObject' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/prompts: - get: - tags: - - V1 - summary: List all prompts. - description: Response-only endpoint for proper schema generation. - operationId: list_prompts_v1_prompts_get - responses: - '200': - description: A ListPromptsResponse containing all prompts. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Create prompt. - description: Typed endpoint for proper schema generation. - operationId: create_prompt_v1_prompts_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_prompts_Request' - required: true - responses: - '200': - description: The created Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/prompts/{prompt_id}: - delete: - tags: - - V1 - summary: Delete prompt. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_prompt_v1_prompts__prompt_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: prompt_id - in: path - required: true - schema: - type: string - description: The identifier of the prompt to delete. + description: The identifier of the model to get. responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/Model' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/moderations: + post: tags: - - V1 - summary: Get prompt. - description: Query endpoint for proper schema generation. - operationId: get_prompt_v1_prompts__prompt_id__get - parameters: - - name: version - in: query + - Safety + summary: Create moderation. + description: Classifies if text and/or image inputs are potentially harmful. + operationId: run_moderation_v1_moderations_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RunModerationRequest' required: true - schema: - type: integer - title: Version - - name: prompt_id - in: path - required: true - schema: - type: string - title: Prompt Id - description: The identifier of the prompt to get. responses: '200': - description: A Prompt resource. + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ModerationObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/prompts: + get: + tags: + - Prompts + summary: List all prompts + description: List all prompts registered in Llama Stack + operationId: list_prompts_v1_prompts_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPromptsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Prompts + summary: Create prompt + description: Create a new prompt + operationId: create_prompt_v1_prompts_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePromptRequest' + required: true + responses: + '200': + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Prompt' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/prompts/{prompt_id}: + delete: + tags: + - Prompts + summary: Delete prompt + description: Delete a prompt + operationId: delete_prompt_v1_prompts__prompt_id__delete + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to delete + title: Prompt Id + description: The identifier of the prompt to delete + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Prompts + summary: Get prompt + description: Get a prompt by its identifier and optional version + operationId: get_prompt_v1_prompts__prompt_id__get + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to get + title: Prompt Id + description: The identifier of the prompt to get + - name: version + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The version of the prompt to get (defaults to latest) + title: Version + description: The version of the prompt to get (defaults to latest) + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Prompt' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Update prompt. - description: Typed endpoint for proper schema generation. + - Prompts + summary: Update prompt + description: Update an existing prompt (increments version) operationId: update_prompt_v1_prompts__prompt_id__post + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to update + title: Prompt Id + description: The identifier of the prompt to update requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_prompts_prompt_id_Request' + $ref: '#/components/schemas/UpdatePromptRequest' responses: '200': - description: The updated Prompt resource with incremented version. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Prompt' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - parameters: - - name: prompt_id - in: path - required: true - schema: - type: string - description: The identifier of the prompt to update. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/prompts/{prompt_id}/set-default-version: post: tags: - - V1 - summary: Set prompt version. - description: Typed endpoint for proper schema generation. + - Prompts + summary: Set prompt version + description: Set which version of a prompt should be the default in get_prompt (latest) operationId: set_default_version_v1_prompts__prompt_id__set_default_version_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_prompts_prompt_id_set_default_version_Request' - required: true - responses: - '200': - description: The prompt with the specified version now set as default. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - name: prompt_id in: path required: true schema: type: string - description: The identifier of the prompt. + description: The identifier of the prompt + title: Prompt Id + description: The identifier of the prompt + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SetDefaultVersionRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Prompt' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/prompts/{prompt_id}/versions: get: tags: - - V1 - summary: List prompt versions. - description: Query endpoint for proper schema generation. + - Prompts + summary: List prompt versions + description: List all versions of a specific prompt operationId: list_prompt_versions_v1_prompts__prompt_id__versions_get parameters: - name: prompt_id @@ -1304,59 +1776,84 @@ paths: required: true schema: type: string + description: The identifier of the prompt to list versions for title: Prompt Id - description: The identifier of the prompt to list versions for. + description: The identifier of the prompt to list versions for responses: '200': - description: A ListPromptsResponse containing all versions of the prompt. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListPromptsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/providers: get: tags: - - V1 - summary: List providers. - description: Response-only endpoint for proper schema generation. + - Providers + summary: List providers + description: List all available providers operationId: list_providers_v1_providers_get responses: '200': - description: A ListProvidersResponse containing information about all providers. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListProvidersResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/providers/{provider_id}: get: tags: - - V1 - summary: Get provider. - description: Query endpoint for proper schema generation. + - Providers + summary: Get provider + description: Get detailed information about a specific provider operationId: inspect_provider_v1_providers__provider_id__get parameters: - name: provider_id @@ -1364,116 +1861,169 @@ paths: required: true schema: type: string + description: The ID of the provider to inspect title: Provider Id - description: The ID of the provider to inspect. + description: The ID of the provider to inspect responses: '200': - description: A ProviderInfo object containing the provider's details. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProviderInfo' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses: get: tags: - - V1 + - Agents summary: List all responses. - description: Query endpoint for proper schema generation. + description: List all responses. operationId: list_openai_responses_v1_responses_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the last response to return. title: After - - name: model - in: query - required: true - schema: - type: string - title: Model + description: The ID of the last response to return. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + description: The number of responses to return. default: 50 title: Limit + description: The number of responses to return. + - name: model + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The model to filter responses by. + title: Model + description: The model to filter responses by. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: The order to sort responses by when sorted by created_at ('asc' or 'desc'). default: desc + title: Order + description: The order to sort responses by when sorted by created_at ('asc' or 'desc'). responses: '200': - description: A ListOpenAIResponseObject. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Agents summary: Create a model response. - description: Typed endpoint for proper schema generation. + description: Create a model response. operationId: create_openai_response_v1_responses_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_responses_Request' + $ref: '#/components/schemas/CreateOpenAIResponseRequest' responses: '200': - description: An OpenAIResponseObject. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/OpenAIResponseObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses/{response_id}: delete: tags: - - V1 + - Agents summary: Delete a response. - description: Query endpoint for proper schema generation. + description: Delete a response. operationId: delete_openai_response_v1_responses__response_id__delete parameters: - name: response_id @@ -1481,32 +2031,45 @@ paths: required: true schema: type: string + description: The ID of the OpenAI response to delete. title: Response Id description: The ID of the OpenAI response to delete. responses: '200': - description: An OpenAIDeleteResponseObject + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIDeleteResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Agents summary: Get a model response. - description: Query endpoint for proper schema generation. + description: Get a model response. operationId: get_openai_response_v1_responses__response_id__get parameters: - name: response_id @@ -1514,232 +2077,312 @@ paths: required: true schema: type: string + description: The ID of the OpenAI response to retrieve. title: Response Id description: The ID of the OpenAI response to retrieve. responses: '200': - description: An OpenAIResponseObject. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses/{response_id}/input_items: get: tags: - - V1 + - Agents summary: List input items. - description: Query endpoint for proper schema generation. + description: List input items. operationId: list_openai_response_input_items_v1_responses__response_id__input_items_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - - name: include - in: query - required: true - schema: - type: string - title: Include - - name: limit - in: query - required: false - schema: - type: integer - default: 20 - title: Limit - - name: order - in: query - required: false - schema: - $ref: '#/components/schemas/Order' - default: desc - name: response_id in: path required: true schema: type: string + description: The ID of the response to retrieve input items for. title: Response Id description: The ID of the response to retrieve input items for. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items after, used for pagination. + title: After + description: An item ID to list items after, used for pagination. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items before, used for pagination. + title: Before + description: An item ID to list items before, used for pagination. + - name: include + in: query + required: false + schema: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: Additional fields to include in the response. + title: Include + description: Additional fields to include in the response. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + default: 20 + title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + - name: order + in: query + required: false + schema: + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: The order to return the input items in. Default is desc. + default: desc + title: Order + description: The order to return the input items in. Default is desc. responses: '200': - description: An ListOpenAIResponseInputItem. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIResponseInputItem' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/safety/run-shield: post: tags: - - V1 + - Safety summary: Run shield. - description: Typed endpoint for proper schema generation. + description: Run a shield. operationId: run_shield_v1_safety_run_shield_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_safety_run_shield_Request' + $ref: '#/components/schemas/RunShieldRequest' required: true responses: '200': - description: A RunShieldResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RunShieldResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/scoring-functions: get: tags: - - V1 - summary: List all scoring functions. - description: Response-only endpoint for proper schema generation. + - Scoring Functions + summary: List all scoring functions + description: List all scoring functions operationId: list_scoring_functions_v1_scoring_functions_get responses: '200': - description: A ListScoringFunctionsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListScoringFunctionsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Register a scoring function. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: register_scoring_function_v1_scoring_functions_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Scoring Functions + summary: Register a scoring function + description: Register a scoring function + operationId: register_scoring_function_v1_scoring_functions_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterScoringFunctionRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/scoring-functions/{scoring_fn_id}: delete: tags: - - V1 - summary: Unregister a scoring function. - description: Generic endpoint - this would be replaced with actual implementation. + - Scoring Functions + summary: Unregister a scoring function + description: Unregister a scoring function operationId: unregister_scoring_function_v1_scoring_functions__scoring_fn_id__delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: scoring_fn_id in: path required: true schema: type: string - description: 'Path parameter: scoring_fn_id' + description: The ID of the scoring function to unregister + title: Scoring Fn Id + description: The ID of the scoring function to unregister responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Get a scoring function by its ID. - description: Query endpoint for proper schema generation. + - Scoring Functions + summary: Get a scoring function by its ID + description: Get a scoring function by its ID operationId: get_scoring_function_v1_scoring_functions__scoring_fn_id__get parameters: - name: scoring_fn_id @@ -1747,194 +2390,257 @@ paths: required: true schema: type: string + description: The ID of the scoring function to get title: Scoring Fn Id - responses: - '200': - description: A ScoringFn. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoringFn' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/scoring/score: - post: - tags: - - V1 - summary: Score a list of rows. - description: Typed endpoint for proper schema generation. - operationId: score_v1_scoring_score_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_scoring_score_Request' - required: true - responses: - '200': - description: A ScoreResponse object containing rows and aggregated results. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/scoring/score-batch: - post: - tags: - - V1 - summary: Score a batch of rows. - description: Typed endpoint for proper schema generation. - operationId: score_batch_v1_scoring_score_batch_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_scoring_score_batch_Request' - required: true - responses: - '200': - description: A ScoreBatchResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/shields: - get: - tags: - - V1 - summary: List all shields. - description: Response-only endpoint for proper schema generation. - operationId: list_shields_v1_shields_get - responses: - '200': - description: A ListShieldsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListShieldsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Register a shield. - description: Typed endpoint for proper schema generation. - operationId: register_shield_v1_shields_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_shields_Request' - required: true - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/shields/{identifier}: - delete: - tags: - - V1 - summary: Unregister a shield. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_shield_v1_shields__identifier__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: identifier - in: path - required: true - schema: - type: string - description: 'Path parameter: identifier' + description: The ID of the scoring function to get responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/ScoringFn' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/scoring/score: + post: + tags: + - Scoring + summary: Score a list of rows + description: Score a list of rows + operationId: score_v1_scoring_score_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/scoring/score-batch: + post: + tags: + - Scoring + summary: Score a batch of rows + description: Score a batch of rows from a dataset + operationId: score_batch_v1_scoring_score_batch_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreBatchRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreBatchResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/shields: get: tags: - - V1 - summary: Get a shield by its identifier. - description: Query endpoint for proper schema generation. + - Shields + summary: List all shields + description: List all shields + operationId: list_shields_v1_shields_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListShieldsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Shields + summary: Register a shield + description: Register a shield + operationId: register_shield_v1_shields_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterShieldRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Shield' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/shields/{identifier}: + delete: + tags: + - Shields + summary: Unregister a shield + description: Unregister a shield + operationId: unregister_shield_v1_shields__identifier__delete + parameters: + - name: identifier + in: path + required: true + schema: + type: string + description: The identifier of the shield to unregister + title: Identifier + description: The identifier of the shield to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Shields + summary: Get a shield by its identifier + description: Get a shield by its identifier operationId: get_shield_v1_shields__identifier__get parameters: - name: identifier @@ -1942,311 +2648,352 @@ paths: required: true schema: type: string + description: The identifier of the shield to get title: Identifier + description: The identifier of the shield to get responses: '200': - description: A Shield. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Shield' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Get a shield by its identifier. - description: Get a shield by its identifier. - parameters: - - name: identifier - in: path - description: The identifier of the shield to get. - required: true - schema: - type: string - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Unregister a shield. - description: Unregister a shield. - parameters: - - name: identifier - in: path - description: >- - The identifier of the shield to unregister. - required: true - schema: - type: string - deprecated: false + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/invoke: post: tags: - - V1 - summary: Run a tool with the given arguments. - description: Typed endpoint for proper schema generation. + - Tool Runtime + summary: Run a tool with the given arguments + description: Run a tool with the given arguments operationId: invoke_tool_v1_tool_runtime_invoke_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_tool_runtime_invoke_Request' + $ref: '#/components/schemas/InvokeToolRequest' required: true responses: '200': - description: A ToolInvocationResult. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ToolInvocationResult' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/list-tools: get: tags: - - V1 - summary: List all tools in the runtime. - description: Query endpoint for proper schema generation. + - Tool Runtime + summary: List all tools in the runtime + description: List all tools in the runtime operationId: list_runtime_tools_v1_tool_runtime_list_tools_get parameters: - name: tool_group_id in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the tool group to list tools for title: Tool Group Id - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/URL' + description: The ID of the tool group to list tools for + - name: mcp_endpoint + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The MCP endpoint URL to use for the tool group + title: Mcp Endpoint + description: The MCP endpoint URL to use for the tool group responses: '200': - description: A ListToolDefsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolDefsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/rag-tool/insert: post: tags: - - V1 - summary: Index documents so they can be used by the RAG system. - description: Generic endpoint - this would be replaced with actual implementation. + - Tool Runtime + summary: Insert documents into the RAG system. + description: Index documents so they can be used by the RAG system. operationId: rag_tool_insert_v1_tool_runtime_rag_tool_insert_post - parameters: - - name: args - in: query + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post' required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/rag-tool/query: post: tags: - - V1 - summary: Query the RAG system for context; typically invoked by the agent. - description: Typed endpoint for proper schema generation. + - Tool Runtime + summary: Query the RAG system for context. + description: Query the RAG system for context; typically invoked by the agent. operationId: rag_tool_query_v1_tool_runtime_rag_tool_query_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_tool_runtime_rag_tool_query_Request' + $ref: '#/components/schemas/Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post' required: true responses: '200': - description: RAGQueryResult containing the retrieved content and metadata + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RAGQueryResult' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/toolgroups: get: tags: - - V1 - summary: List tool groups with optional provider. - description: Response-only endpoint for proper schema generation. + - Tool Groups + summary: List tool groups + description: List tool groups with optional provider operationId: list_tool_groups_v1_toolgroups_get responses: '200': - description: A ListToolGroupsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolGroupsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Register a tool group. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: register_tool_group_v1_toolgroups_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Tool Groups + summary: Register a tool group + description: Register a tool group + operationId: register_tool_group_v1_toolgroups_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterToolGroupRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/toolgroups/{toolgroup_id}: delete: tags: - - V1 - summary: Unregister a tool group. - description: Generic endpoint - this would be replaced with actual implementation. + - Tool Groups + summary: Unregister a tool group + description: Unregister a tool group operationId: unregister_toolgroup_v1_toolgroups__toolgroup_id__delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: toolgroup_id in: path required: true schema: type: string - description: 'Path parameter: toolgroup_id' + description: The ID of the tool group to unregister + title: Toolgroup Id + description: The ID of the tool group to unregister responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Get a tool group by its ID. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: Get a tool group by its ID + description: Get a tool group by its ID operationId: get_tool_group_v1_toolgroups__toolgroup_id__get parameters: - name: toolgroup_id @@ -2254,65 +3001,95 @@ paths: required: true schema: type: string + description: The ID of the tool group to get title: Toolgroup Id + description: The ID of the tool group to get responses: '200': - description: A ToolGroup. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ToolGroup' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tools: get: tags: - - V1 - summary: List tools with optional tool group. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: List tools + description: List tools with optional tool group operationId: list_tools_v1_tools_get parameters: - name: toolgroup_id in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the tool group to list tools for title: Toolgroup Id + description: The ID of the tool group to list tools for responses: '200': - description: A ListToolDefsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolDefsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tools/{tool_name}: get: tags: - - V1 - summary: Get a tool by its name. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: Get a tool by its name + description: Get a tool by its name operationId: get_tool_v1_tools__tool_name__get parameters: - name: tool_name @@ -2320,152 +3097,212 @@ paths: required: true schema: type: string + description: The name of the tool to get title: Tool Name - responses: - '200': - description: A ToolDef. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolDef' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/vector-io/insert: - post: - tags: - - V1 - summary: Insert chunks into a vector database. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: insert_chunks_v1_vector_io_insert_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs + description: The name of the tool to get responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/ToolDef' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/vector-io/insert: + post: + tags: + - Vector IO + summary: Insert chunks into a vector database. + description: Insert chunks into a vector database. + operationId: insert_chunks_v1_vector_io_insert_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InsertChunksRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector-io/query: post: tags: - - V1 + - Vector IO summary: Query chunks from a vector database. - description: Typed endpoint for proper schema generation. + description: Query chunks from a vector database. operationId: query_chunks_v1_vector_io_query_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_vector_io_query_Request' + $ref: '#/components/schemas/QueryChunksRequest' required: true responses: '200': - description: A QueryChunksResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryChunksResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores: get: tags: - - V1 + - Vector IO summary: Returns a list of vector stores. - description: Query endpoint for proper schema generation. + description: Returns a list of vector stores. operationId: openai_list_vector_stores_v1_vector_stores_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. default: 20 title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. responses: '200': - description: A VectorStoreListResponse containing the list of vector stores. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreListResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Creates a vector store. - description: Typed endpoint for proper schema generation. + description: Creates a vector store. operationId: openai_create_vector_store_v1_vector_stores_post requestBody: required: true @@ -2475,29 +3312,41 @@ paths: $ref: '#/components/schemas/OpenAICreateVectorStoreRequestWithExtraBody' responses: '200': - description: A VectorStoreObject representing the created vector store. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}: delete: tags: - - V1 + - Vector IO summary: Delete a vector store. - description: Query endpoint for proper schema generation. + description: Delete a vector store. operationId: openai_delete_vector_store_v1_vector_stores__vector_store_id__delete parameters: - name: vector_store_id @@ -2505,32 +3354,45 @@ paths: required: true schema: type: string + description: The ID of the vector store to delete. title: Vector Store Id description: The ID of the vector store to delete. responses: '200': - description: A VectorStoreDeleteResponse indicating the deletion status. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Vector IO summary: Retrieves a vector store. - description: Query endpoint for proper schema generation. + description: Retrieves a vector store. operationId: openai_retrieve_vector_store_v1_vector_stores__vector_store_id__get parameters: - name: vector_store_id @@ -2538,373 +3400,530 @@ paths: required: true schema: type: string + description: The ID of the vector store to retrieve. title: Vector Store Id description: The ID of the vector store to retrieve. responses: '200': - description: A VectorStoreObject representing the vector store. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Updates a vector store. - description: Typed endpoint for proper schema generation. + description: Updates a vector store. operationId: openai_update_vector_store_v1_vector_stores__vector_store_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_Request' - responses: - '200': - description: A VectorStoreObject representing the updated vector store. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to update. + title: Vector Store Id description: The ID of the vector store to update. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreModifyRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches: post: tags: - - V1 + - Vector IO summary: Create a vector store file batch. - description: Typed endpoint for proper schema generation. + description: Create a vector store file batch. operationId: openai_create_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches_post + parameters: + - name: vector_store_id + in: path + required: true + schema: + type: string + description: The ID of the vector store to create the file batch for. + title: Vector Store Id + description: The ID of the vector store to create the file batch for. requestBody: + required: true content: application/json: schema: $ref: '#/components/schemas/OpenAICreateVectorStoreFileBatchRequestWithExtraBody' - required: true responses: '200': - description: A VectorStoreFileBatchObject representing the created file batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileBatchObject' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: vector_store_id - in: path - required: true - schema: - type: string - description: The ID of the vector store to create the file batch for. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}: get: tags: - - V1 + - Vector IO summary: Retrieve a vector store file batch. - description: Query endpoint for proper schema generation. + description: Retrieve a vector store file batch. operationId: openai_retrieve_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__get parameters: - - name: batch_id - in: path - required: true - schema: - type: string - title: Batch Id - description: The ID of the file batch to retrieve. - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file batch. title: Vector Store Id description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to retrieve. + title: Batch Id + description: The ID of the file batch to retrieve. responses: '200': - description: A VectorStoreFileBatchObject representing the file batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileBatchObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: post: tags: - - V1 + - Vector IO summary: Cancels a vector store file batch. - description: Typed endpoint for proper schema generation. + description: Cancels a vector store file batch. operationId: openai_cancel_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__cancel_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request' - required: true - responses: - '200': - description: A VectorStoreFileBatchObject representing the cancelled file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - - name: batch_id - in: path - required: true - schema: - type: string - description: The ID of the file batch to cancel. - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file batch. + title: Vector Store Id description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to cancel. + title: Batch Id + description: The ID of the file batch to cancel. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileBatchObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files: get: tags: - - V1 + - Vector IO summary: Returns a list of vector store files in a batch. - description: Query endpoint for proper schema generation. + description: Returns a list of vector store files in a batch. operationId: openai_list_files_in_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__files_get parameters: + - name: vector_store_id + in: path + required: true + schema: + type: string + description: The ID of the vector store containing the file batch. + title: Vector Store Id + description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to list files from. + title: Batch Id + description: The ID of the file batch to list files from. - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - name: before in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. - name: filter in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Filter by file status. One of in_progress, completed, failed, cancelled. title: Filter + description: Filter by file status. One of in_progress, completed, failed, cancelled. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. default: 20 title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc title: Order - - name: batch_id - in: path - required: true - schema: - type: string - title: Batch Id - description: The ID of the file batch to list files from. - - name: vector_store_id - in: path - required: true - schema: - type: string - title: Vector Store Id - description: The ID of the vector store containing the file batch. + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. responses: '200': - description: A VectorStoreFilesListInBatchResponse containing the list of files in the batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFilesListInBatchResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files: get: tags: - - V1 + - Vector IO summary: List files in a vector store. - description: Query endpoint for proper schema generation. + description: List files in a vector store. operationId: openai_list_files_in_vector_store_v1_vector_stores__vector_store_id__files_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - - name: filter - in: query - required: true - schema: - type: string - title: Filter - - name: limit - in: query - required: false - schema: - type: integer - default: 20 - title: Limit - - name: order - in: query - required: false - schema: - type: string - default: desc - title: Order - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to list files from. title: Vector Store Id description: The ID of the vector store to list files from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + default: 20 + title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + - name: order + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + default: desc + title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + - name: filter + in: query + required: false + schema: + anyOf: + - const: completed + type: string + - const: in_progress + type: string + - const: cancelled + type: string + - const: failed + type: string + - type: 'null' + description: Filter by file status to only return files with the specified status. + title: Filter + description: Filter by file status to only return files with the specified status. responses: '200': - description: A VectorStoreListFilesResponse containing the list of files. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreListFilesResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Attach a file to a vector store. - description: Typed endpoint for proper schema generation. - operationId: openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_files_Request' - responses: - '200': - description: A VectorStoreFileObject representing the attached file. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Vector IO + summary: Attach a file to a vector store. + description: Attach a file to a vector store. + operationId: openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to attach the file to. + title: Vector Store Id description: The ID of the vector store to attach the file to. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files/{file_id}: delete: tags: - - V1 + - Vector IO summary: Delete a vector store file. - description: Query endpoint for proper schema generation. + description: Delete a vector store file. operationId: openai_delete_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__delete parameters: - name: vector_store_id @@ -2912,6 +3931,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to delete. title: Vector Store Id description: The ID of the vector store containing the file to delete. - name: file_id @@ -2919,32 +3939,45 @@ paths: required: true schema: type: string + description: The ID of the file to delete. title: File Id description: The ID of the file to delete. responses: '200': - description: A VectorStoreFileDeleteResponse indicating the deletion status. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Vector IO summary: Retrieves a vector store file. - description: Query endpoint for proper schema generation. + description: Retrieves a vector store file. operationId: openai_retrieve_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__get parameters: - name: vector_store_id @@ -2952,6 +3985,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to retrieve. title: Vector Store Id description: The ID of the vector store containing the file to retrieve. - name: file_id @@ -2959,77 +3993,109 @@ paths: required: true schema: type: string + description: The ID of the file to retrieve. title: File Id description: The ID of the file to retrieve. responses: '200': - description: A VectorStoreFileObject representing the file. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Updates a vector store file. - description: Typed endpoint for proper schema generation. + description: Updates a vector store file. operationId: openai_update_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_files_file_id_Request' - responses: - '200': - description: A VectorStoreFileObject representing the updated file. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file to update. + title: Vector Store Id description: The ID of the vector store containing the file to update. - name: file_id in: path required: true schema: type: string + description: The ID of the file to update. + title: File Id description: The ID of the file to update. + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + description: The updated key-value attributes to store with the file. + title: Attributes + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files/{file_id}/content: get: tags: - - V1 + - Vector IO summary: Retrieves the contents of a vector store file. - description: Query endpoint for proper schema generation. + description: Retrieves the contents of a vector store file. operationId: openai_retrieve_vector_store_file_contents_v1_vector_stores__vector_store_id__files__file_id__content_get parameters: - name: vector_store_id @@ -3037,6 +4103,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to retrieve. title: Vector Store Id description: The ID of the vector store containing the file to retrieve. - name: file_id @@ -3044,5144 +4111,133 @@ paths: required: true schema: type: string + description: The ID of the file to retrieve. title: File Id description: The ID of the file to retrieve. responses: '200': - description: A list of InterleavedContent representing the file contents. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileContentsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/vector_stores/{vector_store_id}/search: - post: - tags: - - V1 - summary: Search for chunks in a vector store. - description: Typed endpoint for proper schema generation. - operationId: openai_search_vector_store_v1_vector_stores__vector_store_id__search_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_search_Request' - required: true - responses: - '200': - description: A VectorStoreSearchResponse containing the search results. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/VectorStoreSearchResponsePage' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/vector_stores/{vector_store_id}/search: + post: + tags: + - Vector IO + summary: Search for chunks in a vector store. + description: Search for chunks in a vector store. + operationId: openai_search_vector_store_v1_vector_stores__vector_store_id__search_post parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to search. + title: Vector Store Id description: The ID of the vector store to search. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreSearchResponsePage' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/version: get: tags: - - V1 + - Inspect summary: Get version. - description: Response-only endpoint for proper schema generation. + description: Get the version of the service. operationId: version_v1_version_get responses: '200': - description: Version information containing the service version number. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VersionInfo' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' components: schemas: - Error: - type: object - properties: - status: - type: integer - description: HTTP status code - title: - type: string - description: >- - Error title, a short summary of the error which is invariant for an error - type - detail: - type: string - description: >- - Error detail, a longer human-readable description of the error - instance: - type: string - description: >- - (Optional) A URL which can be used to retrieve more information about - the specific occurrence of the error - additionalProperties: false - required: - - status - - title - - detail - title: Error - description: >- - Error response from the API. Roughly follows RFC 7807. - ListBatchesResponse: - type: object - properties: - object: - type: string - const: list - default: list - data: - type: array - items: - type: object - properties: - id: - type: string - completion_window: - type: string - created_at: - type: integer - endpoint: - type: string - input_file_id: - type: string - object: - type: string - const: batch - status: - type: string - enum: - - validating - - failed - - in_progress - - finalizing - - completed - - expired - - cancelling - - cancelled - cancelled_at: - type: integer - cancelling_at: - type: integer - completed_at: - type: integer - error_file_id: - type: string - errors: - type: object - properties: - data: - type: array - items: - type: object - properties: - code: - type: string - line: - type: integer - message: - type: string - param: - type: string - additionalProperties: false - title: BatchError - object: - type: string - additionalProperties: false - title: Errors - expired_at: - type: integer - expires_at: - type: integer - failed_at: - type: integer - finalizing_at: - type: integer - in_progress_at: - type: integer - metadata: - type: object - additionalProperties: - type: string - model: - type: string - output_file_id: - type: string - request_counts: - type: object - properties: - completed: - type: integer - failed: - type: integer - total: - type: integer - additionalProperties: false - required: - - completed - - failed - - total - title: BatchRequestCounts - usage: - type: object - properties: - input_tokens: - type: integer - input_tokens_details: - type: object - properties: - cached_tokens: - type: integer - additionalProperties: false - required: - - cached_tokens - title: InputTokensDetails - output_tokens: - type: integer - output_tokens_details: - type: object - properties: - reasoning_tokens: - type: integer - additionalProperties: false - required: - - reasoning_tokens - title: OutputTokensDetails - total_tokens: - type: integer - additionalProperties: false - required: - - input_tokens - - input_tokens_details - - output_tokens - - output_tokens_details - - total_tokens - title: BatchUsage - additionalProperties: false - required: - - id - - completion_window - - created_at - - endpoint - - input_file_id - - object - - status - title: Batch - first_id: - type: string - last_id: - type: string - has_more: - type: boolean - default: false - additionalProperties: false - required: - - object - - data - - has_more - title: ListBatchesResponse - description: >- - Response containing a list of batch objects. - CreateBatchRequest: - type: object - properties: - input_file_id: - type: string - description: >- - The ID of an uploaded file containing requests for the batch. - endpoint: - type: string - description: >- - The endpoint to be used for all requests in the batch. - completion_window: - type: string - const: 24h - description: >- - The time window within which the batch should be processed. - metadata: - type: object - additionalProperties: - type: string - description: Optional metadata for the batch. - idempotency_key: - type: string - description: >- - Optional idempotency key. When provided, enables idempotent behavior. - additionalProperties: false - required: - - input_file_id - - endpoint - - completion_window - title: CreateBatchRequest - Batch: - type: object - properties: - id: - type: string - completion_window: - type: string - created_at: - type: integer - endpoint: - type: string - input_file_id: - type: string - object: - type: string - const: batch - status: - type: string - enum: - - validating - - failed - - in_progress - - finalizing - - completed - - expired - - cancelling - - cancelled - cancelled_at: - type: integer - cancelling_at: - type: integer - completed_at: - type: integer - error_file_id: - type: string - errors: - type: object - properties: - data: - type: array - items: - type: object - properties: - code: - type: string - line: - type: integer - message: - type: string - param: - type: string - additionalProperties: false - title: BatchError - object: - type: string - additionalProperties: false - title: Errors - expired_at: - type: integer - expires_at: - type: integer - failed_at: - type: integer - finalizing_at: - type: integer - in_progress_at: - type: integer - metadata: - type: object - additionalProperties: - type: string - model: - type: string - output_file_id: - type: string - request_counts: - type: object - properties: - completed: - type: integer - failed: - type: integer - total: - type: integer - additionalProperties: false - required: - - completed - - failed - - total - title: BatchRequestCounts - usage: - type: object - properties: - input_tokens: - type: integer - input_tokens_details: - type: object - properties: - cached_tokens: - type: integer - additionalProperties: false - required: - - cached_tokens - title: InputTokensDetails - output_tokens: - type: integer - output_tokens_details: - type: object - properties: - reasoning_tokens: - type: integer - additionalProperties: false - required: - - reasoning_tokens - title: OutputTokensDetails - total_tokens: - type: integer - additionalProperties: false - required: - - input_tokens - - input_tokens_details - - output_tokens - - output_tokens_details - - total_tokens - title: BatchUsage - additionalProperties: false - required: - - id - - completion_window - - created_at - - endpoint - - input_file_id - - object - - status - title: Batch - Order: - type: string - enum: - - asc - - desc - title: Order - description: Sort order for paginated responses. - ListOpenAIChatCompletionResponse: - type: object - properties: - data: - type: array - items: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChoice' - description: List of choices - object: - type: string - const: chat.completion - default: chat.completion - description: >- - The object type, which will be "chat.completion" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - description: >- - Token usage information for the completion - input_messages: - type: array - items: - $ref: '#/components/schemas/OpenAIMessageParam' - additionalProperties: false - required: - - id - - choices - - object - - created - - model - - input_messages - title: OpenAICompletionWithInputMessages - description: >- - List of chat completion objects with their input messages - has_more: - type: boolean - description: >- - Whether there are more completions available beyond this list - first_id: - type: string - description: ID of the first completion in this list - last_id: - type: string - description: ID of the last completion in this list - object: - type: string - const: list - default: list - description: >- - Must be "list" to identify this as a list response - additionalProperties: false - required: - - data - - has_more - - first_id - - last_id - - object - title: ListOpenAIChatCompletionResponse - description: >- - Response from listing OpenAI-compatible chat completions. - OpenAIAssistantMessageParam: - type: object - properties: - role: - type: string - const: assistant - default: assistant - description: >- - Must be "assistant" to identify this as the model's response - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: The content of the model's response - name: - type: string - description: >- - (Optional) The name of the assistant message participant. - tool_calls: - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - description: >- - List of tool calls. Each tool call is an OpenAIChatCompletionToolCall - object. - additionalProperties: false - required: - - role - title: OpenAIAssistantMessageParam - description: >- - A message containing the model's (assistant) response in an OpenAI-compatible - chat completion request. - "OpenAIChatCompletionContentPartImageParam": - type: object - properties: - type: - type: string - const: image_url - default: image_url - description: >- - Must be "image_url" to identify this as image content - image_url: - $ref: '#/components/schemas/OpenAIImageURL' - description: >- - Image URL specification and processing details - additionalProperties: false - required: - - type - - image_url - title: >- - OpenAIChatCompletionContentPartImageParam - description: >- - Image content part for OpenAI-compatible chat completion messages. - OpenAIChatCompletionContentPartParam: - oneOf: - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - - $ref: '#/components/schemas/OpenAIFile' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - image_url: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - file: '#/components/schemas/OpenAIFile' - OpenAIChatCompletionContentPartTextParam: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Must be "text" to identify this as text content - text: - type: string - description: The text content of the message - additionalProperties: false - required: - - type - - text - title: OpenAIChatCompletionContentPartTextParam - description: >- - Text content part for OpenAI-compatible chat completion messages. - OpenAIChatCompletionToolCall: - type: object - properties: - index: - type: integer - description: >- - (Optional) Index of the tool call in the list - id: - type: string - description: >- - (Optional) Unique identifier for the tool call - type: - type: string - const: function - default: function - description: >- - Must be "function" to identify this as a function call - function: - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' - description: (Optional) Function call details - additionalProperties: false - required: - - type - title: OpenAIChatCompletionToolCall - description: >- - Tool call specification for OpenAI-compatible chat completion responses. - OpenAIChatCompletionToolCallFunction: - type: object - properties: - name: - type: string - description: (Optional) Name of the function to call - arguments: - type: string - description: >- - (Optional) Arguments to pass to the function as a JSON string - additionalProperties: false - title: OpenAIChatCompletionToolCallFunction - description: >- - Function call details for OpenAI-compatible tool calls. - OpenAIChatCompletionUsage: - type: object - properties: - prompt_tokens: - type: integer - description: Number of tokens in the prompt - completion_tokens: - type: integer - description: Number of tokens in the completion - total_tokens: - type: integer - description: Total tokens used (prompt + completion) - prompt_tokens_details: - type: object - properties: - cached_tokens: - type: integer - description: Number of tokens retrieved from cache - additionalProperties: false - title: >- - OpenAIChatCompletionUsagePromptTokensDetails - description: >- - Token details for prompt tokens in OpenAI chat completion usage. - completion_tokens_details: - type: object - properties: - reasoning_tokens: - type: integer - description: >- - Number of tokens used for reasoning (o1/o3 models) - additionalProperties: false - title: >- - OpenAIChatCompletionUsageCompletionTokensDetails - description: >- - Token details for output tokens in OpenAI chat completion usage. - additionalProperties: false - required: - - prompt_tokens - - completion_tokens - - total_tokens - title: OpenAIChatCompletionUsage - description: >- - Usage information for OpenAI chat completion. - OpenAIChoice: - type: object - properties: - message: - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/OpenAIUserMessageParam' - system: '#/components/schemas/OpenAISystemMessageParam' - assistant: '#/components/schemas/OpenAIAssistantMessageParam' - tool: '#/components/schemas/OpenAIToolMessageParam' - developer: '#/components/schemas/OpenAIDeveloperMessageParam' - description: The message from the model - finish_reason: - type: string - description: The reason the model stopped generating - index: - type: integer - description: The index of the choice - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - description: >- - (Optional) The log probabilities for the tokens in the message - additionalProperties: false - required: - - message - - finish_reason - - index - title: OpenAIChoice - description: >- - A choice from an OpenAI-compatible chat completion response. - OpenAIChoiceLogprobs: - type: object - properties: - content: - type: array - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - description: >- - (Optional) The log probabilities for the tokens in the message - refusal: - type: array - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - description: >- - (Optional) The log probabilities for the tokens in the message - additionalProperties: false - title: OpenAIChoiceLogprobs - description: >- - The log probabilities for the tokens in the message from an OpenAI-compatible - chat completion response. - OpenAIDeveloperMessageParam: - type: object - properties: - role: - type: string - const: developer - default: developer - description: >- - Must be "developer" to identify this as a developer message - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: The content of the developer message - name: - type: string - description: >- - (Optional) The name of the developer message participant. - additionalProperties: false - required: - - role - - content - title: OpenAIDeveloperMessageParam - description: >- - A message from the developer in an OpenAI-compatible chat completion request. - OpenAIFile: - type: object - properties: - type: - type: string - const: file - default: file - file: - $ref: '#/components/schemas/OpenAIFileFile' - additionalProperties: false - required: - - type - - file - title: OpenAIFile - OpenAIFileFile: - type: object - properties: - file_data: - type: string - file_id: - type: string - filename: - type: string - additionalProperties: false - title: OpenAIFileFile - OpenAIImageURL: - type: object - properties: - url: - type: string - description: >- - URL of the image to include in the message - detail: - type: string - description: >- - (Optional) Level of detail for image processing. Can be "low", "high", - or "auto" - additionalProperties: false - required: - - url - title: OpenAIImageURL - description: >- - Image URL specification for OpenAI-compatible chat completion messages. - OpenAIMessageParam: - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/OpenAIUserMessageParam' - system: '#/components/schemas/OpenAISystemMessageParam' - assistant: '#/components/schemas/OpenAIAssistantMessageParam' - tool: '#/components/schemas/OpenAIToolMessageParam' - developer: '#/components/schemas/OpenAIDeveloperMessageParam' - OpenAISystemMessageParam: - type: object - properties: - role: - type: string - const: system - default: system - description: >- - Must be "system" to identify this as a system message - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: >- - The content of the "system prompt". If multiple system messages are provided, - they are concatenated. The underlying Llama Stack code may also add other - system messages (for example, for formatting tool definitions). - name: - type: string - description: >- - (Optional) The name of the system message participant. - additionalProperties: false - required: - - role - - content - title: OpenAISystemMessageParam - description: >- - A system message providing instructions or context to the model. - OpenAITokenLogProb: - type: object - properties: - token: - type: string - bytes: - type: array - items: - type: integer - logprob: - type: number - top_logprobs: - type: array - items: - $ref: '#/components/schemas/OpenAITopLogProb' - additionalProperties: false - required: - - token - - logprob - - top_logprobs - title: OpenAITokenLogProb - description: >- - The log probability for a token from an OpenAI-compatible chat completion - response. - OpenAIToolMessageParam: - type: object - properties: - role: - type: string - const: tool - default: tool - description: >- - Must be "tool" to identify this as a tool response - tool_call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - description: The response content from the tool - additionalProperties: false - required: - - role - - tool_call_id - - content - title: OpenAIToolMessageParam - description: >- - A message representing the result of a tool invocation in an OpenAI-compatible - chat completion request. - OpenAITopLogProb: - type: object - properties: - token: - type: string - bytes: - type: array - items: - type: integer - logprob: - type: number - additionalProperties: false - required: - - token - - logprob - title: OpenAITopLogProb - description: >- - The top log probability for a token from an OpenAI-compatible chat completion - response. - OpenAIUserMessageParam: - type: object - properties: - role: - type: string - const: user - default: user - description: >- - Must be "user" to identify this as a user message - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartParam' - description: >- - The content of the message, which can include text and other media - name: - type: string - description: >- - (Optional) The name of the user message participant. - additionalProperties: false - required: - - role - - content - title: OpenAIUserMessageParam - description: >- - A message from the user in an OpenAI-compatible chat completion request. - OpenAIJSONSchema: - type: object - properties: - name: - type: string - description: Name of the schema - description: - type: string - description: (Optional) Description of the schema - strict: - type: boolean - description: >- - (Optional) Whether to enforce strict adherence to the schema - schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The JSON schema definition - additionalProperties: false - required: - - name - title: OpenAIJSONSchema - description: >- - JSON schema specification for OpenAI-compatible structured response format. - OpenAIResponseFormatJSONObject: - type: object - properties: - type: - type: string - const: json_object - default: json_object - description: >- - Must be "json_object" to indicate generic JSON object response format - additionalProperties: false - required: - - type - title: OpenAIResponseFormatJSONObject - description: >- - JSON object response format for OpenAI-compatible chat completion requests. - OpenAIResponseFormatJSONSchema: - type: object - properties: - type: - type: string - const: json_schema - default: json_schema - description: >- - Must be "json_schema" to indicate structured JSON response format - json_schema: - $ref: '#/components/schemas/OpenAIJSONSchema' - description: >- - The JSON schema specification for the response - additionalProperties: false - required: - - type - - json_schema - title: OpenAIResponseFormatJSONSchema - description: >- - JSON schema response format for OpenAI-compatible chat completion requests. - OpenAIResponseFormatParam: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseFormatText' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAIResponseFormatText' - json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' - json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' - OpenAIResponseFormatText: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Must be "text" to indicate plain text response format - additionalProperties: false - required: - - type - title: OpenAIResponseFormatText - description: >- - Text response format for OpenAI-compatible chat completion requests. - OpenAIChatCompletionRequestWithExtraBody: - type: object - properties: - model: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - messages: - type: array - items: - $ref: '#/components/schemas/OpenAIMessageParam' - description: List of messages in the conversation. - frequency_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - function_call: - oneOf: - - type: string - - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The function call to use. - functions: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) List of functions to use. - logit_bias: - type: object - additionalProperties: - type: number - description: (Optional) The logit bias to use. - logprobs: - type: boolean - description: (Optional) The log probabilities to use. - max_completion_tokens: - type: integer - description: >- - (Optional) The maximum number of tokens to generate. - max_tokens: - type: integer - description: >- - (Optional) The maximum number of tokens to generate. - n: - type: integer - description: >- - (Optional) The number of completions to generate. - parallel_tool_calls: - type: boolean - description: >- - (Optional) Whether to parallelize tool calls. - presence_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - response_format: - $ref: '#/components/schemas/OpenAIResponseFormatParam' - description: (Optional) The response format to use. - seed: - type: integer - description: (Optional) The seed to use. - stop: - oneOf: - - type: string - - type: array - items: - type: string - description: (Optional) The stop tokens to use. - stream: - type: boolean - description: >- - (Optional) Whether to stream the response. - stream_options: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The stream options to use. - temperature: - type: number - description: (Optional) The temperature to use. - tool_choice: - oneOf: - - type: string - - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The tool choice to use. - tools: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The tools to use. - top_logprobs: - type: integer - description: >- - (Optional) The top log probabilities to use. - top_p: - type: number - description: (Optional) The top p to use. - user: - type: string - description: (Optional) The user to use. - additionalProperties: false - required: - - model - - messages - title: OpenAIChatCompletionRequestWithExtraBody - description: >- - Request parameters for OpenAI-compatible chat completion endpoint. - OpenAIChatCompletion: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChoice' - description: List of choices - object: - type: string - const: chat.completion - default: chat.completion - description: >- - The object type, which will be "chat.completion" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - description: >- - Token usage information for the completion - additionalProperties: false - required: - - id - - choices - - object - - created - - model - title: OpenAIChatCompletion - description: >- - Response from an OpenAI-compatible chat completion request. - OpenAIChatCompletionChunk: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChunkChoice' - description: List of choices - object: - type: string - const: chat.completion.chunk - default: chat.completion.chunk - description: >- - The object type, which will be "chat.completion.chunk" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - description: >- - Token usage information (typically included in final chunk with stream_options) - additionalProperties: false - required: - - id - - choices - - object - - created - - model - title: OpenAIChatCompletionChunk - description: >- - Chunk from a streaming response to an OpenAI-compatible chat completion request. - OpenAIChoiceDelta: - type: object - properties: - content: - type: string - description: (Optional) The content of the delta - refusal: - type: string - description: (Optional) The refusal of the delta - role: - type: string - description: (Optional) The role of the delta - tool_calls: - type: array - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - description: (Optional) The tool calls of the delta - reasoning_content: - type: string - description: >- - (Optional) The reasoning content from the model (non-standard, for o1/o3 - models) - additionalProperties: false - title: OpenAIChoiceDelta - description: >- - A delta from an OpenAI-compatible chat completion streaming response. - OpenAIChunkChoice: - type: object - properties: - delta: - $ref: '#/components/schemas/OpenAIChoiceDelta' - description: The delta from the chunk - finish_reason: - type: string - description: The reason the model stopped generating - index: - type: integer - description: The index of the choice - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - description: >- - (Optional) The log probabilities for the tokens in the message - additionalProperties: false - required: - - delta - - finish_reason - - index - title: OpenAIChunkChoice - description: >- - A chunk choice from an OpenAI-compatible chat completion streaming response. - OpenAICompletionWithInputMessages: - type: object - properties: - id: - type: string - description: The ID of the chat completion - choices: - type: array - items: - $ref: '#/components/schemas/OpenAIChoice' - description: List of choices - object: - type: string - const: chat.completion - default: chat.completion - description: >- - The object type, which will be "chat.completion" - created: - type: integer - description: >- - The Unix timestamp in seconds when the chat completion was created - model: - type: string - description: >- - The model that was used to generate the chat completion - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - description: >- - Token usage information for the completion - input_messages: - type: array - items: - $ref: '#/components/schemas/OpenAIMessageParam' - additionalProperties: false - required: - - id - - choices - - object - - created - - model - - input_messages - title: OpenAICompletionWithInputMessages - OpenAICompletionRequestWithExtraBody: - type: object - properties: - model: - type: string - description: >- - The identifier of the model to use. The model must be registered with - Llama Stack and available via the /models endpoint. - prompt: - oneOf: - - type: string - - type: array - items: - type: string - - type: array - items: - type: integer - - type: array - items: - type: array - items: - type: integer - description: The prompt to generate a completion for. - best_of: - type: integer - description: >- - (Optional) The number of completions to generate. - echo: - type: boolean - description: (Optional) Whether to echo the prompt. - frequency_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - logit_bias: - type: object - additionalProperties: - type: number - description: (Optional) The logit bias to use. - logprobs: - type: boolean - description: (Optional) The log probabilities to use. - max_tokens: - type: integer - description: >- - (Optional) The maximum number of tokens to generate. - n: - type: integer - description: >- - (Optional) The number of completions to generate. - presence_penalty: - type: number - description: >- - (Optional) The penalty for repeated tokens. - seed: - type: integer - description: (Optional) The seed to use. - stop: - oneOf: - - type: string - - type: array - items: - type: string - description: (Optional) The stop tokens to use. - stream: - type: boolean - description: >- - (Optional) Whether to stream the response. - stream_options: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) The stream options to use. - temperature: - type: number - description: (Optional) The temperature to use. - top_p: - type: number - description: (Optional) The top p to use. - user: - type: string - description: (Optional) The user to use. - suffix: - type: string - description: >- - (Optional) The suffix that should be appended to the completion. - additionalProperties: false - required: - - model - - prompt - title: OpenAICompletionRequestWithExtraBody - description: >- - Request parameters for OpenAI-compatible completion endpoint. - OpenAICompletion: - type: object - properties: - id: - type: string - choices: - type: array - items: - $ref: '#/components/schemas/OpenAICompletionChoice' - created: - type: integer - model: - type: string - object: - type: string - const: text_completion - default: text_completion - additionalProperties: false - required: - - id - - choices - - created - - model - - object - title: OpenAICompletion - description: >- - Response from an OpenAI-compatible completion request. - OpenAICompletionChoice: - type: object - properties: - finish_reason: - type: string - text: - type: string - index: - type: integer - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - additionalProperties: false - required: - - finish_reason - - text - - index - title: OpenAICompletionChoice - description: >- - A choice from an OpenAI-compatible completion response. - ConversationItem: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - discriminator: - propertyName: type - mapping: - message: '#/components/schemas/OpenAIResponseMessage' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - OpenAIResponseAnnotationCitation: - type: object - properties: - type: - type: string - const: url_citation - default: url_citation - description: >- - Annotation type identifier, always "url_citation" - end_index: - type: integer - description: >- - End position of the citation span in the content - start_index: - type: integer - description: >- - Start position of the citation span in the content - title: - type: string - description: Title of the referenced web resource - url: - type: string - description: URL of the referenced web resource - additionalProperties: false - required: - - type - - end_index - - start_index - - title - - url - title: OpenAIResponseAnnotationCitation - description: >- - URL citation annotation for referencing external web resources. - "OpenAIResponseAnnotationContainerFileCitation": - type: object - properties: - type: - type: string - const: container_file_citation - default: container_file_citation - container_id: - type: string - end_index: - type: integer - file_id: - type: string - filename: - type: string - start_index: - type: integer - additionalProperties: false - required: - - type - - container_id - - end_index - - file_id - - filename - - start_index - title: >- - OpenAIResponseAnnotationContainerFileCitation - OpenAIResponseAnnotationFileCitation: - type: object - properties: - type: - type: string - const: file_citation - default: file_citation - description: >- - Annotation type identifier, always "file_citation" - file_id: - type: string - description: Unique identifier of the referenced file - filename: - type: string - description: Name of the referenced file - index: - type: integer - description: >- - Position index of the citation within the content - additionalProperties: false - required: - - type - - file_id - - filename - - index - title: OpenAIResponseAnnotationFileCitation - description: >- - File citation annotation for referencing specific files in response content. - OpenAIResponseAnnotationFilePath: - type: object - properties: - type: - type: string - const: file_path - default: file_path - file_id: - type: string - index: - type: integer - additionalProperties: false - required: - - type - - file_id - - index - title: OpenAIResponseAnnotationFilePath - OpenAIResponseAnnotations: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' - discriminator: - propertyName: type - mapping: - file_citation: '#/components/schemas/OpenAIResponseAnnotationFileCitation' - url_citation: '#/components/schemas/OpenAIResponseAnnotationCitation' - container_file_citation: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' - file_path: '#/components/schemas/OpenAIResponseAnnotationFilePath' - OpenAIResponseContentPartRefusal: - type: object - properties: - type: - type: string - const: refusal - default: refusal - description: >- - Content part type identifier, always "refusal" - refusal: - type: string - description: Refusal text supplied by the model - additionalProperties: false - required: - - type - - refusal - title: OpenAIResponseContentPartRefusal - description: >- - Refusal content within a streamed response part. - "OpenAIResponseInputFunctionToolCallOutput": - type: object - properties: - call_id: - type: string - output: - type: string - type: - type: string - const: function_call_output - default: function_call_output - id: - type: string - status: - type: string - additionalProperties: false - required: - - call_id - - output - - type - title: >- - OpenAIResponseInputFunctionToolCallOutput - description: >- - This represents the output of a function call that gets passed back to the - model. - OpenAIResponseInputMessageContent: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' - discriminator: - propertyName: type - mapping: - input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' - input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' - input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' - OpenAIResponseInputMessageContentFile: - type: object - properties: - type: - type: string - const: input_file - default: input_file - description: >- - The type of the input item. Always `input_file`. - file_data: - type: string - description: >- - The data of the file to be sent to the model. - file_id: - type: string - description: >- - (Optional) The ID of the file to be sent to the model. - file_url: - type: string - description: >- - The URL of the file to be sent to the model. - filename: - type: string - description: >- - The name of the file to be sent to the model. - additionalProperties: false - required: - - type - title: OpenAIResponseInputMessageContentFile - description: >- - File content for input messages in OpenAI response format. - OpenAIResponseInputMessageContentImage: - type: object - properties: - detail: - oneOf: - - type: string - const: low - - type: string - const: high - - type: string - const: auto - default: auto - description: >- - Level of detail for image processing, can be "low", "high", or "auto" - type: - type: string - const: input_image - default: input_image - description: >- - Content type identifier, always "input_image" - file_id: - type: string - description: >- - (Optional) The ID of the file to be sent to the model. - image_url: - type: string - description: (Optional) URL of the image content - additionalProperties: false - required: - - detail - - type - title: OpenAIResponseInputMessageContentImage - description: >- - Image content for input messages in OpenAI response format. - OpenAIResponseInputMessageContentText: - type: object - properties: - text: - type: string - description: The text content of the input message - type: - type: string - const: input_text - default: input_text - description: >- - Content type identifier, always "input_text" - additionalProperties: false - required: - - text - - type - title: OpenAIResponseInputMessageContentText - description: >- - Text content for input messages in OpenAI response format. - OpenAIResponseMCPApprovalRequest: - type: object - properties: - arguments: - type: string - id: - type: string - name: - type: string - server_label: - type: string - type: - type: string - const: mcp_approval_request - default: mcp_approval_request - additionalProperties: false - required: - - arguments - - id - - name - - server_label - - type - title: OpenAIResponseMCPApprovalRequest - description: >- - A request for human approval of a tool invocation. - OpenAIResponseMCPApprovalResponse: - type: object - properties: - approval_request_id: - type: string - approve: - type: boolean - type: - type: string - const: mcp_approval_response - default: mcp_approval_response - id: - type: string - reason: - type: string - additionalProperties: false - required: - - approval_request_id - - approve - - type - title: OpenAIResponseMCPApprovalResponse - description: A response to an MCP approval request. - OpenAIResponseMessage: - type: object - properties: - content: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInputMessageContent' - - type: array - items: - $ref: '#/components/schemas/OpenAIResponseOutputMessageContent' - role: - oneOf: - - type: string - const: system - - type: string - const: developer - - type: string - const: user - - type: string - const: assistant - type: - type: string - const: message - default: message - id: - type: string - status: - type: string - additionalProperties: false - required: - - content - - role - - type - title: OpenAIResponseMessage - description: >- - Corresponds to the various Message types in the Responses API. They are all - under one type because the Responses API gives them all the same "type" value, - and there is no way to tell them apart in certain scenarios. - OpenAIResponseOutputMessageContent: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' - - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' - discriminator: - propertyName: type - mapping: - output_text: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' - refusal: '#/components/schemas/OpenAIResponseContentPartRefusal' - "OpenAIResponseOutputMessageContentOutputText": - type: object - properties: - text: - type: string - type: - type: string - const: output_text - default: output_text - annotations: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseAnnotations' - additionalProperties: false - required: - - text - - type - - annotations - title: >- - OpenAIResponseOutputMessageContentOutputText - "OpenAIResponseOutputMessageFileSearchToolCall": - type: object - properties: - id: - type: string - description: Unique identifier for this tool call - queries: - type: array - items: - type: string - description: List of search queries executed - status: - type: string - description: >- - Current status of the file search operation - type: - type: string - const: file_search_call - default: file_search_call - description: >- - Tool call type identifier, always "file_search_call" - results: - type: array - items: - type: object - properties: - attributes: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Key-value attributes associated with the file - file_id: - type: string - description: >- - Unique identifier of the file containing the result - filename: - type: string - description: Name of the file containing the result - score: - type: number - description: >- - Relevance score for this search result (between 0 and 1) - text: - type: string - description: Text content of the search result - additionalProperties: false - required: - - attributes - - file_id - - filename - - score - - text - title: >- - OpenAIResponseOutputMessageFileSearchToolCallResults - description: >- - Search results returned by the file search operation. - description: >- - (Optional) Search results returned by the file search operation - additionalProperties: false - required: - - id - - queries - - status - - type - title: >- - OpenAIResponseOutputMessageFileSearchToolCall - description: >- - File search tool call output message for OpenAI responses. - "OpenAIResponseOutputMessageFunctionToolCall": - type: object - properties: - call_id: - type: string - description: Unique identifier for the function call - name: - type: string - description: Name of the function being called - arguments: - type: string - description: >- - JSON string containing the function arguments - type: - type: string - const: function_call - default: function_call - description: >- - Tool call type identifier, always "function_call" - id: - type: string - description: >- - (Optional) Additional identifier for the tool call - status: - type: string - description: >- - (Optional) Current status of the function call execution - additionalProperties: false - required: - - call_id - - name - - arguments - - type - title: >- - OpenAIResponseOutputMessageFunctionToolCall - description: >- - Function tool call output message for OpenAI responses. - OpenAIResponseOutputMessageMCPCall: - type: object - properties: - id: - type: string - description: Unique identifier for this MCP call - type: - type: string - const: mcp_call - default: mcp_call - description: >- - Tool call type identifier, always "mcp_call" - arguments: - type: string - description: >- - JSON string containing the MCP call arguments - name: - type: string - description: Name of the MCP method being called - server_label: - type: string - description: >- - Label identifying the MCP server handling the call - error: - type: string - description: >- - (Optional) Error message if the MCP call failed - output: - type: string - description: >- - (Optional) Output result from the successful MCP call - additionalProperties: false - required: - - id - - type - - arguments - - name - - server_label - title: OpenAIResponseOutputMessageMCPCall - description: >- - Model Context Protocol (MCP) call output message for OpenAI responses. - OpenAIResponseOutputMessageMCPListTools: - type: object - properties: - id: - type: string - description: >- - Unique identifier for this MCP list tools operation - type: - type: string - const: mcp_list_tools - default: mcp_list_tools - description: >- - Tool call type identifier, always "mcp_list_tools" - server_label: - type: string - description: >- - Label identifying the MCP server providing the tools - tools: - type: array - items: - type: object - properties: - input_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - JSON schema defining the tool's input parameters - name: - type: string - description: Name of the tool - description: - type: string - description: >- - (Optional) Description of what the tool does - additionalProperties: false - required: - - input_schema - - name - title: MCPListToolsTool - description: >- - Tool definition returned by MCP list tools operation. - description: >- - List of available tools provided by the MCP server - additionalProperties: false - required: - - id - - type - - server_label - - tools - title: OpenAIResponseOutputMessageMCPListTools - description: >- - MCP list tools output message containing available tools from an MCP server. - "OpenAIResponseOutputMessageWebSearchToolCall": - type: object - properties: - id: - type: string - description: Unique identifier for this tool call - status: - type: string - description: >- - Current status of the web search operation - type: - type: string - const: web_search_call - default: web_search_call - description: >- - Tool call type identifier, always "web_search_call" - additionalProperties: false - required: - - id - - status - - type - title: >- - OpenAIResponseOutputMessageWebSearchToolCall - description: >- - Web search tool call output message for OpenAI responses. - CreateConversationRequest: - type: object - properties: - items: - type: array - items: - $ref: '#/components/schemas/ConversationItem' - description: >- - Initial items to include in the conversation context. - metadata: - type: object - additionalProperties: - type: string - description: >- - Set of key-value pairs that can be attached to an object. - additionalProperties: false - title: CreateConversationRequest - Conversation: - type: object - properties: - id: - type: string - object: - type: string - const: conversation - default: conversation - created_at: - type: integer - metadata: - type: object - additionalProperties: - type: string - items: - type: array - items: - type: object - title: dict - description: >- - dict() -> new empty dictionary dict(mapping) -> new dictionary initialized - from a mapping object's (key, value) pairs dict(iterable) -> new - dictionary initialized as if via: d = {} for k, v in iterable: d[k] - = v dict(**kwargs) -> new dictionary initialized with the name=value - pairs in the keyword argument list. For example: dict(one=1, two=2) - additionalProperties: false - required: - - id - - object - - created_at - title: Conversation - description: OpenAI-compatible conversation object. - UpdateConversationRequest: - type: object - properties: - metadata: - type: object - additionalProperties: - type: string - description: >- - Set of key-value pairs that can be attached to an object. - additionalProperties: false - required: - - metadata - title: UpdateConversationRequest - ConversationDeletedResource: - type: object - properties: - id: - type: string - object: - type: string - default: conversation.deleted - deleted: - type: boolean - default: true - additionalProperties: false - required: - - id - - object - - deleted - title: ConversationDeletedResource - description: Response for deleted conversation. - ConversationItemList: - type: object - properties: - object: - type: string - default: list - data: - type: array - items: - $ref: '#/components/schemas/ConversationItem' - first_id: - type: string - last_id: - type: string - has_more: - type: boolean - default: false - additionalProperties: false - required: - - object - - data - - has_more - title: ConversationItemList - description: >- - List of conversation items with pagination. - AddItemsRequest: - type: object - properties: - items: - type: array - items: - $ref: '#/components/schemas/ConversationItem' - description: >- - Items to include in the conversation context. - additionalProperties: false - required: - - items - title: AddItemsRequest - ConversationItemDeletedResource: - type: object - properties: - id: - type: string - object: - type: string - default: conversation.item.deleted - deleted: - type: boolean - default: true - additionalProperties: false - required: - - id - - object - - deleted - title: ConversationItemDeletedResource - description: Response for deleted conversation item. - OpenAIEmbeddingsRequestWithExtraBody: - type: object - properties: - model: - type: string - description: >- - The identifier of the model to use. The model must be an embedding model - registered with Llama Stack and available via the /models endpoint. - input: - oneOf: - - type: string - - type: array - items: - type: string - description: >- - Input text to embed, encoded as a string or array of strings. To embed - multiple inputs in a single request, pass an array of strings. - encoding_format: - type: string - default: float - description: >- - (Optional) The format to return the embeddings in. Can be either "float" - or "base64". Defaults to "float". - dimensions: - type: integer - description: >- - (Optional) The number of dimensions the resulting output embeddings should - have. Only supported in text-embedding-3 and later models. - user: - type: string - description: >- - (Optional) A unique identifier representing your end-user, which can help - OpenAI to monitor and detect abuse. - additionalProperties: false - required: - - model - - input - title: OpenAIEmbeddingsRequestWithExtraBody - description: >- - Request parameters for OpenAI-compatible embeddings endpoint. - OpenAIEmbeddingData: - type: object - properties: - object: - type: string - const: embedding - default: embedding - description: >- - The object type, which will be "embedding" - embedding: - oneOf: - - type: array - items: - type: number - - type: string - description: >- - The embedding vector as a list of floats (when encoding_format="float") - or as a base64-encoded string (when encoding_format="base64") - index: - type: integer - description: >- - The index of the embedding in the input list - additionalProperties: false - required: - - object - - embedding - - index - title: OpenAIEmbeddingData - description: >- - A single embedding data object from an OpenAI-compatible embeddings response. - OpenAIEmbeddingUsage: - type: object - properties: - prompt_tokens: - type: integer - description: The number of tokens in the input - total_tokens: - type: integer - description: The total number of tokens used - additionalProperties: false - required: - - prompt_tokens - - total_tokens - title: OpenAIEmbeddingUsage - description: >- - Usage information for an OpenAI-compatible embeddings response. - OpenAIEmbeddingsResponse: - type: object - properties: - object: - type: string - const: list - default: list - description: The object type, which will be "list" - data: - type: array - items: - $ref: '#/components/schemas/OpenAIEmbeddingData' - description: List of embedding data objects - model: - type: string - description: >- - The model that was used to generate the embeddings - usage: - $ref: '#/components/schemas/OpenAIEmbeddingUsage' - description: Usage information - additionalProperties: false - required: - - object - - data - - model - - usage - title: OpenAIEmbeddingsResponse - description: >- - Response from an OpenAI-compatible embeddings request. - OpenAIFilePurpose: - type: string - enum: - - assistants - - batch - title: OpenAIFilePurpose - description: >- - Valid purpose values for OpenAI Files API. - ListOpenAIFileResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIFileObject' - description: List of file objects - has_more: - type: boolean - description: >- - Whether there are more files available beyond this page - first_id: - type: string - description: >- - ID of the first file in the list for pagination - last_id: - type: string - description: >- - ID of the last file in the list for pagination - object: - type: string - const: list - default: list - description: The object type, which is always "list" - additionalProperties: false - required: - - data - - has_more - - first_id - - last_id - - object - title: ListOpenAIFileResponse - description: >- - Response for listing files in OpenAI Files API. - OpenAIFileObject: - type: object - properties: - object: - type: string - const: file - default: file - description: The object type, which is always "file" - id: - type: string - description: >- - The file identifier, which can be referenced in the API endpoints - bytes: - type: integer - description: The size of the file, in bytes - created_at: - type: integer - description: >- - The Unix timestamp (in seconds) for when the file was created - expires_at: - type: integer - description: >- - The Unix timestamp (in seconds) for when the file expires - filename: - type: string - description: The name of the file - purpose: - type: string - enum: - - assistants - - batch - description: The intended purpose of the file - additionalProperties: false - required: - - object - - id - - bytes - - created_at - - expires_at - - filename - - purpose - title: OpenAIFileObject - description: >- - OpenAI File object as defined in the OpenAI Files API. - ExpiresAfter: - type: object - properties: - anchor: - type: string - const: created_at - seconds: - type: integer - additionalProperties: false - required: - - anchor - - seconds - title: ExpiresAfter - description: >- - Control expiration of uploaded files. - - Params: - - anchor, must be "created_at" - - seconds, must be int between 3600 and 2592000 (1 hour to 30 days) - OpenAIFileDeleteResponse: - type: object - properties: - id: - type: string - description: The file identifier that was deleted - object: - type: string - const: file - default: file - description: The object type, which is always "file" - deleted: - type: boolean - description: >- - Whether the file was successfully deleted - additionalProperties: false - required: - - id - - object - - deleted - title: OpenAIFileDeleteResponse - description: >- - Response for deleting a file in OpenAI Files API. - Response: - type: object - title: Response - HealthInfo: - type: object - properties: - status: - type: string - enum: - - OK - - Error - - Not Implemented - description: Current health status of the service - additionalProperties: false - required: - - status - title: HealthInfo - description: >- - Health status information for the service. - RouteInfo: - type: object - properties: - route: - type: string - description: The API endpoint path - method: - type: string - description: HTTP method for the route - provider_types: - type: array - items: - type: string - description: >- - List of provider types that implement this route - additionalProperties: false - required: - - route - - method - - provider_types - title: RouteInfo - description: >- - Information about an API route including its path, method, and implementing - providers. - ListRoutesResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/RouteInfo' - description: >- - List of available route information objects - additionalProperties: false - required: - - data - title: ListRoutesResponse - description: >- - Response containing a list of all available API routes. - OpenAIModel: - type: object - properties: - id: - type: string - object: - type: string - const: model - default: model - created: - type: integer - owned_by: - type: string - custom_metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - additionalProperties: false - required: - - id - - object - - created - - owned_by - title: OpenAIModel - description: A model from OpenAI. - OpenAIListModelsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIModel' - additionalProperties: false - required: - - data - title: OpenAIListModelsResponse - ModelType: - type: string - enum: - - llm - - embedding - - rerank - title: ModelType - description: >- - Enumeration of supported model types in Llama Stack. - RegisterModelRequest: - type: object - properties: - model_id: - type: string - description: The identifier of the model to register. - provider_model_id: - type: string - description: >- - The identifier of the model in the provider. - provider_id: - type: string - description: The identifier of the provider. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model. - model_type: - $ref: '#/components/schemas/ModelType' - description: The type of model to register. - additionalProperties: false - required: - - model_id - title: RegisterModelRequest - Model: - type: object - properties: - identifier: - type: string - description: >- - Unique identifier for this resource in llama stack - provider_resource_id: - type: string - description: >- - Unique identifier for this resource in the provider - provider_id: - type: string - description: >- - ID of the provider that owns this resource - type: - type: string - enum: - - model - - shield - - vector_store - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: model - default: model - description: >- - The resource type, always 'model' for model resources - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model - model_type: - $ref: '#/components/schemas/ModelType' - default: llm - description: >- - The type of model (LLM or embedding model) - additionalProperties: false - required: - - identifier - - provider_id - - type - - metadata - - model_type - title: Model - description: >- - A model resource representing an AI model registered in Llama Stack. - RunModerationRequest: - type: object - properties: - input: - oneOf: - - type: string - - type: array - items: - type: string - description: >- - Input (or inputs) to classify. Can be a single string, an array of strings, - or an array of multi-modal input objects similar to other models. - model: - type: string - description: >- - (Optional) The content moderation model you would like to use. - additionalProperties: false - required: - - input - title: RunModerationRequest - ModerationObject: - type: object - properties: - id: - type: string - description: >- - The unique identifier for the moderation request. - model: - type: string - description: >- - The model used to generate the moderation results. - results: - type: array - items: - $ref: '#/components/schemas/ModerationObjectResults' - description: A list of moderation objects - additionalProperties: false - required: - - id - - model - - results - title: ModerationObject - description: A moderation object. - ModerationObjectResults: - type: object - properties: - flagged: - type: boolean - description: >- - Whether any of the below categories are flagged. - categories: - type: object - additionalProperties: - type: boolean - description: >- - A list of the categories, and whether they are flagged or not. - category_applied_input_types: - type: object - additionalProperties: - type: array - items: - type: string - description: >- - A list of the categories along with the input type(s) that the score applies - to. - category_scores: - type: object - additionalProperties: - type: number - description: >- - A list of the categories along with their scores as predicted by model. - user_message: - type: string - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - additionalProperties: false - required: - - flagged - - metadata - title: ModerationObjectResults - description: A moderation object. - Prompt: - type: object - properties: - prompt: - type: string - description: >- - The system prompt text with variable placeholders. Variables are only - supported when using the Responses API. - version: - type: integer - description: >- - Version (integer starting at 1, incremented on save) - prompt_id: - type: string - description: >- - Unique identifier formatted as 'pmpt_<48-digit-hash>' - variables: - type: array - items: - type: string - description: >- - List of prompt variable names that can be used in the prompt template - is_default: - type: boolean - default: false - description: >- - Boolean indicating whether this version is the default version for this - prompt - additionalProperties: false - required: - - version - - prompt_id - - variables - - is_default - title: Prompt - description: >- - A prompt resource representing a stored OpenAI Compatible prompt template - in Llama Stack. - ListPromptsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Prompt' - additionalProperties: false - required: - - data - title: ListPromptsResponse - description: Response model to list prompts. - CreatePromptRequest: - type: object - properties: - prompt: - type: string - description: >- - The prompt text content with variable placeholders. - variables: - type: array - items: - type: string - description: >- - List of variable names that can be used in the prompt template. - additionalProperties: false - required: - - prompt - title: CreatePromptRequest - UpdatePromptRequest: - type: object - properties: - prompt: - type: string - description: The updated prompt text content. - version: - type: integer - description: >- - The current version of the prompt being updated. - variables: - type: array - items: - type: string - description: >- - Updated list of variable names that can be used in the prompt template. - set_as_default: - type: boolean - description: >- - Set the new version as the default (default=True). - additionalProperties: false - required: - - prompt - - version - - set_as_default - title: UpdatePromptRequest - SetDefaultVersionRequest: - type: object - properties: - version: - type: integer - description: The version to set as default. - additionalProperties: false - required: - - version - title: SetDefaultVersionRequest - ProviderInfo: - type: object - properties: - api: - type: string - description: The API name this provider implements - provider_id: - type: string - description: Unique identifier for the provider - provider_type: - type: string - description: The type of provider implementation - config: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Configuration parameters for the provider - health: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Current health status of the provider - additionalProperties: false - required: - - api - - provider_id - - provider_type - - config - - health - title: ProviderInfo - description: >- - Information about a registered provider including its configuration and health - status. - ListProvidersResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ProviderInfo' - description: List of provider information objects - additionalProperties: false - required: - - data - title: ListProvidersResponse - description: >- - Response containing a list of all available providers. - ListOpenAIResponseObject: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseObjectWithInput' - description: >- - List of response objects with their input context - has_more: - type: boolean - description: >- - Whether there are more results available beyond this page - first_id: - type: string - description: >- - Identifier of the first item in this page - last_id: - type: string - description: Identifier of the last item in this page - object: - type: string - const: list - default: list - description: Object type identifier, always "list" - additionalProperties: false - required: - - data - - has_more - - first_id - - last_id - - object - title: ListOpenAIResponseObject - description: >- - Paginated list of OpenAI response objects with navigation metadata. - OpenAIResponseError: - type: object - properties: - code: - type: string - description: >- - Error code identifying the type of failure - message: - type: string - description: >- - Human-readable error message describing the failure - additionalProperties: false - required: - - code - - message - title: OpenAIResponseError - description: >- - Error details for failed OpenAI response requests. - OpenAIResponseInput: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseOutput' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseMessage' - OpenAIResponseInputToolFileSearch: - type: object - properties: - type: - type: string - const: file_search - default: file_search - description: >- - Tool type identifier, always "file_search" - vector_store_ids: - type: array - items: - type: string - description: >- - List of vector store identifiers to search within - filters: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional filters to apply to the search - max_num_results: - type: integer - default: 10 - description: >- - (Optional) Maximum number of search results to return (1-50) - ranking_options: - type: object - properties: - ranker: - type: string - description: >- - (Optional) Name of the ranking algorithm to use - score_threshold: - type: number - default: 0.0 - description: >- - (Optional) Minimum relevance score threshold for results - additionalProperties: false - description: >- - (Optional) Options for ranking and scoring search results - additionalProperties: false - required: - - type - - vector_store_ids - title: OpenAIResponseInputToolFileSearch - description: >- - File search tool configuration for OpenAI response inputs. - OpenAIResponseInputToolFunction: - type: object - properties: - type: - type: string - const: function - default: function - description: Tool type identifier, always "function" - name: - type: string - description: Name of the function that can be called - description: - type: string - description: >- - (Optional) Description of what the function does - parameters: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON schema defining the function's parameters - strict: - type: boolean - description: >- - (Optional) Whether to enforce strict parameter validation - additionalProperties: false - required: - - type - - name - title: OpenAIResponseInputToolFunction - description: >- - Function tool configuration for OpenAI response inputs. - OpenAIResponseInputToolWebSearch: - type: object - properties: - type: - oneOf: - - type: string - const: web_search - - type: string - const: web_search_preview - - type: string - const: web_search_preview_2025_03_11 - default: web_search - description: Web search tool type variant to use - search_context_size: - type: string - default: medium - description: >- - (Optional) Size of search context, must be "low", "medium", or "high" - additionalProperties: false - required: - - type - title: OpenAIResponseInputToolWebSearch - description: >- - Web search tool configuration for OpenAI response inputs. - OpenAIResponseObjectWithInput: - type: object - properties: - created_at: - type: integer - description: >- - Unix timestamp when the response was created - error: - $ref: '#/components/schemas/OpenAIResponseError' - description: >- - (Optional) Error details if the response generation failed - id: - type: string - description: Unique identifier for this response - model: - type: string - description: Model identifier used for generation - object: - type: string - const: response - default: response - description: >- - Object type identifier, always "response" - output: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseOutput' - description: >- - List of generated output items (messages, tool calls, etc.) - parallel_tool_calls: - type: boolean - default: false - description: >- - Whether tool calls can be executed in parallel - previous_response_id: - type: string - description: >- - (Optional) ID of the previous response in a conversation - prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' - description: >- - (Optional) Reference to a prompt template and its variables. - status: - type: string - description: >- - Current status of the response generation - temperature: - type: number - description: >- - (Optional) Sampling temperature used for generation - text: - $ref: '#/components/schemas/OpenAIResponseText' - description: >- - Text formatting configuration for the response - top_p: - type: number - description: >- - (Optional) Nucleus sampling parameter used for generation - tools: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseTool' - description: >- - (Optional) An array of tools the model may call while generating a response. - truncation: - type: string - description: >- - (Optional) Truncation strategy applied to the response - usage: - $ref: '#/components/schemas/OpenAIResponseUsage' - description: >- - (Optional) Token usage information for the response - instructions: - type: string - description: >- - (Optional) System message inserted into the model's context - input: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInput' - description: >- - List of input items that led to this response - additionalProperties: false - required: - - created_at - - id - - model - - object - - output - - parallel_tool_calls - - status - - text - - input - title: OpenAIResponseObjectWithInput - description: >- - OpenAI response object extended with input context information. - OpenAIResponseOutput: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - discriminator: - propertyName: type - mapping: - message: '#/components/schemas/OpenAIResponseMessage' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - OpenAIResponsePrompt: - type: object - properties: - id: - type: string - description: Unique identifier of the prompt template - variables: - type: object - additionalProperties: - $ref: '#/components/schemas/OpenAIResponseInputMessageContent' - description: >- - Dictionary of variable names to OpenAIResponseInputMessageContent structure - for template substitution. The substitution values can either be strings, - or other Response input types like images or files. - version: - type: string - description: >- - Version number of the prompt to use (defaults to latest if not specified) - additionalProperties: false - required: - - id - title: OpenAIResponsePrompt - description: >- - OpenAI compatible Prompt object that is used in OpenAI responses. - OpenAIResponseText: - type: object - properties: - format: - type: object - properties: - type: - oneOf: - - type: string - const: text - - type: string - const: json_schema - - type: string - const: json_object - description: >- - Must be "text", "json_schema", or "json_object" to identify the format - type - name: - type: string - description: >- - The name of the response format. Only used for json_schema. - schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The JSON schema the response should conform to. In a Python SDK, this - is often a `pydantic` model. Only used for json_schema. - description: - type: string - description: >- - (Optional) A description of the response format. Only used for json_schema. - strict: - type: boolean - description: >- - (Optional) Whether to strictly enforce the JSON schema. If true, the - response must match the schema exactly. Only used for json_schema. - additionalProperties: false - required: - - type - description: >- - (Optional) Text format configuration specifying output format requirements - additionalProperties: false - title: OpenAIResponseText - description: >- - Text response configuration for OpenAI responses. - OpenAIResponseTool: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseToolMCP' - discriminator: - propertyName: type - mapping: - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseToolMCP' - OpenAIResponseToolMCP: - type: object - properties: - type: - type: string - const: mcp - default: mcp - description: Tool type identifier, always "mcp" - server_label: - type: string - description: Label to identify this MCP server - allowed_tools: - oneOf: - - type: array - items: - type: string - - type: object - properties: - tool_names: - type: array - items: - type: string - description: >- - (Optional) List of specific tool names that are allowed - additionalProperties: false - title: AllowedToolsFilter - description: >- - Filter configuration for restricting which MCP tools can be used. - description: >- - (Optional) Restriction on which tools can be used from this server - additionalProperties: false - required: - - type - - server_label - title: OpenAIResponseToolMCP - description: >- - Model Context Protocol (MCP) tool configuration for OpenAI response object. - OpenAIResponseUsage: - type: object - properties: - input_tokens: - type: integer - description: Number of tokens in the input - output_tokens: - type: integer - description: Number of tokens in the output - total_tokens: - type: integer - description: Total tokens used (input + output) - input_tokens_details: - type: object - properties: - cached_tokens: - type: integer - description: Number of tokens retrieved from cache - additionalProperties: false - description: Detailed breakdown of input token usage - output_tokens_details: - type: object - properties: - reasoning_tokens: - type: integer - description: >- - Number of tokens used for reasoning (o1/o3 models) - additionalProperties: false - description: Detailed breakdown of output token usage - additionalProperties: false - required: - - input_tokens - - output_tokens - - total_tokens - title: OpenAIResponseUsage - description: Usage information for OpenAI response. - ResponseGuardrailSpec: - type: object - properties: - type: - type: string - description: The type/identifier of the guardrail. - additionalProperties: false - required: - - type - title: ResponseGuardrailSpec - description: >- - Specification for a guardrail to apply during response generation. - OpenAIResponseInputTool: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' - discriminator: - propertyName: type - mapping: - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseInputToolMCP' - OpenAIResponseInputToolMCP: - type: object - properties: - type: - type: string - const: mcp - default: mcp - description: Tool type identifier, always "mcp" - server_label: - type: string - description: Label to identify this MCP server - server_url: - type: string - description: URL endpoint of the MCP server - headers: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) HTTP headers to include when connecting to the server - require_approval: - oneOf: - - type: string - const: always - - type: string - const: never - - type: object - properties: - always: - type: array - items: - type: string - description: >- - (Optional) List of tool names that always require approval - never: - type: array - items: - type: string - description: >- - (Optional) List of tool names that never require approval - additionalProperties: false - title: ApprovalFilter - description: >- - Filter configuration for MCP tool approval requirements. - default: never - description: >- - Approval requirement for tool calls ("always", "never", or filter) - allowed_tools: - oneOf: - - type: array - items: - type: string - - type: object - properties: - tool_names: - type: array - items: - type: string - description: >- - (Optional) List of specific tool names that are allowed - additionalProperties: false - title: AllowedToolsFilter - description: >- - Filter configuration for restricting which MCP tools can be used. - description: >- - (Optional) Restriction on which tools can be used from this server - additionalProperties: false - required: - - type - - server_label - - server_url - - require_approval - title: OpenAIResponseInputToolMCP - description: >- - Model Context Protocol (MCP) tool configuration for OpenAI response inputs. - CreateOpenaiResponseRequest: - type: object - properties: - input: - oneOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInput' - description: Input message(s) to create the response. - model: - type: string - description: The underlying LLM used for completions. - prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' - description: >- - (Optional) Prompt object with ID, version, and variables. - instructions: - type: string - previous_response_id: - type: string - description: >- - (Optional) if specified, the new response will be a continuation of the - previous response. This can be used to easily fork-off new responses from - existing responses. - conversation: - type: string - description: >- - (Optional) The ID of a conversation to add the response to. Must begin - with 'conv_'. Input and output messages will be automatically added to - the conversation. - store: - type: boolean - stream: - type: boolean - temperature: - type: number - text: - $ref: '#/components/schemas/OpenAIResponseText' - tools: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInputTool' - include: - type: array - items: - type: string - description: >- - (Optional) Additional fields to include in the response. - max_infer_iters: - type: integer - additionalProperties: false - required: - - input - - model - title: CreateOpenaiResponseRequest - OpenAIResponseObject: - type: object - properties: - created_at: - type: integer - description: >- - Unix timestamp when the response was created - error: - $ref: '#/components/schemas/OpenAIResponseError' - description: >- - (Optional) Error details if the response generation failed - id: - type: string - description: Unique identifier for this response - model: - type: string - description: Model identifier used for generation - object: - type: string - const: response - default: response - description: >- - Object type identifier, always "response" - output: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseOutput' - description: >- - List of generated output items (messages, tool calls, etc.) - parallel_tool_calls: - type: boolean - default: false - description: >- - Whether tool calls can be executed in parallel - previous_response_id: - type: string - description: >- - (Optional) ID of the previous response in a conversation - prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' - description: >- - (Optional) Reference to a prompt template and its variables. - status: - type: string - description: >- - Current status of the response generation - temperature: - type: number - description: >- - (Optional) Sampling temperature used for generation - text: - $ref: '#/components/schemas/OpenAIResponseText' - description: >- - Text formatting configuration for the response - top_p: - type: number - description: >- - (Optional) Nucleus sampling parameter used for generation - tools: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseTool' - description: >- - (Optional) An array of tools the model may call while generating a response. - truncation: - type: string - description: >- - (Optional) Truncation strategy applied to the response - usage: - $ref: '#/components/schemas/OpenAIResponseUsage' - description: >- - (Optional) Token usage information for the response - instructions: - type: string - description: >- - (Optional) System message inserted into the model's context - additionalProperties: false - required: - - created_at - - id - - model - - object - - output - - parallel_tool_calls - - status - - text - title: OpenAIResponseObject - description: >- - Complete OpenAI response object containing generation results and metadata. - OpenAIResponseContentPartOutputText: - type: object - properties: - type: - type: string - const: output_text - default: output_text - description: >- - Content part type identifier, always "output_text" - text: - type: string - description: Text emitted for this content part - annotations: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseAnnotations' - description: >- - Structured annotations associated with the text - logprobs: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: (Optional) Token log probability details - additionalProperties: false - required: - - type - - text - - annotations - title: OpenAIResponseContentPartOutputText - description: >- - Text content within a streamed response part. - "OpenAIResponseContentPartReasoningSummary": - type: object - properties: - type: - type: string - const: summary_text - default: summary_text - description: >- - Content part type identifier, always "summary_text" - text: - type: string - description: Summary text - additionalProperties: false - required: - - type - - text - title: >- - OpenAIResponseContentPartReasoningSummary - description: >- - Reasoning summary part in a streamed response. - OpenAIResponseContentPartReasoningText: - type: object - properties: - type: - type: string - const: reasoning_text - default: reasoning_text - description: >- - Content part type identifier, always "reasoning_text" - text: - type: string - description: Reasoning text supplied by the model - additionalProperties: false - required: - - type - - text - title: OpenAIResponseContentPartReasoningText - description: >- - Reasoning text emitted as part of a streamed response. - OpenAIResponseObjectStream: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseCreated' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemAdded' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallSearching' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallCompleted' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsFailed' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsCompleted' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallFailed' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallCompleted' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartAdded' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningTextDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningTextDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryPartDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryTextDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseRefusalDelta' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseRefusalDone' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFileSearchCallInProgress' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFileSearchCallSearching' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFileSearchCallCompleted' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseIncomplete' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseFailed' - - $ref: '#/components/schemas/OpenAIResponseObjectStreamResponseCompleted' - discriminator: - propertyName: type - mapping: - response.created: '#/components/schemas/OpenAIResponseObjectStreamResponseCreated' - response.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseInProgress' - response.output_item.added: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemAdded' - response.output_item.done: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputItemDone' - response.output_text.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDelta' - response.output_text.done: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextDone' - response.function_call_arguments.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta' - response.function_call_arguments.done: '#/components/schemas/OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone' - response.web_search_call.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallInProgress' - response.web_search_call.searching: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallSearching' - response.web_search_call.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseWebSearchCallCompleted' - response.mcp_list_tools.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsInProgress' - response.mcp_list_tools.failed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsFailed' - response.mcp_list_tools.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpListToolsCompleted' - response.mcp_call.arguments.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta' - response.mcp_call.arguments.done: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallArgumentsDone' - response.mcp_call.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallInProgress' - response.mcp_call.failed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallFailed' - response.mcp_call.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseMcpCallCompleted' - response.content_part.added: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartAdded' - response.content_part.done: '#/components/schemas/OpenAIResponseObjectStreamResponseContentPartDone' - response.reasoning_text.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningTextDelta' - response.reasoning_text.done: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningTextDone' - response.reasoning_summary_part.added: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded' - response.reasoning_summary_part.done: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryPartDone' - response.reasoning_summary_text.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta' - response.reasoning_summary_text.done: '#/components/schemas/OpenAIResponseObjectStreamResponseReasoningSummaryTextDone' - response.refusal.delta: '#/components/schemas/OpenAIResponseObjectStreamResponseRefusalDelta' - response.refusal.done: '#/components/schemas/OpenAIResponseObjectStreamResponseRefusalDone' - response.output_text.annotation.added: '#/components/schemas/OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded' - response.file_search_call.in_progress: '#/components/schemas/OpenAIResponseObjectStreamResponseFileSearchCallInProgress' - response.file_search_call.searching: '#/components/schemas/OpenAIResponseObjectStreamResponseFileSearchCallSearching' - response.file_search_call.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseFileSearchCallCompleted' - response.incomplete: '#/components/schemas/OpenAIResponseObjectStreamResponseIncomplete' - response.failed: '#/components/schemas/OpenAIResponseObjectStreamResponseFailed' - response.completed: '#/components/schemas/OpenAIResponseObjectStreamResponseCompleted' - "OpenAIResponseObjectStreamResponseCompleted": - type: object - properties: - response: - $ref: '#/components/schemas/OpenAIResponseObject' - description: Completed response object - type: - type: string - const: response.completed - default: response.completed - description: >- - Event type identifier, always "response.completed" - additionalProperties: false - required: - - response - - type - title: >- - OpenAIResponseObjectStreamResponseCompleted - description: >- - Streaming event indicating a response has been completed. - "OpenAIResponseObjectStreamResponseContentPartAdded": - type: object - properties: - content_index: - type: integer - description: >- - Index position of the part within the content array - response_id: - type: string - description: >- - Unique identifier of the response containing this content - item_id: - type: string - description: >- - Unique identifier of the output item containing this content part - output_index: - type: integer - description: >- - Index position of the output item in the response - part: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseContentPartOutputText' - - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' - - $ref: '#/components/schemas/OpenAIResponseContentPartReasoningText' - discriminator: - propertyName: type - mapping: - output_text: '#/components/schemas/OpenAIResponseContentPartOutputText' - refusal: '#/components/schemas/OpenAIResponseContentPartRefusal' - reasoning_text: '#/components/schemas/OpenAIResponseContentPartReasoningText' - description: The content part that was added - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.content_part.added - default: response.content_part.added - description: >- - Event type identifier, always "response.content_part.added" - additionalProperties: false - required: - - content_index - - response_id - - item_id - - output_index - - part - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseContentPartAdded - description: >- - Streaming event for when a new content part is added to a response item. - "OpenAIResponseObjectStreamResponseContentPartDone": - type: object - properties: - content_index: - type: integer - description: >- - Index position of the part within the content array - response_id: - type: string - description: >- - Unique identifier of the response containing this content - item_id: - type: string - description: >- - Unique identifier of the output item containing this content part - output_index: - type: integer - description: >- - Index position of the output item in the response - part: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseContentPartOutputText' - - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' - - $ref: '#/components/schemas/OpenAIResponseContentPartReasoningText' - discriminator: - propertyName: type - mapping: - output_text: '#/components/schemas/OpenAIResponseContentPartOutputText' - refusal: '#/components/schemas/OpenAIResponseContentPartRefusal' - reasoning_text: '#/components/schemas/OpenAIResponseContentPartReasoningText' - description: The completed content part - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.content_part.done - default: response.content_part.done - description: >- - Event type identifier, always "response.content_part.done" - additionalProperties: false - required: - - content_index - - response_id - - item_id - - output_index - - part - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseContentPartDone - description: >- - Streaming event for when a content part is completed. - "OpenAIResponseObjectStreamResponseCreated": - type: object - properties: - response: - $ref: '#/components/schemas/OpenAIResponseObject' - description: The response object that was created - type: - type: string - const: response.created - default: response.created - description: >- - Event type identifier, always "response.created" - additionalProperties: false - required: - - response - - type - title: >- - OpenAIResponseObjectStreamResponseCreated - description: >- - Streaming event indicating a new response has been created. - OpenAIResponseObjectStreamResponseFailed: - type: object - properties: - response: - $ref: '#/components/schemas/OpenAIResponseObject' - description: Response object describing the failure - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.failed - default: response.failed - description: >- - Event type identifier, always "response.failed" - additionalProperties: false - required: - - response - - sequence_number - - type - title: OpenAIResponseObjectStreamResponseFailed - description: >- - Streaming event emitted when a response fails. - "OpenAIResponseObjectStreamResponseFileSearchCallCompleted": - type: object - properties: - item_id: - type: string - description: >- - Unique identifier of the completed file search call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.file_search_call.completed - default: response.file_search_call.completed - description: >- - Event type identifier, always "response.file_search_call.completed" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseFileSearchCallCompleted - description: >- - Streaming event for completed file search calls. - "OpenAIResponseObjectStreamResponseFileSearchCallInProgress": - type: object - properties: - item_id: - type: string - description: >- - Unique identifier of the file search call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.file_search_call.in_progress - default: response.file_search_call.in_progress - description: >- - Event type identifier, always "response.file_search_call.in_progress" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseFileSearchCallInProgress - description: >- - Streaming event for file search calls in progress. - "OpenAIResponseObjectStreamResponseFileSearchCallSearching": - type: object - properties: - item_id: - type: string - description: >- - Unique identifier of the file search call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.file_search_call.searching - default: response.file_search_call.searching - description: >- - Event type identifier, always "response.file_search_call.searching" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseFileSearchCallSearching - description: >- - Streaming event for file search currently searching. - "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta": - type: object - properties: - delta: - type: string - description: >- - Incremental function call arguments being added - item_id: - type: string - description: >- - Unique identifier of the function call being updated - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.function_call_arguments.delta - default: response.function_call_arguments.delta - description: >- - Event type identifier, always "response.function_call_arguments.delta" - additionalProperties: false - required: - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta - description: >- - Streaming event for incremental function call argument updates. - "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone": - type: object - properties: - arguments: - type: string - description: >- - Final complete arguments JSON string for the function call - item_id: - type: string - description: >- - Unique identifier of the completed function call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.function_call_arguments.done - default: response.function_call_arguments.done - description: >- - Event type identifier, always "response.function_call_arguments.done" - additionalProperties: false - required: - - arguments - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone - description: >- - Streaming event for when function call arguments are completed. - "OpenAIResponseObjectStreamResponseInProgress": - type: object - properties: - response: - $ref: '#/components/schemas/OpenAIResponseObject' - description: Current response state while in progress - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.in_progress - default: response.in_progress - description: >- - Event type identifier, always "response.in_progress" - additionalProperties: false - required: - - response - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseInProgress - description: >- - Streaming event indicating the response remains in progress. - "OpenAIResponseObjectStreamResponseIncomplete": - type: object - properties: - response: - $ref: '#/components/schemas/OpenAIResponseObject' - description: >- - Response object describing the incomplete state - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.incomplete - default: response.incomplete - description: >- - Event type identifier, always "response.incomplete" - additionalProperties: false - required: - - response - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseIncomplete - description: >- - Streaming event emitted when a response ends in an incomplete state. - "OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta": - type: object - properties: - delta: - type: string - item_id: - type: string - output_index: - type: integer - sequence_number: - type: integer - type: - type: string - const: response.mcp_call.arguments.delta - default: response.mcp_call.arguments.delta - additionalProperties: false - required: - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta - "OpenAIResponseObjectStreamResponseMcpCallArgumentsDone": - type: object - properties: - arguments: - type: string - item_id: - type: string - output_index: - type: integer - sequence_number: - type: integer - type: - type: string - const: response.mcp_call.arguments.done - default: response.mcp_call.arguments.done - additionalProperties: false - required: - - arguments - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallArgumentsDone - "OpenAIResponseObjectStreamResponseMcpCallCompleted": - type: object - properties: - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.mcp_call.completed - default: response.mcp_call.completed - description: >- - Event type identifier, always "response.mcp_call.completed" - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallCompleted - description: Streaming event for completed MCP calls. - "OpenAIResponseObjectStreamResponseMcpCallFailed": - type: object - properties: - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.mcp_call.failed - default: response.mcp_call.failed - description: >- - Event type identifier, always "response.mcp_call.failed" - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallFailed - description: Streaming event for failed MCP calls. - "OpenAIResponseObjectStreamResponseMcpCallInProgress": - type: object - properties: - item_id: - type: string - description: Unique identifier of the MCP call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.mcp_call.in_progress - default: response.mcp_call.in_progress - description: >- - Event type identifier, always "response.mcp_call.in_progress" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpCallInProgress - description: >- - Streaming event for MCP calls in progress. - "OpenAIResponseObjectStreamResponseMcpListToolsCompleted": - type: object - properties: - sequence_number: - type: integer - type: - type: string - const: response.mcp_list_tools.completed - default: response.mcp_list_tools.completed - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpListToolsCompleted - "OpenAIResponseObjectStreamResponseMcpListToolsFailed": - type: object - properties: - sequence_number: - type: integer - type: - type: string - const: response.mcp_list_tools.failed - default: response.mcp_list_tools.failed - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpListToolsFailed - "OpenAIResponseObjectStreamResponseMcpListToolsInProgress": - type: object - properties: - sequence_number: - type: integer - type: - type: string - const: response.mcp_list_tools.in_progress - default: response.mcp_list_tools.in_progress - additionalProperties: false - required: - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseMcpListToolsInProgress - "OpenAIResponseObjectStreamResponseOutputItemAdded": - type: object - properties: - response_id: - type: string - description: >- - Unique identifier of the response containing this output - item: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - discriminator: - propertyName: type - mapping: - message: '#/components/schemas/OpenAIResponseMessage' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - description: >- - The output item that was added (message, tool call, etc.) - output_index: - type: integer - description: >- - Index position of this item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_item.added - default: response.output_item.added - description: >- - Event type identifier, always "response.output_item.added" - additionalProperties: false - required: - - response_id - - item - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputItemAdded - description: >- - Streaming event for when a new output item is added to the response. - "OpenAIResponseObjectStreamResponseOutputItemDone": - type: object - properties: - response_id: - type: string - description: >- - Unique identifier of the response containing this output - item: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - discriminator: - propertyName: type - mapping: - message: '#/components/schemas/OpenAIResponseMessage' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - description: >- - The completed output item (message, tool call, etc.) - output_index: - type: integer - description: >- - Index position of this item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_item.done - default: response.output_item.done - description: >- - Event type identifier, always "response.output_item.done" - additionalProperties: false - required: - - response_id - - item - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputItemDone - description: >- - Streaming event for when an output item is completed. - "OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded": - type: object - properties: - item_id: - type: string - description: >- - Unique identifier of the item to which the annotation is being added - output_index: - type: integer - description: >- - Index position of the output item in the response's output array - content_index: - type: integer - description: >- - Index position of the content part within the output item - annotation_index: - type: integer - description: >- - Index of the annotation within the content part - annotation: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseAnnotationFileCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' - - $ref: '#/components/schemas/OpenAIResponseAnnotationFilePath' - discriminator: - propertyName: type - mapping: - file_citation: '#/components/schemas/OpenAIResponseAnnotationFileCitation' - url_citation: '#/components/schemas/OpenAIResponseAnnotationCitation' - container_file_citation: '#/components/schemas/OpenAIResponseAnnotationContainerFileCitation' - file_path: '#/components/schemas/OpenAIResponseAnnotationFilePath' - description: The annotation object being added - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_text.annotation.added - default: response.output_text.annotation.added - description: >- - Event type identifier, always "response.output_text.annotation.added" - additionalProperties: false - required: - - item_id - - output_index - - content_index - - annotation_index - - annotation - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded - description: >- - Streaming event for when an annotation is added to output text. - "OpenAIResponseObjectStreamResponseOutputTextDelta": - type: object - properties: - content_index: - type: integer - description: Index position within the text content - delta: - type: string - description: Incremental text content being added - item_id: - type: string - description: >- - Unique identifier of the output item being updated - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_text.delta - default: response.output_text.delta - description: >- - Event type identifier, always "response.output_text.delta" - additionalProperties: false - required: - - content_index - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputTextDelta - description: >- - Streaming event for incremental text content updates. - "OpenAIResponseObjectStreamResponseOutputTextDone": - type: object - properties: - content_index: - type: integer - description: Index position within the text content - text: - type: string - description: >- - Final complete text content of the output item - item_id: - type: string - description: >- - Unique identifier of the completed output item - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.output_text.done - default: response.output_text.done - description: >- - Event type identifier, always "response.output_text.done" - additionalProperties: false - required: - - content_index - - text - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseOutputTextDone - description: >- - Streaming event for when text output is completed. - "OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded": - type: object - properties: - item_id: - type: string - description: Unique identifier of the output item - output_index: - type: integer - description: Index position of the output item - part: - $ref: '#/components/schemas/OpenAIResponseContentPartReasoningSummary' - description: The summary part that was added - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - summary_index: - type: integer - description: >- - Index of the summary part within the reasoning summary - type: - type: string - const: response.reasoning_summary_part.added - default: response.reasoning_summary_part.added - description: >- - Event type identifier, always "response.reasoning_summary_part.added" - additionalProperties: false - required: - - item_id - - output_index - - part - - sequence_number - - summary_index - - type - title: >- - OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded - description: >- - Streaming event for when a new reasoning summary part is added. - "OpenAIResponseObjectStreamResponseReasoningSummaryPartDone": - type: object - properties: - item_id: - type: string - description: Unique identifier of the output item - output_index: - type: integer - description: Index position of the output item - part: - $ref: '#/components/schemas/OpenAIResponseContentPartReasoningSummary' - description: The completed summary part - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - summary_index: - type: integer - description: >- - Index of the summary part within the reasoning summary - type: - type: string - const: response.reasoning_summary_part.done - default: response.reasoning_summary_part.done - description: >- - Event type identifier, always "response.reasoning_summary_part.done" - additionalProperties: false - required: - - item_id - - output_index - - part - - sequence_number - - summary_index - - type - title: >- - OpenAIResponseObjectStreamResponseReasoningSummaryPartDone - description: >- - Streaming event for when a reasoning summary part is completed. - "OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta": - type: object - properties: - delta: - type: string - description: Incremental summary text being added - item_id: - type: string - description: Unique identifier of the output item - output_index: - type: integer - description: Index position of the output item - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - summary_index: - type: integer - description: >- - Index of the summary part within the reasoning summary - type: - type: string - const: response.reasoning_summary_text.delta - default: response.reasoning_summary_text.delta - description: >- - Event type identifier, always "response.reasoning_summary_text.delta" - additionalProperties: false - required: - - delta - - item_id - - output_index - - sequence_number - - summary_index - - type - title: >- - OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta - description: >- - Streaming event for incremental reasoning summary text updates. - "OpenAIResponseObjectStreamResponseReasoningSummaryTextDone": - type: object - properties: - text: - type: string - description: Final complete summary text - item_id: - type: string - description: Unique identifier of the output item - output_index: - type: integer - description: Index position of the output item - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - summary_index: - type: integer - description: >- - Index of the summary part within the reasoning summary - type: - type: string - const: response.reasoning_summary_text.done - default: response.reasoning_summary_text.done - description: >- - Event type identifier, always "response.reasoning_summary_text.done" - additionalProperties: false - required: - - text - - item_id - - output_index - - sequence_number - - summary_index - - type - title: >- - OpenAIResponseObjectStreamResponseReasoningSummaryTextDone - description: >- - Streaming event for when reasoning summary text is completed. - "OpenAIResponseObjectStreamResponseReasoningTextDelta": - type: object - properties: - content_index: - type: integer - description: >- - Index position of the reasoning content part - delta: - type: string - description: Incremental reasoning text being added - item_id: - type: string - description: >- - Unique identifier of the output item being updated - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.reasoning_text.delta - default: response.reasoning_text.delta - description: >- - Event type identifier, always "response.reasoning_text.delta" - additionalProperties: false - required: - - content_index - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseReasoningTextDelta - description: >- - Streaming event for incremental reasoning text updates. - "OpenAIResponseObjectStreamResponseReasoningTextDone": - type: object - properties: - content_index: - type: integer - description: >- - Index position of the reasoning content part - text: - type: string - description: Final complete reasoning text - item_id: - type: string - description: >- - Unique identifier of the completed output item - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.reasoning_text.done - default: response.reasoning_text.done - description: >- - Event type identifier, always "response.reasoning_text.done" - additionalProperties: false - required: - - content_index - - text - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseReasoningTextDone - description: >- - Streaming event for when reasoning text is completed. - "OpenAIResponseObjectStreamResponseRefusalDelta": - type: object - properties: - content_index: - type: integer - description: Index position of the content part - delta: - type: string - description: Incremental refusal text being added - item_id: - type: string - description: Unique identifier of the output item - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.refusal.delta - default: response.refusal.delta - description: >- - Event type identifier, always "response.refusal.delta" - additionalProperties: false - required: - - content_index - - delta - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseRefusalDelta - description: >- - Streaming event for incremental refusal text updates. - "OpenAIResponseObjectStreamResponseRefusalDone": - type: object - properties: - content_index: - type: integer - description: Index position of the content part - refusal: - type: string - description: Final complete refusal text - item_id: - type: string - description: Unique identifier of the output item - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.refusal.done - default: response.refusal.done - description: >- - Event type identifier, always "response.refusal.done" - additionalProperties: false - required: - - content_index - - refusal - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseRefusalDone - description: >- - Streaming event for when refusal text is completed. - "OpenAIResponseObjectStreamResponseWebSearchCallCompleted": - type: object - properties: - item_id: - type: string - description: >- - Unique identifier of the completed web search call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.web_search_call.completed - default: response.web_search_call.completed - description: >- - Event type identifier, always "response.web_search_call.completed" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseWebSearchCallCompleted - description: >- - Streaming event for completed web search calls. - "OpenAIResponseObjectStreamResponseWebSearchCallInProgress": - type: object - properties: - item_id: - type: string - description: Unique identifier of the web search call - output_index: - type: integer - description: >- - Index position of the item in the output list - sequence_number: - type: integer - description: >- - Sequential number for ordering streaming events - type: - type: string - const: response.web_search_call.in_progress - default: response.web_search_call.in_progress - description: >- - Event type identifier, always "response.web_search_call.in_progress" - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseWebSearchCallInProgress - description: >- - Streaming event for web search calls in progress. - "OpenAIResponseObjectStreamResponseWebSearchCallSearching": - type: object - properties: - item_id: - type: string - output_index: - type: integer - sequence_number: - type: integer - type: - type: string - const: response.web_search_call.searching - default: response.web_search_call.searching - additionalProperties: false - required: - - item_id - - output_index - - sequence_number - - type - title: >- - OpenAIResponseObjectStreamResponseWebSearchCallSearching - OpenAIDeleteResponseObject: - type: object - properties: - id: - type: string - description: >- - Unique identifier of the deleted response - object: - type: string - const: response - default: response - description: >- - Object type identifier, always "response" - deleted: - type: boolean - default: true - description: Deletion confirmation flag, always True - additionalProperties: false - required: - - id - - object - - deleted - title: OpenAIDeleteResponseObject - description: >- - Response object confirming deletion of an OpenAI response. - ListOpenAIResponseInputItem: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIResponseInput' - description: List of input items - object: - type: string - const: list - default: list - description: Object type identifier, always "list" - additionalProperties: false - required: - - data - - object - title: ListOpenAIResponseInputItem - description: >- - List container for OpenAI response input items. - RunShieldRequest: - type: object - properties: - shield_id: - type: string - description: The identifier of the shield to run. - messages: - type: array - items: - $ref: '#/components/schemas/OpenAIMessageParam' - description: The messages to run the shield on. - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The parameters of the shield. - additionalProperties: false - required: - - shield_id - - messages - - params - title: RunShieldRequest - RunShieldResponse: - type: object - properties: - violation: - $ref: '#/components/schemas/SafetyViolation' - description: >- - (Optional) Safety violation detected by the shield, if any - additionalProperties: false - title: RunShieldResponse - description: Response from running a safety shield. - SafetyViolation: - type: object - properties: - violation_level: - $ref: '#/components/schemas/ViolationLevel' - description: Severity level of the violation - user_message: - type: string - description: >- - (Optional) Message to convey to the user about the violation - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - Additional metadata including specific violation codes for debugging and - telemetry - additionalProperties: false - required: - - violation_level - - metadata - title: SafetyViolation - description: >- - Details of a safety violation detected by content moderation. - ViolationLevel: - type: string - enum: - - info - - warn - - error - title: ViolationLevel - description: Severity level of a safety violation. AgentTurnInputType: properties: type: @@ -8191,7 +4247,7 @@ components: default: agent_turn_input type: object title: AgentTurnInputType - description: Parameter type for agent turn input. + description: "Parameter type for agent turn input.\n\n:param type: Discriminator type. Always \"agent_turn_input\"" AggregationFunctionType: type: string enum: @@ -8205,28 +4261,37 @@ components: AllowedToolsFilter: properties: tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Tool Names - items: - type: string - type: array + description: List of specific tool names that are allowed type: object title: AllowedToolsFilter - description: Filter configuration for restricting which MCP tools can be used. + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" ApprovalFilter: properties: always: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Always - items: - type: string - type: array + description: List of tool names that always require approval never: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Never - items: - type: string - type: array + description: List of tool names that never require approval type: object title: ApprovalFilter - description: Filter configuration for MCP tool approval requirements. + description: "Filter configuration for MCP tool approval requirements.\n\n:param always: (Optional) List of tool names that always require approval\n:param never: (Optional) List of tool names that never require approval" ArrayType: properties: type: @@ -8236,7 +4301,7 @@ components: default: array type: object title: ArrayType - description: Parameter type for array values. + description: "Parameter type for array values.\n\n:param type: Discriminator type. Always \"array\"" BasicScoringFnParams: properties: type: @@ -8287,49 +4352,79 @@ components: - cancelled title: Status cancelled_at: + anyOf: + - type: integer + - type: 'null' title: Cancelled At - type: integer cancelling_at: + anyOf: + - type: integer + - type: 'null' title: Cancelling At - type: integer completed_at: + anyOf: + - type: integer + - type: 'null' title: Completed At - type: integer error_file_id: + anyOf: + - type: string + - type: 'null' title: Error File Id - type: string errors: - $ref: '#/components/schemas/Errors' + anyOf: + - $ref: '#/components/schemas/Errors' + - type: 'null' expired_at: + anyOf: + - type: integer + - type: 'null' title: Expired At - type: integer expires_at: + anyOf: + - type: integer + - type: 'null' title: Expires At - type: integer failed_at: + anyOf: + - type: integer + - type: 'null' title: Failed At - type: integer finalizing_at: + anyOf: + - type: integer + - type: 'null' title: Finalizing At - type: integer in_progress_at: + anyOf: + - type: integer + - type: 'null' title: In Progress At - type: integer metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' title: Metadata - additionalProperties: - type: string - type: object model: + anyOf: + - type: string + - type: 'null' title: Model - type: string output_file_id: + anyOf: + - type: string + - type: 'null' title: Output File Id - type: string request_counts: - $ref: '#/components/schemas/BatchRequestCounts' + anyOf: + - $ref: '#/components/schemas/BatchRequestCounts' + - type: 'null' usage: - $ref: '#/components/schemas/BatchUsage' + anyOf: + - $ref: '#/components/schemas/BatchUsage' + - type: 'null' additionalProperties: true type: object required: @@ -8344,17 +4439,25 @@ components: BatchError: properties: code: + anyOf: + - type: string + - type: 'null' title: Code - type: string line: + anyOf: + - type: integer + - type: 'null' title: Line - type: integer message: + anyOf: + - type: string + - type: 'null' title: Message - type: string param: + anyOf: + - type: string + - type: 'null' title: Param - type: string additionalProperties: true type: object title: BatchError @@ -8400,6 +4503,166 @@ components: - output_tokens_details - total_tokens title: BatchUsage + Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post: + properties: + file_id: + type: string + title: File Id + description: The ID of the file to attach to the vector store. + attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Attributes + description: The key-value attributes stored with the file, which can be used for filtering. + chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' + title: Chunking Strategy + description: The chunking strategy to use for the file. + type: object + required: + - file_id + title: Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post + Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post: + properties: + query: + anyOf: + - type: string + - items: + type: string + type: array + title: Query + description: The query string or array for performing the search. + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Filters + description: Filters based on file attributes to narrow the search results. + max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' + title: Max Num Results + description: Maximum number of results to return (1 to 50 inclusive, default 10). + default: 10 + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Ranking options for fine-tuning the search results. + rewrite_query: + type: boolean + title: Rewrite Query + description: Whether to rewrite the natural language query for vector search (default false). + default: false + search_mode: + anyOf: + - type: string + - type: 'null' + title: Search Mode + description: The search mode to use - 'keyword', 'vector', or 'hybrid' (default 'vector'). + default: vector + type: object + required: + - query + title: Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post + Body_openai_upload_file_v1_files_post: + properties: + file: + type: string + format: binary + title: File + description: The File object to be uploaded. + purpose: + $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the uploaded file. + expires_after: + anyOf: + - $ref: '#/components/schemas/ExpiresAfter' + - type: 'null' + description: Optional form values describing expiration for the file. + type: object + required: + - file + - purpose + title: Body_openai_upload_file_v1_files_post + Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post: + properties: + documents: + items: + $ref: '#/components/schemas/RAGDocument' + type: array + title: Documents + description: List of documents to index in the RAG system. + vector_store_id: + type: string + title: Vector Store Id + description: ID of the vector database to store the document embeddings. + chunk_size_in_tokens: + type: integer + title: Chunk Size In Tokens + description: Size in tokens for document chunking during indexing. + default: 512 + type: object + required: + - documents + - vector_store_id + title: Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post + Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + description: The query content to search for in the indexed documents. + vector_store_ids: + items: + type: string + type: array + title: Vector Store Ids + description: List of vector database IDs to search within. + query_config: + anyOf: + - $ref: '#/components/schemas/RAGQueryConfig' + - type: 'null' + description: Configuration parameters for the query operation. + type: object + required: + - content + - vector_store_ids + title: Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post BooleanType: properties: type: @@ -8409,7 +4672,7 @@ components: default: boolean type: object title: BooleanType - description: Parameter type for boolean values. + description: "Parameter type for boolean values.\n\n:param type: Discriminator type. Always \"boolean\"" ChatCompletionInputType: properties: type: @@ -8419,7 +4682,55 @@ components: default: chat_completion_input type: object title: ChatCompletionInputType - description: Parameter type for chat completion input. + description: "Parameter type for chat completion input.\n\n:param type: Discriminator type. Always \"chat_completion_input\"" + Chunk-Input: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + chunk_id: + type: string + title: Chunk Id + metadata: + additionalProperties: true + type: object + title: Metadata + embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' + title: Embedding + chunk_metadata: + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' + type: object + required: + - content + - chunk_id + title: Chunk + description: A chunk of content that can be inserted into a vector database. Chunk-Output: properties: content: @@ -8452,12 +4763,16 @@ components: type: object title: Metadata embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' title: Embedding - items: - type: number - type: array chunk_metadata: - $ref: '#/components/schemas/ChunkMetadata' + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' type: object required: - content @@ -8467,38 +4782,60 @@ components: ChunkMetadata: properties: chunk_id: + anyOf: + - type: string + - type: 'null' title: Chunk Id - type: string document_id: + anyOf: + - type: string + - type: 'null' title: Document Id - type: string source: + anyOf: + - type: string + - type: 'null' title: Source - type: string created_timestamp: + anyOf: + - type: integer + - type: 'null' title: Created Timestamp - type: integer updated_timestamp: + anyOf: + - type: integer + - type: 'null' title: Updated Timestamp - type: integer chunk_window: + anyOf: + - type: string + - type: 'null' title: Chunk Window - type: string chunk_tokenizer: + anyOf: + - type: string + - type: 'null' title: Chunk Tokenizer - type: string chunk_embedding_model: + anyOf: + - type: string + - type: 'null' title: Chunk Embedding Model - type: string chunk_embedding_dimension: + anyOf: + - type: integer + - type: 'null' title: Chunk Embedding Dimension - type: integer content_token_count: + anyOf: + - type: integer + - type: 'null' title: Content Token Count - type: integer metadata_token_count: + anyOf: + - type: integer + - type: 'null' title: Metadata Token Count - type: integer type: object title: ChunkMetadata description: "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." @@ -8511,7 +4848,7 @@ components: default: completion_input type: object title: CompletionInputType - description: Parameter type for completion input. + description: "Parameter type for completion input.\n\n:param type: Discriminator type. Always \"completion_input\"" Conversation: properties: id: @@ -8529,589 +4866,416 @@ components: title: Created At description: The time at which the conversation was created, measured in seconds since the Unix epoch. metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' title: Metadata 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. - additionalProperties: - type: string - type: object items: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Items description: Initial items to include in the conversation context. You may add up to 20 items at a time. - items: - additionalProperties: true - type: object - type: array type: object required: - id - created_at title: Conversation description: OpenAI-compatible conversation object. + ConversationCreateRequest: + properties: + items: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + - type: 'null' + title: Items + description: Initial items to include in the conversation context. You may add up to 20 items at a time. + default: [] + metadata: + anyOf: + - additionalProperties: + type: string + type: object + maxProperties: 16 + - type: 'null' + title: Metadata + description: Set of 16 key-value pairs that can be attached to an object. Useful for storing additional information + default: {} + type: object + title: ConversationCreateRequest + description: Request body for creating a conversation. + ConversationDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted conversation identifier + object: + type: string + title: Object + description: Object type + default: conversation.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationDeletedResource + description: Response for deleted conversation. + ConversationItemCreateRequest: + properties: + items: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + title: Items + description: Items to include in the conversation context. You may add up to 20 items at a time. + type: object + required: + - items + title: ConversationItemCreateRequest + description: Request body for creating conversation items. + ConversationItemDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted item identifier + object: + type: string + title: Object + description: Object type + default: conversation.item.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationItemDeletedResource + description: Response for deleted conversation item. ConversationItemInclude: type: string enum: - - llm_as_judge - - regex_parser - - basic - title: ScoringFnParamsType - description: >- - Types of scoring function parameter configurations. - StringType: - type: object + - web_search_call.action.sources + - code_interpreter_call.outputs + - computer_call_output.output.image_url + - file_search_call.results + - message.input_image.image_url + - message.output_text.logprobs + - reasoning.encrypted_content + title: ConversationItemInclude + description: Specify additional output data to include in the model response. + ConversationItemList: properties: - type: + object: type: string - const: string - default: string - description: Discriminator type. Always "string" - additionalProperties: false - required: - - type - title: StringType - description: Parameter type for string values. - UnionType: - type: object - properties: - type: - type: string - const: union - default: union - description: Discriminator type. Always "union" - additionalProperties: false - required: - - type - title: UnionType - description: Parameter type for union values. - ListScoringFunctionsResponse: - type: object - properties: + title: Object + description: Object type + default: list data: - type: array items: - $ref: '#/components/schemas/ScoringFn' - additionalProperties: false - required: - - data - title: ListScoringFunctionsResponse - ParamType: - oneOf: - - $ref: '#/components/schemas/StringType' - - $ref: '#/components/schemas/NumberType' - - $ref: '#/components/schemas/BooleanType' - - $ref: '#/components/schemas/ArrayType' - - $ref: '#/components/schemas/ObjectType' - - $ref: '#/components/schemas/JsonType' - - $ref: '#/components/schemas/UnionType' - - $ref: '#/components/schemas/ChatCompletionInputType' - - $ref: '#/components/schemas/CompletionInputType' - - $ref: '#/components/schemas/AgentTurnInputType' - discriminator: - propertyName: type - mapping: - string: '#/components/schemas/StringType' - number: '#/components/schemas/NumberType' - boolean: '#/components/schemas/BooleanType' - array: '#/components/schemas/ArrayType' - object: '#/components/schemas/ObjectType' - json: '#/components/schemas/JsonType' - union: '#/components/schemas/UnionType' - chat_completion_input: '#/components/schemas/ChatCompletionInputType' - completion_input: '#/components/schemas/CompletionInputType' - agent_turn_input: '#/components/schemas/AgentTurnInputType' - RegisterScoringFunctionRequest: - type: object - properties: - scoring_fn_id: - type: string - description: >- - The ID of the scoring function to register. - description: - type: string - description: The description of the scoring function. - return_type: - $ref: '#/components/schemas/ParamType' - description: The return type of the scoring function. - provider_scoring_fn_id: - type: string - description: >- - The ID of the provider scoring function to use for the scoring function. - provider_id: - type: string - description: >- - The ID of the provider to use for the scoring function. - params: - $ref: '#/components/schemas/ScoringFnParams' - description: >- - The parameters for the scoring function for benchmark eval, these can - be overridden for app eval. - additionalProperties: false - required: - - scoring_fn_id - - description - - return_type - title: RegisterScoringFunctionRequest - ScoreRequest: - type: object - properties: - input_rows: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The rows to score. - scoring_functions: - type: object - additionalProperties: - oneOf: - - $ref: '#/components/schemas/ScoringFnParams' - - type: 'null' - description: >- - The scoring functions to use for the scoring. - additionalProperties: false - required: - - input_rows - - scoring_functions - title: ScoreRequest - ScoreResponse: - type: object - properties: - results: - type: object - additionalProperties: - $ref: '#/components/schemas/ScoringResult' - description: >- - A map of scoring function name to ScoringResult. - additionalProperties: false - required: - - results - title: ScoreResponse - description: The response from scoring. - ScoringResult: - type: object - properties: - score_rows: - type: array - items: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - The scoring result for each row. Each row is a map of column name to value. - aggregated_results: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Map of metric name to aggregated value - additionalProperties: false - required: - - score_rows - - aggregated_results - title: ScoringResult - description: A scoring result for a single row. - ScoreBatchRequest: - type: object - properties: - dataset_id: - type: string - description: The ID of the dataset to score. - scoring_functions: - type: object - additionalProperties: - oneOf: - - $ref: '#/components/schemas/ScoringFnParams' - - type: 'null' - description: >- - The scoring functions to use for the scoring. - save_results_dataset: + title: Data + description: List of conversation items + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + description: The ID of the first item in the list + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + description: The ID of the last item in the list + has_more: type: boolean - description: >- - Whether to save the results to a dataset. - additionalProperties: false - required: - - dataset_id - - scoring_functions - - save_results_dataset - title: ScoreBatchRequest - ScoreBatchResponse: + title: Has More + description: Whether there are more items available + default: false type: object + required: + - data + title: ConversationItemList + description: List of conversation items with pagination. + ConversationUpdateRequest: properties: - dataset_id: - type: string - description: >- - (Optional) The identifier of the dataset that was scored - results: - type: object + metadata: additionalProperties: - $ref: '#/components/schemas/ScoringResult' - description: >- - A map of scoring function name to ScoringResult - additionalProperties: false - required: - - results - title: ScoreBatchResponse - description: >- - Response from batch scoring operations on datasets. - Shield: - type: object - properties: - identifier: - type: string - provider_resource_id: - type: string - provider_id: - type: string - type: - type: string - enum: - - model - - shield - - vector_store - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: shield - default: shield - description: The resource type, always shield - params: + type: string type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Configuration parameters for the shield - additionalProperties: false - required: - - identifier - - provider_id - - type - title: Shield - description: >- - A safety shield resource that can be used to check content. - ListShieldsResponse: + title: Metadata + 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. type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Shield' - additionalProperties: false required: - - data - title: ListShieldsResponse - RegisterShieldRequest: - type: object + - metadata + title: ConversationUpdateRequest + description: Request body for updating a conversation. + CreateBatchRequest: properties: - shield_id: + input_file_id: type: string - description: >- - The identifier of the shield to register. - provider_shield_id: + title: Input File Id + description: The ID of an uploaded file containing requests for the batch. + endpoint: type: string - description: >- - The identifier of the shield in the provider. - provider_id: + title: Endpoint + description: The endpoint to be used for all requests in the batch. + completion_window: type: string - description: The identifier of the provider. - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The parameters of the shield. - additionalProperties: false - required: - - shield_id - title: RegisterShieldRequest - InvokeToolRequest: - type: object - properties: - tool_name: - type: string - description: The name of the tool to invoke. - kwargs: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - A dictionary of arguments to pass to the tool. - additionalProperties: false - required: - - tool_name - - kwargs - title: InvokeToolRequest - ImageContentItem: - type: object - properties: - type: - type: string - const: image - default: image - description: >- - Discriminator type of the content item. Always "image" - image: - type: object - properties: - url: - $ref: '#/components/schemas/URL' - description: >- - A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - data: + const: 24h + title: Completion Window + description: The time window within which the batch should be processed. + metadata: + anyOf: + - additionalProperties: type: string - contentEncoding: base64 - description: base64 encoded image data as string - additionalProperties: false - description: >- - Image as a base64 encoded string or an URL - additionalProperties: false - required: - - type - - image - title: ImageContentItem - description: A image content item - InterleavedContent: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - InterleavedContentItem: - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - discriminator: - propertyName: type - mapping: - image: '#/components/schemas/ImageContentItem' - text: '#/components/schemas/TextContentItem' - TextContentItem: + type: object + - type: 'null' + title: Metadata + description: Optional metadata for the batch. + idempotency_key: + anyOf: + - type: string + - type: 'null' + title: Idempotency Key + description: Optional idempotency key. When provided, enables idempotent behavior. type: object + required: + - input_file_id + - endpoint + - completion_window + title: CreateBatchRequest + description: Request model for creating a batch. + CreateOpenAIResponseRequest: properties: - type: + input: + anyOf: + - type: string + - items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + type: array + title: Input + description: Input message(s) to create the response + model: type: string - const: text - default: text - description: >- - Discriminator type of the content item. Always "text" + title: Model + description: The underlying LLM used for completions + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Prompt object with ID, version, and variables + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System instructions + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: If specified, the new response will be a continuation of the previous response + conversation: + anyOf: + - type: string + - type: 'null' + title: Conversation + description: The ID of a conversation to add the response to. Must begin with 'conv_' + store: + type: boolean + title: Store + description: Whether to store the response + default: true + stream: + type: boolean + title: Stream + description: Whether to stream the response + default: false + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature text: - type: string - description: Text content - additionalProperties: false - required: - - type - - text - title: TextContentItem - description: A text content item - ToolInvocationResult: - type: object - properties: - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) The output content from the tool execution - error_message: - type: string - description: >- - (Optional) Error message if the tool execution failed - error_code: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseText' + - type: 'null' + description: Text generation parameters + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseInputToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: Tools to make available + include: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Include + description: Additional fields to include in the response + max_infer_iters: type: integer - description: >- - (Optional) Numeric error code if the tool execution failed - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number + title: Max Infer Iters + description: Maximum number of inference iterations (extension to the OpenAI API) + default: 10 + guardrails: + anyOf: + - items: + anyOf: - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool execution - additionalProperties: false - title: ToolInvocationResult - description: Result of a tool invocation. - URL: + - $ref: '#/components/schemas/ResponseGuardrailSpec' + type: array + - type: 'null' + title: Guardrails + description: List of guardrails to apply during response generation type: object - properties: - uri: - type: string - description: The URL string pointing to the resource - additionalProperties: false required: - - uri - title: URL - description: A URL reference to external content. - ToolDef: + - input + - model + title: CreateOpenAIResponseRequest + description: Request to create a model response. + CreatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The prompt text content with variable placeholders. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: List of variable names that can be used in the prompt template. type: object - properties: - toolgroup_id: - type: string - description: >- - (Optional) ID of the tool group this tool belongs to - name: - type: string - description: Name of the tool - description: - type: string - description: >- - (Optional) Human-readable description of what the tool does - input_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON Schema for tool inputs (MCP inputSchema) - output_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON Schema for tool outputs (MCP outputSchema) - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool - additionalProperties: false required: - - name - title: ToolDef - description: >- - Tool definition used in runtime contexts. - ListToolDefsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ToolDef' - description: List of tool definitions - additionalProperties: false - required: - - data - title: ListToolDefsResponse - description: >- - Response containing a list of tool definitions. - RAGDocument: - type: object - properties: - document_id: - type: string - description: The unique identifier for the document. - content: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - - $ref: '#/components/schemas/URL' - description: The content of the document. - mime_type: - type: string - description: The MIME type of the document. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Additional metadata for the document. - additionalProperties: false - required: - - document_id - - content - - metadata - title: RAGDocument - description: >- - A document to be used for document ingestion in the RAG Tool. - InsertRequest: - type: object - properties: - documents: - type: array - items: - $ref: '#/components/schemas/RAGDocument' - description: >- - List of documents to index in the RAG system - vector_store_id: - type: string - description: >- - ID of the vector database to store the document embeddings - chunk_size_in_tokens: - type: integer - description: >- - (Optional) Size in tokens for document chunking during indexing - additionalProperties: false - required: - - documents - - vector_store_id - - chunk_size_in_tokens - title: InsertRequest + - prompt + title: CreatePromptRequest + description: Request model for creating a new prompt. DefaultRAGQueryGeneratorConfig: properties: type: @@ -9125,24 +5289,75 @@ components: default: ' ' type: object title: DefaultRAGQueryGeneratorConfig - description: Configuration for the default RAG query generator. + description: "Configuration for the default RAG query generator.\n\n:param type: Type of query generator, always 'default'\n:param separator: String separator used to join query terms" + Error: + properties: + status: + type: integer + title: Status + description: HTTP status code + title: + type: string + title: Title + description: Error title, a short summary of the error which is invariant for an error type + detail: + type: string + title: Detail + description: Error detail, a longer human-readable description of the error + instance: + anyOf: + - type: string + - type: 'null' + title: Instance + description: (Optional) A URL which can be used to retrieve more information about the specific occurrence of the error + type: object + required: + - status + - title + - detail + title: Error + description: Error response from the API. Roughly follows RFC 7807. Errors: properties: data: + anyOf: + - items: + $ref: '#/components/schemas/BatchError' + type: array + - type: 'null' title: Data - items: - $ref: '#/components/schemas/BatchError' - type: array object: + anyOf: + - type: string + - type: 'null' title: Object - type: string additionalProperties: true type: object title: Errors + ExpiresAfter: + properties: + anchor: + type: string + const: created_at + title: Anchor + description: Anchor must be 'created_at'. + seconds: + type: integer + maximum: 2592000.0 + minimum: 3600.0 + title: Seconds + description: Seconds between 3600 and 2592000 (1 hour to 30 days). + type: object + required: + - anchor + - seconds + title: ExpiresAfter + description: Control expiration of uploaded files. HealthInfo: properties: status: $ref: '#/components/schemas/HealthStatus' + description: Current health status of the service type: object required: - status @@ -9155,6 +5370,20 @@ components: - Error - Not Implemented title: HealthStatus + ImageContentItem-Input: + properties: + type: + type: string + const: image + title: Type + default: image + image: + $ref: '#/components/schemas/_URLOrData' + type: object + required: + - image + title: ImageContentItem + description: A image content item. ImageContentItem-Output: properties: type: @@ -9168,7 +5397,7 @@ components: required: - image title: ImageContentItem - description: A image content item + description: A image content item. InputTokensDetails: properties: cached_tokens: @@ -9179,6 +5408,47 @@ components: required: - cached_tokens title: InputTokensDetails + InsertChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to insert the chunks into. + chunks: + items: + $ref: '#/components/schemas/Chunk-Input' + type: array + title: Chunks + description: The chunks to insert. + ttl_seconds: + anyOf: + - type: integer + - type: 'null' + title: Ttl Seconds + description: The time to live of the chunks. + type: object + required: + - vector_store_id + - chunks + title: InsertChunksRequest + description: Request to insert chunks into a vector database. + InvokeToolRequest: + properties: + tool_name: + type: string + title: Tool Name + description: The name of the tool to invoke + kwargs: + additionalProperties: true + type: object + title: Kwargs + description: A dictionary of arguments to pass to the tool + type: object + required: + - tool_name + - kwargs + title: InvokeToolRequest + description: Request model for invoking a tool. JsonType: properties: type: @@ -9188,7 +5458,7 @@ components: default: json type: object title: JsonType - description: Parameter type for JSON values. + description: "Parameter type for JSON values.\n\n:param type: Discriminator type. Always \"json\"" LLMAsJudgeScoringFnParams: properties: type: @@ -9200,8 +5470,10 @@ components: type: string title: Judge Model prompt_template: + anyOf: + - type: string + - type: 'null' title: Prompt Template - type: string judge_score_regexes: items: type: string @@ -9237,7 +5509,43 @@ components: - model - template title: LLMRAGQueryGeneratorConfig - description: Configuration for the LLM-based RAG query generator. + description: "Configuration for the LLM-based RAG query generator.\n\n:param type: Type of query generator, always 'llm'\n:param model: Name of the language model to use for query generation\n:param template: Template string for formatting the query generation prompt" + ListBatchesResponse: + properties: + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + data: + items: + $ref: '#/components/schemas/Batch' + type: array + title: Data + description: List of batch objects. + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + description: ID of the first batch in the list. + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + description: ID of the last batch in the list. + has_more: + type: boolean + title: Has More + description: Whether there are more batches available. + default: false + type: object + required: + - data + title: ListBatchesResponse + description: Response containing a list of batch objects. ListModelsResponse: properties: data: @@ -9245,10 +5553,149 @@ components: $ref: '#/components/schemas/Model' type: array title: Data + description: List of model resources. type: object required: - data title: ListModelsResponse + description: Response model for listing models. + ListOpenAIChatCompletionResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAICompletionWithInputMessages' + type: array + title: Data + has_more: + type: boolean + title: Has More + first_id: + type: string + title: First Id + last_id: + type: string + title: Last Id + object: + type: string + const: list + title: Object + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIChatCompletionResponse + description: Response from listing OpenAI-compatible chat completions. + ListOpenAIFileResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIFileObject' + type: array + title: Data + description: List of file objects. + has_more: + type: boolean + title: Has More + description: Whether there are more files available beyond this page. + first_id: + type: string + title: First Id + description: ID of the first file in the list for pagination. + last_id: + type: string + title: Last Id + description: ID of the last file in the list for pagination. + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIFileResponse + description: Response for listing files in OpenAI Files API. + ListOpenAIResponseInputItem: + properties: + data: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Data + description: List of input items + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + title: ListOpenAIResponseInputItem + description: "List container for OpenAI response input items.\n\n:param data: List of input items\n:param object: Object type identifier, always \"list\"" + ListOpenAIResponseObject: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIResponseObjectWithInput-Output' + type: array + title: Data + description: List of response objects with their input context + has_more: + type: boolean + title: Has More + description: Whether there are more results available beyond this page + first_id: + type: string + title: First Id + description: Identifier of the first item in this page + last_id: + type: string + title: Last Id + description: Identifier of the last item in this page + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIResponseObject + description: "Paginated list of OpenAI response objects with navigation metadata.\n\n:param data: List of response objects with their input context\n:param has_more: Whether there are more results available beyond this page\n:param first_id: Identifier of the first item in this page\n:param last_id: Identifier of the last item in this page\n:param object: Object type identifier, always \"list\"" ListPromptsResponse: properties: data: @@ -9256,6 +5703,7 @@ components: $ref: '#/components/schemas/Prompt' type: array title: Data + description: List of prompt resources. type: object required: - data @@ -9268,6 +5716,7 @@ components: $ref: '#/components/schemas/ProviderInfo' type: array title: Data + description: List of provider information objects type: object required: - data @@ -9280,6 +5729,7 @@ components: $ref: '#/components/schemas/RouteInfo' type: array title: Data + description: List of available route information objects type: object required: - data @@ -9289,13 +5739,15 @@ components: properties: data: items: - $ref: '#/components/schemas/ScoringFn-Output' + $ref: '#/components/schemas/ScoringFn' type: array title: Data + description: List of scoring function resources type: object required: - data title: ListScoringFunctionsResponse + description: Response model for listing scoring functions. ListShieldsResponse: properties: data: @@ -9303,10 +5755,25 @@ components: $ref: '#/components/schemas/Shield' type: array title: Data + description: List of shield resources type: object required: - data title: ListShieldsResponse + description: Response model for listing shields. + ListToolDefsResponse: + properties: + data: + items: + $ref: '#/components/schemas/ToolDef' + type: array + title: Data + description: List of tool definitions + type: object + required: + - data + title: ListToolDefsResponse + description: Response containing a list of tool definitions. ListToolGroupsResponse: properties: data: @@ -9314,6 +5781,7 @@ components: $ref: '#/components/schemas/ToolGroup' type: array title: Data + description: List of tool groups type: object required: - data @@ -9325,18 +5793,23 @@ components: additionalProperties: true type: object title: Input Schema + description: JSON schema defining the tool's input parameters name: type: string title: Name + description: Name of the tool description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Description of what the tool does type: object required: - input_schema - name title: MCPListToolsTool - description: Tool definition returned by MCP list tools operation. + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" Model: properties: identifier: @@ -9344,9 +5817,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -9355,14 +5830,16 @@ components: type: string const: model title: Type + description: The resource type, always 'model' for model resources. default: model metadata: additionalProperties: true type: object title: Metadata - description: Any additional metadata for this model + description: Any additional metadata for this model. model_type: $ref: '#/components/schemas/ModelType' + description: The type of model (LLM or embedding model). default: llm type: object required: @@ -9383,14 +5860,17 @@ components: id: type: string title: Id + description: The unique identifier for the moderation request. model: type: string title: Model + description: The model used to generate the moderation results. results: items: $ref: '#/components/schemas/ModerationObjectResults' type: array title: Results + description: A list of moderation objects. type: object required: - id @@ -9403,30 +5883,44 @@ components: flagged: type: boolean title: Flagged + description: Whether any of the below categories are flagged. categories: + anyOf: + - additionalProperties: + type: boolean + type: object + - type: 'null' title: Categories - additionalProperties: - type: boolean - type: object + description: A list of the categories, and whether they are flagged or not. category_applied_input_types: + anyOf: + - additionalProperties: + items: + type: string + type: array + type: object + - type: 'null' title: Category Applied Input Types - additionalProperties: - items: - type: string - type: array - type: object + description: A list of the categories along with the input type(s) that the score applies to. category_scores: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Category Scores - additionalProperties: - type: number - type: object + description: A list of the categories along with their scores as predicted by model. user_message: + anyOf: + - type: string + - type: 'null' title: User Message - type: string + description: User message. metadata: additionalProperties: true type: object title: Metadata + description: Additional metadata. type: object required: - flagged @@ -9441,7 +5935,7 @@ components: default: number type: object title: NumberType - description: Parameter type for numeric values. + description: "Parameter type for numeric values.\n\n:param type: Discriminator type. Always \"number\"" ObjectType: properties: type: @@ -9451,7 +5945,7 @@ components: default: object type: object title: ObjectType - description: Parameter type for object values. + description: "Parameter type for object values.\n\n:param type: Discriminator type. Always \"object\"" OpenAIAssistantMessageParam-Input: properties: role: @@ -9465,15 +5959,20 @@ components: - items: $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' type: array + - type: 'null' title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array type: object title: OpenAIAssistantMessageParam description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. @@ -9490,49 +5989,23 @@ components: - items: $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' type: array + - type: 'null' title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array type: object title: OpenAIAssistantMessageParam description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. - OpenAIChatCompletion: - properties: - id: - type: string - title: Id - choices: - items: - $ref: '#/components/schemas/OpenAIChoice-Output' - type: array - title: Choices - object: - type: string - const: chat.completion - title: Object - default: chat.completion - created: - type: integer - title: Created - model: - type: string - title: Model - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - type: object - required: - - id - - choices - - created - - model - title: OpenAIChatCompletion - description: Response from an OpenAI-compatible chat completion request. OpenAIChatCompletionContentPartImageParam: properties: type: @@ -9587,96 +6060,135 @@ components: minItems: 1 title: Messages frequency_penalty: + anyOf: + - type: number + - type: 'null' title: Frequency Penalty - type: number function_call: anyOf: - type: string - additionalProperties: true type: object + - type: 'null' title: Function Call functions: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Functions - items: - additionalProperties: true - type: object - type: array logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Logit Bias - additionalProperties: - type: number - type: object logprobs: + anyOf: + - type: boolean + - type: 'null' title: Logprobs - type: boolean max_completion_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Completion Tokens - type: integer max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer n: + anyOf: + - type: integer + - type: 'null' title: N - type: integer parallel_tool_calls: + anyOf: + - type: boolean + - type: 'null' title: Parallel Tool Calls - type: boolean presence_penalty: + anyOf: + - type: number + - type: 'null' title: Presence Penalty - type: number response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseFormatText' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' + discriminator: + propertyName: type + mapping: + json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' + json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' + text: '#/components/schemas/OpenAIResponseFormatText' + - type: 'null' title: Response Format - oneOf: - - $ref: '#/components/schemas/OpenAIResponseFormatText' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' - discriminator: - propertyName: type - mapping: - json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' - json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' - text: '#/components/schemas/OpenAIResponseFormatText' seed: + anyOf: + - type: integer + - type: 'null' title: Seed - type: integer stop: anyOf: - type: string - items: type: string type: array + - type: 'null' title: Stop stream: + anyOf: + - type: boolean + - type: 'null' title: Stream - type: boolean stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Stream Options - additionalProperties: true - type: object temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number tool_choice: anyOf: - type: string - additionalProperties: true type: object + - type: 'null' title: Tool Choice tools: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Tools - items: - additionalProperties: true - type: object - type: array top_logprobs: + anyOf: + - type: integer + - type: 'null' title: Top Logprobs - type: integer top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number user: + anyOf: + - type: string + - type: 'null' title: User - type: string additionalProperties: true type: object required: @@ -9687,29 +6199,39 @@ components: OpenAIChatCompletionToolCall: properties: index: + anyOf: + - type: integer + - type: 'null' title: Index - type: integer id: + anyOf: + - type: string + - type: 'null' title: Id - type: string type: type: string const: function title: Type default: function function: - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' type: object title: OpenAIChatCompletionToolCall description: Tool call specification for OpenAI-compatible chat completion responses. OpenAIChatCompletionToolCallFunction: properties: name: + anyOf: + - type: string + - type: 'null' title: Name - type: string arguments: + anyOf: + - type: string + - type: 'null' title: Arguments - type: string type: object title: OpenAIChatCompletionToolCallFunction description: Function call details for OpenAI-compatible tool calls. @@ -9725,9 +6247,13 @@ components: type: integer title: Total Tokens prompt_tokens_details: - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + - type: 'null' completion_tokens_details: - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + - type: 'null' type: object required: - prompt_tokens @@ -9738,16 +6264,20 @@ components: OpenAIChatCompletionUsageCompletionTokensDetails: properties: reasoning_tokens: + anyOf: + - type: integer + - type: 'null' title: Reasoning Tokens - type: integer type: object title: OpenAIChatCompletionUsageCompletionTokensDetails description: Token details for output tokens in OpenAI chat completion usage. OpenAIChatCompletionUsagePromptTokensDetails: properties: cached_tokens: + anyOf: + - type: integer + - type: 'null' title: Cached Tokens - type: integer type: object title: OpenAIChatCompletionUsagePromptTokensDetails description: Token details for prompt tokens in OpenAI chat completion usage. @@ -9776,7 +6306,9 @@ components: type: integer title: Index logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' type: object required: - message @@ -9787,15 +6319,19 @@ components: OpenAIChoiceLogprobs-Output: properties: content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' title: Content - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' title: Refusal - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array type: object title: OpenAIChoiceLogprobs description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. @@ -9827,7 +6363,7 @@ components: - created - model title: OpenAICompletion - description: Response from an OpenAI-compatible completion request. + description: "Response from an OpenAI-compatible completion request.\n\n:id: The ID of the completion\n:choices: List of choices\n:created: The Unix timestamp in seconds when the completion was created\n:model: The model that was used to generate the completion\n:object: The object type, which will be \"text_completion\"" OpenAICompletionChoice-Output: properties: finish_reason: @@ -9840,14 +6376,16 @@ components: type: integer title: Index logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' type: object required: - finish_reason - text - index title: OpenAICompletionChoice - description: A choice from an OpenAI-compatible completion response. + description: "A choice from an OpenAI-compatible completion response.\n\n:finish_reason: The reason the model stopped generating\n:text: The text of the choice\n:index: The index of the choice\n:logprobs: (Optional) The log probabilities for the tokens in the choice" OpenAICompletionRequestWithExtraBody: properties: model: @@ -9869,60 +6407,93 @@ components: type: array title: Prompt best_of: + anyOf: + - type: integer + - type: 'null' title: Best Of - type: integer echo: + anyOf: + - type: boolean + - type: 'null' title: Echo - type: boolean frequency_penalty: + anyOf: + - type: number + - type: 'null' title: Frequency Penalty - type: number logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Logit Bias - additionalProperties: - type: number - type: object logprobs: + anyOf: + - type: integer + maximum: 5.0 + minimum: 0.0 + - type: 'null' title: Logprobs - type: boolean max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer n: + anyOf: + - type: integer + - type: 'null' title: N - type: integer presence_penalty: + anyOf: + - type: number + - type: 'null' title: Presence Penalty - type: number seed: + anyOf: + - type: integer + - type: 'null' title: Seed - type: integer stop: anyOf: - type: string - items: type: string type: array + - type: 'null' title: Stop stream: + anyOf: + - type: boolean + - type: 'null' title: Stream - type: boolean stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Stream Options - additionalProperties: true - type: object temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number user: + anyOf: + - type: string + - type: 'null' title: User - type: string suffix: + anyOf: + - type: string + - type: 'null' title: Suffix - type: string additionalProperties: true type: object required: @@ -9930,6 +6501,57 @@ components: - prompt title: OpenAICompletionRequestWithExtraBody description: Request parameters for OpenAI-compatible completion endpoint. + OpenAICompletionWithInputMessages: + properties: + id: + type: string + title: Id + choices: + items: + $ref: '#/components/schemas/OpenAIChoice-Output' + type: array + title: Choices + object: + type: string + const: chat.completion + title: Object + default: chat.completion + created: + type: integer + title: Created + model: + type: string + title: Model + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsage' + - type: 'null' + input_messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Output' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Output' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Output' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Output' + type: array + title: Input Messages + type: object + required: + - id + - choices + - created + - model + - input_messages + title: OpenAICompletionWithInputMessages OpenAICreateVectorStoreFileBatchRequestWithExtraBody: properties: file_ids: @@ -9938,19 +6560,23 @@ components: type: array title: File Ids attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Attributes - additionalProperties: true - type: object chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' title: Chunking Strategy - oneOf: - - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' - - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' - discriminator: - propertyName: type - mapping: - auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' - static: '#/components/schemas/VectorStoreChunkingStrategyStatic' additionalProperties: true type: object required: @@ -9960,29 +6586,61 @@ components: OpenAICreateVectorStoreRequestWithExtraBody: properties: name: + anyOf: + - type: string + - type: 'null' title: Name - type: string file_ids: + anyOf: + - items: + type: string + type: array + - type: 'null' title: File Ids - items: - type: string - type: array expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Expires After - additionalProperties: true - type: object chunking_strategy: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Chunking Strategy - additionalProperties: true - type: object metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object additionalProperties: true type: object title: OpenAICreateVectorStoreRequestWithExtraBody description: Request to create a vector store with extra_body support. + OpenAIDeleteResponseObject: + properties: + id: + type: string + title: Id + description: Unique identifier of the deleted response + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + deleted: + type: boolean + title: Deleted + description: Deletion confirmation flag, always True + default: true + type: object + required: + - id + title: OpenAIDeleteResponseObject + description: "Response object confirming deletion of an OpenAI response.\n\n:param id: Unique identifier of the deleted response\n:param object: Object type identifier, always \"response\"\n:param deleted: Deletion confirmation flag, always True" OpenAIDeveloperMessageParam: properties: role: @@ -9998,8 +6656,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -10055,15 +6715,21 @@ components: type: array title: Input encoding_format: + anyOf: + - type: string + - type: 'null' title: Encoding Format default: float - type: string dimensions: + anyOf: + - type: integer + - type: 'null' title: Dimensions - type: integer user: + anyOf: + - type: string + - type: 'null' title: User - type: string additionalProperties: true type: object required: @@ -10108,17 +6774,40 @@ components: required: - file title: OpenAIFile + OpenAIFileDeleteResponse: + properties: + id: + type: string + title: Id + description: The file identifier that was deleted. + object: + type: string + const: file + title: Object + description: The object type, which is always 'file'. + default: file + deleted: + type: boolean + title: Deleted + description: Whether the file was successfully deleted. + type: object + required: + - id + - deleted + title: OpenAIFileDeleteResponse + description: Response for deleting a file in OpenAI Files API. OpenAIFileFile: properties: - file_data: - title: File Data - type: string file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string filename: + anyOf: + - type: string + - type: 'null' title: Filename - type: string type: object title: OpenAIFileFile OpenAIFileObject: @@ -10127,24 +6816,31 @@ components: type: string const: file title: Object + description: The object type, which is always 'file'. default: file id: type: string title: Id + description: The file identifier, which can be referenced in the API endpoints. bytes: type: integer title: Bytes + description: The size of the file, in bytes. created_at: type: integer title: Created At + description: The Unix timestamp (in seconds) for when the file was created. expires_at: type: integer title: Expires At + description: The Unix timestamp (in seconds) for when the file expires. filename: type: string title: Filename + description: The name of the file. purpose: $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the file. type: object required: - id @@ -10168,8 +6864,10 @@ components: type: string title: Url detail: + anyOf: + - type: string + - type: 'null' title: Detail - type: string type: object required: - url @@ -10181,15 +6879,21 @@ components: type: string title: Name description: + anyOf: + - type: string + - type: 'null' title: Description - type: string strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Schema - additionalProperties: true - type: object type: object title: OpenAIJSONSchema description: JSON schema specification for OpenAI-compatible structured response format. @@ -10199,19 +6903,24 @@ components: type: string const: url_citation title: Type + description: Annotation type identifier, always "url_citation" default: url_citation end_index: type: integer title: End Index + description: End position of the citation span in the content start_index: type: integer title: Start Index + description: Start position of the citation span in the content title: type: string title: Title + description: Title of the referenced web resource url: type: string title: Url + description: URL of the referenced web resource type: object required: - end_index @@ -10219,7 +6928,7 @@ components: - title - url title: OpenAIResponseAnnotationCitation - description: URL citation annotation for referencing external web resources. + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" OpenAIResponseAnnotationContainerFileCitation: properties: type: @@ -10256,23 +6965,27 @@ components: type: string const: file_citation title: Type + description: Annotation type identifier, always "file_citation" default: file_citation file_id: type: string title: File Id + description: Unique identifier of the referenced file filename: type: string title: Filename + description: Name of the referenced file index: type: integer title: Index + description: Position index of the citation within the content type: object required: - file_id - filename - index title: OpenAIResponseAnnotationFileCitation - description: File citation annotation for referencing specific files in response content. + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" OpenAIResponseAnnotationFilePath: properties: type: @@ -10297,29 +7010,33 @@ components: type: string const: refusal title: Type + description: Content part type identifier, always "refusal" default: refusal refusal: type: string title: Refusal + description: Refusal text supplied by the model type: object required: - refusal title: OpenAIResponseContentPartRefusal - description: Refusal content within a streamed response part. + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" OpenAIResponseError: properties: code: type: string title: Code + description: Error code identifying the type of failure message: type: string title: Message + description: Human-readable error message describing the failure type: object required: - code - message title: OpenAIResponseError - description: Error details for failed OpenAI response requests. + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" OpenAIResponseFormatJSONObject: properties: type: @@ -10368,11 +7085,15 @@ components: title: Type default: function_call_output id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - call_id @@ -10385,22 +7106,35 @@ components: type: string const: input_file title: Type + description: The type of the input item. Always `input_file`. default: input_file file_data: + anyOf: + - type: string + - type: 'null' title: File Data - type: string + description: The data of the file to be sent to the model. file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string + description: The ID of the file to be sent to the model. file_url: + anyOf: + - type: string + - type: 'null' title: File Url - type: string + description: The URL of the file to be sent to the model. filename: + anyOf: + - type: string + - type: 'null' title: Filename - type: string + description: The name of the file to be sent to the model. type: object title: OpenAIResponseInputMessageContentFile - description: File content for input messages in OpenAI response format. + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." OpenAIResponseInputMessageContentImage: properties: detail: @@ -10412,108 +7146,145 @@ components: - type: string const: auto title: Detail + description: Level of detail for image processing, can be "low", "high", or "auto" default: auto type: type: string const: input_image title: Type + description: Content type identifier, always "input_image" default: input_image file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string + description: The ID of the file to be sent to the model. image_url: + anyOf: + - type: string + - type: 'null' title: Image Url - type: string + description: URL of the image content type: object title: OpenAIResponseInputMessageContentImage - description: Image content for input messages in OpenAI response format. + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" OpenAIResponseInputMessageContentText: properties: text: type: string title: Text + description: The text content of the input message type: type: string const: input_text title: Type + description: Content type identifier, always "input_text" default: input_text type: object required: - text title: OpenAIResponseInputMessageContentText - description: Text content for input messages in OpenAI response format. + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" OpenAIResponseInputToolFileSearch: properties: type: type: string const: file_search title: Type + description: Tool type identifier, always "file_search" default: file_search vector_store_ids: items: type: string type: array title: Vector Store Ids + description: List of vector store identifiers to search within filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Filters - additionalProperties: true - type: object + description: Additional filters to apply to the search max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' title: Max Num Results + description: Maximum number of search results to return (1-50) default: 10 - type: integer - maximum: 50.0 - minimum: 1.0 ranking_options: - $ref: '#/components/schemas/SearchRankingOptions' + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Options for ranking and scoring search results type: object required: - vector_store_ids title: OpenAIResponseInputToolFileSearch - description: File search tool configuration for OpenAI response inputs. + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" OpenAIResponseInputToolFunction: properties: type: type: string const: function title: Type + description: Tool type identifier, always "function" default: function name: type: string title: Name + description: Name of the function that can be called description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Description of what the function does parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Parameters - additionalProperties: true - type: object + description: JSON schema defining the function's parameters strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean + description: Whether to enforce strict parameter validation type: object required: - name - - parameters title: OpenAIResponseInputToolFunction - description: Function tool configuration for OpenAI response inputs. + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" OpenAIResponseInputToolMCP: properties: type: type: string const: mcp title: Type + description: Tool type identifier, always "mcp" default: mcp server_label: type: string title: Server Label + description: Label to identify this MCP server server_url: type: string title: Server Url + description: URL endpoint of the MCP server headers: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Headers - additionalProperties: true - type: object + description: HTTP headers to include when connecting to the server require_approval: anyOf: - type: string @@ -10522,6 +7293,7 @@ components: const: never - $ref: '#/components/schemas/ApprovalFilter' title: Require Approval + description: Approval requirement for tool calls ("always", "never", or filter) default: never allowed_tools: anyOf: @@ -10529,13 +7301,15 @@ components: type: string type: array - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' title: Allowed Tools + description: Restriction on which tools can be used from this server type: object required: - server_label - server_url title: OpenAIResponseInputToolMCP - description: Model Context Protocol (MCP) tool configuration for OpenAI response inputs. + description: "Model Context Protocol (MCP) tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param server_url: URL endpoint of the MCP server\n:param headers: (Optional) HTTP headers to include when connecting to the server\n:param require_approval: Approval requirement for tool calls (\"always\", \"never\", or filter)\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" OpenAIResponseInputToolWebSearch: properties: type: @@ -10547,15 +7321,19 @@ components: - type: string const: web_search_preview_2025_03_11 title: Type + description: Web search tool type variant to use default: web_search search_context_size: + anyOf: + - type: string + pattern: ^low|medium|high$ + - type: 'null' title: Search Context Size + description: Size of search context, must be "low", "medium", or "high" default: medium - type: string - pattern: ^low|medium|high$ type: object title: OpenAIResponseInputToolWebSearch - description: Web search tool configuration for OpenAI response inputs. + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" OpenAIResponseMCPApprovalRequest: properties: arguments: @@ -10597,11 +7375,15 @@ components: title: Type default: mcp_approval_response id: + anyOf: + - type: string + - type: 'null' title: Id - type: string reason: + anyOf: + - type: string + - type: 'null' title: Reason - type: string type: object required: - approval_request_id @@ -10653,11 +7435,15 @@ components: title: Type default: message id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - content @@ -10709,11 +7495,15 @@ components: title: Type default: message id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - content @@ -10725,18 +7515,25 @@ components: created_at: type: integer title: Created At + description: Unix timestamp when the response was created error: - $ref: '#/components/schemas/OpenAIResponseError' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed id: type: string title: Id + description: Unique identifier for this response model: type: string title: Model + description: Model identifier used for generation object: type: string const: response title: Object + description: Object type identifier, always "response" default: response output: items: @@ -10760,55 +7557,80 @@ components: web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' type: array title: Output + description: List of generated output items (messages, tool calls, etc.) parallel_tool_calls: type: boolean title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel default: false previous_response_id: + anyOf: + - type: string + - type: 'null' title: Previous Response Id - type: string + description: ID of the previous response in a conversation prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. status: type: string title: Status + description: Current status of the response generation temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number + description: Sampling temperature used for generation text: $ref: '#/components/schemas/OpenAIResponseText' - default: - format: - type: text + description: Text formatting configuration for the response top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number + description: Nucleus sampling parameter used for generation tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' title: Tools - items: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseToolMCP' - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseToolMCP' - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' - type: array + description: An array of tools the model may call while generating a response. truncation: + anyOf: + - type: string + - type: 'null' title: Truncation - type: string + description: Truncation strategy applied to the response usage: - $ref: '#/components/schemas/OpenAIResponseUsage' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response instructions: + anyOf: + - type: string + - type: 'null' title: Instructions - type: string + description: System message inserted into the model's context type: object required: - created_at @@ -10817,7 +7639,165 @@ components: - output - status title: OpenAIResponseObject - description: Complete OpenAI response object containing generation results and metadata. + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + OpenAIResponseObjectWithInput-Output: + properties: + created_at: + type: integer + title: Created At + description: Unix timestamp when the response was created + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed + id: + type: string + title: Id + description: Unique identifier for this response + model: + type: string + title: Model + description: Model identifier used for generation + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + output: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + title: Output + description: List of generated output items (messages, tool calls, etc.) + parallel_tool_calls: + type: boolean + title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel + default: false + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: ID of the previous response in a conversation + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. + status: + type: string + title: Status + description: Current status of the response generation + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature used for generation + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + description: Nucleus sampling parameter used for generation + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: An array of tools the model may call while generating a response. + truncation: + anyOf: + - type: string + - type: 'null' + title: Truncation + description: Truncation strategy applied to the response + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System message inserted into the model's context + input: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Input + description: List of input items that led to this response + type: object + required: + - created_at + - id + - model + - output + - status + - input + title: OpenAIResponseObjectWithInput + description: "OpenAI response object extended with input context information.\n\n:param input: List of input items that led to this response" OpenAIResponseOutputMessageContentOutputText: properties: text: @@ -10853,49 +7833,61 @@ components: id: type: string title: Id + description: Unique identifier for this tool call queries: items: type: string type: array title: Queries + description: List of search queries executed status: type: string title: Status + description: Current status of the file search operation type: type: string const: file_search_call title: Type + description: Tool call type identifier, always "file_search_call" default: file_search_call results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' title: Results - items: - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' - type: array + description: Search results returned by the file search operation type: object required: - id - queries - status title: OpenAIResponseOutputMessageFileSearchToolCall - description: File search tool call output message for OpenAI responses. + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" OpenAIResponseOutputMessageFileSearchToolCallResults: properties: attributes: additionalProperties: true type: object title: Attributes + description: Key-value attributes associated with the file file_id: type: string title: File Id + description: Unique identifier of the file containing the result filename: type: string title: Filename + description: Name of the file containing the result score: type: number title: Score + description: Relevance score for this search result (between 0 and 1) text: type: string title: Text + description: Text content of the search result type: object required: - attributes @@ -10904,61 +7896,82 @@ components: - score - text title: OpenAIResponseOutputMessageFileSearchToolCallResults - description: Search results returned by the file search operation. + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" OpenAIResponseOutputMessageFunctionToolCall: properties: call_id: type: string title: Call Id + description: Unique identifier for the function call name: type: string title: Name + description: Name of the function being called arguments: type: string title: Arguments + description: JSON string containing the function arguments type: type: string const: function_call title: Type + description: Tool call type identifier, always "function_call" default: function_call id: + anyOf: + - type: string + - type: 'null' title: Id - type: string + description: Additional identifier for the tool call status: + anyOf: + - type: string + - type: 'null' title: Status - type: string + description: Current status of the function call execution type: object required: - call_id - name - arguments title: OpenAIResponseOutputMessageFunctionToolCall - description: Function tool call output message for OpenAI responses. + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" OpenAIResponseOutputMessageMCPCall: properties: id: type: string title: Id + description: Unique identifier for this MCP call type: type: string const: mcp_call title: Type + description: Tool call type identifier, always "mcp_call" default: mcp_call arguments: type: string title: Arguments + description: JSON string containing the MCP call arguments name: type: string title: Name + description: Name of the MCP method being called server_label: type: string title: Server Label + description: Label identifying the MCP server handling the call error: + anyOf: + - type: string + - type: 'null' title: Error - type: string + description: Error message if the MCP call failed output: + anyOf: + - type: string + - type: 'null' title: Output - type: string + description: Output result from the successful MCP call type: object required: - id @@ -10966,85 +7979,102 @@ components: - name - server_label title: OpenAIResponseOutputMessageMCPCall - description: Model Context Protocol (MCP) call output message for OpenAI responses. + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" OpenAIResponseOutputMessageMCPListTools: properties: id: type: string title: Id + description: Unique identifier for this MCP list tools operation type: type: string const: mcp_list_tools title: Type + description: Tool call type identifier, always "mcp_list_tools" default: mcp_list_tools server_label: type: string title: Server Label + description: Label identifying the MCP server providing the tools tools: items: $ref: '#/components/schemas/MCPListToolsTool' type: array title: Tools + description: List of available tools provided by the MCP server type: object required: - id - server_label - tools title: OpenAIResponseOutputMessageMCPListTools - description: MCP list tools output message containing available tools from an MCP server. + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" OpenAIResponseOutputMessageWebSearchToolCall: properties: id: type: string title: Id + description: Unique identifier for this tool call status: type: string title: Status + description: Current status of the web search operation type: type: string const: web_search_call title: Type + description: Tool call type identifier, always "web_search_call" default: web_search_call type: object required: - id - status title: OpenAIResponseOutputMessageWebSearchToolCall - description: Web search tool call output message for OpenAI responses. + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" OpenAIResponsePrompt: properties: id: type: string title: Id + description: Unique identifier of the prompt template variables: + anyOf: + - additionalProperties: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + discriminator: + propertyName: type + mapping: + input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' + input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' + input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' + type: object + - type: 'null' title: Variables - additionalProperties: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' - discriminator: - propertyName: type - mapping: - input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' - input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' - input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' - type: object + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. version: + anyOf: + - type: string + - type: 'null' title: Version - type: string + description: Version number of the prompt to use (defaults to latest if not specified) type: object required: - id title: OpenAIResponsePrompt - description: OpenAI compatible Prompt object that is used in OpenAI responses. + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" OpenAIResponseText: properties: format: - $ref: '#/components/schemas/OpenAIResponseTextFormat' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + description: Text format configuration specifying output format requirements type: object title: OpenAIResponseText - description: Text response configuration for OpenAI responses. + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" OpenAIResponseTextFormat: properties: type: @@ -11057,81 +8087,108 @@ components: const: json_object title: Type name: + anyOf: + - type: string + - type: 'null' title: Name - type: string schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Schema - additionalProperties: true - type: object description: + anyOf: + - type: string + - type: 'null' title: Description - type: string strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean type: object title: OpenAIResponseTextFormat - description: Configuration for Responses API text format. + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." OpenAIResponseToolMCP: properties: type: type: string const: mcp title: Type + description: Tool type identifier, always "mcp" default: mcp server_label: type: string title: Server Label + description: Label to identify this MCP server allowed_tools: anyOf: - items: type: string type: array - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' title: Allowed Tools + description: Restriction on which tools can be used from this server type: object required: - server_label title: OpenAIResponseToolMCP - description: Model Context Protocol (MCP) tool configuration for OpenAI response object. + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" OpenAIResponseUsage: properties: input_tokens: type: integer title: Input Tokens + description: Number of tokens in the input output_tokens: type: integer title: Output Tokens + description: Number of tokens in the output total_tokens: type: integer title: Total Tokens + description: Total tokens used (input + output) input_tokens_details: - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + description: Detailed breakdown of input token usage output_tokens_details: - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + description: Detailed breakdown of output token usage type: object required: - input_tokens - output_tokens - total_tokens title: OpenAIResponseUsage - description: Usage information for OpenAI response. + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" OpenAIResponseUsageInputTokensDetails: properties: cached_tokens: + anyOf: + - type: integer + - type: 'null' title: Cached Tokens - type: integer + description: Number of tokens retrieved from cache type: object title: OpenAIResponseUsageInputTokensDetails - description: Token details for input tokens in OpenAI response usage. + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" OpenAIResponseUsageOutputTokensDetails: properties: reasoning_tokens: + anyOf: + - type: integer + - type: 'null' title: Reasoning Tokens - type: integer + description: Number of tokens used for reasoning (o1/o3 models) type: object title: OpenAIResponseUsageOutputTokensDetails - description: Token details for output tokens in OpenAI response usage. + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" OpenAISystemMessageParam: properties: role: @@ -11147,8 +8204,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -11160,10 +8219,12 @@ components: type: string title: Token bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' title: Bytes - items: - type: integer - type: array logprob: type: number title: Logprob @@ -11178,7 +8239,7 @@ components: - logprob - top_logprobs title: OpenAITokenLogProb - description: The log probability for a token from an OpenAI-compatible chat completion response. + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" OpenAIToolMessageParam: properties: role: @@ -11208,10 +8269,12 @@ components: type: string title: Token bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' title: Bytes - items: - type: integer - type: array logprob: type: number title: Logprob @@ -11220,7 +8283,7 @@ components: - token - logprob title: OpenAITopLogProb - description: The top log probability for a token from an OpenAI-compatible chat completion response. + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" OpenAIUserMessageParam-Input: properties: role: @@ -11245,8 +8308,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -11276,8 +8341,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -11303,28 +8370,30 @@ components: Prompt: properties: prompt: + anyOf: + - type: string + - type: 'null' title: Prompt - description: The system prompt with variable placeholders - type: string + description: The system prompt text with variable placeholders. Variables are only supported when using the Responses API. version: type: integer minimum: 1.0 title: Version - description: Version (integer starting at 1, incremented on save) + description: Version (integer starting at 1, incremented on save). prompt_id: type: string title: Prompt Id - description: Unique identifier in format 'pmpt_<48-digit-hash>' + description: Unique identifier formatted as 'pmpt_<48-digit-hash>'. variables: items: type: string type: array title: Variables - description: List of variable names that can be used in the prompt template + description: List of prompt variable names that can be used in the prompt template. is_default: type: boolean title: Is Default - description: Boolean indicating whether this version is the default version + description: Boolean indicating whether this version is the default version for this prompt. default: false type: object required: @@ -11337,20 +8406,25 @@ components: api: type: string title: Api + description: The API name this provider implements provider_id: type: string title: Provider Id + description: Unique identifier for the provider provider_type: type: string title: Provider Type + description: The type of provider implementation config: additionalProperties: true type: object title: Config + description: Configuration parameters for the provider health: additionalProperties: true type: object title: Health + description: Current health status of the provider type: object required: - api @@ -11360,6 +8434,48 @@ components: - health title: ProviderInfo description: Information about a registered provider including its configuration and health status. + QueryChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to query. + query: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Query + description: The query to search for. + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the query. + type: object + required: + - vector_store_id + - query + title: QueryChunksRequest + description: Request to query chunks from a vector database. QueryChunksResponse: properties: chunks: @@ -11378,6 +8494,49 @@ components: - scores title: QueryChunksResponse description: Response from querying chunks in a vector database. + RAGDocument: + properties: + document_id: + type: string + title: Document Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + title: Content + mime_type: + anyOf: + - type: string + - type: 'null' + title: Mime Type + metadata: + additionalProperties: true + type: object + title: Metadata + type: object + required: + - document_id + - content + title: RAGDocument + description: "A document to be used for document ingestion in the RAG Tool.\n\n:param document_id: The unique identifier for the document.\n:param content: The content of the document.\n:param mime_type: The MIME type of the document.\n:param metadata: Additional metadata for the document." RAGQueryConfig: properties: query_generator_config: @@ -11406,21 +8565,25 @@ components: title: Chunk Template default: "Result {index}\nContent: {chunk.content}\nMetadata: {metadata}\n" mode: + anyOf: + - $ref: '#/components/schemas/RAGSearchMode' + - type: 'null' default: vector - $ref: '#/components/schemas/RAGSearchMode' ranker: + anyOf: + - oneOf: + - $ref: '#/components/schemas/RRFRanker' + - $ref: '#/components/schemas/WeightedRanker' + discriminator: + propertyName: type + mapping: + rrf: '#/components/schemas/RRFRanker' + weighted: '#/components/schemas/WeightedRanker' + - type: 'null' title: Ranker - oneOf: - - $ref: '#/components/schemas/RRFRanker' - - $ref: '#/components/schemas/WeightedRanker' - discriminator: - propertyName: type - mapping: - rrf: '#/components/schemas/RRFRanker' - weighted: '#/components/schemas/WeightedRanker' type: object title: RAGQueryConfig - description: Configuration for the RAG query generation. + description: "Configuration for the RAG query generation.\n\n:param query_generator_config: Configuration for the query generator.\n:param max_tokens_in_context: Maximum number of tokens in the context.\n:param max_chunks: Maximum number of chunks to retrieve.\n:param chunk_template: Template for formatting each retrieved chunk in the context.\n Available placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk content string), {metadata} (chunk metadata dict).\n Default: \"Result {index}\\nContent: {chunk.content}\\nMetadata: {metadata}\\n\"\n:param mode: Search mode for retrieval—either \"vector\", \"keyword\", or \"hybrid\". Default \"vector\".\n:param ranker: Configuration for the ranker to use in hybrid search. Defaults to RRF ranker." RAGQueryResult: properties: content: @@ -11444,6 +8607,7 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Content metadata: additionalProperties: true @@ -11451,7 +8615,7 @@ components: title: Metadata type: object title: RAGQueryResult - description: Result of a RAG query containing retrieved content and metadata. + description: "Result of a RAG query containing retrieved content and metadata.\n\n:param content: (Optional) The retrieved content from the query\n:param metadata: Additional metadata about the query result" RAGSearchMode: type: string enum: @@ -11474,7 +8638,7 @@ components: minimum: 0.0 type: object title: RRFRanker - description: Reciprocal Rank Fusion (RRF) ranker configuration. + description: "Reciprocal Rank Fusion (RRF) ranker configuration.\n\n:param type: The type of ranker, always \"rrf\"\n:param impact_factor: The impact factor for RRF scoring. Higher values give more weight to higher-ranked results.\n Must be greater than 0" RegexParserScoringFnParams: properties: type: @@ -11497,19 +8661,197 @@ components: type: object title: RegexParserScoringFnParams description: Parameters for regex parser scoring function configuration. + RegisterModelRequest: + properties: + model_id: + type: string + title: Model Id + description: The identifier of the model to register. + provider_model_id: + anyOf: + - type: string + - type: 'null' + title: Provider Model Id + description: The identifier of the model in the provider. + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider. + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: Any additional metadata for this model. + model_type: + anyOf: + - $ref: '#/components/schemas/ModelType' + - type: 'null' + description: The type of model to register. + type: object + required: + - model_id + title: RegisterModelRequest + description: Request model for registering a new model. + RegisterScoringFunctionRequest: + properties: + scoring_fn_id: + type: string + title: Scoring Fn Id + description: The ID of the scoring function to register + description: + type: string + title: Description + description: The description of the scoring function + return_type: + oneOf: + - $ref: '#/components/schemas/StringType' + - $ref: '#/components/schemas/NumberType' + - $ref: '#/components/schemas/BooleanType' + - $ref: '#/components/schemas/ArrayType' + - $ref: '#/components/schemas/ObjectType' + - $ref: '#/components/schemas/JsonType' + - $ref: '#/components/schemas/UnionType' + - $ref: '#/components/schemas/ChatCompletionInputType' + - $ref: '#/components/schemas/CompletionInputType' + - $ref: '#/components/schemas/AgentTurnInputType' + title: Return Type + description: The return type of the scoring function + discriminator: + propertyName: type + mapping: + agent_turn_input: '#/components/schemas/AgentTurnInputType' + array: '#/components/schemas/ArrayType' + boolean: '#/components/schemas/BooleanType' + chat_completion_input: '#/components/schemas/ChatCompletionInputType' + completion_input: '#/components/schemas/CompletionInputType' + json: '#/components/schemas/JsonType' + number: '#/components/schemas/NumberType' + object: '#/components/schemas/ObjectType' + string: '#/components/schemas/StringType' + union: '#/components/schemas/UnionType' + provider_scoring_fn_id: + anyOf: + - type: string + - type: 'null' + title: Provider Scoring Fn Id + description: The ID of the provider scoring function to use for the scoring function + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the scoring function + params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + title: Params + description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval + type: object + required: + - scoring_fn_id + - description + - return_type + title: RegisterScoringFunctionRequest + description: Request model for registering a scoring function. + RegisterShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to register + provider_shield_id: + anyOf: + - type: string + - type: 'null' + title: Provider Shield Id + description: The identifier of the shield in the provider + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the shield + type: object + required: + - shield_id + title: RegisterShieldRequest + description: Request model for registering a shield. + RegisterToolGroupRequest: + properties: + toolgroup_id: + type: string + title: Toolgroup Id + description: The ID of the tool group to register + provider_id: + type: string + title: Provider Id + description: The ID of the provider to use for the tool group + mcp_endpoint: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: The MCP endpoint to use for the tool group + args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Args + description: A dictionary of arguments to pass to the tool group + type: object + required: + - toolgroup_id + - provider_id + title: RegisterToolGroupRequest + description: Request model for registering a tool group. + ResponseGuardrailSpec: + properties: + type: + type: string + title: Type + description: The type/identifier of the guardrail. + type: object + required: + - type + title: ResponseGuardrailSpec + description: Specification for a guardrail to apply during response generation. RouteInfo: properties: route: type: string title: Route + description: The API endpoint path method: type: string title: Method + description: HTTP method for the route provider_types: items: type: string type: array title: Provider Types + description: List of provider types that implement this route type: object required: - route @@ -11517,10 +8859,71 @@ components: - provider_types title: RouteInfo description: Information about an API route including its path, method, and implementing providers. + RunModerationRequest: + properties: + input: + anyOf: + - type: string + - items: + type: string + type: array + title: Input + description: Input (or inputs) to classify. Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models. + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: The content moderation model you would like to use. + type: object + required: + - input + title: RunModerationRequest + description: Request model for running moderation. + RunShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to run. + messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Input' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Input' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Input' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Input' + type: array + title: Messages + description: The messages to run the shield on. + params: + additionalProperties: true + type: object + title: Params + description: The parameters of the shield. + type: object + required: + - shield_id + - messages + - params + title: RunShieldRequest + description: Request model for running a shield. RunShieldResponse: properties: violation: - $ref: '#/components/schemas/SafetyViolation' + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: Safety violation detected by the shield, if any. type: object title: RunShieldResponse description: Response from running a safety shield. @@ -11528,33 +8931,108 @@ components: properties: violation_level: $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. user_message: + anyOf: + - type: string + - type: 'null' title: User Message - type: string + description: Message to convey to the user about the violation. metadata: additionalProperties: true type: object title: Metadata + description: Additional metadata including specific violation codes for debugging and telemetry. type: object required: - violation_level title: SafetyViolation description: Details of a safety violation detected by content moderation. + ScoreBatchRequest: + properties: + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + save_results_dataset: + type: boolean + title: Save Results Dataset + description: Whether to save the results to a dataset + default: false + type: object + required: + - dataset_id + - scoring_functions + title: ScoreBatchRequest + description: Request for batch scoring operations. ScoreBatchResponse: properties: dataset_id: + anyOf: + - type: string + - type: 'null' title: Dataset Id - type: string + description: The identifier of the dataset that was scored results: additionalProperties: $ref: '#/components/schemas/ScoringResult' type: object title: Results + description: A map of scoring function name to ScoringResult type: object required: - results title: ScoreBatchResponse description: Response from batch scoring operations on datasets. + ScoreRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + type: object + required: + - input_rows + - scoring_functions + title: ScoreRequest + description: Request for scoring a list of rows. ScoreResponse: properties: results: @@ -11562,21 +9040,24 @@ components: $ref: '#/components/schemas/ScoringResult' type: object title: Results + description: A map of scoring function name to ScoringResult type: object required: - results title: ScoreResponse description: The response from scoring. - ScoringFn-Output: + ScoringFn: properties: identifier: type: string title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11587,8 +9068,10 @@ components: title: Type default: scoring_function description: + anyOf: + - type: string + - type: 'null' title: Description - type: string metadata: additionalProperties: true type: object @@ -11622,18 +9105,20 @@ components: string: '#/components/schemas/StringType' union: '#/components/schemas/UnionType' params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' title: Params description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval - oneOf: - - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' - - $ref: '#/components/schemas/RegexParserScoringFnParams' - - $ref: '#/components/schemas/BasicScoringFnParams' - discriminator: - propertyName: type - mapping: - basic: '#/components/schemas/BasicScoringFnParams' - llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' - regex_parser: '#/components/schemas/RegexParserScoringFnParams' type: object required: - identifier @@ -11649,10 +9134,12 @@ components: type: object type: array title: Score Rows + description: The scoring result for each row. Each row is a map of column name to value aggregated_results: additionalProperties: true type: object title: Aggregated Results + description: Map of metric name to aggregated value type: object required: - score_rows @@ -11662,15 +9149,30 @@ components: SearchRankingOptions: properties: ranker: + anyOf: + - type: string + - type: 'null' title: Ranker - type: string score_threshold: + anyOf: + - type: number + - type: 'null' title: Score Threshold default: 0.0 - type: number type: object title: SearchRankingOptions description: Options for ranking and filtering search results. + SetDefaultVersionRequest: + properties: + version: + type: integer + title: Version + description: The version to set as default. + type: object + required: + - version + title: SetDefaultVersionRequest + description: Request model for setting a prompt version as default. Shield: properties: identifier: @@ -11678,9 +9180,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11689,11 +9193,15 @@ components: type: string const: shield title: Type + description: The resource type, always shield default: shield params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Params - additionalProperties: true - type: object + description: Configuration parameters for the shield type: object required: - identifier @@ -11709,7 +9217,7 @@ components: default: string type: object title: StringType - description: Parameter type for string values. + description: "Parameter type for string values.\n\n:param type: Discriminator type. Always \"string\"" TextContentItem: properties: type: @@ -11724,30 +9232,46 @@ components: required: - text title: TextContentItem - description: A text content item + description: A text content item. ToolDef: properties: toolgroup_id: + anyOf: + - type: string + - type: 'null' title: Toolgroup Id - type: string + description: ID of the tool group this tool belongs to name: type: string title: Name + description: Name of the tool description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Human-readable description of what the tool does input_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Input Schema - additionalProperties: true - type: object + description: JSON Schema for tool inputs (MCP inputSchema) output_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Output Schema - additionalProperties: true - type: object + description: JSON Schema for tool outputs (MCP outputSchema) metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object + description: Additional metadata about the tool type: object required: - name @@ -11760,9 +9284,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11771,13 +9297,20 @@ components: type: string const: tool_group title: Type + description: Type of resource, always 'tool_group' default: tool_group mcp_endpoint: - $ref: '#/components/schemas/URL' + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: Model Context Protocol endpoint for remote tools args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Args - additionalProperties: true - type: object + description: Additional arguments for the tool group type: object required: - identifier @@ -11807,17 +9340,28 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Content + description: The output content from the tool execution error_message: + anyOf: + - type: string + - type: 'null' title: Error Message - type: string + description: Error message if the tool execution failed error_code: + anyOf: + - type: integer + - type: 'null' title: Error Code - type: integer + description: Numeric error code if the tool execution failed metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object + description: Additional metadata about the tool execution type: object title: ToolInvocationResult description: Result of a tool invocation. @@ -11840,7 +9384,36 @@ components: default: union type: object title: UnionType - description: Parameter type for union values. + description: "Parameter type for union values.\n\n:param type: Discriminator type. Always \"union\"" + UpdatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The updated prompt text content. + version: + type: integer + title: Version + description: The current version of the prompt being updated. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: Updated list of variable names that can be used in the prompt template. + set_as_default: + type: boolean + title: Set As Default + description: Set the new version as the default (default=True). + default: true + type: object + required: + - prompt + - version + title: UpdatePromptRequest + description: Request model for updating an existing prompt. VectorStoreChunkingStrategyAuto: properties: type: @@ -11895,6 +9468,24 @@ components: - text title: VectorStoreContent description: Content item from a vector store file or search result. + VectorStoreDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreDeleteResponse + description: Response from deleting a vector store. VectorStoreFileBatchObject: properties: id: @@ -11932,6 +9523,31 @@ components: - file_counts title: VectorStoreFileBatchObject description: OpenAI Vector Store File Batch object. + VectorStoreFileContentsResponse: + properties: + file_id: + type: string + title: File Id + filename: + type: string + title: Filename + attributes: + additionalProperties: true + type: object + title: Attributes + content: + items: + $ref: '#/components/schemas/VectorStoreContent' + type: array + title: Content + type: object + required: + - file_id + - filename + - attributes + - content + title: VectorStoreFileContentsResponse + description: Response from retrieving the contents of a vector store file. VectorStoreFileCounts: properties: completed: @@ -11958,6 +9574,24 @@ components: - total title: VectorStoreFileCounts description: File processing status counts for a vector store. + VectorStoreFileDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.file.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreFileDeleteResponse + description: Response from deleting a vector store file. VectorStoreFileLastError: properties: code: @@ -12003,7 +9637,9 @@ components: type: integer title: Created At last_error: - $ref: '#/components/schemas/VectorStoreFileLastError' + anyOf: + - $ref: '#/components/schemas/VectorStoreFileLastError' + - type: 'null' status: anyOf: - type: string @@ -12031,6 +9667,118 @@ components: - vector_store_id title: VectorStoreFileObject description: OpenAI Vector Store File object. + VectorStoreFilesListInBatchResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreFilesListInBatchResponse + description: Response from listing files in a vector store file batch. + VectorStoreListFilesResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListFilesResponse + description: Response from listing files in a vector store. + VectorStoreListResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListResponse + description: Response from listing vector stores. + VectorStoreModifyRequest: + properties: + name: + anyOf: + - type: string + - type: 'null' + title: Name + expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Expires After + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + type: object + title: VectorStoreModifyRequest + description: Request to modify a vector store. VectorStoreObject: properties: id: @@ -12044,8 +9792,10 @@ components: type: integer title: Created At name: + anyOf: + - type: string + - type: 'null' title: Name - type: string usage_bytes: type: integer title: Usage Bytes @@ -12057,15 +9807,21 @@ components: title: Status default: completed expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Expires After - additionalProperties: true - type: object expires_at: + anyOf: + - type: integer + - type: 'null' title: Expires At - type: integer last_active_at: + anyOf: + - type: integer + - type: 'null' title: Last Active At - type: integer metadata: additionalProperties: true type: object @@ -12089,13 +9845,15 @@ components: type: number title: Score attributes: + anyOf: + - additionalProperties: + anyOf: + - type: string + - type: number + - type: boolean + type: object + - type: 'null' title: Attributes - additionalProperties: - anyOf: - - type: string - - type: number - - type: boolean - type: object content: items: $ref: '#/components/schemas/VectorStoreContent' @@ -12128,8 +9886,10 @@ components: title: Has More default: false next_page: + anyOf: + - type: string + - type: 'null' title: Next Page - type: string type: object required: - search_query @@ -12141,6 +9901,7 @@ components: version: type: string title: Version + description: Version number of the service type: object required: - version @@ -12153,7 +9914,7 @@ components: - warn - error title: ViolationLevel - description: Severity level of a safety violation. + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" WeightedRanker: properties: type: @@ -12170,1557 +9931,19 @@ components: default: 0.5 type: object title: WeightedRanker - description: Weighted ranker configuration that combines vector and keyword scores. + description: "Weighted ranker configuration that combines vector and keyword scores.\n\n:param type: The type of ranker, always \"weighted\"\n:param alpha: Weight factor between 0 and 1.\n 0 means only use keyword scores,\n 1 means only use vector scores,\n values in between blend both scores." _URLOrData: properties: url: - $ref: '#/components/schemas/URL' + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' data: + anyOf: + - type: string + - type: 'null' contentEncoding: base64 title: Data - type: string type: object title: _URLOrData - description: A URL or a base64 encoded string - _batches_Request: - properties: - input_file_id: - type: string - title: Input File Id - endpoint: - type: string - title: Endpoint - completion_window: - type: string - title: Completion Window - metadata: - type: string - title: Metadata - idempotency_key: - type: string - title: Idempotency Key - type: object - required: - - input_file_id - - endpoint - - completion_window - - metadata - - idempotency_key - title: _batches_Request - _batches_batch_id_cancel_Request: - properties: - batch_id: - type: string - title: Batch Id - type: object - required: - - batch_id - title: _batches_batch_id_cancel_Request - _conversations_Request: - properties: - items: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage-Input' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - title: Items - discriminator: - propertyName: type - mapping: - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - message: '#/components/schemas/OpenAIResponseMessage-Input' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - metadata: - type: string - title: Metadata - type: object - required: - - items - - metadata - title: _conversations_Request - _conversations_conversation_id_Request: - properties: - conversation_id: - type: string - title: Conversation Id - metadata: - type: string - title: Metadata - type: object - required: - - conversation_id - - metadata - title: _conversations_conversation_id_Request - _conversations_conversation_id_items_Request: - properties: - conversation_id: - type: string - title: Conversation Id - items: - anyOf: - - $ref: '#/components/schemas/OpenAIResponseMessage-Input' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - title: Items - type: object - required: - - conversation_id - - items - title: _conversations_conversation_id_items_Request - _models_Request: - properties: - model_id: - type: string - title: Model Id - provider_model_id: - type: string - title: Provider Model Id - provider_id: - type: string - title: Provider Id - metadata: - type: string - title: Metadata - model_type: - $ref: '#/components/schemas/ModelType' - type: object - required: - - model_id - - provider_model_id - - provider_id - - metadata - - model_type - title: _models_Request - _moderations_Request: - properties: - input: - type: string - title: Input - model: - type: string - title: Model - type: object - required: - - input - - model - title: _moderations_Request - _prompts_Request: - properties: - prompt: - type: string - title: Prompt - variables: - type: string - title: Variables - type: object - required: - - prompt - - variables - title: _prompts_Request - _prompts_prompt_id_Request: - properties: - prompt_id: - type: string - title: Prompt Id - prompt: - type: string - title: Prompt - version: - type: integer - title: Version - variables: - type: string - title: Variables - set_as_default: - type: boolean - title: Set As Default - default: true - type: object - required: - - prompt_id - - prompt - - version - - variables - title: _prompts_prompt_id_Request - _prompts_prompt_id_set_default_version_Request: - properties: - prompt_id: - type: string - title: Prompt Id - version: - type: integer - title: Version - type: object - required: - - prompt_id - - version - title: _prompts_prompt_id_set_default_version_Request - _responses_Request: - properties: - input: - type: string - title: Input - model: - type: string - title: Model - prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' - instructions: - type: string - title: Instructions - previous_response_id: - type: string - title: Previous Response Id - conversation: - type: string - title: Conversation - store: - type: boolean - title: Store - default: true - stream: - type: boolean - title: Stream - default: false - temperature: - type: number - title: Temperature - text: - $ref: '#/components/schemas/OpenAIResponseText' - tools: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' - title: Tools - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseInputToolMCP' - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' - include: - type: string - title: Include - max_infer_iters: - type: integer - title: Max Infer Iters - default: 10 - type: object - required: - - input - - model - - prompt - - instructions - - previous_response_id - - conversation - - temperature - - text - - tools - - include - title: _responses_Request - _scoring_score_Request: - properties: - input_rows: - type: string - title: Input Rows - scoring_functions: - type: string - title: Scoring Functions - type: object - required: - - input_rows - - scoring_functions - title: _scoring_score_Request - _scoring_score_batch_Request: - properties: - dataset_id: - type: string - title: Dataset Id - scoring_functions: - type: string - title: Scoring Functions - save_results_dataset: - type: boolean - title: Save Results Dataset - default: false - type: object - required: - - dataset_id - - scoring_functions - title: _scoring_score_batch_Request - _shields_Request: - properties: - shield_id: - type: string - title: Shield Id - provider_shield_id: - type: string - title: Provider Shield Id - provider_id: - type: string - title: Provider Id - params: - type: string - title: Params - type: object - required: - - shield_id - - provider_shield_id - - provider_id - - params - title: _shields_Request - _tool_runtime_invoke_Request: - properties: - tool_name: - type: string - title: Tool Name - kwargs: - type: string - title: Kwargs - type: object - required: - - tool_name - - kwargs - title: _tool_runtime_invoke_Request - _tool_runtime_rag_tool_query_Request: - properties: - content: - type: string - title: Content - vector_store_ids: - type: string - title: Vector Store Ids - query_config: - $ref: '#/components/schemas/RAGQueryConfig' - type: object - required: - - content - - vector_store_ids - - query_config - title: _tool_runtime_rag_tool_query_Request - _vector_io_query_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - query: - type: string - title: Query - params: - type: string - title: Params - type: object - required: - - vector_store_id - - query - - params - title: _vector_io_query_Request - _vector_stores_vector_store_id_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - name: - type: string - title: Name - expires_after: - type: string - title: Expires After - metadata: - type: string - title: Metadata - type: object - required: - - vector_store_id - - name - - expires_after - - metadata - title: _vector_stores_vector_store_id_Request - _vector_stores_vector_store_id_file_batches_batch_id_cancel_Request: - properties: - batch_id: - type: string - title: Batch Id - vector_store_id: - type: string - title: Vector Store Id - type: object - required: - - batch_id - - vector_store_id - title: _vector_stores_vector_store_id_file_batches_batch_id_cancel_Request - _vector_stores_vector_store_id_files_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - file_id: - type: string - title: File Id - attributes: - type: string - title: Attributes - chunking_strategy: - anyOf: - - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' - - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' - title: Chunking Strategy - type: object - required: - - vector_store_id - - file_id - - attributes - - chunking_strategy - title: _vector_stores_vector_store_id_files_Request - _vector_stores_vector_store_id_files_file_id_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - file_id: - type: string - title: File Id - attributes: - type: string - title: Attributes - type: object - required: - - vector_store_id - - file_id - - attributes - title: _vector_stores_vector_store_id_files_file_id_Request - _vector_stores_vector_store_id_search_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - query: - type: string - title: Query - filters: - type: string - title: Filters - max_num_results: - type: integer - title: Max Num Results - default: 10 - ranking_options: - $ref: '#/components/schemas/SearchRankingOptions' - rewrite_query: - type: boolean - title: Rewrite Query - default: false - search_mode: - type: string - title: Search Mode - default: vector - type: object - required: - - vector_store_id - - query - - filters - - ranking_options - title: _vector_stores_vector_store_id_search_Request - Error: - description: Error response from the API. Roughly follows RFC 7807. - properties: - status: - title: Status - type: integer - title: - title: Title - type: string - detail: - title: Detail - type: string - instance: - title: Instance - type: string - nullable: true - required: - - status - - title - - detail - title: Error - type: object - ListOpenAIResponseInputItem: - description: List container for OpenAI response input items. - properties: - data: - items: - anyOf: - - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseMessage' - title: Data - type: array - object: - const: list - default: list - title: Object - type: string - required: - - data - title: ListOpenAIResponseInputItem - type: object - ListOpenAIResponseObject: - description: Paginated list of OpenAI response objects with navigation metadata. - properties: - data: - items: - $ref: '#/components/schemas/OpenAIResponseObjectWithInput' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIResponseObject - type: object - OpenAIDeleteResponseObject: - description: Response object confirming deletion of an OpenAI response. - properties: - id: - title: Id - type: string - object: - const: response - default: response - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: OpenAIDeleteResponseObject - type: object - ListBatchesResponse: - description: Response containing a list of batch objects. - properties: - object: - const: list - default: list - title: Object - type: string - data: - description: List of batch objects - items: - $ref: '#/components/schemas/Batch' - title: Data - type: array - first_id: - description: ID of the first batch in the list - title: First Id - type: string - nullable: true - last_id: - description: ID of the last batch in the list - title: Last Id - type: string - nullable: true - has_more: - default: false - description: Whether there are more batches available - title: Has More - type: boolean - required: - - data - title: ListBatchesResponse - type: object - ConversationDeletedResource: - description: Response for deleted conversation. - properties: - id: - description: The deleted conversation identifier - title: Id - type: string - object: - default: conversation.deleted - description: Object type - title: Object - type: string - deleted: - default: true - description: Whether the object was deleted - title: Deleted - type: boolean - required: - - id - title: ConversationDeletedResource - type: object - ConversationItemDeletedResource: - description: Response for deleted conversation item. - properties: - id: - description: The deleted item identifier - title: Id - type: string - object: - default: conversation.item.deleted - description: Object type - title: Object - type: string - deleted: - default: true - description: Whether the object was deleted - title: Deleted - type: boolean - required: - - id - title: ConversationItemDeletedResource - type: object - ListOpenAIFileResponse: - description: Response for listing files in OpenAI Files API. - properties: - data: - items: - $ref: '#/components/schemas/OpenAIFileObject' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIFileResponse - type: object - OpenAIFileDeleteResponse: - description: Response for deleting a file in OpenAI Files API. - properties: - id: - title: Id - type: string - object: - const: file - default: file - title: Object - type: string - deleted: - title: Deleted - type: boolean - required: - - id - - deleted - title: OpenAIFileDeleteResponse - type: object - ListOpenAIChatCompletionResponse: - description: Response from listing OpenAI-compatible chat completions. - properties: - data: - items: - $ref: '#/components/schemas/OpenAICompletionWithInputMessages' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIChatCompletionResponse - type: object - OpenAIAssistantMessageParam: - description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - type: array - title: Content - nullable: true - name: - title: Name - type: string - nullable: true - tool_calls: - title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array - nullable: true - title: OpenAIAssistantMessageParam - type: object - OpenAIChoice: - description: A choice from an OpenAI-compatible chat completion response. - properties: - message: - discriminator: - mapping: - assistant: '#/$defs/OpenAIAssistantMessageParam' - developer: '#/$defs/OpenAIDeveloperMessageParam' - system: '#/$defs/OpenAISystemMessageParam' - tool: '#/$defs/OpenAIToolMessageParam' - user: '#/$defs/OpenAIUserMessageParam' - propertyName: role - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Message - finish_reason: - title: Finish Reason - type: string - index: - title: Index - type: integer - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - nullable: true - required: - - message - - finish_reason - - index - title: OpenAIChoice - type: object - OpenAIChoiceLogprobs: - description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. - properties: - content: - title: Content - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array - nullable: true - refusal: - title: Refusal - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array - nullable: true - title: OpenAIChoiceLogprobs - type: object - OpenAICompletionWithInputMessages: - properties: - id: - title: Id - type: string - choices: - items: - $ref: '#/components/schemas/OpenAIChoice' - title: Choices - type: array - object: - const: chat.completion - default: chat.completion - title: Object - type: string - created: - title: Created - type: integer - model: - title: Model - type: string - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - nullable: true - input_messages: - items: - discriminator: - mapping: - assistant: '#/$defs/OpenAIAssistantMessageParam' - developer: '#/$defs/OpenAIDeveloperMessageParam' - system: '#/$defs/OpenAISystemMessageParam' - tool: '#/$defs/OpenAIToolMessageParam' - user: '#/$defs/OpenAIUserMessageParam' - propertyName: role - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Input Messages - type: array - required: - - id - - choices - - created - - model - - input_messages - title: OpenAICompletionWithInputMessages - type: object - OpenAIUserMessageParam: - description: A message from the user in an OpenAI-compatible chat completion request. - properties: - role: - const: user - default: user - title: Role - type: string - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - file: '#/$defs/OpenAIFile' - image_url: '#/$defs/OpenAIChatCompletionContentPartImageParam' - text: '#/$defs/OpenAIChatCompletionContentPartTextParam' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - - $ref: '#/components/schemas/OpenAIFile' - type: array - title: Content - name: - title: Name - type: string - nullable: true - required: - - content - title: OpenAIUserMessageParam - type: object - ScoringFn: - description: A scoring function resource for evaluating model outputs. - properties: - identifier: - description: Unique identifier for this resource in llama stack - title: Identifier - type: string - provider_resource_id: - description: Unique identifier for this resource in the provider - title: Provider Resource Id - type: string - nullable: true - provider_id: - description: ID of the provider that owns this resource - title: Provider Id - type: string - type: - const: scoring_function - default: scoring_function - title: Type - type: string - description: - title: Description - type: string - nullable: true - metadata: - additionalProperties: true - description: Any additional metadata for this definition - title: Metadata - type: object - return_type: - description: The return type of the deterministic function - discriminator: - mapping: - agent_turn_input: '#/$defs/AgentTurnInputType' - array: '#/$defs/ArrayType' - boolean: '#/$defs/BooleanType' - chat_completion_input: '#/$defs/ChatCompletionInputType' - completion_input: '#/$defs/CompletionInputType' - json: '#/$defs/JsonType' - number: '#/$defs/NumberType' - object: '#/$defs/ObjectType' - string: '#/$defs/StringType' - union: '#/$defs/UnionType' - propertyName: type - oneOf: - - $ref: '#/components/schemas/StringType' - - $ref: '#/components/schemas/NumberType' - - $ref: '#/components/schemas/BooleanType' - - $ref: '#/components/schemas/ArrayType' - - $ref: '#/components/schemas/ObjectType' - - $ref: '#/components/schemas/JsonType' - - $ref: '#/components/schemas/UnionType' - - $ref: '#/components/schemas/ChatCompletionInputType' - - $ref: '#/components/schemas/CompletionInputType' - - $ref: '#/components/schemas/AgentTurnInputType' - title: Return Type - params: - description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval - title: Params - discriminator: - mapping: - basic: '#/$defs/BasicScoringFnParams' - llm_as_judge: '#/$defs/LLMAsJudgeScoringFnParams' - regex_parser: '#/$defs/RegexParserScoringFnParams' - propertyName: type - oneOf: - - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' - - $ref: '#/components/schemas/RegexParserScoringFnParams' - - $ref: '#/components/schemas/BasicScoringFnParams' - nullable: true - required: - - identifier - - provider_id - - return_type - title: ScoringFn - type: object - ListToolDefsResponse: - description: Response containing a list of tool definitions. - properties: - data: - items: - $ref: '#/components/schemas/ToolDef' - title: Data - type: array - required: - - data - title: ListToolDefsResponse - type: object - VectorStoreDeleteResponse: - description: Response from deleting a vector store. - properties: - id: - title: Id - type: string - object: - default: vector_store.deleted - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: VectorStoreDeleteResponse - type: object - VectorStoreFileContentsResponse: - description: Response from retrieving the contents of a vector store file. - properties: - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - attributes: - additionalProperties: true - title: Attributes - type: object - content: - items: - $ref: '#/components/schemas/VectorStoreContent' - title: Content - type: array - required: - - file_id - - filename - - attributes - - content - title: VectorStoreFileContentsResponse - type: object - VectorStoreFileDeleteResponse: - description: Response from deleting a vector store file. - properties: - id: - title: Id - type: string - object: - default: vector_store.file.deleted - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: VectorStoreFileDeleteResponse - type: object - VectorStoreFilesListInBatchResponse: - description: Response from listing files in a vector store file batch. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreFileObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreFilesListInBatchResponse - type: object - VectorStoreListFilesResponse: - description: Response from listing files in a vector store. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreFileObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreListFilesResponse - type: object - VectorStoreListResponse: - description: Response from listing vector stores. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreListResponse - type: object - OpenAIResponseMessage: - description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - properties: - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - input_file: '#/$defs/OpenAIResponseInputMessageContentFile' - input_image: '#/$defs/OpenAIResponseInputMessageContentImage' - input_text: '#/$defs/OpenAIResponseInputMessageContentText' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' - type: array - - items: - discriminator: - mapping: - output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' - refusal: '#/$defs/OpenAIResponseContentPartRefusal' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' - - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' - type: array - title: Content - role: - anyOf: - - const: system - type: string - - const: developer - type: string - - const: user - type: string - - const: assistant - type: string - title: Role - type: - const: message - default: message - title: Type - type: string - id: - title: Id - type: string - nullable: true - status: - title: Status - type: string - nullable: true - required: - - content - - role - title: OpenAIResponseMessage - type: object - OpenAIResponseObjectWithInput: - description: OpenAI response object extended with input context information. - properties: - created_at: - title: Created At - type: integer - error: - $ref: '#/components/schemas/OpenAIResponseError' - nullable: true - id: - title: Id - type: string - model: - title: Model - type: string - object: - const: response - default: response - title: Object - type: string - output: - items: - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - title: Output - type: array - parallel_tool_calls: - default: false - title: Parallel Tool Calls - type: boolean - previous_response_id: - title: Previous Response Id - type: string - nullable: true - prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' - nullable: true - status: - title: Status - type: string - temperature: - title: Temperature - type: number - nullable: true - text: - $ref: '#/components/schemas/OpenAIResponseText' - default: - format: - type: text - top_p: - title: Top P - type: number - nullable: true - tools: - title: Tools - items: - discriminator: - mapping: - file_search: '#/$defs/OpenAIResponseInputToolFileSearch' - function: '#/$defs/OpenAIResponseInputToolFunction' - mcp: '#/$defs/OpenAIResponseToolMCP' - web_search: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseToolMCP' - type: array - nullable: true - truncation: - title: Truncation - type: string - nullable: true - usage: - $ref: '#/components/schemas/OpenAIResponseUsage' - nullable: true - instructions: - title: Instructions - type: string - nullable: true - input: - items: - anyOf: - - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseMessage' - title: Input - type: array - required: - - created_at - - id - - model - - output - - status - - input - title: OpenAIResponseObjectWithInput - type: object - _safety_run_shield_Request: - properties: - shield_id: - title: Shield Id - type: string - messages: - anyOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Messages - params: - title: Params - type: string - required: - - shield_id - - messages - - params - title: _safety_run_shield_Request - type: object - responses: - BadRequest400: - description: The request was invalid or malformed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 400 - title: Bad Request - detail: The request was invalid or malformed - TooManyRequests429: - description: The client has sent too many requests in a given amount of time - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 429 - title: Too Many Requests - detail: You have exceeded the rate limit. Please try again later. - InternalServerError500: - description: The server encountered an unexpected error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 500 - title: Internal Server Error - detail: An unexpected error occurred. Our team has been notified. - DefaultError: - description: An unexpected error occurred - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 0 - title: Error - detail: An unexpected error occurred -security: - - Default: [] -tags: - - name: Agents - description: >- - APIs for creating and interacting with agentic systems. - - - ## Responses API - - - The Responses API provides OpenAI-compatible functionality with enhanced capabilities - for dynamic, stateful interactions. - - - > **✅ STABLE**: This API is production-ready with backward compatibility guarantees. - Recommended for production applications. - - - ### ✅ Supported Tools - - - The Responses API supports the following tool types: - - - - **`web_search`**: Search the web for current information and real-time data - - - **`file_search`**: Search through uploaded files and vector stores - - Supports dynamic `vector_store_ids` per call - - Compatible with OpenAI file search patterns - - **`function`**: Call custom functions with JSON schema validation - - - **`mcp_tool`**: Model Context Protocol integration - - - ### ✅ Supported Fields & Features - - - **Core Capabilities:** - - - **Dynamic Configuration**: Switch models, vector stores, and tools per request - without pre-configuration - - - **Conversation Branching**: Use `previous_response_id` to branch conversations - and explore different paths - - - **Rich Annotations**: Automatic file citations, URL citations, and container - file citations - - - **Status Tracking**: Monitor tool call execution status and handle failures - gracefully - - - ### 🚧 Work in Progress - - - - Full real-time response streaming support - - - `tool_choice` parameter - - - `max_tool_calls` parameter - - - Built-in tools (code interpreter, containers API) - - - Safety & guardrails - - - `reasoning` capabilities - - - `service_tier` - - - `logprobs` - - - `max_output_tokens` - - - `metadata` handling - - - `instructions` - - - `incomplete_details` - - - `background` - x-displayName: Agents - - name: Batches - description: >- - The API is designed to allow use of openai client libraries for seamless integration. - - - This API provides the following extensions: - - idempotent batch creation - - Note: This API is currently under active development and may undergo changes. - x-displayName: >- - The Batches API enables efficient processing of multiple requests in a single - operation, particularly useful for processing large datasets, batch evaluation - workflows, and cost-effective inference at scale. - - name: Conversations - description: >- - Protocol for conversation management operations. - x-displayName: Conversations - - name: Files - description: >- - This API is used to upload documents that can be used with other Llama Stack - APIs. - x-displayName: Files - - name: Inference - description: >- - Llama Stack Inference API for generating completions, chat completions, and - embeddings. - - - This API provides the raw interface to the underlying models. Three kinds of - models are supported: - - - LLM models: these models generate "raw" and "chat" (conversational) completions. - - - Embedding models: these models generate embeddings to be used for semantic - search. - - - Rerank models: these models reorder the documents based on their relevance - to a query. - x-displayName: Inference - - name: Inspect - description: >- - APIs for inspecting the Llama Stack service, including health status, available - API routes with methods and implementing providers. - x-displayName: Inspect - - name: Models - description: '' - - name: Prompts - description: >- - Protocol for prompt management operations. - x-displayName: Prompts - - name: Providers - description: >- - Providers API for inspecting, listing, and modifying providers and their configurations. - x-displayName: Providers - - name: Safety - description: OpenAI-compatible Moderations API. - x-displayName: Safety - - name: Scoring - description: '' - - name: ScoringFunctions - description: '' - - name: Shields - description: '' - - name: ToolGroups - description: '' - - name: ToolRuntime - description: '' - - name: VectorIO - description: '' -x-tagGroups: - - name: Operations - tags: - - Agents - - Batches - - Conversations - - Files - - Inference - - Inspect - - Models - - Prompts - - Providers - - Safety - - Scoring - - ScoringFunctions - - Shields - - ToolGroups - - ToolRuntime - - VectorIO + description: A URL or a base64 encoded string. diff --git a/docs/static/stainless-llama-stack-spec.json b/docs/static/stainless-llama-stack-spec.json deleted file mode 100644 index 07e051f53..000000000 --- a/docs/static/stainless-llama-stack-spec.json +++ /dev/null @@ -1,16303 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Llama Stack API - Stable & Experimental APIs", - "description": "A comprehensive API for building and deploying AI applications\n\n**\ud83d\udd17 COMBINED**: This specification includes both stable production-ready APIs and experimental pre-release APIs. Use stable APIs for production deployments and experimental APIs for testing new features.", - "version": "1.0.0" - }, - "servers": [ - { - "url": "https://api.llamastack.com", - "description": "Production server" - }, - { - "url": "https://staging-api.llamastack.com", - "description": "Staging server" - } - ], - "paths": { - "/v1beta/datasetio/append-rows/{dataset_id}": { - "post": { - "tags": [ - "V1Beta" - ], - "summary": "Append rows to a dataset.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "append_rows_v1beta_datasetio_append_rows__dataset_id__post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: dataset_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1beta/datasetio/iterrows/{dataset_id}": { - "get": { - "tags": [ - "V1Beta" - ], - "summary": "Get a paginated list of rows from a dataset.", - "description": "Query endpoint for proper schema generation.", - "operationId": "iterrows_v1beta_datasetio_iterrows__dataset_id__get", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Dataset Id" - } - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1beta/datasets": { - "get": { - "tags": [ - "V1Beta" - ], - "summary": "List all datasets.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_datasets_v1beta_datasets_get", - "responses": { - "200": { - "description": "A ListDatasetsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListDatasetsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1Beta" - ], - "summary": "Register a new dataset.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "register_dataset_v1beta_datasets_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____datasets_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Dataset.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dataset" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1beta/datasets/{dataset_id}": { - "delete": { - "tags": [ - "V1Beta" - ], - "summary": "Unregister a dataset by its ID.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_dataset_v1beta_datasets__dataset_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: dataset_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Beta" - ], - "summary": "Get a dataset by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_dataset_v1beta_datasets__dataset_id__get", - "parameters": [ - { - "name": "dataset_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Dataset Id" - } - } - ], - "responses": { - "200": { - "description": "A Dataset.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dataset" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "List all agents.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_agents_v1alpha_agents_get", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Create an agent with the given configuration.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_v1alpha_agents_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentConfig" - } - } - } - }, - "responses": { - "200": { - "description": "An AgentCreateResponse with the agent ID.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentCreateResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Delete an agent by its ID and its associated sessions and turns.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_agent_v1alpha_agents__agent_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to delete." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Describe an agent by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agent_v1alpha_agents__agent_id__get", - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "ID of the agent." - } - ], - "responses": { - "200": { - "description": "An Agent of the agent.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Agent" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/session": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Create a new session for an agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_session_v1alpha_agents__agent_id__session_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An AgentSessionCreateResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentSessionCreateResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to create the session for." - } - ] - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Delete an agent session by its ID and its associated turns.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_agents_session_v1alpha_agents__agent_id__session__session_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to delete." - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to delete the session for." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Retrieve an agent session by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_session_v1alpha_agents__agent_id__session__session_id__get", - "parameters": [ - { - "name": "turn_ids", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Turn Ids" - } - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get." - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the session for." - } - ], - "responses": { - "200": { - "description": "A Session.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Session" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Create a new turn for an agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_agent_turn_v1alpha_agents__agent_id__session__session_id__turn_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_session_id_turn_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "If stream=False, returns a Turn object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to create the turn for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to create the turn for." - } - ] - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Retrieve an agent turn by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__get", - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the turn for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get the turn for." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Turn Id" - }, - "description": "The ID of the turn to get." - } - ], - "responses": { - "200": { - "description": "A Turn.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Resume an agent turn with executed tool call responses.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "resume_agent_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__resume_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk objects.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Turn" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the agent to resume." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the session to resume." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the turn to resume." - } - ] - } - }, - "/v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Retrieve an agent step by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_agents_step_v1alpha_agents__agent_id__session__session_id__turn__turn_id__step__step_id__get", - "parameters": [ - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to get the step for." - }, - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - }, - "description": "The ID of the session to get the step for." - }, - { - "name": "turn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Turn Id" - }, - "description": "The ID of the turn to get the step for." - }, - { - "name": "step_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Step Id" - }, - "description": "The ID of the step to get." - } - ], - "responses": { - "200": { - "description": "An AgentStepResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentStepResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/agents/{agent_id}/sessions": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "List all session(s) of a given agent.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_agent_sessions_v1alpha_agents__agent_id__sessions_get", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "start_index", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Start Index" - } - }, - { - "name": "agent_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Agent Id" - }, - "description": "The ID of the agent to list sessions for." - } - ], - "responses": { - "200": { - "description": "A PaginatedResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "List all benchmarks.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_benchmarks_v1alpha_eval_benchmarks_get", - "responses": { - "200": { - "description": "A ListBenchmarksResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListBenchmarksResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Register a benchmark.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "register_benchmark_v1alpha_eval_benchmarks_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Unregister a benchmark.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_benchmark_v1alpha_eval_benchmarks__benchmark_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to unregister." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get a benchmark by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_benchmark_v1alpha_eval_benchmarks__benchmark_id__get", - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to get." - } - ], - "responses": { - "200": { - "description": "A Benchmark.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Benchmark" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/evaluations": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Evaluate a list of rows on a benchmark.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "evaluate_rows_v1alpha_eval_benchmarks__benchmark_id__evaluations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BenchmarkConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "EvaluateResponse object containing generations and scores.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EvaluateResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - } - ] - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/jobs": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Run an evaluation on a benchmark.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_eval_v1alpha_eval_benchmarks__benchmark_id__jobs_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BenchmarkConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The job that was created to run the evaluation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Job" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - } - ] - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}": { - "delete": { - "tags": [ - "V1Alpha" - ], - "summary": "Cancel a job.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "job_cancel_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the job to cancel." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the status of a job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "job_status_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__get", - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - }, - "description": "The ID of the job to get the status of." - } - ], - "responses": { - "200": { - "description": "The status of the evaluation job.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Job" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the result of a job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "job_result_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__result_get", - "parameters": [ - { - "name": "benchmark_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Benchmark Id" - }, - "description": "The ID of the benchmark to run the evaluation on." - }, - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - }, - "description": "The ID of the job to get the result of." - } - ], - "responses": { - "200": { - "description": "The result of the job.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EvaluateResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/inference/rerank": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Rerank a list of documents based on their relevance to a query.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "rerank_v1alpha_inference_rerank_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_inference_rerank_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "RerankResponse with indices sorted by relevance score (descending).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RerankResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1alpha/post-training/job/artifacts": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the artifacts of a training job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_training_job_artifacts_v1alpha_post_training_job_artifacts_get", - "parameters": [ - { - "name": "job_uuid", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Job Uuid" - } - } - ], - "responses": { - "200": { - "description": "A PostTrainingJobArtifactsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJobArtifactsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/post-training/job/cancel": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Cancel a training job.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "cancel_training_job_v1alpha_post_training_job_cancel_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/post-training/job/status": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get the status of a training job.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_training_job_status_v1alpha_post_training_job_status_get", - "parameters": [ - { - "name": "job_uuid", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Job Uuid" - } - } - ], - "responses": { - "200": { - "description": "A PostTrainingJobStatusResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJobStatusResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1alpha/post-training/jobs": { - "get": { - "tags": [ - "V1Alpha" - ], - "summary": "Get all training jobs.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "get_training_jobs_v1alpha_post_training_jobs_get", - "responses": { - "200": { - "description": "A ListPostTrainingJobsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPostTrainingJobsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1alpha/post-training/preference-optimize": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Run preference optimization of a model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "preference_optimize_v1alpha_post_training_preference_optimize_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DPOAlignmentConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A PostTrainingJob.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJob" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1alpha/post-training/supervised-fine-tune": { - "post": { - "tags": [ - "V1Alpha" - ], - "summary": "Run supervised fine-tuning of a model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "supervised_fine_tune_v1alpha_post_training_supervised_fine_tune_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TrainingConfig" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A PostTrainingJob.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostTrainingJob" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/batches": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all batches for the current user.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_batches_v1_batches_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - } - ], - "responses": { - "200": { - "description": "A list of batch objects.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListBatchesResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create a new batch for processing multiple API requests.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_batch_v1_batches_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_batches_Request" - } - } - } - }, - "responses": { - "200": { - "description": "The created batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/batches/{batch_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve information about a specific batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "retrieve_batch_v1_batches__batch_id__get", - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the batch to retrieve." - } - ], - "responses": { - "200": { - "description": "The batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/batches/{batch_id}/cancel": { - "post": { - "tags": [ - "V1" - ], - "summary": "Cancel a batch that is in progress.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "cancel_batch_v1_batches__batch_id__cancel_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_batches_batch_id_cancel_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The updated batch object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Batch" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the batch to cancel." - } - ] - } - }, - "/v1/chat/completions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List chat completions.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_chat_completions_v1_chat_completions_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "model", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Model" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "A ListOpenAIChatCompletionResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIChatCompletionResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create chat completions.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_chat_completion_v1_chat_completions_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIChatCompletionRequestWithExtraBody" - } - } - } - }, - "responses": { - "200": { - "description": "An OpenAIChatCompletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIChatCompletion" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/chat/completions/{completion_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get chat completion.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_chat_completion_v1_chat_completions__completion_id__get", - "parameters": [ - { - "name": "completion_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Completion Id" - }, - "description": "ID of the chat completion." - } - ], - "responses": { - "200": { - "description": "A OpenAICompletionWithInputMessages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletionWithInputMessages" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/completions": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create completion.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_completion_v1_completions_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletionRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An OpenAICompletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICompletion" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/conversations": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create a conversation.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_conversation_v1_conversations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_conversations_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The created conversation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Conversation" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/conversations/{conversation_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a conversation.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_conversation_v1_conversations__conversation_id__delete", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - } - ], - "responses": { - "200": { - "description": "The deleted conversation resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationDeletedResource" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve a conversation.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_conversation_v1_conversations__conversation_id__get", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - } - ], - "responses": { - "200": { - "description": "The conversation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Conversation" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Update a conversation.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "update_conversation_v1_conversations__conversation_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_conversations_conversation_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "The updated conversation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Conversation" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The conversation identifier." - } - ] - } - }, - "/v1/conversations/{conversation_id}/items": { - "get": { - "tags": [ - "V1" - ], - "summary": "List items.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_items_v1_conversations__conversation_id__items_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "include", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/ConversationItemInclude" - } - }, - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Order" - } - }, - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - } - ], - "responses": { - "200": { - "description": "List of conversation items.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationItemList" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create items.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "add_items_v1_conversations__conversation_id__items_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_conversations_conversation_id_items_Request" - } - } - } - }, - "responses": { - "200": { - "description": "List of created items.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationItemList" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The conversation identifier." - } - ] - } - }, - "/v1/conversations/{conversation_id}/items/{item_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete an item.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_conversation_item_v1_conversations__conversation_id__items__item_id__delete", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - }, - { - "name": "item_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Item Id" - }, - "description": "The item identifier." - } - ], - "responses": { - "200": { - "description": "The deleted item resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConversationItemDeletedResource" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve an item.", - "description": "Query endpoint for proper schema generation.", - "operationId": "retrieve_v1_conversations__conversation_id__items__item_id__get", - "parameters": [ - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - }, - "description": "The conversation identifier." - }, - { - "name": "item_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Item Id" - }, - "description": "The item identifier." - } - ], - "responses": { - "200": { - "description": "The conversation item.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/embeddings": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create embeddings.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_embeddings_v1_embeddings_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIEmbeddingsRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "An OpenAIEmbeddingsResponse containing the embeddings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIEmbeddingsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "List files.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_v1_files_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "purpose", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/OpenAIFilePurpose" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10000, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "An ListOpenAIFileResponse containing the list of files.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIFileResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Upload file.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "openai_upload_file_v1_files_post", - "responses": { - "200": { - "description": "An OpenAIFileObject representing the uploaded file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/files/{file_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_file_v1_files__file_id__delete", - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "An OpenAIFileDeleteResponse indicating successful deletion.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_file_v1_files__file_id__get", - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "An OpenAIFileObject containing file information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/files/{file_id}/content": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve file content.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "openai_retrieve_file_content_v1_files__file_id__content_get", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file to use for this request." - } - ], - "responses": { - "200": { - "description": "The raw file content as a binary response.", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/health": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get health status.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "health_v1_health_get", - "responses": { - "200": { - "description": "Health information indicating if the service is operational.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthInfo" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/inspect/routes": { - "get": { - "tags": [ - "V1" - ], - "summary": "List routes.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_routes_v1_inspect_routes_get", - "responses": { - "200": { - "description": "Response containing information about all available routes.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListRoutesResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/models": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all models.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_models_v1_models_get", - "responses": { - "200": { - "description": "A ListModelsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListModelsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register model.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "register_model_v1_models_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_models_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Model.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Model" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/models/{model_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister model.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_model_v1_models__model_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "model_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: model_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get model.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_model_v1_models__model_id__get", - "parameters": [ - { - "name": "model_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Model Id" - } - } - ], - "responses": { - "200": { - "description": "A Model.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Model" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/moderations": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create moderation.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_moderation_v1_moderations_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_moderations_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A moderation object.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModerationObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/prompts": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all prompts.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_prompts_v1_prompts_get", - "responses": { - "200": { - "description": "A ListPromptsResponse containing all prompts.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPromptsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create prompt.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_prompt_v1_prompts_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_prompts_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The created Prompt resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/prompts/{prompt_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete prompt.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "delete_prompt_v1_prompts__prompt_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The identifier of the prompt to delete." - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get prompt.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_prompt_v1_prompts__prompt_id__get", - "parameters": [ - { - "name": "version", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Version" - } - }, - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Prompt Id" - }, - "description": "The identifier of the prompt to get." - } - ], - "responses": { - "200": { - "description": "A Prompt resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Update prompt.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "update_prompt_v1_prompts__prompt_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_prompts_prompt_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "The updated Prompt resource with incremented version.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The identifier of the prompt to update." - } - ] - } - }, - "/v1/prompts/{prompt_id}/set-default-version": { - "post": { - "tags": [ - "V1" - ], - "summary": "Set prompt version.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "set_default_version_v1_prompts__prompt_id__set_default_version_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_prompts_prompt_id_set_default_version_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "The prompt with the specified version now set as default.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Prompt" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The identifier of the prompt." - } - ] - } - }, - "/v1/prompts/{prompt_id}/versions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List prompt versions.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_prompt_versions_v1_prompts__prompt_id__versions_get", - "parameters": [ - { - "name": "prompt_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Prompt Id" - }, - "description": "The identifier of the prompt to list versions for." - } - ], - "responses": { - "200": { - "description": "A ListPromptsResponse containing all versions of the prompt.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPromptsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/providers": { - "get": { - "tags": [ - "V1" - ], - "summary": "List providers.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_providers_v1_providers_get", - "responses": { - "200": { - "description": "A ListProvidersResponse containing information about all providers.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListProvidersResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/providers/{provider_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get provider.", - "description": "Query endpoint for proper schema generation.", - "operationId": "inspect_provider_v1_providers__provider_id__get", - "parameters": [ - { - "name": "provider_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Provider Id" - }, - "description": "The ID of the provider to inspect." - } - ], - "responses": { - "200": { - "description": "A ProviderInfo object containing the provider's details.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderInfo" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/responses": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all responses.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_openai_responses_v1_responses_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "model", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Model" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 50, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - } - ], - "responses": { - "200": { - "description": "A ListOpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Create a model response.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "create_openai_response_v1_responses_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_responses_Request" - } - } - } - }, - "responses": { - "200": { - "description": "An OpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/responses/{response_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a response.", - "description": "Query endpoint for proper schema generation.", - "operationId": "delete_openai_response_v1_responses__response_id__delete", - "parameters": [ - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the OpenAI response to delete." - } - ], - "responses": { - "200": { - "description": "An OpenAIDeleteResponseObject", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIDeleteResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a model response.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_openai_response_v1_responses__response_id__get", - "parameters": [ - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the OpenAI response to retrieve." - } - ], - "responses": { - "200": { - "description": "An OpenAIResponseObject.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponseObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/responses/{response_id}/input_items": { - "get": { - "tags": [ - "V1" - ], - "summary": "List input items.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_openai_response_input_items_v1_responses__response_id__input_items_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "include", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Include" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - } - }, - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Response Id" - }, - "description": "The ID of the response to retrieve input items for." - } - ], - "responses": { - "200": { - "description": "An ListOpenAIResponseInputItem.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListOpenAIResponseInputItem" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/safety/run-shield": { - "post": { - "tags": [ - "V1" - ], - "summary": "Run shield.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "run_shield_v1_safety_run_shield_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_safety_run_shield_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A RunShieldResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RunShieldResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/scoring-functions": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all scoring functions.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_scoring_functions_v1_scoring_functions_get", - "responses": { - "200": { - "description": "A ListScoringFunctionsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListScoringFunctionsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a scoring function.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "register_scoring_function_v1_scoring_functions_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/scoring-functions/{scoring_fn_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a scoring function.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_scoring_function_v1_scoring_functions__scoring_fn_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "scoring_fn_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: scoring_fn_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a scoring function by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_scoring_function_v1_scoring_functions__scoring_fn_id__get", - "parameters": [ - { - "name": "scoring_fn_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Scoring Fn Id" - } - } - ], - "responses": { - "200": { - "description": "A ScoringFn.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScoringFn" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/scoring/score": { - "post": { - "tags": [ - "V1" - ], - "summary": "Score a list of rows.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "score_v1_scoring_score_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_scoring_score_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A ScoreResponse object containing rows and aggregated results.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScoreResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/scoring/score-batch": { - "post": { - "tags": [ - "V1" - ], - "summary": "Score a batch of rows.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "score_batch_v1_scoring_score_batch_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_scoring_score_batch_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A ScoreBatchResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScoreBatchResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/shields": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all shields.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_shields_v1_shields_get", - "responses": { - "200": { - "description": "A ListShieldsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListShieldsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a shield.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "register_shield_v1_shields_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_shields_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A Shield.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Shield" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/shields/{identifier}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a shield.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_shield_v1_shields__identifier__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: identifier" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a shield by its identifier.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_shield_v1_shields__identifier__get", - "parameters": [ - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Identifier" - } - } - ], - "responses": { - "200": { - "description": "A Shield.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Shield" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tool-runtime/invoke": { - "post": { - "tags": [ - "V1" - ], - "summary": "Run a tool with the given arguments.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "invoke_tool_v1_tool_runtime_invoke_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_tool_runtime_invoke_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A ToolInvocationResult.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolInvocationResult" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/tool-runtime/list-tools": { - "get": { - "tags": [ - "V1" - ], - "summary": "List all tools in the runtime.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_runtime_tools_v1_tool_runtime_list_tools_get", - "parameters": [ - { - "name": "tool_group_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Tool Group Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/URL" - } - } - } - }, - "responses": { - "200": { - "description": "A ListToolDefsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListToolDefsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tool-runtime/rag-tool/insert": { - "post": { - "tags": [ - "V1" - ], - "summary": "Index documents so they can be used by the RAG system.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "rag_tool_insert_v1_tool_runtime_rag_tool_insert_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tool-runtime/rag-tool/query": { - "post": { - "tags": [ - "V1" - ], - "summary": "Query the RAG system for context; typically invoked by the agent.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "rag_tool_query_v1_tool_runtime_rag_tool_query_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_tool_runtime_rag_tool_query_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "RAGQueryResult containing the retrieved content and metadata", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RAGQueryResult" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/toolgroups": { - "get": { - "tags": [ - "V1" - ], - "summary": "List tool groups with optional provider.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "list_tool_groups_v1_toolgroups_get", - "responses": { - "200": { - "description": "A ListToolGroupsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListToolGroupsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Register a tool group.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "register_tool_group_v1_toolgroups_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/toolgroups/{toolgroup_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Unregister a tool group.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "unregister_toolgroup_v1_toolgroups__toolgroup_id__delete", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - }, - { - "name": "toolgroup_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "Path parameter: toolgroup_id" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Get a tool group by its ID.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_tool_group_v1_toolgroups__toolgroup_id__get", - "parameters": [ - { - "name": "toolgroup_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Toolgroup Id" - } - } - ], - "responses": { - "200": { - "description": "A ToolGroup.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolGroup" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tools": { - "get": { - "tags": [ - "V1" - ], - "summary": "List tools with optional tool group.", - "description": "Query endpoint for proper schema generation.", - "operationId": "list_tools_v1_tools_get", - "parameters": [ - { - "name": "toolgroup_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Toolgroup Id" - } - } - ], - "responses": { - "200": { - "description": "A ListToolDefsResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListToolDefsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/tools/{tool_name}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get a tool by its name.", - "description": "Query endpoint for proper schema generation.", - "operationId": "get_tool_v1_tools__tool_name__get", - "parameters": [ - { - "name": "tool_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Tool Name" - } - } - ], - "responses": { - "200": { - "description": "A ToolDef.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolDef" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector-io/insert": { - "post": { - "tags": [ - "V1" - ], - "summary": "Insert chunks into a vector database.", - "description": "Generic endpoint - this would be replaced with actual implementation.", - "operationId": "insert_chunks_v1_vector_io_insert_post", - "parameters": [ - { - "name": "args", - "in": "query", - "required": true, - "schema": { - "title": "Args" - } - }, - { - "name": "kwargs", - "in": "query", - "required": true, - "schema": { - "title": "Kwargs" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector-io/query": { - "post": { - "tags": [ - "V1" - ], - "summary": "Query chunks from a vector database.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "query_chunks_v1_vector_io_query_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_io_query_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A QueryChunksResponse.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryChunksResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - }, - "/v1/vector_stores": { - "get": { - "tags": [ - "V1" - ], - "summary": "Returns a list of vector stores.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_vector_stores_v1_vector_stores_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - } - ], - "responses": { - "200": { - "description": "A VectorStoreListResponse containing the list of vector stores.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreListResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Creates a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_create_vector_store_v1_vector_stores_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICreateVectorStoreRequestWithExtraBody" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreObject representing the created vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_vector_store_v1_vector_stores__vector_store_id__delete", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to delete." - } - ], - "responses": { - "200": { - "description": "A VectorStoreDeleteResponse indicating the deletion status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_v1_vector_stores__vector_store_id__get", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to retrieve." - } - ], - "responses": { - "200": { - "description": "A VectorStoreObject representing the vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Updates a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_update_vector_store_v1_vector_stores__vector_store_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreObject representing the updated vector store.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to update." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches": { - "post": { - "tags": [ - "V1" - ], - "summary": "Create a vector store file batch.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_create_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAICreateVectorStoreFileBatchRequestWithExtraBody" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the created file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to create the file batch for." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieve a vector store file batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__get", - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the file batch to retrieve." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file batch." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": { - "post": { - "tags": [ - "V1" - ], - "summary": "Cancels a vector store file batch.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_cancel_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__cancel_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreFileBatchObject representing the cancelled file batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileBatchObject" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file batch to cancel." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store containing the file batch." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "Returns a list of vector store files in a batch.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_in_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__files_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "filter", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Filter" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - }, - { - "name": "batch_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Batch Id" - }, - "description": "The ID of the file batch to list files from." - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file batch." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFilesListInBatchResponse containing the list of files in the batch.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFilesListInBatchResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}/files": { - "get": { - "tags": [ - "V1" - ], - "summary": "List files in a vector store.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_list_files_in_vector_store_v1_vector_stores__vector_store_id__files_get", - "parameters": [ - { - "name": "after", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "After" - } - }, - { - "name": "before", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Before" - } - }, - { - "name": "filter", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Filter" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 20, - "title": "Limit" - } - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "desc", - "title": "Order" - } - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store to list files from." - } - ], - "responses": { - "200": { - "description": "A VectorStoreListFilesResponse containing the list of files.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreListFilesResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Attach a file to a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_files_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the attached file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to attach the file to." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/files/{file_id}": { - "delete": { - "tags": [ - "V1" - ], - "summary": "Delete a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_delete_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__delete", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to delete." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to delete." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileDeleteResponse indicating the deletion status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileDeleteResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__get", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to retrieve." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to retrieve." - } - ], - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - }, - "post": { - "tags": [ - "V1" - ], - "summary": "Updates a vector store file.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_update_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_files_file_id_Request" - } - } - } - }, - "responses": { - "200": { - "description": "A VectorStoreFileObject representing the updated file.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileObject" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store containing the file to update." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the file to update." - } - ] - } - }, - "/v1/vector_stores/{vector_store_id}/files/{file_id}/content": { - "get": { - "tags": [ - "V1" - ], - "summary": "Retrieves the contents of a vector store file.", - "description": "Query endpoint for proper schema generation.", - "operationId": "openai_retrieve_vector_store_file_contents_v1_vector_stores__vector_store_id__files__file_id__content_get", - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Vector Store Id" - }, - "description": "The ID of the vector store containing the file to retrieve." - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Id" - }, - "description": "The ID of the file to retrieve." - } - ], - "responses": { - "200": { - "description": "A list of InterleavedContent representing the file contents.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreFileContentsResponse" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest400", - "description": "Bad Request" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests429", - "description": "Too Many Requests" - }, - "500": { - "$ref": "#/components/responses/InternalServerError500", - "description": "Internal Server Error" - }, - "default": { - "$ref": "#/components/responses/DefaultError", - "description": "Default Response" - } - } - } - }, - "/v1/vector_stores/{vector_store_id}/search": { - "post": { - "tags": [ - "V1" - ], - "summary": "Search for chunks in a vector store.", - "description": "Typed endpoint for proper schema generation.", - "operationId": "openai_search_vector_store_v1_vector_stores__vector_store_id__search_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/_vector_stores_vector_store_id_search_Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "A VectorStoreSearchResponse containing the search results.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VectorStoreSearchResponsePage" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - }, - "parameters": [ - { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "The ID of the vector store to search." - } - ] - } - }, - "/v1/version": { - "get": { - "tags": [ - "V1" - ], - "summary": "Get version.", - "description": "Response-only endpoint for proper schema generation.", - "operationId": "version_v1_version_get", - "responses": { - "200": { - "description": "Version information containing the service version number.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VersionInfo" - } - } - } - }, - "400": { - "description": "Bad Request", - "$ref": "#/components/responses/BadRequest400" - }, - "429": { - "description": "Too Many Requests", - "$ref": "#/components/responses/TooManyRequests429" - }, - "500": { - "description": "Internal Server Error", - "$ref": "#/components/responses/InternalServerError500" - }, - "default": { - "description": "Default Response", - "$ref": "#/components/responses/DefaultError" - } - } - } - } - }, - "components": { - "schemas": { - "AgentCandidate": { - "properties": { - "type": { - "type": "string", - "const": "agent", - "title": "Type", - "default": "agent" - }, - "config": { - "$ref": "#/components/schemas/AgentConfig" - } - }, - "type": "object", - "required": [ - "config" - ], - "title": "AgentCandidate", - "description": "An agent candidate for evaluation." - }, - "AgentConfig": { - "properties": { - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "input_shields": { - "title": "Input Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "output_shields": { - "title": "Output Shields", - "items": { - "type": "string" - }, - "type": "array" - }, - "toolgroups": { - "title": "Toolgroups", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ] - }, - "type": "array" - }, - "client_tools": { - "title": "Client Tools", - "items": { - "$ref": "#/components/schemas/ToolDef" - }, - "type": "array" - }, - "tool_choice": { - "deprecated": true, - "$ref": "#/components/schemas/ToolChoice" - }, - "tool_prompt_format": { - "deprecated": true, - "$ref": "#/components/schemas/ToolPromptFormat" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - }, - "max_infer_iters": { - "title": "Max Infer Iters", - "default": 10, - "type": "integer" - }, - "model": { - "type": "string", - "title": "Model" - }, - "instructions": { - "type": "string", - "title": "Instructions" - }, - "name": { - "title": "Name", - "type": "string" - }, - "enable_session_persistence": { - "title": "Enable Session Persistence", - "default": false, - "type": "boolean" - }, - "response_format": { - "title": "Response Format", - "oneOf": [ - { - "$ref": "#/components/schemas/JsonSchemaResponseFormat" - }, - { - "$ref": "#/components/schemas/GrammarResponseFormat" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "grammar": "#/components/schemas/GrammarResponseFormat", - "json_schema": "#/components/schemas/JsonSchemaResponseFormat" - } - } - } - }, - "type": "object", - "required": [ - "model", - "instructions" - ], - "title": "AgentConfig", - "description": "Configuration for an agent." - }, - "AgentCreateResponse": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - } - }, - "type": "object", - "required": [ - "agent_id" - ], - "title": "AgentCreateResponse", - "description": "Response returned when creating a new agent." - }, - "AgentSessionCreateResponse": { - "properties": { - "session_id": { - "type": "string", - "title": "Session Id" - } - }, - "type": "object", - "required": [ - "session_id" - ], - "title": "AgentSessionCreateResponse", - "description": "Response returned when creating a new agent session." - }, - "AgentToolGroupWithArgs": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "args": { - "additionalProperties": true, - "type": "object", - "title": "Args" - } - }, - "type": "object", - "required": [ - "name", - "args" - ], - "title": "AgentToolGroupWithArgs" - }, - "AgentTurnInputType": { - "properties": { - "type": { - "type": "string", - "const": "agent_turn_input", - "title": "Type", - "default": "agent_turn_input" - } - }, - "type": "object", - "title": "AgentTurnInputType", - "description": "Parameter type for agent turn input." - }, - "AggregationFunctionType": { - "type": "string", - "enum": [ - "average", - "weighted_average", - "median", - "categorical_count", - "accuracy" - ], - "title": "AggregationFunctionType", - "description": "Types of aggregation functions for scoring results." - }, - "AllowedToolsFilter": { - "properties": { - "tool_names": { - "title": "Tool Names", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "AllowedToolsFilter", - "description": "Filter configuration for restricting which MCP tools can be used." - }, - "ApprovalFilter": { - "properties": { - "always": { - "title": "Always", - "items": { - "type": "string" - }, - "type": "array" - }, - "never": { - "title": "Never", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "ApprovalFilter", - "description": "Filter configuration for MCP tool approval requirements." - }, - "ArrayType": { - "properties": { - "type": { - "type": "string", - "const": "array", - "title": "Type", - "default": "array" - } - }, - "type": "object", - "title": "ArrayType", - "description": "Parameter type for array values." - }, - "Attachment-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "type": "string", - "title": "Mime Type" - } - }, - "type": "object", - "required": [ - "content", - "mime_type" - ], - "title": "Attachment", - "description": "An attachment to an agent turn." - }, - "BasicScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "basic", - "title": "Type", - "default": "basic" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "BasicScoringFnParams", - "description": "Parameters for basic scoring function configuration." - }, - "Batch": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "completion_window": { - "type": "string", - "title": "Completion Window" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "endpoint": { - "type": "string", - "title": "Endpoint" - }, - "input_file_id": { - "type": "string", - "title": "Input File Id" - }, - "object": { - "type": "string", - "const": "batch", - "title": "Object" - }, - "status": { - "type": "string", - "enum": [ - "validating", - "failed", - "in_progress", - "finalizing", - "completed", - "expired", - "cancelling", - "cancelled" - ], - "title": "Status" - }, - "cancelled_at": { - "title": "Cancelled At", - "type": "integer" - }, - "cancelling_at": { - "title": "Cancelling At", - "type": "integer" - }, - "completed_at": { - "title": "Completed At", - "type": "integer" - }, - "error_file_id": { - "title": "Error File Id", - "type": "string" - }, - "errors": { - "$ref": "#/components/schemas/Errors" - }, - "expired_at": { - "title": "Expired At", - "type": "integer" - }, - "expires_at": { - "title": "Expires At", - "type": "integer" - }, - "failed_at": { - "title": "Failed At", - "type": "integer" - }, - "finalizing_at": { - "title": "Finalizing At", - "type": "integer" - }, - "in_progress_at": { - "title": "In Progress At", - "type": "integer" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "model": { - "title": "Model", - "type": "string" - }, - "output_file_id": { - "title": "Output File Id", - "type": "string" - }, - "request_counts": { - "$ref": "#/components/schemas/BatchRequestCounts" - }, - "usage": { - "$ref": "#/components/schemas/BatchUsage" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "id", - "completion_window", - "created_at", - "endpoint", - "input_file_id", - "object", - "status" - ], - "title": "Batch" - }, - "BatchError": { - "properties": { - "code": { - "title": "Code", - "type": "string" - }, - "line": { - "title": "Line", - "type": "integer" - }, - "message": { - "title": "Message", - "type": "string" - }, - "param": { - "title": "Param", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "title": "BatchError" - }, - "BatchRequestCounts": { - "properties": { - "completed": { - "type": "integer", - "title": "Completed" - }, - "failed": { - "type": "integer", - "title": "Failed" - }, - "total": { - "type": "integer", - "title": "Total" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "completed", - "failed", - "total" - ], - "title": "BatchRequestCounts" - }, - "BatchUsage": { - "properties": { - "input_tokens": { - "type": "integer", - "title": "Input Tokens" - }, - "input_tokens_details": { - "$ref": "#/components/schemas/InputTokensDetails" - }, - "output_tokens": { - "type": "integer", - "title": "Output Tokens" - }, - "output_tokens_details": { - "$ref": "#/components/schemas/OutputTokensDetails" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "input_tokens", - "input_tokens_details", - "output_tokens", - "output_tokens_details", - "total_tokens" - ], - "title": "BatchUsage" - }, - "Benchmark": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "benchmark", - "title": "Type", - "default": "benchmark" - }, - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "scoring_functions": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Scoring Functions" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Metadata for this evaluation task" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "dataset_id", - "scoring_functions" - ], - "title": "Benchmark", - "description": "A benchmark resource for evaluating model performance." - }, - "BenchmarkConfig": { - "properties": { - "eval_candidate": { - "oneOf": [ - { - "$ref": "#/components/schemas/ModelCandidate" - }, - { - "$ref": "#/components/schemas/AgentCandidate" - } - ], - "title": "Eval Candidate", - "discriminator": { - "propertyName": "type", - "mapping": { - "agent": "#/components/schemas/AgentCandidate", - "model": "#/components/schemas/ModelCandidate" - } - } - }, - "scoring_params": { - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "basic": "#/components/schemas/BasicScoringFnParams", - "llm_as_judge": "#/components/schemas/LLMAsJudgeScoringFnParams", - "regex_parser": "#/components/schemas/RegexParserScoringFnParams" - } - } - }, - "type": "object", - "title": "Scoring Params", - "description": "Map between scoring function id and parameters for each scoring function you want to run" - }, - "num_examples": { - "title": "Num Examples", - "description": "Number of examples to evaluate (useful for testing), if not provided, all examples in the dataset will be evaluated", - "type": "integer" - } - }, - "type": "object", - "required": [ - "eval_candidate" - ], - "title": "BenchmarkConfig", - "description": "A benchmark configuration for evaluation." - }, - "BooleanType": { - "properties": { - "type": { - "type": "string", - "const": "boolean", - "title": "Type", - "default": "boolean" - } - }, - "type": "object", - "title": "BooleanType", - "description": "Parameter type for boolean values." - }, - "BuiltinTool": { - "type": "string", - "enum": [ - "brave_search", - "wolfram_alpha", - "photogen", - "code_interpreter" - ], - "title": "BuiltinTool" - }, - "ChatCompletionInputType": { - "properties": { - "type": { - "type": "string", - "const": "chat_completion_input", - "title": "Type", - "default": "chat_completion_input" - } - }, - "type": "object", - "title": "ChatCompletionInputType", - "description": "Parameter type for chat completion input." - }, - "Chunk-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "chunk_id": { - "type": "string", - "title": "Chunk Id" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - }, - "embedding": { - "title": "Embedding", - "items": { - "type": "number" - }, - "type": "array" - }, - "chunk_metadata": { - "$ref": "#/components/schemas/ChunkMetadata" - } - }, - "type": "object", - "required": [ - "content", - "chunk_id" - ], - "title": "Chunk", - "description": "A chunk of content that can be inserted into a vector database." - }, - "ChunkMetadata": { - "properties": { - "chunk_id": { - "title": "Chunk Id", - "type": "string" - }, - "document_id": { - "title": "Document Id", - "type": "string" - }, - "source": { - "title": "Source", - "type": "string" - }, - "created_timestamp": { - "title": "Created Timestamp", - "type": "integer" - }, - "updated_timestamp": { - "title": "Updated Timestamp", - "type": "integer" - }, - "chunk_window": { - "title": "Chunk Window", - "type": "string" - }, - "chunk_tokenizer": { - "title": "Chunk Tokenizer", - "type": "string" - }, - "chunk_embedding_model": { - "title": "Chunk Embedding Model", - "type": "string" - }, - "chunk_embedding_dimension": { - "title": "Chunk Embedding Dimension", - "type": "integer" - }, - "content_token_count": { - "title": "Content Token Count", - "type": "integer" - }, - "metadata_token_count": { - "title": "Metadata Token Count", - "type": "integer" - } - }, - "type": "object", - "title": "ChunkMetadata", - "description": "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." - }, - "CompletionInputType": { - "properties": { - "type": { - "type": "string", - "const": "completion_input", - "title": "Type", - "default": "completion_input" - } - }, - "type": "object", - "title": "CompletionInputType", - "description": "Parameter type for completion input." - }, - "CompletionMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionMessage", - "description": "A message containing the model's (assistant) response in a chat conversation." - }, - "Conversation": { - "properties": { - "id": { - "type": "string", - "title": "Id", - "description": "The unique ID of the conversation." - }, - "object": { - "type": "string", - "const": "conversation", - "title": "Object", - "description": "The object type, which is always conversation.", - "default": "conversation" - }, - "created_at": { - "type": "integer", - "title": "Created At", - "description": "The time at which the conversation was created, measured in seconds since the Unix epoch." - }, - "metadata": { - "title": "Metadata", - "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.", - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "items": { - "title": "Items", - "description": "Initial items to include in the conversation context. You may add up to 20 items at a time.", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "id", - "created_at" - ], - "title": "Conversation", - "description": "OpenAI-compatible conversation object." - }, - "ConversationItemInclude": { - "type": "string", - "enum": [ - "web_search_call.action.sources", - "code_interpreter_call.outputs", - "computer_call_output.output.image_url", - "file_search_call.results", - "message.input_image.image_url", - "message.output_text.logprobs", - "reasoning.encrypted_content" - ], - "title": "ConversationItemInclude", - "description": "Specify additional output data to include in the model response." - }, - "ConversationItemList": { - "properties": { - "object": { - "type": "string", - "title": "Object", - "description": "Object type", - "default": "list" - }, - "data": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Output" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/components/schemas/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Output", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "type": "array", - "title": "Data", - "description": "List of conversation items" - }, - "first_id": { - "title": "First Id", - "description": "The ID of the first item in the list", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "description": "The ID of the last item in the list", - "type": "string" - }, - "has_more": { - "type": "boolean", - "title": "Has More", - "description": "Whether there are more items available", - "default": false - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ConversationItemList", - "description": "List of conversation items with pagination." - }, - "DPOAlignmentConfig": { - "properties": { - "beta": { - "type": "number", - "title": "Beta" - }, - "loss_type": { - "$ref": "#/components/schemas/DPOLossType", - "default": "sigmoid" - } - }, - "type": "object", - "required": [ - "beta" - ], - "title": "DPOAlignmentConfig", - "description": "Configuration for Direct Preference Optimization (DPO) alignment." - }, - "DPOLossType": { - "type": "string", - "enum": [ - "sigmoid", - "hinge", - "ipo", - "kto_pair" - ], - "title": "DPOLossType" - }, - "DataConfig": { - "properties": { - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "batch_size": { - "type": "integer", - "title": "Batch Size" - }, - "shuffle": { - "type": "boolean", - "title": "Shuffle" - }, - "data_format": { - "$ref": "#/components/schemas/DatasetFormat" - }, - "validation_dataset_id": { - "title": "Validation Dataset Id", - "type": "string" - }, - "packed": { - "title": "Packed", - "default": false, - "type": "boolean" - }, - "train_on_input": { - "title": "Train On Input", - "default": false, - "type": "boolean" - } - }, - "type": "object", - "required": [ - "dataset_id", - "batch_size", - "shuffle", - "data_format" - ], - "title": "DataConfig", - "description": "Configuration for training data and data loading." - }, - "Dataset": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "dataset", - "title": "Type", - "default": "dataset" - }, - "purpose": { - "$ref": "#/components/schemas/DatasetPurpose" - }, - "source": { - "oneOf": [ - { - "$ref": "#/components/schemas/URIDataSource" - }, - { - "$ref": "#/components/schemas/RowsDataSource" - } - ], - "title": "Source", - "discriminator": { - "propertyName": "type", - "mapping": { - "rows": "#/components/schemas/RowsDataSource", - "uri": "#/components/schemas/URIDataSource" - } - } - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this dataset" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "purpose", - "source" - ], - "title": "Dataset", - "description": "Dataset resource for storing and accessing training or evaluation data." - }, - "DatasetFormat": { - "type": "string", - "enum": [ - "instruct", - "dialog" - ], - "title": "DatasetFormat", - "description": "Format of the training dataset." - }, - "DatasetPurpose": { - "type": "string", - "enum": [ - "post-training/messages", - "eval/question-answer", - "eval/messages-answer" - ], - "title": "DatasetPurpose", - "description": "Purpose of the dataset. Each purpose has a required input data schema." - }, - "DefaultRAGQueryGeneratorConfig": { - "properties": { - "type": { - "type": "string", - "const": "default", - "title": "Type", - "default": "default" - }, - "separator": { - "type": "string", - "title": "Separator", - "default": " " - } - }, - "type": "object", - "title": "DefaultRAGQueryGeneratorConfig", - "description": "Configuration for the default RAG query generator." - }, - "Document": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/URL" - } - ], - "title": "Content" - }, - "mime_type": { - "type": "string", - "title": "Mime Type" - } - }, - "type": "object", - "required": [ - "content", - "mime_type" - ], - "title": "Document", - "description": "A document to be used by an agent." - }, - "EfficiencyConfig": { - "properties": { - "enable_activation_checkpointing": { - "title": "Enable Activation Checkpointing", - "default": false, - "type": "boolean" - }, - "enable_activation_offloading": { - "title": "Enable Activation Offloading", - "default": false, - "type": "boolean" - }, - "memory_efficient_fsdp_wrap": { - "title": "Memory Efficient Fsdp Wrap", - "default": false, - "type": "boolean" - }, - "fsdp_cpu_offload": { - "title": "Fsdp Cpu Offload", - "default": false, - "type": "boolean" - } - }, - "type": "object", - "title": "EfficiencyConfig", - "description": "Configuration for memory and compute efficiency optimizations." - }, - "Errors": { - "properties": { - "data": { - "title": "Data", - "items": { - "$ref": "#/components/schemas/BatchError" - }, - "type": "array" - }, - "object": { - "title": "Object", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "title": "Errors" - }, - "EvaluateResponse": { - "properties": { - "generations": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Generations" - }, - "scores": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Scores" - } - }, - "type": "object", - "required": [ - "generations", - "scores" - ], - "title": "EvaluateResponse", - "description": "The response from an evaluation." - }, - "GrammarResponseFormat": { - "properties": { - "type": { - "type": "string", - "const": "grammar", - "title": "Type", - "default": "grammar" - }, - "bnf": { - "additionalProperties": true, - "type": "object", - "title": "Bnf" - } - }, - "type": "object", - "required": [ - "bnf" - ], - "title": "GrammarResponseFormat", - "description": "Configuration for grammar-guided response generation." - }, - "GreedySamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "greedy", - "title": "Type", - "default": "greedy" - } - }, - "type": "object", - "title": "GreedySamplingStrategy", - "description": "Greedy sampling strategy that selects the highest probability token at each step." - }, - "HealthInfo": { - "properties": { - "status": { - "$ref": "#/components/schemas/HealthStatus" - } - }, - "type": "object", - "required": [ - "status" - ], - "title": "HealthInfo", - "description": "Health status information for the service." - }, - "HealthStatus": { - "type": "string", - "enum": [ - "OK", - "Error", - "Not Implemented" - ], - "title": "HealthStatus" - }, - "ImageContentItem-Input": { - "properties": { - "type": { - "type": "string", - "const": "image", - "title": "Type", - "default": "image" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "type": "object", - "required": [ - "image" - ], - "title": "ImageContentItem", - "description": "A image content item" - }, - "ImageContentItem-Output": { - "properties": { - "type": { - "type": "string", - "const": "image", - "title": "Type", - "default": "image" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "type": "object", - "required": [ - "image" - ], - "title": "ImageContentItem", - "description": "A image content item" - }, - "InferenceStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "inference", - "title": "Step Type", - "default": "inference" - }, - "model_response": { - "$ref": "#/components/schemas/CompletionMessage-Output" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "model_response" - ], - "title": "InferenceStep", - "description": "An inference step in an agent turn." - }, - "InputTokensDetails": { - "properties": { - "cached_tokens": { - "type": "integer", - "title": "Cached Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "cached_tokens" - ], - "title": "InputTokensDetails" - }, - "Job": { - "properties": { - "job_id": { - "type": "string", - "title": "Job Id" - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - } - }, - "type": "object", - "required": [ - "job_id", - "status" - ], - "title": "Job", - "description": "A job execution instance with status tracking." - }, - "JobStatus": { - "type": "string", - "enum": [ - "completed", - "in_progress", - "failed", - "scheduled", - "cancelled" - ], - "title": "JobStatus", - "description": "Status of a job execution." - }, - "JsonSchemaResponseFormat": { - "properties": { - "type": { - "type": "string", - "const": "json_schema", - "title": "Type", - "default": "json_schema" - }, - "json_schema": { - "additionalProperties": true, - "type": "object", - "title": "Json Schema" - } - }, - "type": "object", - "required": [ - "json_schema" - ], - "title": "JsonSchemaResponseFormat", - "description": "Configuration for JSON schema-guided response generation." - }, - "JsonType": { - "properties": { - "type": { - "type": "string", - "const": "json", - "title": "Type", - "default": "json" - } - }, - "type": "object", - "title": "JsonType", - "description": "Parameter type for JSON values." - }, - "LLMAsJudgeScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "llm_as_judge", - "title": "Type", - "default": "llm_as_judge" - }, - "judge_model": { - "type": "string", - "title": "Judge Model" - }, - "prompt_template": { - "title": "Prompt Template", - "type": "string" - }, - "judge_score_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Judge Score Regexes", - "description": "Regexes to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "required": [ - "judge_model" - ], - "title": "LLMAsJudgeScoringFnParams", - "description": "Parameters for LLM-as-judge scoring function configuration." - }, - "LLMRAGQueryGeneratorConfig": { - "properties": { - "type": { - "type": "string", - "const": "llm", - "title": "Type", - "default": "llm" - }, - "model": { - "type": "string", - "title": "Model" - }, - "template": { - "type": "string", - "title": "Template" - } - }, - "type": "object", - "required": [ - "model", - "template" - ], - "title": "LLMRAGQueryGeneratorConfig", - "description": "Configuration for the LLM-based RAG query generator." - }, - "ListBenchmarksResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Benchmark" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListBenchmarksResponse" - }, - "ListDatasetsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Dataset" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListDatasetsResponse", - "description": "Response from listing datasets." - }, - "ListModelsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Model" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListModelsResponse" - }, - "ListPostTrainingJobsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/PostTrainingJob" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListPostTrainingJobsResponse" - }, - "ListPromptsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Prompt" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListPromptsResponse", - "description": "Response model to list prompts." - }, - "ListProvidersResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ProviderInfo" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListProvidersResponse", - "description": "Response containing a list of all available providers." - }, - "ListRoutesResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/RouteInfo" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListRoutesResponse", - "description": "Response containing a list of all available API routes." - }, - "ListScoringFunctionsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ScoringFn-Output" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListScoringFunctionsResponse" - }, - "ListShieldsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Shield" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListShieldsResponse" - }, - "ListToolGroupsResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ToolGroup" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "ListToolGroupsResponse", - "description": "Response containing a list of tool groups." - }, - "MCPListToolsTool": { - "properties": { - "input_schema": { - "additionalProperties": true, - "type": "object", - "title": "Input Schema" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - } - }, - "type": "object", - "required": [ - "input_schema", - "name" - ], - "title": "MCPListToolsTool", - "description": "Tool definition returned by MCP list tools operation." - }, - "MemoryRetrievalStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "memory_retrieval", - "title": "Step Type", - "default": "memory_retrieval" - }, - "vector_store_ids": { - "type": "string", - "title": "Vector Store Ids" - }, - "inserted_context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Inserted Context" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "vector_store_ids", - "inserted_context" - ], - "title": "MemoryRetrievalStep", - "description": "A memory retrieval step in an agent turn." - }, - "Model": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "model", - "title": "Type", - "default": "model" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this model" - }, - "model_type": { - "$ref": "#/components/schemas/ModelType", - "default": "llm" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "Model", - "description": "A model resource representing an AI model registered in Llama Stack." - }, - "ModelCandidate": { - "properties": { - "type": { - "type": "string", - "const": "model", - "title": "Type", - "default": "model" - }, - "model": { - "type": "string", - "title": "Model" - }, - "sampling_params": { - "$ref": "#/components/schemas/SamplingParams" - }, - "system_message": { - "$ref": "#/components/schemas/SystemMessage" - } - }, - "type": "object", - "required": [ - "model", - "sampling_params" - ], - "title": "ModelCandidate", - "description": "A model candidate for evaluation." - }, - "ModelType": { - "type": "string", - "enum": [ - "llm", - "embedding", - "rerank" - ], - "title": "ModelType", - "description": "Enumeration of supported model types in Llama Stack." - }, - "ModerationObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "model": { - "type": "string", - "title": "Model" - }, - "results": { - "items": { - "$ref": "#/components/schemas/ModerationObjectResults" - }, - "type": "array", - "title": "Results" - } - }, - "type": "object", - "required": [ - "id", - "model", - "results" - ], - "title": "ModerationObject", - "description": "A moderation object." - }, - "ModerationObjectResults": { - "properties": { - "flagged": { - "type": "boolean", - "title": "Flagged" - }, - "categories": { - "title": "Categories", - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - "category_applied_input_types": { - "title": "Category Applied Input Types", - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "category_scores": { - "title": "Category Scores", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "user_message": { - "title": "User Message", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "flagged" - ], - "title": "ModerationObjectResults", - "description": "A moderation object." - }, - "NumberType": { - "properties": { - "type": { - "type": "string", - "const": "number", - "title": "Type", - "default": "number" - } - }, - "type": "object", - "title": "NumberType", - "description": "Parameter type for numeric values." - }, - "ObjectType": { - "properties": { - "type": { - "type": "string", - "const": "object", - "title": "Type", - "default": "object" - } - }, - "type": "object", - "title": "ObjectType", - "description": "Parameter type for object values." - }, - "OpenAIAssistantMessageParam-Input": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIAssistantMessageParam", - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request." - }, - "OpenAIAssistantMessageParam-Output": { - "properties": { - "role": { - "type": "string", - "const": "assistant", - "title": "Role", - "default": "assistant" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIAssistantMessageParam", - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request." - }, - "OpenAIChatCompletion": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAIChoice-Output" - }, - "type": "array", - "title": "Choices" - }, - "object": { - "type": "string", - "const": "chat.completion", - "title": "Object", - "default": "chat.completion" - }, - "created": { - "type": "integer", - "title": "Created" - }, - "model": { - "type": "string", - "title": "Model" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsage" - } - }, - "type": "object", - "required": [ - "id", - "choices", - "created", - "model" - ], - "title": "OpenAIChatCompletion", - "description": "Response from an OpenAI-compatible chat completion request." - }, - "OpenAIChatCompletionContentPartImageParam": { - "properties": { - "type": { - "type": "string", - "const": "image_url", - "title": "Type", - "default": "image_url" - }, - "image_url": { - "$ref": "#/components/schemas/OpenAIImageURL" - } - }, - "type": "object", - "required": [ - "image_url" - ], - "title": "OpenAIChatCompletionContentPartImageParam", - "description": "Image content part for OpenAI-compatible chat completion messages." - }, - "OpenAIChatCompletionContentPartTextParam": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIChatCompletionContentPartTextParam", - "description": "Text content part for OpenAI-compatible chat completion messages." - }, - "OpenAIChatCompletionRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "messages": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam-Input" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "discriminator": { - "propertyName": "role", - "mapping": { - "assistant": "#/components/schemas/OpenAIAssistantMessageParam-Input", - "developer": "#/components/schemas/OpenAIDeveloperMessageParam", - "system": "#/components/schemas/OpenAISystemMessageParam", - "tool": "#/components/schemas/OpenAIToolMessageParam", - "user": "#/components/schemas/OpenAIUserMessageParam-Input" - } - } - }, - "type": "array", - "minItems": 1, - "title": "Messages" - }, - "frequency_penalty": { - "title": "Frequency Penalty", - "type": "number" - }, - "function_call": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } - ], - "title": "Function Call" - }, - "functions": { - "title": "Functions", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "logit_bias": { - "title": "Logit Bias", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "logprobs": { - "title": "Logprobs", - "type": "boolean" - }, - "max_completion_tokens": { - "title": "Max Completion Tokens", - "type": "integer" - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "n": { - "title": "N", - "type": "integer" - }, - "parallel_tool_calls": { - "title": "Parallel Tool Calls", - "type": "boolean" - }, - "presence_penalty": { - "title": "Presence Penalty", - "type": "number" - }, - "response_format": { - "title": "Response Format", - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseFormatText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseFormatJSONSchema" - }, - { - "$ref": "#/components/schemas/OpenAIResponseFormatJSONObject" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "json_object": "#/components/schemas/OpenAIResponseFormatJSONObject", - "json_schema": "#/components/schemas/OpenAIResponseFormatJSONSchema", - "text": "#/components/schemas/OpenAIResponseFormatText" - } - } - }, - "seed": { - "title": "Seed", - "type": "integer" - }, - "stop": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Stop" - }, - "stream": { - "title": "Stream", - "type": "boolean" - }, - "stream_options": { - "title": "Stream Options", - "additionalProperties": true, - "type": "object" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "tool_choice": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } - ], - "title": "Tool Choice" - }, - "tools": { - "title": "Tools", - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "top_logprobs": { - "title": "Top Logprobs", - "type": "integer" - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "user": { - "title": "User", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "messages" - ], - "title": "OpenAIChatCompletionRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible chat completion endpoint." - }, - "OpenAIChatCompletionToolCall": { - "properties": { - "index": { - "title": "Index", - "type": "integer" - }, - "id": { - "title": "Id", - "type": "string" - }, - "type": { - "type": "string", - "const": "function", - "title": "Type", - "default": "function" - }, - "function": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCallFunction" - } - }, - "type": "object", - "title": "OpenAIChatCompletionToolCall", - "description": "Tool call specification for OpenAI-compatible chat completion responses." - }, - "OpenAIChatCompletionToolCallFunction": { - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "arguments": { - "title": "Arguments", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIChatCompletionToolCallFunction", - "description": "Function call details for OpenAI-compatible tool calls." - }, - "OpenAIChatCompletionUsage": { - "properties": { - "prompt_tokens": { - "type": "integer", - "title": "Prompt Tokens" - }, - "completion_tokens": { - "type": "integer", - "title": "Completion Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - }, - "prompt_tokens_details": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails" - }, - "completion_tokens_details": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails" - } - }, - "type": "object", - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "title": "OpenAIChatCompletionUsage", - "description": "Usage information for OpenAI chat completion." - }, - "OpenAIChatCompletionUsageCompletionTokensDetails": { - "properties": { - "reasoning_tokens": { - "title": "Reasoning Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIChatCompletionUsageCompletionTokensDetails", - "description": "Token details for output tokens in OpenAI chat completion usage." - }, - "OpenAIChatCompletionUsagePromptTokensDetails": { - "properties": { - "cached_tokens": { - "title": "Cached Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIChatCompletionUsagePromptTokensDetails", - "description": "Token details for prompt tokens in OpenAI chat completion usage." - }, - "OpenAIChoice-Output": { - "properties": { - "message": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam-Output" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam-Output" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Message", - "discriminator": { - "propertyName": "role", - "mapping": { - "assistant": "#/components/schemas/OpenAIAssistantMessageParam-Output", - "developer": "#/components/schemas/OpenAIDeveloperMessageParam", - "system": "#/components/schemas/OpenAISystemMessageParam", - "tool": "#/components/schemas/OpenAIToolMessageParam", - "user": "#/components/schemas/OpenAIUserMessageParam-Output" - } - } - }, - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Output" - } - }, - "type": "object", - "required": [ - "message", - "finish_reason", - "index" - ], - "title": "OpenAIChoice", - "description": "A choice from an OpenAI-compatible chat completion response." - }, - "OpenAIChoiceLogprobs-Output": { - "properties": { - "content": { - "title": "Content", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - }, - "refusal": { - "title": "Refusal", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array" - } - }, - "type": "object", - "title": "OpenAIChoiceLogprobs", - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response." - }, - "OpenAICompletion": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAICompletionChoice-Output" - }, - "type": "array", - "title": "Choices" - }, - "created": { - "type": "integer", - "title": "Created" - }, - "model": { - "type": "string", - "title": "Model" - }, - "object": { - "type": "string", - "const": "text_completion", - "title": "Object", - "default": "text_completion" - } - }, - "type": "object", - "required": [ - "id", - "choices", - "created", - "model" - ], - "title": "OpenAICompletion", - "description": "Response from an OpenAI-compatible completion request." - }, - "OpenAICompletionChoice-Output": { - "properties": { - "finish_reason": { - "type": "string", - "title": "Finish Reason" - }, - "text": { - "type": "string", - "title": "Text" - }, - "index": { - "type": "integer", - "title": "Index" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs-Output" - } - }, - "type": "object", - "required": [ - "finish_reason", - "text", - "index" - ], - "title": "OpenAICompletionChoice", - "description": "A choice from an OpenAI-compatible completion response." - }, - "OpenAICompletionRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "prompt": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "items": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "type": "array" - } - ], - "title": "Prompt" - }, - "best_of": { - "title": "Best Of", - "type": "integer" - }, - "echo": { - "title": "Echo", - "type": "boolean" - }, - "frequency_penalty": { - "title": "Frequency Penalty", - "type": "number" - }, - "logit_bias": { - "title": "Logit Bias", - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "logprobs": { - "title": "Logprobs", - "type": "boolean" - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "n": { - "title": "N", - "type": "integer" - }, - "presence_penalty": { - "title": "Presence Penalty", - "type": "number" - }, - "seed": { - "title": "Seed", - "type": "integer" - }, - "stop": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Stop" - }, - "stream": { - "title": "Stream", - "type": "boolean" - }, - "stream_options": { - "title": "Stream Options", - "additionalProperties": true, - "type": "object" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "user": { - "title": "User", - "type": "string" - }, - "suffix": { - "title": "Suffix", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "prompt" - ], - "title": "OpenAICompletionRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible completion endpoint." - }, - "OpenAICreateVectorStoreFileBatchRequestWithExtraBody": { - "properties": { - "file_ids": { - "items": { - "type": "string" - }, - "type": "array", - "title": "File Ids" - }, - "attributes": { - "title": "Attributes", - "additionalProperties": true, - "type": "object" - }, - "chunking_strategy": { - "title": "Chunking Strategy", - "oneOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "auto": "#/components/schemas/VectorStoreChunkingStrategyAuto", - "static": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - } - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "file_ids" - ], - "title": "OpenAICreateVectorStoreFileBatchRequestWithExtraBody", - "description": "Request to create a vector store file batch with extra_body support." - }, - "OpenAICreateVectorStoreRequestWithExtraBody": { - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "file_ids": { - "title": "File Ids", - "items": { - "type": "string" - }, - "type": "array" - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object" - }, - "chunking_strategy": { - "title": "Chunking Strategy", - "additionalProperties": true, - "type": "object" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "additionalProperties": true, - "type": "object", - "title": "OpenAICreateVectorStoreRequestWithExtraBody", - "description": "Request to create a vector store with extra_body support." - }, - "OpenAIDeveloperMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "developer", - "title": "Role", - "default": "developer" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIDeveloperMessageParam", - "description": "A message from the developer in an OpenAI-compatible chat completion request." - }, - "OpenAIEmbeddingData": { - "properties": { - "object": { - "type": "string", - "const": "embedding", - "title": "Object", - "default": "embedding" - }, - "embedding": { - "anyOf": [ - { - "items": { - "type": "number" - }, - "type": "array" - }, - { - "type": "string" - } - ], - "title": "Embedding" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "embedding", - "index" - ], - "title": "OpenAIEmbeddingData", - "description": "A single embedding data object from an OpenAI-compatible embeddings response." - }, - "OpenAIEmbeddingUsage": { - "properties": { - "prompt_tokens": { - "type": "integer", - "title": "Prompt Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - } - }, - "type": "object", - "required": [ - "prompt_tokens", - "total_tokens" - ], - "title": "OpenAIEmbeddingUsage", - "description": "Usage information for an OpenAI-compatible embeddings response." - }, - "OpenAIEmbeddingsRequestWithExtraBody": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Input" - }, - "encoding_format": { - "title": "Encoding Format", - "default": "float", - "type": "string" - }, - "dimensions": { - "title": "Dimensions", - "type": "integer" - }, - "user": { - "title": "User", - "type": "string" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "model", - "input" - ], - "title": "OpenAIEmbeddingsRequestWithExtraBody", - "description": "Request parameters for OpenAI-compatible embeddings endpoint." - }, - "OpenAIEmbeddingsResponse": { - "properties": { - "object": { - "type": "string", - "const": "list", - "title": "Object", - "default": "list" - }, - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIEmbeddingData" - }, - "type": "array", - "title": "Data" - }, - "model": { - "type": "string", - "title": "Model" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIEmbeddingUsage" - } - }, - "type": "object", - "required": [ - "data", - "model", - "usage" - ], - "title": "OpenAIEmbeddingsResponse", - "description": "Response from an OpenAI-compatible embeddings request." - }, - "OpenAIFile": { - "properties": { - "type": { - "type": "string", - "const": "file", - "title": "Type", - "default": "file" - }, - "file": { - "$ref": "#/components/schemas/OpenAIFileFile" - } - }, - "type": "object", - "required": [ - "file" - ], - "title": "OpenAIFile" - }, - "OpenAIFileFile": { - "properties": { - "file_data": { - "title": "File Data", - "type": "string" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIFileFile" - }, - "OpenAIFileObject": { - "properties": { - "object": { - "type": "string", - "const": "file", - "title": "Object", - "default": "file" - }, - "id": { - "type": "string", - "title": "Id" - }, - "bytes": { - "type": "integer", - "title": "Bytes" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "expires_at": { - "type": "integer", - "title": "Expires At" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "purpose": { - "$ref": "#/components/schemas/OpenAIFilePurpose" - } - }, - "type": "object", - "required": [ - "id", - "bytes", - "created_at", - "expires_at", - "filename", - "purpose" - ], - "title": "OpenAIFileObject", - "description": "OpenAI File object as defined in the OpenAI Files API." - }, - "OpenAIFilePurpose": { - "type": "string", - "enum": [ - "assistants", - "batch" - ], - "title": "OpenAIFilePurpose", - "description": "Valid purpose values for OpenAI Files API." - }, - "OpenAIImageURL": { - "properties": { - "url": { - "type": "string", - "title": "Url" - }, - "detail": { - "title": "Detail", - "type": "string" - } - }, - "type": "object", - "required": [ - "url" - ], - "title": "OpenAIImageURL", - "description": "Image URL specification for OpenAI-compatible chat completion messages." - }, - "OpenAIJSONSchema": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "strict": { - "title": "Strict", - "type": "boolean" - }, - "schema": { - "title": "Schema", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "title": "OpenAIJSONSchema", - "description": "JSON schema specification for OpenAI-compatible structured response format." - }, - "OpenAIResponseAnnotationCitation": { - "properties": { - "type": { - "type": "string", - "const": "url_citation", - "title": "Type", - "default": "url_citation" - }, - "end_index": { - "type": "integer", - "title": "End Index" - }, - "start_index": { - "type": "integer", - "title": "Start Index" - }, - "title": { - "type": "string", - "title": "Title" - }, - "url": { - "type": "string", - "title": "Url" - } - }, - "type": "object", - "required": [ - "end_index", - "start_index", - "title", - "url" - ], - "title": "OpenAIResponseAnnotationCitation", - "description": "URL citation annotation for referencing external web resources." - }, - "OpenAIResponseAnnotationContainerFileCitation": { - "properties": { - "type": { - "type": "string", - "const": "container_file_citation", - "title": "Type", - "default": "container_file_citation" - }, - "container_id": { - "type": "string", - "title": "Container Id" - }, - "end_index": { - "type": "integer", - "title": "End Index" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "start_index": { - "type": "integer", - "title": "Start Index" - } - }, - "type": "object", - "required": [ - "container_id", - "end_index", - "file_id", - "filename", - "start_index" - ], - "title": "OpenAIResponseAnnotationContainerFileCitation" - }, - "OpenAIResponseAnnotationFileCitation": { - "properties": { - "type": { - "type": "string", - "const": "file_citation", - "title": "Type", - "default": "file_citation" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "file_id", - "filename", - "index" - ], - "title": "OpenAIResponseAnnotationFileCitation", - "description": "File citation annotation for referencing specific files in response content." - }, - "OpenAIResponseAnnotationFilePath": { - "properties": { - "type": { - "type": "string", - "const": "file_path", - "title": "Type", - "default": "file_path" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "index": { - "type": "integer", - "title": "Index" - } - }, - "type": "object", - "required": [ - "file_id", - "index" - ], - "title": "OpenAIResponseAnnotationFilePath" - }, - "OpenAIResponseContentPartRefusal": { - "properties": { - "type": { - "type": "string", - "const": "refusal", - "title": "Type", - "default": "refusal" - }, - "refusal": { - "type": "string", - "title": "Refusal" - } - }, - "type": "object", - "required": [ - "refusal" - ], - "title": "OpenAIResponseContentPartRefusal", - "description": "Refusal content within a streamed response part." - }, - "OpenAIResponseError": { - "properties": { - "code": { - "type": "string", - "title": "Code" - }, - "message": { - "type": "string", - "title": "Message" - } - }, - "type": "object", - "required": [ - "code", - "message" - ], - "title": "OpenAIResponseError", - "description": "Error details for failed OpenAI response requests." - }, - "OpenAIResponseFormatJSONObject": { - "properties": { - "type": { - "type": "string", - "const": "json_object", - "title": "Type", - "default": "json_object" - } - }, - "type": "object", - "title": "OpenAIResponseFormatJSONObject", - "description": "JSON object response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseFormatJSONSchema": { - "properties": { - "type": { - "type": "string", - "const": "json_schema", - "title": "Type", - "default": "json_schema" - }, - "json_schema": { - "$ref": "#/components/schemas/OpenAIJSONSchema" - } - }, - "type": "object", - "required": [ - "json_schema" - ], - "title": "OpenAIResponseFormatJSONSchema", - "description": "JSON schema response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseFormatText": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - } - }, - "type": "object", - "title": "OpenAIResponseFormatText", - "description": "Text response format for OpenAI-compatible chat completion requests." - }, - "OpenAIResponseInputFunctionToolCallOutput": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "output": { - "type": "string", - "title": "Output" - }, - "type": { - "type": "string", - "const": "function_call_output", - "title": "Type", - "default": "function_call_output" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "call_id", - "output" - ], - "title": "OpenAIResponseInputFunctionToolCallOutput", - "description": "This represents the output of a function call that gets passed back to the model." - }, - "OpenAIResponseInputMessageContentFile": { - "properties": { - "type": { - "type": "string", - "const": "input_file", - "title": "Type", - "default": "input_file" - }, - "file_data": { - "title": "File Data", - "type": "string" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "file_url": { - "title": "File Url", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIResponseInputMessageContentFile", - "description": "File content for input messages in OpenAI response format." - }, - "OpenAIResponseInputMessageContentImage": { - "properties": { - "detail": { - "anyOf": [ - { - "type": "string", - "const": "low" - }, - { - "type": "string", - "const": "high" - }, - { - "type": "string", - "const": "auto" - } - ], - "title": "Detail", - "default": "auto" - }, - "type": { - "type": "string", - "const": "input_image", - "title": "Type", - "default": "input_image" - }, - "file_id": { - "title": "File Id", - "type": "string" - }, - "image_url": { - "title": "Image Url", - "type": "string" - } - }, - "type": "object", - "title": "OpenAIResponseInputMessageContentImage", - "description": "Image content for input messages in OpenAI response format." - }, - "OpenAIResponseInputMessageContentText": { - "properties": { - "text": { - "type": "string", - "title": "Text" - }, - "type": { - "type": "string", - "const": "input_text", - "title": "Type", - "default": "input_text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIResponseInputMessageContentText", - "description": "Text content for input messages in OpenAI response format." - }, - "OpenAIResponseInputToolFileSearch": { - "properties": { - "type": { - "type": "string", - "const": "file_search", - "title": "Type", - "default": "file_search" - }, - "vector_store_ids": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Vector Store Ids" - }, - "filters": { - "title": "Filters", - "additionalProperties": true, - "type": "object" - }, - "max_num_results": { - "title": "Max Num Results", - "default": 10, - "type": "integer", - "maximum": 50.0, - "minimum": 1.0 - }, - "ranking_options": { - "$ref": "#/components/schemas/SearchRankingOptions" - } - }, - "type": "object", - "required": [ - "vector_store_ids" - ], - "title": "OpenAIResponseInputToolFileSearch", - "description": "File search tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolFunction": { - "properties": { - "type": { - "type": "string", - "const": "function", - "title": "Type", - "default": "function" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "parameters": { - "title": "Parameters", - "additionalProperties": true, - "type": "object" - }, - "strict": { - "title": "Strict", - "type": "boolean" - } - }, - "type": "object", - "required": [ - "name", - "parameters" - ], - "title": "OpenAIResponseInputToolFunction", - "description": "Function tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolMCP": { - "properties": { - "type": { - "type": "string", - "const": "mcp", - "title": "Type", - "default": "mcp" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "server_url": { - "type": "string", - "title": "Server Url" - }, - "headers": { - "title": "Headers", - "additionalProperties": true, - "type": "object" - }, - "require_approval": { - "anyOf": [ - { - "type": "string", - "const": "always" - }, - { - "type": "string", - "const": "never" - }, - { - "$ref": "#/components/schemas/ApprovalFilter" - } - ], - "title": "Require Approval", - "default": "never" - }, - "allowed_tools": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/AllowedToolsFilter" - } - ], - "title": "Allowed Tools" - } - }, - "type": "object", - "required": [ - "server_label", - "server_url" - ], - "title": "OpenAIResponseInputToolMCP", - "description": "Model Context Protocol (MCP) tool configuration for OpenAI response inputs." - }, - "OpenAIResponseInputToolWebSearch": { - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "const": "web_search" - }, - { - "type": "string", - "const": "web_search_preview" - }, - { - "type": "string", - "const": "web_search_preview_2025_03_11" - } - ], - "title": "Type", - "default": "web_search" - }, - "search_context_size": { - "title": "Search Context Size", - "default": "medium", - "type": "string", - "pattern": "^low|medium|high$" - } - }, - "type": "object", - "title": "OpenAIResponseInputToolWebSearch", - "description": "Web search tool configuration for OpenAI response inputs." - }, - "OpenAIResponseMCPApprovalRequest": { - "properties": { - "arguments": { - "type": "string", - "title": "Arguments" - }, - "id": { - "type": "string", - "title": "Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "type": { - "type": "string", - "const": "mcp_approval_request", - "title": "Type", - "default": "mcp_approval_request" - } - }, - "type": "object", - "required": [ - "arguments", - "id", - "name", - "server_label" - ], - "title": "OpenAIResponseMCPApprovalRequest", - "description": "A request for human approval of a tool invocation." - }, - "OpenAIResponseMCPApprovalResponse": { - "properties": { - "approval_request_id": { - "type": "string", - "title": "Approval Request Id" - }, - "approve": { - "type": "boolean", - "title": "Approve" - }, - "type": { - "type": "string", - "const": "mcp_approval_response", - "title": "Type", - "default": "mcp_approval_response" - }, - "id": { - "title": "Id", - "type": "string" - }, - "reason": { - "title": "Reason", - "type": "string" - } - }, - "type": "object", - "required": [ - "approval_request_id", - "approve" - ], - "title": "OpenAIResponseMCPApprovalResponse", - "description": "A response to an MCP approval request." - }, - "OpenAIResponseMessage-Input": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "array" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "output_text": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "type": "string", - "const": "system" - }, - { - "type": "string", - "const": "developer" - }, - { - "type": "string", - "const": "user" - }, - { - "type": "string", - "const": "assistant" - } - ], - "title": "Role" - }, - "type": { - "type": "string", - "const": "message", - "title": "Type", - "default": "message" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - }, - "OpenAIResponseMessage-Output": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "array" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "output_text": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "type": "string", - "const": "system" - }, - { - "type": "string", - "const": "developer" - }, - { - "type": "string", - "const": "user" - }, - { - "type": "string", - "const": "assistant" - } - ], - "title": "Role" - }, - "type": { - "type": "string", - "const": "message", - "title": "Type", - "default": "message" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - }, - "OpenAIResponseObject": { - "properties": { - "created_at": { - "type": "integer", - "title": "Created At" - }, - "error": { - "$ref": "#/components/schemas/OpenAIResponseError" - }, - "id": { - "type": "string", - "title": "Id" - }, - "model": { - "type": "string", - "title": "Model" - }, - "object": { - "type": "string", - "const": "response", - "title": "Object", - "default": "response" - }, - "output": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Output" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Output", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "type": "array", - "title": "Output" - }, - "parallel_tool_calls": { - "type": "boolean", - "title": "Parallel Tool Calls", - "default": false - }, - "previous_response_id": { - "title": "Previous Response Id", - "type": "string" - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt" - }, - "status": { - "type": "string", - "title": "Status" - }, - "temperature": { - "title": "Temperature", - "type": "number" - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText", - "default": { - "format": { - "type": "text" - } - } - }, - "top_p": { - "title": "Top P", - "type": "number" - }, - "tools": { - "title": "Tools", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseToolMCP" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAIResponseInputToolFileSearch", - "function": "#/components/schemas/OpenAIResponseInputToolFunction", - "mcp": "#/components/schemas/OpenAIResponseToolMCP", - "web_search": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/components/schemas/OpenAIResponseInputToolWebSearch" - } - } - }, - "type": "array" - }, - "truncation": { - "title": "Truncation", - "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIResponseUsage" - }, - "instructions": { - "title": "Instructions", - "type": "string" - } - }, - "type": "object", - "required": [ - "created_at", - "id", - "model", - "output", - "status" - ], - "title": "OpenAIResponseObject", - "description": "Complete OpenAI response object containing generation results and metadata." - }, - "OpenAIResponseOutputMessageContentOutputText": { - "properties": { - "text": { - "type": "string", - "title": "Text" - }, - "type": { - "type": "string", - "const": "output_text", - "title": "Type", - "default": "output_text" - }, - "annotations": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation" - }, - { - "$ref": "#/components/schemas/OpenAIResponseAnnotationFilePath" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "container_file_citation": "#/components/schemas/OpenAIResponseAnnotationContainerFileCitation", - "file_citation": "#/components/schemas/OpenAIResponseAnnotationFileCitation", - "file_path": "#/components/schemas/OpenAIResponseAnnotationFilePath", - "url_citation": "#/components/schemas/OpenAIResponseAnnotationCitation" - } - } - }, - "type": "array", - "title": "Annotations" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "OpenAIResponseOutputMessageContentOutputText" - }, - "OpenAIResponseOutputMessageFileSearchToolCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "queries": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Queries" - }, - "status": { - "type": "string", - "title": "Status" - }, - "type": { - "type": "string", - "const": "file_search_call", - "title": "Type", - "default": "file_search_call" - }, - "results": { - "title": "Results", - "items": { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults" - }, - "type": "array" - } - }, - "type": "object", - "required": [ - "id", - "queries", - "status" - ], - "title": "OpenAIResponseOutputMessageFileSearchToolCall", - "description": "File search tool call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageFileSearchToolCallResults": { - "properties": { - "attributes": { - "additionalProperties": true, - "type": "object", - "title": "Attributes" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "score": { - "type": "number", - "title": "Score" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "attributes", - "file_id", - "filename", - "score", - "text" - ], - "title": "OpenAIResponseOutputMessageFileSearchToolCallResults", - "description": "Search results returned by the file search operation." - }, - "OpenAIResponseOutputMessageFunctionToolCall": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "arguments": { - "type": "string", - "title": "Arguments" - }, - "type": { - "type": "string", - "const": "function_call", - "title": "Type", - "default": "function_call" - }, - "id": { - "title": "Id", - "type": "string" - }, - "status": { - "title": "Status", - "type": "string" - } - }, - "type": "object", - "required": [ - "call_id", - "name", - "arguments" - ], - "title": "OpenAIResponseOutputMessageFunctionToolCall", - "description": "Function tool call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageMCPCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "type": { - "type": "string", - "const": "mcp_call", - "title": "Type", - "default": "mcp_call" - }, - "arguments": { - "type": "string", - "title": "Arguments" - }, - "name": { - "type": "string", - "title": "Name" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "error": { - "title": "Error", - "type": "string" - }, - "output": { - "title": "Output", - "type": "string" - } - }, - "type": "object", - "required": [ - "id", - "arguments", - "name", - "server_label" - ], - "title": "OpenAIResponseOutputMessageMCPCall", - "description": "Model Context Protocol (MCP) call output message for OpenAI responses." - }, - "OpenAIResponseOutputMessageMCPListTools": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "type": { - "type": "string", - "const": "mcp_list_tools", - "title": "Type", - "default": "mcp_list_tools" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "tools": { - "items": { - "$ref": "#/components/schemas/MCPListToolsTool" - }, - "type": "array", - "title": "Tools" - } - }, - "type": "object", - "required": [ - "id", - "server_label", - "tools" - ], - "title": "OpenAIResponseOutputMessageMCPListTools", - "description": "MCP list tools output message containing available tools from an MCP server." - }, - "OpenAIResponseOutputMessageWebSearchToolCall": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "status": { - "type": "string", - "title": "Status" - }, - "type": { - "type": "string", - "const": "web_search_call", - "title": "Type", - "default": "web_search_call" - } - }, - "type": "object", - "required": [ - "id", - "status" - ], - "title": "OpenAIResponseOutputMessageWebSearchToolCall", - "description": "Web search tool call output message for OpenAI responses." - }, - "OpenAIResponsePrompt": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "variables": { - "title": "Variables", - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "input_file": "#/components/schemas/OpenAIResponseInputMessageContentFile", - "input_image": "#/components/schemas/OpenAIResponseInputMessageContentImage", - "input_text": "#/components/schemas/OpenAIResponseInputMessageContentText" - } - } - }, - "type": "object" - }, - "version": { - "title": "Version", - "type": "string" - } - }, - "type": "object", - "required": [ - "id" - ], - "title": "OpenAIResponsePrompt", - "description": "OpenAI compatible Prompt object that is used in OpenAI responses." - }, - "OpenAIResponseText": { - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAIResponseTextFormat" - } - }, - "type": "object", - "title": "OpenAIResponseText", - "description": "Text response configuration for OpenAI responses." - }, - "OpenAIResponseTextFormat": { - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "const": "text" - }, - { - "type": "string", - "const": "json_schema" - }, - { - "type": "string", - "const": "json_object" - } - ], - "title": "Type" - }, - "name": { - "title": "Name", - "type": "string" - }, - "schema": { - "title": "Schema", - "additionalProperties": true, - "type": "object" - }, - "description": { - "title": "Description", - "type": "string" - }, - "strict": { - "title": "Strict", - "type": "boolean" - } - }, - "type": "object", - "title": "OpenAIResponseTextFormat", - "description": "Configuration for Responses API text format." - }, - "OpenAIResponseToolMCP": { - "properties": { - "type": { - "type": "string", - "const": "mcp", - "title": "Type", - "default": "mcp" - }, - "server_label": { - "type": "string", - "title": "Server Label" - }, - "allowed_tools": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "$ref": "#/components/schemas/AllowedToolsFilter" - } - ], - "title": "Allowed Tools" - } - }, - "type": "object", - "required": [ - "server_label" - ], - "title": "OpenAIResponseToolMCP", - "description": "Model Context Protocol (MCP) tool configuration for OpenAI response object." - }, - "OpenAIResponseUsage": { - "properties": { - "input_tokens": { - "type": "integer", - "title": "Input Tokens" - }, - "output_tokens": { - "type": "integer", - "title": "Output Tokens" - }, - "total_tokens": { - "type": "integer", - "title": "Total Tokens" - }, - "input_tokens_details": { - "$ref": "#/components/schemas/OpenAIResponseUsageInputTokensDetails" - }, - "output_tokens_details": { - "$ref": "#/components/schemas/OpenAIResponseUsageOutputTokensDetails" - } - }, - "type": "object", - "required": [ - "input_tokens", - "output_tokens", - "total_tokens" - ], - "title": "OpenAIResponseUsage", - "description": "Usage information for OpenAI response." - }, - "OpenAIResponseUsageInputTokensDetails": { - "properties": { - "cached_tokens": { - "title": "Cached Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIResponseUsageInputTokensDetails", - "description": "Token details for input tokens in OpenAI response usage." - }, - "OpenAIResponseUsageOutputTokensDetails": { - "properties": { - "reasoning_tokens": { - "title": "Reasoning Tokens", - "type": "integer" - } - }, - "type": "object", - "title": "OpenAIResponseUsageOutputTokensDetails", - "description": "Token details for output tokens in OpenAI response usage." - }, - "OpenAISystemMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "system", - "title": "Role", - "default": "system" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAISystemMessageParam", - "description": "A system message providing instructions or context to the model." - }, - "OpenAITokenLogProb": { - "properties": { - "token": { - "type": "string", - "title": "Token" - }, - "bytes": { - "title": "Bytes", - "items": { - "type": "integer" - }, - "type": "array" - }, - "logprob": { - "type": "number", - "title": "Logprob" - }, - "top_logprobs": { - "items": { - "$ref": "#/components/schemas/OpenAITopLogProb" - }, - "type": "array", - "title": "Top Logprobs" - } - }, - "type": "object", - "required": [ - "token", - "logprob", - "top_logprobs" - ], - "title": "OpenAITokenLogProb", - "description": "The log probability for a token from an OpenAI-compatible chat completion response." - }, - "OpenAIToolMessageParam": { - "properties": { - "role": { - "type": "string", - "const": "tool", - "title": "Role", - "default": "tool" - }, - "tool_call_id": { - "type": "string", - "title": "Tool Call Id" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "tool_call_id", - "content" - ], - "title": "OpenAIToolMessageParam", - "description": "A message representing the result of a tool invocation in an OpenAI-compatible chat completion request." - }, - "OpenAITopLogProb": { - "properties": { - "token": { - "type": "string", - "title": "Token" - }, - "bytes": { - "title": "Bytes", - "items": { - "type": "integer" - }, - "type": "array" - }, - "logprob": { - "type": "number", - "title": "Logprob" - } - }, - "type": "object", - "required": [ - "token", - "logprob" - ], - "title": "OpenAITopLogProb", - "description": "The top log probability for a token from an OpenAI-compatible chat completion response." - }, - "OpenAIUserMessageParam-Input": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file": "#/components/schemas/OpenAIFile", - "image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam", - "text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "description": "A message from the user in an OpenAI-compatible chat completion request." - }, - "OpenAIUserMessageParam-Output": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "file": "#/components/schemas/OpenAIFile", - "image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam", - "text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "description": "A message from the user in an OpenAI-compatible chat completion request." - }, - "OptimizerConfig": { - "properties": { - "optimizer_type": { - "$ref": "#/components/schemas/OptimizerType" - }, - "lr": { - "type": "number", - "title": "Lr" - }, - "weight_decay": { - "type": "number", - "title": "Weight Decay" - }, - "num_warmup_steps": { - "type": "integer", - "title": "Num Warmup Steps" - } - }, - "type": "object", - "required": [ - "optimizer_type", - "lr", - "weight_decay", - "num_warmup_steps" - ], - "title": "OptimizerConfig", - "description": "Configuration parameters for the optimization algorithm." - }, - "OptimizerType": { - "type": "string", - "enum": [ - "adam", - "adamw", - "sgd" - ], - "title": "OptimizerType", - "description": "Available optimizer algorithms for training." - }, - "Order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "title": "Order", - "description": "Sort order for paginated responses." - }, - "OutputTokensDetails": { - "properties": { - "reasoning_tokens": { - "type": "integer", - "title": "Reasoning Tokens" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "reasoning_tokens" - ], - "title": "OutputTokensDetails" - }, - "PostTrainingJob": { - "properties": { - "job_uuid": { - "type": "string", - "title": "Job Uuid" - } - }, - "type": "object", - "required": [ - "job_uuid" - ], - "title": "PostTrainingJob" - }, - "Prompt": { - "properties": { - "prompt": { - "title": "Prompt", - "description": "The system prompt with variable placeholders", - "type": "string" - }, - "version": { - "type": "integer", - "minimum": 1.0, - "title": "Version", - "description": "Version (integer starting at 1, incremented on save)" - }, - "prompt_id": { - "type": "string", - "title": "Prompt Id", - "description": "Unique identifier in format 'pmpt_<48-digit-hash>'" - }, - "variables": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Variables", - "description": "List of variable names that can be used in the prompt template" - }, - "is_default": { - "type": "boolean", - "title": "Is Default", - "description": "Boolean indicating whether this version is the default version", - "default": false - } - }, - "type": "object", - "required": [ - "version", - "prompt_id" - ], - "title": "Prompt", - "description": "A prompt resource representing a stored OpenAI Compatible prompt template in Llama Stack." - }, - "ProviderInfo": { - "properties": { - "api": { - "type": "string", - "title": "Api" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "provider_type": { - "type": "string", - "title": "Provider Type" - }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - }, - "health": { - "additionalProperties": true, - "type": "object", - "title": "Health" - } - }, - "type": "object", - "required": [ - "api", - "provider_id", - "provider_type", - "config", - "health" - ], - "title": "ProviderInfo", - "description": "Information about a registered provider including its configuration and health status." - }, - "QueryChunksResponse": { - "properties": { - "chunks": { - "items": { - "$ref": "#/components/schemas/Chunk-Output" - }, - "type": "array", - "title": "Chunks" - }, - "scores": { - "items": { - "type": "number" - }, - "type": "array", - "title": "Scores" - } - }, - "type": "object", - "required": [ - "chunks", - "scores" - ], - "title": "QueryChunksResponse", - "description": "Response from querying chunks in a vector database." - }, - "RAGQueryConfig": { - "properties": { - "query_generator_config": { - "oneOf": [ - { - "$ref": "#/components/schemas/DefaultRAGQueryGeneratorConfig" - }, - { - "$ref": "#/components/schemas/LLMRAGQueryGeneratorConfig" - } - ], - "title": "Query Generator Config", - "default": { - "type": "default", - "separator": " " - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "default": "#/components/schemas/DefaultRAGQueryGeneratorConfig", - "llm": "#/components/schemas/LLMRAGQueryGeneratorConfig" - } - } - }, - "max_tokens_in_context": { - "type": "integer", - "title": "Max Tokens In Context", - "default": 4096 - }, - "max_chunks": { - "type": "integer", - "title": "Max Chunks", - "default": 5 - }, - "chunk_template": { - "type": "string", - "title": "Chunk Template", - "default": "Result {index}\nContent: {chunk.content}\nMetadata: {metadata}\n" - }, - "mode": { - "default": "vector", - "$ref": "#/components/schemas/RAGSearchMode" - }, - "ranker": { - "title": "Ranker", - "oneOf": [ - { - "$ref": "#/components/schemas/RRFRanker" - }, - { - "$ref": "#/components/schemas/WeightedRanker" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "rrf": "#/components/schemas/RRFRanker", - "weighted": "#/components/schemas/WeightedRanker" - } - } - } - }, - "type": "object", - "title": "RAGQueryConfig", - "description": "Configuration for the RAG query generation." - }, - "RAGQueryResult": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "title": "RAGQueryResult", - "description": "Result of a RAG query containing retrieved content and metadata." - }, - "RAGSearchMode": { - "type": "string", - "enum": [ - "vector", - "keyword", - "hybrid" - ], - "title": "RAGSearchMode", - "description": "Search modes for RAG query retrieval:\n- VECTOR: Uses vector similarity search for semantic matching\n- KEYWORD: Uses keyword-based search for exact matching\n- HYBRID: Combines both vector and keyword search for better results" - }, - "RRFRanker": { - "properties": { - "type": { - "type": "string", - "const": "rrf", - "title": "Type", - "default": "rrf" - }, - "impact_factor": { - "type": "number", - "title": "Impact Factor", - "default": 60.0, - "minimum": 0.0 - } - }, - "type": "object", - "title": "RRFRanker", - "description": "Reciprocal Rank Fusion (RRF) ranker configuration." - }, - "RegexParserScoringFnParams": { - "properties": { - "type": { - "type": "string", - "const": "regex_parser", - "title": "Type", - "default": "regex_parser" - }, - "parsing_regexes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Parsing Regexes", - "description": "Regex to extract the answer from generated response" - }, - "aggregation_functions": { - "items": { - "$ref": "#/components/schemas/AggregationFunctionType" - }, - "type": "array", - "title": "Aggregation Functions", - "description": "Aggregation functions to apply to the scores of each row" - } - }, - "type": "object", - "title": "RegexParserScoringFnParams", - "description": "Parameters for regex parser scoring function configuration." - }, - "RerankData": { - "properties": { - "index": { - "type": "integer", - "title": "Index" - }, - "relevance_score": { - "type": "number", - "title": "Relevance Score" - } - }, - "type": "object", - "required": [ - "index", - "relevance_score" - ], - "title": "RerankData", - "description": "A single rerank result from a reranking response." - }, - "RerankResponse": { - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/RerankData" - }, - "type": "array", - "title": "Data" - } - }, - "type": "object", - "required": [ - "data" - ], - "title": "RerankResponse", - "description": "Response from a reranking request." - }, - "RouteInfo": { - "properties": { - "route": { - "type": "string", - "title": "Route" - }, - "method": { - "type": "string", - "title": "Method" - }, - "provider_types": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Provider Types" - } - }, - "type": "object", - "required": [ - "route", - "method", - "provider_types" - ], - "title": "RouteInfo", - "description": "Information about an API route including its path, method, and implementing providers." - }, - "RowsDataSource": { - "properties": { - "type": { - "type": "string", - "const": "rows", - "title": "Type", - "default": "rows" - }, - "rows": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Rows" - } - }, - "type": "object", - "required": [ - "rows" - ], - "title": "RowsDataSource", - "description": "A dataset stored in rows." - }, - "RunShieldResponse": { - "properties": { - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "type": "object", - "title": "RunShieldResponse", - "description": "Response from running a safety shield." - }, - "SafetyViolation": { - "properties": { - "violation_level": { - "$ref": "#/components/schemas/ViolationLevel" - }, - "user_message": { - "title": "User Message", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "violation_level" - ], - "title": "SafetyViolation", - "description": "Details of a safety violation detected by content moderation." - }, - "SamplingParams": { - "properties": { - "strategy": { - "oneOf": [ - { - "$ref": "#/components/schemas/GreedySamplingStrategy" - }, - { - "$ref": "#/components/schemas/TopPSamplingStrategy" - }, - { - "$ref": "#/components/schemas/TopKSamplingStrategy" - } - ], - "title": "Strategy", - "discriminator": { - "propertyName": "type", - "mapping": { - "greedy": "#/components/schemas/GreedySamplingStrategy", - "top_k": "#/components/schemas/TopKSamplingStrategy", - "top_p": "#/components/schemas/TopPSamplingStrategy" - } - } - }, - "max_tokens": { - "title": "Max Tokens", - "type": "integer" - }, - "repetition_penalty": { - "title": "Repetition Penalty", - "default": 1.0, - "type": "number" - }, - "stop": { - "title": "Stop", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object", - "title": "SamplingParams", - "description": "Sampling parameters." - }, - "ScoreBatchResponse": { - "properties": { - "dataset_id": { - "title": "Dataset Id", - "type": "string" - }, - "results": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Results" - } - }, - "type": "object", - "required": [ - "results" - ], - "title": "ScoreBatchResponse", - "description": "Response from batch scoring operations on datasets." - }, - "ScoreResponse": { - "properties": { - "results": { - "additionalProperties": { - "$ref": "#/components/schemas/ScoringResult" - }, - "type": "object", - "title": "Results" - } - }, - "type": "object", - "required": [ - "results" - ], - "title": "ScoreResponse", - "description": "The response from scoring." - }, - "ScoringFn-Output": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "scoring_function", - "title": "Type", - "default": "scoring_function" - }, - "description": { - "title": "Description", - "type": "string" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata", - "description": "Any additional metadata for this definition" - }, - "return_type": { - "oneOf": [ - { - "$ref": "#/components/schemas/StringType" - }, - { - "$ref": "#/components/schemas/NumberType" - }, - { - "$ref": "#/components/schemas/BooleanType" - }, - { - "$ref": "#/components/schemas/ArrayType" - }, - { - "$ref": "#/components/schemas/ObjectType" - }, - { - "$ref": "#/components/schemas/JsonType" - }, - { - "$ref": "#/components/schemas/UnionType" - }, - { - "$ref": "#/components/schemas/ChatCompletionInputType" - }, - { - "$ref": "#/components/schemas/CompletionInputType" - }, - { - "$ref": "#/components/schemas/AgentTurnInputType" - } - ], - "title": "Return Type", - "description": "The return type of the deterministic function", - "discriminator": { - "propertyName": "type", - "mapping": { - "agent_turn_input": "#/components/schemas/AgentTurnInputType", - "array": "#/components/schemas/ArrayType", - "boolean": "#/components/schemas/BooleanType", - "chat_completion_input": "#/components/schemas/ChatCompletionInputType", - "completion_input": "#/components/schemas/CompletionInputType", - "json": "#/components/schemas/JsonType", - "number": "#/components/schemas/NumberType", - "object": "#/components/schemas/ObjectType", - "string": "#/components/schemas/StringType", - "union": "#/components/schemas/UnionType" - } - } - }, - "params": { - "title": "Params", - "description": "The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "basic": "#/components/schemas/BasicScoringFnParams", - "llm_as_judge": "#/components/schemas/LLMAsJudgeScoringFnParams", - "regex_parser": "#/components/schemas/RegexParserScoringFnParams" - } - } - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id", - "return_type" - ], - "title": "ScoringFn", - "description": "A scoring function resource for evaluating model outputs." - }, - "ScoringResult": { - "properties": { - "score_rows": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Score Rows" - }, - "aggregated_results": { - "additionalProperties": true, - "type": "object", - "title": "Aggregated Results" - } - }, - "type": "object", - "required": [ - "score_rows", - "aggregated_results" - ], - "title": "ScoringResult", - "description": "A scoring result for a single row." - }, - "SearchRankingOptions": { - "properties": { - "ranker": { - "title": "Ranker", - "type": "string" - }, - "score_threshold": { - "title": "Score Threshold", - "default": 0.0, - "type": "number" - } - }, - "type": "object", - "title": "SearchRankingOptions", - "description": "Options for ranking and filtering search results." - }, - "Shield": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "shield", - "title": "Type", - "default": "shield" - }, - "params": { - "title": "Params", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "Shield", - "description": "A safety shield resource that can be used to check content." - }, - "ShieldCallStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "shield_call", - "title": "Step Type", - "default": "shield_call" - }, - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "violation" - ], - "title": "ShieldCallStep", - "description": "A shield call step in an agent turn." - }, - "StopReason": { - "type": "string", - "enum": [ - "end_of_turn", - "end_of_message", - "out_of_tokens" - ], - "title": "StopReason" - }, - "StringType": { - "properties": { - "type": { - "type": "string", - "const": "string", - "title": "Type", - "default": "string" - } - }, - "type": "object", - "title": "StringType", - "description": "Parameter type for string values." - }, - "SystemMessage": { - "properties": { - "role": { - "type": "string", - "const": "system", - "title": "Role", - "default": "system" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "SystemMessage", - "description": "A system message providing instructions or context to the model." - }, - "SystemMessageBehavior": { - "type": "string", - "enum": [ - "append", - "replace" - ], - "title": "SystemMessageBehavior", - "description": "Config for how to override the default system prompt." - }, - "TextContentItem": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type", - "default": "text" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "text" - ], - "title": "TextContentItem", - "description": "A text content item" - }, - "ToolCall": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "arguments": { - "type": "string", - "title": "Arguments" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "arguments" - ], - "title": "ToolCall" - }, - "ToolChoice": { - "type": "string", - "enum": [ - "auto", - "required", - "none" - ], - "title": "ToolChoice", - "description": "Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model." - }, - "ToolConfig": { - "properties": { - "tool_choice": { - "anyOf": [ - { - "$ref": "#/components/schemas/ToolChoice" - }, - { - "type": "string" - } - ], - "title": "Tool Choice", - "default": "auto" - }, - "tool_prompt_format": { - "$ref": "#/components/schemas/ToolPromptFormat" - }, - "system_message_behavior": { - "default": "append", - "$ref": "#/components/schemas/SystemMessageBehavior" - } - }, - "type": "object", - "title": "ToolConfig", - "description": "Configuration for tool use." - }, - "ToolDef": { - "properties": { - "toolgroup_id": { - "title": "Toolgroup Id", - "type": "string" - }, - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "title": "Description", - "type": "string" - }, - "input_schema": { - "title": "Input Schema", - "additionalProperties": true, - "type": "object" - }, - "output_schema": { - "title": "Output Schema", - "additionalProperties": true, - "type": "object" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "name" - ], - "title": "ToolDef", - "description": "Tool definition used in runtime contexts." - }, - "ToolExecutionStep-Output": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "step_id": { - "type": "string", - "title": "Step Id" - }, - "started_at": { - "title": "Started At", - "type": "string", - "format": "date-time" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - }, - "step_type": { - "type": "string", - "const": "tool_execution", - "title": "Step Type", - "default": "tool_execution" - }, - "tool_calls": { - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array", - "title": "Tool Calls" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse-Output" - }, - "type": "array", - "title": "Tool Responses" - } - }, - "type": "object", - "required": [ - "turn_id", - "step_id", - "tool_calls", - "tool_responses" - ], - "title": "ToolExecutionStep", - "description": "A tool execution step in an agent turn." - }, - "ToolGroup": { - "properties": { - "identifier": { - "type": "string", - "title": "Identifier", - "description": "Unique identifier for this resource in llama stack" - }, - "provider_resource_id": { - "title": "Provider Resource Id", - "description": "Unique identifier for this resource in the provider", - "type": "string" - }, - "provider_id": { - "type": "string", - "title": "Provider Id", - "description": "ID of the provider that owns this resource" - }, - "type": { - "type": "string", - "const": "tool_group", - "title": "Type", - "default": "tool_group" - }, - "mcp_endpoint": { - "$ref": "#/components/schemas/URL" - }, - "args": { - "title": "Args", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "identifier", - "provider_id" - ], - "title": "ToolGroup", - "description": "A group of related tools managed together." - }, - "ToolInvocationResult": { - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "error_message": { - "title": "Error Message", - "type": "string" - }, - "error_code": { - "title": "Error Code", - "type": "integer" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "title": "ToolInvocationResult", - "description": "Result of a tool invocation." - }, - "ToolPromptFormat": { - "type": "string", - "enum": [ - "json", - "function_tag", - "python_list" - ], - "title": "ToolPromptFormat", - "description": "Prompt format for calling custom / zero shot tools." - }, - "ToolResponse-Input": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "description": "Response from a tool invocation." - }, - "ToolResponse-Output": { - "properties": { - "call_id": { - "type": "string", - "title": "Call Id" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object" - } - }, - "type": "object", - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "description": "Response from a tool invocation." - }, - "ToolResponseMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "tool", - "title": "Role", - "default": "tool" - }, - "call_id": { - "type": "string", - "title": "Call Id" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - } - }, - "type": "object", - "required": [ - "call_id", - "content" - ], - "title": "ToolResponseMessage", - "description": "A message representing the result of a tool invocation." - }, - "TopKSamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "top_k", - "title": "Type", - "default": "top_k" - }, - "top_k": { - "type": "integer", - "minimum": 1.0, - "title": "Top K" - } - }, - "type": "object", - "required": [ - "top_k" - ], - "title": "TopKSamplingStrategy", - "description": "Top-k sampling strategy that restricts sampling to the k most likely tokens." - }, - "TopPSamplingStrategy": { - "properties": { - "type": { - "type": "string", - "const": "top_p", - "title": "Type", - "default": "top_p" - }, - "temperature": { - "title": "Temperature", - "type": "number", - "minimum": 0.0 - }, - "top_p": { - "title": "Top P", - "default": 0.95, - "type": "number" - } - }, - "type": "object", - "required": [ - "temperature" - ], - "title": "TopPSamplingStrategy", - "description": "Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p." - }, - "TrainingConfig": { - "properties": { - "n_epochs": { - "type": "integer", - "title": "N Epochs" - }, - "max_steps_per_epoch": { - "type": "integer", - "title": "Max Steps Per Epoch", - "default": 1 - }, - "gradient_accumulation_steps": { - "type": "integer", - "title": "Gradient Accumulation Steps", - "default": 1 - }, - "max_validation_steps": { - "title": "Max Validation Steps", - "default": 1, - "type": "integer" - }, - "data_config": { - "$ref": "#/components/schemas/DataConfig" - }, - "optimizer_config": { - "$ref": "#/components/schemas/OptimizerConfig" - }, - "efficiency_config": { - "$ref": "#/components/schemas/EfficiencyConfig" - }, - "dtype": { - "title": "Dtype", - "default": "bf16", - "type": "string" - } - }, - "type": "object", - "required": [ - "n_epochs" - ], - "title": "TrainingConfig", - "description": "Comprehensive configuration for the training process." - }, - "Turn": { - "properties": { - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "input_messages": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/UserMessage-Output" - }, - { - "$ref": "#/components/schemas/ToolResponseMessage-Output" - } - ] - }, - "type": "array", - "title": "Input Messages" - }, - "steps": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/InferenceStep-Output" - }, - { - "$ref": "#/components/schemas/ToolExecutionStep-Output" - }, - { - "$ref": "#/components/schemas/ShieldCallStep-Output" - }, - { - "$ref": "#/components/schemas/MemoryRetrievalStep-Output" - } - ], - "discriminator": { - "propertyName": "step_type", - "mapping": { - "inference": "#/components/schemas/InferenceStep-Output", - "memory_retrieval": "#/components/schemas/MemoryRetrievalStep-Output", - "shield_call": "#/components/schemas/ShieldCallStep-Output", - "tool_execution": "#/components/schemas/ToolExecutionStep-Output" - } - } - }, - "type": "array", - "title": "Steps" - }, - "output_message": { - "$ref": "#/components/schemas/CompletionMessage-Output" - }, - "output_attachments": { - "title": "Output Attachments", - "items": { - "$ref": "#/components/schemas/Attachment-Output" - }, - "type": "array" - }, - "started_at": { - "type": "string", - "format": "date-time", - "title": "Started At" - }, - "completed_at": { - "title": "Completed At", - "type": "string", - "format": "date-time" - } - }, - "type": "object", - "required": [ - "turn_id", - "session_id", - "input_messages", - "steps", - "output_message", - "started_at" - ], - "title": "Turn", - "description": "A single turn in an interaction with an Agentic System." - }, - "URIDataSource": { - "properties": { - "type": { - "type": "string", - "const": "uri", - "title": "Type", - "default": "uri" - }, - "uri": { - "type": "string", - "title": "Uri" - } - }, - "type": "object", - "required": [ - "uri" - ], - "title": "URIDataSource", - "description": "A dataset that can be obtained from a URI." - }, - "URL": { - "properties": { - "uri": { - "type": "string", - "title": "Uri" - } - }, - "type": "object", - "required": [ - "uri" - ], - "title": "URL", - "description": "A URL reference to external content." - }, - "UnionType": { - "properties": { - "type": { - "type": "string", - "const": "union", - "title": "Type", - "default": "union" - } - }, - "type": "object", - "title": "UnionType", - "description": "Parameter type for union values." - }, - "UserMessage-Input": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Input" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Input", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Context" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "UserMessage", - "description": "A message from the user in a chat conversation." - }, - "UserMessage-Output": { - "properties": { - "role": { - "type": "string", - "const": "user", - "title": "Role", - "default": "user" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Content" - }, - "context": { - "anyOf": [ - { - "type": "string" - }, - { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem-Output" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/ImageContentItem-Output", - "text": "#/components/schemas/TextContentItem" - } - } - }, - "type": "array" - } - ], - "title": "Context" - } - }, - "type": "object", - "required": [ - "content" - ], - "title": "UserMessage", - "description": "A message from the user in a chat conversation." - }, - "VectorStoreChunkingStrategyAuto": { - "properties": { - "type": { - "type": "string", - "const": "auto", - "title": "Type", - "default": "auto" - } - }, - "type": "object", - "title": "VectorStoreChunkingStrategyAuto", - "description": "Automatic chunking strategy for vector store files." - }, - "VectorStoreChunkingStrategyStatic": { - "properties": { - "type": { - "type": "string", - "const": "static", - "title": "Type", - "default": "static" - }, - "static": { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStaticConfig" - } - }, - "type": "object", - "required": [ - "static" - ], - "title": "VectorStoreChunkingStrategyStatic", - "description": "Static chunking strategy with configurable parameters." - }, - "VectorStoreChunkingStrategyStaticConfig": { - "properties": { - "chunk_overlap_tokens": { - "type": "integer", - "title": "Chunk Overlap Tokens", - "default": 400 - }, - "max_chunk_size_tokens": { - "type": "integer", - "maximum": 4096.0, - "minimum": 100.0, - "title": "Max Chunk Size Tokens", - "default": 800 - } - }, - "type": "object", - "title": "VectorStoreChunkingStrategyStaticConfig", - "description": "Configuration for static chunking strategy." - }, - "VectorStoreContent": { - "properties": { - "type": { - "type": "string", - "const": "text", - "title": "Type" - }, - "text": { - "type": "string", - "title": "Text" - } - }, - "type": "object", - "required": [ - "type", - "text" - ], - "title": "VectorStoreContent", - "description": "Content item from a vector store file or search result." - }, - "VectorStoreFileBatchObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.file_batch" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "status": { - "anyOf": [ - { - "type": "string", - "const": "completed" - }, - { - "type": "string", - "const": "in_progress" - }, - { - "type": "string", - "const": "cancelled" - }, - { - "type": "string", - "const": "failed" - } - ], - "title": "Status" - }, - "file_counts": { - "$ref": "#/components/schemas/VectorStoreFileCounts" - } - }, - "type": "object", - "required": [ - "id", - "created_at", - "vector_store_id", - "status", - "file_counts" - ], - "title": "VectorStoreFileBatchObject", - "description": "OpenAI Vector Store File Batch object." - }, - "VectorStoreFileCounts": { - "properties": { - "completed": { - "type": "integer", - "title": "Completed" - }, - "cancelled": { - "type": "integer", - "title": "Cancelled" - }, - "failed": { - "type": "integer", - "title": "Failed" - }, - "in_progress": { - "type": "integer", - "title": "In Progress" - }, - "total": { - "type": "integer", - "title": "Total" - } - }, - "type": "object", - "required": [ - "completed", - "cancelled", - "failed", - "in_progress", - "total" - ], - "title": "VectorStoreFileCounts", - "description": "File processing status counts for a vector store." - }, - "VectorStoreFileLastError": { - "properties": { - "code": { - "anyOf": [ - { - "type": "string", - "const": "server_error" - }, - { - "type": "string", - "const": "rate_limit_exceeded" - } - ], - "title": "Code" - }, - "message": { - "type": "string", - "title": "Message" - } - }, - "type": "object", - "required": [ - "code", - "message" - ], - "title": "VectorStoreFileLastError", - "description": "Error information for failed vector store file processing." - }, - "VectorStoreFileObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.file" - }, - "attributes": { - "additionalProperties": true, - "type": "object", - "title": "Attributes" - }, - "chunking_strategy": { - "oneOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "title": "Chunking Strategy", - "discriminator": { - "propertyName": "type", - "mapping": { - "auto": "#/components/schemas/VectorStoreChunkingStrategyAuto", - "static": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - } - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "last_error": { - "$ref": "#/components/schemas/VectorStoreFileLastError" - }, - "status": { - "anyOf": [ - { - "type": "string", - "const": "completed" - }, - { - "type": "string", - "const": "in_progress" - }, - { - "type": "string", - "const": "cancelled" - }, - { - "type": "string", - "const": "failed" - } - ], - "title": "Status" - }, - "usage_bytes": { - "type": "integer", - "title": "Usage Bytes", - "default": 0 - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - } - }, - "type": "object", - "required": [ - "id", - "chunking_strategy", - "created_at", - "status", - "vector_store_id" - ], - "title": "VectorStoreFileObject", - "description": "OpenAI Vector Store File object." - }, - "VectorStoreObject": { - "properties": { - "id": { - "type": "string", - "title": "Id" - }, - "object": { - "type": "string", - "title": "Object", - "default": "vector_store" - }, - "created_at": { - "type": "integer", - "title": "Created At" - }, - "name": { - "title": "Name", - "type": "string" - }, - "usage_bytes": { - "type": "integer", - "title": "Usage Bytes", - "default": 0 - }, - "file_counts": { - "$ref": "#/components/schemas/VectorStoreFileCounts" - }, - "status": { - "type": "string", - "title": "Status", - "default": "completed" - }, - "expires_after": { - "title": "Expires After", - "additionalProperties": true, - "type": "object" - }, - "expires_at": { - "title": "Expires At", - "type": "integer" - }, - "last_active_at": { - "title": "Last Active At", - "type": "integer" - }, - "metadata": { - "additionalProperties": true, - "type": "object", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "id", - "created_at", - "file_counts" - ], - "title": "VectorStoreObject", - "description": "OpenAI Vector Store object." - }, - "VectorStoreSearchResponse": { - "properties": { - "file_id": { - "type": "string", - "title": "File Id" - }, - "filename": { - "type": "string", - "title": "Filename" - }, - "score": { - "type": "number", - "title": "Score" - }, - "attributes": { - "title": "Attributes", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ] - }, - "type": "object" - }, - "content": { - "items": { - "$ref": "#/components/schemas/VectorStoreContent" - }, - "type": "array", - "title": "Content" - } - }, - "type": "object", - "required": [ - "file_id", - "filename", - "score", - "content" - ], - "title": "VectorStoreSearchResponse", - "description": "Response from searching a vector store." - }, - "VectorStoreSearchResponsePage": { - "properties": { - "object": { - "type": "string", - "title": "Object", - "default": "vector_store.search_results.page" - }, - "search_query": { - "type": "string", - "title": "Search Query" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreSearchResponse" - }, - "type": "array", - "title": "Data" - }, - "has_more": { - "type": "boolean", - "title": "Has More", - "default": false - }, - "next_page": { - "title": "Next Page", - "type": "string" - } - }, - "type": "object", - "required": [ - "search_query", - "data" - ], - "title": "VectorStoreSearchResponsePage", - "description": "Paginated response from searching a vector store." - }, - "VersionInfo": { - "properties": { - "version": { - "type": "string", - "title": "Version" - } - }, - "type": "object", - "required": [ - "version" - ], - "title": "VersionInfo", - "description": "Version information for the service." - }, - "ViolationLevel": { - "type": "string", - "enum": [ - "info", - "warn", - "error" - ], - "title": "ViolationLevel", - "description": "Severity level of a safety violation." - }, - "WeightedRanker": { - "properties": { - "type": { - "type": "string", - "const": "weighted", - "title": "Type", - "default": "weighted" - }, - "alpha": { - "type": "number", - "maximum": 1.0, - "minimum": 0.0, - "title": "Alpha", - "description": "Weight factor between 0 and 1. 0 means only keyword scores, 1 means only vector scores.", - "default": 0.5 - } - }, - "type": "object", - "title": "WeightedRanker", - "description": "Weighted ranker configuration that combines vector and keyword scores." - }, - "_URLOrData": { - "properties": { - "url": { - "$ref": "#/components/schemas/URL" - }, - "data": { - "contentEncoding": "base64", - "title": "Data", - "type": "string" - } - }, - "type": "object", - "title": "_URLOrData", - "description": "A URL or a base64 encoded string" - }, - "__main_____agents_agent_id_session_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_name": { - "type": "string", - "title": "Session Name" - } - }, - "type": "object", - "required": [ - "agent_id", - "session_name" - ], - "title": "_agents_agent_id_session_Request" - }, - "__main_____agents_agent_id_session_session_id_turn_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "messages": { - "$ref": "#/components/schemas/UserMessage-Input" - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "documents": { - "$ref": "#/components/schemas/Document" - }, - "toolgroups": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/AgentToolGroupWithArgs" - } - ], - "title": "Toolgroups" - }, - "tool_config": { - "$ref": "#/components/schemas/ToolConfig" - } - }, - "type": "object", - "required": [ - "agent_id", - "session_id", - "messages", - "documents", - "toolgroups", - "tool_config" - ], - "title": "_agents_agent_id_session_session_id_turn_Request" - }, - "__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request": { - "properties": { - "agent_id": { - "type": "string", - "title": "Agent Id" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "turn_id": { - "type": "string", - "title": "Turn Id" - }, - "tool_responses": { - "$ref": "#/components/schemas/ToolResponse-Input" - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - } - }, - "type": "object", - "required": [ - "agent_id", - "session_id", - "turn_id", - "tool_responses" - ], - "title": "_agents_agent_id_session_session_id_turn_turn_id_resume_Request" - }, - "__main_____datasets_Request": { - "properties": { - "purpose": { - "$ref": "#/components/schemas/DatasetPurpose" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "dataset_id": { - "type": "string", - "title": "Dataset Id" - } - }, - "type": "object", - "required": [ - "purpose", - "metadata", - "dataset_id" - ], - "title": "_datasets_Request" - }, - "_batches_Request": { - "properties": { - "input_file_id": { - "type": "string", - "title": "Input File Id" - }, - "endpoint": { - "type": "string", - "title": "Endpoint" - }, - "completion_window": { - "type": "string", - "title": "Completion Window" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "idempotency_key": { - "type": "string", - "title": "Idempotency Key" - } - }, - "type": "object", - "required": [ - "input_file_id", - "endpoint", - "completion_window", - "metadata", - "idempotency_key" - ], - "title": "_batches_Request" - }, - "_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - } - }, - "type": "object", - "required": [ - "batch_id" - ], - "title": "_batches_batch_id_cancel_Request" - }, - "_conversations_Request": { - "properties": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Input" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "title": "Items", - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall", - "function_call_output": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput", - "mcp_approval_request": "#/components/schemas/OpenAIResponseMCPApprovalRequest", - "mcp_approval_response": "#/components/schemas/OpenAIResponseMCPApprovalResponse", - "mcp_call": "#/components/schemas/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools", - "message": "#/components/schemas/OpenAIResponseMessage-Input", - "web_search_call": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - } - } - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "items", - "metadata" - ], - "title": "_conversations_Request" - }, - "_conversations_conversation_id_Request": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "conversation_id", - "metadata" - ], - "title": "_conversations_conversation_id_Request" - }, - "_conversations_conversation_id_items_Request": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage-Input" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - } - ], - "title": "Items" - } - }, - "type": "object", - "required": [ - "conversation_id", - "items" - ], - "title": "_conversations_conversation_id_items_Request" - }, - "_inference_rerank_Request": { - "properties": { - "model": { - "type": "string", - "title": "Model" - }, - "query": { - "type": "string", - "title": "Query" - }, - "items": { - "type": "string", - "title": "Items" - }, - "max_num_results": { - "type": "integer", - "title": "Max Num Results" - } - }, - "type": "object", - "required": [ - "model", - "query", - "items", - "max_num_results" - ], - "title": "_inference_rerank_Request" - }, - "_models_Request": { - "properties": { - "model_id": { - "type": "string", - "title": "Model Id" - }, - "provider_model_id": { - "type": "string", - "title": "Provider Model Id" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "metadata": { - "type": "string", - "title": "Metadata" - }, - "model_type": { - "$ref": "#/components/schemas/ModelType" - } - }, - "type": "object", - "required": [ - "model_id", - "provider_model_id", - "provider_id", - "metadata", - "model_type" - ], - "title": "_models_Request" - }, - "_moderations_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - } - }, - "type": "object", - "required": [ - "input", - "model" - ], - "title": "_moderations_Request" - }, - "_prompts_Request": { - "properties": { - "prompt": { - "type": "string", - "title": "Prompt" - }, - "variables": { - "type": "string", - "title": "Variables" - } - }, - "type": "object", - "required": [ - "prompt", - "variables" - ], - "title": "_prompts_Request" - }, - "_prompts_prompt_id_Request": { - "properties": { - "prompt_id": { - "type": "string", - "title": "Prompt Id" - }, - "prompt": { - "type": "string", - "title": "Prompt" - }, - "version": { - "type": "integer", - "title": "Version" - }, - "variables": { - "type": "string", - "title": "Variables" - }, - "set_as_default": { - "type": "boolean", - "title": "Set As Default", - "default": true - } - }, - "type": "object", - "required": [ - "prompt_id", - "prompt", - "version", - "variables" - ], - "title": "_prompts_prompt_id_Request" - }, - "_prompts_prompt_id_set_default_version_Request": { - "properties": { - "prompt_id": { - "type": "string", - "title": "Prompt Id" - }, - "version": { - "type": "integer", - "title": "Version" - } - }, - "type": "object", - "required": [ - "prompt_id", - "version" - ], - "title": "_prompts_prompt_id_set_default_version_Request" - }, - "_responses_Request": { - "properties": { - "input": { - "type": "string", - "title": "Input" - }, - "model": { - "type": "string", - "title": "Model" - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt" - }, - "instructions": { - "type": "string", - "title": "Instructions" - }, - "previous_response_id": { - "type": "string", - "title": "Previous Response Id" - }, - "conversation": { - "type": "string", - "title": "Conversation" - }, - "store": { - "type": "boolean", - "title": "Store", - "default": true - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "temperature": { - "type": "number", - "title": "Temperature" - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText" - }, - "tools": { - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolMCP" - } - ], - "title": "Tools", - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAIResponseInputToolFileSearch", - "function": "#/components/schemas/OpenAIResponseInputToolFunction", - "mcp": "#/components/schemas/OpenAIResponseInputToolMCP", - "web_search": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/components/schemas/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/components/schemas/OpenAIResponseInputToolWebSearch" - } - } - }, - "include": { - "type": "string", - "title": "Include" - }, - "max_infer_iters": { - "type": "integer", - "title": "Max Infer Iters", - "default": 10 - } - }, - "type": "object", - "required": [ - "input", - "model", - "prompt", - "instructions", - "previous_response_id", - "conversation", - "temperature", - "text", - "tools", - "include" - ], - "title": "_responses_Request" - }, - "_scoring_score_Request": { - "properties": { - "input_rows": { - "type": "string", - "title": "Input Rows" - }, - "scoring_functions": { - "type": "string", - "title": "Scoring Functions" - } - }, - "type": "object", - "required": [ - "input_rows", - "scoring_functions" - ], - "title": "_scoring_score_Request" - }, - "_scoring_score_batch_Request": { - "properties": { - "dataset_id": { - "type": "string", - "title": "Dataset Id" - }, - "scoring_functions": { - "type": "string", - "title": "Scoring Functions" - }, - "save_results_dataset": { - "type": "boolean", - "title": "Save Results Dataset", - "default": false - } - }, - "type": "object", - "required": [ - "dataset_id", - "scoring_functions" - ], - "title": "_scoring_score_batch_Request" - }, - "_shields_Request": { - "properties": { - "shield_id": { - "type": "string", - "title": "Shield Id" - }, - "provider_shield_id": { - "type": "string", - "title": "Provider Shield Id" - }, - "provider_id": { - "type": "string", - "title": "Provider Id" - }, - "params": { - "type": "string", - "title": "Params" - } - }, - "type": "object", - "required": [ - "shield_id", - "provider_shield_id", - "provider_id", - "params" - ], - "title": "_shields_Request" - }, - "_tool_runtime_invoke_Request": { - "properties": { - "tool_name": { - "type": "string", - "title": "Tool Name" - }, - "kwargs": { - "type": "string", - "title": "Kwargs" - } - }, - "type": "object", - "required": [ - "tool_name", - "kwargs" - ], - "title": "_tool_runtime_invoke_Request" - }, - "_tool_runtime_rag_tool_query_Request": { - "properties": { - "content": { - "type": "string", - "title": "Content" - }, - "vector_store_ids": { - "type": "string", - "title": "Vector Store Ids" - }, - "query_config": { - "$ref": "#/components/schemas/RAGQueryConfig" - } - }, - "type": "object", - "required": [ - "content", - "vector_store_ids", - "query_config" - ], - "title": "_tool_runtime_rag_tool_query_Request" - }, - "_vector_io_query_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "query": { - "type": "string", - "title": "Query" - }, - "params": { - "type": "string", - "title": "Params" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "query", - "params" - ], - "title": "_vector_io_query_Request" - }, - "_vector_stores_vector_store_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "expires_after": { - "type": "string", - "title": "Expires After" - }, - "metadata": { - "type": "string", - "title": "Metadata" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "name", - "expires_after", - "metadata" - ], - "title": "_vector_stores_vector_store_id_Request" - }, - "_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request": { - "properties": { - "batch_id": { - "type": "string", - "title": "Batch Id" - }, - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - } - }, - "type": "object", - "required": [ - "batch_id", - "vector_store_id" - ], - "title": "_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request" - }, - "_vector_stores_vector_store_id_files_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - }, - "chunking_strategy": { - "anyOf": [ - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyAuto" - }, - { - "$ref": "#/components/schemas/VectorStoreChunkingStrategyStatic" - } - ], - "title": "Chunking Strategy" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes", - "chunking_strategy" - ], - "title": "_vector_stores_vector_store_id_files_Request" - }, - "_vector_stores_vector_store_id_files_file_id_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "file_id": { - "type": "string", - "title": "File Id" - }, - "attributes": { - "type": "string", - "title": "Attributes" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "file_id", - "attributes" - ], - "title": "_vector_stores_vector_store_id_files_file_id_Request" - }, - "_vector_stores_vector_store_id_search_Request": { - "properties": { - "vector_store_id": { - "type": "string", - "title": "Vector Store Id" - }, - "query": { - "type": "string", - "title": "Query" - }, - "filters": { - "type": "string", - "title": "Filters" - }, - "max_num_results": { - "type": "integer", - "title": "Max Num Results", - "default": 10 - }, - "ranking_options": { - "$ref": "#/components/schemas/SearchRankingOptions" - }, - "rewrite_query": { - "type": "boolean", - "title": "Rewrite Query", - "default": false - }, - "search_mode": { - "type": "string", - "title": "Search Mode", - "default": "vector" - } - }, - "type": "object", - "required": [ - "vector_store_id", - "query", - "filters", - "ranking_options" - ], - "title": "_vector_stores_vector_store_id_search_Request" - }, - "Error": { - "description": "Error response from the API. Roughly follows RFC 7807.", - "properties": { - "status": { - "title": "Status", - "type": "integer" - }, - "title": { - "title": "Title", - "type": "string" - }, - "detail": { - "title": "Detail", - "type": "string" - }, - "instance": { - "title": "Instance", - "type": "string", - "nullable": true - } - }, - "required": [ - "status", - "title", - "detail" - ], - "title": "Error", - "type": "object" - }, - "Agent": { - "description": "An agent instance with configuration and metadata.", - "properties": { - "agent_id": { - "title": "Agent Id", - "type": "string" - }, - "agent_config": { - "$ref": "#/components/schemas/AgentConfig" - }, - "created_at": { - "format": "date-time", - "title": "Created At", - "type": "string" - } - }, - "required": [ - "agent_id", - "agent_config", - "created_at" - ], - "title": "Agent", - "type": "object" - }, - "AgentStepResponse": { - "description": "Response containing details of a specific agent step.", - "properties": { - "step": { - "discriminator": { - "mapping": { - "inference": "#/$defs/InferenceStep", - "memory_retrieval": "#/$defs/MemoryRetrievalStep", - "shield_call": "#/$defs/ShieldCallStep", - "tool_execution": "#/$defs/ToolExecutionStep" - }, - "propertyName": "step_type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/InferenceStep" - }, - { - "$ref": "#/components/schemas/ToolExecutionStep" - }, - { - "$ref": "#/components/schemas/ShieldCallStep" - }, - { - "$ref": "#/components/schemas/MemoryRetrievalStep" - } - ], - "title": "Step" - } - }, - "required": [ - "step" - ], - "title": "AgentStepResponse", - "type": "object" - }, - "CompletionMessage": { - "description": "A message containing the model's (assistant) response in a chat conversation.", - "properties": { - "role": { - "const": "assistant", - "default": "assistant", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "stop_reason": { - "$ref": "#/components/schemas/StopReason" - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "type": "array" - } - }, - "required": [ - "content", - "stop_reason" - ], - "title": "CompletionMessage", - "type": "object" - }, - "InferenceStep": { - "description": "An inference step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "inference", - "default": "inference", - "title": "Step Type", - "type": "string" - }, - "model_response": { - "$ref": "#/components/schemas/CompletionMessage" - } - }, - "required": [ - "turn_id", - "step_id", - "model_response" - ], - "title": "InferenceStep", - "type": "object" - }, - "ListOpenAIResponseInputItem": { - "description": "List container for OpenAI response input items.", - "properties": { - "data": { - "items": { - "anyOf": [ - { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - ] - }, - "title": "Data", - "type": "array" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data" - ], - "title": "ListOpenAIResponseInputItem", - "type": "object" - }, - "ListOpenAIResponseObject": { - "description": "Paginated list of OpenAI response objects with navigation metadata.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIResponseObjectWithInput" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIResponseObject", - "type": "object" - }, - "MemoryRetrievalStep": { - "description": "A memory retrieval step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "memory_retrieval", - "default": "memory_retrieval", - "title": "Step Type", - "type": "string" - }, - "vector_store_ids": { - "title": "Vector Store Ids", - "type": "string" - }, - "inserted_context": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Inserted Context" - } - }, - "required": [ - "turn_id", - "step_id", - "vector_store_ids", - "inserted_context" - ], - "title": "MemoryRetrievalStep", - "type": "object" - }, - "OpenAIDeleteResponseObject": { - "description": "Response object confirming deletion of an OpenAI response.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "OpenAIDeleteResponseObject", - "type": "object" - }, - "PaginatedResponse": { - "description": "A generic paginated response that follows a simple format.", - "properties": { - "data": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "url": { - "title": "Url", - "type": "string", - "nullable": true - } - }, - "required": [ - "data", - "has_more" - ], - "title": "PaginatedResponse", - "type": "object" - }, - "Session": { - "description": "A single session of an interaction with an Agentic System.", - "properties": { - "session_id": { - "title": "Session Id", - "type": "string" - }, - "session_name": { - "title": "Session Name", - "type": "string" - }, - "turns": { - "items": { - "$ref": "#/components/schemas/Turn" - }, - "title": "Turns", - "type": "array" - }, - "started_at": { - "format": "date-time", - "title": "Started At", - "type": "string" - } - }, - "required": [ - "session_id", - "session_name", - "turns", - "started_at" - ], - "title": "Session", - "type": "object" - }, - "ShieldCallStep": { - "description": "A shield call step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "shield_call", - "default": "shield_call", - "title": "Step Type", - "type": "string" - }, - "violation": { - "$ref": "#/components/schemas/SafetyViolation" - } - }, - "required": [ - "turn_id", - "step_id", - "violation" - ], - "title": "ShieldCallStep", - "type": "object" - }, - "ToolExecutionStep": { - "description": "A tool execution step in an agent turn.", - "properties": { - "turn_id": { - "title": "Turn Id", - "type": "string" - }, - "step_id": { - "title": "Step Id", - "type": "string" - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "step_type": { - "const": "tool_execution", - "default": "tool_execution", - "title": "Step Type", - "type": "string" - }, - "tool_calls": { - "items": { - "$ref": "#/components/schemas/ToolCall" - }, - "title": "Tool Calls", - "type": "array" - }, - "tool_responses": { - "items": { - "$ref": "#/components/schemas/ToolResponse" - }, - "title": "Tool Responses", - "type": "array" - } - }, - "required": [ - "turn_id", - "step_id", - "tool_calls", - "tool_responses" - ], - "title": "ToolExecutionStep", - "type": "object" - }, - "ToolResponse": { - "description": "Response from a tool invocation.", - "properties": { - "call_id": { - "title": "Call Id", - "type": "string" - }, - "tool_name": { - "anyOf": [ - { - "$ref": "#/components/schemas/BuiltinTool" - }, - { - "type": "string" - } - ], - "title": "Tool Name" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - { - "items": { - "discriminator": { - "mapping": { - "image": "#/$defs/ImageContentItem", - "text": "#/$defs/TextContentItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ImageContentItem" - }, - { - "$ref": "#/components/schemas/TextContentItem" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "metadata": { - "title": "Metadata", - "additionalProperties": true, - "type": "object", - "nullable": true - } - }, - "required": [ - "call_id", - "tool_name", - "content" - ], - "title": "ToolResponse", - "type": "object" - }, - "ListBatchesResponse": { - "description": "Response containing a list of batch objects.", - "properties": { - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "description": "List of batch objects", - "items": { - "$ref": "#/components/schemas/Batch" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "description": "ID of the first batch in the list", - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "description": "ID of the last batch in the list", - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "description": "Whether there are more batches available", - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "ListBatchesResponse", - "type": "object" - }, - "ConversationDeletedResource": { - "description": "Response for deleted conversation.", - "properties": { - "id": { - "description": "The deleted conversation identifier", - "title": "Id", - "type": "string" - }, - "object": { - "default": "conversation.deleted", - "description": "Object type", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "description": "Whether the object was deleted", - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "ConversationDeletedResource", - "type": "object" - }, - "ConversationItemDeletedResource": { - "description": "Response for deleted conversation item.", - "properties": { - "id": { - "description": "The deleted item identifier", - "title": "Id", - "type": "string" - }, - "object": { - "default": "conversation.item.deleted", - "description": "Object type", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "description": "Whether the object was deleted", - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "ConversationItemDeletedResource", - "type": "object" - }, - "ListOpenAIFileResponse": { - "description": "Response for listing files in OpenAI Files API.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAIFileObject" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIFileResponse", - "type": "object" - }, - "OpenAIFileDeleteResponse": { - "description": "Response for deleting a file in OpenAI Files API.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "const": "file", - "default": "file", - "title": "Object", - "type": "string" - }, - "deleted": { - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id", - "deleted" - ], - "title": "OpenAIFileDeleteResponse", - "type": "object" - }, - "ListOpenAIChatCompletionResponse": { - "description": "Response from listing OpenAI-compatible chat completions.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/OpenAICompletionWithInputMessages" - }, - "title": "Data", - "type": "array" - }, - "has_more": { - "title": "Has More", - "type": "boolean" - }, - "first_id": { - "title": "First Id", - "type": "string" - }, - "last_id": { - "title": "Last Id", - "type": "string" - }, - "object": { - "const": "list", - "default": "list", - "title": "Object", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "first_id", - "last_id" - ], - "title": "ListOpenAIChatCompletionResponse", - "type": "object" - }, - "OpenAIAssistantMessageParam": { - "description": "A message containing the model's (assistant) response in an OpenAI-compatible chat completion request.", - "properties": { - "role": { - "const": "assistant", - "default": "assistant", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - "type": "array" - } - ], - "title": "Content", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "nullable": true - }, - "tool_calls": { - "title": "Tool Calls", - "items": { - "$ref": "#/components/schemas/OpenAIChatCompletionToolCall" - }, - "type": "array", - "nullable": true - } - }, - "title": "OpenAIAssistantMessageParam", - "type": "object" - }, - "OpenAIChoice": { - "description": "A choice from an OpenAI-compatible chat completion response.", - "properties": { - "message": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/OpenAIAssistantMessageParam", - "developer": "#/$defs/OpenAIDeveloperMessageParam", - "system": "#/$defs/OpenAISystemMessageParam", - "tool": "#/$defs/OpenAIToolMessageParam", - "user": "#/$defs/OpenAIUserMessageParam" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Message" - }, - "finish_reason": { - "title": "Finish Reason", - "type": "string" - }, - "index": { - "title": "Index", - "type": "integer" - }, - "logprobs": { - "$ref": "#/components/schemas/OpenAIChoiceLogprobs", - "nullable": true - } - }, - "required": [ - "message", - "finish_reason", - "index" - ], - "title": "OpenAIChoice", - "type": "object" - }, - "OpenAIChoiceLogprobs": { - "description": "The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response.", - "properties": { - "content": { - "title": "Content", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array", - "nullable": true - }, - "refusal": { - "title": "Refusal", - "items": { - "$ref": "#/components/schemas/OpenAITokenLogProb" - }, - "type": "array", - "nullable": true - } - }, - "title": "OpenAIChoiceLogprobs", - "type": "object" - }, - "OpenAICompletionWithInputMessages": { - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/OpenAIChoice" - }, - "title": "Choices", - "type": "array" - }, - "object": { - "const": "chat.completion", - "default": "chat.completion", - "title": "Object", - "type": "string" - }, - "created": { - "title": "Created", - "type": "integer" - }, - "model": { - "title": "Model", - "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/OpenAIChatCompletionUsage", - "nullable": true - }, - "input_messages": { - "items": { - "discriminator": { - "mapping": { - "assistant": "#/$defs/OpenAIAssistantMessageParam", - "developer": "#/$defs/OpenAIDeveloperMessageParam", - "system": "#/$defs/OpenAISystemMessageParam", - "tool": "#/$defs/OpenAIToolMessageParam", - "user": "#/$defs/OpenAIUserMessageParam" - }, - "propertyName": "role" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ] - }, - "title": "Input Messages", - "type": "array" - } - }, - "required": [ - "id", - "choices", - "created", - "model", - "input_messages" - ], - "title": "OpenAICompletionWithInputMessages", - "type": "object" - }, - "OpenAIUserMessageParam": { - "description": "A message from the user in an OpenAI-compatible chat completion request.", - "properties": { - "role": { - "const": "user", - "default": "user", - "title": "Role", - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "discriminator": { - "mapping": { - "file": "#/$defs/OpenAIFile", - "image_url": "#/$defs/OpenAIChatCompletionContentPartImageParam", - "text": "#/$defs/OpenAIChatCompletionContentPartTextParam" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartTextParam" - }, - { - "$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam" - }, - { - "$ref": "#/components/schemas/OpenAIFile" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "name": { - "title": "Name", - "type": "string", - "nullable": true - } - }, - "required": [ - "content" - ], - "title": "OpenAIUserMessageParam", - "type": "object" - }, - "Checkpoint": { - "description": "Checkpoint created during training runs.", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string" - }, - "created_at": { - "format": "date-time", - "title": "Created At", - "type": "string" - }, - "epoch": { - "title": "Epoch", - "type": "integer" - }, - "post_training_job_id": { - "title": "Post Training Job Id", - "type": "string" - }, - "path": { - "title": "Path", - "type": "string" - }, - "training_metrics": { - "$ref": "#/components/schemas/PostTrainingMetric", - "nullable": true - } - }, - "required": [ - "identifier", - "created_at", - "epoch", - "post_training_job_id", - "path" - ], - "title": "Checkpoint", - "type": "object" - }, - "PostTrainingJobArtifactsResponse": { - "description": "Artifacts of a finetuning job.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "checkpoints": { - "items": { - "$ref": "#/components/schemas/Checkpoint" - }, - "title": "Checkpoints", - "type": "array" - } - }, - "required": [ - "job_uuid" - ], - "title": "PostTrainingJobArtifactsResponse", - "type": "object" - }, - "PostTrainingJobStatusResponse": { - "description": "Status of a finetuning job.", - "properties": { - "job_uuid": { - "title": "Job Uuid", - "type": "string" - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - }, - "scheduled_at": { - "title": "Scheduled At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "started_at": { - "title": "Started At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "completed_at": { - "title": "Completed At", - "format": "date-time", - "type": "string", - "nullable": true - }, - "resources_allocated": { - "title": "Resources Allocated", - "additionalProperties": true, - "type": "object", - "nullable": true - }, - "checkpoints": { - "items": { - "$ref": "#/components/schemas/Checkpoint" - }, - "title": "Checkpoints", - "type": "array" - } - }, - "required": [ - "job_uuid", - "status" - ], - "title": "PostTrainingJobStatusResponse", - "type": "object" - }, - "ScoringFn": { - "description": "A scoring function resource for evaluating model outputs.", - "properties": { - "identifier": { - "description": "Unique identifier for this resource in llama stack", - "title": "Identifier", - "type": "string" - }, - "provider_resource_id": { - "description": "Unique identifier for this resource in the provider", - "title": "Provider Resource Id", - "type": "string", - "nullable": true - }, - "provider_id": { - "description": "ID of the provider that owns this resource", - "title": "Provider Id", - "type": "string" - }, - "type": { - "const": "scoring_function", - "default": "scoring_function", - "title": "Type", - "type": "string" - }, - "description": { - "title": "Description", - "type": "string", - "nullable": true - }, - "metadata": { - "additionalProperties": true, - "description": "Any additional metadata for this definition", - "title": "Metadata", - "type": "object" - }, - "return_type": { - "description": "The return type of the deterministic function", - "discriminator": { - "mapping": { - "agent_turn_input": "#/$defs/AgentTurnInputType", - "array": "#/$defs/ArrayType", - "boolean": "#/$defs/BooleanType", - "chat_completion_input": "#/$defs/ChatCompletionInputType", - "completion_input": "#/$defs/CompletionInputType", - "json": "#/$defs/JsonType", - "number": "#/$defs/NumberType", - "object": "#/$defs/ObjectType", - "string": "#/$defs/StringType", - "union": "#/$defs/UnionType" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/StringType" - }, - { - "$ref": "#/components/schemas/NumberType" - }, - { - "$ref": "#/components/schemas/BooleanType" - }, - { - "$ref": "#/components/schemas/ArrayType" - }, - { - "$ref": "#/components/schemas/ObjectType" - }, - { - "$ref": "#/components/schemas/JsonType" - }, - { - "$ref": "#/components/schemas/UnionType" - }, - { - "$ref": "#/components/schemas/ChatCompletionInputType" - }, - { - "$ref": "#/components/schemas/CompletionInputType" - }, - { - "$ref": "#/components/schemas/AgentTurnInputType" - } - ], - "title": "Return Type" - }, - "params": { - "description": "The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - "title": "Params", - "discriminator": { - "mapping": { - "basic": "#/$defs/BasicScoringFnParams", - "llm_as_judge": "#/$defs/LLMAsJudgeScoringFnParams", - "regex_parser": "#/$defs/RegexParserScoringFnParams" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/LLMAsJudgeScoringFnParams" - }, - { - "$ref": "#/components/schemas/RegexParserScoringFnParams" - }, - { - "$ref": "#/components/schemas/BasicScoringFnParams" - } - ], - "nullable": true - } - }, - "required": [ - "identifier", - "provider_id", - "return_type" - ], - "title": "ScoringFn", - "type": "object" - }, - "ListToolDefsResponse": { - "description": "Response containing a list of tool definitions.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/ToolDef" - }, - "title": "Data", - "type": "array" - } - }, - "required": [ - "data" - ], - "title": "ListToolDefsResponse", - "type": "object" - }, - "VectorStoreDeleteResponse": { - "description": "Response from deleting a vector store.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "default": "vector_store.deleted", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "VectorStoreDeleteResponse", - "type": "object" - }, - "VectorStoreFileContentsResponse": { - "description": "Response from retrieving the contents of a vector store file.", - "properties": { - "file_id": { - "title": "File Id", - "type": "string" - }, - "filename": { - "title": "Filename", - "type": "string" - }, - "attributes": { - "additionalProperties": true, - "title": "Attributes", - "type": "object" - }, - "content": { - "items": { - "$ref": "#/components/schemas/VectorStoreContent" - }, - "title": "Content", - "type": "array" - } - }, - "required": [ - "file_id", - "filename", - "attributes", - "content" - ], - "title": "VectorStoreFileContentsResponse", - "type": "object" - }, - "VectorStoreFileDeleteResponse": { - "description": "Response from deleting a vector store file.", - "properties": { - "id": { - "title": "Id", - "type": "string" - }, - "object": { - "default": "vector_store.file.deleted", - "title": "Object", - "type": "string" - }, - "deleted": { - "default": true, - "title": "Deleted", - "type": "boolean" - } - }, - "required": [ - "id" - ], - "title": "VectorStoreFileDeleteResponse", - "type": "object" - }, - "VectorStoreFilesListInBatchResponse": { - "description": "Response from listing files in a vector store file batch.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreFileObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreFilesListInBatchResponse", - "type": "object" - }, - "VectorStoreListFilesResponse": { - "description": "Response from listing files in a vector store.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreFileObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreListFilesResponse", - "type": "object" - }, - "VectorStoreListResponse": { - "description": "Response from listing vector stores.", - "properties": { - "object": { - "default": "list", - "title": "Object", - "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/VectorStoreObject" - }, - "title": "Data", - "type": "array" - }, - "first_id": { - "title": "First Id", - "type": "string", - "nullable": true - }, - "last_id": { - "title": "Last Id", - "type": "string", - "nullable": true - }, - "has_more": { - "default": false, - "title": "Has More", - "type": "boolean" - } - }, - "required": [ - "data" - ], - "title": "VectorStoreListResponse", - "type": "object" - }, - "OpenAIResponseMessage": { - "description": "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios.", - "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "discriminator": { - "mapping": { - "input_file": "#/$defs/OpenAIResponseInputMessageContentFile", - "input_image": "#/$defs/OpenAIResponseInputMessageContentImage", - "input_text": "#/$defs/OpenAIResponseInputMessageContentText" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentImage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputMessageContentFile" - } - ] - }, - "type": "array" - }, - { - "items": { - "discriminator": { - "mapping": { - "output_text": "#/$defs/OpenAIResponseOutputMessageContentOutputText", - "refusal": "#/$defs/OpenAIResponseContentPartRefusal" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageContentOutputText" - }, - { - "$ref": "#/components/schemas/OpenAIResponseContentPartRefusal" - } - ] - }, - "type": "array" - } - ], - "title": "Content" - }, - "role": { - "anyOf": [ - { - "const": "system", - "type": "string" - }, - { - "const": "developer", - "type": "string" - }, - { - "const": "user", - "type": "string" - }, - { - "const": "assistant", - "type": "string" - } - ], - "title": "Role" - }, - "type": { - "const": "message", - "default": "message", - "title": "Type", - "type": "string" - }, - "id": { - "title": "Id", - "type": "string", - "nullable": true - }, - "status": { - "title": "Status", - "type": "string", - "nullable": true - } - }, - "required": [ - "content", - "role" - ], - "title": "OpenAIResponseMessage", - "type": "object" - }, - "OpenAIResponseObjectWithInput": { - "description": "OpenAI response object extended with input context information.", - "properties": { - "created_at": { - "title": "Created At", - "type": "integer" - }, - "error": { - "$ref": "#/components/schemas/OpenAIResponseError", - "nullable": true - }, - "id": { - "title": "Id", - "type": "string" - }, - "model": { - "title": "Model", - "type": "string" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "output": { - "items": { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - "title": "Output", - "type": "array" - }, - "parallel_tool_calls": { - "default": false, - "title": "Parallel Tool Calls", - "type": "boolean" - }, - "previous_response_id": { - "title": "Previous Response Id", - "type": "string", - "nullable": true - }, - "prompt": { - "$ref": "#/components/schemas/OpenAIResponsePrompt", - "nullable": true - }, - "status": { - "title": "Status", - "type": "string" - }, - "temperature": { - "title": "Temperature", - "type": "number", - "nullable": true - }, - "text": { - "$ref": "#/components/schemas/OpenAIResponseText", - "default": { - "format": { - "type": "text" - } - } - }, - "top_p": { - "title": "Top P", - "type": "number", - "nullable": true - }, - "tools": { - "title": "Tools", - "items": { - "discriminator": { - "mapping": { - "file_search": "#/$defs/OpenAIResponseInputToolFileSearch", - "function": "#/$defs/OpenAIResponseInputToolFunction", - "mcp": "#/$defs/OpenAIResponseToolMCP", - "web_search": "#/$defs/OpenAIResponseInputToolWebSearch", - "web_search_preview": "#/$defs/OpenAIResponseInputToolWebSearch", - "web_search_preview_2025_03_11": "#/$defs/OpenAIResponseInputToolWebSearch" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseInputToolWebSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFileSearch" - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputToolFunction" - }, - { - "$ref": "#/components/schemas/OpenAIResponseToolMCP" - } - ] - }, - "type": "array", - "nullable": true - }, - "truncation": { - "title": "Truncation", - "type": "string", - "nullable": true - }, - "usage": { - "$ref": "#/components/schemas/OpenAIResponseUsage", - "nullable": true - }, - "instructions": { - "title": "Instructions", - "type": "string", - "nullable": true - }, - "input": { - "items": { - "anyOf": [ - { - "discriminator": { - "mapping": { - "file_search_call": "#/$defs/OpenAIResponseOutputMessageFileSearchToolCall", - "function_call": "#/$defs/OpenAIResponseOutputMessageFunctionToolCall", - "mcp_approval_request": "#/$defs/OpenAIResponseMCPApprovalRequest", - "mcp_call": "#/$defs/OpenAIResponseOutputMessageMCPCall", - "mcp_list_tools": "#/$defs/OpenAIResponseOutputMessageMCPListTools", - "message": "#/$defs/OpenAIResponseMessage", - "web_search_call": "#/$defs/OpenAIResponseOutputMessageWebSearchToolCall" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPCall" - }, - { - "$ref": "#/components/schemas/OpenAIResponseOutputMessageMCPListTools" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalRequest" - } - ] - }, - { - "$ref": "#/components/schemas/OpenAIResponseInputFunctionToolCallOutput" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMCPApprovalResponse" - }, - { - "$ref": "#/components/schemas/OpenAIResponseMessage" - } - ] - }, - "title": "Input", - "type": "array" - } - }, - "required": [ - "created_at", - "id", - "model", - "output", - "status", - "input" - ], - "title": "OpenAIResponseObjectWithInput", - "type": "object" - }, - "ImageContentItem": { - "description": "A image content item", - "properties": { - "type": { - "const": "image", - "default": "image", - "title": "Type", - "type": "string" - }, - "image": { - "$ref": "#/components/schemas/_URLOrData" - } - }, - "required": [ - "image" - ], - "title": "ImageContentItem", - "type": "object" - }, - "PostTrainingMetric": { - "description": "Training metrics captured during post-training jobs.", - "properties": { - "epoch": { - "title": "Epoch", - "type": "integer" - }, - "train_loss": { - "title": "Train Loss", - "type": "number" - }, - "validation_loss": { - "title": "Validation Loss", - "type": "number" - }, - "perplexity": { - "title": "Perplexity", - "type": "number" - } - }, - "required": [ - "epoch", - "train_loss", - "validation_loss", - "perplexity" - ], - "title": "PostTrainingMetric", - "type": "object" - }, - "_safety_run_shield_Request": { - "properties": { - "shield_id": { - "title": "Shield Id", - "type": "string" - }, - "messages": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAIUserMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAISystemMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIAssistantMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIToolMessageParam" - }, - { - "$ref": "#/components/schemas/OpenAIDeveloperMessageParam" - } - ], - "title": "Messages" - }, - "params": { - "title": "Params", - "type": "string" - } - }, - "required": [ - "shield_id", - "messages", - "params" - ], - "title": "_safety_run_shield_Request", - "type": "object" - } - }, - "responses": { - "BadRequest400": { - "description": "The request was invalid or malformed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 400, - "title": "Bad Request", - "detail": "The request was invalid or malformed" - } - } - } - }, - "TooManyRequests429": { - "description": "The client has sent too many requests in a given amount of time", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 429, - "title": "Too Many Requests", - "detail": "You have exceeded the rate limit. Please try again later." - } - } - } - }, - "InternalServerError500": { - "description": "The server encountered an unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "example": { - "status": 500, - "title": "Internal Server Error", - "detail": "An unexpected error occurred. Our team has been notified." - } - } - } - }, - "DefaultError": { - "description": "An unexpected error occurred", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/docs/static/stainless-llama-stack-spec.yaml b/docs/static/stainless-llama-stack-spec.yaml index 22f8d3d5d..31f653afe 100644 --- a/docs/static/stainless-llama-stack-spec.yaml +++ b/docs/static/stainless-llama-stack-spec.yaml @@ -9,3637 +9,325 @@ servers: - url: https://staging-api.llamastack.com description: Staging server paths: - /v1/batches: - get: - responses: - '200': - description: A list of batch objects. - content: - application/json: - schema: - $ref: '#/components/schemas/ListBatchesResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: List all batches for the current user. - description: List all batches for the current user. - parameters: - - name: after - in: query - description: >- - A cursor for pagination; returns batches after this batch ID. - required: false - schema: - type: string - - name: limit - in: query - description: >- - Number of batches to return (default 20, max 100). - required: true - schema: - type: integer - deprecated: false - post: - responses: - '200': - description: The created batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: >- - Create a new batch for processing multiple API requests. - description: >- - Create a new batch for processing multiple API requests. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateBatchRequest' - required: true - deprecated: false - /v1/batches/{batch_id}: - get: - responses: - '200': - description: The batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: >- - Retrieve information about a specific batch. - description: >- - Retrieve information about a specific batch. - parameters: - - name: batch_id - in: path - description: The ID of the batch to retrieve. - required: true - schema: - type: string - deprecated: false - /v1/batches/{batch_id}/cancel: - post: - responses: - '200': - description: The updated batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Batches - summary: Cancel a batch that is in progress. - description: Cancel a batch that is in progress. - parameters: - - name: batch_id - in: path - description: The ID of the batch to cancel. - required: true - schema: - type: string - deprecated: false - /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 chat completions. - description: >- - List chat completions. - - :param after: The ID of the last chat completion to return. - :param limit: The maximum number of chat completions to return. - :param model: The model to filter by. - :param order: The order to sort the chat completions by: "asc" or - "desc". Defaults to "desc". - :returns: A ListOpenAIChatCompletionResponse. - parameters: - - name: after - description: >- - The ID of the last chat completion to return. - required: false - schema: - type: string - in: query - - name: limit - description: >- - The maximum number of chat completions to return. - required: false - schema: - type: integer - in: query - - name: model - description: The model to filter by. - required: false - schema: - type: string - in: query - - name: order - description: >- - The order to sort the chat completions by: "asc" or "desc". Defaults to - "desc". - required: false - schema: - $ref: '#/components/schemas/Order' - in: query - deprecated: false - post: - responses: - '200': - description: An OpenAIChatCompletion. - content: - application/json: - schema: - $ref: '#/components/schemas/llama_stack.apis.inference.inference.OpenAIChatCompletion - | collections.abc.AsyncIterator[llama_stack.apis.inference.inference.OpenAIChatCompletionChunk]' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inference - summary: Create chat completions. - description: >- - Create chat completions. - - Generate an OpenAI-compatible chat completion for the given messages using - the specified model. - :returns: An OpenAIChatCompletion. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /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: Get chat completion. - description: >- - Get chat completion. - - Describe a chat completion by its ID. - - :param completion_id: ID of the chat completion. - :returns: A OpenAICompletionWithInputMessages. - parameters: - - name: completion_id - description: ID of the chat completion. - required: true - schema: - type: string - in: path - deprecated: false - /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: Create completion. - description: >- - Create completion. - - Generate an OpenAI-compatible completion for the given prompt using the specified - model. - :returns: An OpenAICompletion. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /v1/conversations: - post: - responses: - '200': - description: The created conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Create a conversation. - description: >- - Create a conversation. - - Create a conversation. - - :param items: Initial items to include in the conversation context. - :param metadata: Set of key-value pairs that can be attached to an - object. - :returns: The created conversation object. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateConversationRequest' - required: true - deprecated: false - /v1/conversations/{conversation_id}: - get: - responses: - '200': - description: The conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Retrieve a conversation. - description: >- - Retrieve a conversation. - - Get a conversation with the given ID. - - :param conversation_id: The conversation identifier. - :returns: The conversation object. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - deprecated: false - post: - responses: - '200': - description: The updated conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Update a conversation. - description: >- - Update a conversation. - - Update a conversation's metadata with the given ID. - - :param conversation_id: The conversation identifier. - :param metadata: Set of key-value pairs that can be attached to an - object. - :returns: The updated conversation object. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateConversationRequest' - required: true - deprecated: false - delete: - responses: - '200': - description: The deleted conversation resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationDeletedResource' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Delete a conversation. - description: >- - Delete a conversation. - - Delete a conversation with the given ID. - - :param conversation_id: The conversation identifier. - :returns: The deleted conversation resource. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - deprecated: false - /v1/conversations/{conversation_id}/items: - get: - responses: - '200': - description: List of conversation items. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationItemList' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: List items. - description: >- - List items. - - List items in the conversation. - - :param conversation_id: The conversation identifier. - :param after: An item ID to list items after, used in pagination. - :param include: Specify additional output data to include in the response. - :param limit: A limit on the number of objects to be returned (1-100, - default 20). - :param order: The order to return items in (asc or desc, default desc). - :returns: List of conversation items. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - - name: after - description: >- - An item ID to list items after, used in pagination. - required: false - schema: - type: string - in: query - - name: include - description: >- - Specify additional output data to include in the response. - required: false - schema: - $ref: '#/components/schemas/list' - in: query - - name: limit - description: >- - A limit on the number of objects to be returned (1-100, default 20). - required: false - schema: - type: integer - in: query - - name: order - description: >- - The order to return items in (asc or desc, default desc). - required: false - schema: - $ref: '#/components/schemas/Literal' - in: query - deprecated: false - post: - responses: - '200': - description: List of created items. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationItemList' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Create items. - description: >- - Create items. - - Create items in the conversation. - - :param conversation_id: The conversation identifier. - :param items: Items to include in the conversation context. - :returns: List of created items. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AddItemsRequest' - required: true - deprecated: false - /v1/conversations/{conversation_id}/items/{item_id}: - get: - responses: - '200': - description: The conversation item. - content: - application/json: - schema: - id: Annotated - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Retrieve an item. - description: >- - Retrieve an item. - - Retrieve a conversation item. - - :param conversation_id: The conversation identifier. - :param item_id: The item identifier. - :returns: The conversation item. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - - name: item_id - description: The item identifier. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: The deleted item resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ConversationItemDeletedResource' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Conversations - summary: Delete an item. - description: >- - Delete an item. - - Delete a conversation item. - - :param conversation_id: The conversation identifier. - :param item_id: The item identifier. - :returns: The deleted item resource. - parameters: - - name: conversation_id - description: The conversation identifier. - required: true - schema: - type: string - in: path - - name: item_id - description: The item identifier. - required: true - schema: - type: string - in: path - deprecated: false - /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: Create embeddings. - description: >- - Create embeddings. - - Generate OpenAI-compatible embeddings for the given input using the specified - model. - :returns: An OpenAIEmbeddingsResponse containing the embeddings. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /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: List files. - description: >- - List files. - - Returns a list of files that belong to the user's organization. - - :param after: 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. - :param limit: A limit on the number of objects to be returned. Limit - can range between 1 and 10,000, and the default is 10,000. - :param order: Sort order by the `created_at` timestamp of the objects. - `asc` for ascending order and `desc` for descending order. - :param purpose: Only return files with the given purpose. - :returns: An ListOpenAIFileResponse containing the list of files. - parameters: - - name: after - 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 - in: query - - name: limit - 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 - in: query - - name: order - 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' - in: query - - name: purpose - description: >- - Only return files with the given purpose. - required: false - schema: - $ref: '#/components/schemas/OpenAIFilePurpose' - in: query - deprecated: false - 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 file. - description: >- - Upload file. - - 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. - - :param file: The uploaded file object containing content and metadata - (filename, content_type, etc.). - :param purpose: The intended purpose of the uploaded file (e.g., "assistants", - "fine-tune"). - :param expires_after: Optional form values describing expiration for - the file. - :returns: An OpenAIFileObject representing the uploaded file. - parameters: [] - requestBody: - content: - multipart/form-data: - schema: - type: object - properties: - file: - type: string - format: binary - purpose: - $ref: '#/components/schemas/OpenAIFilePurpose' - expires_after: - $ref: '#/components/schemas/ExpiresAfter' - required: - - file - - purpose - required: true - deprecated: false - /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: Retrieve file. - description: >- - Retrieve file. - - Returns information about a specific file. - - :param file_id: The ID of the file to use for this request. - :returns: An OpenAIFileObject containing file information. - parameters: - - name: file_id - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - in: path - deprecated: false - 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 file. - description: >- - Delete file. - - :param file_id: The ID of the file to use for this request. - :returns: An OpenAIFileDeleteResponse indicating successful deletion. - parameters: - - name: file_id - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - in: path - deprecated: false - /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: Retrieve file content. - description: >- - Retrieve file content. - - Returns the contents of the specified file. - - :param file_id: The ID of the file to use for this request. - :returns: The raw file content as a binary response. - parameters: - - name: file_id - description: >- - The ID of the file to use for this request. - required: true - schema: - type: string - in: path - deprecated: false - /v1/health: - get: - responses: - '200': - description: >- - Health information indicating if the service is operational. - content: - application/json: - schema: - $ref: '#/components/schemas/HealthInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - summary: Get health status. - description: >- - Get health status. - - Get the current health status of the service. - - :returns: Health information indicating if the service is operational. - parameters: [] - deprecated: false - /v1/inspect/routes: - get: - responses: - '200': - description: >- - Response containing information about all available routes. - content: - application/json: - schema: - $ref: '#/components/schemas/ListRoutesResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - summary: List routes. - description: >- - List routes. - - List all available API routes with their methods and implementing providers. - parameters: - - name: api_filter - in: query - description: >- - Optional filter to control which routes are returned. Can be an API level - ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, - or 'deprecated' to show deprecated routes across all levels. If not specified, - returns only non-deprecated v1 routes. - required: false - schema: - type: string - enum: - - v1 - - v1alpha - - v1beta - - deprecated - deprecated: false - /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: [] - deprecated: false - post: - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - summary: Register model. - description: >- - Register model. - - Register a model. - - :param model_id: The identifier of the model to register. - :param provider_model_id: The identifier of the model in the provider. - :param provider_id: The identifier of the provider. - :param metadata: Any additional metadata for this model. - :param model_type: The type of model to register. - :returns: A Model. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterModelRequest' - required: true - deprecated: false - /v1/models/{model_id}: - get: - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - summary: Get model. - description: >- - Get model. - - Get a model by its identifier. - - :param model_id: The identifier of the model to get. - :returns: A Model. - parameters: - - name: model_id - description: The identifier of the model to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Models - summary: Unregister model. - description: >- - Unregister model. - - Unregister a model. - - :param model_id: The identifier of the model to unregister. - parameters: - - name: model_id - description: >- - The identifier of the model to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /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: Create moderation. - description: >- - Create moderation. - - Classifies if text and/or image inputs are potentially harmful. - :param input: Input (or inputs) to classify. - Can be a single string, an array of strings, or an array of multi-modal - input objects similar to other models. - :param model: (Optional) The content moderation model you would like - to use. - :returns: A moderation object. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunModerationRequest' - required: true - deprecated: false - /v1/prompts: - get: - responses: - '200': - description: >- - A ListPromptsResponse containing all prompts. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: List all prompts. - description: >- - List all prompts. - - :returns: A ListPromptsResponse containing all prompts. - parameters: [] - deprecated: false - post: - responses: - '200': - description: The created Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Create prompt. - description: >- - Create prompt. - - Create a new prompt. - - :param prompt: The prompt text content with variable placeholders. - :param variables: List of variable names that can be used in the prompt - template. - :returns: The created Prompt resource. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreatePromptRequest' - required: true - deprecated: false - /v1/prompts/{prompt_id}: - get: - responses: - '200': - description: A Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Get prompt. - description: >- - Get prompt. - - Get a prompt by its identifier and optional version. - - :param prompt_id: The identifier of the prompt to get. - :param version: The version of the prompt to get (defaults to latest). - :returns: A Prompt resource. - parameters: - - name: prompt_id - description: The identifier of the prompt to get. - required: true - schema: - type: string - in: path - - name: version - description: >- - The version of the prompt to get (defaults to latest). - required: false - schema: - type: integer - in: query - deprecated: false - post: - responses: - '200': - description: >- - The updated Prompt resource with incremented version. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Update prompt. - description: >- - Update prompt. - - Update an existing prompt (increments version). - - :param prompt_id: The identifier of the prompt to update. - :param prompt: The updated prompt text content. - :param version: The current version of the prompt being updated. - :param variables: Updated list of variable names that can be used - in the prompt template. - :param set_as_default: Set the new version as the default (default=True). - :returns: The updated Prompt resource with incremented version. - parameters: - - name: prompt_id - description: The identifier of the prompt to update. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdatePromptRequest' - required: true - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Delete prompt. - description: >- - Delete prompt. - - Delete a prompt. - - :param prompt_id: The identifier of the prompt to delete. - parameters: - - name: prompt_id - description: The identifier of the prompt to delete. - required: true - schema: - type: string - in: path - deprecated: false - /v1/prompts/{prompt_id}/set-default-version: - post: - responses: - '200': - description: >- - The prompt with the specified version now set as default. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: Set prompt version. - description: >- - Set prompt version. - - Set which version of a prompt should be the default in get_prompt (latest). - - :param prompt_id: The identifier of the prompt. - :param version: The version to set as default. - :returns: The prompt with the specified version now set as default. - parameters: - - name: prompt_id - description: The identifier of the prompt. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SetDefaultVersionRequest' - required: true - deprecated: false - /v1/prompts/{prompt_id}/versions: - get: - responses: - '200': - description: >- - A ListPromptsResponse containing all versions of the prompt. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Prompts - summary: List prompt versions. - description: >- - List prompt versions. - - List all versions of a specific prompt. - - :param prompt_id: The identifier of the prompt to list versions for. - :returns: A ListPromptsResponse containing all versions of the prompt. - parameters: - - name: prompt_id - description: >- - The identifier of the prompt to list versions for. - required: true - schema: - type: string - in: path - deprecated: false - /v1/providers: - get: - responses: - '200': - description: >- - A ListProvidersResponse containing information about all providers. - content: - application/json: - schema: - $ref: '#/components/schemas/ListProvidersResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Providers - summary: List providers. - description: >- - List providers. - - List all available providers. - - :returns: A ListProvidersResponse containing information about all - providers. - parameters: [] - deprecated: false - /v1/providers/{provider_id}: - get: - responses: - '200': - description: >- - A ProviderInfo object containing the provider's details. - content: - application/json: - schema: - $ref: '#/components/schemas/ProviderInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Providers - summary: Get provider. - description: >- - Get provider. - - Get detailed information about a specific provider. - - :param provider_id: The ID of the provider to inspect. - :returns: A ProviderInfo object containing the provider's details. - parameters: - - name: provider_id - description: The ID of the provider to inspect. - required: true - schema: - type: string - in: path - deprecated: false - /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 responses. - description: >- - List all responses. - - :param after: The ID of the last response to return. - :param limit: The number of responses to return. - :param model: The model to filter responses by. - :param order: The order to sort responses by when sorted by created_at - ('asc' or 'desc'). - :returns: A ListOpenAIResponseObject. - parameters: - - name: after - description: The ID of the last response to return. - required: false - schema: - type: string - in: query - - name: limit - description: The number of responses to return. - required: false - schema: - type: integer - in: query - - name: model - description: The model to filter responses by. - required: false - schema: - type: string - in: query - - name: order - description: >- - The order to sort responses by when sorted by created_at ('asc' or 'desc'). - required: false - schema: - $ref: '#/components/schemas/Order' - in: query - deprecated: false - post: - responses: - '200': - description: An OpenAIResponseObject. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIResponseObject' - text/event-stream: - schema: - $ref: '#/components/schemas/AsyncIterator' - '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 model response. - description: >- - Create a model response. - - :param input: Input message(s) to create the response. - :param model: The underlying LLM used for completions. - :param previous_response_id: (Optional) if specified, the new response - will be a continuation of the previous response. This can be used to easily - fork-off new responses from existing responses. - :param conversation: (Optional) The ID of a conversation to add the - response to. Must begin with 'conv_'. Input and output messages will be automatically - added to the conversation. - :param include: (Optional) Additional fields to include in the response. - :param guardrails: (Optional) List of guardrails to apply during response - generation. Can be guardrail IDs (strings) or guardrail specifications. - :returns: An OpenAIResponseObject. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateOpenaiResponseRequest' - required: true - deprecated: false - x-llama-stack-extra-body-params: - - name: guardrails - schema: - id: Annotated - description: >- - List of guardrails to apply during response generation. Guardrails provide - safety and content moderation. - required: true - /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: Get a model response. - description: >- - Get a model response. - - :param response_id: The ID of the OpenAI response to retrieve. - :returns: An OpenAIResponseObject. - parameters: - - name: response_id - description: >- - The ID of the OpenAI response to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - 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 a response. - description: >- - Delete a response. - - :param response_id: The ID of the OpenAI response to delete. - :returns: An OpenAIDeleteResponseObject - parameters: - - name: response_id - description: The ID of the OpenAI response to delete. - required: true - schema: - type: string - in: path - deprecated: false - /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. - description: >- - List input items. - - :param response_id: The ID of the response to retrieve input items for. - :param after: An item ID to list items after, used for pagination. - :param before: An item ID to list items before, used for pagination. - :param include: Additional fields to include in the response. - :param limit: A limit on the number of objects to be returned. Limit - can range between 1 and 100, and the default is 20. - :param order: The order to return the input items in. Default is desc. - :returns: An ListOpenAIResponseInputItem. - parameters: - - name: response_id - description: >- - The ID of the response to retrieve input items for. - required: true - schema: - type: string - in: path - - name: after - description: >- - An item ID to list items after, used for pagination. - required: false - schema: - type: string - in: query - - name: before - description: >- - An item ID to list items before, used for pagination. - required: false - schema: - type: string - in: query - - name: include - description: >- - Additional fields to include in the response. - required: false - schema: - $ref: '#/components/schemas/list' - in: query - - name: limit - 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 - in: query - - name: order - description: >- - The order to return the input items in. Default is desc. - required: false - schema: - $ref: '#/components/schemas/Order' - in: query - deprecated: false - /v1/safety/run-shield: - post: - responses: - '200': - description: A RunShieldResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/RunShieldResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Safety - summary: Run shield. - description: >- - Run shield. - - Run a shield. - - :param shield_id: The identifier of the shield to run. - :param messages: The messages to run the shield on. - :param params: The parameters of the shield. - :returns: A RunShieldResponse. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunShieldRequest' - required: true - deprecated: false - /v1/scoring-functions: - get: - responses: - '200': - description: A ListScoringFunctionsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListScoringFunctionsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: List all scoring functions. - description: >- - List all scoring functions. - - :returns: A ListScoringFunctionsResponse. - parameters: [] - deprecated: false - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: Register a scoring function. - description: >- - Register a scoring function. - - :param scoring_fn_id: The ID of the scoring function to register. - :param description: The description of the scoring function. - :param return_type: The return type of the scoring function. - :param provider_scoring_fn_id: The ID of the provider scoring function - to use for the scoring function. - :param provider_id: The ID of the provider to use for the scoring - function. - :param params: The parameters for the scoring function for benchmark - eval, these can be overridden for app eval. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterScoringFunctionRequest' - required: true - deprecated: false - /v1/scoring-functions/{scoring_fn_id}: - get: - responses: - '200': - description: A ScoringFn. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoringFn' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: Get a scoring function by its ID. - description: >- - Get a scoring function by its ID. - - :param scoring_fn_id: The ID of the scoring function to get. - :returns: A ScoringFn. - parameters: - - name: scoring_fn_id - description: The ID of the scoring function to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ScoringFunctions - summary: Unregister a scoring function. - description: >- - Unregister a scoring function. - - :param scoring_fn_id: The ID of the scoring function to unregister. - parameters: - - name: scoring_fn_id - description: >- - The ID of the scoring function to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /v1/scoring/score: - post: - responses: - '200': - description: >- - A ScoreResponse object containing rows and aggregated results. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Scoring - summary: Score a list of rows. - description: >- - Score a list of rows. - - :param input_rows: The rows to score. - :param scoring_functions: The scoring functions to use for the scoring. - :returns: A ScoreResponse object containing rows and aggregated results. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreRequest' - required: true - deprecated: false - /v1/scoring/score-batch: - post: - responses: - '200': - description: A ScoreBatchResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Scoring - summary: Score a batch of rows. - description: >- - Score a batch of rows. - - :param dataset_id: The ID of the dataset to score. - :param scoring_functions: The scoring functions to use for the scoring. - :param save_results_dataset: Whether to save the results to a dataset. - :returns: A ScoreBatchResponse. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchRequest' - required: true - deprecated: false - /v1/shields: - get: - responses: - '200': - description: A ListShieldsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListShieldsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: List all shields. - description: >- - List all shields. - - :returns: A ListShieldsResponse. - parameters: [] - deprecated: false - post: - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Register a shield. - description: >- - Register a shield. - - :param shield_id: The identifier of the shield to register. - :param provider_shield_id: The identifier of the shield in the provider. - :param provider_id: The identifier of the provider. - :param params: The parameters of the shield. - :returns: A Shield. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterShieldRequest' - required: true - deprecated: false - /v1/shields/{identifier}: - get: - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Get a shield by its identifier. - description: >- - Get a shield by its identifier. - - :param identifier: The identifier of the shield to get. - :returns: A Shield. - parameters: - - name: identifier - description: The identifier of the shield to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Shields - summary: Unregister a shield. - description: >- - Unregister a shield. - - :param identifier: The identifier of the shield to unregister. - parameters: - - name: identifier - description: >- - The identifier of the shield to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /v1/tool-runtime/invoke: - post: - responses: - '200': - description: A ToolInvocationResult. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolInvocationResult' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: Run a tool with the given arguments. - description: >- - Run a tool with the given arguments. - - :param tool_name: The name of the tool to invoke. - :param kwargs: A dictionary of arguments to pass to the tool. - :returns: A ToolInvocationResult. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InvokeToolRequest' - required: true - deprecated: false - /v1/tool-runtime/list-tools: - get: - responses: - '200': - description: A ListToolDefsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolDefsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: List all tools in the runtime. - description: >- - List all tools in the runtime. - - :param tool_group_id: The ID of the tool group to list tools for. - :param mcp_endpoint: The MCP endpoint to use for the tool group. - :returns: A ListToolDefsResponse. - parameters: - - name: tool_group_id - description: >- - The ID of the tool group to list tools for. - required: false - schema: - type: string - in: query - - name: mcp_endpoint - description: >- - The MCP endpoint to use for the tool group. - required: false - schema: - $ref: '#/components/schemas/URL' - in: query - deprecated: false - /v1/tool-runtime/rag-tool/insert: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: >- - Index documents so they can be used by the RAG system. - description: >- - Index documents so they can be used by the RAG system. - - :param documents: List of documents to index in the RAG system - :param vector_store_id: ID of the vector database to store the document - embeddings - :param chunk_size_in_tokens: (Optional) Size in tokens for document - chunking during indexing - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InsertRequest' - required: true - deprecated: false - /v1/tool-runtime/rag-tool/query: - post: - responses: - '200': - description: >- - RAGQueryResult containing the retrieved content and metadata - content: - application/json: - schema: - $ref: '#/components/schemas/RAGQueryResult' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolRuntime - summary: >- - Query the RAG system for context; typically invoked by the agent. - description: >- - Query the RAG system for context; typically invoked by the agent. - - :param content: The query content to search for in the indexed documents - :param vector_store_ids: List of vector database IDs to search within - :param query_config: (Optional) Configuration parameters for the query - operation - :returns: RAGQueryResult containing the retrieved content and metadata - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryRequest' - required: true - deprecated: false - /v1/toolgroups: - get: - responses: - '200': - description: A ListToolGroupsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolGroupsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: List tool groups with optional provider. - description: >- - List tool groups with optional provider. - - :returns: A ListToolGroupsResponse. - parameters: [] - deprecated: false - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Register a tool group. - description: >- - Register a tool group. - - :param toolgroup_id: The ID of the tool group to register. - :param provider_id: The ID of the provider to use for the tool group. - :param mcp_endpoint: The MCP endpoint to use for the tool group. - :param args: A dictionary of arguments to pass to the tool group. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterToolGroupRequest' - required: true - deprecated: false - /v1/toolgroups/{toolgroup_id}: - get: - responses: - '200': - description: A ToolGroup. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolGroup' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Get a tool group by its ID. - description: >- - Get a tool group by its ID. - - :param toolgroup_id: The ID of the tool group to get. - :returns: A ToolGroup. - parameters: - - name: toolgroup_id - description: The ID of the tool group to get. - required: true - schema: - type: string - in: path - deprecated: false - delete: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Unregister a tool group. - description: >- - Unregister a tool group. - - :param toolgroup_id: The ID of the tool group to unregister. - parameters: - - name: toolgroup_id - description: The ID of the tool group to unregister. - required: true - schema: - type: string - in: path - deprecated: false - /v1/tools: - get: - responses: - '200': - description: A ListToolDefsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListToolDefsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: List tools with optional tool group. - description: >- - List tools with optional tool group. - - :param toolgroup_id: The ID of the tool group to list tools for. - :returns: A ListToolDefsResponse. - parameters: - - name: toolgroup_id - description: >- - The ID of the tool group to list tools for. - required: false - schema: - type: string - in: query - deprecated: false - /v1/tools/{tool_name}: - get: - responses: - '200': - description: A ToolDef. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolDef' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - ToolGroups - summary: Get a tool by its name. - description: >- - Get a tool by its name. - - :param tool_name: The name of the tool to get. - :returns: A ToolDef. - parameters: - - name: tool_name - description: The name of the tool to get. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector-io/insert: - post: - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Insert chunks into a vector database. - description: >- - Insert chunks into a vector database. - - :param vector_store_id: The identifier of the vector database to insert the - chunks into. - :param chunks: The chunks to insert. Each `Chunk` should contain content - which can be interleaved text, images, or other types. - `metadata`: `dict[str, Any]` and `embedding`: `List[float]` are - optional. - If `metadata` is provided, you configure how Llama Stack formats - the chunk during generation. - If `embedding` is not provided, it will be computed later. - :param ttl_seconds: The time to live of the chunks. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/InsertChunksRequest' - required: true - deprecated: false - /v1/vector-io/query: - post: - responses: - '200': - description: A QueryChunksResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/QueryChunksResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Query chunks from a vector database. - description: >- - Query chunks from a vector database. - - :param vector_store_id: The identifier of the vector database to query. - :param query: The query to search for. - :param params: The parameters of the query. - :returns: A QueryChunksResponse. - parameters: [] - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryChunksRequest' - required: true - deprecated: false - /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. - - :param limit: A limit on the number of objects to be returned. Limit can range - between 1 and 100, and the default is 20. - :param order: Sort order by the `created_at` timestamp of the objects. - `asc` for ascending order and `desc` for descending order. - :param after: A cursor for use in pagination. `after` is an object - ID that defines your place in the list. - :param before: A cursor for use in pagination. `before` is an object - ID that defines your place in the list. - :returns: A VectorStoreListResponse containing the list of vector - stores. - parameters: - - name: limit - 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 - in: query - - name: order - 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 - in: query - - name: after - description: >- - A cursor for use in pagination. `after` is an object ID that defines your - place in the list. - required: false - schema: - type: string - in: query - - name: before - description: >- - A cursor for use in pagination. `before` is an object ID that defines - your place in the list. - required: false - schema: - type: string - in: query - deprecated: false - 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. - - Generate an OpenAI-compatible vector store with the given parameters. - :returns: A VectorStoreObject representing the created vector store. - parameters: [] - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store to retrieve. - :returns: A VectorStoreObject representing the vector store. - parameters: - - name: vector_store_id - description: The ID of the vector store to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store to update. - :param name: The name of the vector store. - :param expires_after: The expiration policy for a vector store. - :param metadata: Set of 16 key-value pairs that can be attached to - an object. - :returns: A VectorStoreObject representing the updated vector store. - parameters: - - name: vector_store_id - description: The ID of the vector store to update. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiUpdateVectorStoreRequest' - required: true - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store to delete. - :returns: A VectorStoreDeleteResponse indicating the deletion status. - parameters: - - name: vector_store_id - description: The ID of the vector store to delete. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches: - post: - responses: - '200': - description: >- - A VectorStoreFileBatchObject representing the created file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Create a vector store file batch. - description: >- - Create a vector store file batch. - - Generate an OpenAI-compatible vector store file batch for the given vector - store. - :param vector_store_id: The ID of the vector store to create the file - batch for. - :returns: A VectorStoreFileBatchObject representing the created file - batch. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store to create the file batch for. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - id: Annotated - required: true - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}: - get: - responses: - '200': - description: >- - A VectorStoreFileBatchObject representing the file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Retrieve a vector store file batch. - description: >- - Retrieve a vector store file batch. - - :param batch_id: The ID of the file batch to retrieve. - :param vector_store_id: The ID of the vector store containing the - file batch. - :returns: A VectorStoreFileBatchObject representing the file batch. - parameters: - - name: batch_id - description: The ID of the file batch to retrieve. - required: true - schema: - type: string - in: path - - name: vector_store_id - description: >- - The ID of the vector store containing the file batch. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: - post: - responses: - '200': - description: >- - A VectorStoreFileBatchObject representing the cancelled file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: Cancels a vector store file batch. - description: >- - Cancels a vector store file batch. - - :param batch_id: The ID of the file batch to cancel. - :param vector_store_id: The ID of the vector store containing the - file batch. - :returns: A VectorStoreFileBatchObject representing the cancelled - file batch. - parameters: - - name: batch_id - description: The ID of the file batch to cancel. - required: true - schema: - type: string - in: path - - name: vector_store_id - description: >- - The ID of the vector store containing the file batch. - required: true - schema: - type: string - in: path - deprecated: false - /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files: - get: - responses: - '200': - description: >- - A VectorStoreFilesListInBatchResponse containing the list of files in - the batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFilesListInBatchResponse' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - VectorIO - summary: >- - Returns a list of vector store files in a batch. - description: >- - Returns a list of vector store files in a batch. - - :param batch_id: The ID of the file batch to list files from. - :param vector_store_id: The ID of the vector store containing the - file batch. - :param after: A cursor for use in pagination. `after` is an object - ID that defines your place in the list. - :param before: A cursor for use in pagination. `before` is an object - ID that defines your place in the list. - :param filter: Filter by file status. One of in_progress, completed, - failed, cancelled. - :param limit: A limit on the number of objects to be returned. Limit - can range between 1 and 100, and the default is 20. - :param order: Sort order by the `created_at` timestamp of the objects. - `asc` for ascending order and `desc` for descending order. - :returns: A VectorStoreFilesListInBatchResponse containing the list - of files in the batch. - parameters: - - name: batch_id - description: >- - The ID of the file batch to list files from. - required: true - schema: - type: string - in: path - - name: vector_store_id - description: >- - The ID of the vector store containing the file batch. - required: true - schema: - type: string - in: path - - name: after - description: >- - A cursor for use in pagination. `after` is an object ID that defines your - place in the list. - required: false - schema: - type: string - in: query - - name: before - description: >- - A cursor for use in pagination. `before` is an object ID that defines - your place in the list. - required: false - schema: - type: string - in: query - - name: filter - description: >- - Filter by file status. One of in_progress, completed, failed, cancelled. - required: false - schema: - type: string - in: query - - name: limit - 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 - in: query - - name: order - 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 - in: query - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store to list files from. - :param limit: (Optional) A limit on the number of objects to be returned. - Limit can range between 1 and 100, and the default is 20. - :param order: (Optional) Sort order by the `created_at` timestamp - of the objects. `asc` for ascending order and `desc` for descending order. - :param after: (Optional) A cursor for use in pagination. `after` is - an object ID that defines your place in the list. - :param before: (Optional) A cursor for use in pagination. `before` - is an object ID that defines your place in the list. - :param filter: (Optional) Filter by file status to only return files - with the specified status. - :returns: A VectorStoreListFilesResponse containing the list of files. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store to list files from. - required: true - schema: - type: string - in: path - - name: limit - 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 - in: query - - name: order - 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 - in: query - - name: after - 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 - in: query - - name: before - 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 - in: query - - name: filter - description: >- - (Optional) Filter by file status to only return files with the specified - status. - required: false - schema: - id: Union - in: query - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store to attach the file to. - :param file_id: The ID of the file to attach to the vector store. - :param attributes: The key-value attributes stored with the file, - which can be used for filtering. - :param chunking_strategy: The chunking strategy to use for the file. - :returns: A VectorStoreFileObject representing the attached file. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store to attach the file to. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiAttachFileToVectorStoreRequest' - required: true - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store containing the file to - retrieve. - :param file_id: The ID of the file to retrieve. - :returns: A VectorStoreFileObject representing the file. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to retrieve. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store containing the file to - update. - :param file_id: The ID of the file to update. - :param attributes: The updated key-value attributes to store with - the file. - :returns: A VectorStoreFileObject representing the updated file. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to update. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to update. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiUpdateVectorStoreFileRequest' - required: true - deprecated: false - 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. - - :param vector_store_id: The ID of the vector store containing the file to - delete. - :param file_id: The ID of the file to delete. - :returns: A VectorStoreFileDeleteResponse indicating the deletion - status. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to delete. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to delete. - required: true - schema: - type: string - in: path - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store containing the file to - retrieve. - :param file_id: The ID of the file to retrieve. - :returns: A list of InterleavedContent representing the file contents. - parameters: - - name: vector_store_id - description: >- - The ID of the vector store containing the file to retrieve. - required: true - schema: - type: string - in: path - - name: file_id - description: The ID of the file to retrieve. - required: true - schema: - type: string - in: path - deprecated: false - /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. - - :param vector_store_id: The ID of the vector store to search. - :param query: The query string or array for performing the search. - :param filters: Filters based on file attributes to narrow the search - results. - :param max_num_results: Maximum number of results to return (1 to - 50 inclusive, default 10). - :param ranking_options: Ranking options for fine-tuning the search - results. - :param rewrite_query: Whether to rewrite the natural language query - for vector search (default false) - :param search_mode: The search mode to use - "keyword", "vector", - or "hybrid" (default "vector") - :returns: A VectorStoreSearchResponse containing the search results. - parameters: - - name: vector_store_id - description: The ID of the vector store to search. - required: true - schema: - type: string - in: path - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OpenaiSearchVectorStoreRequest' - required: true - deprecated: false - /v1/version: - get: - responses: - '200': - description: >- - Version information containing the service version number. - content: - application/json: - schema: - $ref: '#/components/schemas/VersionInfo' - '400': - $ref: '#/components/responses/BadRequest400' - '429': - $ref: >- - #/components/responses/TooManyRequests429 - '500': - $ref: >- - #/components/responses/InternalServerError500 - default: - $ref: '#/components/responses/DefaultError' - tags: - - Inspect - summary: Get version. - description: >- - Get version. - - Get the version of the service. - - :returns: Version information containing the service version number. - parameters: [] - deprecated: false /v1beta/datasetio/append-rows/{dataset_id}: post: tags: - - V1Beta + - DatasetIO summary: Append rows to a dataset. - description: Generic endpoint - this would be replaced with actual implementation. + description: Append rows to a dataset. operationId: append_rows_v1beta_datasetio_append_rows__dataset_id__post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: dataset_id in: path required: true schema: type: string - description: 'Path parameter: dataset_id' + description: The ID of the dataset to append the rows to + title: Dataset Id + description: The ID of the dataset to append the rows to + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: true + description: The rows to append to the dataset. + title: Body + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta/datasetio/iterrows/{dataset_id}: + get: + tags: + - DatasetIO + summary: Get a paginated list of rows from a dataset. + description: Get a paginated list of rows from a dataset using offset-based pagination. + operationId: iterrows_v1beta_datasetio_iterrows__dataset_id__get + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to get the rows from + title: Dataset Id + description: The ID of the dataset to get the rows from + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: Index into dataset for the first row to get. Get all rows if None. + title: Start Index + description: Index into dataset for the first row to get. Get all rows if None. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of rows to get. + title: Limit + description: The number of rows to get. responses: '200': description: Successful Response - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1beta/datasetio/iterrows/{dataset_id}: - get: - tags: - - V1Beta - summary: Get a paginated list of rows from a dataset. - description: Query endpoint for proper schema generation. - operationId: iterrows_v1beta_datasetio_iterrows__dataset_id__get - parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - - name: dataset_id - in: path - required: true - schema: - type: string - title: Dataset Id - responses: - '200': - description: A PaginatedResponse. content: application/json: schema: $ref: '#/components/schemas/PaginatedResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1beta/datasets: get: tags: - - V1Beta - summary: List all datasets. - description: Response-only endpoint for proper schema generation. + - Datasets + summary: List all datasets + description: List all datasets operationId: list_datasets_v1beta_datasets_get responses: '200': - description: A ListDatasetsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListDatasetsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Beta - summary: Register a new dataset. - description: Typed endpoint for proper schema generation. + - Datasets + summary: Register a new dataset + description: Register a new dataset operationId: register_dataset_v1beta_datasets_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/__main_____datasets_Request' + $ref: '#/components/schemas/RegisterDatasetRequest' required: true responses: '200': - description: A Dataset. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Dataset' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1beta/datasets/{dataset_id}: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta/datasets/{{dataset_id}}: delete: tags: - - V1Beta - summary: Unregister a dataset by its ID. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_dataset_v1beta_datasets__dataset_id__delete + - Datasets + summary: Unregister a dataset by its ID + description: Unregister a dataset by its ID + operationId: unregister_dataset_v1beta_datasets___dataset_id___delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: dataset_id in: path required: true schema: type: string - description: 'Path parameter: dataset_id' + description: The ID of the dataset to unregister + title: Dataset Id + description: The ID of the dataset to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Datasets + summary: Get a dataset by its ID + description: Get a dataset by its ID + operationId: get_dataset_v1beta_datasets___dataset_id___get + parameters: + - name: dataset_id + in: path + required: true + schema: + type: string + description: The ID of the dataset to get + title: Dataset Id + description: The ID of the dataset to get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Dataset' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents: + get: + tags: + - Agents + summary: List all agents. + description: List all agents. + operationId: list_agents_v1alpha_agents_get + parameters: + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of agents to return. + title: Limit + description: The number of agents to return. responses: '200': description: Successful Response @@ -3647,385 +335,405 @@ paths: application/json: schema: {} '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: - tags: - - V1Beta - summary: Get a dataset by its ID. - description: Query endpoint for proper schema generation. - operationId: get_dataset_v1beta_datasets__dataset_id__get - parameters: - - name: dataset_id - in: path - required: true - schema: - type: string - title: Dataset Id - responses: - '200': - description: A Dataset. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/Dataset' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents: - get: - tags: - - V1Alpha - summary: List all agents. - description: Query endpoint for proper schema generation. - operationId: list_agents_v1alpha_agents_get - parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - responses: - '200': - description: A PaginatedResponse. + description: The client has sent too many requests in a given amount of time. content: application/json: schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Alpha - summary: Create an agent with the given configuration. - description: Typed endpoint for proper schema generation. + - Agents + summary: Create an agent. + description: Create an agent with the given configuration. operationId: create_agent_v1alpha_agents_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/AgentConfig' + $ref: '#/components/schemas/AgentConfig-Input' responses: '200': - description: An AgentCreateResponse with the agent ID. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AgentCreateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}: - delete: - tags: - - V1Alpha - summary: Delete an agent by its ID and its associated sessions and turns. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_agent_v1alpha_agents__agent_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: agent_id - in: path - required: true - schema: - type: string - description: The ID of the agent to delete. - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}: + delete: tags: - - V1Alpha - summary: Describe an agent by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agent_v1alpha_agents__agent_id__get + - Agents + summary: Delete an agent. + description: Delete an agent by its ID. + operationId: delete_agent_v1alpha_agents___agent_id___delete parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to delete. + title: Agent Id + description: The ID of the agent to delete. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Agents + summary: Describe an agent. + description: Describe an agent by its ID. + operationId: get_agent_v1alpha_agents___agent_id___get + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: ID of the agent. title: Agent Id description: ID of the agent. responses: '200': - description: An Agent of the agent. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Agent' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session: - post: - tags: - - V1Alpha - summary: Create a new session for an agent. - description: Typed endpoint for proper schema generation. - operationId: create_agent_session_v1alpha_agents__agent_id__session_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_Request' - required: true - responses: - '200': - description: An AgentSessionCreateResponse. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/AgentSessionCreateResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: agent_id - in: path - required: true - schema: - type: string - description: The ID of the agent to create the session for. - /v1alpha/agents/{agent_id}/session/{session_id}: - delete: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session: + post: tags: - - V1Alpha - summary: Delete an agent session by its ID and its associated turns. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_agents_session_v1alpha_agents__agent_id__session__session_id__delete + - Agents + summary: Create a new session for an agent. + description: Create a new session for an agent. + operationId: create_agent_session_v1alpha_agents___agent_id___session_post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: session_id - in: path - required: true - schema: - type: string - description: The ID of the session to delete. - name: agent_id in: path required: true schema: type: string - description: The ID of the agent to delete the session for. + description: The ID of the agent to create the session for. + title: Agent Id + description: The ID of the agent to create the session for. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAgentSessionRequest' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/AgentSessionCreateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}: + delete: tags: - - V1Alpha - summary: Retrieve an agent session by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_session_v1alpha_agents__agent_id__session__session_id__get + - Agents + summary: Delete an agent session. + description: Delete an agent session by its ID. + operationId: delete_agents_session_v1alpha_agents___agent_id___session___session_id___delete parameters: - - name: turn_ids - in: query + - name: agent_id + in: path required: true schema: type: string - title: Turn Ids + description: The ID of the agent to delete the session for. + title: Agent Id + description: The ID of the agent to delete the session for. - name: session_id in: path required: true schema: type: string + description: The ID of the session to delete. title: Session Id - description: The ID of the session to get. - - name: agent_id - in: path - required: true - schema: - type: string - title: Agent Id - description: The ID of the agent to get the session for. + description: The ID of the session to delete. responses: - '200': - description: A Session. + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/Session' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session/{session_id}/turn: - post: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: tags: - - V1Alpha - summary: Create a new turn for an agent. - description: Typed endpoint for proper schema generation. - operationId: create_agent_turn_v1alpha_agents__agent_id__session__session_id__turn_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_session_id_turn_Request' - required: true - responses: - '200': - description: If stream=False, returns a Turn object. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' + - Agents + summary: Retrieve an agent session. + description: Retrieve an agent session by its ID. + operationId: get_agents_session_v1alpha_agents___agent_id___session___session_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the session for. + title: Agent Id + description: The ID of the agent to get the session for. + - name: session_id + in: path + required: true + schema: + type: string + description: The ID of the session to get. + title: Session Id + description: The ID of the session to get. + - name: turn_ids + in: query + required: false + schema: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: List of turn IDs to filter the session by. + title: Turn Ids + description: List of turn IDs to filter the session by. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Session' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn: + post: + tags: + - Agents + summary: Create a new turn for an agent. + description: Create a new turn for an agent. + operationId: create_agent_turn_v1alpha_agents___agent_id___session___session_id___turn_post + parameters: + - name: agent_id + in: path + required: true + schema: + type: string + description: The ID of the agent to create the turn for. + title: Agent Id description: The ID of the agent to create the turn for. - name: session_id in: path required: true schema: type: string + description: The ID of the session to create the turn for. + title: Session Id description: The ID of the session to create the turn for. - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnCreateRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}: get: tags: - - V1Alpha - summary: Retrieve an agent turn by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__get + - Agents + summary: Retrieve an agent turn. + description: Retrieve an agent turn by its ID. + operationId: get_agents_turn_v1alpha_agents___agent_id___session___session_id___turn___turn_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the turn for. title: Agent Id description: The ID of the agent to get the turn for. - name: session_id @@ -4033,6 +741,7 @@ paths: required: true schema: type: string + description: The ID of the session to get the turn for. title: Session Id description: The ID of the session to get the turn for. - name: turn_id @@ -4040,91 +749,122 @@ paths: required: true schema: type: string + description: The ID of the turn to get. title: Turn Id description: The ID of the turn to get. responses: '200': - description: A Turn. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Turn' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/resume: post: tags: - - V1Alpha - summary: Resume an agent turn with executed tool call responses. - description: Typed endpoint for proper schema generation. - operationId: resume_agent_turn_v1alpha_agents__agent_id__session__session_id__turn__turn_id__resume_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/__main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request' - required: true - responses: - '200': - description: A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk objects. - content: - application/json: - schema: - $ref: '#/components/schemas/Turn' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' + - Agents + summary: Resume an agent turn. + description: Resume an agent turn with executed tool call responses. + operationId: resume_agent_turn_v1alpha_agents___agent_id___session___session_id___turn___turn_id___resume_post parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to resume. + title: Agent Id description: The ID of the agent to resume. - name: session_id in: path required: true schema: type: string + description: The ID of the session to resume. + title: Session Id description: The ID of the session to resume. - name: turn_id in: path required: true schema: type: string + description: The ID of the turn to resume. + title: Turn Id description: The ID of the turn to resume. - /v1alpha/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AgentTurnResumeRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/step/{{step_id}}: get: tags: - - V1Alpha - summary: Retrieve an agent step by its ID. - description: Query endpoint for proper schema generation. - operationId: get_agents_step_v1alpha_agents__agent_id__session__session_id__turn__turn_id__step__step_id__get + - Agents + summary: Retrieve an agent step. + description: Retrieve an agent step by its ID. + operationId: get_agents_step_v1alpha_agents___agent_id___session___session_id___turn___turn_id___step___step_id___get parameters: - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to get the step for. title: Agent Id description: The ID of the agent to get the step for. - name: session_id @@ -4132,6 +872,7 @@ paths: required: true schema: type: string + description: The ID of the session to get the step for. title: Session Id description: The ID of the session to get the step for. - name: turn_id @@ -4139,6 +880,7 @@ paths: required: true schema: type: string + description: The ID of the turn to get the step for. title: Turn Id description: The ID of the turn to get the step for. - name: step_id @@ -4146,454 +888,588 @@ paths: required: true schema: type: string + description: The ID of the step to get. title: Step Id description: The ID of the step to get. responses: '200': - description: An AgentStepResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AgentStepResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/agents/{agent_id}/sessions: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/agents/{{agent_id}}/sessions: get: tags: - - V1Alpha - summary: List all session(s) of a given agent. - description: Query endpoint for proper schema generation. - operationId: list_agent_sessions_v1alpha_agents__agent_id__sessions_get + - Agents + summary: List all sessions of an agent. + description: List all session(s) of a given agent. + operationId: list_agent_sessions_v1alpha_agents___agent_id___sessions_get parameters: - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: start_index - in: query - required: true - schema: - type: integer - title: Start Index - name: agent_id in: path required: true schema: type: string + description: The ID of the agent to list sessions for. title: Agent Id description: The ID of the agent to list sessions for. + - name: start_index + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The index to start the pagination from. + title: Start Index + description: The index to start the pagination from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The number of sessions to return. + title: Limit + description: The number of sessions to return. responses: '200': - description: A PaginatedResponse. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/PaginatedResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/eval/benchmarks: get: tags: - - V1Alpha - summary: List all benchmarks. - description: Response-only endpoint for proper schema generation. + - Benchmarks + summary: List all benchmarks + description: List all benchmarks operationId: list_benchmarks_v1alpha_eval_benchmarks_get responses: '200': - description: A ListBenchmarksResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListBenchmarksResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1Alpha - summary: Register a benchmark. - description: Generic endpoint - this would be replaced with actual implementation. + - Benchmarks + summary: Register a benchmark + description: Register a benchmark operationId: register_benchmark_v1alpha_eval_benchmarks_post - parameters: - - name: args - in: query + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterBenchmarkRequest' required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}: delete: tags: - - V1Alpha - summary: Unregister a benchmark. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_benchmark_v1alpha_eval_benchmarks__benchmark_id__delete + - Benchmarks + summary: Unregister a benchmark + description: Unregister a benchmark + operationId: unregister_benchmark_v1alpha_eval_benchmarks___benchmark_id___delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: benchmark_id in: path required: true schema: type: string - description: The ID of the benchmark to unregister. + description: The ID of the benchmark to unregister + title: Benchmark Id + description: The ID of the benchmark to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Benchmarks + summary: Get a benchmark by its ID + description: Get a benchmark by its ID + operationId: get_benchmark_v1alpha_eval_benchmarks___benchmark_id___get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to get + title: Benchmark Id + description: The ID of the benchmark to get responses: '200': description: Successful Response - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: - tags: - - V1Alpha - summary: Get a benchmark by its ID. - description: Query endpoint for proper schema generation. - operationId: get_benchmark_v1alpha_eval_benchmarks__benchmark_id__get - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - title: Benchmark Id - description: The ID of the benchmark to get. - responses: - '200': - description: A Benchmark. content: application/json: schema: $ref: '#/components/schemas/Benchmark' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}/evaluations: - post: - tags: - - V1Alpha - summary: Evaluate a list of rows on a benchmark. - description: Typed endpoint for proper schema generation. - operationId: evaluate_rows_v1alpha_eval_benchmarks__benchmark_id__evaluations_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BenchmarkConfig' - required: true - responses: - '200': - description: EvaluateResponse object containing generations and scores. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/EvaluateResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - description: The ID of the benchmark to run the evaluation on. - /v1alpha/eval/benchmarks/{benchmark_id}/jobs: - post: - tags: - - V1Alpha - summary: Run an evaluation on a benchmark. - description: Typed endpoint for proper schema generation. - operationId: run_eval_v1alpha_eval_benchmarks__benchmark_id__jobs_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BenchmarkConfig' - required: true - responses: - '200': - description: The job that was created to run the evaluation. + description: The client has sent too many requests in a given amount of time. content: application/json: schema: - $ref: '#/components/schemas/Job' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: benchmark_id - in: path - required: true - schema: - type: string - description: The ID of the benchmark to run the evaluation on. - /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}: - delete: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/evaluations: + post: tags: - - V1Alpha - summary: Cancel a job. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: job_cancel_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__delete + - Eval + summary: Evaluate a list of rows on a benchmark + description: Evaluate a list of rows on a benchmark + operationId: evaluate_rows_v1alpha_eval_benchmarks___benchmark_id___evaluations_post parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: benchmark_id in: path required: true schema: type: string - description: The ID of the benchmark to run the evaluation on. - - name: job_id - in: path + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + requestBody: required: true - schema: - type: string - description: The ID of the job to cancel. + content: + application/json: + schema: + $ref: '#/components/schemas/EvaluateRowsRequest' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/EvaluateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs: + post: tags: - - V1Alpha - summary: Get the status of a job. - description: Query endpoint for proper schema generation. - operationId: job_status_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__get + - Eval + summary: Run an evaluation on a benchmark + description: Run an evaluation on a benchmark + operationId: run_eval_v1alpha_eval_benchmarks___benchmark_id___jobs_post parameters: - name: benchmark_id in: path required: true schema: type: string + description: The ID of the benchmark to run the evaluation on title: Benchmark Id - description: The ID of the benchmark to run the evaluation on. - - name: job_id - in: path + description: The ID of the benchmark to run the evaluation on + requestBody: required: true - schema: - type: string - title: Job Id - description: The ID of the job to get the status of. + content: + application/json: + schema: + $ref: '#/components/schemas/BenchmarkConfig' responses: '200': - description: The status of the evaluation job. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Job' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result: - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}: + delete: tags: - - V1Alpha - summary: Get the result of a job. - description: Query endpoint for proper schema generation. - operationId: job_result_v1alpha_eval_benchmarks__benchmark_id__jobs__job_id__result_get + - Eval + summary: Cancel a job + description: Cancel a job + operationId: job_cancel_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___delete parameters: - name: benchmark_id in: path required: true schema: type: string + description: The ID of the benchmark to run the evaluation on title: Benchmark Id - description: The ID of the benchmark to run the evaluation on. + description: The ID of the benchmark to run the evaluation on - name: job_id in: path required: true schema: type: string + description: The ID of the job to cancel title: Job Id - description: The ID of the job to get the result of. + description: The ID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Eval + summary: Get the status of a job + description: Get the status of a job + operationId: job_status_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the status of + title: Job Id + description: The ID of the job to get the status of responses: '200': - description: The result of the job. + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}/result: + get: + tags: + - Eval + summary: Get the result of a job + description: Get the result of a job + operationId: job_result_v1alpha_eval_benchmarks___benchmark_id___jobs___job_id___result_get + parameters: + - name: benchmark_id + in: path + required: true + schema: + type: string + description: The ID of the benchmark to run the evaluation on + title: Benchmark Id + description: The ID of the benchmark to run the evaluation on + - name: job_id + in: path + required: true + schema: + type: string + description: The ID of the job to get the result of + title: Job Id + description: The ID of the job to get the result of + responses: + '200': + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/EvaluateResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/inference/rerank: post: tags: - - V1Alpha - summary: Rerank a list of documents based on their relevance to a query. - description: Typed endpoint for proper schema generation. + - Inference + summary: Rerank a list of documents. + description: Rerank a list of documents based on their relevance to a query. operationId: rerank_v1alpha_inference_rerank_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_inference_rerank_Request' + $ref: '#/components/schemas/Body_rerank_v1alpha_inference_rerank_post' required: true responses: '200': - description: RerankResponse with indices sorted by relevance score (descending). + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RerankResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/job/artifacts: get: tags: - - V1Alpha - summary: Get the artifacts of a training job. - description: Query endpoint for proper schema generation. + - Post Training + summary: Get the artifacts of a training job + description: Get the artifacts of a training job operationId: get_training_job_artifacts_v1alpha_post_training_job_artifacts_get parameters: - name: job_uuid @@ -4601,68 +1477,89 @@ paths: required: true schema: type: string + description: The UUID of the job to get the artifacts of title: Job Uuid - responses: - '200': - description: A PostTrainingJobArtifactsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1alpha/post-training/job/cancel: - post: - tags: - - V1Alpha - summary: Cancel a training job. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: cancel_training_job_v1alpha_post_training_job_cancel_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs + description: The UUID of the job to get the artifacts of responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/PostTrainingJobArtifactsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1alpha/post-training/job/cancel: + post: + tags: + - Post Training + summary: Cancel a training job + description: Cancel a training job + operationId: cancel_training_job_v1alpha_post_training_job_cancel_post + parameters: + - name: job_uuid + in: query + required: true + schema: + type: string + description: The UUID of the job to cancel + title: Job Uuid + description: The UUID of the job to cancel + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/job/status: get: tags: - - V1Alpha - summary: Get the status of a training job. - description: Query endpoint for proper schema generation. + - Post Training + summary: Get the status of a training job + description: Get the status of a training job operationId: get_training_job_status_v1alpha_post_training_job_status_get parameters: - name: job_uuid @@ -4670,193 +1567,275 @@ paths: required: true schema: type: string + description: The UUID of the job to get the status of title: Job Uuid + description: The UUID of the job to get the status of responses: '200': - description: A PostTrainingJobStatusResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJobStatusResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/jobs: get: tags: - - V1Alpha - summary: Get all training jobs. - description: Response-only endpoint for proper schema generation. + - Post Training + summary: Get all training jobs + description: Get all training jobs operationId: get_training_jobs_v1alpha_post_training_jobs_get responses: '200': - description: A ListPostTrainingJobsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListPostTrainingJobsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/preference-optimize: post: tags: - - V1Alpha - summary: Run preference optimization of a model. - description: Typed endpoint for proper schema generation. + - Post Training + summary: Run preference optimization of a model + description: Run preference optimization of a model operationId: preference_optimize_v1alpha_post_training_preference_optimize_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/DPOAlignmentConfig' + $ref: '#/components/schemas/PreferenceOptimizeRequest' required: true responses: '200': - description: A PostTrainingJob. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJob' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1alpha/post-training/supervised-fine-tune: post: tags: - - V1Alpha - summary: Run supervised fine-tuning of a model. - description: Typed endpoint for proper schema generation. + - Post Training + summary: Run supervised fine-tuning of a model + description: Run supervised fine-tuning of a model operationId: supervised_fine_tune_v1alpha_post_training_supervised_fine_tune_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/TrainingConfig' + $ref: '#/components/schemas/SupervisedFineTuneRequest' required: true responses: '200': - description: A PostTrainingJob. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PostTrainingJob' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches: get: tags: - - V1 + - Batches summary: List all batches for the current user. - description: Query endpoint for proper schema generation. + description: List all batches for the current user. operationId: list_batches_v1_batches_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for pagination; returns batches after this batch ID. title: After + description: A cursor for pagination; returns batches after this batch ID. - name: limit in: query required: false schema: type: integer + maximum: 100 + minimum: 1 + description: Number of batches to return (default 20, max 100). default: 20 title: Limit + description: Number of batches to return (default 20, max 100). responses: '200': - description: A list of batch objects. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListBatchesResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Batches summary: Create a new batch for processing multiple API requests. - description: Typed endpoint for proper schema generation. + description: Create a new batch for processing multiple API requests. operationId: create_batch_v1_batches_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_batches_Request' + $ref: '#/components/schemas/CreateBatchRequest' responses: '200': - description: The created batch object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Batch' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches/{batch_id}: get: tags: - - V1 + - Batches summary: Retrieve information about a specific batch. - description: Query endpoint for proper schema generation. + description: Retrieve information about a specific batch. operationId: retrieve_batch_v1_batches__batch_id__get parameters: - name: batch_id @@ -4864,123 +1843,173 @@ paths: required: true schema: type: string + description: The ID of the batch to retrieve. title: Batch Id description: The ID of the batch to retrieve. responses: '200': - description: The batch object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Batch' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/batches/{batch_id}/cancel: post: tags: - - V1 + - Batches summary: Cancel a batch that is in progress. - description: Typed endpoint for proper schema generation. + description: Cancel a batch that is in progress. operationId: cancel_batch_v1_batches__batch_id__cancel_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_batches_batch_id_cancel_Request' - required: true - responses: - '200': - description: The updated batch object. - content: - application/json: - schema: - $ref: '#/components/schemas/Batch' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - name: batch_id in: path required: true schema: type: string + description: The ID of the batch to cancel. + title: Batch Id description: The ID of the batch to cancel. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Batch' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/chat/completions: get: tags: - - V1 + - Inference summary: List chat completions. - description: Query endpoint for proper schema generation. + description: List chat completions. operationId: list_chat_completions_v1_chat_completions_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the last chat completion to return. title: After - - name: model - in: query - required: true - schema: - type: string - title: Model + description: The ID of the last chat completion to return. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + description: The maximum number of chat completions to return. default: 20 title: Limit + description: The maximum number of chat completions to return. + - name: model + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The model to filter by. + title: Model + description: The model to filter by. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: "The order to sort the chat completions by: 'asc' or 'desc'. Defaults to 'desc'." default: desc + title: Order + description: "The order to sort the chat completions by: 'asc' or 'desc'. Defaults to 'desc'." responses: '200': - description: A ListOpenAIChatCompletionResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIChatCompletionResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Inference summary: Create chat completions. - description: Typed endpoint for proper schema generation. + description: Create chat completions. operationId: openai_chat_completion_v1_chat_completions_post requestBody: required: true @@ -4990,29 +2019,40 @@ paths: $ref: '#/components/schemas/OpenAIChatCompletionRequestWithExtraBody' responses: '200': - description: An OpenAIChatCompletion. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/OpenAIChatCompletion' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/chat/completions/{completion_id}: get: tags: - - V1 + - Inference summary: Get chat completion. - description: Query endpoint for proper schema generation. + description: Get chat completion. operationId: get_chat_completion_v1_chat_completions__completion_id__get parameters: - name: completion_id @@ -5020,33 +2060,46 @@ paths: required: true schema: type: string + description: ID of the chat completion. title: Completion Id description: ID of the chat completion. responses: '200': - description: A OpenAICompletionWithInputMessages. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAICompletionWithInputMessages' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/completions: post: tags: - - V1 + - Inference summary: Create completion. - description: Typed endpoint for proper schema generation. + description: Create completion. operationId: openai_completion_v1_completions_post requestBody: content: @@ -5056,61 +2109,85 @@ paths: required: true responses: '200': - description: An OpenAICompletion. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAICompletion' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations: post: tags: - - V1 - summary: Create a conversation. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Create a conversation + description: Create a conversation operationId: create_conversation_v1_conversations_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_conversations_Request' + $ref: '#/components/schemas/ConversationCreateRequest' required: true responses: '200': - description: The created conversation object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}: delete: tags: - - V1 - summary: Delete a conversation. - description: Query endpoint for proper schema generation. + - Conversations + summary: Delete a conversation + description: Delete a conversation with the given ID operationId: openai_delete_conversation_v1_conversations__conversation_id__delete parameters: - name: conversation_id @@ -5118,32 +2195,45 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier responses: '200': - description: The deleted conversation resource. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationDeletedResource' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Retrieve a conversation. - description: Query endpoint for proper schema generation. + - Conversations + summary: Retrieve a conversation + description: Get a conversation with the given ID operationId: get_conversation_v1_conversations__conversation_id__get parameters: - name: conversation_id @@ -5151,166 +2241,242 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier responses: '200': - description: The conversation object. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Update a conversation. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Update a conversation + description: Update a conversation's metadata with the given ID operationId: update_conversation_v1_conversations__conversation_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_conversations_conversation_id_Request' - responses: - '200': - description: The updated conversation object. - content: - application/json: - schema: - $ref: '#/components/schemas/Conversation' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: conversation_id in: path required: true schema: type: string - description: The conversation identifier. + description: The conversation identifier + title: Conversation Id + description: The conversation identifier + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ConversationUpdateRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Conversation' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}/items: get: tags: - - V1 - summary: List items. - description: Query endpoint for proper schema generation. + - Conversations + summary: List items + description: List items in the conversation operationId: list_items_v1_conversations__conversation_id__items_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: include - in: query - required: true - schema: - $ref: '#/components/schemas/ConversationItemInclude' - - name: limit - in: query - required: true - schema: - type: integer - title: Limit - - name: order - in: query - required: true - schema: - type: string - title: Order - name: conversation_id in: path required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items after, used in pagination + title: After + description: An item ID to list items after, used in pagination + - name: include + in: query + required: false + schema: + anyOf: + - type: array + items: + $ref: '#/components/schemas/ConversationItemInclude' + - type: 'null' + description: Specify additional output data to include in the response + title: Include + description: Specify additional output data to include in the response + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: A limit on the number of objects to be returned (1-100, default 20) + title: Limit + description: A limit on the number of objects to be returned (1-100, default 20) + - name: order + in: query + required: false + schema: + anyOf: + - enum: + - asc + - desc + type: string + - type: 'null' + description: The order to return items in (asc or desc, default desc) + title: Order + description: The order to return items in (asc or desc, default desc) responses: '200': - description: List of conversation items. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemList' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Create items. - description: Typed endpoint for proper schema generation. + - Conversations + summary: Create items + description: Create items in the conversation operationId: add_items_v1_conversations__conversation_id__items_post + parameters: + - name: conversation_id + in: path + required: true + schema: + type: string + description: The conversation identifier + title: Conversation Id + description: The conversation identifier requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_conversations_conversation_id_items_Request' + $ref: '#/components/schemas/ConversationItemCreateRequest' responses: '200': - description: List of created items. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemList' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - parameters: - - name: conversation_id - in: path - required: true - schema: - type: string - description: The conversation identifier. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/conversations/{conversation_id}/items/{item_id}: delete: tags: - - V1 - summary: Delete an item. - description: Query endpoint for proper schema generation. + - Conversations + summary: Delete an item + description: Delete a conversation item operationId: openai_delete_conversation_item_v1_conversations__conversation_id__items__item_id__delete parameters: - name: conversation_id @@ -5318,39 +2484,53 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier - name: item_id in: path required: true schema: type: string + description: The item identifier title: Item Id - description: The item identifier. + description: The item identifier responses: '200': - description: The deleted item resource. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConversationItemDeletedResource' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Retrieve an item. - description: Query endpoint for proper schema generation. + - Conversations + summary: Retrieve an item + description: Retrieve a conversation item operationId: retrieve_v1_conversations__conversation_id__items__item_id__get parameters: - name: conversation_id @@ -5358,40 +2538,76 @@ paths: required: true schema: type: string + description: The conversation identifier title: Conversation Id - description: The conversation identifier. + description: The conversation identifier - name: item_id in: path required: true schema: type: string + description: The item identifier title: Item Id - description: The item identifier. + description: The item identifier responses: '200': - description: The conversation item. + description: Successful Response content: application/json: schema: - $ref: '#/components/schemas/OpenAIResponseMessage' + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + title: Response Retrieve V1 Conversations Conversation Id Items Item Id Get '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/embeddings: post: tags: - - V1 + - Inference summary: Create embeddings. - description: Typed endpoint for proper schema generation. + description: Create embeddings. operationId: openai_embeddings_v1_embeddings_post requestBody: content: @@ -5401,105 +2617,165 @@ paths: required: true responses: '200': - description: An OpenAIEmbeddingsResponse containing the embeddings. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIEmbeddingsResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/files: get: tags: - - V1 + - Files summary: List files. - description: Query endpoint for proper schema generation. + description: Returns a list of files that belong to the user's organization. operationId: openai_list_files_v1_files_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. title: After - - name: purpose - in: query - required: true - schema: - $ref: '#/components/schemas/OpenAIFilePurpose' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + 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. default: 10000 title: Limit + 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. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc + title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: purpose + in: query + required: false + schema: + anyOf: + - $ref: '#/components/schemas/OpenAIFilePurpose' + - type: 'null' + description: Only return files with the given purpose. + title: Purpose + description: Only return files with the given purpose. responses: '200': - description: An ListOpenAIFileResponse containing the list of files. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIFileResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Files summary: Upload file. - description: Response-only endpoint for proper schema generation. + description: Upload a file that can be used across various endpoints. operationId: openai_upload_file_v1_files_post + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/Body_openai_upload_file_v1_files_post' responses: '200': - description: An OpenAIFileObject representing the uploaded file. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/files/{file_id}: delete: tags: - - V1 + - Files summary: Delete file. - description: Query endpoint for proper schema generation. + description: Delete a file. operationId: openai_delete_file_v1_files__file_id__delete parameters: - name: file_id @@ -5507,32 +2783,45 @@ paths: required: true schema: type: string + description: The ID of the file to use for this request. title: File Id description: The ID of the file to use for this request. responses: '200': - description: An OpenAIFileDeleteResponse indicating successful deletion. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIFileDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Files summary: Retrieve file. - description: Query endpoint for proper schema generation. + description: Returns information about a specific file. operationId: openai_retrieve_file_v1_files__file_id__get parameters: - name: file_id @@ -5540,225 +2829,288 @@ paths: required: true schema: type: string + description: The ID of the file to use for this request. title: File Id description: The ID of the file to use for this request. - responses: - '200': - description: An OpenAIFileObject containing file information. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAIFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/files/{file_id}/content: - get: - tags: - - V1 - summary: Retrieve file content. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: openai_retrieve_file_content_v1_files__file_id__content_get - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: file_id - in: path - required: true - schema: - type: string - description: The ID of the file to use for this request. - responses: - '200': - description: The raw file content as a binary response. - content: - application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/health: - get: - tags: - - V1 - summary: Get health status. - description: Response-only endpoint for proper schema generation. - operationId: health_v1_health_get - responses: - '200': - description: Health information indicating if the service is operational. - content: - application/json: - schema: - $ref: '#/components/schemas/HealthInfo' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/inspect/routes: - get: - tags: - - V1 - summary: List routes. - description: Response-only endpoint for proper schema generation. - operationId: list_routes_v1_inspect_routes_get - responses: - '200': - description: Response containing information about all available routes. - content: - application/json: - schema: - $ref: '#/components/schemas/ListRoutesResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/models: - get: - tags: - - V1 - summary: List all models. - description: Response-only endpoint for proper schema generation. - operationId: list_models_v1_models_get - responses: - '200': - description: A ListModelsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListModelsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Register model. - description: Typed endpoint for proper schema generation. - operationId: register_model_v1_models_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_models_Request' - required: true - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/models/{model_id}: - delete: - tags: - - V1 - summary: Unregister model. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_model_v1_models__model_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: model_id - in: path - required: true - schema: - type: string - description: 'Path parameter: model_id' responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/OpenAIFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/files/{file_id}/content: get: tags: - - V1 + - Files + summary: Retrieve file content. + description: Returns the contents of the specified file. + operationId: openai_retrieve_file_content_v1_files__file_id__content_get + parameters: + - name: file_id + in: path + required: true + schema: + type: string + description: The ID of the file to use for this request. + title: File Id + description: The ID of the file to use for this request. + responses: + '200': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/health: + get: + tags: + - Inspect + summary: Get health status. + description: Get the current health status of the service. + operationId: health_v1_health_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/HealthInfo' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/inspect/routes: + get: + tags: + - Inspect + summary: List routes. + description: List all available API routes with their methods and implementing providers. + operationId: list_routes_v1_inspect_routes_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoutesResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/models: + get: + tags: + - Models + summary: List all models. + description: List all models registered in Llama Stack. + operationId: list_models_v1_models_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListModelsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Models + summary: Register model. + description: Register a new model in Llama Stack. + operationId: register_model_v1_models_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterModelRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Model' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/models/{model_id}: + delete: + tags: + - Models + summary: Unregister model. + description: Unregister a model from Llama Stack. + operationId: unregister_model_v1_models__model_id__delete + parameters: + - name: model_id + in: path + required: true + schema: + type: string + description: The identifier of the model to unregister. + title: Model Id + description: The identifier of the model to unregister. + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Models summary: Get model. - description: Query endpoint for proper schema generation. + description: Get a model by its identifier. operationId: get_model_v1_models__model_id__get parameters: - name: model_id @@ -5766,279 +3118,375 @@ paths: required: true schema: type: string + description: The identifier of the model to get. title: Model Id - responses: - '200': - description: A Model. - content: - application/json: - schema: - $ref: '#/components/schemas/Model' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/moderations: - post: - tags: - - V1 - summary: Create moderation. - description: Typed endpoint for proper schema generation. - operationId: run_moderation_v1_moderations_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_moderations_Request' - required: true - responses: - '200': - description: A moderation object. - content: - application/json: - schema: - $ref: '#/components/schemas/ModerationObject' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/prompts: - get: - tags: - - V1 - summary: List all prompts. - description: Response-only endpoint for proper schema generation. - operationId: list_prompts_v1_prompts_get - responses: - '200': - description: A ListPromptsResponse containing all prompts. - content: - application/json: - schema: - $ref: '#/components/schemas/ListPromptsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Create prompt. - description: Typed endpoint for proper schema generation. - operationId: create_prompt_v1_prompts_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_prompts_Request' - required: true - responses: - '200': - description: The created Prompt resource. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/prompts/{prompt_id}: - delete: - tags: - - V1 - summary: Delete prompt. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: delete_prompt_v1_prompts__prompt_id__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: prompt_id - in: path - required: true - schema: - type: string - description: The identifier of the prompt to delete. + description: The identifier of the model to get. responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/Model' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - get: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/moderations: + post: tags: - - V1 - summary: Get prompt. - description: Query endpoint for proper schema generation. - operationId: get_prompt_v1_prompts__prompt_id__get - parameters: - - name: version - in: query + - Safety + summary: Create moderation. + description: Classifies if text and/or image inputs are potentially harmful. + operationId: run_moderation_v1_moderations_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RunModerationRequest' required: true - schema: - type: integer - title: Version - - name: prompt_id - in: path - required: true - schema: - type: string - title: Prompt Id - description: The identifier of the prompt to get. responses: '200': - description: A Prompt resource. + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ModerationObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/prompts: + get: + tags: + - Prompts + summary: List all prompts + description: List all prompts registered in Llama Stack + operationId: list_prompts_v1_prompts_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPromptsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Prompts + summary: Create prompt + description: Create a new prompt + operationId: create_prompt_v1_prompts_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePromptRequest' + required: true + responses: + '200': + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Prompt' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/prompts/{prompt_id}: + delete: + tags: + - Prompts + summary: Delete prompt + description: Delete a prompt + operationId: delete_prompt_v1_prompts__prompt_id__delete + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to delete + title: Prompt Id + description: The identifier of the prompt to delete + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Prompts + summary: Get prompt + description: Get a prompt by its identifier and optional version + operationId: get_prompt_v1_prompts__prompt_id__get + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to get + title: Prompt Id + description: The identifier of the prompt to get + - name: version + in: query + required: false + schema: + anyOf: + - type: integer + - type: 'null' + description: The version of the prompt to get (defaults to latest) + title: Version + description: The version of the prompt to get (defaults to latest) + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Prompt' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 - summary: Update prompt. - description: Typed endpoint for proper schema generation. + - Prompts + summary: Update prompt + description: Update an existing prompt (increments version) operationId: update_prompt_v1_prompts__prompt_id__post + parameters: + - name: prompt_id + in: path + required: true + schema: + type: string + description: The identifier of the prompt to update + title: Prompt Id + description: The identifier of the prompt to update requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_prompts_prompt_id_Request' + $ref: '#/components/schemas/UpdatePromptRequest' responses: '200': - description: The updated Prompt resource with incremented version. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Prompt' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response - parameters: - - name: prompt_id - in: path - required: true - schema: - type: string - description: The identifier of the prompt to update. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/prompts/{prompt_id}/set-default-version: post: tags: - - V1 - summary: Set prompt version. - description: Typed endpoint for proper schema generation. + - Prompts + summary: Set prompt version + description: Set which version of a prompt should be the default in get_prompt (latest) operationId: set_default_version_v1_prompts__prompt_id__set_default_version_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_prompts_prompt_id_set_default_version_Request' - required: true - responses: - '200': - description: The prompt with the specified version now set as default. - content: - application/json: - schema: - $ref: '#/components/schemas/Prompt' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - name: prompt_id in: path required: true schema: type: string - description: The identifier of the prompt. + description: The identifier of the prompt + title: Prompt Id + description: The identifier of the prompt + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SetDefaultVersionRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Prompt' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/prompts/{prompt_id}/versions: get: tags: - - V1 - summary: List prompt versions. - description: Query endpoint for proper schema generation. + - Prompts + summary: List prompt versions + description: List all versions of a specific prompt operationId: list_prompt_versions_v1_prompts__prompt_id__versions_get parameters: - name: prompt_id @@ -6046,59 +3494,84 @@ paths: required: true schema: type: string + description: The identifier of the prompt to list versions for title: Prompt Id - description: The identifier of the prompt to list versions for. + description: The identifier of the prompt to list versions for responses: '200': - description: A ListPromptsResponse containing all versions of the prompt. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListPromptsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/providers: get: tags: - - V1 - summary: List providers. - description: Response-only endpoint for proper schema generation. + - Providers + summary: List providers + description: List all available providers operationId: list_providers_v1_providers_get responses: '200': - description: A ListProvidersResponse containing information about all providers. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListProvidersResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/providers/{provider_id}: get: tags: - - V1 - summary: Get provider. - description: Query endpoint for proper schema generation. + - Providers + summary: Get provider + description: Get detailed information about a specific provider operationId: inspect_provider_v1_providers__provider_id__get parameters: - name: provider_id @@ -6106,116 +3579,169 @@ paths: required: true schema: type: string + description: The ID of the provider to inspect title: Provider Id - description: The ID of the provider to inspect. + description: The ID of the provider to inspect responses: '200': - description: A ProviderInfo object containing the provider's details. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProviderInfo' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses: get: tags: - - V1 + - Agents summary: List all responses. - description: Query endpoint for proper schema generation. + description: List all responses. operationId: list_openai_responses_v1_responses_get parameters: - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the last response to return. title: After - - name: model - in: query - required: true - schema: - type: string - title: Model + description: The ID of the last response to return. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + - type: 'null' + description: The number of responses to return. default: 50 title: Limit + description: The number of responses to return. + - name: model + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The model to filter responses by. + title: Model + description: The model to filter responses by. - name: order in: query required: false schema: - $ref: '#/components/schemas/Order' + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: The order to sort responses by when sorted by created_at ('asc' or 'desc'). default: desc + title: Order + description: The order to sort responses by when sorted by created_at ('asc' or 'desc'). responses: '200': - description: A ListOpenAIResponseObject. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Agents summary: Create a model response. - description: Typed endpoint for proper schema generation. + description: Create a model response. operationId: create_openai_response_v1_responses_post requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/_responses_Request' + $ref: '#/components/schemas/CreateOpenAIResponseRequest' responses: '200': - description: An OpenAIResponseObject. + description: Successful Response + content: + application/json: + schema: {} + '400': + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/OpenAIResponseObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses/{response_id}: delete: tags: - - V1 + - Agents summary: Delete a response. - description: Query endpoint for proper schema generation. + description: Delete a response. operationId: delete_openai_response_v1_responses__response_id__delete parameters: - name: response_id @@ -6223,32 +3749,45 @@ paths: required: true schema: type: string + description: The ID of the OpenAI response to delete. title: Response Id description: The ID of the OpenAI response to delete. responses: '200': - description: An OpenAIDeleteResponseObject + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIDeleteResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Agents summary: Get a model response. - description: Query endpoint for proper schema generation. + description: Get a model response. operationId: get_openai_response_v1_responses__response_id__get parameters: - name: response_id @@ -6256,232 +3795,312 @@ paths: required: true schema: type: string + description: The ID of the OpenAI response to retrieve. title: Response Id description: The ID of the OpenAI response to retrieve. responses: '200': - description: An OpenAIResponseObject. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpenAIResponseObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/responses/{response_id}/input_items: get: tags: - - V1 + - Agents summary: List input items. - description: Query endpoint for proper schema generation. + description: List input items. operationId: list_openai_response_input_items_v1_responses__response_id__input_items_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - - name: include - in: query - required: true - schema: - type: string - title: Include - - name: limit - in: query - required: false - schema: - type: integer - default: 20 - title: Limit - - name: order - in: query - required: false - schema: - $ref: '#/components/schemas/Order' - default: desc - name: response_id in: path required: true schema: type: string + description: The ID of the response to retrieve input items for. title: Response Id description: The ID of the response to retrieve input items for. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items after, used for pagination. + title: After + description: An item ID to list items after, used for pagination. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: An item ID to list items before, used for pagination. + title: Before + description: An item ID to list items before, used for pagination. + - name: include + in: query + required: false + schema: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: Additional fields to include in the response. + title: Include + description: Additional fields to include in the response. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + default: 20 + title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + - name: order + in: query + required: false + schema: + anyOf: + - $ref: '#/components/schemas/Order' + - type: 'null' + description: The order to return the input items in. Default is desc. + default: desc + title: Order + description: The order to return the input items in. Default is desc. responses: '200': - description: An ListOpenAIResponseInputItem. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListOpenAIResponseInputItem' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/safety/run-shield: post: tags: - - V1 + - Safety summary: Run shield. - description: Typed endpoint for proper schema generation. + description: Run a shield. operationId: run_shield_v1_safety_run_shield_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_safety_run_shield_Request' + $ref: '#/components/schemas/RunShieldRequest' required: true responses: '200': - description: A RunShieldResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RunShieldResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/scoring-functions: get: tags: - - V1 - summary: List all scoring functions. - description: Response-only endpoint for proper schema generation. + - Scoring Functions + summary: List all scoring functions + description: List all scoring functions operationId: list_scoring_functions_v1_scoring_functions_get responses: '200': - description: A ListScoringFunctionsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListScoringFunctionsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Register a scoring function. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: register_scoring_function_v1_scoring_functions_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Scoring Functions + summary: Register a scoring function + description: Register a scoring function + operationId: register_scoring_function_v1_scoring_functions_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterScoringFunctionRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/scoring-functions/{scoring_fn_id}: delete: tags: - - V1 - summary: Unregister a scoring function. - description: Generic endpoint - this would be replaced with actual implementation. + - Scoring Functions + summary: Unregister a scoring function + description: Unregister a scoring function operationId: unregister_scoring_function_v1_scoring_functions__scoring_fn_id__delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: scoring_fn_id in: path required: true schema: type: string - description: 'Path parameter: scoring_fn_id' + description: The ID of the scoring function to unregister + title: Scoring Fn Id + description: The ID of the scoring function to unregister responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Get a scoring function by its ID. - description: Query endpoint for proper schema generation. + - Scoring Functions + summary: Get a scoring function by its ID + description: Get a scoring function by its ID operationId: get_scoring_function_v1_scoring_functions__scoring_fn_id__get parameters: - name: scoring_fn_id @@ -6489,194 +4108,257 @@ paths: required: true schema: type: string + description: The ID of the scoring function to get title: Scoring Fn Id - responses: - '200': - description: A ScoringFn. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoringFn' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/scoring/score: - post: - tags: - - V1 - summary: Score a list of rows. - description: Typed endpoint for proper schema generation. - operationId: score_v1_scoring_score_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_scoring_score_Request' - required: true - responses: - '200': - description: A ScoreResponse object containing rows and aggregated results. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/scoring/score-batch: - post: - tags: - - V1 - summary: Score a batch of rows. - description: Typed endpoint for proper schema generation. - operationId: score_batch_v1_scoring_score_batch_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_scoring_score_batch_Request' - required: true - responses: - '200': - description: A ScoreBatchResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ScoreBatchResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/shields: - get: - tags: - - V1 - summary: List all shields. - description: Response-only endpoint for proper schema generation. - operationId: list_shields_v1_shields_get - responses: - '200': - description: A ListShieldsResponse. - content: - application/json: - schema: - $ref: '#/components/schemas/ListShieldsResponse' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - post: - tags: - - V1 - summary: Register a shield. - description: Typed endpoint for proper schema generation. - operationId: register_shield_v1_shields_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_shields_Request' - required: true - responses: - '200': - description: A Shield. - content: - application/json: - schema: - $ref: '#/components/schemas/Shield' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' - /v1/shields/{identifier}: - delete: - tags: - - V1 - summary: Unregister a shield. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: unregister_shield_v1_shields__identifier__delete - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - - name: identifier - in: path - required: true - schema: - type: string - description: 'Path parameter: identifier' + description: The ID of the scoring function to get responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/ScoringFn' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/scoring/score: + post: + tags: + - Scoring + summary: Score a list of rows + description: Score a list of rows + operationId: score_v1_scoring_score_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/scoring/score-batch: + post: + tags: + - Scoring + summary: Score a batch of rows + description: Score a batch of rows from a dataset + operationId: score_batch_v1_scoring_score_batch_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreBatchRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ScoreBatchResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/shields: get: tags: - - V1 - summary: Get a shield by its identifier. - description: Query endpoint for proper schema generation. + - Shields + summary: List all shields + description: List all shields + operationId: list_shields_v1_shields_get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListShieldsResponse' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Shields + summary: Register a shield + description: Register a shield + operationId: register_shield_v1_shields_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterShieldRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Shield' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/shields/{identifier}: + delete: + tags: + - Shields + summary: Unregister a shield + description: Unregister a shield + operationId: unregister_shield_v1_shields__identifier__delete + parameters: + - name: identifier + in: path + required: true + schema: + type: string + description: The identifier of the shield to unregister + title: Identifier + description: The identifier of the shield to unregister + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Shields + summary: Get a shield by its identifier + description: Get a shield by its identifier operationId: get_shield_v1_shields__identifier__get parameters: - name: identifier @@ -6684,273 +4366,352 @@ paths: required: true schema: type: string + description: The identifier of the shield to get title: Identifier + description: The identifier of the shield to get responses: '200': - description: A Shield. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Shield' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/invoke: post: tags: - - V1 - summary: Run a tool with the given arguments. - description: Typed endpoint for proper schema generation. + - Tool Runtime + summary: Run a tool with the given arguments + description: Run a tool with the given arguments operationId: invoke_tool_v1_tool_runtime_invoke_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_tool_runtime_invoke_Request' + $ref: '#/components/schemas/InvokeToolRequest' required: true responses: '200': - description: A ToolInvocationResult. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ToolInvocationResult' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/list-tools: get: tags: - - V1 - summary: List all tools in the runtime. - description: Query endpoint for proper schema generation. + - Tool Runtime + summary: List all tools in the runtime + description: List all tools in the runtime operationId: list_runtime_tools_v1_tool_runtime_list_tools_get parameters: - name: tool_group_id in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the tool group to list tools for title: Tool Group Id - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/URL' + description: The ID of the tool group to list tools for + - name: mcp_endpoint + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: The MCP endpoint URL to use for the tool group + title: Mcp Endpoint + description: The MCP endpoint URL to use for the tool group responses: '200': - description: A ListToolDefsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolDefsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/rag-tool/insert: post: tags: - - V1 - summary: Index documents so they can be used by the RAG system. - description: Generic endpoint - this would be replaced with actual implementation. + - Tool Runtime + summary: Insert documents into the RAG system. + description: Index documents so they can be used by the RAG system. operationId: rag_tool_insert_v1_tool_runtime_rag_tool_insert_post - parameters: - - name: args - in: query + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post' required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tool-runtime/rag-tool/query: post: tags: - - V1 - summary: Query the RAG system for context; typically invoked by the agent. - description: Typed endpoint for proper schema generation. + - Tool Runtime + summary: Query the RAG system for context. + description: Query the RAG system for context; typically invoked by the agent. operationId: rag_tool_query_v1_tool_runtime_rag_tool_query_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_tool_runtime_rag_tool_query_Request' + $ref: '#/components/schemas/Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post' required: true responses: '200': - description: RAGQueryResult containing the retrieved content and metadata + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RAGQueryResult' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/toolgroups: get: tags: - - V1 - summary: List tool groups with optional provider. - description: Response-only endpoint for proper schema generation. + - Tool Groups + summary: List tool groups + description: List tool groups with optional provider operationId: list_tool_groups_v1_toolgroups_get responses: '200': - description: A ListToolGroupsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolGroupsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Register a tool group. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: register_tool_group_v1_toolgroups_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - responses: - '200': - description: Successful Response + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Tool Groups + summary: Register a tool group + description: Register a tool group + operationId: register_tool_group_v1_toolgroups_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RegisterToolGroupRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/toolgroups/{toolgroup_id}: delete: tags: - - V1 - summary: Unregister a tool group. - description: Generic endpoint - this would be replaced with actual implementation. + - Tool Groups + summary: Unregister a tool group + description: Unregister a tool group operationId: unregister_toolgroup_v1_toolgroups__toolgroup_id__delete parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs - name: toolgroup_id in: path required: true schema: type: string - description: 'Path parameter: toolgroup_id' + description: The ID of the tool group to unregister + title: Toolgroup Id + description: The ID of the tool group to unregister responses: - '200': + '204': description: Successful Response + '400': + description: The request was invalid or malformed. content: application/json: - schema: {} - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 - summary: Get a tool group by its ID. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: Get a tool group by its ID + description: Get a tool group by its ID operationId: get_tool_group_v1_toolgroups__toolgroup_id__get parameters: - name: toolgroup_id @@ -6958,65 +4719,95 @@ paths: required: true schema: type: string + description: The ID of the tool group to get title: Toolgroup Id + description: The ID of the tool group to get responses: '200': - description: A ToolGroup. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ToolGroup' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tools: get: tags: - - V1 - summary: List tools with optional tool group. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: List tools + description: List tools with optional tool group operationId: list_tools_v1_tools_get parameters: - name: toolgroup_id in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: The ID of the tool group to list tools for title: Toolgroup Id + description: The ID of the tool group to list tools for responses: '200': - description: A ListToolDefsResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListToolDefsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/tools/{tool_name}: get: tags: - - V1 - summary: Get a tool by its name. - description: Query endpoint for proper schema generation. + - Tool Groups + summary: Get a tool by its name + description: Get a tool by its name operationId: get_tool_v1_tools__tool_name__get parameters: - name: tool_name @@ -7024,152 +4815,212 @@ paths: required: true schema: type: string + description: The name of the tool to get title: Tool Name - responses: - '200': - description: A ToolDef. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolDef' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/vector-io/insert: - post: - tags: - - V1 - summary: Insert chunks into a vector database. - description: Generic endpoint - this would be replaced with actual implementation. - operationId: insert_chunks_v1_vector_io_insert_post - parameters: - - name: args - in: query - required: true - schema: - title: Args - - name: kwargs - in: query - required: true - schema: - title: Kwargs + description: The name of the tool to get responses: '200': description: Successful Response content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/ToolDef' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/vector-io/insert: + post: + tags: + - Vector IO + summary: Insert chunks into a vector database. + description: Insert chunks into a vector database. + operationId: insert_chunks_v1_vector_io_insert_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InsertChunksRequest' + required: true + responses: + '204': + description: Successful Response + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector-io/query: post: tags: - - V1 + - Vector IO summary: Query chunks from a vector database. - description: Typed endpoint for proper schema generation. + description: Query chunks from a vector database. operationId: query_chunks_v1_vector_io_query_post requestBody: content: application/json: schema: - $ref: '#/components/schemas/_vector_io_query_Request' + $ref: '#/components/schemas/QueryChunksRequest' required: true responses: '200': - description: A QueryChunksResponse. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryChunksResponse' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores: get: tags: - - V1 + - Vector IO summary: Returns a list of vector stores. - description: Query endpoint for proper schema generation. + description: Returns a list of vector stores. operationId: openai_list_vector_stores_v1_vector_stores_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. default: 20 title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. responses: '200': - description: A VectorStoreListResponse containing the list of vector stores. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreListResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Creates a vector store. - description: Typed endpoint for proper schema generation. + description: Creates a vector store. operationId: openai_create_vector_store_v1_vector_stores_post requestBody: required: true @@ -7179,29 +5030,41 @@ paths: $ref: '#/components/schemas/OpenAICreateVectorStoreRequestWithExtraBody' responses: '200': - description: A VectorStoreObject representing the created vector store. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}: delete: tags: - - V1 + - Vector IO summary: Delete a vector store. - description: Query endpoint for proper schema generation. + description: Delete a vector store. operationId: openai_delete_vector_store_v1_vector_stores__vector_store_id__delete parameters: - name: vector_store_id @@ -7209,32 +5072,45 @@ paths: required: true schema: type: string + description: The ID of the vector store to delete. title: Vector Store Id description: The ID of the vector store to delete. responses: '200': - description: A VectorStoreDeleteResponse indicating the deletion status. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Vector IO summary: Retrieves a vector store. - description: Query endpoint for proper schema generation. + description: Retrieves a vector store. operationId: openai_retrieve_vector_store_v1_vector_stores__vector_store_id__get parameters: - name: vector_store_id @@ -7242,373 +5118,530 @@ paths: required: true schema: type: string + description: The ID of the vector store to retrieve. title: Vector Store Id description: The ID of the vector store to retrieve. responses: '200': - description: A VectorStoreObject representing the vector store. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Updates a vector store. - description: Typed endpoint for proper schema generation. + description: Updates a vector store. operationId: openai_update_vector_store_v1_vector_stores__vector_store_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_Request' - responses: - '200': - description: A VectorStoreObject representing the updated vector store. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to update. + title: Vector Store Id description: The ID of the vector store to update. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreModifyRequest' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches: post: tags: - - V1 + - Vector IO summary: Create a vector store file batch. - description: Typed endpoint for proper schema generation. + description: Create a vector store file batch. operationId: openai_create_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches_post + parameters: + - name: vector_store_id + in: path + required: true + schema: + type: string + description: The ID of the vector store to create the file batch for. + title: Vector Store Id + description: The ID of the vector store to create the file batch for. requestBody: + required: true content: application/json: schema: $ref: '#/components/schemas/OpenAICreateVectorStoreFileBatchRequestWithExtraBody' - required: true responses: '200': - description: A VectorStoreFileBatchObject representing the created file batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileBatchObject' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' - parameters: - - name: vector_store_id - in: path - required: true - schema: - type: string - description: The ID of the vector store to create the file batch for. + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}: get: tags: - - V1 + - Vector IO summary: Retrieve a vector store file batch. - description: Query endpoint for proper schema generation. + description: Retrieve a vector store file batch. operationId: openai_retrieve_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__get parameters: - - name: batch_id - in: path - required: true - schema: - type: string - title: Batch Id - description: The ID of the file batch to retrieve. - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file batch. title: Vector Store Id description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to retrieve. + title: Batch Id + description: The ID of the file batch to retrieve. responses: '200': - description: A VectorStoreFileBatchObject representing the file batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileBatchObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: post: tags: - - V1 + - Vector IO summary: Cancels a vector store file batch. - description: Typed endpoint for proper schema generation. + description: Cancels a vector store file batch. operationId: openai_cancel_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__cancel_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_file_batches_batch_id_cancel_Request' - required: true - responses: - '200': - description: A VectorStoreFileBatchObject representing the cancelled file batch. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileBatchObject' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' - '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' - '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' - default: - description: Default Response - $ref: '#/components/responses/DefaultError' parameters: - - name: batch_id - in: path - required: true - schema: - type: string - description: The ID of the file batch to cancel. - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file batch. + title: Vector Store Id description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to cancel. + title: Batch Id + description: The ID of the file batch to cancel. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileBatchObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files: get: tags: - - V1 + - Vector IO summary: Returns a list of vector store files in a batch. - description: Query endpoint for proper schema generation. + description: Returns a list of vector store files in a batch. operationId: openai_list_files_in_vector_store_file_batch_v1_vector_stores__vector_store_id__file_batches__batch_id__files_get parameters: + - name: vector_store_id + in: path + required: true + schema: + type: string + description: The ID of the vector store containing the file batch. + title: Vector Store Id + description: The ID of the vector store containing the file batch. + - name: batch_id + in: path + required: true + schema: + type: string + description: The ID of the file batch to list files from. + title: Batch Id + description: The ID of the file batch to list files from. - name: after in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - name: before in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. - name: filter in: query - required: true + required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Filter by file status. One of in_progress, completed, failed, cancelled. title: Filter + description: Filter by file status. One of in_progress, completed, failed, cancelled. - name: limit in: query required: false schema: - type: integer + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. default: 20 title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - name: order in: query required: false schema: - type: string + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. default: desc title: Order - - name: batch_id - in: path - required: true - schema: - type: string - title: Batch Id - description: The ID of the file batch to list files from. - - name: vector_store_id - in: path - required: true - schema: - type: string - title: Vector Store Id - description: The ID of the vector store containing the file batch. + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. responses: '200': - description: A VectorStoreFilesListInBatchResponse containing the list of files in the batch. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFilesListInBatchResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files: get: tags: - - V1 + - Vector IO summary: List files in a vector store. - description: Query endpoint for proper schema generation. + description: List files in a vector store. operationId: openai_list_files_in_vector_store_v1_vector_stores__vector_store_id__files_get parameters: - - name: after - in: query - required: true - schema: - type: string - title: After - - name: before - in: query - required: true - schema: - type: string - title: Before - - name: filter - in: query - required: true - schema: - type: string - title: Filter - - name: limit - in: query - required: false - schema: - type: integer - default: 20 - title: Limit - - name: order - in: query - required: false - schema: - type: string - default: desc - title: Order - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to list files from. title: Vector Store Id description: The ID of the vector store to list files from. + - name: limit + in: query + required: false + schema: + anyOf: + - type: integer + maximum: 100 + minimum: 1 + - type: 'null' + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + default: 20 + title: Limit + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + - name: order + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + default: desc + title: Order + description: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + - name: after + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + title: After + description: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + - name: before + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + title: Before + description: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + - name: filter + in: query + required: false + schema: + anyOf: + - const: completed + type: string + - const: in_progress + type: string + - const: cancelled + type: string + - const: failed + type: string + - type: 'null' + description: Filter by file status to only return files with the specified status. + title: Filter + description: Filter by file status to only return files with the specified status. responses: '200': - description: A VectorStoreListFilesResponse containing the list of files. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreListFilesResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - post: - tags: - - V1 - summary: Attach a file to a vector store. - description: Typed endpoint for proper schema generation. - operationId: openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_files_Request' - responses: - '200': - description: A VectorStoreFileObject representing the attached file. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Vector IO + summary: Attach a file to a vector store. + description: Attach a file to a vector store. + operationId: openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to attach the file to. + title: Vector Store Id description: The ID of the vector store to attach the file to. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files/{file_id}: delete: tags: - - V1 + - Vector IO summary: Delete a vector store file. - description: Query endpoint for proper schema generation. + description: Delete a vector store file. operationId: openai_delete_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__delete parameters: - name: vector_store_id @@ -7616,6 +5649,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to delete. title: Vector Store Id description: The ID of the vector store containing the file to delete. - name: file_id @@ -7623,32 +5657,45 @@ paths: required: true schema: type: string + description: The ID of the file to delete. title: File Id description: The ID of the file to delete. responses: '200': - description: A VectorStoreFileDeleteResponse indicating the deletion status. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileDeleteResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' get: tags: - - V1 + - Vector IO summary: Retrieves a vector store file. - description: Query endpoint for proper schema generation. + description: Retrieves a vector store file. operationId: openai_retrieve_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__get parameters: - name: vector_store_id @@ -7656,6 +5703,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to retrieve. title: Vector Store Id description: The ID of the vector store containing the file to retrieve. - name: file_id @@ -7663,77 +5711,109 @@ paths: required: true schema: type: string + description: The ID of the file to retrieve. title: File Id description: The ID of the file to retrieve. responses: '200': - description: A VectorStoreFileObject representing the file. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileObject' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - $ref: '#/components/responses/DefaultError' - description: Default Response + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - - V1 + - Vector IO summary: Updates a vector store file. - description: Typed endpoint for proper schema generation. + description: Updates a vector store file. operationId: openai_update_vector_store_file_v1_vector_stores__vector_store_id__files__file_id__post - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_files_file_id_Request' - responses: - '200': - description: A VectorStoreFileObject representing the updated file. - content: - application/json: - schema: - $ref: '#/components/schemas/VectorStoreFileObject' - '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store containing the file to update. + title: Vector Store Id description: The ID of the vector store containing the file to update. - name: file_id in: path required: true schema: type: string + description: The ID of the file to update. + title: File Id description: The ID of the file to update. + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + description: The updated key-value attributes to store with the file. + title: Attributes + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreFileObject' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/vector_stores/{vector_store_id}/files/{file_id}/content: get: tags: - - V1 + - Vector IO summary: Retrieves the contents of a vector store file. - description: Query endpoint for proper schema generation. + description: Retrieves the contents of a vector store file. operationId: openai_retrieve_vector_store_file_contents_v1_vector_stores__vector_store_id__files__file_id__content_get parameters: - name: vector_store_id @@ -7741,6 +5821,7 @@ paths: required: true schema: type: string + description: The ID of the vector store containing the file to retrieve. title: Vector Store Id description: The ID of the vector store containing the file to retrieve. - name: file_id @@ -7748,169 +5829,356 @@ paths: required: true schema: type: string + description: The ID of the file to retrieve. title: File Id description: The ID of the file to retrieve. responses: '200': - description: A list of InterleavedContent representing the file contents. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VectorStoreFileContentsResponse' '400': - $ref: '#/components/responses/BadRequest400' - description: Bad Request - '429': - $ref: '#/components/responses/TooManyRequests429' - description: Too Many Requests - '500': - $ref: '#/components/responses/InternalServerError500' - description: Internal Server Error - default: - $ref: '#/components/responses/DefaultError' - description: Default Response - /v1/vector_stores/{vector_store_id}/search: - post: - tags: - - V1 - summary: Search for chunks in a vector store. - description: Typed endpoint for proper schema generation. - operationId: openai_search_vector_store_v1_vector_stores__vector_store_id__search_post - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/_vector_stores_vector_store_id_search_Request' - required: true - responses: - '200': - description: A VectorStoreSearchResponse containing the search results. + description: The request was invalid or malformed. content: application/json: schema: - $ref: '#/components/schemas/VectorStoreSearchResponsePage' - '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/vector_stores/{vector_store_id}/search: + post: + tags: + - Vector IO + summary: Search for chunks in a vector store. + description: Search for chunks in a vector store. + operationId: openai_search_vector_store_v1_vector_stores__vector_store_id__search_post parameters: - name: vector_store_id in: path required: true schema: type: string + description: The ID of the vector store to search. + title: Vector Store Id description: The ID of the vector store to search. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VectorStoreSearchResponsePage' + '400': + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /v1/version: get: tags: - - V1 + - Inspect summary: Get version. - description: Response-only endpoint for proper schema generation. + description: Get the version of the service. operationId: version_v1_version_get responses: '200': - description: Version information containing the service version number. + description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VersionInfo' '400': - description: Bad Request - $ref: '#/components/responses/BadRequest400' + description: The request was invalid or malformed. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '429': - description: Too Many Requests - $ref: '#/components/responses/TooManyRequests429' + description: The client has sent too many requests in a given amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': - description: Internal Server Error - $ref: '#/components/responses/InternalServerError500' + description: The server encountered an unexpected error. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' default: - description: Default Response - $ref: '#/components/responses/DefaultError' + description: An unexpected error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' components: schemas: + Agent: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + agent_config: + $ref: '#/components/schemas/AgentConfig-Output' + description: Configuration settings for the agent + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the agent was created + type: object + required: + - agent_id + - agent_config + - created_at + title: Agent + description: An agent instance with configuration and metadata. AgentCandidate: properties: type: type: string const: agent title: Type + description: The type of candidate. default: agent config: - $ref: '#/components/schemas/AgentConfig' + $ref: '#/components/schemas/AgentConfig-Input' + description: The configuration for the agent candidate. type: object required: - config title: AgentCandidate description: An agent candidate for evaluation. - AgentConfig: + AgentConfig-Input: properties: sampling_params: - $ref: '#/components/schemas/SamplingParams' + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Input Shields - items: - type: string - type: array output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Output Shields - items: - type: string - type: array toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' title: Toolgroups - items: - anyOf: - - type: string - - $ref: '#/components/schemas/AgentToolGroupWithArgs' - type: array client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' title: Client Tools - items: - $ref: '#/components/schemas/ToolDef' - type: array tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' deprecated: true - $ref: '#/components/schemas/ToolChoice' tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' deprecated: true - $ref: '#/components/schemas/ToolPromptFormat' tool_config: - $ref: '#/components/schemas/ToolConfig' + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' max_infer_iters: + anyOf: + - type: integer + - type: 'null' title: Max Infer Iters default: 10 - type: integer model: type: string title: Model + description: The model identifier to use for the agent instructions: type: string title: Instructions + description: The system instructions for the agent name: + anyOf: + - type: string + - type: 'null' title: Name - type: string + description: Optional name for the agent, used in telemetry and identification enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted default: false - type: boolean response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' title: Response Format - oneOf: - - $ref: '#/components/schemas/JsonSchemaResponseFormat' - - $ref: '#/components/schemas/GrammarResponseFormat' - discriminator: - propertyName: type - mapping: - grammar: '#/components/schemas/GrammarResponseFormat' - json_schema: '#/components/schemas/JsonSchemaResponseFormat' + description: Optional response format configuration + type: object + required: + - model + - instructions + title: AgentConfig + description: Configuration for an agent. + AgentConfig-Output: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + model: + type: string + title: Model + description: The model identifier to use for the agent + instructions: + type: string + title: Instructions + description: The system instructions for the agent + name: + anyOf: + - type: string + - type: 'null' + title: Name + description: Optional name for the agent, used in telemetry and identification + enable_session_persistence: + anyOf: + - type: boolean + - type: 'null' + title: Enable Session Persistence + description: Optional flag indicating whether session data has to be persisted + default: false + response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/JsonSchemaResponseFormat' + - $ref: '#/components/schemas/GrammarResponseFormat' + discriminator: + propertyName: type + mapping: + grammar: '#/components/schemas/GrammarResponseFormat' + json_schema: '#/components/schemas/JsonSchemaResponseFormat' + - type: 'null' + title: Response Format + description: Optional response format configuration type: object required: - model @@ -7922,6 +6190,7 @@ components: agent_id: type: string title: Agent Id + description: Unique identifier for the created agent type: object required: - agent_id @@ -7932,11 +6201,34 @@ components: session_id: type: string title: Session Id + description: Unique identifier for the created session type: object required: - session_id title: AgentSessionCreateResponse description: Response returned when creating a new agent session. + AgentStepResponse: + properties: + step: + oneOf: + - $ref: '#/components/schemas/InferenceStep-Output' + - $ref: '#/components/schemas/ToolExecutionStep-Output' + - $ref: '#/components/schemas/ShieldCallStep-Output' + - $ref: '#/components/schemas/MemoryRetrievalStep-Output' + title: Step + description: The complete step data and execution details + discriminator: + propertyName: step_type + mapping: + inference: '#/components/schemas/InferenceStep-Output' + memory_retrieval: '#/components/schemas/MemoryRetrievalStep-Output' + shield_call: '#/components/schemas/ShieldCallStep-Output' + tool_execution: '#/components/schemas/ToolExecutionStep-Output' + type: object + required: + - step + title: AgentStepResponse + description: Response containing details of a specific agent step. AgentToolGroupWithArgs: properties: name: @@ -7951,6 +6243,107 @@ components: - name - args title: AgentToolGroupWithArgs + AgentTurnCreateRequest: + properties: + sampling_params: + anyOf: + - $ref: '#/components/schemas/SamplingParams' + - type: 'null' + input_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Input Shields + output_shields: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Output Shields + toolgroups: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/AgentToolGroupWithArgs' + type: array + - type: 'null' + title: Toolgroups + description: List of tool groups to make available for this turn + client_tools: + anyOf: + - items: + $ref: '#/components/schemas/ToolDef' + type: array + - type: 'null' + title: Client Tools + tool_choice: + anyOf: + - $ref: '#/components/schemas/ToolChoice' + - type: 'null' + deprecated: true + tool_prompt_format: + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' + deprecated: true + tool_config: + anyOf: + - $ref: '#/components/schemas/ToolConfig' + - type: 'null' + description: Tool configuration to override agent defaults + max_infer_iters: + anyOf: + - type: integer + - type: 'null' + title: Max Infer Iters + default: 10 + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + messages: + items: + anyOf: + - $ref: '#/components/schemas/UserMessage-Input' + - $ref: '#/components/schemas/ToolResponseMessage-Input' + type: array + title: Messages + description: List of messages to start the turn with + documents: + anyOf: + - items: + $ref: '#/components/schemas/Document' + type: array + - type: 'null' + title: Documents + description: List of documents to provide to the agent + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - messages + title: AgentTurnCreateRequest + description: Request to create a new turn for an agent. AgentTurnInputType: properties: type: @@ -7960,7 +6353,42 @@ components: default: agent_turn_input type: object title: AgentTurnInputType - description: Parameter type for agent turn input. + description: "Parameter type for agent turn input.\n\n:param type: Discriminator type. Always \"agent_turn_input\"" + AgentTurnResumeRequest: + properties: + agent_id: + type: string + title: Agent Id + description: Unique identifier for the agent + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + turn_id: + type: string + title: Turn Id + description: Unique identifier for the turn within a session + tool_responses: + items: + $ref: '#/components/schemas/ToolResponse-Input' + type: array + title: Tool Responses + description: List of tool responses to submit to continue the turn + stream: + anyOf: + - type: boolean + - type: 'null' + title: Stream + description: Whether to stream the response + default: false + type: object + required: + - agent_id + - session_id + - turn_id + - tool_responses + title: AgentTurnResumeRequest + description: Request to resume an agent turn with tool responses. AggregationFunctionType: type: string enum: @@ -7974,28 +6402,37 @@ components: AllowedToolsFilter: properties: tool_names: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Tool Names - items: - type: string - type: array + description: List of specific tool names that are allowed type: object title: AllowedToolsFilter - description: Filter configuration for restricting which MCP tools can be used. + description: "Filter configuration for restricting which MCP tools can be used.\n\n:param tool_names: (Optional) List of specific tool names that are allowed" ApprovalFilter: properties: always: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Always - items: - type: string - type: array + description: List of tool names that always require approval never: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Never - items: - type: string - type: array + description: List of tool names that never require approval type: object title: ApprovalFilter - description: Filter configuration for MCP tool approval requirements. + description: "Filter configuration for MCP tool approval requirements.\n\n:param always: (Optional) List of tool names that always require approval\n:param never: (Optional) List of tool names that never require approval" ArrayType: properties: type: @@ -8005,7 +6442,7 @@ components: default: array type: object title: ArrayType - description: Parameter type for array values. + description: "Parameter type for array values.\n\n:param type: Discriminator type. Always \"array\"" Attachment-Output: properties: content: @@ -8031,9 +6468,11 @@ components: type: array - $ref: '#/components/schemas/URL' title: Content + description: The content of the attachment. mime_type: type: string title: Mime Type + description: The MIME type of the attachment. type: object required: - content @@ -8090,49 +6529,79 @@ components: - cancelled title: Status cancelled_at: + anyOf: + - type: integer + - type: 'null' title: Cancelled At - type: integer cancelling_at: + anyOf: + - type: integer + - type: 'null' title: Cancelling At - type: integer completed_at: + anyOf: + - type: integer + - type: 'null' title: Completed At - type: integer error_file_id: + anyOf: + - type: string + - type: 'null' title: Error File Id - type: string errors: - $ref: '#/components/schemas/Errors' + anyOf: + - $ref: '#/components/schemas/Errors' + - type: 'null' expired_at: + anyOf: + - type: integer + - type: 'null' title: Expired At - type: integer expires_at: + anyOf: + - type: integer + - type: 'null' title: Expires At - type: integer failed_at: + anyOf: + - type: integer + - type: 'null' title: Failed At - type: integer finalizing_at: + anyOf: + - type: integer + - type: 'null' title: Finalizing At - type: integer in_progress_at: + anyOf: + - type: integer + - type: 'null' title: In Progress At - type: integer metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' title: Metadata - additionalProperties: - type: string - type: object model: + anyOf: + - type: string + - type: 'null' title: Model - type: string output_file_id: + anyOf: + - type: string + - type: 'null' title: Output File Id - type: string request_counts: - $ref: '#/components/schemas/BatchRequestCounts' + anyOf: + - $ref: '#/components/schemas/BatchRequestCounts' + - type: 'null' usage: - $ref: '#/components/schemas/BatchUsage' + anyOf: + - $ref: '#/components/schemas/BatchUsage' + - type: 'null' additionalProperties: true type: object required: @@ -8147,17 +6616,25 @@ components: BatchError: properties: code: + anyOf: + - type: string + - type: 'null' title: Code - type: string line: + anyOf: + - type: integer + - type: 'null' title: Line - type: integer message: + anyOf: + - type: string + - type: 'null' title: Message - type: string param: + anyOf: + - type: string + - type: 'null' title: Param - type: string additionalProperties: true type: object title: BatchError @@ -8210,9 +6687,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -8221,15 +6700,18 @@ components: type: string const: benchmark title: Type + description: The resource type, always benchmark default: benchmark dataset_id: type: string title: Dataset Id + description: The ID of the dataset to use for the benchmark scoring_functions: items: type: string type: array title: Scoring Functions + description: The scoring functions to use for the benchmark metadata: additionalProperties: true type: object @@ -8250,6 +6732,7 @@ components: - $ref: '#/components/schemas/ModelCandidate' - $ref: '#/components/schemas/AgentCandidate' title: Eval Candidate + description: The candidate to evaluate. discriminator: propertyName: type mapping: @@ -8269,16 +6752,212 @@ components: regex_parser: '#/components/schemas/RegexParserScoringFnParams' type: object title: Scoring Params - description: Map between scoring function id and parameters for each scoring function you want to run + description: Map between scoring function id and parameters for each scoring function you want to run. num_examples: + anyOf: + - type: integer + - type: 'null' title: Num Examples - description: Number of examples to evaluate (useful for testing), if not provided, all examples in the dataset will be evaluated - type: integer + description: The number of examples to evaluate. If not provided, all examples in the dataset will be evaluated. type: object required: - eval_candidate title: BenchmarkConfig description: A benchmark configuration for evaluation. + Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post: + properties: + file_id: + type: string + title: File Id + description: The ID of the file to attach to the vector store. + attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Attributes + description: The key-value attributes stored with the file, which can be used for filtering. + chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' + title: Chunking Strategy + description: The chunking strategy to use for the file. + type: object + required: + - file_id + title: Body_openai_attach_file_to_vector_store_v1_vector_stores__vector_store_id__files_post + Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post: + properties: + query: + anyOf: + - type: string + - items: + type: string + type: array + title: Query + description: The query string or array for performing the search. + filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Filters + description: Filters based on file attributes to narrow the search results. + max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' + title: Max Num Results + description: Maximum number of results to return (1 to 50 inclusive, default 10). + default: 10 + ranking_options: + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Ranking options for fine-tuning the search results. + rewrite_query: + type: boolean + title: Rewrite Query + description: Whether to rewrite the natural language query for vector search (default false). + default: false + search_mode: + anyOf: + - type: string + - type: 'null' + title: Search Mode + description: The search mode to use - 'keyword', 'vector', or 'hybrid' (default 'vector'). + default: vector + type: object + required: + - query + title: Body_openai_search_vector_store_v1_vector_stores__vector_store_id__search_post + Body_openai_upload_file_v1_files_post: + properties: + file: + type: string + format: binary + title: File + description: The File object to be uploaded. + purpose: + $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the uploaded file. + expires_after: + anyOf: + - $ref: '#/components/schemas/ExpiresAfter' + - type: 'null' + description: Optional form values describing expiration for the file. + type: object + required: + - file + - purpose + title: Body_openai_upload_file_v1_files_post + Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post: + properties: + documents: + items: + $ref: '#/components/schemas/RAGDocument' + type: array + title: Documents + description: List of documents to index in the RAG system. + vector_store_id: + type: string + title: Vector Store Id + description: ID of the vector database to store the document embeddings. + chunk_size_in_tokens: + type: integer + title: Chunk Size In Tokens + description: Size in tokens for document chunking during indexing. + default: 512 + type: object + required: + - documents + - vector_store_id + title: Body_rag_tool_insert_v1_tool_runtime_rag_tool_insert_post + Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + description: The query content to search for in the indexed documents. + vector_store_ids: + items: + type: string + type: array + title: Vector Store Ids + description: List of vector database IDs to search within. + query_config: + anyOf: + - $ref: '#/components/schemas/RAGQueryConfig' + - type: 'null' + description: Configuration parameters for the query operation. + type: object + required: + - content + - vector_store_ids + title: Body_rag_tool_query_v1_tool_runtime_rag_tool_query_post + Body_rerank_v1alpha_inference_rerank_post: + properties: + model: + type: string + title: Model + description: The identifier of the reranking model to use. + query: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + title: Query + description: The search query to rank items against. + items: + items: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' + - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' + type: array + title: Items + description: List of items to rerank. + max_num_results: + anyOf: + - type: integer + - type: 'null' + title: Max Num Results + description: 'Maximum number of results to return. Default: returns all.' + type: object + required: + - model + - query + - items + title: Body_rerank_v1alpha_inference_rerank_post BooleanType: properties: type: @@ -8288,7 +6967,7 @@ components: default: boolean type: object title: BooleanType - description: Parameter type for boolean values. + description: "Parameter type for boolean values.\n\n:param type: Discriminator type. Always \"boolean\"" BuiltinTool: type: string enum: @@ -8306,7 +6985,93 @@ components: default: chat_completion_input type: object title: ChatCompletionInputType - description: Parameter type for chat completion input. + description: "Parameter type for chat completion input.\n\n:param type: Discriminator type. Always \"chat_completion_input\"" + Checkpoint: + properties: + identifier: + type: string + title: Identifier + description: Unique identifier for the checkpoint. + created_at: + type: string + format: date-time + title: Created At + description: Timestamp when the checkpoint was created. + epoch: + type: integer + title: Epoch + description: Training epoch when the checkpoint was saved. + post_training_job_id: + type: string + title: Post Training Job Id + description: Identifier of the training job that created this checkpoint. + path: + type: string + title: Path + description: File system path where the checkpoint is stored. + training_metrics: + anyOf: + - $ref: '#/components/schemas/PostTrainingMetric' + - type: 'null' + description: Training metrics associated with this checkpoint. + type: object + required: + - identifier + - created_at + - epoch + - post_training_job_id + - path + - training_metrics + title: Checkpoint + description: Checkpoint created during training runs. + Chunk-Input: + properties: + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + chunk_id: + type: string + title: Chunk Id + metadata: + additionalProperties: true + type: object + title: Metadata + embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' + title: Embedding + chunk_metadata: + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' + type: object + required: + - content + - chunk_id + title: Chunk + description: A chunk of content that can be inserted into a vector database. Chunk-Output: properties: content: @@ -8339,12 +7104,16 @@ components: type: object title: Metadata embedding: + anyOf: + - items: + type: number + type: array + - type: 'null' title: Embedding - items: - type: number - type: array chunk_metadata: - $ref: '#/components/schemas/ChunkMetadata' + anyOf: + - $ref: '#/components/schemas/ChunkMetadata' + - type: 'null' type: object required: - content @@ -8354,38 +7123,60 @@ components: ChunkMetadata: properties: chunk_id: + anyOf: + - type: string + - type: 'null' title: Chunk Id - type: string document_id: + anyOf: + - type: string + - type: 'null' title: Document Id - type: string source: + anyOf: + - type: string + - type: 'null' title: Source - type: string created_timestamp: + anyOf: + - type: integer + - type: 'null' title: Created Timestamp - type: integer updated_timestamp: + anyOf: + - type: integer + - type: 'null' title: Updated Timestamp - type: integer chunk_window: + anyOf: + - type: string + - type: 'null' title: Chunk Window - type: string chunk_tokenizer: + anyOf: + - type: string + - type: 'null' title: Chunk Tokenizer - type: string chunk_embedding_model: + anyOf: + - type: string + - type: 'null' title: Chunk Embedding Model - type: string chunk_embedding_dimension: + anyOf: + - type: integer + - type: 'null' title: Chunk Embedding Dimension - type: integer content_token_count: + anyOf: + - type: integer + - type: 'null' title: Content Token Count - type: integer metadata_token_count: + anyOf: + - type: integer + - type: 'null' title: Metadata Token Count - type: integer type: object title: ChunkMetadata description: "`ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that\n will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata`\n is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after.\n Use `Chunk.metadata` for metadata that will be used in the context during inference." @@ -8398,7 +7189,7 @@ components: default: completion_input type: object title: CompletionInputType - description: Parameter type for completion input. + description: "Parameter type for completion input.\n\n:param type: Discriminator type. Always \"completion_input\"" CompletionMessage-Output: properties: role: @@ -8431,16 +7222,18 @@ components: stop_reason: $ref: '#/components/schemas/StopReason' tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/ToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/ToolCall' - type: array type: object required: - content - stop_reason title: CompletionMessage - description: A message containing the model's (assistant) response in a chat conversation. + description: "A message containing the model's (assistant) response in a chat conversation.\n\n- `StopReason.end_of_turn`: The model finished generating the entire response.\n- `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response.\n- `StopReason.out_of_tokens`: The model ran out of token budget." Conversation: properties: id: @@ -8458,24 +7251,151 @@ components: title: Created At description: The time at which the conversation was created, measured in seconds since the Unix epoch. metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' title: Metadata 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. - additionalProperties: - type: string - type: object items: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Items description: Initial items to include in the conversation context. You may add up to 20 items at a time. - items: - additionalProperties: true - type: object - type: array type: object required: - id - created_at title: Conversation description: OpenAI-compatible conversation object. + ConversationCreateRequest: + properties: + items: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + - type: 'null' + title: Items + description: Initial items to include in the conversation context. You may add up to 20 items at a time. + default: [] + metadata: + anyOf: + - additionalProperties: + type: string + type: object + maxProperties: 16 + - type: 'null' + title: Metadata + description: Set of 16 key-value pairs that can be attached to an object. Useful for storing additional information + default: {} + type: object + title: ConversationCreateRequest + description: Request body for creating a conversation. + ConversationDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted conversation identifier + object: + type: string + title: Object + description: Object type + default: conversation.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationDeletedResource + description: Response for deleted conversation. + ConversationItemCreateRequest: + properties: + items: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + maxItems: 20 + title: Items + description: Items to include in the conversation context. You may add up to 20 items at a time. + type: object + required: + - items + title: ConversationItemCreateRequest + description: Request body for creating conversation items. + ConversationItemDeletedResource: + properties: + id: + type: string + title: Id + description: The deleted item identifier + object: + type: string + title: Object + description: Object type + default: conversation.item.deleted + deleted: + type: boolean + title: Deleted + description: Whether the object was deleted + default: true + type: object + required: + - id + title: ConversationItemDeletedResource + description: Response for deleted conversation item. ConversationItemInclude: type: string enum: @@ -8523,13 +7443,17 @@ components: title: Data description: List of conversation items first_id: + anyOf: + - type: string + - type: 'null' title: First Id description: The ID of the first item in the list - type: string last_id: + anyOf: + - type: string + - type: 'null' title: Last Id description: The ID of the last item in the list - type: string has_more: type: boolean title: Has More @@ -8540,6 +7464,219 @@ components: - data title: ConversationItemList description: List of conversation items with pagination. + ConversationUpdateRequest: + properties: + metadata: + additionalProperties: + type: string + type: object + title: Metadata + 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. + type: object + required: + - metadata + title: ConversationUpdateRequest + description: Request body for updating a conversation. + CreateAgentSessionRequest: + properties: + agent_id: + type: string + title: Agent Id + description: The ID of the agent to create the session for + session_name: + type: string + title: Session Name + description: The name of the session to create + type: object + required: + - agent_id + - session_name + title: CreateAgentSessionRequest + description: Request to create a new session for an agent. + CreateBatchRequest: + properties: + input_file_id: + type: string + title: Input File Id + description: The ID of an uploaded file containing requests for the batch. + endpoint: + type: string + title: Endpoint + description: The endpoint to be used for all requests in the batch. + completion_window: + type: string + const: 24h + title: Completion Window + description: The time window within which the batch should be processed. + metadata: + anyOf: + - additionalProperties: + type: string + type: object + - type: 'null' + title: Metadata + description: Optional metadata for the batch. + idempotency_key: + anyOf: + - type: string + - type: 'null' + title: Idempotency Key + description: Optional idempotency key. When provided, enables idempotent behavior. + type: object + required: + - input_file_id + - endpoint + - completion_window + title: CreateBatchRequest + description: Request model for creating a batch. + CreateOpenAIResponseRequest: + properties: + input: + anyOf: + - type: string + - items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Input' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Input' + type: array + title: Input + description: Input message(s) to create the response + model: + type: string + title: Model + description: The underlying LLM used for completions + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Prompt object with ID, version, and variables + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System instructions + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: If specified, the new response will be a continuation of the previous response + conversation: + anyOf: + - type: string + - type: 'null' + title: Conversation + description: The ID of a conversation to add the response to. Must begin with 'conv_' + store: + type: boolean + title: Store + description: Whether to store the response + default: true + stream: + type: boolean + title: Stream + description: Whether to stream the response + default: false + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature + text: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseText' + - type: 'null' + description: Text generation parameters + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseInputToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: Tools to make available + include: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Include + description: Additional fields to include in the response + max_infer_iters: + type: integer + title: Max Infer Iters + description: Maximum number of inference iterations (extension to the OpenAI API) + default: 10 + guardrails: + anyOf: + - items: + anyOf: + - type: string + - $ref: '#/components/schemas/ResponseGuardrailSpec' + type: array + - type: 'null' + title: Guardrails + description: List of guardrails to apply during response generation + type: object + required: + - input + - model + title: CreateOpenAIResponseRequest + description: Request to create a model response. + CreatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The prompt text content with variable placeholders. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: List of variable names that can be used in the prompt template. + type: object + required: + - prompt + title: CreatePromptRequest + description: Request model for creating a new prompt. DPOAlignmentConfig: properties: beta: @@ -8575,16 +7712,22 @@ components: data_format: $ref: '#/components/schemas/DatasetFormat' validation_dataset_id: + anyOf: + - type: string + - type: 'null' title: Validation Dataset Id - type: string packed: + anyOf: + - type: boolean + - type: 'null' title: Packed default: false - type: boolean train_on_input: + anyOf: + - type: boolean + - type: 'null' title: Train On Input default: false - type: boolean type: object required: - dataset_id @@ -8600,9 +7743,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -8611,6 +7756,7 @@ components: type: string const: dataset title: Type + description: Type of resource, always 'dataset' for datasets default: dataset purpose: $ref: '#/components/schemas/DatasetPurpose' @@ -8651,7 +7797,7 @@ components: - eval/question-answer - eval/messages-answer title: DatasetPurpose - description: Purpose of the dataset. Each purpose has a required input data schema. + description: "Purpose of the dataset. Each purpose has a required input data schema.\n\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, world!\"},\n {\"role\": \"assistant\", \"content\": \"Hello, world!\"},\n ]\n }\n {\n \"question\": \"What is the capital of France?\",\n \"answer\": \"Paris\"\n }\n {\n \"messages\": [\n {\"role\": \"user\", \"content\": \"Hello, my name is John Doe.\"},\n {\"role\": \"assistant\", \"content\": \"Hello, John Doe. How can I help you today?\"},\n {\"role\": \"user\", \"content\": \"What's my name?\"},\n ],\n \"answer\": \"John Doe\"\n }" DefaultRAGQueryGeneratorConfig: properties: type: @@ -8665,7 +7811,7 @@ components: default: ' ' type: object title: DefaultRAGQueryGeneratorConfig - description: Configuration for the default RAG query generator. + description: "Configuration for the default RAG query generator.\n\n:param type: Type of query generator, always 'default'\n:param separator: String separator used to join query terms" Document: properties: content: @@ -8691,9 +7837,11 @@ components: type: array - $ref: '#/components/schemas/URL' title: Content + description: The content of the document. mime_type: type: string title: Mime Type + description: The MIME type of the document. type: object required: - content @@ -8703,34 +7851,73 @@ components: EfficiencyConfig: properties: enable_activation_checkpointing: + anyOf: + - type: boolean + - type: 'null' title: Enable Activation Checkpointing default: false - type: boolean enable_activation_offloading: + anyOf: + - type: boolean + - type: 'null' title: Enable Activation Offloading default: false - type: boolean memory_efficient_fsdp_wrap: + anyOf: + - type: boolean + - type: 'null' title: Memory Efficient Fsdp Wrap default: false - type: boolean fsdp_cpu_offload: + anyOf: + - type: boolean + - type: 'null' title: Fsdp Cpu Offload default: false - type: boolean type: object title: EfficiencyConfig description: Configuration for memory and compute efficiency optimizations. + Error: + properties: + status: + type: integer + title: Status + description: HTTP status code + title: + type: string + title: Title + description: Error title, a short summary of the error which is invariant for an error type + detail: + type: string + title: Detail + description: Error detail, a longer human-readable description of the error + instance: + anyOf: + - type: string + - type: 'null' + title: Instance + description: (Optional) A URL which can be used to retrieve more information about the specific occurrence of the error + type: object + required: + - status + - title + - detail + title: Error + description: Error response from the API. Roughly follows RFC 7807. Errors: properties: data: + anyOf: + - items: + $ref: '#/components/schemas/BatchError' + type: array + - type: 'null' title: Data - items: - $ref: '#/components/schemas/BatchError' - type: array object: + anyOf: + - type: string + - type: 'null' title: Object - type: string additionalProperties: true type: object title: Errors @@ -8742,17 +7929,63 @@ components: type: object type: array title: Generations + description: The generations from the evaluation. scores: additionalProperties: $ref: '#/components/schemas/ScoringResult' type: object title: Scores + description: The scores from the evaluation. Each key in the dict is a scoring function name. type: object required: - generations - scores title: EvaluateResponse description: The response from an evaluation. + EvaluateRowsRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to evaluate. + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the evaluation. + benchmark_config: + $ref: '#/components/schemas/BenchmarkConfig' + description: The configuration for the benchmark. + type: object + required: + - input_rows + - scoring_functions + - benchmark_config + title: EvaluateRowsRequest + description: Request model for evaluating rows. + ExpiresAfter: + properties: + anchor: + type: string + const: created_at + title: Anchor + description: Anchor must be 'created_at'. + seconds: + type: integer + maximum: 2592000.0 + minimum: 3600.0 + title: Seconds + description: Seconds between 3600 and 2592000 (1 hour to 30 days). + type: object + required: + - anchor + - seconds + title: ExpiresAfter + description: Control expiration of uploaded files. GrammarResponseFormat: properties: type: @@ -8783,6 +8016,7 @@ components: properties: status: $ref: '#/components/schemas/HealthStatus' + description: Current health status of the service type: object required: - status @@ -8808,7 +8042,7 @@ components: required: - image title: ImageContentItem - description: A image content item + description: A image content item. ImageContentItem-Output: properties: type: @@ -8822,23 +8056,31 @@ components: required: - image title: ImageContentItem - description: A image content item + description: A image content item. InferenceStep-Output: properties: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: inference @@ -8846,6 +8088,7 @@ components: default: inference model_response: $ref: '#/components/schemas/CompletionMessage-Output' + description: The response from the LLM. type: object required: - turn_id @@ -8863,6 +8106,47 @@ components: required: - cached_tokens title: InputTokensDetails + InsertChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to insert the chunks into. + chunks: + items: + $ref: '#/components/schemas/Chunk-Input' + type: array + title: Chunks + description: The chunks to insert. + ttl_seconds: + anyOf: + - type: integer + - type: 'null' + title: Ttl Seconds + description: The time to live of the chunks. + type: object + required: + - vector_store_id + - chunks + title: InsertChunksRequest + description: Request to insert chunks into a vector database. + InvokeToolRequest: + properties: + tool_name: + type: string + title: Tool Name + description: The name of the tool to invoke + kwargs: + additionalProperties: true + type: object + title: Kwargs + description: A dictionary of arguments to pass to the tool + type: object + required: + - tool_name + - kwargs + title: InvokeToolRequest + description: Request model for invoking a tool. Job: properties: job_id: @@ -8885,7 +8169,7 @@ components: - scheduled - cancelled title: JobStatus - description: Status of a job execution. + description: "Status of a job execution.\n:cvar completed: Job has finished successfully\n:cvar in_progress: Job is currently running\n:cvar failed: Job has failed during execution\n:cvar scheduled: Job is scheduled but not yet started\n:cvar cancelled: Job was cancelled before completion" JsonSchemaResponseFormat: properties: type: @@ -8911,7 +8195,7 @@ components: default: json type: object title: JsonType - description: Parameter type for JSON values. + description: "Parameter type for JSON values.\n\n:param type: Discriminator type. Always \"json\"" LLMAsJudgeScoringFnParams: properties: type: @@ -8923,8 +8207,10 @@ components: type: string title: Judge Model prompt_template: + anyOf: + - type: string + - type: 'null' title: Prompt Template - type: string judge_score_regexes: items: type: string @@ -8960,7 +8246,43 @@ components: - model - template title: LLMRAGQueryGeneratorConfig - description: Configuration for the LLM-based RAG query generator. + description: "Configuration for the LLM-based RAG query generator.\n\n:param type: Type of query generator, always 'llm'\n:param model: Name of the language model to use for query generation\n:param template: Template string for formatting the query generation prompt" + ListBatchesResponse: + properties: + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + data: + items: + $ref: '#/components/schemas/Batch' + type: array + title: Data + description: List of batch objects. + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + description: ID of the first batch in the list. + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + description: ID of the last batch in the list. + has_more: + type: boolean + title: Has More + description: Whether there are more batches available. + default: false + type: object + required: + - data + title: ListBatchesResponse + description: Response containing a list of batch objects. ListBenchmarksResponse: properties: data: @@ -8968,10 +8290,12 @@ components: $ref: '#/components/schemas/Benchmark' type: array title: Data + description: List of benchmark resources type: object required: - data title: ListBenchmarksResponse + description: Response model for listing benchmarks. ListDatasetsResponse: properties: data: @@ -8979,6 +8303,7 @@ components: $ref: '#/components/schemas/Dataset' type: array title: Data + description: List of datasets type: object required: - data @@ -8991,10 +8316,149 @@ components: $ref: '#/components/schemas/Model' type: array title: Data + description: List of model resources. type: object required: - data title: ListModelsResponse + description: Response model for listing models. + ListOpenAIChatCompletionResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAICompletionWithInputMessages' + type: array + title: Data + has_more: + type: boolean + title: Has More + first_id: + type: string + title: First Id + last_id: + type: string + title: Last Id + object: + type: string + const: list + title: Object + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIChatCompletionResponse + description: Response from listing OpenAI-compatible chat completions. + ListOpenAIFileResponse: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIFileObject' + type: array + title: Data + description: List of file objects. + has_more: + type: boolean + title: Has More + description: Whether there are more files available beyond this page. + first_id: + type: string + title: First Id + description: ID of the first file in the list for pagination. + last_id: + type: string + title: Last Id + description: ID of the last file in the list for pagination. + object: + type: string + const: list + title: Object + description: The object type, which is always 'list'. + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIFileResponse + description: Response for listing files in OpenAI Files API. + ListOpenAIResponseInputItem: + properties: + data: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Data + description: List of input items + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + title: ListOpenAIResponseInputItem + description: "List container for OpenAI response input items.\n\n:param data: List of input items\n:param object: Object type identifier, always \"list\"" + ListOpenAIResponseObject: + properties: + data: + items: + $ref: '#/components/schemas/OpenAIResponseObjectWithInput-Output' + type: array + title: Data + description: List of response objects with their input context + has_more: + type: boolean + title: Has More + description: Whether there are more results available beyond this page + first_id: + type: string + title: First Id + description: Identifier of the first item in this page + last_id: + type: string + title: Last Id + description: Identifier of the last item in this page + object: + type: string + const: list + title: Object + description: Object type identifier, always "list" + default: list + type: object + required: + - data + - has_more + - first_id + - last_id + title: ListOpenAIResponseObject + description: "Paginated list of OpenAI response objects with navigation metadata.\n\n:param data: List of response objects with their input context\n:param has_more: Whether there are more results available beyond this page\n:param first_id: Identifier of the first item in this page\n:param last_id: Identifier of the last item in this page\n:param object: Object type identifier, always \"list\"" ListPostTrainingJobsResponse: properties: data: @@ -9002,6 +8466,7 @@ components: $ref: '#/components/schemas/PostTrainingJob' type: array title: Data + description: The list of training jobs type: object required: - data @@ -9013,6 +8478,7 @@ components: $ref: '#/components/schemas/Prompt' type: array title: Data + description: List of prompt resources. type: object required: - data @@ -9025,6 +8491,7 @@ components: $ref: '#/components/schemas/ProviderInfo' type: array title: Data + description: List of provider information objects type: object required: - data @@ -9037,6 +8504,7 @@ components: $ref: '#/components/schemas/RouteInfo' type: array title: Data + description: List of available route information objects type: object required: - data @@ -9046,13 +8514,15 @@ components: properties: data: items: - $ref: '#/components/schemas/ScoringFn-Output' + $ref: '#/components/schemas/ScoringFn' type: array title: Data + description: List of scoring function resources type: object required: - data title: ListScoringFunctionsResponse + description: Response model for listing scoring functions. ListShieldsResponse: properties: data: @@ -9060,10 +8530,25 @@ components: $ref: '#/components/schemas/Shield' type: array title: Data + description: List of shield resources type: object required: - data title: ListShieldsResponse + description: Response model for listing shields. + ListToolDefsResponse: + properties: + data: + items: + $ref: '#/components/schemas/ToolDef' + type: array + title: Data + description: List of tool definitions + type: object + required: + - data + title: ListToolDefsResponse + description: Response containing a list of tool definitions. ListToolGroupsResponse: properties: data: @@ -9071,45 +8556,104 @@ components: $ref: '#/components/schemas/ToolGroup' type: array title: Data + description: List of tool groups type: object required: - data title: ListToolGroupsResponse description: Response containing a list of tool groups. + LoraFinetuningConfig: + properties: + type: + type: string + const: LoRA + title: Type + default: LoRA + lora_attn_modules: + items: + type: string + type: array + title: Lora Attn Modules + apply_lora_to_mlp: + type: boolean + title: Apply Lora To Mlp + apply_lora_to_output: + type: boolean + title: Apply Lora To Output + rank: + type: integer + title: Rank + alpha: + type: integer + title: Alpha + use_dora: + anyOf: + - type: boolean + - type: 'null' + title: Use Dora + default: false + quantize_base: + anyOf: + - type: boolean + - type: 'null' + title: Quantize Base + default: false + type: object + required: + - lora_attn_modules + - apply_lora_to_mlp + - apply_lora_to_output + - rank + - alpha + title: LoraFinetuningConfig + description: Configuration for Low-Rank Adaptation (LoRA) fine-tuning. MCPListToolsTool: properties: input_schema: additionalProperties: true type: object title: Input Schema + description: JSON schema defining the tool's input parameters name: type: string title: Name + description: Name of the tool description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Description of what the tool does type: object required: - input_schema - name title: MCPListToolsTool - description: Tool definition returned by MCP list tools operation. + description: "Tool definition returned by MCP list tools operation.\n\n:param input_schema: JSON schema defining the tool's input parameters\n:param name: Name of the tool\n:param description: (Optional) Description of what the tool does" MemoryRetrievalStep-Output: properties: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: memory_retrieval @@ -9118,6 +8662,7 @@ components: vector_store_ids: type: string title: Vector Store Ids + description: The IDs of the vector databases to retrieve context from. inserted_context: anyOf: - type: string @@ -9140,6 +8685,7 @@ components: text: '#/components/schemas/TextContentItem' type: array title: Inserted Context + description: The context retrieved from the vector databases. type: object required: - turn_id @@ -9155,9 +8701,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -9166,14 +8714,16 @@ components: type: string const: model title: Type + description: The resource type, always 'model' for model resources. default: model metadata: additionalProperties: true type: object title: Metadata - description: Any additional metadata for this model + description: Any additional metadata for this model. model_type: $ref: '#/components/schemas/ModelType' + description: The type of model (LLM or embedding model). default: llm type: object required: @@ -9187,14 +8737,20 @@ components: type: string const: model title: Type + description: The type of candidate. default: model model: type: string title: Model + description: The model ID to evaluate. sampling_params: $ref: '#/components/schemas/SamplingParams' + description: The sampling parameters for the model. system_message: - $ref: '#/components/schemas/SystemMessage' + anyOf: + - $ref: '#/components/schemas/SystemMessage' + - type: 'null' + description: The system message providing instructions or context to the model. type: object required: - model @@ -9214,14 +8770,17 @@ components: id: type: string title: Id + description: The unique identifier for the moderation request. model: type: string title: Model + description: The model used to generate the moderation results. results: items: $ref: '#/components/schemas/ModerationObjectResults' type: array title: Results + description: A list of moderation objects. type: object required: - id @@ -9234,30 +8793,44 @@ components: flagged: type: boolean title: Flagged + description: Whether any of the below categories are flagged. categories: + anyOf: + - additionalProperties: + type: boolean + type: object + - type: 'null' title: Categories - additionalProperties: - type: boolean - type: object + description: A list of the categories, and whether they are flagged or not. category_applied_input_types: + anyOf: + - additionalProperties: + items: + type: string + type: array + type: object + - type: 'null' title: Category Applied Input Types - additionalProperties: - items: - type: string - type: array - type: object + description: A list of the categories along with the input type(s) that the score applies to. category_scores: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Category Scores - additionalProperties: - type: number - type: object + description: A list of the categories along with their scores as predicted by model. user_message: + anyOf: + - type: string + - type: 'null' title: User Message - type: string + description: User message. metadata: additionalProperties: true type: object title: Metadata + description: Additional metadata. type: object required: - flagged @@ -9272,7 +8845,7 @@ components: default: number type: object title: NumberType - description: Parameter type for numeric values. + description: "Parameter type for numeric values.\n\n:param type: Discriminator type. Always \"number\"" ObjectType: properties: type: @@ -9282,7 +8855,7 @@ components: default: object type: object title: ObjectType - description: Parameter type for object values. + description: "Parameter type for object values.\n\n:param type: Discriminator type. Always \"object\"" OpenAIAssistantMessageParam-Input: properties: role: @@ -9296,15 +8869,20 @@ components: - items: $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' type: array + - type: 'null' title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array type: object title: OpenAIAssistantMessageParam description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. @@ -9321,49 +8899,23 @@ components: - items: $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' type: array + - type: 'null' title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string tool_calls: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIChatCompletionToolCall' + type: array + - type: 'null' title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array type: object title: OpenAIAssistantMessageParam description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. - OpenAIChatCompletion: - properties: - id: - type: string - title: Id - choices: - items: - $ref: '#/components/schemas/OpenAIChoice-Output' - type: array - title: Choices - object: - type: string - const: chat.completion - title: Object - default: chat.completion - created: - type: integer - title: Created - model: - type: string - title: Model - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - type: object - required: - - id - - choices - - created - - model - title: OpenAIChatCompletion - description: Response from an OpenAI-compatible chat completion request. OpenAIChatCompletionContentPartImageParam: properties: type: @@ -9418,96 +8970,135 @@ components: minItems: 1 title: Messages frequency_penalty: + anyOf: + - type: number + - type: 'null' title: Frequency Penalty - type: number function_call: anyOf: - type: string - additionalProperties: true type: object + - type: 'null' title: Function Call functions: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Functions - items: - additionalProperties: true - type: object - type: array logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Logit Bias - additionalProperties: - type: number - type: object logprobs: + anyOf: + - type: boolean + - type: 'null' title: Logprobs - type: boolean max_completion_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Completion Tokens - type: integer max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer n: + anyOf: + - type: integer + - type: 'null' title: N - type: integer parallel_tool_calls: + anyOf: + - type: boolean + - type: 'null' title: Parallel Tool Calls - type: boolean presence_penalty: + anyOf: + - type: number + - type: 'null' title: Presence Penalty - type: number response_format: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseFormatText' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' + - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' + discriminator: + propertyName: type + mapping: + json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' + json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' + text: '#/components/schemas/OpenAIResponseFormatText' + - type: 'null' title: Response Format - oneOf: - - $ref: '#/components/schemas/OpenAIResponseFormatText' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONSchema' - - $ref: '#/components/schemas/OpenAIResponseFormatJSONObject' - discriminator: - propertyName: type - mapping: - json_object: '#/components/schemas/OpenAIResponseFormatJSONObject' - json_schema: '#/components/schemas/OpenAIResponseFormatJSONSchema' - text: '#/components/schemas/OpenAIResponseFormatText' seed: + anyOf: + - type: integer + - type: 'null' title: Seed - type: integer stop: anyOf: - type: string - items: type: string type: array + - type: 'null' title: Stop stream: + anyOf: + - type: boolean + - type: 'null' title: Stream - type: boolean stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Stream Options - additionalProperties: true - type: object temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number tool_choice: anyOf: - type: string - additionalProperties: true type: object + - type: 'null' title: Tool Choice tools: + anyOf: + - items: + additionalProperties: true + type: object + type: array + - type: 'null' title: Tools - items: - additionalProperties: true - type: object - type: array top_logprobs: + anyOf: + - type: integer + - type: 'null' title: Top Logprobs - type: integer top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number user: + anyOf: + - type: string + - type: 'null' title: User - type: string additionalProperties: true type: object required: @@ -9518,29 +9109,39 @@ components: OpenAIChatCompletionToolCall: properties: index: + anyOf: + - type: integer + - type: 'null' title: Index - type: integer id: + anyOf: + - type: string + - type: 'null' title: Id - type: string type: type: string const: function title: Type default: function function: - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionToolCallFunction' + - type: 'null' type: object title: OpenAIChatCompletionToolCall description: Tool call specification for OpenAI-compatible chat completion responses. OpenAIChatCompletionToolCallFunction: properties: name: + anyOf: + - type: string + - type: 'null' title: Name - type: string arguments: + anyOf: + - type: string + - type: 'null' title: Arguments - type: string type: object title: OpenAIChatCompletionToolCallFunction description: Function call details for OpenAI-compatible tool calls. @@ -9556,9 +9157,13 @@ components: type: integer title: Total Tokens prompt_tokens_details: - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsagePromptTokensDetails' + - type: 'null' completion_tokens_details: - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsageCompletionTokensDetails' + - type: 'null' type: object required: - prompt_tokens @@ -9569,16 +9174,20 @@ components: OpenAIChatCompletionUsageCompletionTokensDetails: properties: reasoning_tokens: + anyOf: + - type: integer + - type: 'null' title: Reasoning Tokens - type: integer type: object title: OpenAIChatCompletionUsageCompletionTokensDetails description: Token details for output tokens in OpenAI chat completion usage. OpenAIChatCompletionUsagePromptTokensDetails: properties: cached_tokens: + anyOf: + - type: integer + - type: 'null' title: Cached Tokens - type: integer type: object title: OpenAIChatCompletionUsagePromptTokensDetails description: Token details for prompt tokens in OpenAI chat completion usage. @@ -9607,7 +9216,9 @@ components: type: integer title: Index logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' type: object required: - message @@ -9618,15 +9229,19 @@ components: OpenAIChoiceLogprobs-Output: properties: content: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' title: Content - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array refusal: + anyOf: + - items: + $ref: '#/components/schemas/OpenAITokenLogProb' + type: array + - type: 'null' title: Refusal - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array type: object title: OpenAIChoiceLogprobs description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. @@ -9658,7 +9273,7 @@ components: - created - model title: OpenAICompletion - description: Response from an OpenAI-compatible completion request. + description: "Response from an OpenAI-compatible completion request.\n\n:id: The ID of the completion\n:choices: List of choices\n:created: The Unix timestamp in seconds when the completion was created\n:model: The model that was used to generate the completion\n:object: The object type, which will be \"text_completion\"" OpenAICompletionChoice-Output: properties: finish_reason: @@ -9671,14 +9286,16 @@ components: type: integer title: Index logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + anyOf: + - $ref: '#/components/schemas/OpenAIChoiceLogprobs-Output' + - type: 'null' type: object required: - finish_reason - text - index title: OpenAICompletionChoice - description: A choice from an OpenAI-compatible completion response. + description: "A choice from an OpenAI-compatible completion response.\n\n:finish_reason: The reason the model stopped generating\n:text: The text of the choice\n:index: The index of the choice\n:logprobs: (Optional) The log probabilities for the tokens in the choice" OpenAICompletionRequestWithExtraBody: properties: model: @@ -9700,60 +9317,93 @@ components: type: array title: Prompt best_of: + anyOf: + - type: integer + - type: 'null' title: Best Of - type: integer echo: + anyOf: + - type: boolean + - type: 'null' title: Echo - type: boolean frequency_penalty: + anyOf: + - type: number + - type: 'null' title: Frequency Penalty - type: number logit_bias: + anyOf: + - additionalProperties: + type: number + type: object + - type: 'null' title: Logit Bias - additionalProperties: - type: number - type: object logprobs: + anyOf: + - type: integer + maximum: 5.0 + minimum: 0.0 + - type: 'null' title: Logprobs - type: boolean max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer n: + anyOf: + - type: integer + - type: 'null' title: N - type: integer presence_penalty: + anyOf: + - type: number + - type: 'null' title: Presence Penalty - type: number seed: + anyOf: + - type: integer + - type: 'null' title: Seed - type: integer stop: anyOf: - type: string - items: type: string type: array + - type: 'null' title: Stop stream: + anyOf: + - type: boolean + - type: 'null' title: Stream - type: boolean stream_options: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Stream Options - additionalProperties: true - type: object temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number user: + anyOf: + - type: string + - type: 'null' title: User - type: string suffix: + anyOf: + - type: string + - type: 'null' title: Suffix - type: string additionalProperties: true type: object required: @@ -9761,6 +9411,57 @@ components: - prompt title: OpenAICompletionRequestWithExtraBody description: Request parameters for OpenAI-compatible completion endpoint. + OpenAICompletionWithInputMessages: + properties: + id: + type: string + title: Id + choices: + items: + $ref: '#/components/schemas/OpenAIChoice-Output' + type: array + title: Choices + object: + type: string + const: chat.completion + title: Object + default: chat.completion + created: + type: integer + title: Created + model: + type: string + title: Model + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIChatCompletionUsage' + - type: 'null' + input_messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Output' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Output' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Output' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Output' + type: array + title: Input Messages + type: object + required: + - id + - choices + - created + - model + - input_messages + title: OpenAICompletionWithInputMessages OpenAICreateVectorStoreFileBatchRequestWithExtraBody: properties: file_ids: @@ -9769,19 +9470,23 @@ components: type: array title: File Ids attributes: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Attributes - additionalProperties: true - type: object chunking_strategy: + anyOf: + - oneOf: + - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' + - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' + static: '#/components/schemas/VectorStoreChunkingStrategyStatic' + - type: 'null' title: Chunking Strategy - oneOf: - - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' - - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' - discriminator: - propertyName: type - mapping: - auto: '#/components/schemas/VectorStoreChunkingStrategyAuto' - static: '#/components/schemas/VectorStoreChunkingStrategyStatic' additionalProperties: true type: object required: @@ -9791,29 +9496,61 @@ components: OpenAICreateVectorStoreRequestWithExtraBody: properties: name: + anyOf: + - type: string + - type: 'null' title: Name - type: string file_ids: + anyOf: + - items: + type: string + type: array + - type: 'null' title: File Ids - items: - type: string - type: array expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Expires After - additionalProperties: true - type: object chunking_strategy: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Chunking Strategy - additionalProperties: true - type: object metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object additionalProperties: true type: object title: OpenAICreateVectorStoreRequestWithExtraBody description: Request to create a vector store with extra_body support. + OpenAIDeleteResponseObject: + properties: + id: + type: string + title: Id + description: Unique identifier of the deleted response + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + deleted: + type: boolean + title: Deleted + description: Deletion confirmation flag, always True + default: true + type: object + required: + - id + title: OpenAIDeleteResponseObject + description: "Response object confirming deletion of an OpenAI response.\n\n:param id: Unique identifier of the deleted response\n:param object: Object type identifier, always \"response\"\n:param deleted: Deletion confirmation flag, always True" OpenAIDeveloperMessageParam: properties: role: @@ -9829,8 +9566,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -9886,15 +9625,21 @@ components: type: array title: Input encoding_format: + anyOf: + - type: string + - type: 'null' title: Encoding Format default: float - type: string dimensions: + anyOf: + - type: integer + - type: 'null' title: Dimensions - type: integer user: + anyOf: + - type: string + - type: 'null' title: User - type: string additionalProperties: true type: object required: @@ -9939,17 +9684,40 @@ components: required: - file title: OpenAIFile + OpenAIFileDeleteResponse: + properties: + id: + type: string + title: Id + description: The file identifier that was deleted. + object: + type: string + const: file + title: Object + description: The object type, which is always 'file'. + default: file + deleted: + type: boolean + title: Deleted + description: Whether the file was successfully deleted. + type: object + required: + - id + - deleted + title: OpenAIFileDeleteResponse + description: Response for deleting a file in OpenAI Files API. OpenAIFileFile: properties: - file_data: - title: File Data - type: string file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string filename: + anyOf: + - type: string + - type: 'null' title: Filename - type: string type: object title: OpenAIFileFile OpenAIFileObject: @@ -9958,24 +9726,31 @@ components: type: string const: file title: Object + description: The object type, which is always 'file'. default: file id: type: string title: Id + description: The file identifier, which can be referenced in the API endpoints. bytes: type: integer title: Bytes + description: The size of the file, in bytes. created_at: type: integer title: Created At + description: The Unix timestamp (in seconds) for when the file was created. expires_at: type: integer title: Expires At + description: The Unix timestamp (in seconds) for when the file expires. filename: type: string title: Filename + description: The name of the file. purpose: $ref: '#/components/schemas/OpenAIFilePurpose' + description: The intended purpose of the file. type: object required: - id @@ -9999,8 +9774,10 @@ components: type: string title: Url detail: + anyOf: + - type: string + - type: 'null' title: Detail - type: string type: object required: - url @@ -10012,15 +9789,21 @@ components: type: string title: Name description: + anyOf: + - type: string + - type: 'null' title: Description - type: string strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Schema - additionalProperties: true - type: object type: object title: OpenAIJSONSchema description: JSON schema specification for OpenAI-compatible structured response format. @@ -10030,19 +9813,24 @@ components: type: string const: url_citation title: Type + description: Annotation type identifier, always "url_citation" default: url_citation end_index: type: integer title: End Index + description: End position of the citation span in the content start_index: type: integer title: Start Index + description: Start position of the citation span in the content title: type: string title: Title + description: Title of the referenced web resource url: type: string title: Url + description: URL of the referenced web resource type: object required: - end_index @@ -10050,7 +9838,7 @@ components: - title - url title: OpenAIResponseAnnotationCitation - description: URL citation annotation for referencing external web resources. + description: "URL citation annotation for referencing external web resources.\n\n:param type: Annotation type identifier, always \"url_citation\"\n:param end_index: End position of the citation span in the content\n:param start_index: Start position of the citation span in the content\n:param title: Title of the referenced web resource\n:param url: URL of the referenced web resource" OpenAIResponseAnnotationContainerFileCitation: properties: type: @@ -10087,23 +9875,27 @@ components: type: string const: file_citation title: Type + description: Annotation type identifier, always "file_citation" default: file_citation file_id: type: string title: File Id + description: Unique identifier of the referenced file filename: type: string title: Filename + description: Name of the referenced file index: type: integer title: Index + description: Position index of the citation within the content type: object required: - file_id - filename - index title: OpenAIResponseAnnotationFileCitation - description: File citation annotation for referencing specific files in response content. + description: "File citation annotation for referencing specific files in response content.\n\n:param type: Annotation type identifier, always \"file_citation\"\n:param file_id: Unique identifier of the referenced file\n:param filename: Name of the referenced file\n:param index: Position index of the citation within the content" OpenAIResponseAnnotationFilePath: properties: type: @@ -10128,29 +9920,33 @@ components: type: string const: refusal title: Type + description: Content part type identifier, always "refusal" default: refusal refusal: type: string title: Refusal + description: Refusal text supplied by the model type: object required: - refusal title: OpenAIResponseContentPartRefusal - description: Refusal content within a streamed response part. + description: "Refusal content within a streamed response part.\n\n:param type: Content part type identifier, always \"refusal\"\n:param refusal: Refusal text supplied by the model" OpenAIResponseError: properties: code: type: string title: Code + description: Error code identifying the type of failure message: type: string title: Message + description: Human-readable error message describing the failure type: object required: - code - message title: OpenAIResponseError - description: Error details for failed OpenAI response requests. + description: "Error details for failed OpenAI response requests.\n\n:param code: Error code identifying the type of failure\n:param message: Human-readable error message describing the failure" OpenAIResponseFormatJSONObject: properties: type: @@ -10199,11 +9995,15 @@ components: title: Type default: function_call_output id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - call_id @@ -10216,22 +10016,35 @@ components: type: string const: input_file title: Type + description: The type of the input item. Always `input_file`. default: input_file file_data: + anyOf: + - type: string + - type: 'null' title: File Data - type: string + description: The data of the file to be sent to the model. file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string + description: The ID of the file to be sent to the model. file_url: + anyOf: + - type: string + - type: 'null' title: File Url - type: string + description: The URL of the file to be sent to the model. filename: + anyOf: + - type: string + - type: 'null' title: Filename - type: string + description: The name of the file to be sent to the model. type: object title: OpenAIResponseInputMessageContentFile - description: File content for input messages in OpenAI response format. + description: "File content for input messages in OpenAI response format.\n\n:param type: The type of the input item. Always `input_file`.\n:param file_data: The data of the file to be sent to the model.\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param file_url: The URL of the file to be sent to the model.\n:param filename: The name of the file to be sent to the model." OpenAIResponseInputMessageContentImage: properties: detail: @@ -10243,108 +10056,145 @@ components: - type: string const: auto title: Detail + description: Level of detail for image processing, can be "low", "high", or "auto" default: auto type: type: string const: input_image title: Type + description: Content type identifier, always "input_image" default: input_image file_id: + anyOf: + - type: string + - type: 'null' title: File Id - type: string + description: The ID of the file to be sent to the model. image_url: + anyOf: + - type: string + - type: 'null' title: Image Url - type: string + description: URL of the image content type: object title: OpenAIResponseInputMessageContentImage - description: Image content for input messages in OpenAI response format. + description: "Image content for input messages in OpenAI response format.\n\n:param detail: Level of detail for image processing, can be \"low\", \"high\", or \"auto\"\n:param type: Content type identifier, always \"input_image\"\n:param file_id: (Optional) The ID of the file to be sent to the model.\n:param image_url: (Optional) URL of the image content" OpenAIResponseInputMessageContentText: properties: text: type: string title: Text + description: The text content of the input message type: type: string const: input_text title: Type + description: Content type identifier, always "input_text" default: input_text type: object required: - text title: OpenAIResponseInputMessageContentText - description: Text content for input messages in OpenAI response format. + description: "Text content for input messages in OpenAI response format.\n\n:param text: The text content of the input message\n:param type: Content type identifier, always \"input_text\"" OpenAIResponseInputToolFileSearch: properties: type: type: string const: file_search title: Type + description: Tool type identifier, always "file_search" default: file_search vector_store_ids: items: type: string type: array title: Vector Store Ids + description: List of vector store identifiers to search within filters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Filters - additionalProperties: true - type: object + description: Additional filters to apply to the search max_num_results: + anyOf: + - type: integer + maximum: 50.0 + minimum: 1.0 + - type: 'null' title: Max Num Results + description: Maximum number of search results to return (1-50) default: 10 - type: integer - maximum: 50.0 - minimum: 1.0 ranking_options: - $ref: '#/components/schemas/SearchRankingOptions' + anyOf: + - $ref: '#/components/schemas/SearchRankingOptions' + - type: 'null' + description: Options for ranking and scoring search results type: object required: - vector_store_ids title: OpenAIResponseInputToolFileSearch - description: File search tool configuration for OpenAI response inputs. + description: "File search tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"file_search\"\n:param vector_store_ids: List of vector store identifiers to search within\n:param filters: (Optional) Additional filters to apply to the search\n:param max_num_results: (Optional) Maximum number of search results to return (1-50)\n:param ranking_options: (Optional) Options for ranking and scoring search results" OpenAIResponseInputToolFunction: properties: type: type: string const: function title: Type + description: Tool type identifier, always "function" default: function name: type: string title: Name + description: Name of the function that can be called description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Description of what the function does parameters: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Parameters - additionalProperties: true - type: object + description: JSON schema defining the function's parameters strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean + description: Whether to enforce strict parameter validation type: object required: - name - - parameters title: OpenAIResponseInputToolFunction - description: Function tool configuration for OpenAI response inputs. + description: "Function tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"function\"\n:param name: Name of the function that can be called\n:param description: (Optional) Description of what the function does\n:param parameters: (Optional) JSON schema defining the function's parameters\n:param strict: (Optional) Whether to enforce strict parameter validation" OpenAIResponseInputToolMCP: properties: type: type: string const: mcp title: Type + description: Tool type identifier, always "mcp" default: mcp server_label: type: string title: Server Label + description: Label to identify this MCP server server_url: type: string title: Server Url + description: URL endpoint of the MCP server headers: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Headers - additionalProperties: true - type: object + description: HTTP headers to include when connecting to the server require_approval: anyOf: - type: string @@ -10353,6 +10203,7 @@ components: const: never - $ref: '#/components/schemas/ApprovalFilter' title: Require Approval + description: Approval requirement for tool calls ("always", "never", or filter) default: never allowed_tools: anyOf: @@ -10360,13 +10211,15 @@ components: type: string type: array - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' title: Allowed Tools + description: Restriction on which tools can be used from this server type: object required: - server_label - server_url title: OpenAIResponseInputToolMCP - description: Model Context Protocol (MCP) tool configuration for OpenAI response inputs. + description: "Model Context Protocol (MCP) tool configuration for OpenAI response inputs.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param server_url: URL endpoint of the MCP server\n:param headers: (Optional) HTTP headers to include when connecting to the server\n:param require_approval: Approval requirement for tool calls (\"always\", \"never\", or filter)\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" OpenAIResponseInputToolWebSearch: properties: type: @@ -10378,15 +10231,19 @@ components: - type: string const: web_search_preview_2025_03_11 title: Type + description: Web search tool type variant to use default: web_search search_context_size: + anyOf: + - type: string + pattern: ^low|medium|high$ + - type: 'null' title: Search Context Size + description: Size of search context, must be "low", "medium", or "high" default: medium - type: string - pattern: ^low|medium|high$ type: object title: OpenAIResponseInputToolWebSearch - description: Web search tool configuration for OpenAI response inputs. + description: "Web search tool configuration for OpenAI response inputs.\n\n:param type: Web search tool type variant to use\n:param search_context_size: (Optional) Size of search context, must be \"low\", \"medium\", or \"high\"" OpenAIResponseMCPApprovalRequest: properties: arguments: @@ -10428,11 +10285,15 @@ components: title: Type default: mcp_approval_response id: + anyOf: + - type: string + - type: 'null' title: Id - type: string reason: + anyOf: + - type: string + - type: 'null' title: Reason - type: string type: object required: - approval_request_id @@ -10484,11 +10345,15 @@ components: title: Type default: message id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - content @@ -10540,11 +10405,15 @@ components: title: Type default: message id: + anyOf: + - type: string + - type: 'null' title: Id - type: string status: + anyOf: + - type: string + - type: 'null' title: Status - type: string type: object required: - content @@ -10556,18 +10425,25 @@ components: created_at: type: integer title: Created At + description: Unix timestamp when the response was created error: - $ref: '#/components/schemas/OpenAIResponseError' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed id: type: string title: Id + description: Unique identifier for this response model: type: string title: Model + description: Model identifier used for generation object: type: string const: response title: Object + description: Object type identifier, always "response" default: response output: items: @@ -10591,55 +10467,80 @@ components: web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' type: array title: Output + description: List of generated output items (messages, tool calls, etc.) parallel_tool_calls: type: boolean title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel default: false previous_response_id: + anyOf: + - type: string + - type: 'null' title: Previous Response Id - type: string + description: ID of the previous response in a conversation prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. status: type: string title: Status + description: Current status of the response generation temperature: + anyOf: + - type: number + - type: 'null' title: Temperature - type: number + description: Sampling temperature used for generation text: $ref: '#/components/schemas/OpenAIResponseText' - default: - format: - type: text + description: Text formatting configuration for the response top_p: + anyOf: + - type: number + - type: 'null' title: Top P - type: number + description: Nucleus sampling parameter used for generation tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' title: Tools - items: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseToolMCP' - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseToolMCP' - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' - type: array + description: An array of tools the model may call while generating a response. truncation: + anyOf: + - type: string + - type: 'null' title: Truncation - type: string + description: Truncation strategy applied to the response usage: - $ref: '#/components/schemas/OpenAIResponseUsage' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response instructions: + anyOf: + - type: string + - type: 'null' title: Instructions - type: string + description: System message inserted into the model's context type: object required: - created_at @@ -10648,7 +10549,165 @@ components: - output - status title: OpenAIResponseObject - description: Complete OpenAI response object containing generation results and metadata. + description: "Complete OpenAI response object containing generation results and metadata.\n\n:param created_at: Unix timestamp when the response was created\n:param error: (Optional) Error details if the response generation failed\n:param id: Unique identifier for this response\n:param model: Model identifier used for generation\n:param object: Object type identifier, always \"response\"\n:param output: List of generated output items (messages, tool calls, etc.)\n:param parallel_tool_calls: Whether tool calls can be executed in parallel\n:param previous_response_id: (Optional) ID of the previous response in a conversation\n:param prompt: (Optional) Reference to a prompt template and its variables.\n:param status: Current status of the response generation\n:param temperature: (Optional) Sampling temperature used for generation\n:param text: Text formatting configuration for the response\n:param top_p: (Optional) Nucleus sampling parameter used for generation\n:param tools: (Optional) An array of tools the model may call while generating a response.\n:param truncation: (Optional) Truncation strategy applied to the response\n:param usage: (Optional) Token usage information for the response\n:param instructions: (Optional) System message inserted into the model's context" + OpenAIResponseObjectWithInput-Output: + properties: + created_at: + type: integer + title: Created At + description: Unix timestamp when the response was created + error: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseError' + - type: 'null' + description: Error details if the response generation failed + id: + type: string + title: Id + description: Unique identifier for this response + model: + type: string + title: Model + description: Model identifier used for generation + object: + type: string + const: response + title: Object + description: Object type identifier, always "response" + default: response + output: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + type: array + title: Output + description: List of generated output items (messages, tool calls, etc.) + parallel_tool_calls: + type: boolean + title: Parallel Tool Calls + description: Whether tool calls can be executed in parallel + default: false + previous_response_id: + anyOf: + - type: string + - type: 'null' + title: Previous Response Id + description: ID of the previous response in a conversation + prompt: + anyOf: + - $ref: '#/components/schemas/OpenAIResponsePrompt' + - type: 'null' + description: Reference to a prompt template and its variables. + status: + type: string + title: Status + description: Current status of the response generation + temperature: + anyOf: + - type: number + - type: 'null' + title: Temperature + description: Sampling temperature used for generation + text: + $ref: '#/components/schemas/OpenAIResponseText' + description: Text formatting configuration for the response + top_p: + anyOf: + - type: number + - type: 'null' + title: Top P + description: Nucleus sampling parameter used for generation + tools: + anyOf: + - items: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' + - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' + - $ref: '#/components/schemas/OpenAIResponseToolMCP' + discriminator: + propertyName: type + mapping: + file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' + function: '#/components/schemas/OpenAIResponseInputToolFunction' + mcp: '#/components/schemas/OpenAIResponseToolMCP' + web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' + web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' + type: array + - type: 'null' + title: Tools + description: An array of tools the model may call while generating a response. + truncation: + anyOf: + - type: string + - type: 'null' + title: Truncation + description: Truncation strategy applied to the response + usage: + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsage' + - type: 'null' + description: Token usage information for the response + instructions: + anyOf: + - type: string + - type: 'null' + title: Instructions + description: System message inserted into the model's context + input: + items: + anyOf: + - oneOf: + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + discriminator: + propertyName: type + mapping: + file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' + function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' + mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' + mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' + message: '#/components/schemas/OpenAIResponseMessage-Output' + web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' + - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' + - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' + - $ref: '#/components/schemas/OpenAIResponseMessage-Output' + type: array + title: Input + description: List of input items that led to this response + type: object + required: + - created_at + - id + - model + - output + - status + - input + title: OpenAIResponseObjectWithInput + description: "OpenAI response object extended with input context information.\n\n:param input: List of input items that led to this response" OpenAIResponseOutputMessageContentOutputText: properties: text: @@ -10684,49 +10743,61 @@ components: id: type: string title: Id + description: Unique identifier for this tool call queries: items: type: string type: array title: Queries + description: List of search queries executed status: type: string title: Status + description: Current status of the file search operation type: type: string const: file_search_call title: Type + description: Tool call type identifier, always "file_search_call" default: file_search_call results: + anyOf: + - items: + $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' + type: array + - type: 'null' title: Results - items: - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCallResults' - type: array + description: Search results returned by the file search operation type: object required: - id - queries - status title: OpenAIResponseOutputMessageFileSearchToolCall - description: File search tool call output message for OpenAI responses. + description: "File search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param queries: List of search queries executed\n:param status: Current status of the file search operation\n:param type: Tool call type identifier, always \"file_search_call\"\n:param results: (Optional) Search results returned by the file search operation" OpenAIResponseOutputMessageFileSearchToolCallResults: properties: attributes: additionalProperties: true type: object title: Attributes + description: Key-value attributes associated with the file file_id: type: string title: File Id + description: Unique identifier of the file containing the result filename: type: string title: Filename + description: Name of the file containing the result score: type: number title: Score + description: Relevance score for this search result (between 0 and 1) text: type: string title: Text + description: Text content of the search result type: object required: - attributes @@ -10735,61 +10806,82 @@ components: - score - text title: OpenAIResponseOutputMessageFileSearchToolCallResults - description: Search results returned by the file search operation. + description: "Search results returned by the file search operation.\n\n:param attributes: (Optional) Key-value attributes associated with the file\n:param file_id: Unique identifier of the file containing the result\n:param filename: Name of the file containing the result\n:param score: Relevance score for this search result (between 0 and 1)\n:param text: Text content of the search result" OpenAIResponseOutputMessageFunctionToolCall: properties: call_id: type: string title: Call Id + description: Unique identifier for the function call name: type: string title: Name + description: Name of the function being called arguments: type: string title: Arguments + description: JSON string containing the function arguments type: type: string const: function_call title: Type + description: Tool call type identifier, always "function_call" default: function_call id: + anyOf: + - type: string + - type: 'null' title: Id - type: string + description: Additional identifier for the tool call status: + anyOf: + - type: string + - type: 'null' title: Status - type: string + description: Current status of the function call execution type: object required: - call_id - name - arguments title: OpenAIResponseOutputMessageFunctionToolCall - description: Function tool call output message for OpenAI responses. + description: "Function tool call output message for OpenAI responses.\n\n:param call_id: Unique identifier for the function call\n:param name: Name of the function being called\n:param arguments: JSON string containing the function arguments\n:param type: Tool call type identifier, always \"function_call\"\n:param id: (Optional) Additional identifier for the tool call\n:param status: (Optional) Current status of the function call execution" OpenAIResponseOutputMessageMCPCall: properties: id: type: string title: Id + description: Unique identifier for this MCP call type: type: string const: mcp_call title: Type + description: Tool call type identifier, always "mcp_call" default: mcp_call arguments: type: string title: Arguments + description: JSON string containing the MCP call arguments name: type: string title: Name + description: Name of the MCP method being called server_label: type: string title: Server Label + description: Label identifying the MCP server handling the call error: + anyOf: + - type: string + - type: 'null' title: Error - type: string + description: Error message if the MCP call failed output: + anyOf: + - type: string + - type: 'null' title: Output - type: string + description: Output result from the successful MCP call type: object required: - id @@ -10797,85 +10889,102 @@ components: - name - server_label title: OpenAIResponseOutputMessageMCPCall - description: Model Context Protocol (MCP) call output message for OpenAI responses. + description: "Model Context Protocol (MCP) call output message for OpenAI responses.\n\n:param id: Unique identifier for this MCP call\n:param type: Tool call type identifier, always \"mcp_call\"\n:param arguments: JSON string containing the MCP call arguments\n:param name: Name of the MCP method being called\n:param server_label: Label identifying the MCP server handling the call\n:param error: (Optional) Error message if the MCP call failed\n:param output: (Optional) Output result from the successful MCP call" OpenAIResponseOutputMessageMCPListTools: properties: id: type: string title: Id + description: Unique identifier for this MCP list tools operation type: type: string const: mcp_list_tools title: Type + description: Tool call type identifier, always "mcp_list_tools" default: mcp_list_tools server_label: type: string title: Server Label + description: Label identifying the MCP server providing the tools tools: items: $ref: '#/components/schemas/MCPListToolsTool' type: array title: Tools + description: List of available tools provided by the MCP server type: object required: - id - server_label - tools title: OpenAIResponseOutputMessageMCPListTools - description: MCP list tools output message containing available tools from an MCP server. + description: "MCP list tools output message containing available tools from an MCP server.\n\n:param id: Unique identifier for this MCP list tools operation\n:param type: Tool call type identifier, always \"mcp_list_tools\"\n:param server_label: Label identifying the MCP server providing the tools\n:param tools: List of available tools provided by the MCP server" OpenAIResponseOutputMessageWebSearchToolCall: properties: id: type: string title: Id + description: Unique identifier for this tool call status: type: string title: Status + description: Current status of the web search operation type: type: string const: web_search_call title: Type + description: Tool call type identifier, always "web_search_call" default: web_search_call type: object required: - id - status title: OpenAIResponseOutputMessageWebSearchToolCall - description: Web search tool call output message for OpenAI responses. + description: "Web search tool call output message for OpenAI responses.\n\n:param id: Unique identifier for this tool call\n:param status: Current status of the web search operation\n:param type: Tool call type identifier, always \"web_search_call\"" OpenAIResponsePrompt: properties: id: type: string title: Id + description: Unique identifier of the prompt template variables: + anyOf: + - additionalProperties: + oneOf: + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' + - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' + discriminator: + propertyName: type + mapping: + input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' + input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' + input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' + type: object + - type: 'null' title: Variables - additionalProperties: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' - discriminator: - propertyName: type - mapping: - input_file: '#/components/schemas/OpenAIResponseInputMessageContentFile' - input_image: '#/components/schemas/OpenAIResponseInputMessageContentImage' - input_text: '#/components/schemas/OpenAIResponseInputMessageContentText' - type: object + description: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files. version: + anyOf: + - type: string + - type: 'null' title: Version - type: string + description: Version number of the prompt to use (defaults to latest if not specified) type: object required: - id title: OpenAIResponsePrompt - description: OpenAI compatible Prompt object that is used in OpenAI responses. + description: "OpenAI compatible Prompt object that is used in OpenAI responses.\n\n:param id: Unique identifier of the prompt template\n:param variables: Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types\nlike images or files.\n:param version: Version number of the prompt to use (defaults to latest if not specified)" OpenAIResponseText: properties: format: - $ref: '#/components/schemas/OpenAIResponseTextFormat' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseTextFormat' + - type: 'null' + description: Text format configuration specifying output format requirements type: object title: OpenAIResponseText - description: Text response configuration for OpenAI responses. + description: "Text response configuration for OpenAI responses.\n\n:param format: (Optional) Text format configuration specifying output format requirements" OpenAIResponseTextFormat: properties: type: @@ -10888,81 +10997,108 @@ components: const: json_object title: Type name: + anyOf: + - type: string + - type: 'null' title: Name - type: string schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Schema - additionalProperties: true - type: object description: + anyOf: + - type: string + - type: 'null' title: Description - type: string strict: + anyOf: + - type: boolean + - type: 'null' title: Strict - type: boolean type: object title: OpenAIResponseTextFormat - description: Configuration for Responses API text format. + description: "Configuration for Responses API text format.\n\n:param type: Must be \"text\", \"json_schema\", or \"json_object\" to identify the format type\n:param name: The name of the response format. Only used for json_schema.\n:param schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. Only used for json_schema.\n:param description: (Optional) A description of the response format. Only used for json_schema.\n:param strict: (Optional) Whether to strictly enforce the JSON schema. If true, the response must match the schema exactly. Only used for json_schema." OpenAIResponseToolMCP: properties: type: type: string const: mcp title: Type + description: Tool type identifier, always "mcp" default: mcp server_label: type: string title: Server Label + description: Label to identify this MCP server allowed_tools: anyOf: - items: type: string type: array - $ref: '#/components/schemas/AllowedToolsFilter' + - type: 'null' title: Allowed Tools + description: Restriction on which tools can be used from this server type: object required: - server_label title: OpenAIResponseToolMCP - description: Model Context Protocol (MCP) tool configuration for OpenAI response object. + description: "Model Context Protocol (MCP) tool configuration for OpenAI response object.\n\n:param type: Tool type identifier, always \"mcp\"\n:param server_label: Label to identify this MCP server\n:param allowed_tools: (Optional) Restriction on which tools can be used from this server" OpenAIResponseUsage: properties: input_tokens: type: integer title: Input Tokens + description: Number of tokens in the input output_tokens: type: integer title: Output Tokens + description: Number of tokens in the output total_tokens: type: integer title: Total Tokens + description: Total tokens used (input + output) input_tokens_details: - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageInputTokensDetails' + - type: 'null' + description: Detailed breakdown of input token usage output_tokens_details: - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + anyOf: + - $ref: '#/components/schemas/OpenAIResponseUsageOutputTokensDetails' + - type: 'null' + description: Detailed breakdown of output token usage type: object required: - input_tokens - output_tokens - total_tokens title: OpenAIResponseUsage - description: Usage information for OpenAI response. + description: "Usage information for OpenAI response.\n\n:param input_tokens: Number of tokens in the input\n:param output_tokens: Number of tokens in the output\n:param total_tokens: Total tokens used (input + output)\n:param input_tokens_details: Detailed breakdown of input token usage\n:param output_tokens_details: Detailed breakdown of output token usage" OpenAIResponseUsageInputTokensDetails: properties: cached_tokens: + anyOf: + - type: integer + - type: 'null' title: Cached Tokens - type: integer + description: Number of tokens retrieved from cache type: object title: OpenAIResponseUsageInputTokensDetails - description: Token details for input tokens in OpenAI response usage. + description: "Token details for input tokens in OpenAI response usage.\n\n:param cached_tokens: Number of tokens retrieved from cache" OpenAIResponseUsageOutputTokensDetails: properties: reasoning_tokens: + anyOf: + - type: integer + - type: 'null' title: Reasoning Tokens - type: integer + description: Number of tokens used for reasoning (o1/o3 models) type: object title: OpenAIResponseUsageOutputTokensDetails - description: Token details for output tokens in OpenAI response usage. + description: "Token details for output tokens in OpenAI response usage.\n\n:param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models)" OpenAISystemMessageParam: properties: role: @@ -10978,8 +11114,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -10991,10 +11129,12 @@ components: type: string title: Token bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' title: Bytes - items: - type: integer - type: array logprob: type: number title: Logprob @@ -11009,7 +11149,7 @@ components: - logprob - top_logprobs title: OpenAITokenLogProb - description: The log probability for a token from an OpenAI-compatible chat completion response. + description: "The log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token\n:top_logprobs: The top log probabilities for the token" OpenAIToolMessageParam: properties: role: @@ -11039,10 +11179,12 @@ components: type: string title: Token bytes: + anyOf: + - items: + type: integer + type: array + - type: 'null' title: Bytes - items: - type: integer - type: array logprob: type: number title: Logprob @@ -11051,7 +11193,7 @@ components: - token - logprob title: OpenAITopLogProb - description: The top log probability for a token from an OpenAI-compatible chat completion response. + description: "The top log probability for a token from an OpenAI-compatible chat completion response.\n\n:token: The token\n:bytes: (Optional) The bytes for the token\n:logprob: The log probability of the token" OpenAIUserMessageParam-Input: properties: role: @@ -11076,8 +11218,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -11107,8 +11251,10 @@ components: type: array title: Content name: + anyOf: + - type: string + - type: 'null' title: Name - type: string type: object required: - content @@ -11160,40 +11306,189 @@ components: required: - reasoning_tokens title: OutputTokensDetails + PaginatedResponse: + properties: + data: + items: + additionalProperties: true + type: object + type: array + title: Data + description: The list of items for the current page. + has_more: + type: boolean + title: Has More + description: Whether there are more items available after this set. + url: + anyOf: + - type: string + - type: 'null' + title: Url + description: The URL for accessing this list. + type: object + required: + - data + - has_more + - url + title: PaginatedResponse + description: A generic paginated response that follows a simple format. PostTrainingJob: properties: job_uuid: type: string title: Job Uuid + description: The UUID of the job type: object required: - job_uuid title: PostTrainingJob + PostTrainingJobArtifactsResponse: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + title: PostTrainingJobArtifactsResponse + description: Artifacts of a finetuning job. + PostTrainingJobStatusResponse: + properties: + job_uuid: + type: string + title: Job Uuid + status: + $ref: '#/components/schemas/JobStatus' + scheduled_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Scheduled At + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Started At + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + title: Completed At + resources_allocated: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Resources Allocated + checkpoints: + items: + $ref: '#/components/schemas/Checkpoint' + type: array + title: Checkpoints + type: object + required: + - job_uuid + - status + title: PostTrainingJobStatusResponse + description: Status of a finetuning job. + PostTrainingMetric: + properties: + epoch: + type: integer + title: Epoch + description: Training epoch number. + train_loss: + type: number + title: Train Loss + description: Loss value on the training dataset. + validation_loss: + type: number + title: Validation Loss + description: Loss value on the validation dataset. + perplexity: + type: number + title: Perplexity + description: Perplexity metric indicating model confidence. + type: object + required: + - epoch + - train_loss + - validation_loss + - perplexity + title: PostTrainingMetric + description: Training metrics captured during post-training jobs. + PreferenceOptimizeRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + finetuned_model: + type: string + title: Finetuned Model + description: The model to fine-tune + algorithm_config: + $ref: '#/components/schemas/DPOAlignmentConfig' + description: The algorithm configuration + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + type: object + required: + - job_uuid + - finetuned_model + - algorithm_config + - training_config + - hyperparam_search_config + - logger_config + title: PreferenceOptimizeRequest + description: Request to run preference optimization of a model. Prompt: properties: prompt: + anyOf: + - type: string + - type: 'null' title: Prompt - description: The system prompt with variable placeholders - type: string + description: The system prompt text with variable placeholders. Variables are only supported when using the Responses API. version: type: integer minimum: 1.0 title: Version - description: Version (integer starting at 1, incremented on save) + description: Version (integer starting at 1, incremented on save). prompt_id: type: string title: Prompt Id - description: Unique identifier in format 'pmpt_<48-digit-hash>' + description: Unique identifier formatted as 'pmpt_<48-digit-hash>'. variables: items: type: string type: array title: Variables - description: List of variable names that can be used in the prompt template + description: List of prompt variable names that can be used in the prompt template. is_default: type: boolean title: Is Default - description: Boolean indicating whether this version is the default version + description: Boolean indicating whether this version is the default version for this prompt. default: false type: object required: @@ -11206,20 +11501,25 @@ components: api: type: string title: Api + description: The API name this provider implements provider_id: type: string title: Provider Id + description: Unique identifier for the provider provider_type: type: string title: Provider Type + description: The type of provider implementation config: additionalProperties: true type: object title: Config + description: Configuration parameters for the provider health: additionalProperties: true type: object title: Health + description: Current health status of the provider type: object required: - api @@ -11229,6 +11529,67 @@ components: - health title: ProviderInfo description: Information about a registered provider including its configuration and health status. + QATFinetuningConfig: + properties: + type: + type: string + const: QAT + title: Type + default: QAT + quantizer_name: + type: string + title: Quantizer Name + group_size: + type: integer + title: Group Size + type: object + required: + - quantizer_name + - group_size + title: QATFinetuningConfig + description: Configuration for Quantization-Aware Training (QAT) fine-tuning. + QueryChunksRequest: + properties: + vector_store_id: + type: string + title: Vector Store Id + description: The identifier of the vector database to query. + query: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Query + description: The query to search for. + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the query. + type: object + required: + - vector_store_id + - query + title: QueryChunksRequest + description: Request to query chunks from a vector database. QueryChunksResponse: properties: chunks: @@ -11247,6 +11608,49 @@ components: - scores title: QueryChunksResponse description: Response from querying chunks in a vector database. + RAGDocument: + properties: + document_id: + type: string + title: Document Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + - $ref: '#/components/schemas/URL' + title: Content + mime_type: + anyOf: + - type: string + - type: 'null' + title: Mime Type + metadata: + additionalProperties: true + type: object + title: Metadata + type: object + required: + - document_id + - content + title: RAGDocument + description: "A document to be used for document ingestion in the RAG Tool.\n\n:param document_id: The unique identifier for the document.\n:param content: The content of the document.\n:param mime_type: The MIME type of the document.\n:param metadata: Additional metadata for the document." RAGQueryConfig: properties: query_generator_config: @@ -11275,21 +11679,25 @@ components: title: Chunk Template default: "Result {index}\nContent: {chunk.content}\nMetadata: {metadata}\n" mode: + anyOf: + - $ref: '#/components/schemas/RAGSearchMode' + - type: 'null' default: vector - $ref: '#/components/schemas/RAGSearchMode' ranker: + anyOf: + - oneOf: + - $ref: '#/components/schemas/RRFRanker' + - $ref: '#/components/schemas/WeightedRanker' + discriminator: + propertyName: type + mapping: + rrf: '#/components/schemas/RRFRanker' + weighted: '#/components/schemas/WeightedRanker' + - type: 'null' title: Ranker - oneOf: - - $ref: '#/components/schemas/RRFRanker' - - $ref: '#/components/schemas/WeightedRanker' - discriminator: - propertyName: type - mapping: - rrf: '#/components/schemas/RRFRanker' - weighted: '#/components/schemas/WeightedRanker' type: object title: RAGQueryConfig - description: Configuration for the RAG query generation. + description: "Configuration for the RAG query generation.\n\n:param query_generator_config: Configuration for the query generator.\n:param max_tokens_in_context: Maximum number of tokens in the context.\n:param max_chunks: Maximum number of chunks to retrieve.\n:param chunk_template: Template for formatting each retrieved chunk in the context.\n Available placeholders: {index} (1-based chunk ordinal), {chunk.content} (chunk content string), {metadata} (chunk metadata dict).\n Default: \"Result {index}\\nContent: {chunk.content}\\nMetadata: {metadata}\\n\"\n:param mode: Search mode for retrieval—either \"vector\", \"keyword\", or \"hybrid\". Default \"vector\".\n:param ranker: Configuration for the ranker to use in hybrid search. Defaults to RRF ranker." RAGQueryResult: properties: content: @@ -11313,6 +11721,7 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Content metadata: additionalProperties: true @@ -11320,7 +11729,7 @@ components: title: Metadata type: object title: RAGQueryResult - description: Result of a RAG query containing retrieved content and metadata. + description: "Result of a RAG query containing retrieved content and metadata.\n\n:param content: (Optional) The retrieved content from the query\n:param metadata: Additional metadata about the query result" RAGSearchMode: type: string enum: @@ -11343,7 +11752,7 @@ components: minimum: 0.0 type: object title: RRFRanker - description: Reciprocal Rank Fusion (RRF) ranker configuration. + description: "Reciprocal Rank Fusion (RRF) ranker configuration.\n\n:param type: The type of ranker, always \"rrf\"\n:param impact_factor: The impact factor for RRF scoring. Higher values give more weight to higher-ranked results.\n Must be greater than 0" RegexParserScoringFnParams: properties: type: @@ -11366,6 +11775,247 @@ components: type: object title: RegexParserScoringFnParams description: Parameters for regex parser scoring function configuration. + RegisterBenchmarkRequest: + properties: + benchmark_id: + type: string + title: Benchmark Id + description: The ID of the benchmark to register + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to use for the benchmark + scoring_functions: + items: + type: string + type: array + title: Scoring Functions + description: The scoring functions to use for the benchmark + provider_benchmark_id: + anyOf: + - type: string + - type: 'null' + title: Provider Benchmark Id + description: The ID of the provider benchmark to use for the benchmark + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the benchmark + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata to use for the benchmark + type: object + required: + - benchmark_id + - dataset_id + - scoring_functions + title: RegisterBenchmarkRequest + description: Request model for registering a benchmark. + RegisterDatasetRequest: + properties: + purpose: + $ref: '#/components/schemas/DatasetPurpose' + description: The purpose of the dataset + source: + oneOf: + - $ref: '#/components/schemas/URIDataSource' + - $ref: '#/components/schemas/RowsDataSource' + title: Source + description: The data source of the dataset + discriminator: + propertyName: type + mapping: + rows: '#/components/schemas/RowsDataSource' + uri: '#/components/schemas/URIDataSource' + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: The metadata for the dataset + dataset_id: + anyOf: + - type: string + - type: 'null' + title: Dataset Id + description: The ID of the dataset. If not provided, an ID will be generated + type: object + required: + - purpose + - source + title: RegisterDatasetRequest + description: Request model for registering a dataset. + RegisterModelRequest: + properties: + model_id: + type: string + title: Model Id + description: The identifier of the model to register. + provider_model_id: + anyOf: + - type: string + - type: 'null' + title: Provider Model Id + description: The identifier of the model in the provider. + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider. + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + description: Any additional metadata for this model. + model_type: + anyOf: + - $ref: '#/components/schemas/ModelType' + - type: 'null' + description: The type of model to register. + type: object + required: + - model_id + title: RegisterModelRequest + description: Request model for registering a new model. + RegisterScoringFunctionRequest: + properties: + scoring_fn_id: + type: string + title: Scoring Fn Id + description: The ID of the scoring function to register + description: + type: string + title: Description + description: The description of the scoring function + return_type: + oneOf: + - $ref: '#/components/schemas/StringType' + - $ref: '#/components/schemas/NumberType' + - $ref: '#/components/schemas/BooleanType' + - $ref: '#/components/schemas/ArrayType' + - $ref: '#/components/schemas/ObjectType' + - $ref: '#/components/schemas/JsonType' + - $ref: '#/components/schemas/UnionType' + - $ref: '#/components/schemas/ChatCompletionInputType' + - $ref: '#/components/schemas/CompletionInputType' + - $ref: '#/components/schemas/AgentTurnInputType' + title: Return Type + description: The return type of the scoring function + discriminator: + propertyName: type + mapping: + agent_turn_input: '#/components/schemas/AgentTurnInputType' + array: '#/components/schemas/ArrayType' + boolean: '#/components/schemas/BooleanType' + chat_completion_input: '#/components/schemas/ChatCompletionInputType' + completion_input: '#/components/schemas/CompletionInputType' + json: '#/components/schemas/JsonType' + number: '#/components/schemas/NumberType' + object: '#/components/schemas/ObjectType' + string: '#/components/schemas/StringType' + union: '#/components/schemas/UnionType' + provider_scoring_fn_id: + anyOf: + - type: string + - type: 'null' + title: Provider Scoring Fn Id + description: The ID of the provider scoring function to use for the scoring function + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The ID of the provider to use for the scoring function + params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + title: Params + description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval + type: object + required: + - scoring_fn_id + - description + - return_type + title: RegisterScoringFunctionRequest + description: Request model for registering a scoring function. + RegisterShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to register + provider_shield_id: + anyOf: + - type: string + - type: 'null' + title: Provider Shield Id + description: The identifier of the shield in the provider + provider_id: + anyOf: + - type: string + - type: 'null' + title: Provider Id + description: The identifier of the provider + params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Params + description: The parameters of the shield + type: object + required: + - shield_id + title: RegisterShieldRequest + description: Request model for registering a shield. + RegisterToolGroupRequest: + properties: + toolgroup_id: + type: string + title: Toolgroup Id + description: The ID of the tool group to register + provider_id: + type: string + title: Provider Id + description: The ID of the provider to use for the tool group + mcp_endpoint: + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: The MCP endpoint to use for the tool group + args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Args + description: A dictionary of arguments to pass to the tool group + type: object + required: + - toolgroup_id + - provider_id + title: RegisterToolGroupRequest + description: Request model for registering a tool group. RerankData: properties: index: @@ -11392,19 +12042,33 @@ components: - data title: RerankResponse description: Response from a reranking request. + ResponseGuardrailSpec: + properties: + type: + type: string + title: Type + description: The type/identifier of the guardrail. + type: object + required: + - type + title: ResponseGuardrailSpec + description: Specification for a guardrail to apply during response generation. RouteInfo: properties: route: type: string title: Route + description: The API endpoint path method: type: string title: Method + description: HTTP method for the route provider_types: items: type: string type: array title: Provider Types + description: List of provider types that implement this route type: object required: - route @@ -11418,6 +12082,7 @@ components: type: string const: rows title: Type + description: The type of data source default: rows rows: items: @@ -11425,15 +12090,77 @@ components: type: object type: array title: Rows + description: "The dataset is stored in rows. E.g. [{'messages': [{'role': 'user', 'content': 'Hello, world!'}, {'role': 'assistant', 'content': 'Hello, world!'}]}]" type: object required: - rows title: RowsDataSource description: A dataset stored in rows. + RunModerationRequest: + properties: + input: + anyOf: + - type: string + - items: + type: string + type: array + title: Input + description: Input (or inputs) to classify. Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models. + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: The content moderation model you would like to use. + type: object + required: + - input + title: RunModerationRequest + description: Request model for running moderation. + RunShieldRequest: + properties: + shield_id: + type: string + title: Shield Id + description: The identifier of the shield to run. + messages: + items: + oneOf: + - $ref: '#/components/schemas/OpenAIUserMessageParam-Input' + - $ref: '#/components/schemas/OpenAISystemMessageParam' + - $ref: '#/components/schemas/OpenAIAssistantMessageParam-Input' + - $ref: '#/components/schemas/OpenAIToolMessageParam' + - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAIAssistantMessageParam-Input' + developer: '#/components/schemas/OpenAIDeveloperMessageParam' + system: '#/components/schemas/OpenAISystemMessageParam' + tool: '#/components/schemas/OpenAIToolMessageParam' + user: '#/components/schemas/OpenAIUserMessageParam-Input' + type: array + title: Messages + description: The messages to run the shield on. + params: + additionalProperties: true + type: object + title: Params + description: The parameters of the shield. + type: object + required: + - shield_id + - messages + - params + title: RunShieldRequest + description: Request model for running a shield. RunShieldResponse: properties: violation: - $ref: '#/components/schemas/SafetyViolation' + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: Safety violation detected by the shield, if any. type: object title: RunShieldResponse description: Response from running a safety shield. @@ -11441,13 +12168,18 @@ components: properties: violation_level: $ref: '#/components/schemas/ViolationLevel' + description: Severity level of the violation. user_message: + anyOf: + - type: string + - type: 'null' title: User Message - type: string + description: Message to convey to the user about the violation. metadata: additionalProperties: true type: object title: Metadata + description: Additional metadata including specific violation codes for debugging and telemetry. type: object required: - violation_level @@ -11468,35 +12200,111 @@ components: top_k: '#/components/schemas/TopKSamplingStrategy' top_p: '#/components/schemas/TopPSamplingStrategy' max_tokens: + anyOf: + - type: integer + - type: 'null' title: Max Tokens - type: integer repetition_penalty: + anyOf: + - type: number + - type: 'null' title: Repetition Penalty default: 1.0 - type: number stop: + anyOf: + - items: + type: string + type: array + - type: 'null' title: Stop - items: - type: string - type: array type: object title: SamplingParams description: Sampling parameters. + ScoreBatchRequest: + properties: + dataset_id: + type: string + title: Dataset Id + description: The ID of the dataset to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + save_results_dataset: + type: boolean + title: Save Results Dataset + description: Whether to save the results to a dataset + default: false + type: object + required: + - dataset_id + - scoring_functions + title: ScoreBatchRequest + description: Request for batch scoring operations. ScoreBatchResponse: properties: dataset_id: + anyOf: + - type: string + - type: 'null' title: Dataset Id - type: string + description: The identifier of the dataset that was scored results: additionalProperties: $ref: '#/components/schemas/ScoringResult' type: object title: Results + description: A map of scoring function name to ScoringResult type: object required: - results title: ScoreBatchResponse description: Response from batch scoring operations on datasets. + ScoreRequest: + properties: + input_rows: + items: + additionalProperties: true + type: object + type: array + title: Input Rows + description: The rows to score + scoring_functions: + additionalProperties: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' + type: object + title: Scoring Functions + description: The scoring functions to use for the scoring + type: object + required: + - input_rows + - scoring_functions + title: ScoreRequest + description: Request for scoring a list of rows. ScoreResponse: properties: results: @@ -11504,21 +12312,24 @@ components: $ref: '#/components/schemas/ScoringResult' type: object title: Results + description: A map of scoring function name to ScoringResult type: object required: - results title: ScoreResponse description: The response from scoring. - ScoringFn-Output: + ScoringFn: properties: identifier: type: string title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11529,8 +12340,10 @@ components: title: Type default: scoring_function description: + anyOf: + - type: string + - type: 'null' title: Description - type: string metadata: additionalProperties: true type: object @@ -11564,18 +12377,20 @@ components: string: '#/components/schemas/StringType' union: '#/components/schemas/UnionType' params: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' + - $ref: '#/components/schemas/RegexParserScoringFnParams' + - $ref: '#/components/schemas/BasicScoringFnParams' + discriminator: + propertyName: type + mapping: + basic: '#/components/schemas/BasicScoringFnParams' + llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' + regex_parser: '#/components/schemas/RegexParserScoringFnParams' + - type: 'null' title: Params description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval - oneOf: - - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' - - $ref: '#/components/schemas/RegexParserScoringFnParams' - - $ref: '#/components/schemas/BasicScoringFnParams' - discriminator: - propertyName: type - mapping: - basic: '#/components/schemas/BasicScoringFnParams' - llm_as_judge: '#/components/schemas/LLMAsJudgeScoringFnParams' - regex_parser: '#/components/schemas/RegexParserScoringFnParams' type: object required: - identifier @@ -11591,10 +12406,12 @@ components: type: object type: array title: Score Rows + description: The scoring result for each row. Each row is a map of column name to value aggregated_results: additionalProperties: true type: object title: Aggregated Results + description: Map of metric name to aggregated value type: object required: - score_rows @@ -11604,15 +12421,59 @@ components: SearchRankingOptions: properties: ranker: + anyOf: + - type: string + - type: 'null' title: Ranker - type: string score_threshold: + anyOf: + - type: number + - type: 'null' title: Score Threshold default: 0.0 - type: number type: object title: SearchRankingOptions description: Options for ranking and filtering search results. + Session: + properties: + session_id: + type: string + title: Session Id + description: Unique identifier for the conversation session + session_name: + type: string + title: Session Name + description: Human-readable name for the session + turns: + items: + $ref: '#/components/schemas/Turn' + type: array + title: Turns + description: List of all turns that have occurred in this session + started_at: + type: string + format: date-time + title: Started At + description: Timestamp when the session was created + type: object + required: + - session_id + - session_name + - turns + - started_at + title: Session + description: A single session of an interaction with an Agentic System. + SetDefaultVersionRequest: + properties: + version: + type: integer + title: Version + description: The version to set as default. + type: object + required: + - version + title: SetDefaultVersionRequest + description: Request model for setting a prompt version as default. Shield: properties: identifier: @@ -11620,9 +12481,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11631,11 +12494,15 @@ components: type: string const: shield title: Type + description: The resource type, always shield default: shield params: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Params - additionalProperties: true - type: object + description: Configuration parameters for the shield type: object required: - identifier @@ -11647,29 +12514,39 @@ components: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: shield_call title: Step Type default: shield_call violation: - $ref: '#/components/schemas/SafetyViolation' + anyOf: + - $ref: '#/components/schemas/SafetyViolation' + - type: 'null' + description: The violation from the shield call. type: object required: - turn_id - step_id - - violation title: ShieldCallStep description: A shield call step in an agent turn. StopReason: @@ -11688,7 +12565,59 @@ components: default: string type: object title: StringType - description: Parameter type for string values. + description: "Parameter type for string values.\n\n:param type: Discriminator type. Always \"string\"" + SupervisedFineTuneRequest: + properties: + job_uuid: + type: string + title: Job Uuid + description: The UUID of the job to create + training_config: + $ref: '#/components/schemas/TrainingConfig' + description: The training configuration + hyperparam_search_config: + additionalProperties: true + type: object + title: Hyperparam Search Config + description: The hyperparam search configuration + logger_config: + additionalProperties: true + type: object + title: Logger Config + description: The logger configuration + model: + anyOf: + - type: string + - type: 'null' + title: Model + description: Model descriptor for training if not in provider config` + checkpoint_dir: + anyOf: + - type: string + - type: 'null' + title: Checkpoint Dir + description: The directory to save checkpoint(s) to + algorithm_config: + anyOf: + - oneOf: + - $ref: '#/components/schemas/LoraFinetuningConfig' + - $ref: '#/components/schemas/QATFinetuningConfig' + discriminator: + propertyName: type + mapping: + LoRA: '#/components/schemas/LoraFinetuningConfig' + QAT: '#/components/schemas/QATFinetuningConfig' + - type: 'null' + title: Algorithm Config + description: The algorithm configuration + type: object + required: + - job_uuid + - training_config + - hyperparam_search_config + - logger_config + title: SupervisedFineTuneRequest + description: Request to run supervised fine-tuning of a model. SystemMessage: properties: role: @@ -11729,7 +12658,7 @@ components: - append - replace title: SystemMessageBehavior - description: Config for how to override the default system prompt. + description: "Config for how to override the default system prompt.\n\nhttps://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt-\n'{{function_definitions}}' to indicate where the function definitions should be inserted." TextContentItem: properties: type: @@ -11744,7 +12673,7 @@ components: required: - text title: TextContentItem - description: A text content item + description: A text content item. ToolCall: properties: call_id: @@ -11778,39 +12707,60 @@ components: anyOf: - $ref: '#/components/schemas/ToolChoice' - type: string + - type: 'null' title: Tool Choice default: auto tool_prompt_format: - $ref: '#/components/schemas/ToolPromptFormat' + anyOf: + - $ref: '#/components/schemas/ToolPromptFormat' + - type: 'null' system_message_behavior: + anyOf: + - $ref: '#/components/schemas/SystemMessageBehavior' + - type: 'null' default: append - $ref: '#/components/schemas/SystemMessageBehavior' type: object title: ToolConfig - description: Configuration for tool use. + description: "Configuration for tool use.\n\n- `ToolPromptFormat.json`: The tool calls are formatted as a JSON object.\n- `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag.\n- `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls.\n- `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt.\n- `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string\n '{{function_definitions}}' to indicate where the function definitions should be inserted." ToolDef: properties: toolgroup_id: + anyOf: + - type: string + - type: 'null' title: Toolgroup Id - type: string + description: ID of the tool group this tool belongs to name: type: string title: Name + description: Name of the tool description: + anyOf: + - type: string + - type: 'null' title: Description - type: string + description: Human-readable description of what the tool does input_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Input Schema - additionalProperties: true - type: object + description: JSON Schema for tool inputs (MCP inputSchema) output_schema: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Output Schema - additionalProperties: true - type: object + description: JSON Schema for tool outputs (MCP outputSchema) metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object + description: Additional metadata about the tool type: object required: - name @@ -11821,17 +12771,25 @@ components: turn_id: type: string title: Turn Id + description: The ID of the turn. step_id: type: string title: Step Id + description: The ID of the step. started_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Started At - type: string - format: date-time + description: The time the step started. completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: The time the step completed. step_type: type: string const: tool_execution @@ -11842,11 +12800,13 @@ components: $ref: '#/components/schemas/ToolCall' type: array title: Tool Calls + description: The tool calls to execute. tool_responses: items: $ref: '#/components/schemas/ToolResponse-Output' type: array title: Tool Responses + description: The tool responses from the tool calls. type: object required: - turn_id @@ -11862,9 +12822,11 @@ components: title: Identifier description: Unique identifier for this resource in llama stack provider_resource_id: + anyOf: + - type: string + - type: 'null' title: Provider Resource Id description: Unique identifier for this resource in the provider - type: string provider_id: type: string title: Provider Id @@ -11873,13 +12835,20 @@ components: type: string const: tool_group title: Type + description: Type of resource, always 'tool_group' default: tool_group mcp_endpoint: - $ref: '#/components/schemas/URL' + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' + description: Model Context Protocol endpoint for remote tools args: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Args - additionalProperties: true - type: object + description: Additional arguments for the tool group type: object required: - identifier @@ -11909,17 +12878,28 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Content + description: The output content from the tool execution error_message: + anyOf: + - type: string + - type: 'null' title: Error Message - type: string + description: Error message if the tool execution failed error_code: + anyOf: + - type: integer + - type: 'null' title: Error Code - type: integer + description: Numeric error code if the tool execution failed metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object + description: Additional metadata about the tool execution type: object title: ToolInvocationResult description: Result of a tool invocation. @@ -11930,7 +12910,7 @@ components: - function_tag - python_list title: ToolPromptFormat - description: Prompt format for calling custom / zero shot tools. + description: "Prompt format for calling custom / zero shot tools.\n\n:cvar json: JSON format for calling tools. It takes the form:\n {\n \"type\": \"function\",\n \"function\" : {\n \"name\": \"function_name\",\n \"description\": \"function_description\",\n \"parameters\": {...}\n }\n }\n:cvar function_tag: Function tag format, pseudo-XML. This looks like:\n (parameters)\n\n:cvar python_list: Python list. The output is a valid Python expression that can be\n evaluated to a list. Each element in the list is a function call. Example:\n [\"function_name(param1, param2)\", \"function_name(param1, param2)\"]" ToolResponse-Input: properties: call_id: @@ -11964,9 +12944,11 @@ components: type: array title: Content metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object type: object required: - call_id @@ -12007,9 +12989,11 @@ components: type: array title: Content metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Metadata - additionalProperties: true - type: object type: object required: - call_id @@ -12017,6 +13001,44 @@ components: - content title: ToolResponse description: Response from a tool invocation. + ToolResponseMessage-Input: + properties: + role: + type: string + const: tool + title: Role + default: tool + call_id: + type: string + title: Call Id + content: + anyOf: + - type: string + - oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + - items: + oneOf: + - $ref: '#/components/schemas/ImageContentItem-Input' + - $ref: '#/components/schemas/TextContentItem' + discriminator: + propertyName: type + mapping: + image: '#/components/schemas/ImageContentItem-Input' + text: '#/components/schemas/TextContentItem' + type: array + title: Content + type: object + required: + - call_id + - content + title: ToolResponseMessage + description: A message representing the result of a tool invocation. ToolResponseMessage-Output: properties: role: @@ -12079,13 +13101,17 @@ components: title: Type default: top_p temperature: + anyOf: + - type: number + minimum: 0.0 + - type: 'null' title: Temperature - type: number - minimum: 0.0 top_p: + anyOf: + - type: number + - type: 'null' title: Top P default: 0.95 - type: number type: object required: - temperature @@ -12105,19 +13131,29 @@ components: title: Gradient Accumulation Steps default: 1 max_validation_steps: + anyOf: + - type: integer + - type: 'null' title: Max Validation Steps default: 1 - type: integer data_config: - $ref: '#/components/schemas/DataConfig' + anyOf: + - $ref: '#/components/schemas/DataConfig' + - type: 'null' optimizer_config: - $ref: '#/components/schemas/OptimizerConfig' + anyOf: + - $ref: '#/components/schemas/OptimizerConfig' + - type: 'null' efficiency_config: - $ref: '#/components/schemas/EfficiencyConfig' + anyOf: + - $ref: '#/components/schemas/EfficiencyConfig' + - type: 'null' dtype: + anyOf: + - type: string + - type: 'null' title: Dtype default: bf16 - type: string type: object required: - n_epochs @@ -12128,9 +13164,11 @@ components: turn_id: type: string title: Turn Id + description: Unique identifier for the turn within a session session_id: type: string title: Session Id + description: Unique identifier for the conversation session input_messages: items: anyOf: @@ -12138,6 +13176,7 @@ components: - $ref: '#/components/schemas/ToolResponseMessage-Output' type: array title: Input Messages + description: List of messages that initiated this turn steps: items: oneOf: @@ -12154,21 +13193,30 @@ components: tool_execution: '#/components/schemas/ToolExecutionStep-Output' type: array title: Steps + description: Ordered list of processing steps executed during this turn output_message: $ref: '#/components/schemas/CompletionMessage-Output' + description: The model's generated response containing content and metadata output_attachments: + anyOf: + - items: + $ref: '#/components/schemas/Attachment-Output' + type: array + - type: 'null' title: Output Attachments - items: - $ref: '#/components/schemas/Attachment-Output' - type: array + description: Files or media attached to the agent's response started_at: type: string format: date-time title: Started At + description: Timestamp when the turn began completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' title: Completed At - type: string - format: date-time + description: Timestamp when the turn finished, if completed type: object required: - turn_id @@ -12185,10 +13233,12 @@ components: type: string const: uri title: Type + description: The type of data source default: uri uri: type: string title: Uri + description: The dataset can be obtained from a URI. E.g. 'https://mywebsite.com/mydata.jsonl', 'lsfs://mydata.jsonl', 'data:csv;base64,{base64_content}' type: object required: - uri @@ -12213,7 +13263,36 @@ components: default: union type: object title: UnionType - description: Parameter type for union values. + description: "Parameter type for union values.\n\n:param type: Discriminator type. Always \"union\"" + UpdatePromptRequest: + properties: + prompt: + type: string + title: Prompt + description: The updated prompt text content. + version: + type: integer + title: Version + description: The current version of the prompt being updated. + variables: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Variables + description: Updated list of variable names that can be used in the prompt template. + set_as_default: + type: boolean + title: Set As Default + description: Set the new version as the default (default=True). + default: true + type: object + required: + - prompt + - version + title: UpdatePromptRequest + description: Request model for updating an existing prompt. UserMessage-Input: properties: role: @@ -12264,6 +13343,7 @@ components: image: '#/components/schemas/ImageContentItem-Input' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Context type: object required: @@ -12320,6 +13400,7 @@ components: image: '#/components/schemas/ImageContentItem-Output' text: '#/components/schemas/TextContentItem' type: array + - type: 'null' title: Context type: object required: @@ -12380,6 +13461,24 @@ components: - text title: VectorStoreContent description: Content item from a vector store file or search result. + VectorStoreDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreDeleteResponse + description: Response from deleting a vector store. VectorStoreFileBatchObject: properties: id: @@ -12417,6 +13516,31 @@ components: - file_counts title: VectorStoreFileBatchObject description: OpenAI Vector Store File Batch object. + VectorStoreFileContentsResponse: + properties: + file_id: + type: string + title: File Id + filename: + type: string + title: Filename + attributes: + additionalProperties: true + type: object + title: Attributes + content: + items: + $ref: '#/components/schemas/VectorStoreContent' + type: array + title: Content + type: object + required: + - file_id + - filename + - attributes + - content + title: VectorStoreFileContentsResponse + description: Response from retrieving the contents of a vector store file. VectorStoreFileCounts: properties: completed: @@ -12443,6 +13567,24 @@ components: - total title: VectorStoreFileCounts description: File processing status counts for a vector store. + VectorStoreFileDeleteResponse: + properties: + id: + type: string + title: Id + object: + type: string + title: Object + default: vector_store.file.deleted + deleted: + type: boolean + title: Deleted + default: true + type: object + required: + - id + title: VectorStoreFileDeleteResponse + description: Response from deleting a vector store file. VectorStoreFileLastError: properties: code: @@ -12488,7 +13630,9 @@ components: type: integer title: Created At last_error: - $ref: '#/components/schemas/VectorStoreFileLastError' + anyOf: + - $ref: '#/components/schemas/VectorStoreFileLastError' + - type: 'null' status: anyOf: - type: string @@ -12516,6 +13660,118 @@ components: - vector_store_id title: VectorStoreFileObject description: OpenAI Vector Store File object. + VectorStoreFilesListInBatchResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreFilesListInBatchResponse + description: Response from listing files in a vector store file batch. + VectorStoreListFilesResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreFileObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListFilesResponse + description: Response from listing files in a vector store. + VectorStoreListResponse: + properties: + object: + type: string + title: Object + default: list + data: + items: + $ref: '#/components/schemas/VectorStoreObject' + type: array + title: Data + first_id: + anyOf: + - type: string + - type: 'null' + title: First Id + last_id: + anyOf: + - type: string + - type: 'null' + title: Last Id + has_more: + type: boolean + title: Has More + default: false + type: object + required: + - data + title: VectorStoreListResponse + description: Response from listing vector stores. + VectorStoreModifyRequest: + properties: + name: + anyOf: + - type: string + - type: 'null' + title: Name + expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Expires After + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + title: Metadata + type: object + title: VectorStoreModifyRequest + description: Request to modify a vector store. VectorStoreObject: properties: id: @@ -12529,8 +13785,10 @@ components: type: integer title: Created At name: + anyOf: + - type: string + - type: 'null' title: Name - type: string usage_bytes: type: integer title: Usage Bytes @@ -12542,15 +13800,21 @@ components: title: Status default: completed expires_after: + anyOf: + - additionalProperties: true + type: object + - type: 'null' title: Expires After - additionalProperties: true - type: object expires_at: + anyOf: + - type: integer + - type: 'null' title: Expires At - type: integer last_active_at: + anyOf: + - type: integer + - type: 'null' title: Last Active At - type: integer metadata: additionalProperties: true type: object @@ -12574,13 +13838,15 @@ components: type: number title: Score attributes: + anyOf: + - additionalProperties: + anyOf: + - type: string + - type: number + - type: boolean + type: object + - type: 'null' title: Attributes - additionalProperties: - anyOf: - - type: string - - type: number - - type: boolean - type: object content: items: $ref: '#/components/schemas/VectorStoreContent' @@ -12613,8 +13879,10 @@ components: title: Has More default: false next_page: + anyOf: + - type: string + - type: 'null' title: Next Page - type: string type: object required: - search_query @@ -12626,6 +13894,7 @@ components: version: type: string title: Version + description: Version number of the service type: object required: - version @@ -12638,7 +13907,7 @@ components: - warn - error title: ViolationLevel - description: Severity level of a safety violation. + description: "Severity level of a safety violation.\n\n:cvar INFO: Informational level violation that does not require action\n:cvar WARN: Warning level violation that suggests caution but allows continuation\n:cvar ERROR: Error level violation that requires blocking or intervention" WeightedRanker: properties: type: @@ -12655,6205 +13924,19 @@ components: default: 0.5 type: object title: WeightedRanker - description: Weighted ranker configuration that combines vector and keyword scores. + description: "Weighted ranker configuration that combines vector and keyword scores.\n\n:param type: The type of ranker, always \"weighted\"\n:param alpha: Weight factor between 0 and 1.\n 0 means only use keyword scores,\n 1 means only use vector scores,\n values in between blend both scores." _URLOrData: properties: url: - $ref: '#/components/schemas/URL' + anyOf: + - $ref: '#/components/schemas/URL' + - type: 'null' data: + anyOf: + - type: string + - type: 'null' contentEncoding: base64 title: Data - type: string type: object title: _URLOrData - description: A URL or a base64 encoded string - __main_____agents_agent_id_session_Request: - properties: - agent_id: - type: string - title: Agent Id - session_name: - type: string - title: Session Name - type: object - required: - - agent_id - - session_name - title: _agents_agent_id_session_Request - __main_____agents_agent_id_session_session_id_turn_Request: - properties: - agent_id: - type: string - title: Agent Id - session_id: - type: string - title: Session Id - messages: - $ref: '#/components/schemas/UserMessage-Input' - stream: - type: boolean - title: Stream - default: false - documents: - $ref: '#/components/schemas/Document' - toolgroups: - anyOf: - - type: string - - $ref: '#/components/schemas/AgentToolGroupWithArgs' - title: Toolgroups - tool_config: - $ref: '#/components/schemas/ToolConfig' - type: object - required: - - agent_id - - session_id - - messages - - documents - - toolgroups - - tool_config - title: _agents_agent_id_session_session_id_turn_Request - __main_____agents_agent_id_session_session_id_turn_turn_id_resume_Request: - properties: - agent_id: - type: string - title: Agent Id - session_id: - type: string - title: Session Id - turn_id: - type: string - title: Turn Id - tool_responses: - $ref: '#/components/schemas/ToolResponse-Input' - stream: - type: boolean - title: Stream - default: false - type: object - required: - - agent_id - - session_id - - turn_id - - tool_responses - title: _agents_agent_id_session_session_id_turn_turn_id_resume_Request - __main_____datasets_Request: - properties: - purpose: - $ref: '#/components/schemas/DatasetPurpose' - metadata: - type: string - title: Metadata - dataset_id: - type: string - title: Dataset Id - type: object - required: - - purpose - - metadata - - dataset_id - title: _datasets_Request - _batches_Request: - properties: - input_file_id: - type: string - title: Input File Id - endpoint: - type: string - title: Endpoint - completion_window: - type: string - title: Completion Window - metadata: - type: string - title: Metadata - idempotency_key: - type: string - title: Idempotency Key - type: object - required: - - input_file_id - - endpoint - - completion_window - - metadata - - idempotency_key - title: _batches_Request - _batches_batch_id_cancel_Request: - properties: - batch_id: - type: string - title: Batch Id - type: object - required: - - batch_id - title: _batches_batch_id_cancel_Request - _conversations_Request: - properties: - items: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage-Input' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - title: Items - discriminator: - propertyName: type - mapping: - file_search_call: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - function_call_output: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - mcp_approval_request: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - mcp_approval_response: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - mcp_call: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - message: '#/components/schemas/OpenAIResponseMessage-Input' - web_search_call: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - metadata: - type: string - title: Metadata - type: object - required: - - items - - metadata - title: _conversations_Request - _conversations_conversation_id_Request: - properties: - conversation_id: - type: string - title: Conversation Id - metadata: - type: string - title: Metadata - type: object - required: - - conversation_id - - metadata - title: _conversations_conversation_id_Request - _conversations_conversation_id_items_Request: - properties: - conversation_id: - type: string - title: Conversation Id - items: - anyOf: - - $ref: '#/components/schemas/OpenAIResponseMessage-Input' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - title: Items - type: object - required: - - conversation_id - - items - title: _conversations_conversation_id_items_Request - _inference_rerank_Request: - properties: - model: - type: string - title: Model - query: - type: string - title: Query - items: - type: string - title: Items - max_num_results: - type: integer - title: Max Num Results - type: object - required: - - model - - query - - items - - max_num_results - title: _inference_rerank_Request - _models_Request: - properties: - model_id: - type: string - title: Model Id - provider_model_id: - type: string - title: Provider Model Id - provider_id: - type: string - title: Provider Id - metadata: - type: string - title: Metadata - model_type: - $ref: '#/components/schemas/ModelType' - type: object - required: - - model_id - - provider_model_id - - provider_id - - metadata - - model_type - title: _models_Request - _moderations_Request: - properties: - input: - type: string - title: Input - model: - type: string - title: Model - type: object - required: - - input - - model - title: _moderations_Request - _prompts_Request: - properties: - prompt: - type: string - title: Prompt - variables: - type: string - title: Variables - type: object - required: - - prompt - - variables - title: _prompts_Request - _prompts_prompt_id_Request: - properties: - prompt_id: - type: string - title: Prompt Id - prompt: - type: string - title: Prompt - version: - type: integer - title: Version - variables: - type: string - title: Variables - set_as_default: - type: boolean - title: Set As Default - default: true - type: object - required: - - prompt_id - - prompt - - version - - variables - title: _prompts_prompt_id_Request - _prompts_prompt_id_set_default_version_Request: - properties: - prompt_id: - type: string - title: Prompt Id - version: - type: integer - title: Version - type: object - required: - - prompt_id - - version - title: _prompts_prompt_id_set_default_version_Request - _responses_Request: - properties: - input: - type: string - title: Input - model: - type: string - title: Model - prompt: - $ref: '#/components/schemas/OpenAIResponsePrompt' - instructions: - type: string - title: Instructions - previous_response_id: - type: string - title: Previous Response Id - conversation: - type: string - title: Conversation - store: - type: boolean - title: Store - default: true - stream: - type: boolean - title: Stream - default: false - temperature: - type: number - title: Temperature - text: - $ref: '#/components/schemas/OpenAIResponseText' - tools: - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseInputToolMCP' - title: Tools - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAIResponseInputToolFileSearch' - function: '#/components/schemas/OpenAIResponseInputToolFunction' - mcp: '#/components/schemas/OpenAIResponseInputToolMCP' - web_search: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/components/schemas/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/components/schemas/OpenAIResponseInputToolWebSearch' - include: - type: string - title: Include - max_infer_iters: - type: integer - title: Max Infer Iters - default: 10 - type: object - required: - - input - - model - - prompt - - instructions - - previous_response_id - - conversation - - temperature - - text - - tools - - include - title: _responses_Request - _scoring_score_Request: - properties: - input_rows: - type: string - title: Input Rows - scoring_functions: - type: string - title: Scoring Functions - type: object - required: - - input_rows - - scoring_functions - title: _scoring_score_Request - _scoring_score_batch_Request: - properties: - dataset_id: - type: string - title: Dataset Id - scoring_functions: - type: string - title: Scoring Functions - save_results_dataset: - type: boolean - title: Save Results Dataset - default: false - type: object - required: - - dataset_id - - scoring_functions - title: _scoring_score_batch_Request - _shields_Request: - properties: - shield_id: - type: string - title: Shield Id - provider_shield_id: - type: string - title: Provider Shield Id - provider_id: - type: string - title: Provider Id - params: - type: string - title: Params - type: object - required: - - shield_id - - provider_shield_id - - provider_id - - params - title: _shields_Request - _tool_runtime_invoke_Request: - properties: - tool_name: - type: string - title: Tool Name - kwargs: - type: string - title: Kwargs - type: object - required: - - tool_name - - kwargs - title: _tool_runtime_invoke_Request - _tool_runtime_rag_tool_query_Request: - properties: - content: - type: string - title: Content - vector_store_ids: - type: string - title: Vector Store Ids - query_config: - $ref: '#/components/schemas/RAGQueryConfig' - type: object - required: - - content - - vector_store_ids - - query_config - title: _tool_runtime_rag_tool_query_Request - _vector_io_query_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - query: - type: string - title: Query - params: - type: string - title: Params - type: object - required: - - vector_store_id - - query - - params - title: _vector_io_query_Request - _vector_stores_vector_store_id_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - name: - type: string - title: Name - expires_after: - type: string - title: Expires After - metadata: - type: string - title: Metadata - type: object - required: - - vector_store_id - - name - - expires_after - - metadata - title: _vector_stores_vector_store_id_Request - _vector_stores_vector_store_id_file_batches_batch_id_cancel_Request: - properties: - batch_id: - type: string - title: Batch Id - vector_store_id: - type: string - title: Vector Store Id - type: object - required: - - batch_id - - vector_store_id - title: _vector_stores_vector_store_id_file_batches_batch_id_cancel_Request - _vector_stores_vector_store_id_files_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - file_id: - type: string - title: File Id - attributes: - type: string - title: Attributes - chunking_strategy: - anyOf: - - $ref: '#/components/schemas/VectorStoreChunkingStrategyAuto' - - $ref: '#/components/schemas/VectorStoreChunkingStrategyStatic' - title: Chunking Strategy - type: object - required: - - vector_store_id - - file_id - - attributes - - chunking_strategy - title: _vector_stores_vector_store_id_files_Request - _vector_stores_vector_store_id_files_file_id_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - file_id: - type: string - title: File Id - attributes: - type: string - title: Attributes - type: object - required: - - vector_store_id - - file_id - - attributes - title: _vector_stores_vector_store_id_files_file_id_Request - _vector_stores_vector_store_id_search_Request: - properties: - vector_store_id: - type: string - title: Vector Store Id - query: - type: string - title: Query - filters: - type: string - title: Filters - max_num_results: - type: integer - title: Max Num Results - default: 10 - ranking_options: - $ref: '#/components/schemas/SearchRankingOptions' - rewrite_query: - type: boolean - title: Rewrite Query - default: false - search_mode: - type: string - title: Search Mode - default: vector - type: object - required: - - vector_store_id - - query - - filters - - ranking_options - title: _vector_stores_vector_store_id_search_Request - Error: - description: Error response from the API. Roughly follows RFC 7807. - properties: - status: - title: Status - type: integer - title: - title: Title - type: string - detail: - title: Detail - type: string - instance: - title: Instance - type: string - nullable: true - required: - - status - - title - - detail - title: Error - type: object - Agent: - description: An agent instance with configuration and metadata. - properties: - agent_id: - title: Agent Id - type: string - agent_config: - $ref: '#/components/schemas/AgentConfig' - created_at: - format: date-time - title: Created At - type: string - required: - - agent_id - - agent_config - - created_at - title: Agent - type: object - AgentStepResponse: - description: Response containing details of a specific agent step. - properties: - step: - discriminator: - mapping: - inference: '#/$defs/InferenceStep' - memory_retrieval: '#/$defs/MemoryRetrievalStep' - shield_call: '#/$defs/ShieldCallStep' - tool_execution: '#/$defs/ToolExecutionStep' - propertyName: step_type - oneOf: - - $ref: '#/components/schemas/InferenceStep' - - $ref: '#/components/schemas/ToolExecutionStep' - - $ref: '#/components/schemas/ShieldCallStep' - - $ref: '#/components/schemas/MemoryRetrievalStep' - title: Step - required: - - step - title: AgentStepResponse - type: object - CompletionMessage: - description: A message containing the model's (assistant) response in a chat conversation. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Content - stop_reason: - $ref: '#/components/schemas/StopReason' - tool_calls: - title: Tool Calls - items: - $ref: '#/components/schemas/ToolCall' - type: array - required: - - content - - stop_reason - title: CompletionMessage - type: object - InferenceStep: - description: An inference step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: inference - default: inference - title: Step Type - type: string - model_response: - $ref: '#/components/schemas/CompletionMessage' - required: - - turn_id - - step_id - - model_response - title: InferenceStep - type: object - ListOpenAIResponseInputItem: - description: List container for OpenAI response input items. - properties: - data: - items: - anyOf: - - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseMessage' - title: Data - type: array - object: - const: list - default: list - title: Object - type: string - required: - - data - title: ListOpenAIResponseInputItem - type: object - ListOpenAIResponseObject: - description: Paginated list of OpenAI response objects with navigation metadata. - properties: - data: - items: - $ref: '#/components/schemas/OpenAIResponseObjectWithInput' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIResponseObject - type: object - MemoryRetrievalStep: - description: A memory retrieval step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: memory_retrieval - default: memory_retrieval - title: Step Type - type: string - vector_store_ids: - title: Vector Store Ids - type: string - inserted_context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Inserted Context - required: - - turn_id - - step_id - - vector_store_ids - - inserted_context - title: MemoryRetrievalStep - type: object - OpenAIDeleteResponseObject: - description: Response object confirming deletion of an OpenAI response. - properties: - id: - title: Id - type: string - object: - const: response - default: response - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: OpenAIDeleteResponseObject - type: object - PaginatedResponse: - description: A generic paginated response that follows a simple format. - properties: - data: - items: - additionalProperties: true - type: object - title: Data - type: array - has_more: - title: Has More - type: boolean - url: - title: Url - type: string - nullable: true - required: - - data - - has_more - title: PaginatedResponse - type: object - Session: - description: A single session of an interaction with an Agentic System. - properties: - session_id: - title: Session Id - type: string - session_name: - title: Session Name - type: string - turns: - items: - $ref: '#/components/schemas/Turn' - title: Turns - type: array - started_at: - format: date-time - title: Started At - type: string - required: - - session_id - - session_name - - turns - - started_at - title: Session - type: object - ShieldCallStep: - description: A shield call step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: shield_call - default: shield_call - title: Step Type - type: string - violation: - $ref: '#/components/schemas/SafetyViolation' - required: - - turn_id - - step_id - - violation - title: ShieldCallStep - type: object - ToolExecutionStep: - description: A tool execution step in an agent turn. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - step_type: - const: tool_execution - default: tool_execution - title: Step Type - type: string - tool_calls: - items: - $ref: '#/components/schemas/ToolCall' - title: Tool Calls - type: array - tool_responses: - items: - $ref: '#/components/schemas/ToolResponse' - title: Tool Responses - type: array - required: - - turn_id - - step_id - - tool_calls - - tool_responses - title: ToolExecutionStep - type: object - ToolResponse: - description: Response from a tool invocation. - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/components/schemas/BuiltinTool' - - type: string - title: Tool Name - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - type: array - title: Content - metadata: - title: Metadata - additionalProperties: true - type: object - nullable: true - required: - - call_id - - tool_name - - content - title: ToolResponse - type: object - ListBatchesResponse: - description: Response containing a list of batch objects. - properties: - object: - const: list - default: list - title: Object - type: string - data: - description: List of batch objects - items: - $ref: '#/components/schemas/Batch' - title: Data - type: array - first_id: - description: ID of the first batch in the list - title: First Id - type: string - nullable: true - last_id: - description: ID of the last batch in the list - title: Last Id - type: string - nullable: true - has_more: - default: false - description: Whether there are more batches available - title: Has More - type: boolean - required: - - data - title: ListBatchesResponse - type: object - ConversationDeletedResource: - description: Response for deleted conversation. - properties: - id: - description: The deleted conversation identifier - title: Id - type: string - object: - default: conversation.deleted - description: Object type - title: Object - type: string - deleted: - default: true - description: Whether the object was deleted - title: Deleted - type: boolean - required: - - id - title: ConversationDeletedResource - type: object - ConversationItemDeletedResource: - description: Response for deleted conversation item. - properties: - id: - description: The deleted item identifier - title: Id - type: string - object: - default: conversation.item.deleted - description: Object type - title: Object - type: string - deleted: - default: true - description: Whether the object was deleted - title: Deleted - type: boolean - required: - - id - title: ConversationItemDeletedResource - type: object - ListOpenAIFileResponse: - description: Response for listing files in OpenAI Files API. - properties: - data: - items: - $ref: '#/components/schemas/OpenAIFileObject' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIFileResponse - type: object - OpenAIFileDeleteResponse: - description: Response for deleting a file in OpenAI Files API. - properties: - id: - title: Id - type: string - object: - const: file - default: file - title: Object - type: string - deleted: - title: Deleted - type: boolean - required: - - id - - deleted - title: OpenAIFileDeleteResponse - type: object - ListOpenAIChatCompletionResponse: - description: Response from listing OpenAI-compatible chat completions. - properties: - data: - items: - $ref: '#/$defs/RouteInfo' - title: Data - type: array - required: - - data - title: ListRoutesResponse - description: >- - Response containing a list of all available API routes. - OpenAIModel: - type: object - properties: - id: - type: string - object: - type: string - const: model - default: model - created: - type: integer - owned_by: - type: string - custom_metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - additionalProperties: false - required: - - id - - object - - created - - owned_by - title: OpenAIModel - description: A model from OpenAI. - OpenAIListModelsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAIModel' - additionalProperties: false - required: - - data - title: OpenAIListModelsResponse - ModelType: - type: string - enum: - - llm - - embedding - - rerank - title: ModelType - description: >- - Enumeration of supported model types in Llama Stack. - RegisterModelRequest: - type: object - properties: - model_id: - type: string - description: The identifier of the model to register. - provider_model_id: - type: string - description: >- - The identifier of the model in the provider. - provider_id: - type: string - description: The identifier of the provider. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model. - model_type: - $ref: '#/components/schemas/ModelType' - description: The type of model to register. - additionalProperties: false - required: - - model_id - title: RegisterModelRequest - Model: - type: object - properties: - identifier: - type: string - description: >- - Unique identifier for this resource in llama stack - provider_resource_id: - type: string - description: >- - Unique identifier for this resource in the provider - provider_id: - type: string - description: >- - ID of the provider that owns this resource - type: - type: string - enum: - - model - - shield - - vector_store - - dataset - - scoring_function - - benchmark - - tool - - tool_group - - prompt - const: model - default: model - description: >- - The resource type, always 'model' for model resources - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Any additional metadata for this model - model_type: - $ref: '#/components/schemas/ModelType' - default: llm - description: >- - The type of model (LLM or embedding model) - additionalProperties: false - required: - - identifier - - provider_id - - type - - metadata - - model_type - title: Model - description: >- - A model resource representing an AI model registered in Llama Stack. - RunModerationRequest: - type: object - ModerationObject: - $defs: - ModerationObjectResults: - description: >- - A moderation object. - - :param flagged: Whether any of the below categories are flagged. - - :param categories: A list of the categories, and whether they are flagged - or not. - - :param category_applied_input_types: A list of the categories along with - the input type(s) that the score applies to. - - :param category_scores: A list of the categories along with their scores - as predicted by model. - properties: - flagged: - title: Flagged - type: boolean - categories: - anyOf: - - additionalProperties: - type: boolean - type: object - - type: 'null' - title: Categories - category_applied_input_types: - anyOf: - - additionalProperties: - items: - type: string - type: array - type: object - - type: 'null' - title: Category Applied Input Types - category_scores: - anyOf: - - additionalProperties: - type: number - type: object - - type: 'null' - title: Category Scores - user_message: - anyOf: - - type: string - - type: 'null' - title: User Message - metadata: - additionalProperties: true - title: Metadata - type: object - required: - - flagged - title: ModerationObjectResults - type: object - description: >- - A moderation object. - - :param id: The unique identifier for the moderation request. - - :param model: The model used to generate the moderation results. - - :param results: A list of moderation objects - properties: - id: - title: Id - type: string - model: - title: Model - type: string - results: - items: - $ref: '#/$defs/ModerationObjectResults' - title: Results - type: array - required: - - id - - model - - results - title: ModerationObject - type: object - ListPromptsResponse: - $defs: - Prompt: - description: >- - A prompt resource representing a stored OpenAI Compatible prompt template - in Llama Stack. - - - :param prompt: The system prompt text with variable placeholders. Variables - are only supported when using the Responses API. - - :param version: Version (integer starting at 1, incremented on save) - - :param prompt_id: Unique identifier formatted as 'pmpt_<48-digit-hash>' - - :param variables: List of prompt variable names that can be used in the - prompt template - - :param is_default: Boolean indicating whether this version is the default - version for this prompt - properties: - prompt: - anyOf: - - type: string - - type: 'null' - description: >- - The system prompt with variable placeholders - title: Prompt - version: - description: >- - Version (integer starting at 1, incremented on save) - minimum: 1 - title: Version - type: integer - prompt_id: - description: >- - Unique identifier in format 'pmpt_<48-digit-hash>' - title: Prompt Id - type: string - variables: - description: >- - List of variable names that can be used in the prompt template - items: - type: string - title: Variables - type: array - is_default: - default: false - description: >- - Boolean indicating whether this version is the default version - title: Is Default - type: boolean - required: - - version - - prompt_id - title: Prompt - type: object - description: Response model to list prompts. - properties: - data: - items: - $ref: '#/$defs/Prompt' - title: Data - type: array - required: - - data - title: ListPromptsResponse - type: object - CreatePromptRequest: - type: object - Prompt: - description: >- - A prompt resource representing a stored OpenAI Compatible prompt template - in Llama Stack. - - - :param prompt: The system prompt text with variable placeholders. Variables - are only supported when using the Responses API. - - :param version: Version (integer starting at 1, incremented on save) - - :param prompt_id: Unique identifier formatted as 'pmpt_<48-digit-hash>' - - :param variables: List of prompt variable names that can be used in the prompt - template - - :param is_default: Boolean indicating whether this version is the default - version for this prompt - properties: - prompt: - anyOf: - - type: string - - type: 'null' - description: >- - The system prompt with variable placeholders - title: Prompt - version: - description: >- - Version (integer starting at 1, incremented on save) - minimum: 1 - title: Version - type: integer - prompt_id: - description: >- - Unique identifier in format 'pmpt_<48-digit-hash>' - title: Prompt Id - type: string - variables: - description: >- - List of variable names that can be used in the prompt template - items: - type: string - title: Variables - type: array - is_default: - default: false - description: >- - Boolean indicating whether this version is the default version - title: Is Default - type: boolean - required: - - version - - prompt_id - title: Prompt - type: object - UpdatePromptRequest: - type: object - SetDefaultVersionRequest: - type: object - ListProvidersResponse: - $defs: - ProviderInfo: - description: >- - Information about a registered provider including its configuration and - health status. - - - :param api: The API name this provider implements - - :param provider_id: Unique identifier for the provider - - :param provider_type: The type of provider implementation - - :param config: Configuration parameters for the provider - - :param health: Current health status of the provider - properties: - api: - title: Api - type: string - provider_id: - title: Provider Id - type: string - provider_type: - title: Provider Type - type: string - config: - additionalProperties: true - title: Config - type: object - health: - additionalProperties: true - title: Health - type: object - required: - - api - - provider_id - - provider_type - - config - - health - title: ProviderInfo - type: object - description: >- - Response containing a list of all available providers. - - - :param data: List of provider information objects - properties: - data: - items: - $ref: '#/$defs/ProviderInfo' - title: Data - type: array - required: - - data - title: ListProvidersResponse - type: object - ProviderInfo: - description: >- - Information about a registered provider including its configuration and health - status. - - - :param api: The API name this provider implements - - :param provider_id: Unique identifier for the provider - - :param provider_type: The type of provider implementation - - :param config: Configuration parameters for the provider - - :param health: Current health status of the provider - properties: - api: - title: Api - type: string - provider_id: - title: Provider Id - type: string - provider_type: - title: Provider Type - type: string - config: - additionalProperties: true - title: Config - type: object - health: - additionalProperties: true - title: Health - type: object - required: - - api - - provider_id - - provider_type - - config - - health - title: ProviderInfo - type: object - ListOpenAIResponseObject: - $defs: - AllowedToolsFilter: - description: >- - Filter configuration for restricting which MCP tools can be used. - - - :param tool_names: (Optional) List of specific tool names that are allowed - properties: - tool_names: - anyOf: - - items: - type: string - type: array - - type: 'null' - title: Tool Names - title: AllowedToolsFilter - type: object - MCPListToolsTool: - description: >- - Tool definition returned by MCP list tools operation. - - - :param input_schema: JSON schema defining the tool's input parameters - - :param name: Name of the tool - - :param description: (Optional) Description of what the tool does - properties: - input_schema: - additionalProperties: true - title: Input Schema - type: object - name: - title: Name - type: string - description: - anyOf: - - type: string - - type: 'null' - title: Description - required: - - input_schema - - name - title: MCPListToolsTool - type: object - OpenAIResponseAnnotationCitation: - description: >- - URL citation annotation for referencing external web resources. - - - :param type: Annotation type identifier, always "url_citation" - - :param end_index: End position of the citation span in the content - - :param start_index: Start position of the citation span in the content - - :param title: Title of the referenced web resource - - :param url: URL of the referenced web resource - properties: - type: - const: url_citation - default: url_citation - title: Type - type: string - end_index: - title: End Index - type: integer - start_index: - title: Start Index - type: integer - title: - title: Title - type: string - url: - title: Url - type: string - required: - - end_index - - start_index - - title - - url - title: OpenAIResponseAnnotationCitation - type: object - "OpenAIResponseAnnotationContainerFileCitation": - properties: - type: - const: container_file_citation - default: container_file_citation - title: Type - type: string - container_id: - title: Container Id - type: string - end_index: - title: End Index - type: integer - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - start_index: - title: Start Index - type: integer - required: - - container_id - - end_index - - file_id - - filename - - start_index - title: >- - OpenAIResponseAnnotationContainerFileCitation - type: object - OpenAIResponseAnnotationFileCitation: - description: >- - File citation annotation for referencing specific files in response content. - - - :param type: Annotation type identifier, always "file_citation" - - :param file_id: Unique identifier of the referenced file - - :param filename: Name of the referenced file - - :param index: Position index of the citation within the content - properties: - type: - const: file_citation - default: file_citation - title: Type - type: string - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - index: - title: Index - type: integer - required: - - file_id - - filename - - index - title: OpenAIResponseAnnotationFileCitation - type: object - OpenAIResponseAnnotationFilePath: - properties: - type: - const: file_path - default: file_path - title: Type - type: string - file_id: - title: File Id - type: string - index: - title: Index - type: integer - required: - - file_id - - index - title: OpenAIResponseAnnotationFilePath - type: object - OpenAIResponseContentPartRefusal: - description: >- - Refusal content within a streamed response part. - - - :param type: Content part type identifier, always "refusal" - - :param refusal: Refusal text supplied by the model - properties: - type: - const: refusal - default: refusal - title: Type - type: string - refusal: - title: Refusal - type: string - required: - - refusal - title: OpenAIResponseContentPartRefusal - type: object - OpenAIResponseError: - description: >- - Error details for failed OpenAI response requests. - - - :param code: Error code identifying the type of failure - - :param message: Human-readable error message describing the failure - properties: - code: - title: Code - type: string - message: - title: Message - type: string - required: - - code - - message - title: OpenAIResponseError - type: object - "OpenAIResponseInputFunctionToolCallOutput": - description: >- - This represents the output of a function call that gets passed back to - the model. - properties: - call_id: - title: Call Id - type: string - output: - title: Output - type: string - type: - const: function_call_output - default: function_call_output - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - status: - anyOf: - - type: string - - type: 'null' - title: Status - required: - - call_id - - output - title: >- - OpenAIResponseInputFunctionToolCallOutput - type: object - OpenAIResponseInputMessageContentImage: - description: >- - Image content for input messages in OpenAI response format. - - - :param detail: Level of detail for image processing, can be "low", "high", - or "auto" - - :param type: Content type identifier, always "input_image" - - :param image_url: (Optional) URL of the image content - properties: - detail: - anyOf: - - const: low - type: string - - const: high - type: string - - const: auto - type: string - default: auto - title: Detail - type: - const: input_image - default: input_image - title: Type - type: string - image_url: - anyOf: - - type: string - - type: 'null' - title: Image Url - title: OpenAIResponseInputMessageContentImage - type: object - OpenAIResponseInputMessageContentText: - description: >- - Text content for input messages in OpenAI response format. - - - :param text: The text content of the input message - - :param type: Content type identifier, always "input_text" - properties: - text: - title: Text - type: string - type: - const: input_text - default: input_text - title: Type - type: string - required: - - text - title: OpenAIResponseInputMessageContentText - type: object - OpenAIResponseInputToolFileSearch: - description: >- - File search tool configuration for OpenAI response inputs. - - - :param type: Tool type identifier, always "file_search" - - :param vector_store_ids: List of vector store identifiers to search within - - :param filters: (Optional) Additional filters to apply to the search - - :param max_num_results: (Optional) Maximum number of search results to - return (1-50) - - :param ranking_options: (Optional) Options for ranking and scoring search - results - properties: - type: - const: file_search - default: file_search - title: Type - type: string - vector_store_ids: - items: - type: string - title: Vector Store Ids - type: array - filters: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Filters - max_num_results: - anyOf: - - maximum: 50 - minimum: 1 - type: integer - - type: 'null' - default: 10 - title: Max Num Results - ranking_options: - anyOf: - - $ref: '#/$defs/SearchRankingOptions' - - type: 'null' - required: - - vector_store_ids - title: OpenAIResponseInputToolFileSearch - type: object - OpenAIResponseInputToolFunction: - description: >- - Function tool configuration for OpenAI response inputs. - - - :param type: Tool type identifier, always "function" - - :param name: Name of the function that can be called - - :param description: (Optional) Description of what the function does - - :param parameters: (Optional) JSON schema defining the function's parameters - - :param strict: (Optional) Whether to enforce strict parameter validation - properties: - type: - const: function - default: function - title: Type - type: string - name: - title: Name - type: string - description: - anyOf: - - type: string - - type: 'null' - title: Description - parameters: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Parameters - strict: - anyOf: - - type: boolean - - type: 'null' - title: Strict - required: - - name - - parameters - title: OpenAIResponseInputToolFunction - type: object - OpenAIResponseInputToolWebSearch: - description: >- - Web search tool configuration for OpenAI response inputs. - - - :param type: Web search tool type variant to use - - :param search_context_size: (Optional) Size of search context, must be - "low", "medium", or "high" - properties: - type: - anyOf: - - const: web_search - type: string - - const: web_search_preview - type: string - - const: web_search_preview_2025_03_11 - type: string - default: web_search - title: Type - search_context_size: - anyOf: - - pattern: ^low|medium|high$ - type: string - - type: 'null' - default: medium - title: Search Context Size - title: OpenAIResponseInputToolWebSearch - type: object - OpenAIResponseMCPApprovalRequest: - description: >- - A request for human approval of a tool invocation. - properties: - arguments: - title: Arguments - type: string - id: - title: Id - type: string - name: - title: Name - type: string - server_label: - title: Server Label - type: string - type: - const: mcp_approval_request - default: mcp_approval_request - title: Type - type: string - required: - - arguments - - id - - name - - server_label - title: OpenAIResponseMCPApprovalRequest - type: object - OpenAIResponseMCPApprovalResponse: - description: A response to an MCP approval request. - properties: - approval_request_id: - title: Approval Request Id - type: string - approve: - title: Approve - type: boolean - type: - const: mcp_approval_response - default: mcp_approval_response - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - reason: - anyOf: - - type: string - - type: 'null' - title: Reason - required: - - approval_request_id - - approve - title: OpenAIResponseMCPApprovalResponse - type: object - OpenAIResponseMessage: - description: >- - Corresponds to the various Message types in the Responses API. - - They are all under one type because the Responses API gives them all - - the same "type" value, and there is no way to tell them apart in certain - - scenarios. - properties: - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - input_image: >- - #/$defs/OpenAIResponseInputMessageContentImage - input_text: >- - #/$defs/OpenAIResponseInputMessageContentText - propertyName: type - oneOf: - - $ref: >- - #/$defs/OpenAIResponseInputMessageContentText - - $ref: >- - #/$defs/OpenAIResponseInputMessageContentImage - type: array - - items: - discriminator: - mapping: - output_text: >- - #/$defs/OpenAIResponseOutputMessageContentOutputText - refusal: '#/$defs/OpenAIResponseContentPartRefusal' - propertyName: type - oneOf: - - $ref: >- - #/$defs/OpenAIResponseOutputMessageContentOutputText - - $ref: '#/$defs/OpenAIResponseContentPartRefusal' - type: array - title: Content - role: - anyOf: - - const: system - type: string - - const: developer - type: string - - const: user - type: string - - const: assistant - type: string - title: Role - type: - const: message - default: message - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - status: - anyOf: - - type: string - - type: 'null' - title: Status - required: - - content - - role - title: OpenAIResponseMessage - type: object - OpenAIResponseObjectWithInput: - description: >- - OpenAI response object extended with input context information. - - - :param input: List of input items that led to this response - properties: - created_at: - title: Created At - type: integer - error: - anyOf: - - $ref: '#/$defs/OpenAIResponseError' - - type: 'null' - id: - title: Id - type: string - model: - title: Model - type: string - object: - const: response - default: response - title: Object - type: string - output: - items: - discriminator: - mapping: - file_search_call: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - function_call: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - mcp_list_tools: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - message: '#/$defs/OpenAIResponseMessage' - web_search_call: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - propertyName: type - oneOf: - - $ref: '#/$defs/OpenAIResponseMessage' - - $ref: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - - $ref: '#/$defs/OpenAIResponseMCPApprovalRequest' - title: Output - type: array - parallel_tool_calls: - default: false - title: Parallel Tool Calls - type: boolean - previous_response_id: - anyOf: - - type: string - - type: 'null' - title: Previous Response Id - status: - title: Status - type: string - temperature: - anyOf: - - type: number - - type: 'null' - title: Temperature - text: - $ref: '#/$defs/OpenAIResponseText' - default: - format: - type: text - top_p: - anyOf: - - type: number - - type: 'null' - title: Top P - tools: - anyOf: - - items: - discriminator: - mapping: - file_search: >- - #/$defs/OpenAIResponseInputToolFileSearch - function: '#/$defs/OpenAIResponseInputToolFunction' - mcp: '#/$defs/OpenAIResponseToolMCP' - web_search: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' - propertyName: type - oneOf: - - $ref: '#/$defs/OpenAIResponseInputToolWebSearch' - - $ref: >- - #/$defs/OpenAIResponseInputToolFileSearch - - $ref: '#/$defs/OpenAIResponseInputToolFunction' - - $ref: '#/$defs/OpenAIResponseToolMCP' - type: array - - type: 'null' - title: Tools - truncation: - anyOf: - - type: string - - type: 'null' - title: Truncation - usage: - anyOf: - - $ref: '#/$defs/OpenAIResponseUsage' - - type: 'null' - instructions: - anyOf: - - type: string - - type: 'null' - title: Instructions - input: - items: - anyOf: - - discriminator: - mapping: - file_search_call: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - function_call: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - mcp_list_tools: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - message: '#/$defs/OpenAIResponseMessage' - web_search_call: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - propertyName: type - oneOf: - - $ref: '#/$defs/OpenAIResponseMessage' - - $ref: >- - #/$defs/OpenAIResponseOutputMessageWebSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageFunctionToolCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPCall - - $ref: >- - #/$defs/OpenAIResponseOutputMessageMCPListTools - - $ref: '#/$defs/OpenAIResponseMCPApprovalRequest' - - $ref: >- - #/$defs/OpenAIResponseInputFunctionToolCallOutput - - $ref: >- - #/$defs/OpenAIResponseMCPApprovalResponse - - $ref: '#/$defs/OpenAIResponseMessage' - title: Input - type: array - required: - - created_at - - id - - model - - output - - status - - input - title: OpenAIResponseObjectWithInput - type: object - "OpenAIResponseOutputMessageContentOutputText": - properties: - text: - title: Text - type: string - type: - const: output_text - default: output_text - title: Type - type: string - annotations: - items: - discriminator: - mapping: - container_file_citation: >- - #/$defs/OpenAIResponseAnnotationContainerFileCitation - file_citation: >- - #/$defs/OpenAIResponseAnnotationFileCitation - file_path: '#/$defs/OpenAIResponseAnnotationFilePath' - url_citation: '#/$defs/OpenAIResponseAnnotationCitation' - propertyName: type - oneOf: - - $ref: >- - #/$defs/OpenAIResponseAnnotationFileCitation - - $ref: '#/$defs/OpenAIResponseAnnotationCitation' - - $ref: >- - #/$defs/OpenAIResponseAnnotationContainerFileCitation - - $ref: '#/$defs/OpenAIResponseAnnotationFilePath' - title: Annotations - type: array - required: - - text - title: >- - OpenAIResponseOutputMessageContentOutputText - type: object - "OpenAIResponseOutputMessageFileSearchToolCall": - description: >- - File search tool call output message for OpenAI responses. - - - :param id: Unique identifier for this tool call - - :param queries: List of search queries executed - - :param status: Current status of the file search operation - - :param type: Tool call type identifier, always "file_search_call" - - :param results: (Optional) Search results returned by the file search - operation - properties: - id: - title: Id - type: string - queries: - items: - type: string - title: Queries - type: array - status: - title: Status - type: string - type: - const: file_search_call - default: file_search_call - title: Type - type: string - results: - anyOf: - - items: - $ref: >- - #/$defs/OpenAIResponseOutputMessageFileSearchToolCallResults - type: array - - type: 'null' - title: Results - required: - - id - - queries - - status - title: >- - OpenAIResponseOutputMessageFileSearchToolCall - type: object - "OpenAIResponseOutputMessageFileSearchToolCallResults": - description: >- - Search results returned by the file search operation. - - - :param attributes: (Optional) Key-value attributes associated with the - file - - :param file_id: Unique identifier of the file containing the result - - :param filename: Name of the file containing the result - - :param score: Relevance score for this search result (between 0 and 1) - - :param text: Text content of the search result - properties: - attributes: - additionalProperties: true - title: Attributes - type: object - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - score: - title: Score - type: number - text: - title: Text - type: string - required: - - attributes - - file_id - - filename - - score - - text - title: >- - OpenAIResponseOutputMessageFileSearchToolCallResults - type: object - "OpenAIResponseOutputMessageFunctionToolCall": - description: >- - Function tool call output message for OpenAI responses. - - - :param call_id: Unique identifier for the function call - - :param name: Name of the function being called - - :param arguments: JSON string containing the function arguments - - :param type: Tool call type identifier, always "function_call" - - :param id: (Optional) Additional identifier for the tool call - - :param status: (Optional) Current status of the function call execution - properties: - call_id: - title: Call Id - type: string - name: - title: Name - type: string - arguments: - title: Arguments - type: string - type: - const: function_call - default: function_call - title: Type - type: string - id: - anyOf: - - type: string - - type: 'null' - title: Id - status: - anyOf: - - type: string - - type: 'null' - title: Status - required: - - call_id - - name - - arguments - title: >- - OpenAIResponseOutputMessageFunctionToolCall - type: object - OpenAIResponseOutputMessageMCPCall: - description: >- - Model Context Protocol (MCP) call output message for OpenAI responses. - - - :param id: Unique identifier for this MCP call - - :param type: Tool call type identifier, always "mcp_call" - - :param arguments: JSON string containing the MCP call arguments - - :param name: Name of the MCP method being called - - :param server_label: Label identifying the MCP server handling the call - - :param error: (Optional) Error message if the MCP call failed - - :param output: (Optional) Output result from the successful MCP call - properties: - id: - title: Id - type: string - type: - const: mcp_call - default: mcp_call - title: Type - type: string - arguments: - title: Arguments - type: string - name: - title: Name - type: string - server_label: - title: Server Label - type: string - error: - anyOf: - - type: string - - type: 'null' - title: Error - output: - anyOf: - - type: string - - type: 'null' - title: Output - required: - - id - - arguments - - name - - server_label - title: OpenAIResponseOutputMessageMCPCall - type: object - OpenAIResponseOutputMessageMCPListTools: - description: >- - MCP list tools output message containing available tools from an MCP server. - - - :param id: Unique identifier for this MCP list tools operation - - :param type: Tool call type identifier, always "mcp_list_tools" - - :param server_label: Label identifying the MCP server providing the tools - - :param tools: List of available tools provided by the MCP server - properties: - id: - title: Id - type: string - type: - const: mcp_list_tools - default: mcp_list_tools - title: Type - type: string - server_label: - title: Server Label - type: string - tools: - items: - $ref: '#/$defs/MCPListToolsTool' - title: Tools - type: array - required: - - id - - server_label - - tools - title: OpenAIResponseOutputMessageMCPListTools - type: object - "OpenAIResponseOutputMessageWebSearchToolCall": - description: >- - Web search tool call output message for OpenAI responses. - - - :param id: Unique identifier for this tool call - - :param status: Current status of the web search operation - - :param type: Tool call type identifier, always "web_search_call" - properties: - id: - title: Id - type: string - status: - title: Status - type: string - type: - const: web_search_call - default: web_search_call - title: Type - type: string - required: - - id - - status - title: >- - OpenAIResponseOutputMessageWebSearchToolCall - type: object - OpenAIResponseText: - description: >- - Text response configuration for OpenAI responses. - - - :param format: (Optional) Text format configuration specifying output - format requirements - properties: - format: - anyOf: - - $ref: '#/$defs/OpenAIResponseTextFormat' - - type: 'null' - title: OpenAIResponseText - type: object - OpenAIResponseTextFormat: - description: >- - Configuration for Responses API text format. - - - :param type: Must be "text", "json_schema", or "json_object" to identify - the format type - - :param name: The name of the response format. Only used for json_schema. - - :param schema: The JSON schema the response should conform to. In a Python - SDK, this is often a `pydantic` model. Only used for json_schema. - - :param description: (Optional) A description of the response format. Only - used for json_schema. - - :param strict: (Optional) Whether to strictly enforce the JSON schema. - If true, the response must match the schema exactly. Only used for json_schema. - properties: - type: - anyOf: - - const: text - type: string - - const: json_schema - type: string - - const: json_object - type: string - title: Type - name: - anyOf: - - type: string - - type: 'null' - title: Name - schema: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Schema - description: - anyOf: - - type: string - - type: 'null' - title: Description - strict: - anyOf: - - type: boolean - - type: 'null' - title: Strict - title: OpenAIResponseTextFormat - type: object - OpenAIResponseToolMCP: - description: >- - Model Context Protocol (MCP) tool configuration for OpenAI response object. - - - :param type: Tool type identifier, always "mcp" - - :param server_label: Label to identify this MCP server - - :param allowed_tools: (Optional) Restriction on which tools can be used - from this server - properties: - type: - const: mcp - default: mcp - title: Type - type: string - server_label: - title: Server Label - type: string - allowed_tools: - anyOf: - - items: - type: string - type: array - - $ref: '#/$defs/AllowedToolsFilter' - - type: 'null' - title: Allowed Tools - required: - - server_label - title: OpenAIResponseToolMCP - type: object - OpenAIResponseUsage: - description: >- - Usage information for OpenAI response. - - - :param input_tokens: Number of tokens in the input - - :param output_tokens: Number of tokens in the output - - :param total_tokens: Total tokens used (input + output) - - :param input_tokens_details: Detailed breakdown of input token usage - - :param output_tokens_details: Detailed breakdown of output token usage - properties: - input_tokens: - title: Input Tokens - type: integer - output_tokens: - title: Output Tokens - type: integer - total_tokens: - title: Total Tokens - type: integer - input_tokens_details: - anyOf: - - $ref: >- - #/$defs/OpenAIResponseUsageInputTokensDetails - - type: 'null' - output_tokens_details: - anyOf: - - $ref: >- - #/$defs/OpenAIResponseUsageOutputTokensDetails - - type: 'null' - required: - - input_tokens - - output_tokens - - total_tokens - title: OpenAIResponseUsage - type: object - OpenAIResponseUsageInputTokensDetails: - description: >- - Token details for input tokens in OpenAI response usage. - - - :param cached_tokens: Number of tokens retrieved from cache - properties: - cached_tokens: - anyOf: - - type: integer - - type: 'null' - title: Cached Tokens - title: OpenAIResponseUsageInputTokensDetails - type: object - OpenAIResponseUsageOutputTokensDetails: - description: >- - Token details for output tokens in OpenAI response usage. - - - :param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models) - properties: - reasoning_tokens: - anyOf: - - type: integer - - type: 'null' - title: Reasoning Tokens - title: OpenAIResponseUsageOutputTokensDetails - type: object - SearchRankingOptions: - description: >- - Options for ranking and filtering search results. - - - :param ranker: (Optional) Name of the ranking algorithm to use - - :param score_threshold: (Optional) Minimum relevance score threshold for - results - properties: - ranker: - anyOf: - - type: string - - type: 'null' - title: Ranker - score_threshold: - anyOf: - - type: number - - type: 'null' - default: 0.0 - title: Score Threshold - title: SearchRankingOptions - type: object - description: >- - Paginated list of OpenAI response objects with navigation metadata. - - - :param data: List of response objects with their input context - - :param has_more: Whether there are more results available beyond this page - - :param first_id: Identifier of the first item in this page - - :param last_id: Identifier of the last item in this page - - :param object: Object type identifier, always "list" - properties: - data: - items: - $ref: '#/$defs/OpenAIResponseObjectWithInput' - title: Data - type: array - has_more: - title: Has More - type: boolean - first_id: - title: First Id - type: string - last_id: - title: Last Id - type: string - object: - const: list - default: list - title: Object - type: string - required: - - data - - has_more - - first_id - - last_id - title: ListOpenAIChatCompletionResponse - type: object - OpenAIAssistantMessageParam: - description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - items: - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - type: array - title: Content - nullable: true - name: - title: Name - type: string - nullable: true - tool_calls: - title: Tool Calls - items: - $ref: '#/components/schemas/OpenAIChatCompletionToolCall' - type: array - nullable: true - title: OpenAIAssistantMessageParam - type: object - OpenAIChoice: - description: A choice from an OpenAI-compatible chat completion response. - properties: - message: - discriminator: - mapping: - assistant: '#/$defs/OpenAIAssistantMessageParam' - developer: '#/$defs/OpenAIDeveloperMessageParam' - system: '#/$defs/OpenAISystemMessageParam' - tool: '#/$defs/OpenAIToolMessageParam' - user: '#/$defs/OpenAIUserMessageParam' - propertyName: role - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Message - finish_reason: - title: Finish Reason - type: string - index: - title: Index - type: integer - logprobs: - $ref: '#/components/schemas/OpenAIChoiceLogprobs' - nullable: true - required: - - message - - finish_reason - - index - title: OpenAIChoice - type: object - OpenAIChoiceLogprobs: - description: The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. - properties: - content: - title: Content - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array - nullable: true - refusal: - title: Refusal - items: - $ref: '#/components/schemas/OpenAITokenLogProb' - type: array - nullable: true - title: OpenAIChoiceLogprobs - type: object - OpenAICompletionWithInputMessages: - properties: - id: - title: Id - type: string - choices: - items: - $ref: '#/components/schemas/OpenAIChoice' - title: Choices - type: array - object: - const: chat.completion - default: chat.completion - title: Object - type: string - created: - title: Created - type: integer - model: - title: Model - type: string - usage: - $ref: '#/components/schemas/OpenAIChatCompletionUsage' - nullable: true - input_messages: - items: - discriminator: - mapping: - assistant: '#/$defs/OpenAIAssistantMessageParam' - developer: '#/$defs/OpenAIDeveloperMessageParam' - system: '#/$defs/OpenAISystemMessageParam' - tool: '#/$defs/OpenAIToolMessageParam' - user: '#/$defs/OpenAIUserMessageParam' - propertyName: role - oneOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Input Messages - type: array - required: - - id - - choices - - created - - model - - input_messages - title: OpenAICompletionWithInputMessages - type: object - OpenAIUserMessageParam: - description: A message from the user in an OpenAI-compatible chat completion request. - properties: - role: - const: user - default: user - title: Role - type: string - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - file: '#/$defs/OpenAIFile' - image_url: '#/$defs/OpenAIChatCompletionContentPartImageParam' - text: '#/$defs/OpenAIChatCompletionContentPartTextParam' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam' - - $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam' - - $ref: '#/components/schemas/OpenAIFile' - type: array - title: Content - name: - title: Name - type: string - nullable: true - required: - - content - title: OpenAIUserMessageParam - type: object - Checkpoint: - description: Checkpoint created during training runs. - properties: - identifier: - title: Identifier - type: string - created_at: - format: date-time - title: Created At - type: string - epoch: - title: Epoch - type: integer - post_training_job_id: - title: Post Training Job Id - type: string - path: - title: Path - type: string - training_metrics: - $ref: '#/components/schemas/PostTrainingMetric' - nullable: true - required: - - identifier - - created_at - - epoch - - post_training_job_id - - path - title: Checkpoint - type: object - PostTrainingJobArtifactsResponse: - description: Artifacts of a finetuning job. - properties: - job_uuid: - title: Job Uuid - type: string - checkpoints: - items: - $ref: '#/components/schemas/Checkpoint' - title: Checkpoints - type: array - required: - - job_uuid - title: PostTrainingJobArtifactsResponse - type: object - PostTrainingJobStatusResponse: - description: Status of a finetuning job. - properties: - job_uuid: - title: Job Uuid - type: string - status: - $ref: '#/components/schemas/JobStatus' - scheduled_at: - title: Scheduled At - format: date-time - type: string - nullable: true - started_at: - title: Started At - format: date-time - type: string - nullable: true - completed_at: - title: Completed At - format: date-time - type: string - nullable: true - resources_allocated: - title: Resources Allocated - additionalProperties: true - type: object - nullable: true - checkpoints: - items: - $ref: '#/components/schemas/Checkpoint' - title: Checkpoints - type: array - required: - - job_uuid - - status - title: PostTrainingJobStatusResponse - type: object - ScoringFn: - description: A scoring function resource for evaluating model outputs. - properties: - identifier: - description: Unique identifier for this resource in llama stack - title: Identifier - type: string - provider_resource_id: - description: Unique identifier for this resource in the provider - title: Provider Resource Id - type: string - nullable: true - provider_id: - description: ID of the provider that owns this resource - title: Provider Id - type: string - type: - const: scoring_function - default: scoring_function - title: Type - type: string - description: - title: Description - type: string - nullable: true - metadata: - additionalProperties: true - description: Any additional metadata for this definition - title: Metadata - type: object - return_type: - description: The return type of the deterministic function - discriminator: - mapping: - agent_turn_input: '#/$defs/AgentTurnInputType' - array: '#/$defs/ArrayType' - boolean: '#/$defs/BooleanType' - chat_completion_input: '#/$defs/ChatCompletionInputType' - completion_input: '#/$defs/CompletionInputType' - json: '#/$defs/JsonType' - number: '#/$defs/NumberType' - object: '#/$defs/ObjectType' - string: '#/$defs/StringType' - union: '#/$defs/UnionType' - propertyName: type - oneOf: - - $ref: '#/components/schemas/StringType' - - $ref: '#/components/schemas/NumberType' - - $ref: '#/components/schemas/BooleanType' - - $ref: '#/components/schemas/ArrayType' - - $ref: '#/components/schemas/ObjectType' - - $ref: '#/components/schemas/JsonType' - - $ref: '#/components/schemas/UnionType' - - $ref: '#/components/schemas/ChatCompletionInputType' - - $ref: '#/components/schemas/CompletionInputType' - - $ref: '#/components/schemas/AgentTurnInputType' - title: Return Type - params: - description: The parameters for the scoring function for benchmark eval, these can be overridden for app eval - title: Params - discriminator: - mapping: - basic: '#/$defs/BasicScoringFnParams' - llm_as_judge: '#/$defs/LLMAsJudgeScoringFnParams' - regex_parser: '#/$defs/RegexParserScoringFnParams' - propertyName: type - oneOf: - - $ref: '#/components/schemas/LLMAsJudgeScoringFnParams' - - $ref: '#/components/schemas/RegexParserScoringFnParams' - - $ref: '#/components/schemas/BasicScoringFnParams' - nullable: true - required: - - identifier - - provider_id - - return_type - title: ScoringFn - type: object - ScoreRequest: - type: object - ScoreResponse: - $defs: - ScoringResult: - description: >- - A scoring result for a single row. - - - :param score_rows: The scoring result for each row. Each row is a map - of column name to value. - - :param aggregated_results: Map of metric name to aggregated value - properties: - score_rows: - items: - additionalProperties: true - type: object - title: Score Rows - type: array - aggregated_results: - additionalProperties: true - title: Aggregated Results - type: object - required: - - score_rows - - aggregated_results - title: ScoringResult - type: object - description: >- - The response from scoring. - - - :param results: A map of scoring function name to ScoringResult. - properties: - results: - additionalProperties: - $ref: '#/$defs/ScoringResult' - title: Results - type: object - required: - - results - title: ScoreResponse - type: object - ScoreBatchRequest: - type: object - ScoreBatchResponse: - $defs: - ScoringResult: - description: >- - A scoring result for a single row. - - - :param score_rows: The scoring result for each row. Each row is a map - of column name to value. - - :param aggregated_results: Map of metric name to aggregated value - properties: - score_rows: - items: - additionalProperties: true - type: object - title: Score Rows - type: array - aggregated_results: - additionalProperties: true - title: Aggregated Results - type: object - required: - - score_rows - - aggregated_results - title: ScoringResult - type: object - description: >- - Response from batch scoring operations on datasets. - - - :param dataset_id: (Optional) The identifier of the dataset that was scored - - :param results: A map of scoring function name to ScoringResult - properties: - dataset_id: - anyOf: - - type: string - - type: 'null' - title: Dataset Id - results: - additionalProperties: - $ref: '#/$defs/ScoringResult' - title: Results - type: object - required: - - results - title: ScoreBatchResponse - type: object - ListShieldsResponse: - $defs: - Shield: - description: >- - A safety shield resource that can be used to check content. - - - :param params: (Optional) Configuration parameters for the shield - - :param type: The resource type, always shield - properties: - identifier: - description: >- - Unique identifier for this resource in llama stack - title: Identifier - type: string - provider_resource_id: - anyOf: - - type: string - - type: 'null' - description: >- - Unique identifier for this resource in the provider - title: Provider Resource Id - provider_id: - description: >- - ID of the provider that owns this resource - title: Provider Id - type: string - type: - const: shield - default: shield - title: Type - type: string - params: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Params - required: - - identifier - - provider_id - title: Shield - type: object - properties: - data: - items: - $ref: '#/$defs/Shield' - title: Data - type: array - required: - - data - title: ListShieldsResponse - type: object - RegisterShieldRequest: - type: object - properties: - shield_id: - type: string - description: >- - The identifier of the shield to register. - provider_shield_id: - type: string - description: >- - The identifier of the shield in the provider. - provider_id: - type: string - description: The identifier of the provider. - params: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: The parameters of the shield. - additionalProperties: false - required: - - shield_id - title: RegisterShieldRequest - InvokeToolRequest: - type: object - properties: - tool_name: - type: string - description: The name of the tool to invoke. - kwargs: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - A dictionary of arguments to pass to the tool. - additionalProperties: false - required: - - tool_name - - kwargs - title: InvokeToolRequest - ImageContentItem: - type: object - properties: - type: - type: string - const: image - default: image - description: >- - Discriminator type of the content item. Always "image" - image: - type: object - properties: - url: - $ref: '#/components/schemas/URL' - description: >- - A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - data: - type: string - contentEncoding: base64 - description: base64 encoded image data as string - additionalProperties: false - description: >- - Image as a base64 encoded string or an URL - additionalProperties: false - required: - - type - - image - title: ImageContentItem - description: A image content item - InterleavedContent: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - InterleavedContentItem: - oneOf: - - $ref: '#/components/schemas/ImageContentItem' - - $ref: '#/components/schemas/TextContentItem' - discriminator: - propertyName: type - mapping: - image: '#/components/schemas/ImageContentItem' - text: '#/components/schemas/TextContentItem' - TextContentItem: - type: object - properties: - type: - type: string - const: text - default: text - description: >- - Discriminator type of the content item. Always "text" - text: - type: string - description: Text content - additionalProperties: false - required: - - type - - text - title: TextContentItem - description: A text content item - ToolInvocationResult: - type: object - properties: - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) The output content from the tool execution - error_message: - type: string - description: >- - (Optional) Error message if the tool execution failed - error_code: - type: integer - description: >- - (Optional) Numeric error code if the tool execution failed - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool execution - additionalProperties: false - title: ToolInvocationResult - description: Result of a tool invocation. - URL: - type: object - properties: - uri: - type: string - description: The URL string pointing to the resource - additionalProperties: false - required: - - uri - title: URL - description: A URL reference to external content. - ToolDef: - type: object - properties: - toolgroup_id: - type: string - description: >- - (Optional) ID of the tool group this tool belongs to - name: - type: string - description: Name of the tool - description: - type: string - description: >- - (Optional) Human-readable description of what the tool does - input_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON Schema for tool inputs (MCP inputSchema) - output_schema: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) JSON Schema for tool outputs (MCP outputSchema) - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool - additionalProperties: false - required: - - name - title: ToolDef - description: >- - Tool definition used in runtime contexts. - ListToolDefsResponse: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ToolDef' - description: List of tool definitions - additionalProperties: false - required: - - data - title: ListToolDefsResponse - description: >- - Response containing a list of tool definitions. - RAGDocument: - type: object - properties: - document_id: - type: string - description: The unique identifier for the document. - content: - oneOf: - - type: string - - $ref: '#/components/schemas/InterleavedContentItem' - - type: array - items: - $ref: '#/components/schemas/InterleavedContentItem' - - $ref: '#/components/schemas/URL' - description: The content of the document. - mime_type: - type: string - description: The MIME type of the document. - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: Additional metadata for the document. - additionalProperties: false - required: - - document_id - - content - - metadata - title: RAGDocument - description: >- - A document to be used for document ingestion in the RAG Tool. - InsertRequest: - type: object - properties: - documents: - type: array - items: - $ref: '#/components/schemas/RAGDocument' - description: >- - List of documents to index in the RAG system - vector_store_id: - type: string - description: >- - ID of the vector database to store the document embeddings - chunk_size_in_tokens: - type: integer - description: >- - (Optional) Size in tokens for document chunking during indexing - additionalProperties: false - required: - - documents - - vector_store_id - - chunk_size_in_tokens - title: InsertRequest - DefaultRAGQueryGeneratorConfig: - type: object - properties: - type: - type: string - const: default - default: default - description: >- - Type of query generator, always 'default' - separator: - type: string - default: ' ' - description: >- - String separator used to join query terms - additionalProperties: false - required: - - type - - separator - title: DefaultRAGQueryGeneratorConfig - description: >- - Configuration for the default RAG query generator. - LLMRAGQueryGeneratorConfig: - type: object - properties: - type: - type: string - const: llm - default: llm - description: Type of query generator, always 'llm' - model: - type: string - description: >- - Name of the language model to use for query generation - template: - type: string - description: >- - Template string for formatting the query generation prompt - additionalProperties: false - required: - - type - - model - - template - title: LLMRAGQueryGeneratorConfig - description: >- - Configuration for the LLM-based RAG query generator. - RAGQueryConfig: - type: object - properties: - query_generator_config: - oneOf: - - $ref: '#/components/schemas/DefaultRAGQueryGeneratorConfig' - - $ref: '#/components/schemas/LLMRAGQueryGeneratorConfig' - discriminator: - propertyName: type - mapping: - default: '#/components/schemas/DefaultRAGQueryGeneratorConfig' - llm: '#/components/schemas/LLMRAGQueryGeneratorConfig' - description: Configuration for the query generator. - max_tokens_in_context: - type: integer - default: 4096 - description: Maximum number of tokens in the context. - max_chunks: - type: integer - default: 5 - description: Maximum number of chunks to retrieve. - chunk_template: - type: string - default: > - Result {index} - - - :param params: (Optional) Configuration parameters for the shield - - :param type: The resource type, always shield - properties: - identifier: - description: >- - Unique identifier for this resource in llama stack - title: Identifier - type: string - provider_resource_id: - anyOf: - - type: string - - type: 'null' - description: >- - Unique identifier for this resource in the provider - title: Provider Resource Id - provider_id: - description: >- - ID of the provider that owns this resource - title: Provider Id - type: string - type: - const: shield - default: shield - title: Type - type: string - params: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Params - required: - - identifier - - provider_id - title: Shield - type: object - SyntheticDataGenerateRequest: - type: object - SyntheticDataGenerationResponse: - description: >- - Response from the synthetic data generation. Batch of (prompt, response, score) - tuples that pass the threshold. - - - :param synthetic_data: List of generated synthetic data samples that passed - the filtering criteria - - :param statistics: (Optional) Statistical information about the generation - process and filtering results - properties: - synthetic_data: - items: - additionalProperties: true - type: object - title: Synthetic Data - type: array - statistics: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Statistics - required: - - synthetic_data - title: SyntheticDataGenerationResponse - type: object - InvokeToolRequest: - type: object - ToolInvocationResult: - $defs: - ImageContentItem: - description: >- - A image content item - - - :param type: Discriminator type of the content item. Always "image" - - :param image: Image as a base64 encoded string or an URL - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/$defs/_URLOrData' - required: - - image - title: ImageContentItem - type: object - TextContentItem: - description: >- - A text content item - - - :param type: Discriminator type of the content item. Always "text" - - :param text: Text content - properties: - type: - const: text - default: text - title: Type - type: string - text: - title: Text - type: string - required: - - text - title: TextContentItem - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - _URLOrData: - description: >- - A URL or a base64 encoded string - - - :param url: A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - - :param data: base64 encoded image data as string - properties: - url: - anyOf: - - $ref: '#/$defs/URL' - - type: 'null' - data: - anyOf: - - type: string - - type: 'null' - contentEncoding: base64 - title: Data - title: _URLOrData - type: object - description: >- - Result of a tool invocation. - - - :param content: (Optional) The output content from the tool execution - - :param error_message: (Optional) Error message if the tool execution failed - - :param error_code: (Optional) Numeric error code if the tool execution failed - - :param metadata: (Optional) Additional metadata about the tool execution - properties: - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - type: 'null' - title: Content - error_message: - anyOf: - - type: string - - type: 'null' - title: Error Message - error_code: - anyOf: - - type: integer - - type: 'null' - title: Error Code - metadata: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Metadata - title: ToolInvocationResult - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - ListToolDefsResponse: - description: Response containing a list of tool definitions. - properties: - data: - items: - $ref: '#/components/schemas/ToolDef' - title: Data - type: array - required: - - data - title: ListToolDefsResponse - type: object - VectorStoreDeleteResponse: - description: Response from deleting a vector store. - properties: - id: - title: Id - type: string - object: - default: vector_store.deleted - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: VectorStoreDeleteResponse - type: object - VectorStoreFileContentsResponse: - description: Response from retrieving the contents of a vector store file. - properties: - file_id: - title: File Id - type: string - filename: - title: Filename - type: string - attributes: - additionalProperties: true - title: Attributes - type: object - content: - items: - $ref: '#/components/schemas/VectorStoreContent' - title: Content - type: array - required: - - file_id - - filename - - attributes - - content - title: VectorStoreFileContentsResponse - type: object - VectorStoreFileDeleteResponse: - description: Response from deleting a vector store file. - properties: - id: - title: Id - type: string - object: - default: vector_store.file.deleted - title: Object - type: string - deleted: - default: true - title: Deleted - type: boolean - required: - - id - title: VectorStoreFileDeleteResponse - type: object - VectorStoreFilesListInBatchResponse: - description: Response from listing files in a vector store file batch. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreFileObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreFilesListInBatchResponse - type: object - VectorStoreListFilesResponse: - description: Response from listing files in a vector store. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreFileObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreListFilesResponse - type: object - VectorStoreListResponse: - description: Response from listing vector stores. - properties: - object: - default: list - title: Object - type: string - data: - items: - $ref: '#/components/schemas/VectorStoreObject' - title: Data - type: array - first_id: - title: First Id - type: string - nullable: true - last_id: - title: Last Id - type: string - nullable: true - has_more: - default: false - title: Has More - type: boolean - required: - - data - title: VectorStoreListResponse - type: object - OpenAIResponseMessage: - description: "Corresponds to the various Message types in the Responses API.\nThey are all under one type because the Responses API gives them all\nthe same \"type\" value, and there is no way to tell them apart in certain\nscenarios." - properties: - content: - anyOf: - - type: string - - items: - discriminator: - mapping: - input_file: '#/$defs/OpenAIResponseInputMessageContentFile' - input_image: '#/$defs/OpenAIResponseInputMessageContentImage' - input_text: '#/$defs/OpenAIResponseInputMessageContentText' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentText' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentImage' - - $ref: '#/components/schemas/OpenAIResponseInputMessageContentFile' - type: array - - items: - discriminator: - mapping: - output_text: '#/$defs/OpenAIResponseOutputMessageContentOutputText' - refusal: '#/$defs/OpenAIResponseContentPartRefusal' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseOutputMessageContentOutputText' - - $ref: '#/components/schemas/OpenAIResponseContentPartRefusal' - type: array - title: Content - role: - anyOf: - - const: system - type: string - - const: developer - type: string - - const: user - type: string - - const: assistant - type: string - title: Role - type: - const: message - default: message - title: Type - type: string - id: - title: Id - type: string - nullable: true - status: - title: Status - type: string - nullable: true - required: - - content - - role - title: OpenAIResponseMessage - type: object - OpenAIResponseObjectWithInput: - description: OpenAI response object extended with input context information. - properties: - created_at: - title: Created At - type: integer - error: - $ref: '#/components/schemas/OpenAIResponseError' - nullable: true - id: - title: Id - type: string - model: - title: Model - type: string - required: - - session_id - title: AgentSessionCreateResponse - description: >- - Response returned when creating a new agent session. - CompletionMessage: - type: object - properties: - role: - type: string - const: assistant - default: assistant - description: >- - Must be "assistant" to identify this as the model's response - content: - $ref: '#/components/schemas/InterleavedContent' - description: The content of the model's response - stop_reason: - type: string - enum: - - end_of_turn - - end_of_message - - out_of_tokens - description: >- - Reason why the model stopped generating. Options are: - `StopReason.end_of_turn`: - The model finished generating the entire response. - `StopReason.end_of_message`: - The model finished generating but generated a partial response -- usually, - a tool call. The user may call the tool and continue the conversation - with the tool's response. - `StopReason.out_of_tokens`: The model ran - out of token budget. - tool_calls: - type: array - items: - $ref: '#/components/schemas/ToolCall' - description: >- - List of tool calls. Each tool call is a ToolCall object. - additionalProperties: false - required: - - role - - content - - stop_reason - title: CompletionMessage - description: >- - A message containing the model's (assistant) response in a chat conversation. - InferenceStep: - type: object - Session: - $defs: - Attachment: - description: >- - An attachment to an agent turn. - - - :param content: The content of the attachment. - - :param mime_type: The MIME type of the attachment. - properties: - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - $ref: '#/$defs/URL' - title: Content - mime_type: - title: Mime Type - type: string - required: - - content - - mime_type - title: Attachment - type: object - BuiltinTool: - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - type: string - CompletionMessage: - description: >- - A message containing the model's (assistant) response in a chat conversation. - - - :param role: Must be "assistant" to identify this as the model's response - - :param content: The content of the model's response - - :param stop_reason: Reason why the model stopped generating. Options are: - - `StopReason.end_of_turn`: The model finished generating the entire - response. - - `StopReason.end_of_message`: The model finished generating but generated - a partial response -- usually, a tool call. The user may call the tool - and continue the conversation with the tool's response. - - `StopReason.out_of_tokens`: The model ran out of token budget. - :param tool_calls: List of tool calls. Each tool call is a ToolCall object. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - stop_reason: - $ref: '#/$defs/StopReason' - tool_calls: - anyOf: - - items: - $ref: '#/$defs/ToolCall' - type: array - - type: 'null' - title: Tool Calls - required: - - content - - stop_reason - title: CompletionMessage - type: object - ImageContentItem: - description: >- - A image content item - - - :param type: Discriminator type of the content item. Always "image" - - :param image: Image as a base64 encoded string or an URL - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/$defs/_URLOrData' - required: - - image - title: ImageContentItem - type: object - InferenceStep: - description: >- - An inference step in an agent turn. - - - :param model_response: The response from the LLM. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: inference - default: inference - title: Step Type - type: string - model_response: - $ref: '#/$defs/CompletionMessage' - required: - - turn_id - - step_id - - model_response - title: InferenceStep - type: object - MemoryRetrievalStep: - description: >- - A memory retrieval step in an agent turn. - - - :param vector_store_ids: The IDs of the vector databases to retrieve context - from. - - :param inserted_context: The context retrieved from the vector databases. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: memory_retrieval - default: memory_retrieval - title: Step Type - type: string - vector_store_ids: - title: Vector Store Ids - type: string - inserted_context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Inserted Context - required: - - turn_id - - step_id - - vector_store_ids - - inserted_context - title: MemoryRetrievalStep - type: object - SafetyViolation: - description: >- - Details of a safety violation detected by content moderation. - - - :param violation_level: Severity level of the violation - - :param user_message: (Optional) Message to convey to the user about the - violation - - :param metadata: Additional metadata including specific violation codes - for debugging and telemetry - properties: - violation_level: - $ref: '#/$defs/ViolationLevel' - user_message: - anyOf: - - type: string - - type: 'null' - title: User Message - metadata: - additionalProperties: true - title: Metadata - type: object - required: - - violation_level - title: SafetyViolation - type: object - ShieldCallStep: - description: >- - A shield call step in an agent turn. - - - :param violation: The violation from the shield call. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: shield_call - default: shield_call - title: Step Type - type: string - violation: - anyOf: - - $ref: '#/$defs/SafetyViolation' - - type: 'null' - required: - - turn_id - - step_id - - violation - title: ShieldCallStep - type: object - StopReason: - enum: - - end_of_turn - - end_of_message - - out_of_tokens - title: StopReason - type: string - TextContentItem: - description: >- - A text content item - - - :param type: Discriminator type of the content item. Always "text" - - :param text: Text content - properties: - type: - const: text - default: text - title: Type - type: string - text: - title: Text - type: string - required: - - text - title: TextContentItem - type: object - ToolCall: - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - arguments: - title: Arguments - type: string - required: - - call_id - - tool_name - - arguments - title: ToolCall - type: object - ToolExecutionStep: - description: >- - A tool execution step in an agent turn. - - - :param tool_calls: The tool calls to execute. - - :param tool_responses: The tool responses from the tool calls. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: tool_execution - default: tool_execution - title: Step Type - type: string - tool_calls: - items: - $ref: '#/$defs/ToolCall' - title: Tool Calls - type: array - tool_responses: - items: - $ref: '#/$defs/ToolResponse' - title: Tool Responses - type: array - required: - - turn_id - - step_id - - tool_calls - - tool_responses - title: ToolExecutionStep - type: object - ToolResponse: - description: >- - Response from a tool invocation. - - - :param call_id: Unique identifier for the tool call this response is for - - :param tool_name: Name of the tool that was invoked - - :param content: The response content from the tool - - :param metadata: (Optional) Additional metadata about the tool response - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - metadata: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Metadata - required: - - call_id - - tool_name - - content - title: ToolResponse - type: object - ToolResponseMessage: - description: >- - A message representing the result of a tool invocation. - - - :param role: Must be "tool" to identify this as a tool response - - :param call_id: Unique identifier for the tool call this response is for - - :param content: The response content from the tool - properties: - role: - const: tool - default: tool - title: Role - type: string - call_id: - title: Call Id - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - required: - - call_id - - content - title: ToolResponseMessage - type: object - Turn: - description: >- - A single turn in an interaction with an Agentic System. - - - :param turn_id: Unique identifier for the turn within a session - - :param session_id: Unique identifier for the conversation session - - :param input_messages: List of messages that initiated this turn - - :param steps: Ordered list of processing steps executed during this turn - - :param output_message: The model's generated response containing content - and metadata - - :param output_attachments: (Optional) Files or media attached to the agent's - response - - :param started_at: Timestamp when the turn began - - :param completed_at: (Optional) Timestamp when the turn finished, if completed - properties: - turn_id: - title: Turn Id - type: string - session_id: - title: Session Id - type: string - input_messages: - items: - anyOf: - - $ref: '#/$defs/UserMessage' - - $ref: '#/$defs/ToolResponseMessage' - title: Input Messages - type: array - steps: - items: - discriminator: - mapping: - inference: '#/$defs/InferenceStep' - memory_retrieval: '#/$defs/MemoryRetrievalStep' - shield_call: '#/$defs/ShieldCallStep' - tool_execution: '#/$defs/ToolExecutionStep' - propertyName: step_type - oneOf: - - $ref: '#/$defs/InferenceStep' - - $ref: '#/$defs/ToolExecutionStep' - - $ref: '#/$defs/ShieldCallStep' - - $ref: '#/$defs/MemoryRetrievalStep' - title: Steps - type: array - output_message: - $ref: '#/$defs/CompletionMessage' - output_attachments: - anyOf: - - items: - $ref: '#/$defs/Attachment' - type: array - - type: 'null' - title: Output Attachments - started_at: - format: date-time - title: Started At - type: string - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - required: - - turn_id - - session_id - - input_messages - - steps - - output_message - - started_at - title: Turn - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - UserMessage: - description: >- - A message from the user in a chat conversation. - - - :param role: Must be "user" to identify this as a user message - - :param content: The content of the message, which can include text and - other media - - :param context: (Optional) This field is used internally by Llama Stack - to pass RAG context. This field may be removed in the API in the future. - properties: - role: - const: user - default: user - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - type: 'null' - title: Context - required: - - content - title: UserMessage - type: object - ViolationLevel: - description: >- - Severity level of a safety violation. - - - :cvar INFO: Informational level violation that does not require action - - :cvar WARN: Warning level violation that suggests caution but allows continuation - - :cvar ERROR: Error level violation that requires blocking or intervention - enum: - - info - - warn - - error - title: ViolationLevel - type: string - _URLOrData: - description: >- - A URL or a base64 encoded string - - - :param url: A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - - :param data: base64 encoded image data as string - properties: - url: - anyOf: - - $ref: '#/$defs/URL' - - type: 'null' - data: - anyOf: - - type: string - - type: 'null' - contentEncoding: base64 - title: Data - title: _URLOrData - type: object - description: >- - A single session of an interaction with an Agentic System. - - - :param session_id: Unique identifier for the conversation session - - :param session_name: Human-readable name for the session - - :param turns: List of all turns that have occurred in this session - - :param started_at: Timestamp when the session was created - properties: - session_id: - title: Session Id - type: string - session_name: - title: Session Name - type: string - turns: - items: - $ref: '#/$defs/Turn' - title: Turns - type: array - started_at: - format: date-time - title: Started At - type: string - required: - - session_id - - session_name - - turns - - started_at - title: Session - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: shield_call - default: shield_call - violation: - $ref: '#/components/schemas/SafetyViolation' - description: The violation from the shield call. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - title: ShieldCallStep - description: A shield call step in an agent turn. - ToolCall: - type: object - properties: - call_id: - type: string - tool_name: - oneOf: - - type: string - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - - type: string - arguments: - type: string - additionalProperties: false - required: - - call_id - - tool_name - - arguments - title: ToolCall - ToolExecutionStep: - type: object - properties: - turn_id: - type: string - description: The ID of the turn. - step_id: - type: string - description: The ID of the step. - started_at: - type: string - format: date-time - description: The time the step started. - completed_at: - type: string - format: date-time - description: The time the step completed. - step_type: - type: string - enum: - - inference - - tool_execution - - shield_call - - memory_retrieval - title: StepType - description: Type of the step in an agent turn. - const: tool_execution - default: tool_execution - tool_calls: - type: array - items: - $ref: '#/components/schemas/ToolCall' - description: The tool calls to execute. - tool_responses: - type: array - items: - $ref: '#/components/schemas/ToolResponse' - description: The tool responses from the tool calls. - additionalProperties: false - required: - - turn_id - - step_id - - step_type - - tool_calls - - tool_responses - title: ToolExecutionStep - description: A tool execution step in an agent turn. - ToolResponse: - type: object - properties: - call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - tool_name: - oneOf: - - type: string - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - - type: string - description: Name of the tool that was invoked - content: - $ref: '#/components/schemas/InterleavedContent' - description: The response content from the tool - metadata: - type: object - additionalProperties: - oneOf: - - type: 'null' - - type: boolean - - type: number - - type: string - - type: array - - type: object - description: >- - (Optional) Additional metadata about the tool response - additionalProperties: false - required: - - call_id - - tool_name - - content - title: ToolResponse - description: Response from a tool invocation. - ToolResponseMessage: - type: object - properties: - role: - type: string - const: tool - default: tool - description: >- - Must be "tool" to identify this as a tool response - call_id: - type: string - description: >- - Unique identifier for the tool call this response is for - content: - $ref: '#/components/schemas/InterleavedContent' - description: The response content from the tool - additionalProperties: false - required: - - role - - call_id - - content - title: ToolResponseMessage - description: >- - A message representing the result of a tool invocation. - Turn: - $defs: - Attachment: - description: >- - An attachment to an agent turn. - - - :param content: The content of the attachment. - - :param mime_type: The MIME type of the attachment. - properties: - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - $ref: '#/$defs/URL' - title: Content - mime_type: - title: Mime Type - type: string - required: - - content - - mime_type - title: Attachment - type: object - BuiltinTool: - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - type: string - CompletionMessage: - description: >- - A message containing the model's (assistant) response in a chat conversation. - - - :param role: Must be "assistant" to identify this as the model's response - - :param content: The content of the model's response - - :param stop_reason: Reason why the model stopped generating. Options are: - - `StopReason.end_of_turn`: The model finished generating the entire - response. - - `StopReason.end_of_message`: The model finished generating but generated - a partial response -- usually, a tool call. The user may call the tool - and continue the conversation with the tool's response. - - `StopReason.out_of_tokens`: The model ran out of token budget. - :param tool_calls: List of tool calls. Each tool call is a ToolCall object. - properties: - role: - const: assistant - default: assistant - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - stop_reason: - $ref: '#/$defs/StopReason' - tool_calls: - anyOf: - - items: - $ref: '#/$defs/ToolCall' - type: array - - type: 'null' - title: Tool Calls - required: - - content - - stop_reason - title: CompletionMessage - type: object - ImageContentItem: - description: >- - A image content item - - - :param type: Discriminator type of the content item. Always "image" - - :param image: Image as a base64 encoded string or an URL - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/$defs/_URLOrData' - required: - - image - title: ImageContentItem - type: object - InferenceStep: - description: >- - An inference step in an agent turn. - - - :param model_response: The response from the LLM. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: inference - default: inference - title: Step Type - type: string - model_response: - $ref: '#/$defs/CompletionMessage' - required: - - turn_id - - step_id - - model_response - title: InferenceStep - type: object - MemoryRetrievalStep: - description: >- - A memory retrieval step in an agent turn. - - - :param vector_store_ids: The IDs of the vector databases to retrieve context - from. - - :param inserted_context: The context retrieved from the vector databases. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: memory_retrieval - default: memory_retrieval - title: Step Type - type: string - vector_store_ids: - title: Vector Store Ids - type: string - inserted_context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Inserted Context - required: - - turn_id - - step_id - - vector_store_ids - - inserted_context - title: MemoryRetrievalStep - type: object - SafetyViolation: - description: >- - Details of a safety violation detected by content moderation. - - - :param violation_level: Severity level of the violation - - :param user_message: (Optional) Message to convey to the user about the - violation - - :param metadata: Additional metadata including specific violation codes - for debugging and telemetry - properties: - violation_level: - $ref: '#/$defs/ViolationLevel' - user_message: - anyOf: - - type: string - - type: 'null' - title: User Message - metadata: - additionalProperties: true - title: Metadata - type: object - required: - - violation_level - title: SafetyViolation - type: object - ShieldCallStep: - description: >- - A shield call step in an agent turn. - - - :param violation: The violation from the shield call. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: shield_call - default: shield_call - title: Step Type - type: string - violation: - anyOf: - - $ref: '#/$defs/SafetyViolation' - - type: 'null' - required: - - turn_id - - step_id - - violation - title: ShieldCallStep - type: object - StopReason: - enum: - - end_of_turn - - end_of_message - - out_of_tokens - title: StopReason - type: string - TextContentItem: - description: >- - A text content item - - - :param type: Discriminator type of the content item. Always "text" - - :param text: Text content - properties: - type: - const: text - default: text - title: Type - type: string - text: - title: Text - type: string - required: - - text - title: TextContentItem - type: object - ToolCall: - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - arguments: - title: Arguments - type: string - required: - - call_id - - tool_name - - arguments - title: ToolCall - type: object - ToolExecutionStep: - description: >- - A tool execution step in an agent turn. - - - :param tool_calls: The tool calls to execute. - - :param tool_responses: The tool responses from the tool calls. - properties: - turn_id: - title: Turn Id - type: string - step_id: - title: Step Id - type: string - started_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Started At - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - step_type: - const: tool_execution - default: tool_execution - title: Step Type - type: string - tool_calls: - items: - $ref: '#/$defs/ToolCall' - title: Tool Calls - type: array - tool_responses: - items: - $ref: '#/$defs/ToolResponse' - title: Tool Responses - type: array - required: - - turn_id - - step_id - - tool_calls - - tool_responses - title: ToolExecutionStep - type: object - ToolResponse: - description: >- - Response from a tool invocation. - - - :param call_id: Unique identifier for the tool call this response is for - - :param tool_name: Name of the tool that was invoked - - :param content: The response content from the tool - - :param metadata: (Optional) Additional metadata about the tool response - properties: - call_id: - title: Call Id - type: string - tool_name: - anyOf: - - $ref: '#/$defs/BuiltinTool' - - type: string - title: Tool Name - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - metadata: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Metadata - required: - - call_id - - tool_name - - content - title: ToolResponse - type: object - ToolResponseMessage: - description: >- - A message representing the result of a tool invocation. - - - :param role: Must be "tool" to identify this as a tool response - - :param call_id: Unique identifier for the tool call this response is for - - :param content: The response content from the tool - properties: - role: - const: tool - default: tool - title: Role - type: string - call_id: - title: Call Id - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - required: - - call_id - - content - title: ToolResponseMessage - type: object - URL: - description: >- - A URL reference to external content. - - - :param uri: The URL string pointing to the resource - properties: - uri: - title: Uri - type: string - required: - - uri - title: URL - type: object - UserMessage: - description: >- - A message from the user in a chat conversation. - - - :param role: Must be "user" to identify this as a user message - - :param content: The content of the message, which can include text and - other media - - :param context: (Optional) This field is used internally by Llama Stack - to pass RAG context. This field may be removed in the API in the future. - properties: - role: - const: user - default: user - title: Role - type: string - content: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - title: Content - context: - anyOf: - - type: string - - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - - items: - discriminator: - mapping: - image: '#/$defs/ImageContentItem' - text: '#/$defs/TextContentItem' - propertyName: type - oneOf: - - $ref: '#/$defs/ImageContentItem' - - $ref: '#/$defs/TextContentItem' - type: array - - type: 'null' - title: Context - required: - - content - title: UserMessage - type: object - ViolationLevel: - description: >- - Severity level of a safety violation. - - - :cvar INFO: Informational level violation that does not require action - - :cvar WARN: Warning level violation that suggests caution but allows continuation - - :cvar ERROR: Error level violation that requires blocking or intervention - enum: - - info - - warn - - error - title: ViolationLevel - type: string - _URLOrData: - description: >- - A URL or a base64 encoded string - - - :param url: A URL of the image or data URL in the format of data:image/{type};base64,{data}. - Note that URL could have length limits. - - :param data: base64 encoded image data as string - properties: - url: - anyOf: - - $ref: '#/$defs/URL' - - type: 'null' - data: - anyOf: - - type: string - - type: 'null' - contentEncoding: base64 - title: Data - title: _URLOrData - type: object - description: >- - A single turn in an interaction with an Agentic System. - - - :param turn_id: Unique identifier for the turn within a session - - :param session_id: Unique identifier for the conversation session - - :param input_messages: List of messages that initiated this turn - - :param steps: Ordered list of processing steps executed during this turn - - :param output_message: The model's generated response containing content and - metadata - - :param output_attachments: (Optional) Files or media attached to the agent's - response - - :param started_at: Timestamp when the turn began - - :param completed_at: (Optional) Timestamp when the turn finished, if completed - properties: - turn_id: - title: Turn Id - type: string - session_id: - title: Session Id - type: string - input_messages: - items: - anyOf: - - $ref: '#/$defs/UserMessage' - - $ref: '#/$defs/ToolResponseMessage' - title: Input Messages - type: array - steps: - items: - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - title: Output - type: array - parallel_tool_calls: - default: false - title: Parallel Tool Calls - type: boolean - previous_response_id: - title: Previous Response Id - type: string - completed_at: - anyOf: - - format: date-time - type: string - - type: 'null' - title: Completed At - required: - - turn_id - - session_id - - input_messages - - steps - - output_message - - started_at - title: Turn - description: >- - A single turn in an interaction with an Agentic System. - UserMessage: - type: object - properties: - role: - type: string - const: user - default: user - description: >- - Must be "user" to identify this as a user message - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content of the message, which can include text and other media - context: - $ref: '#/components/schemas/InterleavedContent' - description: >- - (Optional) This field is used internally by Llama Stack to pass RAG context. - This field may be removed in the API in the future. - additionalProperties: false - required: - - role - - content - title: UserMessage - description: >- - A message from the user in a chat conversation. - CreateAgentTurnRequest: - type: object - ResumeAgentTurnRequest: - type: object - AgentStepResponse: - $defs: - BuiltinTool: - enum: - - brave_search - - wolfram_alpha - - photogen - - code_interpreter - title: BuiltinTool - type: string - temperature: - title: Temperature - type: number - nullable: true - text: - $ref: '#/components/schemas/OpenAIResponseText' - default: - format: - type: text - top_p: - title: Top P - type: number - nullable: true - tools: - title: Tools - items: - discriminator: - mapping: - file_search: '#/$defs/OpenAIResponseInputToolFileSearch' - function: '#/$defs/OpenAIResponseInputToolFunction' - mcp: '#/$defs/OpenAIResponseToolMCP' - web_search: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview: '#/$defs/OpenAIResponseInputToolWebSearch' - web_search_preview_2025_03_11: '#/$defs/OpenAIResponseInputToolWebSearch' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseInputToolWebSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFileSearch' - - $ref: '#/components/schemas/OpenAIResponseInputToolFunction' - - $ref: '#/components/schemas/OpenAIResponseToolMCP' - type: array - nullable: true - truncation: - title: Truncation - type: string - nullable: true - usage: - $ref: '#/components/schemas/OpenAIResponseUsage' - nullable: true - instructions: - title: Instructions - type: string - nullable: true - input: - items: - anyOf: - - discriminator: - mapping: - file_search_call: '#/$defs/OpenAIResponseOutputMessageFileSearchToolCall' - function_call: '#/$defs/OpenAIResponseOutputMessageFunctionToolCall' - mcp_approval_request: '#/$defs/OpenAIResponseMCPApprovalRequest' - mcp_call: '#/$defs/OpenAIResponseOutputMessageMCPCall' - mcp_list_tools: '#/$defs/OpenAIResponseOutputMessageMCPListTools' - message: '#/$defs/OpenAIResponseMessage' - web_search_call: '#/$defs/OpenAIResponseOutputMessageWebSearchToolCall' - propertyName: type - oneOf: - - $ref: '#/components/schemas/OpenAIResponseMessage' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageWebSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFileSearchToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageFunctionToolCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPCall' - - $ref: '#/components/schemas/OpenAIResponseOutputMessageMCPListTools' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalRequest' - - $ref: '#/components/schemas/OpenAIResponseInputFunctionToolCallOutput' - - $ref: '#/components/schemas/OpenAIResponseMCPApprovalResponse' - - $ref: '#/components/schemas/OpenAIResponseMessage' - title: Input - type: array - required: - - created_at - - id - - model - - output - - status - - input - title: OpenAIResponseObjectWithInput - type: object - ImageContentItem: - description: A image content item - properties: - type: - const: image - default: image - title: Type - type: string - image: - $ref: '#/components/schemas/_URLOrData' - required: - - image - title: ImageContentItem - type: object - properties: - type: - type: string - const: agent - default: agent - config: - $ref: '#/components/schemas/AgentConfig' - description: >- - The configuration for the agent candidate. - additionalProperties: false - required: - - type - - config - title: AgentCandidate - description: An agent candidate for evaluation. - BenchmarkConfig: - type: object - properties: - eval_candidate: - oneOf: - - $ref: '#/components/schemas/ModelCandidate' - - $ref: '#/components/schemas/AgentCandidate' - discriminator: - propertyName: type - mapping: - model: '#/components/schemas/ModelCandidate' - agent: '#/components/schemas/AgentCandidate' - description: The candidate to evaluate. - scoring_params: - type: object - additionalProperties: - $ref: '#/components/schemas/ScoringFnParams' - description: >- - Map between scoring function id and parameters for each scoring function - you want to run - num_examples: - type: integer - description: >- - (Optional) The number of examples to evaluate. If not provided, all examples - in the dataset will be evaluated - additionalProperties: false - required: - - eval_candidate - - scoring_params - title: BenchmarkConfig - description: >- - A benchmark configuration for evaluation. - ModelCandidate: - type: object - properties: - type: - type: string - const: model - default: model - model: - type: string - description: The model ID to evaluate. - sampling_params: - $ref: '#/components/schemas/SamplingParams' - description: The sampling parameters for the model. - system_message: - $ref: '#/components/schemas/SystemMessage' - description: >- - (Optional) The system message providing instructions or context to the - model. - additionalProperties: false - required: - - type - - model - - sampling_params - title: ModelCandidate - description: A model candidate for evaluation. - SystemMessage: - type: object - properties: - role: - type: string - const: system - default: system - description: >- - Must be "system" to identify this as a system message - content: - $ref: '#/components/schemas/InterleavedContent' - description: >- - The content of the "system prompt". If multiple system messages are provided, - they are concatenated. The underlying Llama Stack code may also add other - system messages (for example, for formatting tool definitions). - additionalProperties: false - required: - - role - - content - title: SystemMessage - description: >- - A system message providing instructions or context to the model. - EvaluateRowsRequest: - type: object - EvaluateResponse: - $defs: - ScoringResult: - description: >- - A scoring result for a single row. - - - :param score_rows: The scoring result for each row. Each row is a map - of column name to value. - - :param aggregated_results: Map of metric name to aggregated value - properties: - score_rows: - items: - additionalProperties: true - type: object - title: Score Rows - type: array - aggregated_results: - additionalProperties: true - title: Aggregated Results - type: object - required: - - score_rows - - aggregated_results - title: ScoringResult - type: object - description: >- - The response from an evaluation. - - - :param generations: The generations from the evaluation. - - :param scores: The scores from the evaluation. - properties: - epoch: - title: Epoch - type: integer - train_loss: - title: Train Loss - type: number - validation_loss: - title: Validation Loss - type: number - perplexity: - title: Perplexity - type: number - required: - - epoch - - train_loss - - validation_loss - - perplexity - title: PostTrainingMetric - type: object - _safety_run_shield_Request: - properties: - shield_id: - title: Shield Id - type: string - messages: - anyOf: - - $ref: '#/components/schemas/OpenAIUserMessageParam' - - $ref: '#/components/schemas/OpenAISystemMessageParam' - - $ref: '#/components/schemas/OpenAIAssistantMessageParam' - - $ref: '#/components/schemas/OpenAIToolMessageParam' - - $ref: '#/components/schemas/OpenAIDeveloperMessageParam' - title: Messages - params: - title: Params - type: string - required: - - shield_id - - messages - - params - title: _safety_run_shield_Request - type: object - responses: - BadRequest400: - description: The request was invalid or malformed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 400 - title: Bad Request - detail: The request was invalid or malformed - TooManyRequests429: - description: The client has sent too many requests in a given amount of time - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 429 - title: Too Many Requests - detail: You have exceeded the rate limit. Please try again later. - InternalServerError500: - description: The server encountered an unexpected error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 500 - title: Internal Server Error - detail: An unexpected error occurred. Our team has been notified. - DefaultError: - description: An unexpected error occurred - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: 0 - title: Error - detail: An unexpected error occurred -security: - - Default: [] -tags: - - name: Agents - description: >- - APIs for creating and interacting with agentic systems. - x-displayName: Agents - - name: Batches - description: >- - The API is designed to allow use of openai client libraries for seamless integration. - - - This API provides the following extensions: - - idempotent batch creation - - Note: This API is currently under active development and may undergo changes. - x-displayName: >- - The Batches API enables efficient processing of multiple requests in a single - operation, particularly useful for processing large datasets, batch evaluation - workflows, and cost-effective inference at scale. - - name: Benchmarks - description: '' - - name: Conversations - description: >- - Protocol for conversation management operations. - x-displayName: Conversations - - name: DatasetIO - description: '' - - name: Datasets - description: '' - - name: Eval - description: >- - Llama Stack Evaluation API for running evaluations on model and agent candidates. - x-displayName: Evaluations - - name: Files - description: >- - This API is used to upload documents that can be used with other Llama Stack - APIs. - x-displayName: Files - - name: Inference - description: >- - Llama Stack Inference API for generating completions, chat completions, and - embeddings. - - This API provides the raw interface to the underlying models. Three kinds - of models are supported: - - LLM models: these models generate "raw" and "chat" (conversational) completions. - - Embedding models: these models generate embeddings to be used for semantic - search. - - Rerank models: these models reorder the documents based on their relevance - to a query. - x-displayName: Inference - - name: Inspect - description: >- - APIs for inspecting the Llama Stack service, including health status, available - API routes with methods and implementing providers. - x-displayName: Inspect - - name: Models - description: '' - - name: PostTraining (Coming Soon) - description: '' - - name: Prompts - description: >- - Protocol for prompt management operations. - x-displayName: Prompts - - name: Providers - description: >- - Providers API for inspecting, listing, and modifying providers and their configurations. - x-displayName: Providers - - name: Safety - description: OpenAI-compatible Moderations API. - x-displayName: Safety - - name: Scoring - description: '' - - name: ScoringFunctions - description: '' - - name: Shields - description: '' - - name: ToolGroups - description: '' - - name: ToolRuntime - description: '' - - name: VectorIO - description: '' -x-tagGroups: - - name: Operations - tags: - - Agents - - Batches - - Benchmarks - - Conversations - - DatasetIO - - Datasets - - Eval - - Files - - Inference - - Inspect - - Models - - PostTraining (Coming Soon) - - Prompts - - Providers - - Safety - - Scoring - - ScoringFunctions - - Shields - - ToolGroups - - ToolRuntime - - VectorIO + description: A URL or a base64 encoded string. diff --git a/scripts/fastapi_generator.py b/scripts/fastapi_generator.py index 7a8b87afe..c0fa9bc4a 100755 --- a/scripts/fastapi_generator.py +++ b/scripts/fastapi_generator.py @@ -9,10 +9,10 @@ FastAPI-based OpenAPI generator for Llama Stack. """ -import inspect +import importlib import json from pathlib import Path -from typing import Annotated, Any, Literal, get_args, get_origin +from typing import Any import yaml from fastapi import FastAPI @@ -20,79 +20,15 @@ from fastapi.openapi.utils import get_openapi from openapi_spec_validator import validate_spec from openapi_spec_validator.exceptions import OpenAPISpecValidatorError -from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA, LLAMA_STACK_API_V1BETA +from llama_stack.core.distribution import INTERNAL_APIS, providable_apis from llama_stack.core.resolver import api_protocol_map -# Import the existing route discovery system -from llama_stack.core.server.routes import get_all_api_routes - -# Global list to store dynamic models created during endpoint generation -_dynamic_models = [] - -# Global mapping from (path, method) to webmethod for parameter description extraction -_path_webmethod_map: dict[tuple[str, str], Any] = {} - - -def _get_all_api_routes_with_functions(): - """ - Get all API routes with their actual function references. - This is a modified version of get_all_api_routes that includes the function. - """ - from aiohttp import hdrs - from starlette.routing import Route - - from llama_stack.apis.tools import RAGToolRuntime, SpecialToolGroup - - apis = {} - protocols = api_protocol_map() - toolgroup_protocols = { - SpecialToolGroup.rag_tool: RAGToolRuntime, - } - - for api, protocol in protocols.items(): - routes = [] - protocol_methods = inspect.getmembers(protocol, predicate=inspect.isfunction) - - # HACK ALERT - if api == Api.tool_runtime: - for tool_group in SpecialToolGroup: - sub_protocol = toolgroup_protocols[tool_group] - sub_protocol_methods = inspect.getmembers(sub_protocol, predicate=inspect.isfunction) - for name, method in sub_protocol_methods: - if not hasattr(method, "__webmethod__"): - continue - protocol_methods.append((f"{tool_group.value}.{name}", method)) - - for name, method in protocol_methods: - # Get all webmethods for this method (supports multiple decorators) - webmethods = getattr(method, "__webmethods__", []) - if not webmethods: - continue - - # Create routes for each webmethod decorator - for webmethod in webmethods: - path = f"/{webmethod.level}/{webmethod.route.lstrip('/')}" - if webmethod.method == hdrs.METH_GET: - http_method = hdrs.METH_GET - elif webmethod.method == hdrs.METH_DELETE: - http_method = hdrs.METH_DELETE - else: - http_method = hdrs.METH_POST - - # Store the function reference in the webmethod - webmethod.func = method - - routes.append((Route(path=path, methods=[http_method], name=name, endpoint=None), webmethod)) - - apis[api] = routes - - return apis - def create_llama_stack_app() -> FastAPI: """ Create a FastAPI app that represents the Llama Stack API. - This uses the existing route discovery system to automatically find all routes. + All APIs use FastAPI routers for OpenAPI generation. """ app = FastAPI( title="Llama Stack API", @@ -104,572 +40,57 @@ def create_llama_stack_app() -> FastAPI: ], ) - # Get all API routes using the modified system that includes functions - api_routes = _get_all_api_routes_with_functions() + # Import API modules to ensure routers are registered (they register on import) + # Import all providable APIs plus internal APIs that need routers + apis_to_import = set(providable_apis()) | INTERNAL_APIS - # Create FastAPI routes from the discovered routes - for _, routes in api_routes.items(): - for route, webmethod in routes: - # Store mapping for later use in parameter description extraction - for method in route.methods: - _path_webmethod_map[(route.path, method.lower())] = webmethod - # Convert the route to a FastAPI endpoint - _create_fastapi_endpoint(app, route, webmethod) - - return app - - -def _extract_path_parameters(path: str, webmethod=None) -> list[dict[str, Any]]: - """ - Extract path parameters from a URL path and return them as OpenAPI parameter definitions. - Parameters are returned in the order they appear in the docstring if available, - otherwise in the order they appear in the path. - - Args: - path: URL path with parameters like /v1/batches/{batch_id}/cancel - webmethod: Optional webmethod to extract parameter descriptions from docstring - - Returns: - List of parameter definitions for OpenAPI - """ - import re - - # Find all path parameters in the format {param} or {param:type} - param_pattern = r"\{([^}:]+)(?::[^}]+)?\}" - path_params = set(re.findall(param_pattern, path)) - - # Extract parameter descriptions and order from docstring if available - param_descriptions = {} - docstring_param_order = [] - if webmethod: - func = getattr(webmethod, "func", None) - if func and func.__doc__: - docstring = func.__doc__ - lines = docstring.split("\n") - for line in lines: - line = line.strip() - if line.startswith(":param "): - # Extract parameter name and description - # Format: :param param_name: description - parts = line[7:].split(":", 1) - if len(parts) == 2: - param_name = parts[0].strip() - description = parts[1].strip() - # Only track path parameters that exist in the path - if param_name in path_params: - if description: - param_descriptions[param_name] = description - if param_name not in docstring_param_order: - docstring_param_order.append(param_name) - - # Build parameters list preserving docstring order for path parameters found in docstring, - # then add any remaining path parameters in path order - parameters = [] - # First add parameters in docstring order - for param_name in docstring_param_order: - if param_name in path_params: - description = param_descriptions.get(param_name, f"Path parameter: {param_name}") - parameters.append( - { - "name": param_name, - "in": "path", - "required": True, - "schema": {"type": "string"}, - "description": description, - } - ) - # Then add any path parameters not in docstring, in path order - path_param_list = re.findall(param_pattern, path) - for param_name in path_param_list: - if param_name not in docstring_param_order: - description = param_descriptions.get(param_name, f"Path parameter: {param_name}") - parameters.append( - { - "name": param_name, - "in": "path", - "required": True, - "schema": {"type": "string"}, - "description": description, - } - ) - - return parameters - - -def _create_fastapi_endpoint(app: FastAPI, route, webmethod): - """ - Create a FastAPI endpoint from a discovered route and webmethod. - This creates endpoints with actual Pydantic models for proper schema generation. - """ - # Extract route information - path = route.path - methods = route.methods - name = route.name - - # Convert path parameters from {param} to {param:path} format for FastAPI - fastapi_path = path.replace("{", "{").replace("}", "}") - - # Try to find actual models for this endpoint - request_model, response_model, query_parameters = _find_models_for_endpoint(webmethod) - - # Debug: Print info for safety endpoints - if "safety" in webmethod.route or "shield" in webmethod.route: - print( - f"Debug: {webmethod.route} - request_model: {request_model}, response_model: {response_model}, query_parameters: {query_parameters}" - ) - - # Extract summary and response description from webmethod docstring - summary = _extract_summary_from_docstring(webmethod) - response_description = _extract_response_description_from_docstring(webmethod, response_model) - - # Create endpoint function with proper typing - if request_model and response_model: - # POST/PUT request with request body - async def typed_endpoint(request: request_model) -> response_model: - """Typed endpoint for proper schema generation.""" - return response_model() - - endpoint_func = typed_endpoint - elif response_model and query_parameters: - # Check if this is a POST/PUT endpoint with individual parameters - # For POST/PUT, individual parameters should go in request body, not query params - is_post_put = any(method.upper() in ["POST", "PUT", "PATCH"] for method in methods) - - if is_post_put: - # POST/PUT with individual parameters - create a request body model - try: - from pydantic import create_model - - # Create a dynamic Pydantic model for the request body - field_definitions = {} - for param_name, param_type, default_value in query_parameters: - # Handle complex types that might cause issues with create_model - safe_type = _make_type_safe_for_fastapi(param_type) - - if default_value is None: - field_definitions[param_name] = (safe_type, ...) # Required field - else: - field_definitions[param_name] = (safe_type, default_value) # Optional field with default - - # Create the request model dynamically - # Clean up the route name to create a valid schema name - clean_route = webmethod.route.replace("/", "_").replace("{", "").replace("}", "").replace("-", "_") - model_name = f"{clean_route}_Request" - - print(f"Debug: Creating model {model_name} with fields: {field_definitions}") - request_model = create_model(model_name, **field_definitions) - print(f"Debug: Successfully created model {model_name}") - - # Store the dynamic model in the global list for schema inclusion - _dynamic_models.append(request_model) - - # Create endpoint with request body - async def typed_endpoint(request: request_model) -> response_model: - """Typed endpoint for proper schema generation.""" - return response_model() - - # Set the function signature to ensure FastAPI recognizes the request model - typed_endpoint.__annotations__ = {"request": request_model, "return": response_model} - - endpoint_func = typed_endpoint - except Exception as e: - # If dynamic model creation fails, fall back to query parameters - print(f"Warning: Failed to create dynamic request model for {webmethod.route}: {e}") - print(f" Query parameters: {query_parameters}") - # Fall through to the query parameter handling - pass - - if not is_post_put: - # GET with query parameters - create a function with the actual query parameters - def create_query_endpoint_func(): - # Build the function signature dynamically - import inspect - - # Create parameter annotations - param_annotations = {} - param_defaults = {} - - for param_name, param_type, default_value in query_parameters: - # Handle problematic type annotations that cause FastAPI issues - safe_type = _make_type_safe_for_fastapi(param_type) - param_annotations[param_name] = safe_type - if default_value is not None: - param_defaults[param_name] = default_value - - # Create the function with the correct signature - def create_endpoint_func(): - # Sort parameters so that required parameters come before optional ones - # Parameters with None default are required, others are optional - sorted_params = sorted( - query_parameters, - key=lambda x: (x[2] is not None, x[0]), # False (required) comes before True (optional) - ) - - # Create the function signature - sig = inspect.Signature( - [ - inspect.Parameter( - name=param_name, - kind=inspect.Parameter.POSITIONAL_OR_KEYWORD, - default=default_value if default_value is not None else inspect.Parameter.empty, - annotation=param_annotations[param_name], - ) - for param_name, param_type, default_value in sorted_params - ] - ) - - # Create a simple function without **kwargs - async def query_endpoint(): - """Query endpoint for proper schema generation.""" - return response_model() - - # Set the signature and annotations - query_endpoint.__signature__ = sig - query_endpoint.__annotations__ = param_annotations - - return query_endpoint - - return create_endpoint_func() - - endpoint_func = create_query_endpoint_func() - elif response_model: - # Response-only endpoint (no parameters) - async def response_only_endpoint() -> response_model: - """Response-only endpoint for proper schema generation.""" - return response_model() - - endpoint_func = response_only_endpoint - else: - # Fallback to generic endpoint - async def generic_endpoint(*args, **kwargs): - """Generic endpoint - this would be replaced with actual implementation.""" - return {"message": f"Endpoint {name} not implemented in OpenAPI generator"} - - endpoint_func = generic_endpoint - - # Add the endpoint to the FastAPI app - is_deprecated = webmethod.deprecated or False - route_kwargs = { - "name": name, - "tags": [_get_tag_from_api(webmethod)], - "deprecated": is_deprecated, - "responses": { - 200: { - "description": response_description, - "content": { - "application/json": { - "schema": {"$ref": f"#/components/schemas/{response_model.__name__}"} if response_model else {} - } - }, - }, - 400: {"$ref": "#/components/responses/BadRequest400"}, - 429: {"$ref": "#/components/responses/TooManyRequests429"}, - 500: {"$ref": "#/components/responses/InternalServerError500"}, - "default": {"$ref": "#/components/responses/DefaultError"}, - }, + # Map API enum values to their actual module names (for APIs where they differ) + api_module_map = { + "tool_runtime": "tools", + "tool_groups": "tools", } - if summary: - route_kwargs["summary"] = summary + imported_modules = set() + for api in apis_to_import: + module_name = api_module_map.get(api.value, api.value) # type: ignore[attr-defined] - for method in methods: - if method.upper() == "GET": - app.get(fastapi_path, **route_kwargs)(endpoint_func) - elif method.upper() == "POST": - app.post(fastapi_path, **route_kwargs)(endpoint_func) - elif method.upper() == "PUT": - app.put(fastapi_path, **route_kwargs)(endpoint_func) - elif method.upper() == "DELETE": - app.delete(fastapi_path, **route_kwargs)(endpoint_func) - elif method.upper() == "PATCH": - app.patch(fastapi_path, **route_kwargs)(endpoint_func) - - -def _extract_summary_from_docstring(webmethod) -> str | None: - """ - Extract summary from the actual function docstring. - The summary is typically the first non-empty line of the docstring, - before any :param:, :returns:, or other docstring field markers. - """ - func = getattr(webmethod, "func", None) - if not func: - return None - - docstring = func.__doc__ or "" - if not docstring: - return None - - lines = docstring.split("\n") - for line in lines: - line = line.strip() - if not line: + # Skip if we've already imported this module (e.g., both tool_runtime and tool_groups use 'tools') + if module_name in imported_modules: continue - if line.startswith(":param:") or line.startswith(":returns:") or line.startswith(":raises:"): - break - return line - return None + try: + importlib.import_module(f"llama_stack.apis.{module_name}") + imported_modules.add(module_name) + except ImportError: + print( + f"❌ Failed to import module {module_name}, this API will not be included in the OpenAPI specification" + ) + pass + # Import router registry + from llama_stack.core.server.routers import create_router, has_router + from llama_stack.providers.datatypes import Api -def _extract_response_description_from_docstring(webmethod, response_model) -> str: - """ - Extract response description from the actual function docstring. - Looks for :returns: in the docstring and uses that as the description. - """ - func = getattr(webmethod, "func", None) - if not func: - return "Successful Response" + # Get all APIs that should be served + protocols = api_protocol_map() + apis_to_serve = set(protocols.keys()) - docstring = func.__doc__ or "" - - lines = docstring.split("\n") - for line in lines: - line = line.strip() - if line.startswith(":returns:"): - description = line[9:].strip() - if description: - return description - - return "Successful Response" - - -def _get_tag_from_api(webmethod) -> str: - """Extract a tag name from the webmethod for API grouping.""" - # Extract API name from the route path - if webmethod.level: - return webmethod.level.replace("/", "").title() - return "API" - - -def _find_models_for_endpoint(webmethod) -> tuple[type | None, type | None, list[tuple[str, type, Any]]]: - """ - Find appropriate request and response models for an endpoint by analyzing the actual function signature. - This uses the webmethod's function to determine the correct models dynamically. - - Returns: - tuple: (request_model, response_model, query_parameters) - where query_parameters is a list of (name, type, default_value) tuples - """ - try: - # Get the actual function from the webmethod - func = getattr(webmethod, "func", None) - if not func: - return None, None, [] - - # Analyze the function signature - sig = inspect.signature(func) - - # Find request model (first parameter that's not 'self') - request_model = None - query_parameters = [] - - for param_name, param in sig.parameters.items(): - if param_name == "self": - continue - - # Skip *args and **kwargs parameters - these are not real API parameters - if param.kind in (inspect.Parameter.VAR_POSITIONAL, inspect.Parameter.VAR_KEYWORD): - continue - - # Check if it's a Pydantic model (for POST/PUT requests) - param_type = param.annotation - if hasattr(param_type, "model_json_schema"): - request_model = param_type - break - elif get_origin(param_type) is Annotated: - # Handle Annotated types - get the base type - args = get_args(param_type) - if args and hasattr(args[0], "model_json_schema"): - request_model = args[0] - break - else: - # This is likely a query parameter for GET requests - # Store the parameter info for later use - default_value = param.default if param.default != inspect.Parameter.empty else None - - # Extract the base type from union types (e.g., str | None -> str) - # Also make it safe for FastAPI to avoid forward reference issues - base_type = _make_type_safe_for_fastapi(param_type) - query_parameters.append((param_name, base_type, default_value)) - - # Find response model from return annotation - response_model = None - return_annotation = sig.return_annotation - if return_annotation != inspect.Signature.empty: - if hasattr(return_annotation, "model_json_schema"): - response_model = return_annotation - elif get_origin(return_annotation) is Annotated: - # Handle Annotated return types - args = get_args(return_annotation) - if args: - # Check if the first argument is a Pydantic model - if hasattr(args[0], "model_json_schema"): - response_model = args[0] - # Check if the first argument is a union type - elif get_origin(args[0]) is type(args[0]): # Union type - union_args = get_args(args[0]) - for arg in union_args: - if hasattr(arg, "model_json_schema"): - response_model = arg - break - elif get_origin(return_annotation) is type(return_annotation): # Union type - # Handle union types - try to find the first Pydantic model - args = get_args(return_annotation) - for arg in args: - if hasattr(arg, "model_json_schema"): - response_model = arg - break - - return request_model, response_model, query_parameters - - except Exception: - # If we can't analyze the function signature, return None - return None, None, [] - - -def _make_type_safe_for_fastapi(type_hint) -> type: - """ - Make a type hint safe for FastAPI by converting problematic types to their base types. - This handles cases like Literal["24h"] that cause forward reference errors. - Also removes Union with None to avoid anyOf with type: 'null' schemas. - """ - # Handle Literal types that might cause issues - if hasattr(type_hint, "__origin__") and type_hint.__origin__ is Literal: - args = get_args(type_hint) - if args: - # Get the type of the first literal value - first_arg = args[0] - if isinstance(first_arg, str): - return str - elif isinstance(first_arg, int): - return int - elif isinstance(first_arg, float): - return float - elif isinstance(first_arg, bool): - return bool - else: - return type(first_arg) - - # Handle Union types (Python 3.10+ uses | syntax) - origin = get_origin(type_hint) - - if origin is type(None) or (origin is type and type_hint is type(None)): - # This is just None, return None - return type_hint - - # Handle Union types (both old Union and new | syntax) - if origin is type(type_hint) or (hasattr(type_hint, "__args__") and type_hint.__args__): - # This is a union type, find the non-None type - args = get_args(type_hint) - non_none_types = [arg for arg in args if arg is not type(None) and arg is not None] - - if non_none_types: - # Return the first non-None type to avoid anyOf with null - return non_none_types[0] - elif args: - # If all args are None, return the first one - return args[0] - else: - return type_hint - - # Not a union type, return as-is - return type_hint - - -def _generate_schema_for_type(type_hint) -> dict[str, Any]: - """ - Generate a JSON schema for a given type hint. - This is a simplified version that handles basic types. - """ - # Handle Union types (e.g., str | None) - if get_origin(type_hint) is type(None) or (get_origin(type_hint) is type and type_hint is type(None)): - return {"type": "null"} - - # Handle list types - if get_origin(type_hint) is list: - args = get_args(type_hint) - if args: - item_type = args[0] - return {"type": "array", "items": _generate_schema_for_type(item_type)} - return {"type": "array"} - - # Handle basic types - if type_hint is str: - return {"type": "string"} - elif type_hint is int: - return {"type": "integer"} - elif type_hint is float: - return {"type": "number"} - elif type_hint is bool: - return {"type": "boolean"} - elif type_hint is dict: - return {"type": "object"} - elif type_hint is list: - return {"type": "array"} - - # For complex types, try to get the schema from Pydantic - try: - if hasattr(type_hint, "model_json_schema"): - return type_hint.model_json_schema() - elif hasattr(type_hint, "__name__"): - return {"$ref": f"#/components/schemas/{type_hint.__name__}"} - except Exception: + # Create a dummy impl_getter that returns a mock implementation + # This is only for OpenAPI generation, so we don't need real implementations + class MockImpl: pass - # Fallback - return {"type": "object"} + def impl_getter(api: Api) -> Any: + return MockImpl() + # Register all routers - all APIs now use routers + for api in apis_to_serve: + if has_router(api): + router = create_router(api, impl_getter) + if router: + app.include_router(router) -def _add_llama_stack_extensions(openapi_schema: dict[str, Any], app: FastAPI) -> dict[str, Any]: - """ - Add Llama Stack specific extensions to the OpenAPI schema. - This includes x-llama-stack-extra-body-params for ExtraBodyField parameters. - """ - # Get all API routes to find functions with ExtraBodyField parameters - api_routes = get_all_api_routes() - - for api_name, routes in api_routes.items(): - for route, webmethod in routes: - # Extract path and method - path = route.path - methods = route.methods - - for method in methods: - method_lower = method.lower() - if method_lower in openapi_schema.get("paths", {}).get(path, {}): - operation = openapi_schema["paths"][path][method_lower] - - # Try to find the actual function that implements this route - # and extract its ExtraBodyField parameters - extra_body_params = _find_extra_body_params_for_route(api_name, route, webmethod) - - if extra_body_params: - operation["x-llama-stack-extra-body-params"] = extra_body_params - - return openapi_schema - - -def _find_extra_body_params_for_route(api_name: str, route, webmethod) -> list[dict[str, Any]]: - """ - Find the actual function that implements a route and extract its ExtraBodyField parameters. - """ - try: - # Try to get the actual function from the API protocol map - from llama_stack.core.resolver import api_protocol_map - - # Look up the API implementation - if api_name in api_protocol_map: - _ = api_protocol_map[api_name] - - # Try to find the method that matches this route - # This is a simplified approach - we'd need to map the route to the actual method - # For now, we'll return an empty list to avoid hardcoding - return [] - - return [] - except Exception: - # If we can't find the function, return empty list - return [] + return app def _ensure_json_schema_types_included(openapi_schema: dict[str, Any]) -> dict[str, Any]: @@ -729,20 +150,6 @@ def _ensure_json_schema_types_included(openapi_schema: dict[str, Any]) -> dict[s except (AttributeError, TypeError): continue - # Also include any dynamic models that were created during endpoint generation - # This is a workaround to ensure dynamic models appear in the schema - global _dynamic_models - if "_dynamic_models" in globals(): - for model in _dynamic_models: - try: - schema_name = model.__name__ - if schema_name not in openapi_schema["components"]["schemas"]: - schema = model.model_json_schema() - openapi_schema["components"]["schemas"][schema_name] = schema - except Exception: - # Skip if we can't generate the schema - continue - return openapi_schema @@ -767,296 +174,6 @@ def _fix_ref_references(openapi_schema: dict[str, Any]) -> dict[str, Any]: return openapi_schema -def _fix_anyof_with_null(openapi_schema: dict[str, Any]) -> dict[str, Any]: - """ - Fix anyOf schemas that contain type: 'null' by removing the null type - and making the field optional through the required field instead. - """ - - def fix_anyof(obj: Any) -> None: - if isinstance(obj, dict): - if "anyOf" in obj and isinstance(obj["anyOf"], list): - # Check if anyOf contains type: 'null' - has_null = any(item.get("type") == "null" for item in obj["anyOf"] if isinstance(item, dict)) - if has_null: - # Remove null types and keep only the non-null types - non_null_types = [ - item for item in obj["anyOf"] if not (isinstance(item, dict) and item.get("type") == "null") - ] - if len(non_null_types) == 1: - # If only one non-null type remains, replace anyOf with that type - obj.update(non_null_types[0]) - if "anyOf" in obj: - del obj["anyOf"] - else: - # Keep the anyOf but without null types - obj["anyOf"] = non_null_types - - # Recursively process all values - for value in obj.values(): - fix_anyof(value) - elif isinstance(obj, list): - for item in obj: - fix_anyof(item) - - fix_anyof(openapi_schema) - return openapi_schema - - -def _eliminate_defs_section(openapi_schema: dict[str, Any]) -> dict[str, Any]: - """ - Eliminate $defs section entirely by moving all definitions to components/schemas. - This matches the structure of the old pyopenapi generator for oasdiff compatibility. - """ - if "components" not in openapi_schema: - openapi_schema["components"] = {} - - if "schemas" not in openapi_schema["components"]: - openapi_schema["components"]["schemas"] = {} - - # First pass: collect all $defs from anywhere in the schema - defs_to_move = {} - - def collect_defs(obj: Any) -> None: - if isinstance(obj, dict): - if "$defs" in obj: - # Collect $defs for later processing - for def_name, def_schema in obj["$defs"].items(): - if def_name not in defs_to_move: - defs_to_move[def_name] = def_schema - - # Recursively process all values - for value in obj.values(): - collect_defs(value) - elif isinstance(obj, list): - for item in obj: - collect_defs(item) - - # Collect all $defs - collect_defs(openapi_schema) - - # Move all $defs to components/schemas - for def_name, def_schema in defs_to_move.items(): - if def_name not in openapi_schema["components"]["schemas"]: - openapi_schema["components"]["schemas"][def_name] = def_schema - - # Also move any existing root-level $defs to components/schemas - if "$defs" in openapi_schema: - print(f"Found root-level $defs with {len(openapi_schema['$defs'])} items, moving to components/schemas") - for def_name, def_schema in openapi_schema["$defs"].items(): - if def_name not in openapi_schema["components"]["schemas"]: - openapi_schema["components"]["schemas"][def_name] = def_schema - # Remove the root-level $defs - del openapi_schema["$defs"] - - # Second pass: remove all $defs sections from anywhere in the schema - def remove_defs(obj: Any) -> None: - if isinstance(obj, dict): - if "$defs" in obj: - del obj["$defs"] - - # Recursively process all values - for value in obj.values(): - remove_defs(value) - elif isinstance(obj, list): - for item in obj: - remove_defs(item) - - # Remove all $defs sections - remove_defs(openapi_schema) - - return openapi_schema - - -def _add_error_responses(openapi_schema: dict[str, Any]) -> dict[str, Any]: - """ - Add standard error response definitions to the OpenAPI schema. - Uses the actual Error model from the codebase for consistency. - """ - if "components" not in openapi_schema: - openapi_schema["components"] = {} - - if "responses" not in openapi_schema["components"]: - openapi_schema["components"]["responses"] = {} - - # Import the actual Error model - try: - from llama_stack.apis.datatypes import Error - - # Generate the Error schema using Pydantic - error_schema = Error.model_json_schema() - - # Ensure the Error schema is in the components/schemas - if "schemas" not in openapi_schema["components"]: - openapi_schema["components"]["schemas"] = {} - - # Only add Error schema if it doesn't already exist - if "Error" not in openapi_schema["components"]["schemas"]: - openapi_schema["components"]["schemas"]["Error"] = error_schema - - except ImportError: - # Fallback if we can't import the Error model - error_schema = {"$ref": "#/components/schemas/Error"} - - # Define standard HTTP error responses - error_responses = { - 400: { - "name": "BadRequest400", - "description": "The request was invalid or malformed", - "example": {"status": 400, "title": "Bad Request", "detail": "The request was invalid or malformed"}, - }, - 429: { - "name": "TooManyRequests429", - "description": "The client has sent too many requests in a given amount of time", - "example": { - "status": 429, - "title": "Too Many Requests", - "detail": "You have exceeded the rate limit. Please try again later.", - }, - }, - 500: { - "name": "InternalServerError500", - "description": "The server encountered an unexpected error", - "example": { - "status": 500, - "title": "Internal Server Error", - "detail": "An unexpected error occurred. Our team has been notified.", - }, - }, - } - - # Add each error response to the schema - for _, error_info in error_responses.items(): - response_name = error_info["name"] - openapi_schema["components"]["responses"][response_name] = { - "description": error_info["description"], - "content": { - "application/json": {"schema": {"$ref": "#/components/schemas/Error"}, "example": error_info["example"]} - }, - } - - # Add a default error response - openapi_schema["components"]["responses"]["DefaultError"] = { - "description": "An unexpected error occurred", - "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, - } - - return openapi_schema - - -def _fix_path_parameters(openapi_schema: dict[str, Any]) -> dict[str, Any]: - """ - Fix path parameter resolution issues by adding explicit parameter definitions. - Uses docstring descriptions if available. - """ - global _path_webmethod_map - - if "paths" not in openapi_schema: - return openapi_schema - - for path, path_item in openapi_schema["paths"].items(): - # Add parameters to each operation in this path - for method in ["get", "post", "put", "delete", "patch", "head", "options"]: - if method in path_item and isinstance(path_item[method], dict): - operation = path_item[method] - - # Get webmethod for this path/method to extract parameter descriptions - webmethod = _path_webmethod_map.get((path, method)) - - # Extract path parameters from the URL with descriptions from docstring - path_params = _extract_path_parameters(path, webmethod) - - if not path_params: - continue - - if "parameters" not in operation: - operation["parameters"] = [] - - # Separate path and non-path parameters - existing_params = operation["parameters"] - non_path_params = [p for p in existing_params if p.get("in") != "path"] - existing_path_params = {p.get("name"): p for p in existing_params if p.get("in") == "path"} - - # Build new parameters list: non-path params first, then path params in docstring order - new_params = non_path_params.copy() - - # Add path parameters in docstring order - for param in path_params: - param_name = param["name"] - if param_name in existing_path_params: - # Update existing parameter description if we have a better one - existing_param = existing_path_params[param_name] - if param["description"] != f"Path parameter: {param_name}": - existing_param["description"] = param["description"] - new_params.append(existing_param) - else: - # Add new path parameter - new_params.append(param) - - operation["parameters"] = new_params - - return openapi_schema - - -def _extract_first_line_from_description(description: str) -> str: - """ - Extract all lines from a description string that don't start with docstring keywords. - Stops at the first line that starts with :param:, :returns:, :raises:, etc. - Preserves multiple lines and formatting. - """ - if not description: - return description - - lines = description.split("\n") - description_lines = [] - - for line in lines: - stripped = line.strip() - if not stripped: - # Keep empty lines in the description to preserve formatting - description_lines.append(line) - continue - if ( - stripped.startswith(":param") - or stripped.startswith(":returns") - or stripped.startswith(":raises") - or (stripped.startswith(":") and len(stripped) > 1 and stripped[1].isalpha()) - ): - break - description_lines.append(line) - - # Join lines and strip trailing whitespace/newlines - result = "\n".join(description_lines).rstrip() - return result if result else description - - -def _fix_component_descriptions(openapi_schema: dict[str, Any]) -> dict[str, Any]: - """ - Fix component descriptions to only include the first line (summary), - removing :param:, :returns:, and other docstring directives. - """ - if "components" not in openapi_schema or "schemas" not in openapi_schema["components"]: - return openapi_schema - - schemas = openapi_schema["components"]["schemas"] - - def fix_description_in_schema(schema_def: dict[str, Any]) -> None: - if isinstance(schema_def, dict): - if "description" in schema_def and isinstance(schema_def["description"], str): - schema_def["description"] = _extract_first_line_from_description(schema_def["description"]) - - for value in schema_def.values(): - fix_description_in_schema(value) - elif isinstance(schema_def, list): - for item in schema_def: - fix_description_in_schema(item) - - for _, schema_def in schemas.items(): - fix_description_in_schema(schema_def) - - return openapi_schema - - def _fix_schema_issues(openapi_schema: dict[str, Any]) -> dict[str, Any]: """ Fix common schema issues that cause OpenAPI validation problems. @@ -1070,7 +187,6 @@ def _fix_schema_issues(openapi_schema: dict[str, Any]) -> dict[str, Any]: # Fix exclusiveMinimum issues for _, schema_def in schemas.items(): _fix_exclusive_minimum_in_schema(schema_def) - _fix_all_null_defaults(schema_def) return openapi_schema @@ -1102,32 +218,6 @@ def validate_openapi_schema(schema: dict[str, Any], schema_name: str = "OpenAPI return False -def validate_schema_file(file_path: Path) -> bool: - """ - Validate an OpenAPI schema file (YAML or JSON). - - Args: - file_path: Path to the schema file - - Returns: - True if valid, False otherwise - """ - try: - with open(file_path) as f: - if file_path.suffix.lower() in [".yaml", ".yml"]: - schema = yaml.safe_load(f) - elif file_path.suffix.lower() == ".json": - schema = json.load(f) - else: - print(f"❌ Unsupported file format: {file_path.suffix}") - return False - - return validate_openapi_schema(schema, str(file_path)) - except Exception as e: - print(f"❌ Failed to read {file_path}: {e}") - return False - - def _fix_exclusive_minimum_in_schema(obj: Any) -> None: """ Recursively fix exclusiveMinimum issues in a schema object. @@ -1150,73 +240,37 @@ def _fix_exclusive_minimum_in_schema(obj: Any) -> None: _fix_exclusive_minimum_in_schema(item) -def _fix_string_fields_with_null_defaults(obj: Any) -> None: +def _get_path_version(path: str) -> str | None: """ - Recursively fix string fields that have default: null. - This violates OpenAPI spec - string fields should either have a string default or be optional. + Determine the API version of a path based on its prefix. + + Args: + path: The API path (e.g., "/v1/datasets", "/v1beta/models") + + Returns: + Version string ("v1", "v1alpha", "v1beta") or None if no recognized version """ - if isinstance(obj, dict): - # Check if this is a field definition with type: string and default: null - if obj.get("type") == "string" and "default" in obj and obj["default"] is None: - # Remove the default: null to make the field optional - del obj["default"] - # Add nullable: true to indicate the field can be null - obj["nullable"] = True - - # Recursively process all values - for value in obj.values(): - _fix_string_fields_with_null_defaults(value) - - elif isinstance(obj, list): - # Recursively process all items - for item in obj: - _fix_string_fields_with_null_defaults(item) + if path.startswith("/" + LLAMA_STACK_API_V1BETA): + return "v1beta" + elif path.startswith("/" + LLAMA_STACK_API_V1ALPHA): + return "v1alpha" + elif path.startswith("/" + LLAMA_STACK_API_V1): + return "v1" + return None -def _fix_anyof_with_null_defaults(obj: Any) -> None: - """ - Recursively fix anyOf schemas that have default: null. - This violates OpenAPI spec - anyOf fields should not have null defaults. - """ - if isinstance(obj, dict): - # Check if this is a field definition with anyOf and default: null - if "anyOf" in obj and "default" in obj and obj["default"] is None: - # Remove the default: null to make the field optional - del obj["default"] - # Add nullable: true to indicate the field can be null - obj["nullable"] = True - - # Recursively process all values - for value in obj.values(): - _fix_anyof_with_null_defaults(value) - - elif isinstance(obj, list): - # Recursively process all items - for item in obj: - _fix_anyof_with_null_defaults(item) +def _is_stable_path(path: str) -> bool: + """Check if a path is a stable v1 path (not experimental).""" + return ( + path.startswith("/" + LLAMA_STACK_API_V1) + and not path.startswith("/" + LLAMA_STACK_API_V1ALPHA) + and not path.startswith("/" + LLAMA_STACK_API_V1BETA) + ) -def _fix_all_null_defaults(obj: Any) -> None: - """ - Recursively fix all field types that have default: null. - This violates OpenAPI spec - fields should not have null defaults. - """ - if isinstance(obj, dict): - # Check if this is a field definition with default: null - if "default" in obj and obj["default"] is None: - # Remove the default: null to make the field optional - del obj["default"] - # Add nullable: true to indicate the field can be null - obj["nullable"] = True - - # Recursively process all values - for value in obj.values(): - _fix_all_null_defaults(value) - - elif isinstance(obj, list): - # Recursively process all items - for item in obj: - _fix_all_null_defaults(item) +def _is_experimental_path(path: str) -> bool: + """Check if a path is experimental (v1alpha or v1beta).""" + return path.startswith("/" + LLAMA_STACK_API_V1ALPHA) or path.startswith("/" + LLAMA_STACK_API_V1BETA) def _sort_paths_alphabetically(openapi_schema: dict[str, Any]) -> dict[str, Any]: @@ -1237,15 +291,9 @@ def _sort_paths_alphabetically(openapi_schema: dict[str, Any]) -> dict[str, Any] - 2 for v1 - 3 for others """ - if path.startswith("/v1beta/"): - version_priority = 0 - elif path.startswith("/v1alpha/"): - version_priority = 1 - elif path.startswith("/v1/"): - version_priority = 2 - else: - version_priority = 3 - + version = _get_path_version(path) + version_priority_map = {LLAMA_STACK_API_V1BETA: 0, LLAMA_STACK_API_V1ALPHA: 1, LLAMA_STACK_API_V1: 2} + version_priority = version_priority_map.get(version, 3) if version else 3 return (version_priority, path) def sort_path_item(path_item: dict[str, Any]) -> dict[str, Any]: @@ -1282,16 +330,52 @@ def _sort_paths_alphabetically(openapi_schema: dict[str, Any]) -> dict[str, Any] return openapi_schema -def _filter_schema_by_version( - openapi_schema: dict[str, Any], stable_only: bool = True, exclude_deprecated: bool = True +def _should_include_path( + path: str, path_item: dict[str, Any], include_stable: bool, include_experimental: bool, exclude_deprecated: bool +) -> bool: + """ + Determine if a path should be included in the filtered schema. + + Args: + path: The API path + path_item: The path item from OpenAPI schema + include_stable: Whether to include stable v1 paths + include_experimental: Whether to include experimental (v1alpha/v1beta) paths + exclude_deprecated: Whether to exclude deprecated endpoints + + Returns: + True if the path should be included + """ + if exclude_deprecated and _is_path_deprecated(path_item): + return False + + is_stable = _is_stable_path(path) + is_experimental = _is_experimental_path(path) + + if is_stable and include_stable: + return True + if is_experimental and include_experimental: + return True + + return False + + +def _filter_schema( + openapi_schema: dict[str, Any], + include_stable: bool = True, + include_experimental: bool = False, + deprecated_mode: str = "exclude", + filter_schemas: bool = True, ) -> dict[str, Any]: """ - Filter OpenAPI schema by API version. + Filter OpenAPI schema by version and deprecated status. Args: openapi_schema: The full OpenAPI schema - stable_only: If True, return only /v1/ paths (stable). If False, return only /v1alpha/ and /v1beta/ paths (experimental). - exclude_deprecated: If True, exclude deprecated endpoints from the result. + include_stable: Whether to include stable v1 paths + include_experimental: Whether to include experimental (v1alpha/v1beta) paths + deprecated_mode: One of "include", "exclude", or "only" + filter_schemas: Whether to filter components/schemas to only referenced ones Returns: Filtered OpenAPI schema @@ -1301,49 +385,44 @@ def _filter_schema_by_version( if "paths" not in filtered_schema: return filtered_schema - # Filter paths based on version prefix and deprecated status + # Determine deprecated filtering logic + if deprecated_mode == "only": + exclude_deprecated = False + include_deprecated_only = True + elif deprecated_mode == "exclude": + exclude_deprecated = True + include_deprecated_only = False + else: # "include" + exclude_deprecated = False + include_deprecated_only = False + + # Filter paths filtered_paths = {} for path, path_item in filtered_schema["paths"].items(): - # Check if path has any deprecated operations is_deprecated = _is_path_deprecated(path_item) - # Skip deprecated endpoints if exclude_deprecated is True - if exclude_deprecated and is_deprecated: - continue - - if stable_only: - # Only include /v1/ paths, exclude /v1alpha/ and /v1beta/ - if path.startswith("/v1/") and not path.startswith("/v1alpha/") and not path.startswith("/v1beta/"): - filtered_paths[path] = path_item - else: - # Only include /v1alpha/ and /v1beta/ paths, exclude /v1/ - if path.startswith("/v1alpha/") or path.startswith("/v1beta/"): + if include_deprecated_only: + if is_deprecated: filtered_paths[path] = path_item + elif _should_include_path(path, path_item, include_stable, include_experimental, exclude_deprecated): + filtered_paths[path] = path_item filtered_schema["paths"] = filtered_paths - # Filter schemas/components to only include ones referenced by filtered paths - if "components" in filtered_schema and "schemas" in filtered_schema["components"]: - # Find all schemas that are actually referenced by the filtered paths - # Use the original schema to find all references, not the filtered one + # Filter schemas/components if requested + if filter_schemas and "components" in filtered_schema and "schemas" in filtered_schema["components"]: referenced_schemas = _find_schemas_referenced_by_paths(filtered_paths, openapi_schema) - - # Only keep schemas that are referenced by the filtered paths - filtered_schemas = {} - for schema_name, schema_def in filtered_schema["components"]["schemas"].items(): - if schema_name in referenced_schemas: - filtered_schemas[schema_name] = schema_def - - filtered_schema["components"]["schemas"] = filtered_schemas + filtered_schema["components"]["schemas"] = { + name: schema + for name, schema in filtered_schema["components"]["schemas"].items() + if name in referenced_schemas + } # Preserve $defs section if it exists if "components" in openapi_schema and "$defs" in openapi_schema["components"]: if "components" not in filtered_schema: filtered_schema["components"] = {} filtered_schema["components"]["$defs"] = openapi_schema["components"]["$defs"] - print(f"Preserved $defs section with {len(openapi_schema['components']['$defs'])} items") - else: - print("No $defs section to preserve") return filtered_schema @@ -1432,78 +511,12 @@ def _is_path_deprecated(path_item: dict[str, Any]) -> bool: return False -def _filter_deprecated_schema(openapi_schema: dict[str, Any]) -> dict[str, Any]: - """ - Filter OpenAPI schema to include only deprecated endpoints. - Includes all deprecated endpoints regardless of version (v1, v1alpha, v1beta). - """ - filtered_schema = openapi_schema.copy() - - if "paths" not in filtered_schema: - return filtered_schema - - # Filter paths to only include deprecated ones - filtered_paths = {} - for path, path_item in filtered_schema["paths"].items(): - if _is_path_deprecated(path_item): - filtered_paths[path] = path_item - - filtered_schema["paths"] = filtered_paths - - return filtered_schema - - -def _filter_combined_schema(openapi_schema: dict[str, Any]) -> dict[str, Any]: - """ - Filter OpenAPI schema to include both stable (v1) and experimental (v1alpha, v1beta) APIs. - Excludes deprecated endpoints. This is used for the combined "stainless" spec. - """ - filtered_schema = openapi_schema.copy() - - if "paths" not in filtered_schema: - return filtered_schema - - # Filter paths to include stable (v1) and experimental (v1alpha, v1beta), excluding deprecated - filtered_paths = {} - for path, path_item in filtered_schema["paths"].items(): - # Check if path has any deprecated operations - is_deprecated = _is_path_deprecated(path_item) - - # Skip deprecated endpoints - if is_deprecated: - continue - - # Include /v1/ paths (stable) - if path.startswith("/v1/") and not path.startswith("/v1alpha/") and not path.startswith("/v1beta/"): - filtered_paths[path] = path_item - # Include /v1alpha/ and /v1beta/ paths (experimental) - elif path.startswith("/v1alpha/") or path.startswith("/v1beta/"): - filtered_paths[path] = path_item - - filtered_schema["paths"] = filtered_paths - - # Filter schemas/components to only include ones referenced by filtered paths - if "components" in filtered_schema and "schemas" in filtered_schema["components"]: - referenced_schemas = _find_schemas_referenced_by_paths(filtered_paths, openapi_schema) - - filtered_schemas = {} - for schema_name, schema_def in filtered_schema["components"]["schemas"].items(): - if schema_name in referenced_schemas: - filtered_schemas[schema_name] = schema_def - - filtered_schema["components"]["schemas"] = filtered_schemas - - return filtered_schema - - -def generate_openapi_spec(output_dir: str, format: str = "yaml", include_examples: bool = True) -> dict[str, Any]: +def generate_openapi_spec(output_dir: str) -> dict[str, Any]: """ Generate OpenAPI specification using FastAPI's built-in method. Args: output_dir: Directory to save the generated files - format: Output format ("yaml", "json", or "both") - include_examples: Whether to include examples in the spec Returns: The generated OpenAPI specification as a dictionary @@ -1520,88 +533,32 @@ def generate_openapi_spec(output_dir: str, format: str = "yaml", include_example servers=app.servers, ) - # Debug: Check if there's a root-level $defs in the original schema - if "$defs" in openapi_schema: - print(f"Original schema has root-level $defs with {len(openapi_schema['$defs'])} items") - else: - print("Original schema has no root-level $defs") - - # Add Llama Stack specific extensions - openapi_schema = _add_llama_stack_extensions(openapi_schema, app) - - # Add standard error responses - openapi_schema = _add_error_responses(openapi_schema) - # Ensure all @json_schema_type decorated models are included openapi_schema = _ensure_json_schema_types_included(openapi_schema) # Fix $ref references to point to components/schemas instead of $defs openapi_schema = _fix_ref_references(openapi_schema) - # Debug: Check if there are any $ref references to $defs in the schema - defs_refs = [] - - def find_defs_refs(obj: Any, path: str = "") -> None: - if isinstance(obj, dict): - if "$ref" in obj and obj["$ref"].startswith("#/$defs/"): - defs_refs.append(f"{path}: {obj['$ref']}") - for key, value in obj.items(): - find_defs_refs(value, f"{path}.{key}" if path else key) - elif isinstance(obj, list): - for i, item in enumerate(obj): - find_defs_refs(item, f"{path}[{i}]") - - find_defs_refs(openapi_schema) - if defs_refs: - print(f"Found {len(defs_refs)} $ref references to $defs in schema") - for ref in defs_refs[:5]: # Show first 5 - print(f" {ref}") - else: - print("No $ref references to $defs found in schema") - - # Note: Let Pydantic/FastAPI generate the correct, standards-compliant schema - # Fields with default values should be optional according to OpenAPI standards - - # Fix anyOf schemas with type: 'null' to avoid oasdiff errors - openapi_schema = _fix_anyof_with_null(openapi_schema) - - # Fix path parameter resolution issues - openapi_schema = _fix_path_parameters(openapi_schema) - - # Eliminate $defs section entirely for oasdiff compatibility - openapi_schema = _eliminate_defs_section(openapi_schema) - - # Fix component descriptions to only include first line (summary) - openapi_schema = _fix_component_descriptions(openapi_schema) - - # Debug: Check if there's a root-level $defs after flattening - if "$defs" in openapi_schema: - print(f"After flattening: root-level $defs with {len(openapi_schema['$defs'])} items") - else: - print("After flattening: no root-level $defs") - - # Ensure all referenced schemas are included - # DISABLED: This was using hardcoded schema generation. FastAPI should handle this automatically. - # openapi_schema = _ensure_referenced_schemas(openapi_schema) - - # Control schema registration based on @json_schema_type decorator - # Temporarily disabled to fix missing schema issues - # openapi_schema = _control_schema_registration(openapi_schema) - - # Fix malformed schemas after all other processing - # DISABLED: This was a hardcoded workaround. Using Pydantic's TypeAdapter instead. - # _fix_malformed_schemas(openapi_schema) - # Split into stable (v1 only), experimental (v1alpha + v1beta), deprecated, and combined (stainless) specs # Each spec needs its own deep copy of the full schema to avoid cross-contamination import copy - stable_schema = _filter_schema_by_version(copy.deepcopy(openapi_schema), stable_only=True, exclude_deprecated=True) - experimental_schema = _filter_schema_by_version( - copy.deepcopy(openapi_schema), stable_only=False, exclude_deprecated=True + stable_schema = _filter_schema( + copy.deepcopy(openapi_schema), include_stable=True, include_experimental=False, deprecated_mode="exclude" + ) + experimental_schema = _filter_schema( + copy.deepcopy(openapi_schema), include_stable=False, include_experimental=True, deprecated_mode="exclude" + ) + deprecated_schema = _filter_schema( + copy.deepcopy(openapi_schema), + include_stable=True, + include_experimental=True, + deprecated_mode="only", + filter_schemas=False, + ) + combined_schema = _filter_schema( + copy.deepcopy(openapi_schema), include_stable=True, include_experimental=True, deprecated_mode="exclude" ) - deprecated_schema = _filter_deprecated_schema(copy.deepcopy(openapi_schema)) - combined_schema = _filter_combined_schema(copy.deepcopy(openapi_schema)) # Update title and description for combined schema if "info" in combined_schema: @@ -1628,251 +585,95 @@ def generate_openapi_spec(output_dir: str, format: str = "yaml", include_example combined_schema = _fix_schema_issues(combined_schema) # Validate the schemas - print("\n🔍 Validating generated schemas...") - stable_valid = validate_openapi_schema(stable_schema, "Stable schema") - experimental_valid = validate_openapi_schema(experimental_schema, "Experimental schema") - deprecated_valid = validate_openapi_schema(deprecated_schema, "Deprecated schema") - combined_valid = validate_openapi_schema(combined_schema, "Combined (stainless) schema") - - if not all([stable_valid, experimental_valid, deprecated_valid, combined_valid]): - print("⚠️ Some schemas failed validation, but continuing with generation...") - - # Add any custom modifications here if needed - if include_examples: - # Add examples to the schema if needed - pass + validate_openapi_schema(stable_schema, "Stable schema") + validate_openapi_schema(experimental_schema, "Experimental schema") + validate_openapi_schema(deprecated_schema, "Deprecated schema") + validate_openapi_schema(combined_schema, "Combined (stainless) schema") # Ensure output directory exists output_path = Path(output_dir) output_path.mkdir(parents=True, exist_ok=True) # Save the stable specification - if format in ["yaml", "both"]: - yaml_path = output_path / "llama-stack-spec.yaml" + yaml_path = output_path / "llama-stack-spec.yaml" - # Use ruamel.yaml for better YAML formatting - try: - from ruamel.yaml import YAML + # Use ruamel.yaml for better YAML formatting + try: + from ruamel.yaml import YAML - yaml_writer = YAML() - yaml_writer.default_flow_style = False - yaml_writer.sort_keys = False - yaml_writer.width = 4096 # Prevent line wrapping - yaml_writer.allow_unicode = True + yaml_writer = YAML() + yaml_writer.default_flow_style = False + yaml_writer.sort_keys = False + yaml_writer.width = 4096 # Prevent line wrapping + yaml_writer.allow_unicode = True - with open(yaml_path, "w") as f: - yaml_writer.dump(stable_schema, f) + with open(yaml_path, "w") as f: + yaml_writer.dump(stable_schema, f) + + # Post-process the YAML file to remove $defs section and fix references + # Re-read and re-write with ruamel.yaml + with open(yaml_path) as f: + yaml_content = f.read() + + if "#/$defs/" in yaml_content: + yaml_content = yaml_content.replace("#/$defs/", "#/components/schemas/") + import yaml as pyyaml - # Post-process the YAML file to remove $defs section and fix references - # Re-read and re-write with ruamel.yaml with open(yaml_path) as f: - yaml_content = f.read() + yaml_data = pyyaml.safe_load(f) - if " $defs:" in yaml_content or "#/$defs/" in yaml_content: - print("Post-processing YAML to remove $defs section") + if "$defs" in yaml_data: + if "components" not in yaml_data: + yaml_data["components"] = {} + if "schemas" not in yaml_data["components"]: + yaml_data["components"]["schemas"] = {} + yaml_data["components"]["schemas"].update(yaml_data["$defs"]) + del yaml_data["$defs"] - # Use string replacement to fix references directly - if "#/$defs/" in yaml_content: - refs_fixed = yaml_content.count("#/$defs/") - yaml_content = yaml_content.replace("#/$defs/", "#/components/schemas/") - print(f"Fixed {refs_fixed} $ref references using string replacement") - - # Parse using PyYAML safe_load first to avoid issues with custom types - # This handles block scalars better during post-processing - import yaml as pyyaml - - with open(yaml_path) as f: - yaml_data = pyyaml.safe_load(f) - - # Move $defs to components/schemas if it exists - if "$defs" in yaml_data: - print(f"Found $defs section with {len(yaml_data['$defs'])} items") - if "components" not in yaml_data: - yaml_data["components"] = {} - if "schemas" not in yaml_data["components"]: - yaml_data["components"]["schemas"] = {} - - # Move all $defs to components/schemas - for def_name, def_schema in yaml_data["$defs"].items(): - yaml_data["components"]["schemas"][def_name] = def_schema - - # Remove the $defs section - del yaml_data["$defs"] - print("Moved $defs to components/schemas") - - # Write the modified YAML back with ruamel.yaml - with open(yaml_path, "w") as f: - yaml_writer.dump(yaml_data, f) - print("Updated YAML file") - except ImportError: - # Fallback to standard yaml if ruamel.yaml is not available with open(yaml_path, "w") as f: - yaml.dump(stable_schema, f, default_flow_style=False, sort_keys=False) + yaml_writer.dump(yaml_data, f) + except ImportError: + # Fallback to standard yaml if ruamel.yaml is not available + with open(yaml_path, "w") as f: + yaml.dump(stable_schema, f, default_flow_style=False, sort_keys=False) - print(f"✅ Generated YAML (stable): {yaml_path}") - - experimental_yaml_path = output_path / "experimental-llama-stack-spec.yaml" - with open(experimental_yaml_path, "w") as f: - yaml.dump(experimental_schema, f, default_flow_style=False, sort_keys=False) - print(f"✅ Generated YAML (experimental): {experimental_yaml_path}") - - deprecated_yaml_path = output_path / "deprecated-llama-stack-spec.yaml" - with open(deprecated_yaml_path, "w") as f: - yaml.dump(deprecated_schema, f, default_flow_style=False, sort_keys=False) - print(f"✅ Generated YAML (deprecated): {deprecated_yaml_path}") - - # Generate combined (stainless) spec - stainless_yaml_path = output_path / "stainless-llama-stack-spec.yaml" + for name, schema in [ + ("experimental", experimental_schema), + ("deprecated", deprecated_schema), + ("stainless", combined_schema), + ]: + file_path = output_path / f"{name}-llama-stack-spec.yaml" try: from ruamel.yaml import YAML yaml_writer = YAML() yaml_writer.default_flow_style = False yaml_writer.sort_keys = False - yaml_writer.width = 4096 # Prevent line wrapping + yaml_writer.width = 4096 yaml_writer.allow_unicode = True - - with open(stainless_yaml_path, "w") as f: - yaml_writer.dump(combined_schema, f) + with open(file_path, "w") as f: + yaml_writer.dump(schema, f) except ImportError: - # Fallback to standard yaml if ruamel.yaml is not available - with open(stainless_yaml_path, "w") as f: - yaml.dump(combined_schema, f, default_flow_style=False, sort_keys=False) - print(f"✅ Generated YAML (stainless/combined): {stainless_yaml_path}") - - if format in ["json", "both"]: - json_path = output_path / "llama-stack-spec.json" - with open(json_path, "w") as f: - json.dump(stable_schema, f, indent=2) - print(f"✅ Generated JSON (stable): {json_path}") - - experimental_json_path = output_path / "experimental-llama-stack-spec.json" - with open(experimental_json_path, "w") as f: - json.dump(experimental_schema, f, indent=2) - print(f"✅ Generated JSON (experimental): {experimental_json_path}") - - deprecated_json_path = output_path / "deprecated-llama-stack-spec.json" - with open(deprecated_json_path, "w") as f: - json.dump(deprecated_schema, f, indent=2) - print(f"✅ Generated JSON (deprecated): {deprecated_json_path}") - - stainless_json_path = output_path / "stainless-llama-stack-spec.json" - with open(stainless_json_path, "w") as f: - json.dump(combined_schema, f, indent=2) - print(f"✅ Generated JSON (stainless/combined): {stainless_json_path}") - - # Generate HTML documentation - html_path = output_path / "llama-stack-spec.html" - generate_html_docs(stable_schema, html_path) - print(f"✅ Generated HTML: {html_path}") - - experimental_html_path = output_path / "experimental-llama-stack-spec.html" - generate_html_docs(experimental_schema, experimental_html_path, spec_file="experimental-llama-stack-spec.yaml") - print(f"✅ Generated HTML (experimental): {experimental_html_path}") - - deprecated_html_path = output_path / "deprecated-llama-stack-spec.html" - generate_html_docs(deprecated_schema, deprecated_html_path, spec_file="deprecated-llama-stack-spec.yaml") - print(f"✅ Generated HTML (deprecated): {deprecated_html_path}") - - stainless_html_path = output_path / "stainless-llama-stack-spec.html" - generate_html_docs(combined_schema, stainless_html_path, spec_file="stainless-llama-stack-spec.yaml") - print(f"✅ Generated HTML (stainless/combined): {stainless_html_path}") + with open(file_path, "w") as f: + yaml.dump(schema, f, default_flow_style=False, sort_keys=False) return stable_schema -def generate_html_docs( - openapi_schema: dict[str, Any], output_path: Path, spec_file: str = "llama-stack-spec.yaml" -) -> None: - """Generate HTML documentation using ReDoc.""" - html_template = f""" - - - - Llama Stack API Documentation - - - - - - - - - - - """.strip() - - with open(output_path, "w") as f: - f.write(html_template + "\n") - - def main(): """Main entry point for the FastAPI OpenAPI generator.""" import argparse parser = argparse.ArgumentParser(description="Generate OpenAPI specification using FastAPI") parser.add_argument("output_dir", help="Output directory for generated files") - parser.add_argument("--format", choices=["yaml", "json", "both"], default="both", help="Output format") - parser.add_argument("--no-examples", action="store_true", help="Exclude examples from the specification") - parser.add_argument( - "--validate-only", action="store_true", help="Only validate existing schema files, don't generate new ones" - ) - parser.add_argument("--validate-file", help="Validate a specific schema file") args = parser.parse_args() - # Handle validation-only mode - if args.validate_only or args.validate_file: - if args.validate_file: - # Validate a specific file - file_path = Path(args.validate_file) - if not file_path.exists(): - print(f"❌ File not found: {file_path}") - return 1 - - print(f"🔍 Validating {file_path}...") - is_valid = validate_schema_file(file_path) - return 0 if is_valid else 1 - else: - # Validate all schema files in output directory - output_path = Path(args.output_dir) - if not output_path.exists(): - print(f"❌ Output directory not found: {output_path}") - return 1 - - print(f"🔍 Validating all schema files in {output_path}...") - schema_files = ( - list(output_path.glob("*.yaml")) + list(output_path.glob("*.yml")) + list(output_path.glob("*.json")) - ) - - if not schema_files: - print("❌ No schema files found to validate") - return 1 - - all_valid = True - for schema_file in schema_files: - print(f"\n📄 Validating {schema_file.name}...") - is_valid = validate_schema_file(schema_file) - if not is_valid: - all_valid = False - - if all_valid: - print("\n✅ All schema files are valid!") - return 0 - else: - print("\n❌ Some schema files failed validation") - return 1 - print("🚀 Generating OpenAPI specification using FastAPI...") print(f"📁 Output directory: {args.output_dir}") - print(f"📄 Format: {args.format}") try: - openapi_schema = generate_openapi_spec( - output_dir=args.output_dir, format=args.format, include_examples=not args.no_examples - ) + openapi_schema = generate_openapi_spec(output_dir=args.output_dir) print("\n✅ OpenAPI specification generated successfully!") print(f"📊 Schemas: {len(openapi_schema.get('components', {}).get('schemas', {}))}") diff --git a/scripts/validate_openapi.py b/scripts/validate_openapi.py index ddc88f0f8..c7bc95b60 100755 --- a/scripts/validate_openapi.py +++ b/scripts/validate_openapi.py @@ -15,6 +15,7 @@ using multiple validation tools and approaches. import argparse import json import sys +import traceback from pathlib import Path from typing import Any @@ -44,6 +45,8 @@ def validate_openapi_schema(schema: dict[str, Any], schema_name: str = "OpenAPI return False except Exception as e: print(f"❌ {schema_name} validation error: {e}") + print(" Traceback:") + traceback.print_exc() return False diff --git a/src/llama_stack/apis/agents/__init__.py b/src/llama_stack/apis/agents/__init__.py index 6416b283b..d35374fc1 100644 --- a/src/llama_stack/apis/agents/__init__.py +++ b/src/llama_stack/apis/agents/__init__.py @@ -4,4 +4,108 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .agents import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .agents_service import AgentsService +from .models import ( + Agent, + AgentConfig, + AgentConfigCommon, + AgentConfigOverridablePerTurn, + AgentCreateResponse, + AgentSessionCreateResponse, + AgentStepResponse, + AgentToolGroup, + AgentToolGroupWithArgs, + AgentTurnCreateRequest, + AgentTurnResponseEvent, + AgentTurnResponseEventPayload, + AgentTurnResponseEventType, + AgentTurnResponseStepCompletePayload, + AgentTurnResponseStepProgressPayload, + AgentTurnResponseStepStartPayload, + AgentTurnResponseStreamChunk, + AgentTurnResponseTurnAwaitingInputPayload, + AgentTurnResponseTurnCompletePayload, + AgentTurnResponseTurnStartPayload, + AgentTurnResumeRequest, + Attachment, + CreateAgentSessionRequest, + CreateOpenAIResponseRequest, + Document, + InferenceStep, + MemoryRetrievalStep, + ResponseGuardrail, + ResponseGuardrailSpec, + Session, + ShieldCallStep, + Step, + StepCommon, + StepType, + ToolExecutionStep, + Turn, +) +from .openai_responses import ( + ListOpenAIResponseInputItem, + ListOpenAIResponseObject, + OpenAIDeleteResponseObject, + OpenAIResponseInput, + OpenAIResponseInputTool, + OpenAIResponseObject, + OpenAIResponseObjectStream, + OpenAIResponsePrompt, + OpenAIResponseText, +) + +# Backward compatibility - export Agents as alias for AgentsService +Agents = AgentsService + +__all__ = [ + "Agents", + "AgentsService", + "Agent", + "AgentConfig", + "AgentConfigCommon", + "AgentConfigOverridablePerTurn", + "AgentCreateResponse", + "AgentSessionCreateResponse", + "AgentStepResponse", + "AgentToolGroup", + "AgentToolGroupWithArgs", + "AgentTurnCreateRequest", + "AgentTurnResumeRequest", + "AgentTurnResponseEvent", + "AgentTurnResponseEventPayload", + "AgentTurnResponseEventType", + "AgentTurnResponseStepCompletePayload", + "AgentTurnResponseStepProgressPayload", + "AgentTurnResponseStepStartPayload", + "AgentTurnResponseStreamChunk", + "AgentTurnResponseTurnAwaitingInputPayload", + "AgentTurnResponseTurnCompletePayload", + "AgentTurnResponseTurnStartPayload", + "Attachment", + "CreateAgentSessionRequest", + "CreateOpenAIResponseRequest", + "Document", + "InferenceStep", + "MemoryRetrievalStep", + "ResponseGuardrail", + "ResponseGuardrailSpec", + "Session", + "ShieldCallStep", + "Step", + "StepCommon", + "StepType", + "ToolExecutionStep", + "Turn", + "ListOpenAIResponseInputItem", + "ListOpenAIResponseObject", + "OpenAIDeleteResponseObject", + "OpenAIResponseInput", + "OpenAIResponseInputTool", + "OpenAIResponseObject", + "OpenAIResponseObjectStream", + "OpenAIResponsePrompt", + "OpenAIResponseText", +] diff --git a/src/llama_stack/apis/agents/agents.py b/src/llama_stack/apis/agents/agents.py deleted file mode 100644 index 365766c42..000000000 --- a/src/llama_stack/apis/agents/agents.py +++ /dev/null @@ -1,814 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from collections.abc import AsyncIterator -from datetime import datetime -from enum import StrEnum -from typing import Annotated, Any, Literal, Protocol, runtime_checkable - -from pydantic import BaseModel, ConfigDict, Field - -from llama_stack.apis.common.content_types import URL, ContentDelta, InterleavedContent -from llama_stack.apis.common.responses import Order, PaginatedResponse -from llama_stack.apis.inference import ( - CompletionMessage, - ResponseFormat, - SamplingParams, - ToolCall, - ToolChoice, - ToolConfig, - ToolPromptFormat, - ToolResponse, - ToolResponseMessage, - UserMessage, -) -from llama_stack.apis.safety import SafetyViolation -from llama_stack.apis.tools import ToolDef -from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA -from llama_stack.schema_utils import ExtraBodyField, json_schema_type, register_schema, webmethod - -from .openai_responses import ( - ListOpenAIResponseInputItem, - ListOpenAIResponseObject, - OpenAIDeleteResponseObject, - OpenAIResponseInput, - OpenAIResponseInputTool, - OpenAIResponseObject, - OpenAIResponseObjectStream, - OpenAIResponsePrompt, - OpenAIResponseText, -) - - -@json_schema_type -class ResponseGuardrailSpec(BaseModel): - """Specification for a guardrail to apply during response generation. - - :param type: The type/identifier of the guardrail. - """ - - type: str - # TODO: more fields to be added for guardrail configuration - - -ResponseGuardrail = str | ResponseGuardrailSpec - - -class Attachment(BaseModel): - """An attachment to an agent turn. - - :param content: The content of the attachment. - :param mime_type: The MIME type of the attachment. - """ - - content: InterleavedContent | URL - mime_type: str - - -class Document(BaseModel): - """A document to be used by an agent. - - :param content: The content of the document. - :param mime_type: The MIME type of the document. - """ - - content: InterleavedContent | URL - mime_type: str - - -class StepCommon(BaseModel): - """A common step in an agent turn. - - :param turn_id: The ID of the turn. - :param step_id: The ID of the step. - :param started_at: The time the step started. - :param completed_at: The time the step completed. - """ - - turn_id: str - step_id: str - started_at: datetime | None = None - completed_at: datetime | None = None - - -class StepType(StrEnum): - """Type of the step in an agent turn. - - :cvar inference: The step is an inference step that calls an LLM. - :cvar tool_execution: The step is a tool execution step that executes a tool call. - :cvar shield_call: The step is a shield call step that checks for safety violations. - :cvar memory_retrieval: The step is a memory retrieval step that retrieves context for vector dbs. - """ - - inference = "inference" - tool_execution = "tool_execution" - shield_call = "shield_call" - memory_retrieval = "memory_retrieval" - - -@json_schema_type -class InferenceStep(StepCommon): - """An inference step in an agent turn. - - :param model_response: The response from the LLM. - """ - - model_config = ConfigDict(protected_namespaces=()) - - step_type: Literal[StepType.inference] = StepType.inference - model_response: CompletionMessage - - -@json_schema_type -class ToolExecutionStep(StepCommon): - """A tool execution step in an agent turn. - - :param tool_calls: The tool calls to execute. - :param tool_responses: The tool responses from the tool calls. - """ - - step_type: Literal[StepType.tool_execution] = StepType.tool_execution - tool_calls: list[ToolCall] - tool_responses: list[ToolResponse] - - -@json_schema_type -class ShieldCallStep(StepCommon): - """A shield call step in an agent turn. - - :param violation: The violation from the shield call. - """ - - step_type: Literal[StepType.shield_call] = StepType.shield_call - violation: SafetyViolation | None - - -@json_schema_type -class MemoryRetrievalStep(StepCommon): - """A memory retrieval step in an agent turn. - - :param vector_store_ids: The IDs of the vector databases to retrieve context from. - :param inserted_context: The context retrieved from the vector databases. - """ - - step_type: Literal[StepType.memory_retrieval] = StepType.memory_retrieval - # TODO: should this be List[str]? - vector_store_ids: str - inserted_context: InterleavedContent - - -Step = Annotated[ - InferenceStep | ToolExecutionStep | ShieldCallStep | MemoryRetrievalStep, - Field(discriminator="step_type"), -] - - -@json_schema_type -class Turn(BaseModel): - """A single turn in an interaction with an Agentic System. - - :param turn_id: Unique identifier for the turn within a session - :param session_id: Unique identifier for the conversation session - :param input_messages: List of messages that initiated this turn - :param steps: Ordered list of processing steps executed during this turn - :param output_message: The model's generated response containing content and metadata - :param output_attachments: (Optional) Files or media attached to the agent's response - :param started_at: Timestamp when the turn began - :param completed_at: (Optional) Timestamp when the turn finished, if completed - """ - - turn_id: str - session_id: str - input_messages: list[UserMessage | ToolResponseMessage] - steps: list[Step] - output_message: CompletionMessage - output_attachments: list[Attachment] | None = Field(default_factory=lambda: []) - - started_at: datetime - completed_at: datetime | None = None - - -@json_schema_type -class Session(BaseModel): - """A single session of an interaction with an Agentic System. - - :param session_id: Unique identifier for the conversation session - :param session_name: Human-readable name for the session - :param turns: List of all turns that have occurred in this session - :param started_at: Timestamp when the session was created - """ - - session_id: str - session_name: str - turns: list[Turn] - started_at: datetime - - -class AgentToolGroupWithArgs(BaseModel): - name: str - args: dict[str, Any] - - -AgentToolGroup = str | AgentToolGroupWithArgs -register_schema(AgentToolGroup, name="AgentTool") - - -class AgentConfigCommon(BaseModel): - sampling_params: SamplingParams | None = Field(default_factory=SamplingParams) - - input_shields: list[str] | None = Field(default_factory=lambda: []) - output_shields: list[str] | None = Field(default_factory=lambda: []) - toolgroups: list[AgentToolGroup] | None = Field(default_factory=lambda: []) - client_tools: list[ToolDef] | None = Field(default_factory=lambda: []) - tool_choice: ToolChoice | None = Field(default=None, deprecated="use tool_config instead") - tool_prompt_format: ToolPromptFormat | None = Field(default=None, deprecated="use tool_config instead") - tool_config: ToolConfig | None = Field(default=None) - - max_infer_iters: int | None = 10 - - def model_post_init(self, __context): - if self.tool_config: - if self.tool_choice and self.tool_config.tool_choice != self.tool_choice: - raise ValueError("tool_choice is deprecated. Use tool_choice in tool_config instead.") - if self.tool_prompt_format and self.tool_config.tool_prompt_format != self.tool_prompt_format: - raise ValueError("tool_prompt_format is deprecated. Use tool_prompt_format in tool_config instead.") - else: - params = {} - if self.tool_choice: - params["tool_choice"] = self.tool_choice - if self.tool_prompt_format: - params["tool_prompt_format"] = self.tool_prompt_format - self.tool_config = ToolConfig(**params) - - -@json_schema_type -class AgentConfig(AgentConfigCommon): - """Configuration for an agent. - - :param model: The model identifier to use for the agent - :param instructions: The system instructions for the agent - :param name: Optional name for the agent, used in telemetry and identification - :param enable_session_persistence: Optional flag indicating whether session data has to be persisted - :param response_format: Optional response format configuration - """ - - model: str - instructions: str - name: str | None = None - enable_session_persistence: bool | None = False - response_format: ResponseFormat | None = None - - -@json_schema_type -class Agent(BaseModel): - """An agent instance with configuration and metadata. - - :param agent_id: Unique identifier for the agent - :param agent_config: Configuration settings for the agent - :param created_at: Timestamp when the agent was created - """ - - agent_id: str - agent_config: AgentConfig - created_at: datetime - - -class AgentConfigOverridablePerTurn(AgentConfigCommon): - instructions: str | None = None - - -class AgentTurnResponseEventType(StrEnum): - step_start = "step_start" - step_complete = "step_complete" - step_progress = "step_progress" - - turn_start = "turn_start" - turn_complete = "turn_complete" - turn_awaiting_input = "turn_awaiting_input" - - -@json_schema_type -class AgentTurnResponseStepStartPayload(BaseModel): - """Payload for step start events in agent turn responses. - - :param event_type: Type of event being reported - :param step_type: Type of step being executed - :param step_id: Unique identifier for the step within a turn - :param metadata: (Optional) Additional metadata for the step - """ - - event_type: Literal[AgentTurnResponseEventType.step_start] = AgentTurnResponseEventType.step_start - step_type: StepType - step_id: str - metadata: dict[str, Any] | None = Field(default_factory=lambda: {}) - - -@json_schema_type -class AgentTurnResponseStepCompletePayload(BaseModel): - """Payload for step completion events in agent turn responses. - - :param event_type: Type of event being reported - :param step_type: Type of step being executed - :param step_id: Unique identifier for the step within a turn - :param step_details: Complete details of the executed step - """ - - event_type: Literal[AgentTurnResponseEventType.step_complete] = AgentTurnResponseEventType.step_complete - step_type: StepType - step_id: str - step_details: Step - - -@json_schema_type -class AgentTurnResponseStepProgressPayload(BaseModel): - """Payload for step progress events in agent turn responses. - - :param event_type: Type of event being reported - :param step_type: Type of step being executed - :param step_id: Unique identifier for the step within a turn - :param delta: Incremental content changes during step execution - """ - - model_config = ConfigDict(protected_namespaces=()) - - event_type: Literal[AgentTurnResponseEventType.step_progress] = AgentTurnResponseEventType.step_progress - step_type: StepType - step_id: str - - delta: ContentDelta - - -@json_schema_type -class AgentTurnResponseTurnStartPayload(BaseModel): - """Payload for turn start events in agent turn responses. - - :param event_type: Type of event being reported - :param turn_id: Unique identifier for the turn within a session - """ - - event_type: Literal[AgentTurnResponseEventType.turn_start] = AgentTurnResponseEventType.turn_start - turn_id: str - - -@json_schema_type -class AgentTurnResponseTurnCompletePayload(BaseModel): - """Payload for turn completion events in agent turn responses. - - :param event_type: Type of event being reported - :param turn: Complete turn data including all steps and results - """ - - event_type: Literal[AgentTurnResponseEventType.turn_complete] = AgentTurnResponseEventType.turn_complete - turn: Turn - - -@json_schema_type -class AgentTurnResponseTurnAwaitingInputPayload(BaseModel): - """Payload for turn awaiting input events in agent turn responses. - - :param event_type: Type of event being reported - :param turn: Turn data when waiting for external tool responses - """ - - event_type: Literal[AgentTurnResponseEventType.turn_awaiting_input] = AgentTurnResponseEventType.turn_awaiting_input - turn: Turn - - -AgentTurnResponseEventPayload = Annotated[ - AgentTurnResponseStepStartPayload - | AgentTurnResponseStepProgressPayload - | AgentTurnResponseStepCompletePayload - | AgentTurnResponseTurnStartPayload - | AgentTurnResponseTurnCompletePayload - | AgentTurnResponseTurnAwaitingInputPayload, - Field(discriminator="event_type"), -] -register_schema(AgentTurnResponseEventPayload, name="AgentTurnResponseEventPayload") - - -@json_schema_type -class AgentTurnResponseEvent(BaseModel): - """An event in an agent turn response stream. - - :param payload: Event-specific payload containing event data - """ - - payload: AgentTurnResponseEventPayload - - -@json_schema_type -class AgentCreateResponse(BaseModel): - """Response returned when creating a new agent. - - :param agent_id: Unique identifier for the created agent - """ - - agent_id: str - - -@json_schema_type -class AgentSessionCreateResponse(BaseModel): - """Response returned when creating a new agent session. - - :param session_id: Unique identifier for the created session - """ - - session_id: str - - -@json_schema_type -class AgentTurnCreateRequest(AgentConfigOverridablePerTurn): - """Request to create a new turn for an agent. - - :param agent_id: Unique identifier for the agent - :param session_id: Unique identifier for the conversation session - :param messages: List of messages to start the turn with - :param documents: (Optional) List of documents to provide to the agent - :param toolgroups: (Optional) List of tool groups to make available for this turn - :param stream: (Optional) Whether to stream the response - :param tool_config: (Optional) Tool configuration to override agent defaults - """ - - agent_id: str - session_id: str - - # TODO: figure out how we can simplify this and make why - # ToolResponseMessage needs to be here (it is function call - # execution from outside the system) - messages: list[UserMessage | ToolResponseMessage] - - documents: list[Document] | None = None - toolgroups: list[AgentToolGroup] | None = Field(default_factory=lambda: []) - - stream: bool | None = False - tool_config: ToolConfig | None = None - - -@json_schema_type -class AgentTurnResumeRequest(BaseModel): - """Request to resume an agent turn with tool responses. - - :param agent_id: Unique identifier for the agent - :param session_id: Unique identifier for the conversation session - :param turn_id: Unique identifier for the turn within a session - :param tool_responses: List of tool responses to submit to continue the turn - :param stream: (Optional) Whether to stream the response - """ - - agent_id: str - session_id: str - turn_id: str - tool_responses: list[ToolResponse] - stream: bool | None = False - - -@json_schema_type -class AgentTurnResponseStreamChunk(BaseModel): - """Streamed agent turn completion response. - - :param event: Individual event in the agent turn response stream - """ - - event: AgentTurnResponseEvent - - -@json_schema_type -class AgentStepResponse(BaseModel): - """Response containing details of a specific agent step. - - :param step: The complete step data and execution details - """ - - step: Step - - -@runtime_checkable -class Agents(Protocol): - """Agents - - APIs for creating and interacting with agentic systems.""" - - @webmethod( - route="/agents", - method="POST", - descriptive_name="create_agent", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def create_agent( - self, - agent_config: AgentConfig, - ) -> AgentCreateResponse: - """Create an agent with the given configuration. - - :param agent_config: The configuration for the agent. - :returns: An AgentCreateResponse with the agent ID. - """ - ... - - @webmethod( - route="/agents/{agent_id}/session/{session_id}/turn", - method="POST", - descriptive_name="create_agent_turn", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def create_agent_turn( - self, - agent_id: str, - session_id: str, - messages: list[UserMessage | ToolResponseMessage], - stream: bool | None = False, - documents: list[Document] | None = None, - toolgroups: list[AgentToolGroup] | None = None, - tool_config: ToolConfig | None = None, - ) -> Turn | AsyncIterator[AgentTurnResponseStreamChunk]: - """Create a new turn for an agent. - - :param agent_id: The ID of the agent to create the turn for. - :param session_id: The ID of the session to create the turn for. - :param messages: List of messages to start the turn with. - :param stream: (Optional) If True, generate an SSE event stream of the response. Defaults to False. - :param documents: (Optional) List of documents to create the turn with. - :param toolgroups: (Optional) List of toolgroups to create the turn with, will be used in addition to the agent's config toolgroups for the request. - :param tool_config: (Optional) The tool configuration to create the turn with, will be used to override the agent's tool_config. - :returns: If stream=False, returns a Turn object. - If stream=True, returns an SSE event stream of AgentTurnResponseStreamChunk. - """ - ... - - @webmethod( - route="/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume", - method="POST", - descriptive_name="resume_agent_turn", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def resume_agent_turn( - self, - agent_id: str, - session_id: str, - turn_id: str, - tool_responses: list[ToolResponse], - stream: bool | None = False, - ) -> Turn | AsyncIterator[AgentTurnResponseStreamChunk]: - """Resume an agent turn with executed tool call responses. - - When a Turn has the status `awaiting_input` due to pending input from client side tool calls, this endpoint can be used to submit the outputs from the tool calls once they are ready. - - :param agent_id: The ID of the agent to resume. - :param session_id: The ID of the session to resume. - :param turn_id: The ID of the turn to resume. - :param tool_responses: The tool call responses to resume the turn with. - :param stream: Whether to stream the response. - :returns: A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk objects. - """ - ... - - @webmethod( - route="/agents/{agent_id}/session/{session_id}/turn/{turn_id}", - method="GET", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def get_agents_turn( - self, - agent_id: str, - session_id: str, - turn_id: str, - ) -> Turn: - """Retrieve an agent turn by its ID. - - :param agent_id: The ID of the agent to get the turn for. - :param session_id: The ID of the session to get the turn for. - :param turn_id: The ID of the turn to get. - :returns: A Turn. - """ - ... - - @webmethod( - route="/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}", - method="GET", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def get_agents_step( - self, - agent_id: str, - session_id: str, - turn_id: str, - step_id: str, - ) -> AgentStepResponse: - """Retrieve an agent step by its ID. - - :param agent_id: The ID of the agent to get the step for. - :param session_id: The ID of the session to get the step for. - :param turn_id: The ID of the turn to get the step for. - :param step_id: The ID of the step to get. - :returns: An AgentStepResponse. - """ - ... - - @webmethod( - route="/agents/{agent_id}/session", - method="POST", - descriptive_name="create_agent_session", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def create_agent_session( - self, - agent_id: str, - session_name: str, - ) -> AgentSessionCreateResponse: - """Create a new session for an agent. - - :param agent_id: The ID of the agent to create the session for. - :param session_name: The name of the session to create. - :returns: An AgentSessionCreateResponse. - """ - ... - - @webmethod( - route="/agents/{agent_id}/session/{session_id}", - method="GET", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def get_agents_session( - self, - session_id: str, - agent_id: str, - turn_ids: list[str] | None = None, - ) -> Session: - """Retrieve an agent session by its ID. - - :param session_id: The ID of the session to get. - :param agent_id: The ID of the agent to get the session for. - :param turn_ids: (Optional) List of turn IDs to filter the session by. - :returns: A Session. - """ - ... - - @webmethod( - route="/agents/{agent_id}/session/{session_id}", - method="DELETE", - level=LLAMA_STACK_API_V1ALPHA, - ) - async def delete_agents_session( - self, - session_id: str, - agent_id: str, - ) -> None: - """Delete an agent session by its ID and its associated turns. - - :param session_id: The ID of the session to delete. - :param agent_id: The ID of the agent to delete the session for. - """ - ... - - @webmethod(route="/agents/{agent_id}", method="DELETE", level=LLAMA_STACK_API_V1ALPHA) - async def delete_agent( - self, - agent_id: str, - ) -> None: - """Delete an agent by its ID and its associated sessions and turns. - - :param agent_id: The ID of the agent to delete. - """ - ... - - @webmethod(route="/agents", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def list_agents(self, start_index: int | None = None, limit: int | None = None) -> PaginatedResponse: - """List all agents. - - :param start_index: The index to start the pagination from. - :param limit: The number of agents to return. - :returns: A PaginatedResponse. - """ - ... - - @webmethod(route="/agents/{agent_id}", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def get_agent(self, agent_id: str) -> Agent: - """Describe an agent by its ID. - - :param agent_id: ID of the agent. - :returns: An Agent of the agent. - """ - ... - - @webmethod(route="/agents/{agent_id}/sessions", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def list_agent_sessions( - self, - agent_id: str, - start_index: int | None = None, - limit: int | None = None, - ) -> PaginatedResponse: - """List all session(s) of a given agent. - - :param agent_id: The ID of the agent to list sessions for. - :param start_index: The index to start the pagination from. - :param limit: The number of sessions to return. - :returns: A PaginatedResponse. - """ - ... - - # We situate the OpenAI Responses API in the Agents API just like we did things - # for Inference. The Responses API, in its intent, serves the same purpose as - # the Agents API above -- it is essentially a lightweight "agentic loop" with - # integrated tool calling. - # - # Both of these APIs are inherently stateful. - - @webmethod(route="/responses/{response_id}", method="GET", level=LLAMA_STACK_API_V1) - async def get_openai_response( - self, - response_id: str, - ) -> OpenAIResponseObject: - """Get a model response. - - :param response_id: The ID of the OpenAI response to retrieve. - :returns: An OpenAIResponseObject. - """ - ... - - @webmethod(route="/responses", method="POST", level=LLAMA_STACK_API_V1) - async def create_openai_response( - self, - input: str | list[OpenAIResponseInput], - model: str, - prompt: OpenAIResponsePrompt | None = None, - instructions: str | None = None, - previous_response_id: str | None = None, - conversation: str | None = None, - store: bool | None = True, - stream: bool | None = False, - temperature: float | None = None, - text: OpenAIResponseText | None = None, - tools: list[OpenAIResponseInputTool] | None = None, - include: list[str] | None = None, - max_infer_iters: int | None = 10, # this is an extension to the OpenAI API - guardrails: Annotated[ - list[ResponseGuardrail] | None, - ExtraBodyField( - "List of guardrails to apply during response generation. Guardrails provide safety and content moderation." - ), - ] = None, - ) -> OpenAIResponseObject | AsyncIterator[OpenAIResponseObjectStream]: - """Create a model response. - - :param input: Input message(s) to create the response. - :param model: The underlying LLM used for completions. - :param prompt: (Optional) Prompt object with ID, version, and variables. - :param previous_response_id: (Optional) if specified, the new response will be a continuation of the previous response. This can be used to easily fork-off new responses from existing responses. - :param conversation: (Optional) The ID of a conversation to add the response to. Must begin with 'conv_'. Input and output messages will be automatically added to the conversation. - :param include: (Optional) Additional fields to include in the response. - :param guardrails: (Optional) List of guardrails to apply during response generation. Can be guardrail IDs (strings) or guardrail specifications. - :returns: An OpenAIResponseObject. - """ - ... - - @webmethod(route="/responses", method="GET", level=LLAMA_STACK_API_V1) - async def list_openai_responses( - self, - after: str | None = None, - limit: int | None = 50, - model: str | None = None, - order: Order | None = Order.desc, - ) -> ListOpenAIResponseObject: - """List all responses. - - :param after: The ID of the last response to return. - :param limit: The number of responses to return. - :param model: The model to filter responses by. - :param order: The order to sort responses by when sorted by created_at ('asc' or 'desc'). - :returns: A ListOpenAIResponseObject. - """ - ... - - @webmethod(route="/responses/{response_id}/input_items", method="GET", level=LLAMA_STACK_API_V1) - async def list_openai_response_input_items( - self, - response_id: str, - after: str | None = None, - before: str | None = None, - include: list[str] | None = None, - limit: int | None = 20, - order: Order | None = Order.desc, - ) -> ListOpenAIResponseInputItem: - """List input items. - - :param response_id: The ID of the response to retrieve input items for. - :param after: An item ID to list items after, used for pagination. - :param before: An item ID to list items before, used for pagination. - :param include: Additional fields to include in the response. - :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - :param order: The order to return the input items in. Default is desc. - :returns: An ListOpenAIResponseInputItem. - """ - ... - - @webmethod(route="/responses/{response_id}", method="DELETE", level=LLAMA_STACK_API_V1) - async def delete_openai_response(self, response_id: str) -> OpenAIDeleteResponseObject: - """Delete a response. - - :param response_id: The ID of the OpenAI response to delete. - :returns: An OpenAIDeleteResponseObject - """ - ... diff --git a/src/llama_stack/apis/agents/agents_service.py b/src/llama_stack/apis/agents/agents_service.py new file mode 100644 index 000000000..0c5e61a1d --- /dev/null +++ b/src/llama_stack/apis/agents/agents_service.py @@ -0,0 +1,308 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from collections.abc import AsyncIterator +from typing import Annotated, Protocol, runtime_checkable + +from llama_stack.apis.common.responses import Order, PaginatedResponse +from llama_stack.apis.inference import ToolConfig, ToolResponse, ToolResponseMessage, UserMessage +from llama_stack.core.telemetry.trace_protocol import trace_protocol +from llama_stack.schema_utils import ExtraBodyField + +from .models import ( + Agent, + AgentConfig, + AgentCreateResponse, + AgentSessionCreateResponse, + AgentStepResponse, + AgentToolGroup, + AgentTurnResponseStreamChunk, + Document, + ResponseGuardrail, + Session, + Turn, +) +from .openai_responses import ( + ListOpenAIResponseInputItem, + ListOpenAIResponseObject, + OpenAIDeleteResponseObject, + OpenAIResponseInput, + OpenAIResponseInputTool, + OpenAIResponseObject, + OpenAIResponseObjectStream, + OpenAIResponsePrompt, + OpenAIResponseText, +) + + +@runtime_checkable +@trace_protocol +class AgentsService(Protocol): + """Agents + + APIs for creating and interacting with agentic systems.""" + + async def create_agent( + self, + agent_config: AgentConfig, + ) -> AgentCreateResponse: + """Create an agent with the given configuration. + + :param agent_config: The configuration for the agent. + :returns: An AgentCreateResponse with the agent ID. + """ + ... + + async def create_agent_turn( + self, + agent_id: str, + session_id: str, + messages: list[UserMessage | ToolResponseMessage], + stream: bool | None = False, + documents: list[Document] | None = None, + toolgroups: list[AgentToolGroup] | None = None, + tool_config: ToolConfig | None = None, + ) -> Turn | AsyncIterator[AgentTurnResponseStreamChunk]: + """Create a new turn for an agent. + + :param agent_id: The ID of the agent to create the turn for. + :param session_id: The ID of the session to create the turn for. + :param messages: List of messages to start the turn with. + :param stream: (Optional) If True, generate an SSE event stream of the response. Defaults to False. + :param documents: (Optional) List of documents to create the turn with. + :param toolgroups: (Optional) List of toolgroups to create the turn with, will be used in addition to the agent's config toolgroups for the request. + :param tool_config: (Optional) The tool configuration to create the turn with, will be used to override the agent's tool_config. + :returns: If stream=False, returns a Turn object. + If stream=True, returns an SSE event stream of AgentTurnResponseStreamChunk. + """ + ... + + async def resume_agent_turn( + self, + agent_id: str, + session_id: str, + turn_id: str, + tool_responses: list[ToolResponse], + stream: bool | None = False, + ) -> Turn | AsyncIterator[AgentTurnResponseStreamChunk]: + """Resume an agent turn with executed tool call responses. + + When a Turn has the status `awaiting_input` due to pending input from client side tool calls, this endpoint can be used to submit the outputs from the tool calls once they are ready. + + :param agent_id: The ID of the agent to resume. + :param session_id: The ID of the session to resume. + :param turn_id: The ID of the turn to resume. + :param tool_responses: The tool call responses to resume the turn with. + :param stream: Whether to stream the response. + :returns: A Turn object if stream is False, otherwise an AsyncIterator of AgentTurnResponseStreamChunk objects. + """ + ... + + async def get_agents_turn( + self, + agent_id: str, + session_id: str, + turn_id: str, + ) -> Turn: + """Retrieve an agent turn by its ID. + + :param agent_id: The ID of the agent to get the turn for. + :param session_id: The ID of the session to get the turn for. + :param turn_id: The ID of the turn to get. + :returns: A Turn. + """ + ... + + async def get_agents_step( + self, + agent_id: str, + session_id: str, + turn_id: str, + step_id: str, + ) -> AgentStepResponse: + """Retrieve an agent step by its ID. + + :param agent_id: The ID of the agent to get the step for. + :param session_id: The ID of the session to get the step for. + :param turn_id: The ID of the turn to get the step for. + :param step_id: The ID of the step to get. + :returns: An AgentStepResponse. + """ + ... + + async def create_agent_session( + self, + agent_id: str, + session_name: str, + ) -> AgentSessionCreateResponse: + """Create a new session for an agent. + + :param agent_id: The ID of the agent to create the session for. + :param session_name: The name of the session to create. + :returns: An AgentSessionCreateResponse. + """ + ... + + async def get_agents_session( + self, + session_id: str, + agent_id: str, + turn_ids: list[str] | None = None, + ) -> Session: + """Retrieve an agent session by its ID. + + :param session_id: The ID of the session to get. + :param agent_id: The ID of the agent to get the session for. + :param turn_ids: (Optional) List of turn IDs to filter the session by. + :returns: A Session. + """ + ... + + async def delete_agents_session( + self, + session_id: str, + agent_id: str, + ) -> None: + """Delete an agent session by its ID and its associated turns. + + :param session_id: The ID of the session to delete. + :param agent_id: The ID of the agent to delete the session for. + """ + ... + + async def delete_agent( + self, + agent_id: str, + ) -> None: + """Delete an agent by its ID and its associated sessions and turns. + + :param agent_id: The ID of the agent to delete. + """ + ... + + async def list_agents(self, start_index: int | None = None, limit: int | None = None) -> PaginatedResponse: + """List all agents. + + :param start_index: The index to start the pagination from. + :param limit: The number of agents to return. + :returns: A PaginatedResponse. + """ + ... + + async def get_agent(self, agent_id: str) -> Agent: + """Describe an agent by its ID. + + :param agent_id: ID of the agent. + :returns: An Agent of the agent. + """ + ... + + async def list_agent_sessions( + self, + agent_id: str, + start_index: int | None = None, + limit: int | None = None, + ) -> PaginatedResponse: + """List all session(s) of a given agent. + + :param agent_id: The ID of the agent to list sessions for. + :param start_index: The index to start the pagination from. + :param limit: The number of sessions to return. + :returns: A PaginatedResponse. + """ + ... + + async def get_openai_response( + self, + response_id: str, + ) -> OpenAIResponseObject: + """Get a model response. + + :param response_id: The ID of the OpenAI response to retrieve. + :returns: An OpenAIResponseObject. + """ + ... + + async def create_openai_response( + self, + input: str | list[OpenAIResponseInput], + model: str, + prompt: OpenAIResponsePrompt | None = None, + instructions: str | None = None, + previous_response_id: str | None = None, + conversation: str | None = None, + store: bool | None = True, + stream: bool | None = False, + temperature: float | None = None, + text: OpenAIResponseText | None = None, + tools: list[OpenAIResponseInputTool] | None = None, + include: list[str] | None = None, + max_infer_iters: int | None = 10, + guardrails: Annotated[ + list[ResponseGuardrail] | None, + ExtraBodyField( + "List of guardrails to apply during response generation. Guardrails provide safety and content moderation." + ), + ] = None, + ) -> OpenAIResponseObject | AsyncIterator[OpenAIResponseObjectStream]: + """Create a model response. + + :param input: Input message(s) to create the response. + :param model: The underlying LLM used for completions. + :param prompt: (Optional) Prompt object with ID, version, and variables. + :param previous_response_id: (Optional) if specified, the new response will be a continuation of the previous response. This can be used to easily fork-off new responses from existing responses. + :param conversation: (Optional) The ID of a conversation to add the response to. Must begin with 'conv_'. Input and output messages will be automatically added to the conversation. + :param include: (Optional) Additional fields to include in the response. + :param guardrails: (Optional) List of guardrails to apply during response generation. Can be guardrail IDs (strings) or guardrail specifications. + :returns: An OpenAIResponseObject. + """ + ... + + async def list_openai_responses( + self, + after: str | None = None, + limit: int | None = 50, + model: str | None = None, + order: Order | None = Order.desc, + ) -> ListOpenAIResponseObject: + """List all responses. + + :param after: The ID of the last response to return. + :param limit: The number of responses to return. + :param model: The model to filter responses by. + :param order: The order to sort responses by when sorted by created_at ('asc' or 'desc'). + :returns: A ListOpenAIResponseObject. + """ + ... + + async def list_openai_response_input_items( + self, + response_id: str, + after: str | None = None, + before: str | None = None, + include: list[str] | None = None, + limit: int | None = 20, + order: Order | None = Order.desc, + ) -> ListOpenAIResponseInputItem: + """List input items. + + :param response_id: The ID of the response to retrieve input items for. + :param after: An item ID to list items after, used for pagination. + :param before: An item ID to list items before, used for pagination. + :param include: Additional fields to include in the response. + :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + :param order: The order to return the input items in. Default is desc. + :returns: An ListOpenAIResponseInputItem. + """ + ... + + async def delete_openai_response(self, response_id: str) -> OpenAIDeleteResponseObject: + """Delete a response. + + :param response_id: The ID of the OpenAI response to delete. + :returns: An OpenAIDeleteResponseObject + """ + ... diff --git a/src/llama_stack/apis/agents/models.py b/src/llama_stack/apis/agents/models.py new file mode 100644 index 000000000..633e736f7 --- /dev/null +++ b/src/llama_stack/apis/agents/models.py @@ -0,0 +1,409 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from datetime import datetime +from enum import StrEnum +from typing import Annotated, Any, Literal + +from pydantic import BaseModel, ConfigDict, Field + +from llama_stack.apis.common.content_types import URL, ContentDelta, InterleavedContent +from llama_stack.apis.inference import ( + CompletionMessage, + ResponseFormat, + SamplingParams, + ToolCall, + ToolChoice, + ToolConfig, + ToolPromptFormat, + ToolResponse, + ToolResponseMessage, + UserMessage, +) +from llama_stack.apis.safety import SafetyViolation +from llama_stack.apis.tools import ToolDef +from llama_stack.schema_utils import json_schema_type, register_schema + +from .openai_responses import ( + OpenAIResponseInput, + OpenAIResponseInputTool, + OpenAIResponsePrompt, + OpenAIResponseText, +) + + +@json_schema_type +class ResponseGuardrailSpec(BaseModel): + """Specification for a guardrail to apply during response generation.""" + + type: str = Field(description="The type/identifier of the guardrail.") + # TODO: more fields to be added for guardrail configuration + + +ResponseGuardrail = str | ResponseGuardrailSpec + + +class Attachment(BaseModel): + """An attachment to an agent turn.""" + + content: InterleavedContent | URL = Field(description="The content of the attachment.") + mime_type: str = Field(description="The MIME type of the attachment.") + + +class Document(BaseModel): + """A document to be used by an agent.""" + + content: InterleavedContent | URL = Field(description="The content of the document.") + mime_type: str = Field(description="The MIME type of the document.") + + +class StepCommon(BaseModel): + """A common step in an agent turn.""" + + turn_id: str = Field(description="The ID of the turn.") + step_id: str = Field(description="The ID of the step.") + started_at: datetime | None = Field(default=None, description="The time the step started.") + completed_at: datetime | None = Field(default=None, description="The time the step completed.") + + +class StepType(StrEnum): + """Type of the step in an agent turn.""" + + inference = "inference" + tool_execution = "tool_execution" + shield_call = "shield_call" + memory_retrieval = "memory_retrieval" + + +@json_schema_type +class InferenceStep(StepCommon): + """An inference step in an agent turn.""" + + model_config = ConfigDict(protected_namespaces=()) + + step_type: Literal[StepType.inference] = Field(default=StepType.inference) + model_response: CompletionMessage = Field(description="The response from the LLM.") + + +@json_schema_type +class ToolExecutionStep(StepCommon): + """A tool execution step in an agent turn.""" + + step_type: Literal[StepType.tool_execution] = Field(default=StepType.tool_execution) + tool_calls: list[ToolCall] = Field(description="The tool calls to execute.") + tool_responses: list[ToolResponse] = Field(description="The tool responses from the tool calls.") + + +@json_schema_type +class ShieldCallStep(StepCommon): + """A shield call step in an agent turn.""" + + step_type: Literal[StepType.shield_call] = Field(default=StepType.shield_call) + violation: SafetyViolation | None = Field(default=None, description="The violation from the shield call.") + + +@json_schema_type +class MemoryRetrievalStep(StepCommon): + """A memory retrieval step in an agent turn.""" + + step_type: Literal[StepType.memory_retrieval] = Field(default=StepType.memory_retrieval) + # TODO: should this be List[str]? + vector_store_ids: str = Field(description="The IDs of the vector databases to retrieve context from.") + inserted_context: InterleavedContent = Field(description="The context retrieved from the vector databases.") + + +Step = Annotated[ + InferenceStep | ToolExecutionStep | ShieldCallStep | MemoryRetrievalStep, + Field(discriminator="step_type"), +] + + +@json_schema_type +class Turn(BaseModel): + """A single turn in an interaction with an Agentic System.""" + + turn_id: str = Field(description="Unique identifier for the turn within a session") + session_id: str = Field(description="Unique identifier for the conversation session") + input_messages: list[UserMessage | ToolResponseMessage] = Field( + description="List of messages that initiated this turn" + ) + steps: list[Step] = Field(description="Ordered list of processing steps executed during this turn") + output_message: CompletionMessage = Field( + description="The model's generated response containing content and metadata" + ) + output_attachments: list[Attachment] | None = Field( + default_factory=lambda: [], description="Files or media attached to the agent's response" + ) + + started_at: datetime = Field(description="Timestamp when the turn began") + completed_at: datetime | None = Field(default=None, description="Timestamp when the turn finished, if completed") + + +@json_schema_type +class Session(BaseModel): + """A single session of an interaction with an Agentic System.""" + + session_id: str = Field(description="Unique identifier for the conversation session") + session_name: str = Field(description="Human-readable name for the session") + turns: list[Turn] = Field(description="List of all turns that have occurred in this session") + started_at: datetime = Field(description="Timestamp when the session was created") + + +class AgentToolGroupWithArgs(BaseModel): + name: str = Field() + args: dict[str, Any] = Field() + + +AgentToolGroup = str | AgentToolGroupWithArgs +register_schema(AgentToolGroup, name="AgentTool") + + +class AgentConfigCommon(BaseModel): + sampling_params: SamplingParams | None = Field(default_factory=SamplingParams) + + input_shields: list[str] | None = Field(default_factory=lambda: []) + output_shields: list[str] | None = Field(default_factory=lambda: []) + toolgroups: list[AgentToolGroup] | None = Field(default_factory=lambda: []) + client_tools: list[ToolDef] | None = Field(default_factory=lambda: []) + tool_choice: ToolChoice | None = Field(default=None, deprecated="use tool_config instead") + tool_prompt_format: ToolPromptFormat | None = Field(default=None, deprecated="use tool_config instead") + tool_config: ToolConfig | None = Field(default=None) + + max_infer_iters: int | None = 10 + + def model_post_init(self, __context): + if self.tool_config: + if self.tool_choice and self.tool_config.tool_choice != self.tool_choice: + raise ValueError("tool_choice is deprecated. Use tool_choice in tool_config instead.") + if self.tool_prompt_format and self.tool_config.tool_prompt_format != self.tool_prompt_format: + raise ValueError("tool_prompt_format is deprecated. Use tool_prompt_format in tool_config instead.") + else: + params = {} + if self.tool_choice: + params["tool_choice"] = self.tool_choice + if self.tool_prompt_format: + params["tool_prompt_format"] = self.tool_prompt_format + self.tool_config = ToolConfig(**params) + + +@json_schema_type +class AgentConfig(AgentConfigCommon): + """Configuration for an agent.""" + + model: str = Field(description="The model identifier to use for the agent") + instructions: str = Field(description="The system instructions for the agent") + name: str | None = Field( + default=None, description="Optional name for the agent, used in telemetry and identification" + ) + enable_session_persistence: bool | None = Field( + default=False, description="Optional flag indicating whether session data has to be persisted" + ) + response_format: ResponseFormat | None = Field(default=None, description="Optional response format configuration") + + +@json_schema_type +class Agent(BaseModel): + """An agent instance with configuration and metadata.""" + + agent_id: str = Field(description="Unique identifier for the agent") + agent_config: AgentConfig = Field(description="Configuration settings for the agent") + created_at: datetime = Field(description="Timestamp when the agent was created") + + +class AgentConfigOverridablePerTurn(AgentConfigCommon): + instructions: str | None = Field(default=None) + + +class AgentTurnResponseEventType(StrEnum): + step_start = "step_start" + step_complete = "step_complete" + step_progress = "step_progress" + + turn_start = "turn_start" + turn_complete = "turn_complete" + turn_awaiting_input = "turn_awaiting_input" + + +@json_schema_type +class AgentTurnResponseStepStartPayload(BaseModel): + """Payload for step start events in agent turn responses.""" + + event_type: Literal[AgentTurnResponseEventType.step_start] = Field( + default=AgentTurnResponseEventType.step_start, description="Type of event being reported" + ) + step_type: StepType = Field(description="Type of step being executed") + step_id: str = Field(description="Unique identifier for the step within a turn") + metadata: dict[str, Any] | None = Field(default_factory=lambda: {}, description="Additional metadata for the step") + + +@json_schema_type +class AgentTurnResponseStepCompletePayload(BaseModel): + """Payload for step completion events in agent turn responses.""" + + event_type: Literal[AgentTurnResponseEventType.step_complete] = Field( + default=AgentTurnResponseEventType.step_complete, description="Type of event being reported" + ) + step_type: StepType = Field(description="Type of step being executed") + step_id: str = Field(description="Unique identifier for the step within a turn") + step_details: Step = Field(description="Complete details of the executed step") + + +@json_schema_type +class AgentTurnResponseStepProgressPayload(BaseModel): + """Payload for step progress events in agent turn responses.""" + + model_config = ConfigDict(protected_namespaces=()) + + event_type: Literal[AgentTurnResponseEventType.step_progress] = Field( + default=AgentTurnResponseEventType.step_progress, description="Type of event being reported" + ) + step_type: StepType = Field(description="Type of step being executed") + step_id: str = Field(description="Unique identifier for the step within a turn") + + delta: ContentDelta = Field(description="Incremental content changes during step execution") + + +@json_schema_type +class AgentTurnResponseTurnStartPayload(BaseModel): + """Payload for turn start events in agent turn responses.""" + + event_type: Literal[AgentTurnResponseEventType.turn_start] = Field( + default=AgentTurnResponseEventType.turn_start, description="Type of event being reported" + ) + turn_id: str = Field(description="Unique identifier for the turn within a session") + + +@json_schema_type +class AgentTurnResponseTurnCompletePayload(BaseModel): + """Payload for turn completion events in agent turn responses.""" + + event_type: Literal[AgentTurnResponseEventType.turn_complete] = Field( + default=AgentTurnResponseEventType.turn_complete, description="Type of event being reported" + ) + turn: Turn = Field(description="Complete turn data including all steps and results") + + +@json_schema_type +class AgentTurnResponseTurnAwaitingInputPayload(BaseModel): + """Payload for turn awaiting input events in agent turn responses.""" + + event_type: Literal[AgentTurnResponseEventType.turn_awaiting_input] = Field( + default=AgentTurnResponseEventType.turn_awaiting_input, description="Type of event being reported" + ) + turn: Turn = Field(description="Turn data when waiting for external tool responses") + + +AgentTurnResponseEventPayload = Annotated[ + AgentTurnResponseStepStartPayload + | AgentTurnResponseStepProgressPayload + | AgentTurnResponseStepCompletePayload + | AgentTurnResponseTurnStartPayload + | AgentTurnResponseTurnCompletePayload + | AgentTurnResponseTurnAwaitingInputPayload, + Field(discriminator="event_type"), +] +register_schema(AgentTurnResponseEventPayload, name="AgentTurnResponseEventPayload") + + +@json_schema_type +class AgentTurnResponseEvent(BaseModel): + """An event in an agent turn response stream.""" + + payload: AgentTurnResponseEventPayload = Field(description="Event-specific payload containing event data") + + +@json_schema_type +class AgentCreateResponse(BaseModel): + """Response returned when creating a new agent.""" + + agent_id: str = Field(description="Unique identifier for the created agent") + + +@json_schema_type +class AgentSessionCreateResponse(BaseModel): + """Response returned when creating a new agent session.""" + + session_id: str = Field(description="Unique identifier for the created session") + + +@json_schema_type +class AgentTurnCreateRequest(AgentConfigOverridablePerTurn): + """Request to create a new turn for an agent.""" + + agent_id: str = Field(description="Unique identifier for the agent") + session_id: str = Field(description="Unique identifier for the conversation session") + + # TODO: figure out how we can simplify this and make why + # ToolResponseMessage needs to be here (it is function call + # execution from outside the system) + messages: list[UserMessage | ToolResponseMessage] = Field(description="List of messages to start the turn with") + + documents: list[Document] | None = Field(default=None, description="List of documents to provide to the agent") + toolgroups: list[AgentToolGroup] | None = Field( + default_factory=lambda: [], description="List of tool groups to make available for this turn" + ) + + stream: bool | None = Field(default=False, description="Whether to stream the response") + tool_config: ToolConfig | None = Field(default=None, description="Tool configuration to override agent defaults") + + +@json_schema_type +class AgentTurnResumeRequest(BaseModel): + """Request to resume an agent turn with tool responses.""" + + agent_id: str = Field(description="Unique identifier for the agent") + session_id: str = Field(description="Unique identifier for the conversation session") + turn_id: str = Field(description="Unique identifier for the turn within a session") + tool_responses: list[ToolResponse] = Field(description="List of tool responses to submit to continue the turn") + stream: bool | None = Field(default=False, description="Whether to stream the response") + + +@json_schema_type +class AgentTurnResponseStreamChunk(BaseModel): + """Streamed agent turn completion response.""" + + event: AgentTurnResponseEvent = Field(description="Individual event in the agent turn response stream") + + +@json_schema_type +class AgentStepResponse(BaseModel): + """Response containing details of a specific agent step.""" + + step: Step = Field(description="The complete step data and execution details") + + +@json_schema_type +class CreateAgentSessionRequest(BaseModel): + """Request to create a new session for an agent.""" + + agent_id: str = Field(..., description="The ID of the agent to create the session for") + session_name: str = Field(..., description="The name of the session to create") + + +@json_schema_type +class CreateOpenAIResponseRequest(BaseModel): + """Request to create a model response.""" + + input: str | list[OpenAIResponseInput] = Field(..., description="Input message(s) to create the response") + model: str = Field(..., description="The underlying LLM used for completions") + prompt: OpenAIResponsePrompt | None = Field(None, description="Prompt object with ID, version, and variables") + instructions: str | None = Field(None, description="System instructions") + previous_response_id: str | None = Field( + None, description="If specified, the new response will be a continuation of the previous response" + ) + conversation: str | None = Field( + None, description="The ID of a conversation to add the response to. Must begin with 'conv_'" + ) + store: bool = Field(True, description="Whether to store the response") + stream: bool = Field(False, description="Whether to stream the response") + temperature: float | None = Field(None, description="Sampling temperature") + text: OpenAIResponseText | None = Field(None, description="Text generation parameters") + tools: list[OpenAIResponseInputTool] | None = Field(None, description="Tools to make available") + include: list[str] | None = Field(None, description="Additional fields to include in the response") + max_infer_iters: int = Field(10, description="Maximum number of inference iterations (extension to the OpenAI API)") + guardrails: list[ResponseGuardrail] | None = Field( + None, description="List of guardrails to apply during response generation" + ) diff --git a/src/llama_stack/apis/agents/openai_responses.py b/src/llama_stack/apis/agents/openai_responses.py index 3febbb733..89ad7ca25 100644 --- a/src/llama_stack/apis/agents/openai_responses.py +++ b/src/llama_stack/apis/agents/openai_responses.py @@ -25,8 +25,8 @@ class OpenAIResponseError(BaseModel): :param message: Human-readable error message describing the failure """ - code: str - message: str + code: str = Field(description="Error code identifying the type of failure") + message: str = Field(description="Human-readable error message describing the failure") @json_schema_type @@ -37,8 +37,10 @@ class OpenAIResponseInputMessageContentText(BaseModel): :param type: Content type identifier, always "input_text" """ - text: str - type: Literal["input_text"] = "input_text" + text: str = Field(description="The text content of the input message") + type: Literal["input_text"] = Field( + default="input_text", description='Content type identifier, always "input_text"' + ) @json_schema_type @@ -51,10 +53,14 @@ class OpenAIResponseInputMessageContentImage(BaseModel): :param image_url: (Optional) URL of the image content """ - detail: Literal["low"] | Literal["high"] | Literal["auto"] = "auto" - type: Literal["input_image"] = "input_image" - file_id: str | None = None - image_url: str | None = None + detail: Literal["low"] | Literal["high"] | Literal["auto"] = Field( + default="auto", description='Level of detail for image processing, can be "low", "high", or "auto"' + ) + type: Literal["input_image"] = Field( + default="input_image", description='Content type identifier, always "input_image"' + ) + file_id: str | None = Field(default=None, description="The ID of the file to be sent to the model.") + image_url: str | None = Field(default=None, description="URL of the image content") @json_schema_type @@ -68,11 +74,13 @@ class OpenAIResponseInputMessageContentFile(BaseModel): :param filename: The name of the file to be sent to the model. """ - type: Literal["input_file"] = "input_file" - file_data: str | None = None - file_id: str | None = None - file_url: str | None = None - filename: str | None = None + type: Literal["input_file"] = Field( + default="input_file", description="The type of the input item. Always `input_file`." + ) + file_data: str | None = Field(default=None, description="The data of the file to be sent to the model.") + file_id: str | None = Field(default=None, description="The ID of the file to be sent to the model.") + file_url: str | None = Field(default=None, description="The URL of the file to be sent to the model.") + filename: str | None = Field(default=None, description="The name of the file to be sent to the model.") @model_validator(mode="after") def validate_file_source(self) -> "OpenAIResponseInputMessageContentFile": @@ -102,9 +110,14 @@ class OpenAIResponsePrompt(BaseModel): :param version: Version number of the prompt to use (defaults to latest if not specified) """ - id: str - variables: dict[str, OpenAIResponseInputMessageContent] | None = None - version: str | None = None + id: str = Field(description="Unique identifier of the prompt template") + variables: dict[str, OpenAIResponseInputMessageContent] | None = Field( + default=None, + description="Dictionary of variable names to OpenAIResponseInputMessageContent structure for template substitution. The substitution values can either be strings, or other Response input types like images or files.", + ) + version: str | None = Field( + default=None, description="Version number of the prompt to use (defaults to latest if not specified)" + ) @json_schema_type @@ -117,10 +130,12 @@ class OpenAIResponseAnnotationFileCitation(BaseModel): :param index: Position index of the citation within the content """ - type: Literal["file_citation"] = "file_citation" - file_id: str - filename: str - index: int + type: Literal["file_citation"] = Field( + default="file_citation", description='Annotation type identifier, always "file_citation"' + ) + file_id: str = Field(description="Unique identifier of the referenced file") + filename: str = Field(description="Name of the referenced file") + index: int = Field(description="Position index of the citation within the content") @json_schema_type @@ -134,28 +149,30 @@ class OpenAIResponseAnnotationCitation(BaseModel): :param url: URL of the referenced web resource """ - type: Literal["url_citation"] = "url_citation" - end_index: int - start_index: int - title: str - url: str + type: Literal["url_citation"] = Field( + default="url_citation", description='Annotation type identifier, always "url_citation"' + ) + end_index: int = Field(description="End position of the citation span in the content") + start_index: int = Field(description="Start position of the citation span in the content") + title: str = Field(description="Title of the referenced web resource") + url: str = Field(description="URL of the referenced web resource") @json_schema_type class OpenAIResponseAnnotationContainerFileCitation(BaseModel): - type: Literal["container_file_citation"] = "container_file_citation" - container_id: str - end_index: int - file_id: str - filename: str - start_index: int + type: Literal["container_file_citation"] = Field(default="container_file_citation") + container_id: str = Field() + end_index: int = Field() + file_id: str = Field() + filename: str = Field() + start_index: int = Field() @json_schema_type class OpenAIResponseAnnotationFilePath(BaseModel): - type: Literal["file_path"] = "file_path" - file_id: str - index: int + type: Literal["file_path"] = Field(default="file_path") + file_id: str = Field() + index: int = Field() OpenAIResponseAnnotations = Annotated[ @@ -170,8 +187,8 @@ register_schema(OpenAIResponseAnnotations, name="OpenAIResponseAnnotations") @json_schema_type class OpenAIResponseOutputMessageContentOutputText(BaseModel): - text: str - type: Literal["output_text"] = "output_text" + text: str = Field() + type: Literal["output_text"] = Field(default="output_text") annotations: list[OpenAIResponseAnnotations] = Field(default_factory=list) @@ -183,8 +200,8 @@ class OpenAIResponseContentPartRefusal(BaseModel): :param refusal: Refusal text supplied by the model """ - type: Literal["refusal"] = "refusal" - refusal: str + type: Literal["refusal"] = Field(default="refusal", description='Content part type identifier, always "refusal"') + refusal: str = Field(description="Refusal text supplied by the model") OpenAIResponseOutputMessageContent = Annotated[ @@ -203,13 +220,13 @@ class OpenAIResponseMessage(BaseModel): scenarios. """ - content: str | Sequence[OpenAIResponseInputMessageContent] | Sequence[OpenAIResponseOutputMessageContent] - role: Literal["system"] | Literal["developer"] | Literal["user"] | Literal["assistant"] - type: Literal["message"] = "message" + content: str | Sequence[OpenAIResponseInputMessageContent] | Sequence[OpenAIResponseOutputMessageContent] = Field() + role: Literal["system"] | Literal["developer"] | Literal["user"] | Literal["assistant"] = Field() + type: Literal["message"] = Field(default="message") # The fields below are not used in all scenarios, but are required in others. - id: str | None = None - status: str | None = None + id: str | None = Field(default=None) + status: str | None = Field(default=None) @json_schema_type @@ -221,9 +238,11 @@ class OpenAIResponseOutputMessageWebSearchToolCall(BaseModel): :param type: Tool call type identifier, always "web_search_call" """ - id: str - status: str - type: Literal["web_search_call"] = "web_search_call" + id: str = Field(description="Unique identifier for this tool call") + status: str = Field(description="Current status of the web search operation") + type: Literal["web_search_call"] = Field( + default="web_search_call", description='Tool call type identifier, always "web_search_call"' + ) class OpenAIResponseOutputMessageFileSearchToolCallResults(BaseModel): @@ -236,11 +255,11 @@ class OpenAIResponseOutputMessageFileSearchToolCallResults(BaseModel): :param text: Text content of the search result """ - attributes: dict[str, Any] - file_id: str - filename: str - score: float - text: str + attributes: dict[str, Any] = Field(description="Key-value attributes associated with the file") + file_id: str = Field(description="Unique identifier of the file containing the result") + filename: str = Field(description="Name of the file containing the result") + score: float = Field(description="Relevance score for this search result (between 0 and 1)") + text: str = Field(description="Text content of the search result") @json_schema_type @@ -254,11 +273,15 @@ class OpenAIResponseOutputMessageFileSearchToolCall(BaseModel): :param results: (Optional) Search results returned by the file search operation """ - id: str - queries: Sequence[str] - status: str - type: Literal["file_search_call"] = "file_search_call" - results: Sequence[OpenAIResponseOutputMessageFileSearchToolCallResults] | None = None + id: str = Field(description="Unique identifier for this tool call") + queries: Sequence[str] = Field(description="List of search queries executed") + status: str = Field(description="Current status of the file search operation") + type: Literal["file_search_call"] = Field( + default="file_search_call", description='Tool call type identifier, always "file_search_call"' + ) + results: Sequence[OpenAIResponseOutputMessageFileSearchToolCallResults] | None = Field( + default=None, description="Search results returned by the file search operation" + ) @json_schema_type @@ -273,12 +296,14 @@ class OpenAIResponseOutputMessageFunctionToolCall(BaseModel): :param status: (Optional) Current status of the function call execution """ - call_id: str - name: str - arguments: str - type: Literal["function_call"] = "function_call" - id: str | None = None - status: str | None = None + call_id: str = Field(description="Unique identifier for the function call") + name: str = Field(description="Name of the function being called") + arguments: str = Field(description="JSON string containing the function arguments") + type: Literal["function_call"] = Field( + default="function_call", description='Tool call type identifier, always "function_call"' + ) + id: str | None = Field(default=None, description="Additional identifier for the tool call") + status: str | None = Field(default=None, description="Current status of the function call execution") @json_schema_type @@ -294,13 +319,13 @@ class OpenAIResponseOutputMessageMCPCall(BaseModel): :param output: (Optional) Output result from the successful MCP call """ - id: str - type: Literal["mcp_call"] = "mcp_call" - arguments: str - name: str - server_label: str - error: str | None = None - output: str | None = None + id: str = Field(description="Unique identifier for this MCP call") + type: Literal["mcp_call"] = Field(default="mcp_call", description='Tool call type identifier, always "mcp_call"') + arguments: str = Field(description="JSON string containing the MCP call arguments") + name: str = Field(description="Name of the MCP method being called") + server_label: str = Field(description="Label identifying the MCP server handling the call") + error: str | None = Field(default=None, description="Error message if the MCP call failed") + output: str | None = Field(default=None, description="Output result from the successful MCP call") class MCPListToolsTool(BaseModel): @@ -311,9 +336,9 @@ class MCPListToolsTool(BaseModel): :param description: (Optional) Description of what the tool does """ - input_schema: dict[str, Any] - name: str - description: str | None = None + input_schema: dict[str, Any] = Field(description="JSON schema defining the tool's input parameters") + name: str = Field(description="Name of the tool") + description: str | None = Field(default=None, description="Description of what the tool does") @json_schema_type @@ -326,10 +351,12 @@ class OpenAIResponseOutputMessageMCPListTools(BaseModel): :param tools: List of available tools provided by the MCP server """ - id: str - type: Literal["mcp_list_tools"] = "mcp_list_tools" - server_label: str - tools: list[MCPListToolsTool] + id: str = Field(description="Unique identifier for this MCP list tools operation") + type: Literal["mcp_list_tools"] = Field( + default="mcp_list_tools", description='Tool call type identifier, always "mcp_list_tools"' + ) + server_label: str = Field(description="Label identifying the MCP server providing the tools") + tools: list[MCPListToolsTool] = Field(description="List of available tools provided by the MCP server") @json_schema_type @@ -338,11 +365,11 @@ class OpenAIResponseMCPApprovalRequest(BaseModel): A request for human approval of a tool invocation. """ - arguments: str - id: str - name: str - server_label: str - type: Literal["mcp_approval_request"] = "mcp_approval_request" + arguments: str = Field() + id: str = Field() + name: str = Field() + server_label: str = Field() + type: Literal["mcp_approval_request"] = Field(default="mcp_approval_request") @json_schema_type @@ -351,11 +378,11 @@ class OpenAIResponseMCPApprovalResponse(BaseModel): A response to an MCP approval request. """ - approval_request_id: str - approve: bool - type: Literal["mcp_approval_response"] = "mcp_approval_response" - id: str | None = None - reason: str | None = None + approval_request_id: str = Field() + approve: bool = Field() + type: Literal["mcp_approval_response"] = Field(default="mcp_approval_response") + id: str | None = Field(default=None) + reason: str | None = Field(default=None) OpenAIResponseOutput = Annotated[ @@ -399,7 +426,9 @@ class OpenAIResponseText(BaseModel): :param format: (Optional) Text format configuration specifying output format requirements """ - format: OpenAIResponseTextFormat | None = None + format: OpenAIResponseTextFormat | None = Field( + default=None, description="Text format configuration specifying output format requirements" + ) # Must match type Literals of OpenAIResponseInputToolWebSearch below @@ -415,11 +444,15 @@ class OpenAIResponseInputToolWebSearch(BaseModel): """ # Must match values of WebSearchToolTypes above - type: Literal["web_search"] | Literal["web_search_preview"] | Literal["web_search_preview_2025_03_11"] = ( - "web_search" + type: Literal["web_search"] | Literal["web_search_preview"] | Literal["web_search_preview_2025_03_11"] = Field( + default="web_search", description="Web search tool type variant to use" ) # TODO: actually use search_context_size somewhere... - search_context_size: str | None = Field(default="medium", pattern="^low|medium|high$") + search_context_size: str | None = Field( + default="medium", + pattern="^low|medium|high$", + description='Size of search context, must be "low", "medium", or "high"', + ) # TODO: add user_location @@ -434,11 +467,13 @@ class OpenAIResponseInputToolFunction(BaseModel): :param strict: (Optional) Whether to enforce strict parameter validation """ - type: Literal["function"] = "function" - name: str - description: str | None = None - parameters: dict[str, Any] | None - strict: bool | None = None + type: Literal["function"] = Field(default="function", description='Tool type identifier, always "function"') + name: str = Field(description="Name of the function that can be called") + description: str | None = Field(default=None, description="Description of what the function does") + parameters: dict[str, Any] | None = Field( + default=None, description="JSON schema defining the function's parameters" + ) + strict: bool | None = Field(default=None, description="Whether to enforce strict parameter validation") @json_schema_type @@ -452,11 +487,17 @@ class OpenAIResponseInputToolFileSearch(BaseModel): :param ranking_options: (Optional) Options for ranking and scoring search results """ - type: Literal["file_search"] = "file_search" - vector_store_ids: list[str] - filters: dict[str, Any] | None = None - max_num_results: int | None = Field(default=10, ge=1, le=50) - ranking_options: FileSearchRankingOptions | None = None + type: Literal["file_search"] = Field( + default="file_search", description='Tool type identifier, always "file_search"' + ) + vector_store_ids: list[str] = Field(description="List of vector store identifiers to search within") + filters: dict[str, Any] | None = Field(default=None, description="Additional filters to apply to the search") + max_num_results: int | None = Field( + default=10, ge=1, le=50, description="Maximum number of search results to return (1-50)" + ) + ranking_options: FileSearchRankingOptions | None = Field( + default=None, description="Options for ranking and scoring search results" + ) class ApprovalFilter(BaseModel): @@ -466,8 +507,8 @@ class ApprovalFilter(BaseModel): :param never: (Optional) List of tool names that never require approval """ - always: list[str] | None = None - never: list[str] | None = None + always: list[str] | None = Field(default=None, description="List of tool names that always require approval") + never: list[str] | None = Field(default=None, description="List of tool names that never require approval") class AllowedToolsFilter(BaseModel): @@ -476,7 +517,7 @@ class AllowedToolsFilter(BaseModel): :param tool_names: (Optional) List of specific tool names that are allowed """ - tool_names: list[str] | None = None + tool_names: list[str] | None = Field(default=None, description="List of specific tool names that are allowed") @json_schema_type @@ -491,13 +532,19 @@ class OpenAIResponseInputToolMCP(BaseModel): :param allowed_tools: (Optional) Restriction on which tools can be used from this server """ - type: Literal["mcp"] = "mcp" - server_label: str - server_url: str - headers: dict[str, Any] | None = None + type: Literal["mcp"] = Field(default="mcp", description='Tool type identifier, always "mcp"') + server_label: str = Field(description="Label to identify this MCP server") + server_url: str = Field(description="URL endpoint of the MCP server") + headers: dict[str, Any] | None = Field( + default=None, description="HTTP headers to include when connecting to the server" + ) - require_approval: Literal["always"] | Literal["never"] | ApprovalFilter = "never" - allowed_tools: list[str] | AllowedToolsFilter | None = None + require_approval: Literal["always"] | Literal["never"] | ApprovalFilter = Field( + default="never", description='Approval requirement for tool calls ("always", "never", or filter)' + ) + allowed_tools: list[str] | AllowedToolsFilter | None = Field( + default=None, description="Restriction on which tools can be used from this server" + ) OpenAIResponseInputTool = Annotated[ @@ -519,9 +566,11 @@ class OpenAIResponseToolMCP(BaseModel): :param allowed_tools: (Optional) Restriction on which tools can be used from this server """ - type: Literal["mcp"] = "mcp" - server_label: str - allowed_tools: list[str] | AllowedToolsFilter | None = None + type: Literal["mcp"] = Field(default="mcp", description='Tool type identifier, always "mcp"') + server_label: str = Field(description="Label to identify this MCP server") + allowed_tools: list[str] | AllowedToolsFilter | None = Field( + default=None, description="Restriction on which tools can be used from this server" + ) OpenAIResponseTool = Annotated[ @@ -540,7 +589,7 @@ class OpenAIResponseUsageOutputTokensDetails(BaseModel): :param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models) """ - reasoning_tokens: int | None = None + reasoning_tokens: int | None = Field(default=None, description="Number of tokens used for reasoning (o1/o3 models)") class OpenAIResponseUsageInputTokensDetails(BaseModel): @@ -549,7 +598,7 @@ class OpenAIResponseUsageInputTokensDetails(BaseModel): :param cached_tokens: Number of tokens retrieved from cache """ - cached_tokens: int | None = None + cached_tokens: int | None = Field(default=None, description="Number of tokens retrieved from cache") @json_schema_type @@ -563,11 +612,15 @@ class OpenAIResponseUsage(BaseModel): :param output_tokens_details: Detailed breakdown of output token usage """ - input_tokens: int - output_tokens: int - total_tokens: int - input_tokens_details: OpenAIResponseUsageInputTokensDetails | None = None - output_tokens_details: OpenAIResponseUsageOutputTokensDetails | None = None + input_tokens: int = Field(description="Number of tokens in the input") + output_tokens: int = Field(description="Number of tokens in the output") + total_tokens: int = Field(description="Total tokens used (input + output)") + input_tokens_details: OpenAIResponseUsageInputTokensDetails | None = Field( + default=None, description="Detailed breakdown of input token usage" + ) + output_tokens_details: OpenAIResponseUsageOutputTokensDetails | None = Field( + default=None, description="Detailed breakdown of output token usage" + ) @json_schema_type @@ -593,25 +646,36 @@ class OpenAIResponseObject(BaseModel): :param instructions: (Optional) System message inserted into the model's context """ - created_at: int - error: OpenAIResponseError | None = None - id: str - model: str - object: Literal["response"] = "response" - output: Sequence[OpenAIResponseOutput] - parallel_tool_calls: bool = False - previous_response_id: str | None = None - prompt: OpenAIResponsePrompt | None = None - status: str - temperature: float | None = None + created_at: int = Field(description="Unix timestamp when the response was created") + error: OpenAIResponseError | None = Field( + default=None, description="Error details if the response generation failed" + ) + id: str = Field(description="Unique identifier for this response") + model: str = Field(description="Model identifier used for generation") + object: Literal["response"] = Field(default="response", description='Object type identifier, always "response"') + output: Sequence[OpenAIResponseOutput] = Field( + description="List of generated output items (messages, tool calls, etc.)" + ) + parallel_tool_calls: bool = Field(default=False, description="Whether tool calls can be executed in parallel") + previous_response_id: str | None = Field(default=None, description="ID of the previous response in a conversation") + prompt: OpenAIResponsePrompt | None = Field( + default=None, description="Reference to a prompt template and its variables." + ) + status: str = Field(description="Current status of the response generation") + temperature: float | None = Field(default=None, description="Sampling temperature used for generation") # Default to text format to avoid breaking the loading of old responses # before the field was added. New responses will have this set always. - text: OpenAIResponseText = OpenAIResponseText(format=OpenAIResponseTextFormat(type="text")) - top_p: float | None = None - tools: Sequence[OpenAIResponseTool] | None = None - truncation: str | None = None - usage: OpenAIResponseUsage | None = None - instructions: str | None = None + text: OpenAIResponseText = Field( + default_factory=lambda: OpenAIResponseText(format=OpenAIResponseTextFormat(type="text")), + description="Text formatting configuration for the response", + ) + top_p: float | None = Field(default=None, description="Nucleus sampling parameter used for generation") + tools: Sequence[OpenAIResponseTool] | None = Field( + default=None, description="An array of tools the model may call while generating a response." + ) + truncation: str | None = Field(default=None, description="Truncation strategy applied to the response") + usage: OpenAIResponseUsage | None = Field(default=None, description="Token usage information for the response") + instructions: str | None = Field(default=None, description="System message inserted into the model's context") @json_schema_type @@ -623,9 +687,9 @@ class OpenAIDeleteResponseObject(BaseModel): :param deleted: Deletion confirmation flag, always True """ - id: str - object: Literal["response"] = "response" - deleted: bool = True + id: str = Field(description="Unique identifier of the deleted response") + object: Literal["response"] = Field(default="response", description='Object type identifier, always "response"') + deleted: bool = Field(default=True, description="Deletion confirmation flag, always True") @json_schema_type @@ -636,8 +700,10 @@ class OpenAIResponseObjectStreamResponseCreated(BaseModel): :param type: Event type identifier, always "response.created" """ - response: OpenAIResponseObject - type: Literal["response.created"] = "response.created" + response: OpenAIResponseObject = Field(description="The response object that was created") + type: Literal["response.created"] = Field( + default="response.created", description='Event type identifier, always "response.created"' + ) @json_schema_type @@ -649,9 +715,11 @@ class OpenAIResponseObjectStreamResponseInProgress(BaseModel): :param type: Event type identifier, always "response.in_progress" """ - response: OpenAIResponseObject - sequence_number: int - type: Literal["response.in_progress"] = "response.in_progress" + response: OpenAIResponseObject = Field(description="Current response state while in progress") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.in_progress"] = Field( + default="response.in_progress", description='Event type identifier, always "response.in_progress"' + ) @json_schema_type @@ -662,8 +730,10 @@ class OpenAIResponseObjectStreamResponseCompleted(BaseModel): :param type: Event type identifier, always "response.completed" """ - response: OpenAIResponseObject - type: Literal["response.completed"] = "response.completed" + response: OpenAIResponseObject = Field(description="Completed response object") + type: Literal["response.completed"] = Field( + default="response.completed", description='Event type identifier, always "response.completed"' + ) @json_schema_type @@ -675,9 +745,11 @@ class OpenAIResponseObjectStreamResponseIncomplete(BaseModel): :param type: Event type identifier, always "response.incomplete" """ - response: OpenAIResponseObject - sequence_number: int - type: Literal["response.incomplete"] = "response.incomplete" + response: OpenAIResponseObject = Field(description="Response object describing the incomplete state") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.incomplete"] = Field( + default="response.incomplete", description='Event type identifier, always "response.incomplete"' + ) @json_schema_type @@ -689,9 +761,11 @@ class OpenAIResponseObjectStreamResponseFailed(BaseModel): :param type: Event type identifier, always "response.failed" """ - response: OpenAIResponseObject - sequence_number: int - type: Literal["response.failed"] = "response.failed" + response: OpenAIResponseObject = Field(description="Response object describing the failure") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.failed"] = Field( + default="response.failed", description='Event type identifier, always "response.failed"' + ) @json_schema_type @@ -705,11 +779,13 @@ class OpenAIResponseObjectStreamResponseOutputItemAdded(BaseModel): :param type: Event type identifier, always "response.output_item.added" """ - response_id: str - item: OpenAIResponseOutput - output_index: int - sequence_number: int - type: Literal["response.output_item.added"] = "response.output_item.added" + response_id: str = Field(description="Unique identifier of the response containing this output") + item: OpenAIResponseOutput = Field(description="The output item that was added (message, tool call, etc.)") + output_index: int = Field(description="Index position of this item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.output_item.added"] = Field( + default="response.output_item.added", description='Event type identifier, always "response.output_item.added"' + ) @json_schema_type @@ -723,11 +799,13 @@ class OpenAIResponseObjectStreamResponseOutputItemDone(BaseModel): :param type: Event type identifier, always "response.output_item.done" """ - response_id: str - item: OpenAIResponseOutput - output_index: int - sequence_number: int - type: Literal["response.output_item.done"] = "response.output_item.done" + response_id: str = Field(description="Unique identifier of the response containing this output") + item: OpenAIResponseOutput = Field(description="The completed output item (message, tool call, etc.)") + output_index: int = Field(description="Index position of this item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.output_item.done"] = Field( + default="response.output_item.done", description='Event type identifier, always "response.output_item.done"' + ) @json_schema_type @@ -742,12 +820,14 @@ class OpenAIResponseObjectStreamResponseOutputTextDelta(BaseModel): :param type: Event type identifier, always "response.output_text.delta" """ - content_index: int - delta: str - item_id: str - output_index: int - sequence_number: int - type: Literal["response.output_text.delta"] = "response.output_text.delta" + content_index: int = Field(description="Index position within the text content") + delta: str = Field(description="Incremental text content being added") + item_id: str = Field(description="Unique identifier of the output item being updated") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.output_text.delta"] = Field( + default="response.output_text.delta", description='Event type identifier, always "response.output_text.delta"' + ) @json_schema_type @@ -762,12 +842,14 @@ class OpenAIResponseObjectStreamResponseOutputTextDone(BaseModel): :param type: Event type identifier, always "response.output_text.done" """ - content_index: int - text: str # final text of the output item - item_id: str - output_index: int - sequence_number: int - type: Literal["response.output_text.done"] = "response.output_text.done" + content_index: int = Field(description="Index position within the text content") + text: str = Field(description="Final complete text content of the output item") # final text of the output item + item_id: str = Field(description="Unique identifier of the completed output item") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.output_text.done"] = Field( + default="response.output_text.done", description='Event type identifier, always "response.output_text.done"' + ) @json_schema_type @@ -781,11 +863,14 @@ class OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta(BaseModel): :param type: Event type identifier, always "response.function_call_arguments.delta" """ - delta: str - item_id: str - output_index: int - sequence_number: int - type: Literal["response.function_call_arguments.delta"] = "response.function_call_arguments.delta" + delta: str = Field(description="Incremental function call arguments being added") + item_id: str = Field(description="Unique identifier of the function call being updated") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.function_call_arguments.delta"] = Field( + default="response.function_call_arguments.delta", + description='Event type identifier, always "response.function_call_arguments.delta"', + ) @json_schema_type @@ -799,11 +884,16 @@ class OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone(BaseModel): :param type: Event type identifier, always "response.function_call_arguments.done" """ - arguments: str # final arguments of the function call - item_id: str - output_index: int - sequence_number: int - type: Literal["response.function_call_arguments.done"] = "response.function_call_arguments.done" + arguments: str = Field( + description="Final complete arguments JSON string for the function call" + ) # final arguments of the function call + item_id: str = Field(description="Unique identifier of the completed function call") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.function_call_arguments.done"] = Field( + default="response.function_call_arguments.done", + description='Event type identifier, always "response.function_call_arguments.done"', + ) @json_schema_type @@ -816,18 +906,21 @@ class OpenAIResponseObjectStreamResponseWebSearchCallInProgress(BaseModel): :param type: Event type identifier, always "response.web_search_call.in_progress" """ - item_id: str - output_index: int - sequence_number: int - type: Literal["response.web_search_call.in_progress"] = "response.web_search_call.in_progress" + item_id: str = Field(description="Unique identifier of the web search call") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.web_search_call.in_progress"] = Field( + default="response.web_search_call.in_progress", + description='Event type identifier, always "response.web_search_call.in_progress"', + ) @json_schema_type class OpenAIResponseObjectStreamResponseWebSearchCallSearching(BaseModel): - item_id: str - output_index: int - sequence_number: int - type: Literal["response.web_search_call.searching"] = "response.web_search_call.searching" + item_id: str = Field() + output_index: int = Field() + sequence_number: int = Field() + type: Literal["response.web_search_call.searching"] = Field(default="response.web_search_call.searching") @json_schema_type @@ -840,46 +933,49 @@ class OpenAIResponseObjectStreamResponseWebSearchCallCompleted(BaseModel): :param type: Event type identifier, always "response.web_search_call.completed" """ - item_id: str - output_index: int - sequence_number: int - type: Literal["response.web_search_call.completed"] = "response.web_search_call.completed" + item_id: str = Field(description="Unique identifier of the completed web search call") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.web_search_call.completed"] = Field( + default="response.web_search_call.completed", + description='Event type identifier, always "response.web_search_call.completed"', + ) @json_schema_type class OpenAIResponseObjectStreamResponseMcpListToolsInProgress(BaseModel): - sequence_number: int - type: Literal["response.mcp_list_tools.in_progress"] = "response.mcp_list_tools.in_progress" + sequence_number: int = Field() + type: Literal["response.mcp_list_tools.in_progress"] = Field(default="response.mcp_list_tools.in_progress") @json_schema_type class OpenAIResponseObjectStreamResponseMcpListToolsFailed(BaseModel): - sequence_number: int - type: Literal["response.mcp_list_tools.failed"] = "response.mcp_list_tools.failed" + sequence_number: int = Field() + type: Literal["response.mcp_list_tools.failed"] = Field(default="response.mcp_list_tools.failed") @json_schema_type class OpenAIResponseObjectStreamResponseMcpListToolsCompleted(BaseModel): - sequence_number: int - type: Literal["response.mcp_list_tools.completed"] = "response.mcp_list_tools.completed" + sequence_number: int = Field() + type: Literal["response.mcp_list_tools.completed"] = Field(default="response.mcp_list_tools.completed") @json_schema_type class OpenAIResponseObjectStreamResponseMcpCallArgumentsDelta(BaseModel): - delta: str - item_id: str - output_index: int - sequence_number: int - type: Literal["response.mcp_call.arguments.delta"] = "response.mcp_call.arguments.delta" + delta: str = Field() + item_id: str = Field() + output_index: int = Field() + sequence_number: int = Field() + type: Literal["response.mcp_call.arguments.delta"] = Field(default="response.mcp_call.arguments.delta") @json_schema_type class OpenAIResponseObjectStreamResponseMcpCallArgumentsDone(BaseModel): - arguments: str # final arguments of the MCP call - item_id: str - output_index: int - sequence_number: int - type: Literal["response.mcp_call.arguments.done"] = "response.mcp_call.arguments.done" + arguments: str = Field() # final arguments of the MCP call + item_id: str = Field() + output_index: int = Field() + sequence_number: int = Field() + type: Literal["response.mcp_call.arguments.done"] = Field(default="response.mcp_call.arguments.done") @json_schema_type @@ -892,10 +988,13 @@ class OpenAIResponseObjectStreamResponseMcpCallInProgress(BaseModel): :param type: Event type identifier, always "response.mcp_call.in_progress" """ - item_id: str - output_index: int - sequence_number: int - type: Literal["response.mcp_call.in_progress"] = "response.mcp_call.in_progress" + item_id: str = Field(description="Unique identifier of the MCP call") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.mcp_call.in_progress"] = Field( + default="response.mcp_call.in_progress", + description='Event type identifier, always "response.mcp_call.in_progress"', + ) @json_schema_type @@ -906,8 +1005,10 @@ class OpenAIResponseObjectStreamResponseMcpCallFailed(BaseModel): :param type: Event type identifier, always "response.mcp_call.failed" """ - sequence_number: int - type: Literal["response.mcp_call.failed"] = "response.mcp_call.failed" + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.mcp_call.failed"] = Field( + default="response.mcp_call.failed", description='Event type identifier, always "response.mcp_call.failed"' + ) @json_schema_type @@ -918,8 +1019,10 @@ class OpenAIResponseObjectStreamResponseMcpCallCompleted(BaseModel): :param type: Event type identifier, always "response.mcp_call.completed" """ - sequence_number: int - type: Literal["response.mcp_call.completed"] = "response.mcp_call.completed" + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.mcp_call.completed"] = Field( + default="response.mcp_call.completed", description='Event type identifier, always "response.mcp_call.completed"' + ) @json_schema_type @@ -932,10 +1035,14 @@ class OpenAIResponseContentPartOutputText(BaseModel): :param logprobs: (Optional) Token log probability details """ - type: Literal["output_text"] = "output_text" - text: str - annotations: list[OpenAIResponseAnnotations] = Field(default_factory=list) - logprobs: list[dict[str, Any]] | None = None + type: Literal["output_text"] = Field( + default="output_text", description='Content part type identifier, always "output_text"' + ) + text: str = Field(description="Text emitted for this content part") + annotations: list[OpenAIResponseAnnotations] = Field( + default_factory=list, description="Structured annotations associated with the text" + ) + logprobs: list[dict[str, Any]] | None = Field(default=None, description="Token log probability details") @json_schema_type @@ -946,8 +1053,10 @@ class OpenAIResponseContentPartReasoningText(BaseModel): :param text: Reasoning text supplied by the model """ - type: Literal["reasoning_text"] = "reasoning_text" - text: str + type: Literal["reasoning_text"] = Field( + default="reasoning_text", description='Content part type identifier, always "reasoning_text"' + ) + text: str = Field(description="Reasoning text supplied by the model") OpenAIResponseContentPart = Annotated[ @@ -970,13 +1079,15 @@ class OpenAIResponseObjectStreamResponseContentPartAdded(BaseModel): :param type: Event type identifier, always "response.content_part.added" """ - content_index: int - response_id: str - item_id: str - output_index: int - part: OpenAIResponseContentPart - sequence_number: int - type: Literal["response.content_part.added"] = "response.content_part.added" + content_index: int = Field(description="Index position of the part within the content array") + response_id: str = Field(description="Unique identifier of the response containing this content") + item_id: str = Field(description="Unique identifier of the output item containing this content part") + output_index: int = Field(description="Index position of the output item in the response") + part: OpenAIResponseContentPart = Field(description="The content part that was added") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.content_part.added"] = Field( + default="response.content_part.added", description='Event type identifier, always "response.content_part.added"' + ) @json_schema_type @@ -992,13 +1103,15 @@ class OpenAIResponseObjectStreamResponseContentPartDone(BaseModel): :param type: Event type identifier, always "response.content_part.done" """ - content_index: int - response_id: str - item_id: str - output_index: int - part: OpenAIResponseContentPart - sequence_number: int - type: Literal["response.content_part.done"] = "response.content_part.done" + content_index: int = Field(description="Index position of the part within the content array") + response_id: str = Field(description="Unique identifier of the response containing this content") + item_id: str = Field(description="Unique identifier of the output item containing this content part") + output_index: int = Field(description="Index position of the output item in the response") + part: OpenAIResponseContentPart = Field(description="The completed content part") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.content_part.done"] = Field( + default="response.content_part.done", description='Event type identifier, always "response.content_part.done"' + ) @json_schema_type @@ -1013,12 +1126,15 @@ class OpenAIResponseObjectStreamResponseReasoningTextDelta(BaseModel): :param type: Event type identifier, always "response.reasoning_text.delta" """ - content_index: int - delta: str - item_id: str - output_index: int - sequence_number: int - type: Literal["response.reasoning_text.delta"] = "response.reasoning_text.delta" + content_index: int = Field(description="Index position of the reasoning content part") + delta: str = Field(description="Incremental reasoning text being added") + item_id: str = Field(description="Unique identifier of the output item being updated") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.reasoning_text.delta"] = Field( + default="response.reasoning_text.delta", + description='Event type identifier, always "response.reasoning_text.delta"', + ) @json_schema_type @@ -1033,12 +1149,15 @@ class OpenAIResponseObjectStreamResponseReasoningTextDone(BaseModel): :param type: Event type identifier, always "response.reasoning_text.done" """ - content_index: int - text: str - item_id: str - output_index: int - sequence_number: int - type: Literal["response.reasoning_text.done"] = "response.reasoning_text.done" + content_index: int = Field(description="Index position of the reasoning content part") + text: str = Field(description="Final complete reasoning text") + item_id: str = Field(description="Unique identifier of the completed output item") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.reasoning_text.done"] = Field( + default="response.reasoning_text.done", + description='Event type identifier, always "response.reasoning_text.done"', + ) @json_schema_type @@ -1049,8 +1168,10 @@ class OpenAIResponseContentPartReasoningSummary(BaseModel): :param text: Summary text """ - type: Literal["summary_text"] = "summary_text" - text: str + type: Literal["summary_text"] = Field( + default="summary_text", description='Content part type identifier, always "summary_text"' + ) + text: str = Field(description="Summary text") @json_schema_type @@ -1065,12 +1186,15 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded(BaseModel): :param type: Event type identifier, always "response.reasoning_summary_part.added" """ - item_id: str - output_index: int - part: OpenAIResponseContentPartReasoningSummary - sequence_number: int - summary_index: int - type: Literal["response.reasoning_summary_part.added"] = "response.reasoning_summary_part.added" + item_id: str = Field(description="Unique identifier of the output item") + output_index: int = Field(description="Index position of the output item") + part: OpenAIResponseContentPartReasoningSummary = Field(description="The summary part that was added") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + summary_index: int = Field(description="Index of the summary part within the reasoning summary") + type: Literal["response.reasoning_summary_part.added"] = Field( + default="response.reasoning_summary_part.added", + description='Event type identifier, always "response.reasoning_summary_part.added"', + ) @json_schema_type @@ -1085,12 +1209,15 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryPartDone(BaseModel): :param type: Event type identifier, always "response.reasoning_summary_part.done" """ - item_id: str - output_index: int - part: OpenAIResponseContentPartReasoningSummary - sequence_number: int - summary_index: int - type: Literal["response.reasoning_summary_part.done"] = "response.reasoning_summary_part.done" + item_id: str = Field(description="Unique identifier of the output item") + output_index: int = Field(description="Index position of the output item") + part: OpenAIResponseContentPartReasoningSummary = Field(description="The completed summary part") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + summary_index: int = Field(description="Index of the summary part within the reasoning summary") + type: Literal["response.reasoning_summary_part.done"] = Field( + default="response.reasoning_summary_part.done", + description='Event type identifier, always "response.reasoning_summary_part.done"', + ) @json_schema_type @@ -1105,12 +1232,15 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta(BaseModel): :param type: Event type identifier, always "response.reasoning_summary_text.delta" """ - delta: str - item_id: str - output_index: int - sequence_number: int - summary_index: int - type: Literal["response.reasoning_summary_text.delta"] = "response.reasoning_summary_text.delta" + delta: str = Field(description="Incremental summary text being added") + item_id: str = Field(description="Unique identifier of the output item") + output_index: int = Field(description="Index position of the output item") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + summary_index: int = Field(description="Index of the summary part within the reasoning summary") + type: Literal["response.reasoning_summary_text.delta"] = Field( + default="response.reasoning_summary_text.delta", + description='Event type identifier, always "response.reasoning_summary_text.delta"', + ) @json_schema_type @@ -1125,12 +1255,15 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryTextDone(BaseModel): :param type: Event type identifier, always "response.reasoning_summary_text.done" """ - text: str - item_id: str - output_index: int - sequence_number: int - summary_index: int - type: Literal["response.reasoning_summary_text.done"] = "response.reasoning_summary_text.done" + text: str = Field(description="Final complete summary text") + item_id: str = Field(description="Unique identifier of the output item") + output_index: int = Field(description="Index position of the output item") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + summary_index: int = Field(description="Index of the summary part within the reasoning summary") + type: Literal["response.reasoning_summary_text.done"] = Field( + default="response.reasoning_summary_text.done", + description='Event type identifier, always "response.reasoning_summary_text.done"', + ) @json_schema_type @@ -1145,12 +1278,14 @@ class OpenAIResponseObjectStreamResponseRefusalDelta(BaseModel): :param type: Event type identifier, always "response.refusal.delta" """ - content_index: int - delta: str - item_id: str - output_index: int - sequence_number: int - type: Literal["response.refusal.delta"] = "response.refusal.delta" + content_index: int = Field(description="Index position of the content part") + delta: str = Field(description="Incremental refusal text being added") + item_id: str = Field(description="Unique identifier of the output item") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.refusal.delta"] = Field( + default="response.refusal.delta", description='Event type identifier, always "response.refusal.delta"' + ) @json_schema_type @@ -1165,12 +1300,14 @@ class OpenAIResponseObjectStreamResponseRefusalDone(BaseModel): :param type: Event type identifier, always "response.refusal.done" """ - content_index: int - refusal: str - item_id: str - output_index: int - sequence_number: int - type: Literal["response.refusal.done"] = "response.refusal.done" + content_index: int = Field(description="Index position of the content part") + refusal: str = Field(description="Final complete refusal text") + item_id: str = Field(description="Unique identifier of the output item") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.refusal.done"] = Field( + default="response.refusal.done", description='Event type identifier, always "response.refusal.done"' + ) @json_schema_type @@ -1186,13 +1323,16 @@ class OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded(BaseModel): :param type: Event type identifier, always "response.output_text.annotation.added" """ - item_id: str - output_index: int - content_index: int - annotation_index: int - annotation: OpenAIResponseAnnotations - sequence_number: int - type: Literal["response.output_text.annotation.added"] = "response.output_text.annotation.added" + item_id: str = Field(description="Unique identifier of the item to which the annotation is being added") + output_index: int = Field(description="Index position of the output item in the response's output array") + content_index: int = Field(description="Index position of the content part within the output item") + annotation_index: int = Field(description="Index of the annotation within the content part") + annotation: OpenAIResponseAnnotations = Field(description="The annotation object being added") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.output_text.annotation.added"] = Field( + default="response.output_text.annotation.added", + description='Event type identifier, always "response.output_text.annotation.added"', + ) @json_schema_type @@ -1205,10 +1345,13 @@ class OpenAIResponseObjectStreamResponseFileSearchCallInProgress(BaseModel): :param type: Event type identifier, always "response.file_search_call.in_progress" """ - item_id: str - output_index: int - sequence_number: int - type: Literal["response.file_search_call.in_progress"] = "response.file_search_call.in_progress" + item_id: str = Field(description="Unique identifier of the file search call") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.file_search_call.in_progress"] = Field( + default="response.file_search_call.in_progress", + description='Event type identifier, always "response.file_search_call.in_progress"', + ) @json_schema_type @@ -1221,10 +1364,13 @@ class OpenAIResponseObjectStreamResponseFileSearchCallSearching(BaseModel): :param type: Event type identifier, always "response.file_search_call.searching" """ - item_id: str - output_index: int - sequence_number: int - type: Literal["response.file_search_call.searching"] = "response.file_search_call.searching" + item_id: str = Field(description="Unique identifier of the file search call") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.file_search_call.searching"] = Field( + default="response.file_search_call.searching", + description='Event type identifier, always "response.file_search_call.searching"', + ) @json_schema_type @@ -1237,10 +1383,13 @@ class OpenAIResponseObjectStreamResponseFileSearchCallCompleted(BaseModel): :param type: Event type identifier, always "response.file_search_call.completed" """ - item_id: str - output_index: int - sequence_number: int - type: Literal["response.file_search_call.completed"] = "response.file_search_call.completed" + item_id: str = Field(description="Unique identifier of the completed file search call") + output_index: int = Field(description="Index position of the item in the output list") + sequence_number: int = Field(description="Sequential number for ordering streaming events") + type: Literal["response.file_search_call.completed"] = Field( + default="response.file_search_call.completed", + description='Event type identifier, always "response.file_search_call.completed"', + ) OpenAIResponseObjectStream = Annotated[ @@ -1291,11 +1440,11 @@ class OpenAIResponseInputFunctionToolCallOutput(BaseModel): This represents the output of a function call that gets passed back to the model. """ - call_id: str - output: str - type: Literal["function_call_output"] = "function_call_output" - id: str | None = None - status: str | None = None + call_id: str = Field() + output: str = Field() + type: Literal["function_call_output"] = Field(default="function_call_output") + id: str | None = Field(default=None) + status: str | None = Field(default=None) OpenAIResponseInput = Annotated[ @@ -1317,8 +1466,8 @@ class ListOpenAIResponseInputItem(BaseModel): :param object: Object type identifier, always "list" """ - data: Sequence[OpenAIResponseInput] - object: Literal["list"] = "list" + data: Sequence[OpenAIResponseInput] = Field(description="List of input items") + object: Literal["list"] = Field(default="list", description='Object type identifier, always "list"') @json_schema_type @@ -1328,7 +1477,7 @@ class OpenAIResponseObjectWithInput(OpenAIResponseObject): :param input: List of input items that led to this response """ - input: Sequence[OpenAIResponseInput] + input: Sequence[OpenAIResponseInput] = Field(description="List of input items that led to this response") def to_response_object(self) -> OpenAIResponseObject: """Convert to OpenAIResponseObject by excluding input field.""" @@ -1346,8 +1495,10 @@ class ListOpenAIResponseObject(BaseModel): :param object: Object type identifier, always "list" """ - data: Sequence[OpenAIResponseObjectWithInput] - has_more: bool - first_id: str - last_id: str - object: Literal["list"] = "list" + data: Sequence[OpenAIResponseObjectWithInput] = Field( + description="List of response objects with their input context" + ) + has_more: bool = Field(description="Whether there are more results available beyond this page") + first_id: str = Field(description="Identifier of the first item in this page") + last_id: str = Field(description="Identifier of the last item in this page") + object: Literal["list"] = Field(default="list", description='Object type identifier, always "list"') diff --git a/src/llama_stack/apis/agents/routes.py b/src/llama_stack/apis/agents/routes.py new file mode 100644 index 000000000..6161aa9f5 --- /dev/null +++ b/src/llama_stack/apis/agents/routes.py @@ -0,0 +1,452 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.common.responses import Order +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .agents_service import AgentsService +from .models import ( + Agent, + AgentConfig, + AgentCreateResponse, + AgentSessionCreateResponse, + AgentStepResponse, + AgentTurnCreateRequest, + AgentTurnResumeRequest, + CreateAgentSessionRequest, + CreateOpenAIResponseRequest, + Session, + Turn, +) +from .openai_responses import ( + ListOpenAIResponseInputItem, + ListOpenAIResponseObject, + OpenAIDeleteResponseObject, + OpenAIResponseObject, +) + + +def get_agents_service(request: Request) -> AgentsService: + """Dependency to get the agents service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.agents not in impls: + raise ValueError("Agents API implementation not found") + return impls[Api.agents] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Agents"], + responses=standard_responses, +) + +router_v1alpha = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1ALPHA}", + tags=["Agents"], + responses=standard_responses, +) + + +@router.post( + "/agents", + response_model=AgentCreateResponse, + summary="Create an agent.", + description="Create an agent with the given configuration.", + deprecated=True, +) +@router_v1alpha.post( + "/agents", + response_model=AgentCreateResponse, + summary="Create an agent.", + description="Create an agent with the given configuration.", +) +async def create_agent( + agent_config: AgentConfig = Body(...), + svc: AgentsService = Depends(get_agents_service), +) -> AgentCreateResponse: + """Create an agent with the given configuration.""" + return await svc.create_agent(agent_config=agent_config) + + +@router.post( + "/agents/{agent_id}/session/{session_id}/turn", + summary="Create a new turn for an agent.", + description="Create a new turn for an agent.", + deprecated=True, +) +@router_v1alpha.post( + "/agents/{{agent_id}}/session/{{session_id}}/turn", + summary="Create a new turn for an agent.", + description="Create a new turn for an agent.", +) +async def create_agent_turn( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to create the turn for.")], + session_id: Annotated[str, FastAPIPath(..., description="The ID of the session to create the turn for.")], + body: AgentTurnCreateRequest = Body(...), + svc: AgentsService = Depends(get_agents_service), +): + """Create a new turn for an agent.""" + return await svc.create_agent_turn( + agent_id=agent_id, + session_id=session_id, + messages=body.messages, + stream=body.stream, + documents=body.documents, + toolgroups=body.toolgroups, + tool_config=body.tool_config, + ) + + +@router.post( + "/agents/{agent_id}/session/{session_id}/turn/{turn_id}/resume", + summary="Resume an agent turn.", + description="Resume an agent turn with executed tool call responses.", + deprecated=True, +) +@router_v1alpha.post( + "/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/resume", + summary="Resume an agent turn.", + description="Resume an agent turn with executed tool call responses.", +) +async def resume_agent_turn( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to resume.")], + session_id: Annotated[str, FastAPIPath(..., description="The ID of the session to resume.")], + turn_id: Annotated[str, FastAPIPath(..., description="The ID of the turn to resume.")], + body: AgentTurnResumeRequest = Body(...), + svc: AgentsService = Depends(get_agents_service), +): + """Resume an agent turn with executed tool call responses.""" + return await svc.resume_agent_turn( + agent_id=agent_id, + session_id=session_id, + turn_id=turn_id, + tool_responses=body.tool_responses, + stream=body.stream, + ) + + +@router.get( + "/agents/{agent_id}/session/{session_id}/turn/{turn_id}", + response_model=Turn, + summary="Retrieve an agent turn.", + description="Retrieve an agent turn by its ID.", + deprecated=True, +) +@router_v1alpha.get( + "/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}", + response_model=Turn, + summary="Retrieve an agent turn.", + description="Retrieve an agent turn by its ID.", +) +async def get_agents_turn( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to get the turn for.")], + session_id: Annotated[str, FastAPIPath(..., description="The ID of the session to get the turn for.")], + turn_id: Annotated[str, FastAPIPath(..., description="The ID of the turn to get.")], + svc: AgentsService = Depends(get_agents_service), +) -> Turn: + """Retrieve an agent turn by its ID.""" + return await svc.get_agents_turn(agent_id=agent_id, session_id=session_id, turn_id=turn_id) + + +@router.get( + "/agents/{agent_id}/session/{session_id}/turn/{turn_id}/step/{step_id}", + response_model=AgentStepResponse, + summary="Retrieve an agent step.", + description="Retrieve an agent step by its ID.", + deprecated=True, +) +@router_v1alpha.get( + "/agents/{{agent_id}}/session/{{session_id}}/turn/{{turn_id}}/step/{{step_id}}", + response_model=AgentStepResponse, + summary="Retrieve an agent step.", + description="Retrieve an agent step by its ID.", +) +async def get_agents_step( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to get the step for.")], + session_id: Annotated[str, FastAPIPath(..., description="The ID of the session to get the step for.")], + turn_id: Annotated[str, FastAPIPath(..., description="The ID of the turn to get the step for.")], + step_id: Annotated[str, FastAPIPath(..., description="The ID of the step to get.")], + svc: AgentsService = Depends(get_agents_service), +) -> AgentStepResponse: + """Retrieve an agent step by its ID.""" + return await svc.get_agents_step(agent_id=agent_id, session_id=session_id, turn_id=turn_id, step_id=step_id) + + +@router.post( + "/agents/{agent_id}/session", + response_model=AgentSessionCreateResponse, + summary="Create a new session for an agent.", + description="Create a new session for an agent.", + deprecated=True, +) +@router_v1alpha.post( + "/agents/{{agent_id}}/session", + response_model=AgentSessionCreateResponse, + summary="Create a new session for an agent.", + description="Create a new session for an agent.", +) +async def create_agent_session( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to create the session for.")], + body: CreateAgentSessionRequest = Body(...), + svc: AgentsService = Depends(get_agents_service), +) -> AgentSessionCreateResponse: + """Create a new session for an agent.""" + return await svc.create_agent_session(agent_id=agent_id, session_name=body.session_name) + + +@router.get( + "/agents/{agent_id}/session/{session_id}", + response_model=Session, + summary="Retrieve an agent session.", + description="Retrieve an agent session by its ID.", + deprecated=True, +) +@router_v1alpha.get( + "/agents/{{agent_id}}/session/{{session_id}}", + response_model=Session, + summary="Retrieve an agent session.", + description="Retrieve an agent session by its ID.", +) +async def get_agents_session( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to get the session for.")], + session_id: Annotated[str, FastAPIPath(..., description="The ID of the session to get.")], + turn_ids: list[str] | None = Query(None, description="List of turn IDs to filter the session by."), + svc: AgentsService = Depends(get_agents_service), +) -> Session: + """Retrieve an agent session by its ID.""" + return await svc.get_agents_session(session_id=session_id, agent_id=agent_id, turn_ids=turn_ids) + + +@router.delete( + "/agents/{agent_id}/session/{session_id}", + response_model=None, + status_code=204, + summary="Delete an agent session.", + description="Delete an agent session by its ID.", + deprecated=True, +) +@router_v1alpha.delete( + "/agents/{{agent_id}}/session/{{session_id}}", + response_model=None, + status_code=204, + summary="Delete an agent session.", + description="Delete an agent session by its ID.", +) +async def delete_agents_session( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to delete the session for.")], + session_id: Annotated[str, FastAPIPath(..., description="The ID of the session to delete.")], + svc: AgentsService = Depends(get_agents_service), +) -> None: + """Delete an agent session by its ID and its associated turns.""" + await svc.delete_agents_session(session_id=session_id, agent_id=agent_id) + + +@router.delete( + "/agents/{agent_id}", + response_model=None, + status_code=204, + summary="Delete an agent.", + description="Delete an agent by its ID.", + deprecated=True, +) +@router_v1alpha.delete( + "/agents/{{agent_id}}", + response_model=None, + status_code=204, + summary="Delete an agent.", + description="Delete an agent by its ID.", +) +async def delete_agent( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to delete.")], + svc: AgentsService = Depends(get_agents_service), +) -> None: + """Delete an agent by its ID and its associated sessions and turns.""" + await svc.delete_agent(agent_id=agent_id) + + +@router.get( + "/agents", + summary="List all agents.", + description="List all agents.", + deprecated=True, +) +@router_v1alpha.get( + "/agents", + summary="List all agents.", + description="List all agents.", +) +async def list_agents( + start_index: int | None = Query(None, description="The index to start the pagination from."), + limit: int | None = Query(None, description="The number of agents to return."), + svc: AgentsService = Depends(get_agents_service), +): + """List all agents.""" + return await svc.list_agents(start_index=start_index, limit=limit) + + +@router.get( + "/agents/{agent_id}", + response_model=Agent, + summary="Describe an agent.", + description="Describe an agent by its ID.", + deprecated=True, +) +@router_v1alpha.get( + "/agents/{{agent_id}}", + response_model=Agent, + summary="Describe an agent.", + description="Describe an agent by its ID.", +) +async def get_agent( + agent_id: Annotated[str, FastAPIPath(..., description="ID of the agent.")], + svc: AgentsService = Depends(get_agents_service), +) -> Agent: + """Describe an agent by its ID.""" + return await svc.get_agent(agent_id=agent_id) + + +@router.get( + "/agents/{agent_id}/sessions", + summary="List all sessions of an agent.", + description="List all session(s) of a given agent.", + deprecated=True, +) +@router_v1alpha.get( + "/agents/{{agent_id}}/sessions", + summary="List all sessions of an agent.", + description="List all session(s) of a given agent.", +) +async def list_agent_sessions( + agent_id: Annotated[str, FastAPIPath(..., description="The ID of the agent to list sessions for.")], + start_index: int | None = Query(None, description="The index to start the pagination from."), + limit: int | None = Query(None, description="The number of sessions to return."), + svc: AgentsService = Depends(get_agents_service), +): + """List all session(s) of a given agent.""" + return await svc.list_agent_sessions(agent_id=agent_id, start_index=start_index, limit=limit) + + +# OpenAI Responses API endpoints +@router.get( + "/responses/{response_id}", + response_model=OpenAIResponseObject, + summary="Get a model response.", + description="Get a model response.", +) +async def get_openai_response( + response_id: Annotated[str, FastAPIPath(..., description="The ID of the OpenAI response to retrieve.")], + svc: AgentsService = Depends(get_agents_service), +) -> OpenAIResponseObject: + """Get a model response.""" + return await svc.get_openai_response(response_id=response_id) + + +@router.post( + "/responses", + summary="Create a model response.", + description="Create a model response.", +) +async def create_openai_response( + body: CreateOpenAIResponseRequest = Body(...), + svc: AgentsService = Depends(get_agents_service), +): + """Create a model response.""" + return await svc.create_openai_response( + input=body.input, + model=body.model, + prompt=body.prompt, + instructions=body.instructions, + previous_response_id=body.previous_response_id, + conversation=body.conversation, + store=body.store, + stream=body.stream, + temperature=body.temperature, + text=body.text, + tools=body.tools, + include=body.include, + max_infer_iters=body.max_infer_iters, + guardrails=body.guardrails, + ) + + +@router.get( + "/responses", + response_model=ListOpenAIResponseObject, + summary="List all responses.", + description="List all responses.", +) +async def list_openai_responses( + after: str | None = Query(None, description="The ID of the last response to return."), + limit: int | None = Query(50, description="The number of responses to return."), + model: str | None = Query(None, description="The model to filter responses by."), + order: Order | None = Query( + Order.desc, description="The order to sort responses by when sorted by created_at ('asc' or 'desc')." + ), + svc: AgentsService = Depends(get_agents_service), +) -> ListOpenAIResponseObject: + """List all responses.""" + return await svc.list_openai_responses(after=after, limit=limit, model=model, order=order) + + +@router.get( + "/responses/{response_id}/input_items", + response_model=ListOpenAIResponseInputItem, + summary="List input items.", + description="List input items.", +) +async def list_openai_response_input_items( + response_id: Annotated[str, FastAPIPath(..., description="The ID of the response to retrieve input items for.")], + after: str | None = Query(None, description="An item ID to list items after, used for pagination."), + before: str | None = Query(None, description="An item ID to list items before, used for pagination."), + include: list[str] | None = Query(None, description="Additional fields to include in the response."), + limit: int | None = Query( + 20, + description="A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + ge=1, + le=100, + ), + order: Order | None = Query(Order.desc, description="The order to return the input items in. Default is desc."), + svc: AgentsService = Depends(get_agents_service), +) -> ListOpenAIResponseInputItem: + """List input items.""" + return await svc.list_openai_response_input_items( + response_id=response_id, after=after, before=before, include=include, limit=limit, order=order + ) + + +@router.delete( + "/responses/{response_id}", + response_model=OpenAIDeleteResponseObject, + summary="Delete a response.", + description="Delete a response.", +) +async def delete_openai_response( + response_id: Annotated[str, FastAPIPath(..., description="The ID of the OpenAI response to delete.")], + svc: AgentsService = Depends(get_agents_service), +) -> OpenAIDeleteResponseObject: + """Delete a response.""" + return await svc.delete_openai_response(response_id=response_id) + + +# For backward compatibility with the router registry system +def create_agents_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Agents API (legacy compatibility).""" + main_router = APIRouter() + main_router.include_router(router) + main_router.include_router(router_v1alpha) + return main_router + + +# Register the router factory +register_router(Api.agents, create_agents_router) diff --git a/src/llama_stack/apis/batches/__init__.py b/src/llama_stack/apis/batches/__init__.py index 9ce7d3d75..036786c0e 100644 --- a/src/llama_stack/apis/batches/__init__.py +++ b/src/llama_stack/apis/batches/__init__.py @@ -4,6 +4,17 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .batches import Batches, BatchObject, ListBatchesResponse +try: + from openai.types import Batch as BatchObject +except ImportError: + BatchObject = None # type: ignore[assignment,misc] -__all__ = ["Batches", "BatchObject", "ListBatchesResponse"] +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .batches_service import BatchService +from .models import CreateBatchRequest, ListBatchesResponse + +# Backward compatibility - export Batches as alias for BatchService +Batches = BatchService + +__all__ = ["Batches", "BatchService", "BatchObject", "ListBatchesResponse", "CreateBatchRequest"] diff --git a/src/llama_stack/apis/batches/batches.py b/src/llama_stack/apis/batches/batches.py deleted file mode 100644 index 1ee9fdb15..000000000 --- a/src/llama_stack/apis/batches/batches.py +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from typing import Literal, Protocol, runtime_checkable - -from pydantic import BaseModel, Field - -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.schema_utils import json_schema_type, webmethod - -try: - from openai.types import Batch as BatchObject -except ImportError as e: - raise ImportError("OpenAI package is required for batches API. Please install it with: pip install openai") from e - - -@json_schema_type -class ListBatchesResponse(BaseModel): - """Response containing a list of batch objects.""" - - object: Literal["list"] = "list" - data: list[BatchObject] = Field(..., description="List of batch objects") - first_id: str | None = Field(default=None, description="ID of the first batch in the list") - last_id: str | None = Field(default=None, description="ID of the last batch in the list") - has_more: bool = Field(default=False, description="Whether there are more batches available") - - -@runtime_checkable -class Batches(Protocol): - """ - The Batches API enables efficient processing of multiple requests in a single operation, - particularly useful for processing large datasets, batch evaluation workflows, and - cost-effective inference at scale. - - The API is designed to allow use of openai client libraries for seamless integration. - - This API provides the following extensions: - - idempotent batch creation - - Note: This API is currently under active development and may undergo changes. - """ - - @webmethod(route="/batches", method="POST", level=LLAMA_STACK_API_V1) - async def create_batch( - self, - input_file_id: str, - endpoint: str, - completion_window: Literal["24h"], - metadata: dict[str, str] | None = None, - idempotency_key: str | None = None, - ) -> BatchObject: - """Create a new batch for processing multiple API requests. - - :param input_file_id: The ID of an uploaded file containing requests for the batch. - :param endpoint: The endpoint to be used for all requests in the batch. - :param completion_window: The time window within which the batch should be processed. - :param metadata: Optional metadata for the batch. - :param idempotency_key: Optional idempotency key. When provided, enables idempotent behavior. - :returns: The created batch object. - """ - ... - - @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. - - :param batch_id: The ID of the batch to retrieve. - :returns: The batch object. - """ - ... - - @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. - - :param batch_id: The ID of the batch to cancel. - :returns: The updated batch object. - """ - ... - - @webmethod(route="/batches", method="GET", level=LLAMA_STACK_API_V1) - async def list_batches( - self, - after: str | None = None, - limit: int = 20, - ) -> ListBatchesResponse: - """List all batches for the current user. - - :param after: A cursor for pagination; returns batches after this batch ID. - :param limit: Number of batches to return (default 20, max 100). - :returns: A list of batch objects. - """ - ... diff --git a/src/llama_stack/apis/batches/batches_service.py b/src/llama_stack/apis/batches/batches_service.py new file mode 100644 index 000000000..3c6d12362 --- /dev/null +++ b/src/llama_stack/apis/batches/batches_service.py @@ -0,0 +1,56 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Literal, Protocol, runtime_checkable + +try: + from openai.types import Batch as BatchObject +except ImportError as e: + raise ImportError("OpenAI package is required for batches API. Please install it with: pip install openai") from e + +from .models import ListBatchesResponse + + +@runtime_checkable +class BatchService(Protocol): + """The Batches API enables efficient processing of multiple requests in a single operation, + particularly useful for processing large datasets, batch evaluation workflows, and + cost-effective inference at scale. + + The API is designed to allow use of openai client libraries for seamless integration. + + This API provides the following extensions: + - idempotent batch creation + + Note: This API is currently under active development and may undergo changes. + """ + + async def create_batch( + self, + input_file_id: str, + endpoint: str, + completion_window: Literal["24h"], + metadata: dict[str, str] | None = None, + idempotency_key: str | None = None, + ) -> BatchObject: + """Create a new batch for processing multiple API requests.""" + ... + + async def retrieve_batch(self, batch_id: str) -> BatchObject: + """Retrieve information about a specific batch.""" + ... + + async def cancel_batch(self, batch_id: str) -> BatchObject: + """Cancel a batch that is in progress.""" + ... + + async def list_batches( + self, + after: str | None = None, + limit: int = 20, + ) -> ListBatchesResponse: + """List all batches for the current user.""" + ... diff --git a/src/llama_stack/apis/batches/models.py b/src/llama_stack/apis/batches/models.py new file mode 100644 index 000000000..01a4ec32f --- /dev/null +++ b/src/llama_stack/apis/batches/models.py @@ -0,0 +1,42 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Literal + +from pydantic import BaseModel, Field + +from llama_stack.schema_utils import json_schema_type + +try: + from openai.types import Batch as BatchObject +except ImportError as e: + raise ImportError("OpenAI package is required for batches API. Please install it with: pip install openai") from e + + +@json_schema_type +class CreateBatchRequest(BaseModel): + """Request model for creating a batch.""" + + input_file_id: str = Field(..., description="The ID of an uploaded file containing requests for the batch.") + endpoint: str = Field(..., description="The endpoint to be used for all requests in the batch.") + completion_window: Literal["24h"] = Field( + ..., description="The time window within which the batch should be processed." + ) + metadata: dict[str, str] | None = Field(default=None, description="Optional metadata for the batch.") + idempotency_key: str | None = Field( + default=None, description="Optional idempotency key. When provided, enables idempotent behavior." + ) + + +@json_schema_type +class ListBatchesResponse(BaseModel): + """Response containing a list of batch objects.""" + + object: Literal["list"] = Field(default="list", description="The object type, which is always 'list'.") + data: list[BatchObject] = Field(..., description="List of batch objects.") + first_id: str | None = Field(default=None, description="ID of the first batch in the list.") + last_id: str | None = Field(default=None, description="ID of the last batch in the list.") + has_more: bool = Field(default=False, description="Whether there are more batches available.") diff --git a/src/llama_stack/apis/batches/routes.py b/src/llama_stack/apis/batches/routes.py new file mode 100644 index 000000000..3d8583b5f --- /dev/null +++ b/src/llama_stack/apis/batches/routes.py @@ -0,0 +1,111 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath + +try: + from openai.types import Batch as BatchObject +except ImportError as e: + raise ImportError("OpenAI package is required for batches API. Please install it with: pip install openai") from e + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .batches_service import BatchService +from .models import CreateBatchRequest, ListBatchesResponse + + +def get_batch_service(request: Request) -> BatchService: + """Dependency to get the batch service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.batches not in impls: + raise ValueError("Batches API implementation not found") + return impls[Api.batches] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Batches"], + responses=standard_responses, +) + + +@router.post( + "/batches", + response_model=BatchObject, + summary="Create a new batch for processing multiple API requests.", + description="Create a new batch for processing multiple API requests.", +) +async def create_batch( + request: CreateBatchRequest = Body(...), + svc: BatchService = Depends(get_batch_service), +) -> BatchObject: + """Create a new batch.""" + return await svc.create_batch( + input_file_id=request.input_file_id, + endpoint=request.endpoint, + completion_window=request.completion_window, + metadata=request.metadata, + idempotency_key=request.idempotency_key, + ) + + +@router.get( + "/batches/{batch_id}", + response_model=BatchObject, + summary="Retrieve information about a specific batch.", + description="Retrieve information about a specific batch.", +) +async def retrieve_batch( + batch_id: Annotated[str, FastAPIPath(..., description="The ID of the batch to retrieve.")], + svc: BatchService = Depends(get_batch_service), +) -> BatchObject: + """Retrieve batch information.""" + return await svc.retrieve_batch(batch_id) + + +@router.post( + "/batches/{batch_id}/cancel", + response_model=BatchObject, + summary="Cancel a batch that is in progress.", + description="Cancel a batch that is in progress.", +) +async def cancel_batch( + batch_id: Annotated[str, FastAPIPath(..., description="The ID of the batch to cancel.")], + svc: BatchService = Depends(get_batch_service), +) -> BatchObject: + """Cancel a batch.""" + return await svc.cancel_batch(batch_id) + + +@router.get( + "/batches", + response_model=ListBatchesResponse, + summary="List all batches for the current user.", + description="List all batches for the current user.", +) +async def list_batches( + after: str | None = Query(None, description="A cursor for pagination; returns batches after this batch ID."), + limit: int = Query(20, description="Number of batches to return (default 20, max 100).", ge=1, le=100), + svc: BatchService = Depends(get_batch_service), +) -> ListBatchesResponse: + """List all batches.""" + return await svc.list_batches(after=after, limit=limit) + + +# For backward compatibility with the router registry system +def create_batches_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Batches API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.batches, create_batches_router) diff --git a/src/llama_stack/apis/benchmarks/__init__.py b/src/llama_stack/apis/benchmarks/__init__.py index 62d1b367c..67c44eb6a 100644 --- a/src/llama_stack/apis/benchmarks/__init__.py +++ b/src/llama_stack/apis/benchmarks/__init__.py @@ -4,4 +4,26 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .benchmarks import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .benchmarks_service import BenchmarksService +from .models import ( + Benchmark, + BenchmarkInput, + CommonBenchmarkFields, + ListBenchmarksResponse, + RegisterBenchmarkRequest, +) + +# Backward compatibility - export Benchmarks as alias for BenchmarksService +Benchmarks = BenchmarksService + +__all__ = [ + "Benchmarks", + "BenchmarksService", + "Benchmark", + "BenchmarkInput", + "CommonBenchmarkFields", + "ListBenchmarksResponse", + "RegisterBenchmarkRequest", +] diff --git a/src/llama_stack/apis/benchmarks/benchmarks.py b/src/llama_stack/apis/benchmarks/benchmarks.py deleted file mode 100644 index 933205489..000000000 --- a/src/llama_stack/apis/benchmarks/benchmarks.py +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. -from typing import Any, Literal, Protocol, runtime_checkable - -from pydantic import BaseModel, Field - -from llama_stack.apis.resource import Resource, ResourceType -from llama_stack.apis.version import LLAMA_STACK_API_V1ALPHA -from llama_stack.schema_utils import json_schema_type, webmethod - - -class CommonBenchmarkFields(BaseModel): - dataset_id: str - scoring_functions: list[str] - metadata: dict[str, Any] = Field( - default_factory=dict, - description="Metadata for this evaluation task", - ) - - -@json_schema_type -class Benchmark(CommonBenchmarkFields, Resource): - """A benchmark resource for evaluating model performance. - - :param dataset_id: Identifier of the dataset to use for the benchmark evaluation - :param scoring_functions: List of scoring function identifiers to apply during evaluation - :param metadata: Metadata for this evaluation task - :param type: The resource type, always benchmark - """ - - type: Literal[ResourceType.benchmark] = ResourceType.benchmark - - @property - def benchmark_id(self) -> str: - return self.identifier - - @property - def provider_benchmark_id(self) -> str | None: - return self.provider_resource_id - - -class BenchmarkInput(CommonBenchmarkFields, BaseModel): - benchmark_id: str - provider_id: str | None = None - provider_benchmark_id: str | None = None - - -class ListBenchmarksResponse(BaseModel): - data: list[Benchmark] - - -@runtime_checkable -class Benchmarks(Protocol): - @webmethod(route="/eval/benchmarks", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def list_benchmarks(self) -> ListBenchmarksResponse: - """List all benchmarks. - - :returns: A ListBenchmarksResponse. - """ - ... - - @webmethod(route="/eval/benchmarks/{benchmark_id}", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def get_benchmark( - self, - benchmark_id: str, - ) -> Benchmark: - """Get a benchmark by its ID. - - :param benchmark_id: The ID of the benchmark to get. - :returns: A Benchmark. - """ - ... - - @webmethod(route="/eval/benchmarks", method="POST", level=LLAMA_STACK_API_V1ALPHA) - async def register_benchmark( - self, - benchmark_id: str, - dataset_id: str, - scoring_functions: list[str], - provider_benchmark_id: str | None = None, - provider_id: str | None = None, - metadata: dict[str, Any] | None = None, - ) -> None: - """Register a benchmark. - - :param benchmark_id: The ID of the benchmark to register. - :param dataset_id: The ID of the dataset to use for the benchmark. - :param scoring_functions: The scoring functions to use for the benchmark. - :param provider_benchmark_id: The ID of the provider benchmark to use for the benchmark. - :param provider_id: The ID of the provider to use for the benchmark. - :param metadata: The metadata to use for the benchmark. - """ - ... - - @webmethod(route="/eval/benchmarks/{benchmark_id}", method="DELETE", level=LLAMA_STACK_API_V1ALPHA) - async def unregister_benchmark(self, benchmark_id: str) -> None: - """Unregister a benchmark. - - :param benchmark_id: The ID of the benchmark to unregister. - """ - ... diff --git a/src/llama_stack/apis/benchmarks/benchmarks_service.py b/src/llama_stack/apis/benchmarks/benchmarks_service.py new file mode 100644 index 000000000..05ebbde17 --- /dev/null +++ b/src/llama_stack/apis/benchmarks/benchmarks_service.py @@ -0,0 +1,42 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import Benchmark, ListBenchmarksResponse + + +@runtime_checkable +@trace_protocol +class BenchmarksService(Protocol): + async def list_benchmarks(self) -> ListBenchmarksResponse: + """List all benchmarks.""" + ... + + async def get_benchmark( + self, + benchmark_id: str, + ) -> Benchmark: + """Get a benchmark by its ID.""" + ... + + async def register_benchmark( + self, + benchmark_id: str, + dataset_id: str, + scoring_functions: list[str], + provider_benchmark_id: str | None = None, + provider_id: str | None = None, + metadata: dict[str, Any] | None = None, + ) -> None: + """Register a benchmark.""" + ... + + async def unregister_benchmark(self, benchmark_id: str) -> None: + """Unregister a benchmark.""" + ... diff --git a/src/llama_stack/apis/benchmarks/models.py b/src/llama_stack/apis/benchmarks/models.py new file mode 100644 index 000000000..84507becb --- /dev/null +++ b/src/llama_stack/apis/benchmarks/models.py @@ -0,0 +1,58 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.resource import Resource, ResourceType +from llama_stack.schema_utils import json_schema_type + + +class CommonBenchmarkFields(BaseModel): + dataset_id: str = Field(..., description="The ID of the dataset to use for the benchmark") + scoring_functions: list[str] = Field(..., description="The scoring functions to use for the benchmark") + metadata: dict[str, Any] = Field( + default_factory=dict, + description="Metadata for this evaluation task", + ) + + +@json_schema_type +class Benchmark(CommonBenchmarkFields, Resource): + """A benchmark resource for evaluating model performance.""" + + type: Literal[ResourceType.benchmark] = Field( + default=ResourceType.benchmark, description="The resource type, always benchmark" + ) + + +class ListBenchmarksResponse(BaseModel): + """Response model for listing benchmarks.""" + + data: list[Benchmark] = Field(..., description="List of benchmark resources") + + +@json_schema_type +class RegisterBenchmarkRequest(BaseModel): + """Request model for registering a benchmark.""" + + benchmark_id: str = Field(..., description="The ID of the benchmark to register") + dataset_id: str = Field(..., description="The ID of the dataset to use for the benchmark") + scoring_functions: list[str] = Field(..., description="The scoring functions to use for the benchmark") + provider_benchmark_id: str | None = Field( + default=None, description="The ID of the provider benchmark to use for the benchmark" + ) + provider_id: str | None = Field(default=None, description="The ID of the provider to use for the benchmark") + metadata: dict[str, Any] | None = Field(default=None, description="The metadata to use for the benchmark") + + +class BenchmarkInput(CommonBenchmarkFields, BaseModel): + benchmark_id: str = Field(..., description="The ID of the benchmark to use for the benchmark") + provider_id: str | None = Field(default=None, description="The ID of the provider to use for the benchmark") + provider_benchmark_id: str | None = Field( + default=None, description="The ID of the provider benchmark to use for the benchmark" + ) diff --git a/src/llama_stack/apis/benchmarks/routes.py b/src/llama_stack/apis/benchmarks/routes.py new file mode 100644 index 000000000..654e70fd0 --- /dev/null +++ b/src/llama_stack/apis/benchmarks/routes.py @@ -0,0 +1,144 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .benchmarks_service import BenchmarksService +from .models import Benchmark, ListBenchmarksResponse, RegisterBenchmarkRequest + + +def get_benchmarks_service(request: Request) -> BenchmarksService: + """Dependency to get the benchmarks service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.benchmarks not in impls: + raise ValueError("Benchmarks API implementation not found") + return impls[Api.benchmarks] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Benchmarks"], + responses=standard_responses, +) + +router_v1alpha = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1ALPHA}", + tags=["Benchmarks"], + responses=standard_responses, +) + + +@router.get( + "/eval/benchmarks", + response_model=ListBenchmarksResponse, + summary="List all benchmarks", + description="List all benchmarks", + deprecated=True, +) +@router_v1alpha.get( + "/eval/benchmarks", + response_model=ListBenchmarksResponse, + summary="List all benchmarks", + description="List all benchmarks", +) +async def list_benchmarks(svc: BenchmarksService = Depends(get_benchmarks_service)) -> ListBenchmarksResponse: + """List all benchmarks.""" + return await svc.list_benchmarks() + + +@router.get( + "/eval/benchmarks/{benchmark_id}", + response_model=Benchmark, + summary="Get a benchmark by its ID", + description="Get a benchmark by its ID", + deprecated=True, +) +@router_v1alpha.get( + "/eval/benchmarks/{{benchmark_id}}", + response_model=Benchmark, + summary="Get a benchmark by its ID", + description="Get a benchmark by its ID", +) +async def get_benchmark( + benchmark_id: Annotated[str, FastAPIPath(..., description="The ID of the benchmark to get")], + svc: BenchmarksService = Depends(get_benchmarks_service), +) -> Benchmark: + """Get a benchmark by its ID.""" + return await svc.get_benchmark(benchmark_id=benchmark_id) + + +@router.post( + "/eval/benchmarks", + response_model=None, + status_code=204, + summary="Register a benchmark", + description="Register a benchmark", + deprecated=True, +) +@router_v1alpha.post( + "/eval/benchmarks", + response_model=None, + status_code=204, + summary="Register a benchmark", + description="Register a benchmark", +) +async def register_benchmark( + body: RegisterBenchmarkRequest = Body(...), + svc: BenchmarksService = Depends(get_benchmarks_service), +) -> None: + """Register a benchmark.""" + return await svc.register_benchmark( + benchmark_id=body.benchmark_id, + dataset_id=body.dataset_id, + scoring_functions=body.scoring_functions, + provider_benchmark_id=body.provider_benchmark_id, + provider_id=body.provider_id, + metadata=body.metadata, + ) + + +@router.delete( + "/eval/benchmarks/{benchmark_id}", + response_model=None, + status_code=204, + summary="Unregister a benchmark", + description="Unregister a benchmark", + deprecated=True, +) +@router_v1alpha.delete( + "/eval/benchmarks/{{benchmark_id}}", + response_model=None, + status_code=204, + summary="Unregister a benchmark", + description="Unregister a benchmark", +) +async def unregister_benchmark( + benchmark_id: Annotated[str, FastAPIPath(..., description="The ID of the benchmark to unregister")], + svc: BenchmarksService = Depends(get_benchmarks_service), +) -> None: + """Unregister a benchmark.""" + await svc.unregister_benchmark(benchmark_id=benchmark_id) + + +# For backward compatibility with the router registry system +def create_benchmarks_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Benchmarks API (legacy compatibility).""" + main_router = APIRouter() + main_router.include_router(router) + main_router.include_router(router_v1alpha) + return main_router + + +# Register the router factory +register_router(Api.benchmarks, create_benchmarks_router) diff --git a/src/llama_stack/apis/common/content_types.py b/src/llama_stack/apis/common/content_types.py index 950dd17ff..e3c79f053 100644 --- a/src/llama_stack/apis/common/content_types.py +++ b/src/llama_stack/apis/common/content_types.py @@ -15,21 +15,13 @@ from llama_stack.schema_utils import json_schema_type, register_schema @json_schema_type class URL(BaseModel): - """A URL reference to external content. - - :param uri: The URL string pointing to the resource - """ + """A URL reference to external content.""" uri: str class _URLOrData(BaseModel): - """ - A URL or a base64 encoded string - - :param url: A URL of the image or data URL in the format of data:image/{type};base64,{data}. Note that URL could have length limits. - :param data: base64 encoded image data as string - """ + """A URL or a base64 encoded string.""" url: URL | None = None # data is a base64 encoded string, hint with contentEncoding=base64 @@ -45,11 +37,7 @@ class _URLOrData(BaseModel): @json_schema_type class ImageContentItem(BaseModel): - """A image content item - - :param type: Discriminator type of the content item. Always "image" - :param image: Image as a base64 encoded string or an URL - """ + """A image content item.""" type: Literal["image"] = "image" image: _URLOrData @@ -57,11 +45,7 @@ class ImageContentItem(BaseModel): @json_schema_type class TextContentItem(BaseModel): - """A text content item - - :param type: Discriminator type of the content item. Always "text" - :param text: Text content - """ + """A text content item.""" type: Literal["text"] = "text" text: str @@ -81,11 +65,7 @@ register_schema(InterleavedContent, name="InterleavedContent") @json_schema_type class TextDelta(BaseModel): - """A text content delta for streaming responses. - - :param type: Discriminator type of the delta. Always "text" - :param text: The incremental text content - """ + """A text content delta for streaming responses.""" type: Literal["text"] = "text" text: str @@ -93,23 +73,14 @@ class TextDelta(BaseModel): @json_schema_type class ImageDelta(BaseModel): - """An image content delta for streaming responses. - - :param type: Discriminator type of the delta. Always "image" - :param image: The incremental image data as bytes - """ + """An image content delta for streaming responses.""" type: Literal["image"] = "image" image: bytes class ToolCallParseStatus(Enum): - """Status of tool call parsing during streaming. - :cvar started: Tool call parsing has begun - :cvar in_progress: Tool call parsing is ongoing - :cvar failed: Tool call parsing failed - :cvar succeeded: Tool call parsing completed successfully - """ + """Status of tool call parsing during streaming.""" started = "started" in_progress = "in_progress" @@ -119,12 +90,7 @@ class ToolCallParseStatus(Enum): @json_schema_type class ToolCallDelta(BaseModel): - """A tool call content delta for streaming responses. - - :param type: Discriminator type of the delta. Always "tool_call" - :param tool_call: Either an in-progress tool call string or the final parsed tool call - :param parse_status: Current parsing status of the tool call - """ + """A tool call content delta for streaming responses.""" type: Literal["tool_call"] = "tool_call" diff --git a/src/llama_stack/apis/common/job_types.py b/src/llama_stack/apis/common/job_types.py index 5da42bfd3..860871d6f 100644 --- a/src/llama_stack/apis/common/job_types.py +++ b/src/llama_stack/apis/common/job_types.py @@ -28,11 +28,7 @@ class JobStatus(Enum): @json_schema_type class Job(BaseModel): - """A job execution instance with status tracking. - - :param job_id: Unique identifier for the job - :param status: Current execution status of the job - """ + """A job execution instance with status tracking.""" job_id: str status: JobStatus diff --git a/src/llama_stack/apis/common/responses.py b/src/llama_stack/apis/common/responses.py index 616bee73a..2994cfe8e 100644 --- a/src/llama_stack/apis/common/responses.py +++ b/src/llama_stack/apis/common/responses.py @@ -7,16 +7,13 @@ from enum import Enum from typing import Any -from pydantic import BaseModel +from pydantic import BaseModel, Field from llama_stack.schema_utils import json_schema_type class Order(Enum): - """Sort order for paginated responses. - :cvar asc: Ascending order - :cvar desc: Descending order - """ + """Sort order for paginated responses.""" asc = "asc" desc = "desc" @@ -24,13 +21,8 @@ class Order(Enum): @json_schema_type class PaginatedResponse(BaseModel): - """A generic paginated response that follows a simple format. + """A generic paginated response that follows a simple format.""" - :param data: The list of items for the current page - :param has_more: Whether there are more items available after this set - :param url: The URL for accessing this list - """ - - data: list[dict[str, Any]] - has_more: bool - url: str | None = None + data: list[dict[str, Any]] = Field(description="The list of items for the current page.") + has_more: bool = Field(description="Whether there are more items available after this set.") + url: str | None = Field(description="The URL for accessing this list.") diff --git a/src/llama_stack/apis/common/training_types.py b/src/llama_stack/apis/common/training_types.py index 5c236a25d..1b390ec35 100644 --- a/src/llama_stack/apis/common/training_types.py +++ b/src/llama_stack/apis/common/training_types.py @@ -6,42 +6,28 @@ from datetime import datetime -from pydantic import BaseModel +from pydantic import BaseModel, Field from llama_stack.schema_utils import json_schema_type @json_schema_type class PostTrainingMetric(BaseModel): - """Training metrics captured during post-training jobs. + """Training metrics captured during post-training jobs.""" - :param epoch: Training epoch number - :param train_loss: Loss value on the training dataset - :param validation_loss: Loss value on the validation dataset - :param perplexity: Perplexity metric indicating model confidence - """ - - epoch: int - train_loss: float - validation_loss: float - perplexity: float + epoch: int = Field(description="Training epoch number.") + train_loss: float = Field(description="Loss value on the training dataset.") + validation_loss: float = Field(description="Loss value on the validation dataset.") + perplexity: float = Field(description="Perplexity metric indicating model confidence.") @json_schema_type class Checkpoint(BaseModel): - """Checkpoint created during training runs. + """Checkpoint created during training runs.""" - :param identifier: Unique identifier for the checkpoint - :param created_at: Timestamp when the checkpoint was created - :param epoch: Training epoch when the checkpoint was saved - :param post_training_job_id: Identifier of the training job that created this checkpoint - :param path: File system path where the checkpoint is stored - :param training_metrics: (Optional) Training metrics associated with this checkpoint - """ - - identifier: str - created_at: datetime - epoch: int - post_training_job_id: str - path: str - training_metrics: PostTrainingMetric | None = None + identifier: str = Field(description="Unique identifier for the checkpoint.") + created_at: datetime = Field(description="Timestamp when the checkpoint was created.") + epoch: int = Field(description="Training epoch when the checkpoint was saved.") + post_training_job_id: str = Field(description="Identifier of the training job that created this checkpoint.") + path: str = Field(description="File system path where the checkpoint is stored.") + training_metrics: PostTrainingMetric | None = Field(description="Training metrics associated with this checkpoint.") diff --git a/src/llama_stack/apis/conversations/__init__.py b/src/llama_stack/apis/conversations/__init__.py index 2d214d27a..b9d3e7e08 100644 --- a/src/llama_stack/apis/conversations/__init__.py +++ b/src/llama_stack/apis/conversations/__init__.py @@ -4,28 +4,38 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .conversations import ( +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .conversations_service import ConversationService +from .models import ( Conversation, ConversationCreateRequest, ConversationDeletedResource, ConversationItem, ConversationItemCreateRequest, ConversationItemDeletedResource, + ConversationItemInclude, ConversationItemList, - Conversations, + ConversationMessage, ConversationUpdateRequest, Metadata, ) +# Backward compatibility - export Conversations as alias for ConversationService +Conversations = ConversationService + __all__ = [ - "Conversation", - "ConversationCreateRequest", - "ConversationDeletedResource", - "ConversationItem", - "ConversationItemCreateRequest", - "ConversationItemDeletedResource", - "ConversationItemList", "Conversations", + "ConversationService", + "Conversation", + "ConversationMessage", + "ConversationItem", + "ConversationCreateRequest", "ConversationUpdateRequest", + "ConversationDeletedResource", + "ConversationItemCreateRequest", + "ConversationItemList", + "ConversationItemDeletedResource", + "ConversationItemInclude", "Metadata", ] diff --git a/src/llama_stack/apis/conversations/conversations_service.py b/src/llama_stack/apis/conversations/conversations_service.py new file mode 100644 index 000000000..d6af15007 --- /dev/null +++ b/src/llama_stack/apis/conversations/conversations_service.py @@ -0,0 +1,70 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Literal, Protocol, runtime_checkable + +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ( + Conversation, + ConversationDeletedResource, + ConversationItem, + ConversationItemDeletedResource, + ConversationItemInclude, + ConversationItemList, + Metadata, +) + + +@runtime_checkable +@trace_protocol +class ConversationService(Protocol): + """Conversations + + Protocol for conversation management operations.""" + + async def create_conversation( + self, items: list[ConversationItem] | None = None, metadata: Metadata | None = None + ) -> Conversation: + """Create a conversation.""" + ... + + async def get_conversation(self, conversation_id: str) -> Conversation: + """Retrieve a conversation.""" + ... + + async def update_conversation(self, conversation_id: str, metadata: Metadata) -> Conversation: + """Update a conversation.""" + ... + + async def openai_delete_conversation(self, conversation_id: str) -> ConversationDeletedResource: + """Delete a conversation.""" + ... + + async def add_items(self, conversation_id: str, items: list[ConversationItem]) -> ConversationItemList: + """Create items.""" + ... + + async def retrieve(self, conversation_id: str, item_id: str) -> ConversationItem: + """Retrieve an item.""" + ... + + async def list_items( + self, + conversation_id: str, + after: str | None = None, + include: list[ConversationItemInclude] | None = None, + limit: int | None = None, + order: Literal["asc", "desc"] | None = None, + ) -> ConversationItemList: + """List items.""" + ... + + async def openai_delete_conversation_item( + self, conversation_id: str, item_id: str + ) -> ConversationItemDeletedResource: + """Delete an item.""" + ... diff --git a/src/llama_stack/apis/conversations/conversations.py b/src/llama_stack/apis/conversations/models.py similarity index 53% rename from src/llama_stack/apis/conversations/conversations.py rename to src/llama_stack/apis/conversations/models.py index d75683efa..f1b24715a 100644 --- a/src/llama_stack/apis/conversations/conversations.py +++ b/src/llama_stack/apis/conversations/models.py @@ -5,7 +5,7 @@ # the root directory of this source tree. from enum import StrEnum -from typing import Annotated, Literal, Protocol, runtime_checkable +from typing import Annotated, Literal from pydantic import BaseModel, Field @@ -20,9 +20,7 @@ from llama_stack.apis.agents.openai_responses import ( OpenAIResponseOutputMessageMCPListTools, OpenAIResponseOutputMessageWebSearchToolCall, ) -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod +from llama_stack.schema_utils import json_schema_type, register_schema Metadata = dict[str, str] @@ -76,31 +74,6 @@ ConversationItem = Annotated[ ] register_schema(ConversationItem, name="ConversationItem") -# Using OpenAI types directly caused issues but some notes for reference: -# Note that ConversationItem is a Annotated Union of the types below: -# from openai.types.responses import * -# from openai.types.responses.response_item import * -# from openai.types.conversations import ConversationItem -# f = [ -# ResponseFunctionToolCallItem, -# ResponseFunctionToolCallOutputItem, -# ResponseFileSearchToolCall, -# ResponseFunctionWebSearch, -# ImageGenerationCall, -# ResponseComputerToolCall, -# ResponseComputerToolCallOutputItem, -# ResponseReasoningItem, -# ResponseCodeInterpreterToolCall, -# LocalShellCall, -# LocalShellCallOutput, -# McpListTools, -# McpApprovalRequest, -# McpApprovalResponse, -# McpCall, -# ResponseCustomToolCall, -# ResponseCustomToolCallOutput -# ] - @json_schema_type class ConversationCreateRequest(BaseModel): @@ -180,119 +153,3 @@ class ConversationItemDeletedResource(BaseModel): id: str = Field(..., description="The deleted item identifier") object: str = Field(default="conversation.item.deleted", description="Object type") deleted: bool = Field(default=True, description="Whether the object was deleted") - - -@runtime_checkable -@trace_protocol -class Conversations(Protocol): - """Conversations - - Protocol for conversation management operations.""" - - @webmethod(route="/conversations", method="POST", level=LLAMA_STACK_API_V1) - async def create_conversation( - self, items: list[ConversationItem] | None = None, metadata: Metadata | None = None - ) -> Conversation: - """Create a conversation. - - Create a conversation. - - :param items: Initial items to include in the conversation context. - :param metadata: Set of key-value pairs that can be attached to an object. - :returns: The created conversation object. - """ - ... - - @webmethod(route="/conversations/{conversation_id}", method="GET", level=LLAMA_STACK_API_V1) - async def get_conversation(self, conversation_id: str) -> Conversation: - """Retrieve a conversation. - - Get a conversation with the given ID. - - :param conversation_id: The conversation identifier. - :returns: The conversation object. - """ - ... - - @webmethod(route="/conversations/{conversation_id}", method="POST", level=LLAMA_STACK_API_V1) - async def update_conversation(self, conversation_id: str, metadata: Metadata) -> Conversation: - """Update a conversation. - - Update a conversation's metadata with the given ID. - - :param conversation_id: The conversation identifier. - :param metadata: Set of key-value pairs that can be attached to an object. - :returns: The updated conversation object. - """ - ... - - @webmethod(route="/conversations/{conversation_id}", method="DELETE", level=LLAMA_STACK_API_V1) - async def openai_delete_conversation(self, conversation_id: str) -> ConversationDeletedResource: - """Delete a conversation. - - Delete a conversation with the given ID. - - :param conversation_id: The conversation identifier. - :returns: The deleted conversation resource. - """ - ... - - @webmethod(route="/conversations/{conversation_id}/items", method="POST", level=LLAMA_STACK_API_V1) - async def add_items(self, conversation_id: str, items: list[ConversationItem]) -> ConversationItemList: - """Create items. - - Create items in the conversation. - - :param conversation_id: The conversation identifier. - :param items: Items to include in the conversation context. - :returns: List of created items. - """ - ... - - @webmethod(route="/conversations/{conversation_id}/items/{item_id}", method="GET", level=LLAMA_STACK_API_V1) - async def retrieve(self, conversation_id: str, item_id: str) -> ConversationItem: - """Retrieve an item. - - Retrieve a conversation item. - - :param conversation_id: The conversation identifier. - :param item_id: The item identifier. - :returns: The conversation item. - """ - ... - - @webmethod(route="/conversations/{conversation_id}/items", method="GET", level=LLAMA_STACK_API_V1) - async def list_items( - self, - conversation_id: str, - after: str | None = None, - include: list[ConversationItemInclude] | None = None, - limit: int | None = None, - order: Literal["asc", "desc"] | None = None, - ) -> ConversationItemList: - """List items. - - List items in the conversation. - - :param conversation_id: The conversation identifier. - :param after: An item ID to list items after, used in pagination. - :param include: Specify additional output data to include in the response. - :param limit: A limit on the number of objects to be returned (1-100, default 20). - :param order: The order to return items in (asc or desc, default desc). - :returns: List of conversation items. - """ - ... - - @webmethod(route="/conversations/{conversation_id}/items/{item_id}", method="DELETE", level=LLAMA_STACK_API_V1) - async def openai_delete_conversation_item( - self, conversation_id: str, item_id: str - ) -> ConversationItemDeletedResource: - """Delete an item. - - Delete a conversation item. - - :param conversation_id: The conversation identifier. - :param item_id: The item identifier. - :returns: The deleted item resource. - """ - ... diff --git a/src/llama_stack/apis/conversations/routes.py b/src/llama_stack/apis/conversations/routes.py new file mode 100644 index 000000000..971fc8c0d --- /dev/null +++ b/src/llama_stack/apis/conversations/routes.py @@ -0,0 +1,177 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated, Literal + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .conversations_service import ConversationService +from .models import ( + Conversation, + ConversationCreateRequest, + ConversationDeletedResource, + ConversationItem, + ConversationItemCreateRequest, + ConversationItemDeletedResource, + ConversationItemInclude, + ConversationItemList, + ConversationUpdateRequest, +) + + +def get_conversation_service(request: Request) -> ConversationService: + """Dependency to get the conversation service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.conversations not in impls: + raise ValueError("Conversations API implementation not found") + return impls[Api.conversations] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Conversations"], + responses=standard_responses, +) + + +@router.post( + "/conversations", + response_model=Conversation, + summary="Create a conversation", + description="Create a conversation", +) +async def create_conversation( + body: ConversationCreateRequest = Body(...), + svc: ConversationService = Depends(get_conversation_service), +) -> Conversation: + """Create a conversation.""" + return await svc.create_conversation(items=body.items, metadata=body.metadata) + + +@router.get( + "/conversations/{conversation_id}", + response_model=Conversation, + summary="Retrieve a conversation", + description="Get a conversation with the given ID", +) +async def get_conversation( + conversation_id: Annotated[str, FastAPIPath(..., description="The conversation identifier")], + svc: ConversationService = Depends(get_conversation_service), +) -> Conversation: + """Get a conversation.""" + return await svc.get_conversation(conversation_id=conversation_id) + + +@router.post( + "/conversations/{conversation_id}", + response_model=Conversation, + summary="Update a conversation", + description="Update a conversation's metadata with the given ID", +) +async def update_conversation( + conversation_id: Annotated[str, FastAPIPath(..., description="The conversation identifier")], + body: ConversationUpdateRequest = Body(...), + svc: ConversationService = Depends(get_conversation_service), +) -> Conversation: + """Update a conversation.""" + return await svc.update_conversation(conversation_id=conversation_id, metadata=body.metadata) + + +@router.delete( + "/conversations/{conversation_id}", + response_model=ConversationDeletedResource, + summary="Delete a conversation", + description="Delete a conversation with the given ID", +) +async def openai_delete_conversation( + conversation_id: Annotated[str, FastAPIPath(..., description="The conversation identifier")], + svc: ConversationService = Depends(get_conversation_service), +) -> ConversationDeletedResource: + """Delete a conversation.""" + return await svc.openai_delete_conversation(conversation_id=conversation_id) + + +@router.post( + "/conversations/{conversation_id}/items", + response_model=ConversationItemList, + summary="Create items", + description="Create items in the conversation", +) +async def add_items( + conversation_id: Annotated[str, FastAPIPath(..., description="The conversation identifier")], + body: ConversationItemCreateRequest = Body(...), + svc: ConversationService = Depends(get_conversation_service), +) -> ConversationItemList: + """Create items in the conversation.""" + return await svc.add_items(conversation_id=conversation_id, items=body.items) + + +@router.get( + "/conversations/{conversation_id}/items/{item_id}", + response_model=ConversationItem, + summary="Retrieve an item", + description="Retrieve a conversation item", +) +async def retrieve( + conversation_id: Annotated[str, FastAPIPath(..., description="The conversation identifier")], + item_id: Annotated[str, FastAPIPath(..., description="The item identifier")], + svc: ConversationService = Depends(get_conversation_service), +) -> ConversationItem: + """Retrieve a conversation item.""" + return await svc.retrieve(conversation_id=conversation_id, item_id=item_id) + + +@router.get( + "/conversations/{conversation_id}/items", + response_model=ConversationItemList, + summary="List items", + description="List items in the conversation", +) +async def list_items( + conversation_id: Annotated[str, FastAPIPath(..., description="The conversation identifier")], + after: str | None = Query(None, description="An item ID to list items after, used in pagination"), + include: list[ConversationItemInclude] | None = Query( + None, description="Specify additional output data to include in the response" + ), + limit: int | None = Query(None, description="A limit on the number of objects to be returned (1-100, default 20)"), + order: Literal["asc", "desc"] | None = Query( + None, description="The order to return items in (asc or desc, default desc)" + ), + svc: ConversationService = Depends(get_conversation_service), +) -> ConversationItemList: + """List items in the conversation.""" + return await svc.list_items(conversation_id=conversation_id, after=after, include=include, limit=limit, order=order) + + +@router.delete( + "/conversations/{conversation_id}/items/{item_id}", + response_model=ConversationItemDeletedResource, + summary="Delete an item", + description="Delete a conversation item", +) +async def openai_delete_conversation_item( + conversation_id: Annotated[str, FastAPIPath(..., description="The conversation identifier")], + item_id: Annotated[str, FastAPIPath(..., description="The item identifier")], + svc: ConversationService = Depends(get_conversation_service), +) -> ConversationItemDeletedResource: + """Delete a conversation item.""" + return await svc.openai_delete_conversation_item(conversation_id=conversation_id, item_id=item_id) + + +# For backward compatibility with the router registry system +def create_conversations_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Conversations API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.conversations, create_conversations_router) diff --git a/src/llama_stack/apis/datasetio/__init__.py b/src/llama_stack/apis/datasetio/__init__.py index 8c087bfa4..b0ac30c86 100644 --- a/src/llama_stack/apis/datasetio/__init__.py +++ b/src/llama_stack/apis/datasetio/__init__.py @@ -4,4 +4,11 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .datasetio import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .datasetio_service import DatasetIOService, DatasetStore + +# Backward compatibility - export DatasetIO as alias for DatasetIOService +DatasetIO = DatasetIOService + +__all__ = ["DatasetIO", "DatasetIOService", "DatasetStore"] diff --git a/src/llama_stack/apis/datasetio/datasetio.py b/src/llama_stack/apis/datasetio/datasetio_service.py similarity index 56% rename from src/llama_stack/apis/datasetio/datasetio.py rename to src/llama_stack/apis/datasetio/datasetio_service.py index a0c4a1afc..e08f98b1d 100644 --- a/src/llama_stack/apis/datasetio/datasetio.py +++ b/src/llama_stack/apis/datasetio/datasetio_service.py @@ -17,7 +17,7 @@ class DatasetStore(Protocol): @runtime_checkable -class DatasetIO(Protocol): +class DatasetIOService(Protocol): # keeping for aligning with inference/safety, but this is not used dataset_store: DatasetStore @@ -28,28 +28,10 @@ class DatasetIO(Protocol): start_index: int | None = None, limit: int | None = None, ) -> PaginatedResponse: - """Get a paginated list of rows from a dataset. - - Uses offset-based pagination where: - - start_index: The starting index (0-based). If None, starts from beginning. - - limit: Number of items to return. If None or -1, returns all items. - - The response includes: - - data: List of items for the current page. - - has_more: Whether there are more items available after this set. - - :param dataset_id: The ID of the dataset to get the rows from. - :param start_index: Index into dataset for the first row to get. Get all rows if None. - :param limit: The number of rows to get. - :returns: A PaginatedResponse. - """ + """Get a paginated list of rows from a dataset.""" ... @webmethod(route="/datasetio/append-rows/{dataset_id:path}", method="POST", level=LLAMA_STACK_API_V1BETA) async def append_rows(self, dataset_id: str, rows: list[dict[str, Any]]) -> None: - """Append rows to a dataset. - - :param dataset_id: The ID of the dataset to append the rows to. - :param rows: The rows to append to the dataset. - """ + """Append rows to a dataset.""" ... diff --git a/src/llama_stack/apis/datasetio/models.py b/src/llama_stack/apis/datasetio/models.py new file mode 100644 index 000000000..756f351d8 --- /dev/null +++ b/src/llama_stack/apis/datasetio/models.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. diff --git a/src/llama_stack/apis/datasetio/routes.py b/src/llama_stack/apis/datasetio/routes.py new file mode 100644 index 000000000..4301ae852 --- /dev/null +++ b/src/llama_stack/apis/datasetio/routes.py @@ -0,0 +1,77 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated, Any + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.common.responses import PaginatedResponse +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1BETA +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .datasetio_service import DatasetIOService + + +def get_datasetio_service(request: Request) -> DatasetIOService: + """Dependency to get the datasetio service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.datasetio not in impls: + raise ValueError("DatasetIO API implementation not found") + return impls[Api.datasetio] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1BETA}", + tags=["DatasetIO"], + responses=standard_responses, +) + + +@router.get( + "/datasetio/iterrows/{dataset_id:path}", + response_model=PaginatedResponse, + summary="Get a paginated list of rows from a dataset.", + description="Get a paginated list of rows from a dataset using offset-based pagination.", +) +async def iterrows( + dataset_id: Annotated[str, FastAPIPath(..., description="The ID of the dataset to get the rows from")], + start_index: int | None = Query( + None, description="Index into dataset for the first row to get. Get all rows if None." + ), + limit: int | None = Query(None, description="The number of rows to get."), + svc: DatasetIOService = Depends(get_datasetio_service), +) -> PaginatedResponse: + """Get a paginated list of rows from a dataset.""" + return await svc.iterrows(dataset_id=dataset_id, start_index=start_index, limit=limit) + + +@router.post( + "/datasetio/append-rows/{dataset_id:path}", + response_model=None, + status_code=204, + summary="Append rows to a dataset.", + description="Append rows to a dataset.", +) +async def append_rows( + dataset_id: Annotated[str, FastAPIPath(..., description="The ID of the dataset to append the rows to")], + body: list[dict[str, Any]] = Body(..., description="The rows to append to the dataset."), + svc: DatasetIOService = Depends(get_datasetio_service), +) -> None: + """Append rows to a dataset.""" + await svc.append_rows(dataset_id=dataset_id, rows=body) + + +# For backward compatibility with the router registry system +def create_datasetio_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the DatasetIO API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.datasetio, create_datasetio_router) diff --git a/src/llama_stack/apis/datasets/__init__.py b/src/llama_stack/apis/datasets/__init__.py index 9c9a128d2..7c02d4aaa 100644 --- a/src/llama_stack/apis/datasets/__init__.py +++ b/src/llama_stack/apis/datasets/__init__.py @@ -4,4 +4,36 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .datasets import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .datasets_service import DatasetsService +from .models import ( + CommonDatasetFields, + Dataset, + DatasetInput, + DatasetPurpose, + DatasetType, + DataSource, + ListDatasetsResponse, + RegisterDatasetRequest, + RowsDataSource, + URIDataSource, +) + +# Backward compatibility - export Datasets as alias for DatasetsService +Datasets = DatasetsService + +__all__ = [ + "Datasets", + "DatasetsService", + "Dataset", + "DatasetInput", + "CommonDatasetFields", + "DatasetPurpose", + "DatasetType", + "DataSource", + "URIDataSource", + "RowsDataSource", + "ListDatasetsResponse", + "RegisterDatasetRequest", +] diff --git a/src/llama_stack/apis/datasets/datasets.py b/src/llama_stack/apis/datasets/datasets.py deleted file mode 100644 index ed4ecec22..000000000 --- a/src/llama_stack/apis/datasets/datasets.py +++ /dev/null @@ -1,247 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from enum import Enum, StrEnum -from typing import Annotated, Any, Literal, Protocol - -from pydantic import BaseModel, Field - -from llama_stack.apis.resource import Resource, ResourceType -from llama_stack.apis.version import LLAMA_STACK_API_V1BETA -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod - - -class DatasetPurpose(StrEnum): - """ - Purpose of the dataset. Each purpose has a required input data schema. - - :cvar post-training/messages: The dataset contains messages used for post-training. - { - "messages": [ - {"role": "user", "content": "Hello, world!"}, - {"role": "assistant", "content": "Hello, world!"}, - ] - } - :cvar eval/question-answer: The dataset contains a question column and an answer column. - { - "question": "What is the capital of France?", - "answer": "Paris" - } - :cvar eval/messages-answer: The dataset contains a messages column with list of messages and an answer column. - { - "messages": [ - {"role": "user", "content": "Hello, my name is John Doe."}, - {"role": "assistant", "content": "Hello, John Doe. How can I help you today?"}, - {"role": "user", "content": "What's my name?"}, - ], - "answer": "John Doe" - } - """ - - post_training_messages = "post-training/messages" - eval_question_answer = "eval/question-answer" - eval_messages_answer = "eval/messages-answer" - - # TODO: add more schemas here - - -class DatasetType(Enum): - """ - Type of the dataset source. - :cvar uri: The dataset can be obtained from a URI. - :cvar rows: The dataset is stored in rows. - """ - - uri = "uri" - rows = "rows" - - -@json_schema_type -class URIDataSource(BaseModel): - """A dataset that can be obtained from a URI. - :param uri: The dataset can be obtained from a URI. E.g. - - "https://mywebsite.com/mydata.jsonl" - - "lsfs://mydata.jsonl" - - "data:csv;base64,{base64_content}" - """ - - type: Literal["uri"] = "uri" - uri: str - - -@json_schema_type -class RowsDataSource(BaseModel): - """A dataset stored in rows. - :param rows: The dataset is stored in rows. E.g. - - [ - {"messages": [{"role": "user", "content": "Hello, world!"}, {"role": "assistant", "content": "Hello, world!"}]} - ] - """ - - type: Literal["rows"] = "rows" - rows: list[dict[str, Any]] - - -DataSource = Annotated[ - URIDataSource | RowsDataSource, - Field(discriminator="type"), -] -register_schema(DataSource, name="DataSource") - - -class CommonDatasetFields(BaseModel): - """ - Common fields for a dataset. - - :param purpose: Purpose of the dataset indicating its intended use - :param source: Data source configuration for the dataset - :param metadata: Additional metadata for the dataset - """ - - purpose: DatasetPurpose - source: DataSource - metadata: dict[str, Any] = Field( - default_factory=dict, - description="Any additional metadata for this dataset", - ) - - -@json_schema_type -class Dataset(CommonDatasetFields, Resource): - """Dataset resource for storing and accessing training or evaluation data. - - :param type: Type of resource, always 'dataset' for datasets - """ - - type: Literal[ResourceType.dataset] = ResourceType.dataset - - @property - def dataset_id(self) -> str: - return self.identifier - - @property - def provider_dataset_id(self) -> str | None: - return self.provider_resource_id - - -class DatasetInput(CommonDatasetFields, BaseModel): - """Input parameters for dataset operations. - - :param dataset_id: Unique identifier for the dataset - """ - - dataset_id: str - - -class ListDatasetsResponse(BaseModel): - """Response from listing datasets. - - :param data: List of datasets - """ - - data: list[Dataset] - - -class Datasets(Protocol): - @webmethod(route="/datasets", method="POST", level=LLAMA_STACK_API_V1BETA) - async def register_dataset( - self, - purpose: DatasetPurpose, - source: DataSource, - metadata: dict[str, Any] | None = None, - dataset_id: str | None = None, - ) -> Dataset: - """ - Register a new dataset. - - :param purpose: The purpose of the dataset. - One of: - - "post-training/messages": The dataset contains a messages column with list of messages for post-training. - { - "messages": [ - {"role": "user", "content": "Hello, world!"}, - {"role": "assistant", "content": "Hello, world!"}, - ] - } - - "eval/question-answer": The dataset contains a question column and an answer column for evaluation. - { - "question": "What is the capital of France?", - "answer": "Paris" - } - - "eval/messages-answer": The dataset contains a messages column with list of messages and an answer column for evaluation. - { - "messages": [ - {"role": "user", "content": "Hello, my name is John Doe."}, - {"role": "assistant", "content": "Hello, John Doe. How can I help you today?"}, - {"role": "user", "content": "What's my name?"}, - ], - "answer": "John Doe" - } - :param source: The data source of the dataset. Ensure that the data source schema is compatible with the purpose of the dataset. Examples: - - { - "type": "uri", - "uri": "https://mywebsite.com/mydata.jsonl" - } - - { - "type": "uri", - "uri": "lsfs://mydata.jsonl" - } - - { - "type": "uri", - "uri": "data:csv;base64,{base64_content}" - } - - { - "type": "uri", - "uri": "huggingface://llamastack/simpleqa?split=train" - } - - { - "type": "rows", - "rows": [ - { - "messages": [ - {"role": "user", "content": "Hello, world!"}, - {"role": "assistant", "content": "Hello, world!"}, - ] - } - ] - } - :param metadata: The metadata for the dataset. - - E.g. {"description": "My dataset"}. - :param dataset_id: The ID of the dataset. If not provided, an ID will be generated. - :returns: A Dataset. - """ - ... - - @webmethod(route="/datasets/{dataset_id:path}", method="GET", level=LLAMA_STACK_API_V1BETA) - async def get_dataset( - self, - dataset_id: str, - ) -> Dataset: - """Get a dataset by its ID. - - :param dataset_id: The ID of the dataset to get. - :returns: A Dataset. - """ - ... - - @webmethod(route="/datasets", method="GET", level=LLAMA_STACK_API_V1BETA) - async def list_datasets(self) -> ListDatasetsResponse: - """List all datasets. - - :returns: A ListDatasetsResponse. - """ - ... - - @webmethod(route="/datasets/{dataset_id:path}", method="DELETE", level=LLAMA_STACK_API_V1BETA) - async def unregister_dataset( - self, - dataset_id: str, - ) -> None: - """Unregister a dataset by its ID. - - :param dataset_id: The ID of the dataset to unregister. - """ - ... diff --git a/src/llama_stack/apis/datasets/datasets_service.py b/src/llama_stack/apis/datasets/datasets_service.py new file mode 100644 index 000000000..88e4c23de --- /dev/null +++ b/src/llama_stack/apis/datasets/datasets_service.py @@ -0,0 +1,65 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import Dataset, DatasetPurpose, DataSource, ListDatasetsResponse + + +@runtime_checkable +@trace_protocol +class DatasetsService(Protocol): + async def register_dataset( + self, + purpose: DatasetPurpose, + source: DataSource, + metadata: dict[str, Any] | None = None, + dataset_id: str | None = None, + ) -> Dataset: + """ + Register a new dataset. + + :param purpose: The purpose of the dataset. + One of: + - "post-training/messages": The dataset contains a messages column with list of messages for post-training. + - "eval/question-answer": The dataset contains a question column and an answer column for evaluation. + - "eval/messages-answer": The dataset contains a messages column with list of messages and an answer column for evaluation. + :param source: The data source of the dataset. Ensure that the data source schema is compatible with the purpose of the dataset. + :param metadata: The metadata for the dataset. + :param dataset_id: The ID of the dataset. If not provided, an ID will be generated. + :returns: A Dataset. + """ + ... + + async def get_dataset( + self, + dataset_id: str, + ) -> Dataset: + """Get a dataset by its ID. + + :param dataset_id: The ID of the dataset to get. + :returns: A Dataset. + """ + ... + + async def list_datasets(self) -> ListDatasetsResponse: + """List all datasets. + + :returns: A ListDatasetsResponse. + """ + ... + + async def unregister_dataset( + self, + dataset_id: str, + ) -> None: + """Unregister a dataset by its ID. + + :param dataset_id: The ID of the dataset to unregister. + """ + ... diff --git a/src/llama_stack/apis/datasets/models.py b/src/llama_stack/apis/datasets/models.py new file mode 100644 index 000000000..ee1baaa21 --- /dev/null +++ b/src/llama_stack/apis/datasets/models.py @@ -0,0 +1,134 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import Enum, StrEnum +from typing import Annotated, Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.resource import Resource, ResourceType +from llama_stack.schema_utils import json_schema_type, register_schema + + +class DatasetPurpose(StrEnum): + """ + Purpose of the dataset. Each purpose has a required input data schema. + + { + "messages": [ + {"role": "user", "content": "Hello, world!"}, + {"role": "assistant", "content": "Hello, world!"}, + ] + } + { + "question": "What is the capital of France?", + "answer": "Paris" + } + { + "messages": [ + {"role": "user", "content": "Hello, my name is John Doe."}, + {"role": "assistant", "content": "Hello, John Doe. How can I help you today?"}, + {"role": "user", "content": "What's my name?"}, + ], + "answer": "John Doe" + } + """ + + post_training_messages = "post-training/messages" + eval_question_answer = "eval/question-answer" + eval_messages_answer = "eval/messages-answer" + + # TODO: add more schemas here + + +class DatasetType(Enum): + """ + Type of the dataset source. + """ + + uri = "uri" + rows = "rows" + + +@json_schema_type +class URIDataSource(BaseModel): + """A dataset that can be obtained from a URI.""" + + type: Literal["uri"] = Field(default="uri", description="The type of data source") + uri: str = Field( + ..., + description="The dataset can be obtained from a URI. E.g. 'https://mywebsite.com/mydata.jsonl', 'lsfs://mydata.jsonl', 'data:csv;base64,{base64_content}'", + ) + + +@json_schema_type +class RowsDataSource(BaseModel): + """A dataset stored in rows.""" + + type: Literal["rows"] = Field(default="rows", description="The type of data source") + rows: list[dict[str, Any]] = Field( + ..., + description="The dataset is stored in rows. E.g. [{'messages': [{'role': 'user', 'content': 'Hello, world!'}, {'role': 'assistant', 'content': 'Hello, world!'}]}]", + ) + + +DataSource = Annotated[ + URIDataSource | RowsDataSource, + Field(discriminator="type"), +] +register_schema(DataSource, name="DataSource") + + +class CommonDatasetFields(BaseModel): + """Common fields for a dataset.""" + + purpose: DatasetPurpose + source: DataSource + metadata: dict[str, Any] = Field( + default_factory=dict, + description="Any additional metadata for this dataset", + ) + + +@json_schema_type +class Dataset(CommonDatasetFields, Resource): + """Dataset resource for storing and accessing training or evaluation data.""" + + type: Literal[ResourceType.dataset] = Field( + default=ResourceType.dataset, description="Type of resource, always 'dataset' for datasets" + ) + + @property + def dataset_id(self) -> str: + return self.identifier + + @property + def provider_dataset_id(self) -> str | None: + return self.provider_resource_id + + +class DatasetInput(CommonDatasetFields, BaseModel): + """Input parameters for dataset operations.""" + + dataset_id: str = Field(..., description="Unique identifier for the dataset") + + +class ListDatasetsResponse(BaseModel): + """Response from listing datasets.""" + + data: list[Dataset] = Field(..., description="List of datasets") + + +@json_schema_type +class RegisterDatasetRequest(BaseModel): + """Request model for registering a dataset.""" + + purpose: DatasetPurpose = Field(..., description="The purpose of the dataset") + source: DataSource = Field(..., description="The data source of the dataset") + metadata: dict[str, Any] | None = Field(default=None, description="The metadata for the dataset") + dataset_id: str | None = Field( + default=None, description="The ID of the dataset. If not provided, an ID will be generated" + ) diff --git a/src/llama_stack/apis/datasets/routes.py b/src/llama_stack/apis/datasets/routes.py new file mode 100644 index 000000000..671c454a0 --- /dev/null +++ b/src/llama_stack/apis/datasets/routes.py @@ -0,0 +1,140 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1BETA +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .datasets_service import DatasetsService +from .models import Dataset, ListDatasetsResponse, RegisterDatasetRequest + + +def get_datasets_service(request: Request) -> DatasetsService: + """Dependency to get the datasets service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.datasets not in impls: + raise ValueError("Datasets API implementation not found") + return impls[Api.datasets] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Datasets"], + responses=standard_responses, +) + +router_v1beta = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1BETA}", + tags=["Datasets"], + responses=standard_responses, +) + + +@router.post( + "/datasets", + response_model=Dataset, + summary="Register a new dataset", + description="Register a new dataset", + deprecated=True, +) +@router_v1beta.post( + "/datasets", + response_model=Dataset, + summary="Register a new dataset", + description="Register a new dataset", +) +async def register_dataset( + body: RegisterDatasetRequest = Body(...), + svc: DatasetsService = Depends(get_datasets_service), +) -> Dataset: + """Register a new dataset.""" + return await svc.register_dataset( + purpose=body.purpose, + source=body.source, + metadata=body.metadata, + dataset_id=body.dataset_id, + ) + + +@router.get( + "/datasets/{dataset_id:path}", + response_model=Dataset, + summary="Get a dataset by its ID", + description="Get a dataset by its ID", + deprecated=True, +) +@router_v1beta.get( + "/datasets/{{dataset_id:path}}", + response_model=Dataset, + summary="Get a dataset by its ID", + description="Get a dataset by its ID", +) +async def get_dataset( + dataset_id: Annotated[str, FastAPIPath(..., description="The ID of the dataset to get")], + svc: DatasetsService = Depends(get_datasets_service), +) -> Dataset: + """Get a dataset by its ID.""" + return await svc.get_dataset(dataset_id=dataset_id) + + +@router.get( + "/datasets", + response_model=ListDatasetsResponse, + summary="List all datasets", + description="List all datasets", + deprecated=True, +) +@router_v1beta.get( + "/datasets", + response_model=ListDatasetsResponse, + summary="List all datasets", + description="List all datasets", +) +async def list_datasets(svc: DatasetsService = Depends(get_datasets_service)) -> ListDatasetsResponse: + """List all datasets.""" + return await svc.list_datasets() + + +@router.delete( + "/datasets/{dataset_id:path}", + response_model=None, + status_code=204, + summary="Unregister a dataset by its ID", + description="Unregister a dataset by its ID", + deprecated=True, +) +@router_v1beta.delete( + "/datasets/{{dataset_id:path}}", + response_model=None, + status_code=204, + summary="Unregister a dataset by its ID", + description="Unregister a dataset by its ID", +) +async def unregister_dataset( + dataset_id: Annotated[str, FastAPIPath(..., description="The ID of the dataset to unregister")], + svc: DatasetsService = Depends(get_datasets_service), +) -> None: + """Unregister a dataset by its ID.""" + await svc.unregister_dataset(dataset_id=dataset_id) + + +# For backward compatibility with the router registry system +def create_datasets_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Datasets API (legacy compatibility).""" + main_router = APIRouter() + main_router.include_router(router) + main_router.include_router(router_v1beta) + return main_router + + +# Register the router factory +register_router(Api.datasets, create_datasets_router) diff --git a/src/llama_stack/apis/datatypes.py b/src/llama_stack/apis/datatypes.py index ae01c5dfc..00fab1ab3 100644 --- a/src/llama_stack/apis/datatypes.py +++ b/src/llama_stack/apis/datatypes.py @@ -130,23 +130,22 @@ class Api(Enum, metaclass=DynamicApiMeta): # built-in API inspect = "inspect" + synthetic_data_generation = "synthetic_data_generation" @json_schema_type class Error(BaseModel): - """ - Error response from the API. Roughly follows RFC 7807. + """Error response from the API. Roughly follows RFC 7807.""" - :param status: HTTP status code - :param title: Error title, a short summary of the error which is invariant for an error type - :param detail: Error detail, a longer human-readable description of the error - :param instance: (Optional) A URL which can be used to retrieve more information about the specific occurrence of the error - """ - - status: int - title: str - detail: str - instance: str | None = None + status: int = Field(..., description="HTTP status code") + title: str = Field( + ..., description="Error title, a short summary of the error which is invariant for an error type" + ) + detail: str = Field(..., description="Error detail, a longer human-readable description of the error") + instance: str | None = Field( + None, + description="(Optional) A URL which can be used to retrieve more information about the specific occurrence of the error", + ) class ExternalApiSpec(BaseModel): diff --git a/src/llama_stack/apis/eval/__init__.py b/src/llama_stack/apis/eval/__init__.py index 28a1d6049..ecdba18f8 100644 --- a/src/llama_stack/apis/eval/__init__.py +++ b/src/llama_stack/apis/eval/__init__.py @@ -4,4 +4,28 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .eval import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .eval_service import EvalService +from .models import ( + AgentCandidate, + BenchmarkConfig, + EvalCandidate, + EvaluateResponse, + EvaluateRowsRequest, + ModelCandidate, +) + +# Backward compatibility - export Eval as alias for EvalService +Eval = EvalService + +__all__ = [ + "Eval", + "EvalService", + "ModelCandidate", + "AgentCandidate", + "EvalCandidate", + "BenchmarkConfig", + "EvaluateResponse", + "EvaluateRowsRequest", +] diff --git a/src/llama_stack/apis/eval/eval.py b/src/llama_stack/apis/eval/eval.py deleted file mode 100644 index 424c90674..000000000 --- a/src/llama_stack/apis/eval/eval.py +++ /dev/null @@ -1,150 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from typing import Annotated, Any, Literal, Protocol - -from pydantic import BaseModel, Field - -from llama_stack.apis.agents import AgentConfig -from llama_stack.apis.common.job_types import Job -from llama_stack.apis.inference import SamplingParams, SystemMessage -from llama_stack.apis.scoring import ScoringResult -from llama_stack.apis.scoring_functions import ScoringFnParams -from llama_stack.apis.version import LLAMA_STACK_API_V1ALPHA -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod - - -@json_schema_type -class ModelCandidate(BaseModel): - """A model candidate for evaluation. - - :param model: The model ID to evaluate. - :param sampling_params: The sampling parameters for the model. - :param system_message: (Optional) The system message providing instructions or context to the model. - """ - - type: Literal["model"] = "model" - model: str - sampling_params: SamplingParams - system_message: SystemMessage | None = None - - -@json_schema_type -class AgentCandidate(BaseModel): - """An agent candidate for evaluation. - - :param config: The configuration for the agent candidate. - """ - - type: Literal["agent"] = "agent" - config: AgentConfig - - -EvalCandidate = Annotated[ModelCandidate | AgentCandidate, Field(discriminator="type")] -register_schema(EvalCandidate, name="EvalCandidate") - - -@json_schema_type -class BenchmarkConfig(BaseModel): - """A benchmark configuration for evaluation. - - :param eval_candidate: The candidate to evaluate. - :param scoring_params: Map between scoring function id and parameters for each scoring function you want to run - :param num_examples: (Optional) The number of examples to evaluate. If not provided, all examples in the dataset will be evaluated - """ - - eval_candidate: EvalCandidate - scoring_params: dict[str, ScoringFnParams] = Field( - description="Map between scoring function id and parameters for each scoring function you want to run", - default_factory=dict, - ) - num_examples: int | None = Field( - description="Number of examples to evaluate (useful for testing), if not provided, all examples in the dataset will be evaluated", - default=None, - ) - # we could optinally add any specific dataset config here - - -@json_schema_type -class EvaluateResponse(BaseModel): - """The response from an evaluation. - - :param generations: The generations from the evaluation. - :param scores: The scores from the evaluation. - """ - - generations: list[dict[str, Any]] - # each key in the dict is a scoring function name - scores: dict[str, ScoringResult] - - -class Eval(Protocol): - """Evaluations - - Llama Stack Evaluation API for running evaluations on model and agent candidates.""" - - @webmethod(route="/eval/benchmarks/{benchmark_id}/jobs", method="POST", level=LLAMA_STACK_API_V1ALPHA) - async def run_eval( - self, - benchmark_id: str, - benchmark_config: BenchmarkConfig, - ) -> Job: - """Run an evaluation on a benchmark. - - :param benchmark_id: The ID of the benchmark to run the evaluation on. - :param benchmark_config: The configuration for the benchmark. - :returns: The job that was created to run the evaluation. - """ - ... - - @webmethod(route="/eval/benchmarks/{benchmark_id}/evaluations", method="POST", level=LLAMA_STACK_API_V1ALPHA) - async def evaluate_rows( - self, - benchmark_id: str, - input_rows: list[dict[str, Any]], - scoring_functions: list[str], - benchmark_config: BenchmarkConfig, - ) -> EvaluateResponse: - """Evaluate a list of rows on a benchmark. - - :param benchmark_id: The ID of the benchmark to run the evaluation on. - :param input_rows: The rows to evaluate. - :param scoring_functions: The scoring functions to use for the evaluation. - :param benchmark_config: The configuration for the benchmark. - :returns: EvaluateResponse object containing generations and scores. - """ - ... - - @webmethod(route="/eval/benchmarks/{benchmark_id}/jobs/{job_id}", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def job_status(self, benchmark_id: str, job_id: str) -> Job: - """Get the status of a job. - - :param benchmark_id: The ID of the benchmark to run the evaluation on. - :param job_id: The ID of the job to get the status of. - :returns: The status of the evaluation job. - """ - ... - - @webmethod(route="/eval/benchmarks/{benchmark_id}/jobs/{job_id}", method="DELETE", level=LLAMA_STACK_API_V1ALPHA) - async def job_cancel(self, benchmark_id: str, job_id: str) -> None: - """Cancel a job. - - :param benchmark_id: The ID of the benchmark to run the evaluation on. - :param job_id: The ID of the job to cancel. - """ - ... - - @webmethod( - route="/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result", method="GET", level=LLAMA_STACK_API_V1ALPHA - ) - async def job_result(self, benchmark_id: str, job_id: str) -> EvaluateResponse: - """Get the result of a job. - - :param benchmark_id: The ID of the benchmark to run the evaluation on. - :param job_id: The ID of the job to get the result of. - :returns: The result of the job. - """ - ... diff --git a/src/llama_stack/apis/eval/eval_service.py b/src/llama_stack/apis/eval/eval_service.py new file mode 100644 index 000000000..80e6039ea --- /dev/null +++ b/src/llama_stack/apis/eval/eval_service.py @@ -0,0 +1,50 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.apis.common.job_types import Job +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import BenchmarkConfig, EvaluateResponse + + +@runtime_checkable +@trace_protocol +class EvalService(Protocol): + """Evaluations + + Llama Stack Evaluation API for running evaluations on model and agent candidates.""" + + async def run_eval( + self, + benchmark_id: str, + benchmark_config: BenchmarkConfig, + ) -> Job: + """Run an evaluation on a benchmark.""" + ... + + async def evaluate_rows( + self, + benchmark_id: str, + input_rows: list[dict[str, Any]], + scoring_functions: list[str], + benchmark_config: BenchmarkConfig, + ) -> EvaluateResponse: + """Evaluate a list of rows on a benchmark.""" + ... + + async def job_status(self, benchmark_id: str, job_id: str) -> Job: + """Get the status of a job.""" + ... + + async def job_cancel(self, benchmark_id: str, job_id: str) -> None: + """Cancel a job.""" + ... + + async def job_result(self, benchmark_id: str, job_id: str) -> EvaluateResponse: + """Get the result of a job.""" + ... diff --git a/src/llama_stack/apis/eval/models.py b/src/llama_stack/apis/eval/models.py new file mode 100644 index 000000000..e8d8ff8d5 --- /dev/null +++ b/src/llama_stack/apis/eval/models.py @@ -0,0 +1,73 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated, Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.agents import AgentConfig +from llama_stack.apis.inference import SamplingParams, SystemMessage +from llama_stack.apis.scoring.models import ScoringResult +from llama_stack.apis.scoring_functions import ScoringFnParams +from llama_stack.schema_utils import json_schema_type, register_schema + + +@json_schema_type +class ModelCandidate(BaseModel): + """A model candidate for evaluation.""" + + type: Literal["model"] = Field(default="model", description="The type of candidate.") + model: str = Field(..., description="The model ID to evaluate.") + sampling_params: SamplingParams = Field(..., description="The sampling parameters for the model.") + system_message: SystemMessage | None = Field( + default=None, description="The system message providing instructions or context to the model." + ) + + +@json_schema_type +class AgentCandidate(BaseModel): + """An agent candidate for evaluation.""" + + type: Literal["agent"] = Field(default="agent", description="The type of candidate.") + config: AgentConfig = Field(..., description="The configuration for the agent candidate.") + + +EvalCandidate = Annotated[ModelCandidate | AgentCandidate, Field(discriminator="type")] +register_schema(EvalCandidate, name="EvalCandidate") + + +@json_schema_type +class BenchmarkConfig(BaseModel): + """A benchmark configuration for evaluation.""" + + eval_candidate: EvalCandidate = Field(..., description="The candidate to evaluate.") + scoring_params: dict[str, ScoringFnParams] = Field( + description="Map between scoring function id and parameters for each scoring function you want to run.", + default_factory=dict, + ) + num_examples: int | None = Field( + description="The number of examples to evaluate. If not provided, all examples in the dataset will be evaluated.", + default=None, + ) + + +@json_schema_type +class EvaluateResponse(BaseModel): + """The response from an evaluation.""" + + generations: list[dict[str, Any]] = Field(..., description="The generations from the evaluation.") + scores: dict[str, ScoringResult] = Field( + ..., description="The scores from the evaluation. Each key in the dict is a scoring function name." + ) + + +@json_schema_type +class EvaluateRowsRequest(BaseModel): + """Request model for evaluating rows.""" + + input_rows: list[dict[str, Any]] = Field(..., description="The rows to evaluate.") + scoring_functions: list[str] = Field(..., description="The scoring functions to use for the evaluation.") + benchmark_config: BenchmarkConfig = Field(..., description="The configuration for the benchmark.") diff --git a/src/llama_stack/apis/eval/routes.py b/src/llama_stack/apis/eval/routes.py new file mode 100644 index 000000000..1ce147e90 --- /dev/null +++ b/src/llama_stack/apis/eval/routes.py @@ -0,0 +1,170 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.common.job_types import Job +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .eval_service import EvalService +from .models import BenchmarkConfig, EvaluateResponse, EvaluateRowsRequest + + +def get_eval_service(request: Request) -> EvalService: + """Dependency to get the eval service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.eval not in impls: + raise ValueError("Eval API implementation not found") + return impls[Api.eval] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Eval"], + responses=standard_responses, +) + +router_v1alpha = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1ALPHA}", + tags=["Eval"], + responses=standard_responses, +) + + +@router.post( + "/eval/benchmarks/{benchmark_id}/jobs", + response_model=Job, + summary="Run an evaluation on a benchmark", + description="Run an evaluation on a benchmark", + deprecated=True, +) +@router_v1alpha.post( + "/eval/benchmarks/{{benchmark_id}}/jobs", + response_model=Job, + summary="Run an evaluation on a benchmark", + description="Run an evaluation on a benchmark", +) +async def run_eval( + benchmark_id: Annotated[str, FastAPIPath(..., description="The ID of the benchmark to run the evaluation on")], + benchmark_config: BenchmarkConfig = Body(...), + svc: EvalService = Depends(get_eval_service), +) -> Job: + """Run an evaluation on a benchmark.""" + return await svc.run_eval(benchmark_id=benchmark_id, benchmark_config=benchmark_config) + + +@router.post( + "/eval/benchmarks/{benchmark_id}/evaluations", + response_model=EvaluateResponse, + summary="Evaluate a list of rows on a benchmark", + description="Evaluate a list of rows on a benchmark", + deprecated=True, +) +@router_v1alpha.post( + "/eval/benchmarks/{{benchmark_id}}/evaluations", + response_model=EvaluateResponse, + summary="Evaluate a list of rows on a benchmark", + description="Evaluate a list of rows on a benchmark", +) +async def evaluate_rows( + benchmark_id: Annotated[str, FastAPIPath(..., description="The ID of the benchmark to run the evaluation on")], + body: EvaluateRowsRequest = Body(...), + svc: EvalService = Depends(get_eval_service), +) -> EvaluateResponse: + """Evaluate a list of rows on a benchmark.""" + return await svc.evaluate_rows( + benchmark_id=benchmark_id, + input_rows=body.input_rows, + scoring_functions=body.scoring_functions, + benchmark_config=body.benchmark_config, + ) + + +@router.get( + "/eval/benchmarks/{benchmark_id}/jobs/{job_id}", + response_model=Job, + summary="Get the status of a job", + description="Get the status of a job", + deprecated=True, +) +@router_v1alpha.get( + "/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}", + response_model=Job, + summary="Get the status of a job", + description="Get the status of a job", +) +async def job_status( + benchmark_id: Annotated[str, FastAPIPath(..., description="The ID of the benchmark to run the evaluation on")], + job_id: Annotated[str, FastAPIPath(..., description="The ID of the job to get the status of")], + svc: EvalService = Depends(get_eval_service), +) -> Job: + """Get the status of a job.""" + return await svc.job_status(benchmark_id=benchmark_id, job_id=job_id) + + +@router.delete( + "/eval/benchmarks/{benchmark_id}/jobs/{job_id}", + response_model=None, + status_code=204, + summary="Cancel a job", + description="Cancel a job", + deprecated=True, +) +@router_v1alpha.delete( + "/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}", + response_model=None, + status_code=204, + summary="Cancel a job", + description="Cancel a job", +) +async def job_cancel( + benchmark_id: Annotated[str, FastAPIPath(..., description="The ID of the benchmark to run the evaluation on")], + job_id: Annotated[str, FastAPIPath(..., description="The ID of the job to cancel")], + svc: EvalService = Depends(get_eval_service), +) -> None: + """Cancel a job.""" + await svc.job_cancel(benchmark_id=benchmark_id, job_id=job_id) + + +@router.get( + "/eval/benchmarks/{benchmark_id}/jobs/{job_id}/result", + response_model=EvaluateResponse, + summary="Get the result of a job", + description="Get the result of a job", + deprecated=True, +) +@router_v1alpha.get( + "/eval/benchmarks/{{benchmark_id}}/jobs/{{job_id}}/result", + response_model=EvaluateResponse, + summary="Get the result of a job", + description="Get the result of a job", +) +async def job_result( + benchmark_id: Annotated[str, FastAPIPath(..., description="The ID of the benchmark to run the evaluation on")], + job_id: Annotated[str, FastAPIPath(..., description="The ID of the job to get the result of")], + svc: EvalService = Depends(get_eval_service), +) -> EvaluateResponse: + """Get the result of a job.""" + return await svc.job_result(benchmark_id=benchmark_id, job_id=job_id) + + +# For backward compatibility with the router registry system +def create_eval_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Eval API (legacy compatibility).""" + main_router = APIRouter() + main_router.include_router(router) + main_router.include_router(router_v1alpha) + return main_router + + +# Register the router factory +register_router(Api.eval, create_eval_router) diff --git a/src/llama_stack/apis/files/__init__.py b/src/llama_stack/apis/files/__init__.py index 189e4de19..e4638e0ad 100644 --- a/src/llama_stack/apis/files/__init__.py +++ b/src/llama_stack/apis/files/__init__.py @@ -4,4 +4,26 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .files import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .files_service import FileService +from .models import ( + ExpiresAfter, + ListOpenAIFileResponse, + OpenAIFileDeleteResponse, + OpenAIFileObject, + OpenAIFilePurpose, +) + +# Backward compatibility - export Files as alias for FileService +Files = FileService + +__all__ = [ + "Files", + "FileService", + "OpenAIFileObject", + "OpenAIFilePurpose", + "ExpiresAfter", + "ListOpenAIFileResponse", + "OpenAIFileDeleteResponse", +] diff --git a/src/llama_stack/apis/files/files.py b/src/llama_stack/apis/files/files.py deleted file mode 100644 index 657e9f500..000000000 --- a/src/llama_stack/apis/files/files.py +++ /dev/null @@ -1,194 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from enum import StrEnum -from typing import Annotated, ClassVar, Literal, Protocol, runtime_checkable - -from fastapi import File, Form, Response, UploadFile -from pydantic import BaseModel, Field - -from llama_stack.apis.common.responses import Order -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, webmethod - - -# OpenAI Files API Models -class OpenAIFilePurpose(StrEnum): - """ - Valid purpose values for OpenAI Files API. - """ - - ASSISTANTS = "assistants" - BATCH = "batch" - # TODO: Add other purposes as needed - - -@json_schema_type -class OpenAIFileObject(BaseModel): - """ - OpenAI File object as defined in the OpenAI Files API. - - :param object: The object type, which is always "file" - :param id: The file identifier, which can be referenced in the API endpoints - :param bytes: The size of the file, in bytes - :param created_at: The Unix timestamp (in seconds) for when the file was created - :param expires_at: The Unix timestamp (in seconds) for when the file expires - :param filename: The name of the file - :param purpose: The intended purpose of the file - """ - - object: Literal["file"] = "file" - id: str - bytes: int - created_at: int - expires_at: int - filename: str - purpose: OpenAIFilePurpose - - -@json_schema_type -class ExpiresAfter(BaseModel): - """ - Control expiration of uploaded files. - - Params: - - anchor, must be "created_at" - - seconds, must be int between 3600 and 2592000 (1 hour to 30 days) - """ - - MIN: ClassVar[int] = 3600 # 1 hour - MAX: ClassVar[int] = 2592000 # 30 days - - anchor: Literal["created_at"] - seconds: int = Field(..., ge=3600, le=2592000) - - -@json_schema_type -class ListOpenAIFileResponse(BaseModel): - """ - Response for listing files in OpenAI Files API. - - :param data: List of file objects - :param has_more: Whether there are more files available beyond this page - :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 object: The object type, which is always "list" - """ - - data: list[OpenAIFileObject] - has_more: bool - first_id: str - last_id: str - object: Literal["list"] = "list" - - -@json_schema_type -class OpenAIFileDeleteResponse(BaseModel): - """ - Response for deleting a file in OpenAI Files API. - - :param id: The file identifier that was deleted - :param object: The object type, which is always "file" - :param deleted: Whether the file was successfully deleted - """ - - id: str - object: Literal["file"] = "file" - deleted: bool - - -@runtime_checkable -@trace_protocol -class Files(Protocol): - """Files - - This API is used to upload documents that can be used with other Llama Stack APIs. - """ - - # OpenAI Files API Endpoints - @webmethod(route="/files", method="POST", level=LLAMA_STACK_API_V1) - async def openai_upload_file( - self, - file: Annotated[UploadFile, File()], - purpose: Annotated[OpenAIFilePurpose, Form()], - expires_after: Annotated[ExpiresAfter | None, Form()] = None, - ) -> OpenAIFileObject: - """Upload file. - - 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. - - :param file: The uploaded file object containing content and metadata (filename, content_type, etc.). - :param purpose: The intended purpose of the uploaded file (e.g., "assistants", "fine-tune"). - :param expires_after: Optional form values describing expiration for the file. - :returns: An OpenAIFileObject representing the uploaded file. - """ - ... - - @webmethod(route="/files", method="GET", level=LLAMA_STACK_API_V1) - async def openai_list_files( - self, - after: str | None = None, - limit: int | None = 10000, - order: Order | None = Order.desc, - purpose: OpenAIFilePurpose | None = None, - ) -> ListOpenAIFileResponse: - """List files. - - Returns a list of files that belong to the user's organization. - - :param after: 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. - :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 10,000, and the default is 10,000. - :param order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. - :param purpose: Only return files with the given purpose. - :returns: An ListOpenAIFileResponse containing the list of files. - """ - ... - - @webmethod(route="/files/{file_id}", method="GET", level=LLAMA_STACK_API_V1) - async def openai_retrieve_file( - self, - file_id: str, - ) -> OpenAIFileObject: - """Retrieve file. - - Returns information about a specific file. - - :param file_id: The ID of the file to use for this request. - :returns: An OpenAIFileObject containing file information. - """ - ... - - @webmethod(route="/files/{file_id}", method="DELETE", level=LLAMA_STACK_API_V1) - async def openai_delete_file( - self, - file_id: str, - ) -> OpenAIFileDeleteResponse: - """Delete file. - - :param file_id: The ID of the file to use for this request. - :returns: An OpenAIFileDeleteResponse indicating successful deletion. - """ - ... - - @webmethod(route="/files/{file_id}/content", method="GET", level=LLAMA_STACK_API_V1) - async def openai_retrieve_file_content( - self, - file_id: str, - ) -> Response: - """Retrieve file content. - - Returns the contents of the specified file. - - :param file_id: The ID of the file to use for this request. - :returns: The raw file content as a binary response. - """ - ... diff --git a/src/llama_stack/apis/files/files_service.py b/src/llama_stack/apis/files/files_service.py new file mode 100644 index 000000000..6e71fe248 --- /dev/null +++ b/src/llama_stack/apis/files/files_service.py @@ -0,0 +1,70 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated, Protocol, runtime_checkable + +from fastapi import File, Form, Response, UploadFile + +from llama_stack.apis.common.responses import Order +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ( + ExpiresAfter, + ListOpenAIFileResponse, + OpenAIFileDeleteResponse, + OpenAIFileObject, + OpenAIFilePurpose, +) + + +@runtime_checkable +@trace_protocol +class FileService(Protocol): + """Files + + This API is used to upload documents that can be used with other Llama Stack APIs. + """ + + # OpenAI Files API Endpoints + async def openai_upload_file( + self, + file: Annotated[UploadFile, File()], + purpose: Annotated[OpenAIFilePurpose, Form()], + expires_after: Annotated[ExpiresAfter | None, Form()] = None, + ) -> OpenAIFileObject: + """Upload file.""" + ... + + async def openai_list_files( + self, + after: str | None = None, + limit: int | None = 10000, + order: Order | None = Order.desc, + purpose: OpenAIFilePurpose | None = None, + ) -> ListOpenAIFileResponse: + """List files.""" + ... + + async def openai_retrieve_file( + self, + file_id: str, + ) -> OpenAIFileObject: + """Retrieve file.""" + ... + + async def openai_delete_file( + self, + file_id: str, + ) -> OpenAIFileDeleteResponse: + """Delete file.""" + ... + + async def openai_retrieve_file_content( + self, + file_id: str, + ) -> Response: + """Retrieve file content.""" + ... diff --git a/src/llama_stack/apis/files/models.py b/src/llama_stack/apis/files/models.py new file mode 100644 index 000000000..f767a0371 --- /dev/null +++ b/src/llama_stack/apis/files/models.py @@ -0,0 +1,66 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import StrEnum +from typing import ClassVar, Literal + +from pydantic import BaseModel, Field + +from llama_stack.schema_utils import json_schema_type + + +class OpenAIFilePurpose(StrEnum): + """ + Valid purpose values for OpenAI Files API. + """ + + ASSISTANTS = "assistants" + BATCH = "batch" + # TODO: Add other purposes as needed + + +@json_schema_type +class OpenAIFileObject(BaseModel): + """OpenAI File object as defined in the OpenAI Files API.""" + + object: Literal["file"] = Field(default="file", description="The object type, which is always 'file'.") + id: str = Field(..., description="The file identifier, which can be referenced in the API endpoints.") + bytes: int = Field(..., description="The size of the file, in bytes.") + created_at: int = Field(..., description="The Unix timestamp (in seconds) for when the file was created.") + expires_at: int = Field(..., description="The Unix timestamp (in seconds) for when the file expires.") + filename: str = Field(..., description="The name of the file.") + purpose: OpenAIFilePurpose = Field(..., description="The intended purpose of the file.") + + +@json_schema_type +class ExpiresAfter(BaseModel): + """Control expiration of uploaded files.""" + + MIN: ClassVar[int] = 3600 # 1 hour + MAX: ClassVar[int] = 2592000 # 30 days + + anchor: Literal["created_at"] = Field(..., description="Anchor must be 'created_at'.") + seconds: int = Field(..., ge=3600, le=2592000, description="Seconds between 3600 and 2592000 (1 hour to 30 days).") + + +@json_schema_type +class ListOpenAIFileResponse(BaseModel): + """Response for listing files in OpenAI Files API.""" + + data: list[OpenAIFileObject] = Field(..., description="List of file objects.") + has_more: bool = Field(..., description="Whether there are more files available beyond this page.") + first_id: str = Field(..., description="ID of the first file in the list for pagination.") + last_id: str = Field(..., description="ID of the last file in the list for pagination.") + object: Literal["list"] = Field(default="list", description="The object type, which is always 'list'.") + + +@json_schema_type +class OpenAIFileDeleteResponse(BaseModel): + """Response for deleting a file in OpenAI Files API.""" + + id: str = Field(..., description="The file identifier that was deleted.") + object: Literal["file"] = Field(default="file", description="The object type, which is always 'file'.") + deleted: bool = Field(..., description="Whether the file was successfully deleted.") diff --git a/src/llama_stack/apis/files/routes.py b/src/llama_stack/apis/files/routes.py new file mode 100644 index 000000000..277febddc --- /dev/null +++ b/src/llama_stack/apis/files/routes.py @@ -0,0 +1,135 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Depends, File, Form, Query, Request, Response, UploadFile +from fastapi import Path as FastAPIPath + +from llama_stack.apis.common.responses import Order +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .files_service import FileService +from .models import ( + ExpiresAfter, + ListOpenAIFileResponse, + OpenAIFileDeleteResponse, + OpenAIFileObject, + OpenAIFilePurpose, +) + + +def get_file_service(request: Request) -> FileService: + """Dependency to get the file service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.files not in impls: + raise ValueError("Files API implementation not found") + return impls[Api.files] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Files"], + responses=standard_responses, +) + + +@router.post( + "/files", + response_model=OpenAIFileObject, + summary="Upload file.", + description="Upload a file that can be used across various endpoints.", +) +async def openai_upload_file( + file: Annotated[UploadFile, File(..., description="The File object to be uploaded.")], + purpose: Annotated[OpenAIFilePurpose, Form(..., description="The intended purpose of the uploaded file.")], + expires_after: Annotated[ + ExpiresAfter | None, Form(description="Optional form values describing expiration for the file.") + ] = None, + svc: FileService = Depends(get_file_service), +) -> OpenAIFileObject: + """Upload a file.""" + return await svc.openai_upload_file(file=file, purpose=purpose, expires_after=expires_after) + + +@router.get( + "/files", + response_model=ListOpenAIFileResponse, + summary="List files.", + description="Returns a list of files that belong to the user's organization.", +) +async def openai_list_files( + after: str | None = Query( + None, description="A cursor for use in pagination. `after` is an object ID that defines your place in the list." + ), + limit: int | None = Query( + 10000, + 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.", + ), + order: Order | None = Query( + Order.desc, + description="Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.", + ), + purpose: OpenAIFilePurpose | None = Query(None, description="Only return files with the given purpose."), + svc: FileService = Depends(get_file_service), +) -> ListOpenAIFileResponse: + """List files.""" + return await svc.openai_list_files(after=after, limit=limit, order=order, purpose=purpose) + + +@router.get( + "/files/{file_id}", + response_model=OpenAIFileObject, + summary="Retrieve file.", + description="Returns information about a specific file.", +) +async def openai_retrieve_file( + file_id: Annotated[str, FastAPIPath(..., description="The ID of the file to use for this request.")], + svc: FileService = Depends(get_file_service), +) -> OpenAIFileObject: + """Retrieve file information.""" + return await svc.openai_retrieve_file(file_id=file_id) + + +@router.delete( + "/files/{file_id}", + response_model=OpenAIFileDeleteResponse, + summary="Delete file.", + description="Delete a file.", +) +async def openai_delete_file( + file_id: Annotated[str, FastAPIPath(..., description="The ID of the file to use for this request.")], + svc: FileService = Depends(get_file_service), +) -> OpenAIFileDeleteResponse: + """Delete a file.""" + return await svc.openai_delete_file(file_id=file_id) + + +@router.get( + "/files/{file_id}/content", + response_class=Response, + summary="Retrieve file content.", + description="Returns the contents of the specified file.", +) +async def openai_retrieve_file_content( + file_id: Annotated[str, FastAPIPath(..., description="The ID of the file to use for this request.")], + svc: FileService = Depends(get_file_service), +) -> Response: + """Retrieve file content.""" + return await svc.openai_retrieve_file_content(file_id=file_id) + + +# For backward compatibility with the router registry system +def create_files_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Files API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.files, create_files_router) diff --git a/src/llama_stack/apis/inference/__init__.py b/src/llama_stack/apis/inference/__init__.py index f0c8783c1..7a8d17bf4 100644 --- a/src/llama_stack/apis/inference/__init__.py +++ b/src/llama_stack/apis/inference/__init__.py @@ -4,4 +4,206 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .inference import * +# Import routes to trigger router registration +from llama_stack.apis.common.content_types import InterleavedContent +from llama_stack.apis.common.responses import Order +from llama_stack.models.llama.datatypes import BuiltinTool, StopReason, ToolCall, ToolDefinition, ToolPromptFormat + +from . import routes # noqa: F401 +from .inference_service import InferenceService +from .models import ( + Bf16QuantizationConfig, + ChatCompletionRequest, + ChatCompletionResponse, + ChatCompletionResponseEvent, + ChatCompletionResponseEventType, + ChatCompletionResponseStreamChunk, + CompletionMessage, + CompletionRequest, + CompletionResponse, + CompletionResponseStreamChunk, + EmbeddingsResponse, + EmbeddingTaskType, + Fp8QuantizationConfig, + GrammarResponseFormat, + GreedySamplingStrategy, + Int4QuantizationConfig, + JsonSchemaResponseFormat, + ListOpenAIChatCompletionResponse, + LogProbConfig, + Message, + ModelStore, + OpenAIAssistantMessageParam, + OpenAIChatCompletion, + OpenAIChatCompletionChunk, + OpenAIChatCompletionContentPartImageParam, + OpenAIChatCompletionContentPartParam, + OpenAIChatCompletionContentPartTextParam, + OpenAIChatCompletionMessageContent, + OpenAIChatCompletionRequestWithExtraBody, + OpenAIChatCompletionTextOnlyMessageContent, + OpenAIChatCompletionToolCall, + OpenAIChatCompletionToolCallFunction, + OpenAIChatCompletionUsage, + OpenAIChatCompletionUsageCompletionTokensDetails, + OpenAIChatCompletionUsagePromptTokensDetails, + OpenAIChoice, + OpenAIChoiceDelta, + OpenAIChoiceLogprobs, + OpenAIChunkChoice, + OpenAICompletion, + OpenAICompletionChoice, + OpenAICompletionLogprobs, + OpenAICompletionRequestWithExtraBody, + OpenAICompletionWithInputMessages, + OpenAIDeveloperMessageParam, + OpenAIEmbeddingData, + OpenAIEmbeddingsRequestWithExtraBody, + OpenAIEmbeddingsResponse, + OpenAIEmbeddingUsage, + OpenAIFile, + OpenAIFileFile, + OpenAIImageURL, + OpenAIJSONSchema, + OpenAIMessageParam, + OpenAIResponseFormatJSONObject, + OpenAIResponseFormatJSONSchema, + OpenAIResponseFormatParam, + OpenAIResponseFormatText, + OpenAISystemMessageParam, + OpenAITokenLogProb, + OpenAIToolMessageParam, + OpenAITopLogProb, + OpenAIUserMessageParam, + QuantizationConfig, + QuantizationType, + RerankData, + RerankResponse, + ResponseFormat, + ResponseFormatType, + SamplingParams, + SamplingStrategy, + SystemMessage, + SystemMessageBehavior, + TextTruncation, + TokenLogProbs, + ToolChoice, + ToolConfig, + ToolResponse, + ToolResponseMessage, + TopKSamplingStrategy, + TopPSamplingStrategy, + UserMessage, +) + +# Backward compatibility - export Inference as alias for InferenceService +Inference = InferenceService +InferenceProvider = InferenceService + +__all__ = [ + "Inference", + "InferenceProvider", + "InferenceService", + "InterleavedContent", + "ModelStore", + "Order", + # Sampling + "SamplingParams", + "SamplingStrategy", + "GreedySamplingStrategy", + "TopPSamplingStrategy", + "TopKSamplingStrategy", + # Quantization + "QuantizationConfig", + "QuantizationType", + "Bf16QuantizationConfig", + "Fp8QuantizationConfig", + "Int4QuantizationConfig", + # Messages + "Message", + "UserMessage", + "SystemMessage", + "ToolResponseMessage", + "CompletionMessage", + # Tools + "BuiltinTool", + "ToolCall", + "ToolChoice", + "ToolConfig", + "ToolDefinition", + "ToolPromptFormat", + "ToolResponse", + # StopReason + "StopReason", + # Completion + "CompletionRequest", + "CompletionResponse", + "CompletionResponseStreamChunk", + # Chat Completion + "ChatCompletionRequest", + "ChatCompletionResponse", + "ChatCompletionResponseStreamChunk", + "ChatCompletionResponseEvent", + "ChatCompletionResponseEventType", + # Embeddings + "EmbeddingsResponse", + "EmbeddingTaskType", + "TextTruncation", + # Rerank + "RerankResponse", + "RerankData", + # Response Format + "ResponseFormat", + "ResponseFormatType", + "JsonSchemaResponseFormat", + "GrammarResponseFormat", + # Log Probs + "LogProbConfig", + "TokenLogProbs", + # System Message Behavior + "SystemMessageBehavior", + # OpenAI Models + "OpenAICompletion", + "OpenAICompletionRequestWithExtraBody", + "OpenAICompletionChoice", + "OpenAICompletionLogprobs", + "OpenAIChatCompletion", + "OpenAIChatCompletionRequestWithExtraBody", + "OpenAIChatCompletionChunk", + "OpenAIChatCompletionUsage", + "OpenAIChatCompletionUsageCompletionTokensDetails", + "OpenAIChatCompletionUsagePromptTokensDetails", + "OpenAIChoice", + "OpenAIChoiceDelta", + "OpenAIChoiceLogprobs", + "OpenAIChunkChoice", + "OpenAIMessageParam", + "OpenAIUserMessageParam", + "OpenAISystemMessageParam", + "OpenAIAssistantMessageParam", + "OpenAIToolMessageParam", + "OpenAIDeveloperMessageParam", + "OpenAIChatCompletionContentPartParam", + "OpenAIChatCompletionContentPartTextParam", + "OpenAIChatCompletionContentPartImageParam", + "OpenAIChatCompletionMessageContent", + "OpenAIChatCompletionTextOnlyMessageContent", + "OpenAIChatCompletionToolCall", + "OpenAIChatCompletionToolCallFunction", + "OpenAIEmbeddingsRequestWithExtraBody", + "OpenAIEmbeddingsResponse", + "OpenAIEmbeddingData", + "OpenAIEmbeddingUsage", + "OpenAIResponseFormatParam", + "OpenAIResponseFormatText", + "OpenAIResponseFormatJSONSchema", + "OpenAIResponseFormatJSONObject", + "OpenAIJSONSchema", + "OpenAIImageURL", + "OpenAIFile", + "OpenAIFileFile", + "OpenAITokenLogProb", + "OpenAITopLogProb", + "OpenAICompletionWithInputMessages", + "ListOpenAIChatCompletionResponse", +] diff --git a/src/llama_stack/apis/inference/inference.py b/src/llama_stack/apis/inference/inference.py deleted file mode 100644 index f39957190..000000000 --- a/src/llama_stack/apis/inference/inference.py +++ /dev/null @@ -1,1267 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from collections.abc import AsyncIterator -from enum import Enum -from typing import ( - Annotated, - Any, - Literal, - Protocol, - runtime_checkable, -) - -from fastapi import Body -from pydantic import BaseModel, Field, field_validator -from typing_extensions import TypedDict - -from llama_stack.apis.common.content_types import ContentDelta, InterleavedContent -from llama_stack.apis.common.responses import Order -from llama_stack.apis.models import Model -from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA -from llama_stack.core.telemetry.telemetry import MetricResponseMixin -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.models.llama.datatypes import ( - BuiltinTool, - StopReason, - ToolCall, - ToolDefinition, - ToolPromptFormat, -) -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod - -register_schema(ToolCall) -register_schema(ToolDefinition) - -from enum import StrEnum - - -@json_schema_type -class GreedySamplingStrategy(BaseModel): - """Greedy sampling strategy that selects the highest probability token at each step. - - :param type: Must be "greedy" to identify this sampling strategy - """ - - type: Literal["greedy"] = "greedy" - - -@json_schema_type -class TopPSamplingStrategy(BaseModel): - """Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p. - - :param type: Must be "top_p" to identify this sampling strategy - :param temperature: Controls randomness in sampling. Higher values increase randomness - :param top_p: Cumulative probability threshold for nucleus sampling. Defaults to 0.95 - """ - - type: Literal["top_p"] = "top_p" - temperature: float | None = Field(..., gt=0.0) - top_p: float | None = 0.95 - - -@json_schema_type -class TopKSamplingStrategy(BaseModel): - """Top-k sampling strategy that restricts sampling to the k most likely tokens. - - :param type: Must be "top_k" to identify this sampling strategy - :param top_k: Number of top tokens to consider for sampling. Must be at least 1 - """ - - type: Literal["top_k"] = "top_k" - top_k: int = Field(..., ge=1) - - -SamplingStrategy = Annotated[ - GreedySamplingStrategy | TopPSamplingStrategy | TopKSamplingStrategy, - Field(discriminator="type"), -] -register_schema(SamplingStrategy, name="SamplingStrategy") - - -@json_schema_type -class SamplingParams(BaseModel): - """Sampling parameters. - - :param strategy: The sampling strategy. - :param max_tokens: The maximum number of tokens that can be generated in the completion. The token count of - your prompt plus max_tokens cannot exceed the model's context length. - :param repetition_penalty: Number between -2.0 and 2.0. Positive values penalize new tokens - based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. - :param stop: Up to 4 sequences where the API will stop generating further tokens. - The returned text will not contain the stop sequence. - """ - - strategy: SamplingStrategy = Field(default_factory=GreedySamplingStrategy) - - max_tokens: int | None = None - repetition_penalty: float | None = 1.0 - stop: list[str] | None = None - - -class LogProbConfig(BaseModel): - """ - - :param top_k: How many tokens (for each position) to return log probabilities for. - """ - - top_k: int | None = 0 - - -class QuantizationType(Enum): - """Type of model quantization to run inference with. - - :cvar bf16: BFloat16 typically this means _no_ quantization - :cvar fp8_mixed: 8-bit floating point quantization with mixed precision - :cvar int4_mixed: 4-bit integer quantization with mixed precision - """ - - bf16 = "bf16" - fp8_mixed = "fp8_mixed" - int4_mixed = "int4_mixed" - - -@json_schema_type -class Fp8QuantizationConfig(BaseModel): - """Configuration for 8-bit floating point quantization. - - :param type: Must be "fp8_mixed" to identify this quantization type - """ - - type: Literal["fp8_mixed"] = "fp8_mixed" - - -@json_schema_type -class Bf16QuantizationConfig(BaseModel): - """Configuration for BFloat16 precision (typically no quantization). - - :param type: Must be "bf16" to identify this quantization type - """ - - type: Literal["bf16"] = "bf16" - - -@json_schema_type -class Int4QuantizationConfig(BaseModel): - """Configuration for 4-bit integer quantization. - - :param type: Must be "int4" to identify this quantization type - :param scheme: Quantization scheme to use. Defaults to "int4_weight_int8_dynamic_activation" - """ - - type: Literal["int4_mixed"] = "int4_mixed" - scheme: str | None = "int4_weight_int8_dynamic_activation" - - -QuantizationConfig = Annotated[ - Bf16QuantizationConfig | Fp8QuantizationConfig | Int4QuantizationConfig, - Field(discriminator="type"), -] - - -@json_schema_type -class UserMessage(BaseModel): - """A message from the user in a chat conversation. - - :param role: Must be "user" to identify this as a user message - :param content: The content of the message, which can include text and other media - :param context: (Optional) This field is used internally by Llama Stack to pass RAG context. This field may be removed in the API in the future. - """ - - role: Literal["user"] = "user" - content: InterleavedContent - context: InterleavedContent | None = None - - -@json_schema_type -class SystemMessage(BaseModel): - """A system message providing instructions or context to the model. - - :param role: Must be "system" to identify this as a system message - :param content: The content of the "system prompt". If multiple system messages are provided, they are concatenated. The underlying Llama Stack code may also add other system messages (for example, for formatting tool definitions). - """ - - role: Literal["system"] = "system" - content: InterleavedContent - - -@json_schema_type -class ToolResponseMessage(BaseModel): - """A message representing the result of a tool invocation. - - :param role: Must be "tool" to identify this as a tool response - :param call_id: Unique identifier for the tool call this response is for - :param content: The response content from the tool - """ - - role: Literal["tool"] = "tool" - call_id: str - content: InterleavedContent - - -@json_schema_type -class CompletionMessage(BaseModel): - """A message containing the model's (assistant) response in a chat conversation. - - :param role: Must be "assistant" to identify this as the model's response - :param content: The content of the model's response - :param stop_reason: Reason why the model stopped generating. Options are: - - `StopReason.end_of_turn`: The model finished generating the entire response. - - `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response. - - `StopReason.out_of_tokens`: The model ran out of token budget. - :param tool_calls: List of tool calls. Each tool call is a ToolCall object. - """ - - role: Literal["assistant"] = "assistant" - content: InterleavedContent - stop_reason: StopReason - tool_calls: list[ToolCall] | None = Field(default_factory=lambda: []) - - -Message = Annotated[ - UserMessage | SystemMessage | ToolResponseMessage | CompletionMessage, - Field(discriminator="role"), -] -register_schema(Message, name="Message") - - -@json_schema_type -class ToolResponse(BaseModel): - """Response from a tool invocation. - - :param call_id: Unique identifier for the tool call this response is for - :param tool_name: Name of the tool that was invoked - :param content: The response content from the tool - :param metadata: (Optional) Additional metadata about the tool response - """ - - call_id: str - tool_name: BuiltinTool | str - content: InterleavedContent - metadata: dict[str, Any] | None = None - - @field_validator("tool_name", mode="before") - @classmethod - def validate_field(cls, v): - if isinstance(v, str): - try: - return BuiltinTool(v) - except ValueError: - return v - return v - - -class ToolChoice(Enum): - """Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model. - - :cvar auto: The model may use tools if it determines that is appropriate. - :cvar required: The model must use tools. - :cvar none: The model must not use tools. - """ - - auto = "auto" - required = "required" - none = "none" - - -@json_schema_type -class TokenLogProbs(BaseModel): - """Log probabilities for generated tokens. - - :param logprobs_by_token: Dictionary mapping tokens to their log probabilities - """ - - logprobs_by_token: dict[str, float] - - -class ChatCompletionResponseEventType(Enum): - """Types of events that can occur during chat completion. - - :cvar start: Inference has started - :cvar complete: Inference is complete and a full response is available - :cvar progress: Inference is in progress and a partial response is available - """ - - start = "start" - complete = "complete" - progress = "progress" - - -@json_schema_type -class ChatCompletionResponseEvent(BaseModel): - """An event during chat completion generation. - - :param event_type: Type of the event - :param delta: Content generated since last event. This can be one or more tokens, or a tool call. - :param logprobs: Optional log probabilities for generated tokens - :param stop_reason: Optional reason why generation stopped, if complete - """ - - event_type: ChatCompletionResponseEventType - delta: ContentDelta - logprobs: list[TokenLogProbs] | None = None - stop_reason: StopReason | None = None - - -class ResponseFormatType(StrEnum): - """Types of formats for structured (guided) decoding. - - :cvar json_schema: Response should conform to a JSON schema. In a Python SDK, this is often a `pydantic` model. - :cvar grammar: Response should conform to a BNF grammar - """ - - json_schema = "json_schema" - grammar = "grammar" - - -@json_schema_type -class JsonSchemaResponseFormat(BaseModel): - """Configuration for JSON schema-guided response generation. - - :param type: Must be "json_schema" to identify this format type - :param json_schema: The JSON schema the response should conform to. In a Python SDK, this is often a `pydantic` model. - """ - - type: Literal[ResponseFormatType.json_schema] = ResponseFormatType.json_schema - json_schema: dict[str, Any] - - -@json_schema_type -class GrammarResponseFormat(BaseModel): - """Configuration for grammar-guided response generation. - - :param type: Must be "grammar" to identify this format type - :param bnf: The BNF grammar specification the response should conform to - """ - - type: Literal[ResponseFormatType.grammar] = ResponseFormatType.grammar - bnf: dict[str, Any] - - -ResponseFormat = Annotated[ - JsonSchemaResponseFormat | GrammarResponseFormat, - Field(discriminator="type"), -] -register_schema(ResponseFormat, name="ResponseFormat") - - -# This is an internally used class -class CompletionRequest(BaseModel): - model: str - content: InterleavedContent - sampling_params: SamplingParams | None = Field(default_factory=SamplingParams) - response_format: ResponseFormat | None = None - stream: bool | None = False - logprobs: LogProbConfig | None = None - - -@json_schema_type -class CompletionResponse(MetricResponseMixin): - """Response from a completion request. - - :param content: The generated completion text - :param stop_reason: Reason why generation stopped - :param logprobs: Optional log probabilities for generated tokens - """ - - content: str - stop_reason: StopReason - logprobs: list[TokenLogProbs] | None = None - - -@json_schema_type -class CompletionResponseStreamChunk(MetricResponseMixin): - """A chunk of a streamed completion response. - - :param delta: New content generated since last chunk. This can be one or more tokens. - :param stop_reason: Optional reason why generation stopped, if complete - :param logprobs: Optional log probabilities for generated tokens - """ - - delta: str - stop_reason: StopReason | None = None - logprobs: list[TokenLogProbs] | None = None - - -class SystemMessageBehavior(Enum): - """Config for how to override the default system prompt. - - :cvar append: Appends the provided system message to the default system prompt: - https://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt- - :cvar replace: Replaces the default system prompt with the provided system message. The system message can include the string - '{{function_definitions}}' to indicate where the function definitions should be inserted. - """ - - append = "append" - replace = "replace" - - -@json_schema_type -class ToolConfig(BaseModel): - """Configuration for tool use. - - :param tool_choice: (Optional) Whether tool use is automatic, required, or none. Can also specify a tool name to use a specific tool. Defaults to ToolChoice.auto. - :param tool_prompt_format: (Optional) Instructs the model how to format tool calls. By default, Llama Stack will attempt to use a format that is best adapted to the model. - - `ToolPromptFormat.json`: The tool calls are formatted as a JSON object. - - `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag. - - `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls. - :param system_message_behavior: (Optional) Config for how to override the default system prompt. - - `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt. - - `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string - '{{function_definitions}}' to indicate where the function definitions should be inserted. - """ - - tool_choice: ToolChoice | str | None = Field(default=ToolChoice.auto) - tool_prompt_format: ToolPromptFormat | None = Field(default=None) - system_message_behavior: SystemMessageBehavior | None = Field(default=SystemMessageBehavior.append) - - def model_post_init(self, __context: Any) -> None: - if isinstance(self.tool_choice, str): - try: - self.tool_choice = ToolChoice[self.tool_choice] - except KeyError: - pass - - -# This is an internally used class -@json_schema_type -class ChatCompletionRequest(BaseModel): - model: str - messages: list[Message] - sampling_params: SamplingParams | None = Field(default_factory=SamplingParams) - - tools: list[ToolDefinition] | None = Field(default_factory=lambda: []) - tool_config: ToolConfig | None = Field(default_factory=ToolConfig) - - response_format: ResponseFormat | None = None - stream: bool | None = False - logprobs: LogProbConfig | None = None - - -@json_schema_type -class ChatCompletionResponseStreamChunk(MetricResponseMixin): - """A chunk of a streamed chat completion response. - - :param event: The event containing the new content - """ - - event: ChatCompletionResponseEvent - - -@json_schema_type -class ChatCompletionResponse(MetricResponseMixin): - """Response from a chat completion request. - - :param completion_message: The complete response message - :param logprobs: Optional log probabilities for generated tokens - """ - - completion_message: CompletionMessage - logprobs: list[TokenLogProbs] | None = None - - -@json_schema_type -class EmbeddingsResponse(BaseModel): - """Response containing generated embeddings. - - :param embeddings: List of embedding vectors, one per input content. Each embedding is a list of floats. The dimensionality of the embedding is model-specific; you can check model metadata using /models/{model_id} - """ - - embeddings: list[list[float]] - - -@json_schema_type -class RerankData(BaseModel): - """A single rerank result from a reranking response. - - :param index: The original index of the document in the input list - :param relevance_score: The relevance score from the model output. Values are inverted when applicable so that higher scores indicate greater relevance. - """ - - index: int - relevance_score: float - - -@json_schema_type -class RerankResponse(BaseModel): - """Response from a reranking request. - - :param data: List of rerank result objects, sorted by relevance score (descending) - """ - - data: list[RerankData] - - -@json_schema_type -class OpenAIChatCompletionContentPartTextParam(BaseModel): - """Text content part for OpenAI-compatible chat completion messages. - - :param type: Must be "text" to identify this as text content - :param text: The text content of the message - """ - - type: Literal["text"] = "text" - text: str - - -@json_schema_type -class OpenAIImageURL(BaseModel): - """Image URL specification for OpenAI-compatible chat completion messages. - - :param url: URL of the image to include in the message - :param detail: (Optional) Level of detail for image processing. Can be "low", "high", or "auto" - """ - - url: str - detail: str | None = None - - -@json_schema_type -class OpenAIChatCompletionContentPartImageParam(BaseModel): - """Image content part for OpenAI-compatible chat completion messages. - - :param type: Must be "image_url" to identify this as image content - :param image_url: Image URL specification and processing details - """ - - type: Literal["image_url"] = "image_url" - image_url: OpenAIImageURL - - -@json_schema_type -class OpenAIFileFile(BaseModel): - file_data: str | None = None - file_id: str | None = None - filename: str | None = None - - -@json_schema_type -class OpenAIFile(BaseModel): - type: Literal["file"] = "file" - file: OpenAIFileFile - - -OpenAIChatCompletionContentPartParam = Annotated[ - OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam | OpenAIFile, - Field(discriminator="type"), -] -register_schema(OpenAIChatCompletionContentPartParam, name="OpenAIChatCompletionContentPartParam") - - -OpenAIChatCompletionMessageContent = str | list[OpenAIChatCompletionContentPartParam] - -OpenAIChatCompletionTextOnlyMessageContent = str | list[OpenAIChatCompletionContentPartTextParam] - - -@json_schema_type -class OpenAIUserMessageParam(BaseModel): - """A message from the user in an OpenAI-compatible chat completion request. - - :param role: Must be "user" to identify this as a user message - :param content: The content of the message, which can include text and other media - :param name: (Optional) The name of the user message participant. - """ - - role: Literal["user"] = "user" - content: OpenAIChatCompletionMessageContent - name: str | None = None - - -@json_schema_type -class OpenAISystemMessageParam(BaseModel): - """A system message providing instructions or context to the model. - - :param role: Must be "system" to identify this as a system message - :param content: The content of the "system prompt". If multiple system messages are provided, they are concatenated. The underlying Llama Stack code may also add other system messages (for example, for formatting tool definitions). - :param name: (Optional) The name of the system message participant. - """ - - role: Literal["system"] = "system" - content: OpenAIChatCompletionTextOnlyMessageContent - name: str | None = None - - -@json_schema_type -class OpenAIChatCompletionToolCallFunction(BaseModel): - """Function call details for OpenAI-compatible tool calls. - - :param name: (Optional) Name of the function to call - :param arguments: (Optional) Arguments to pass to the function as a JSON string - """ - - name: str | None = None - arguments: str | None = None - - -@json_schema_type -class OpenAIChatCompletionToolCall(BaseModel): - """Tool call specification for OpenAI-compatible chat completion responses. - - :param index: (Optional) Index of the tool call in the list - :param id: (Optional) Unique identifier for the tool call - :param type: Must be "function" to identify this as a function call - :param function: (Optional) Function call details - """ - - index: int | None = None - id: str | None = None - type: Literal["function"] = "function" - function: OpenAIChatCompletionToolCallFunction | None = None - - -@json_schema_type -class OpenAIAssistantMessageParam(BaseModel): - """A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. - - :param role: Must be "assistant" to identify this as the model's response - :param content: The content of the model's response - :param name: (Optional) The name of the assistant message participant. - :param tool_calls: List of tool calls. Each tool call is an OpenAIChatCompletionToolCall object. - """ - - role: Literal["assistant"] = "assistant" - content: OpenAIChatCompletionTextOnlyMessageContent | None = None - name: str | None = None - tool_calls: list[OpenAIChatCompletionToolCall] | None = None - - -@json_schema_type -class OpenAIToolMessageParam(BaseModel): - """A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. - - :param role: Must be "tool" to identify this as a tool response - :param tool_call_id: Unique identifier for the tool call this response is for - :param content: The response content from the tool - """ - - role: Literal["tool"] = "tool" - tool_call_id: str - content: OpenAIChatCompletionTextOnlyMessageContent - - -@json_schema_type -class OpenAIDeveloperMessageParam(BaseModel): - """A message from the developer in an OpenAI-compatible chat completion request. - - :param role: Must be "developer" to identify this as a developer message - :param content: The content of the developer message - :param name: (Optional) The name of the developer message participant. - """ - - role: Literal["developer"] = "developer" - content: OpenAIChatCompletionTextOnlyMessageContent - name: str | None = None - - -OpenAIMessageParam = Annotated[ - OpenAIUserMessageParam - | OpenAISystemMessageParam - | OpenAIAssistantMessageParam - | OpenAIToolMessageParam - | OpenAIDeveloperMessageParam, - Field(discriminator="role"), -] -register_schema(OpenAIMessageParam, name="OpenAIMessageParam") - - -@json_schema_type -class OpenAIResponseFormatText(BaseModel): - """Text response format for OpenAI-compatible chat completion requests. - - :param type: Must be "text" to indicate plain text response format - """ - - type: Literal["text"] = "text" - - -@json_schema_type -class OpenAIJSONSchema(TypedDict, total=False): - """JSON schema specification for OpenAI-compatible structured response format. - - :param name: Name of the schema - :param description: (Optional) Description of the schema - :param strict: (Optional) Whether to enforce strict adherence to the schema - :param schema: (Optional) The JSON schema definition - """ - - name: str - description: str | None - strict: bool | None - - # Pydantic BaseModel cannot be used with a schema param, since it already - # has one. And, we don't want to alias here because then have to handle - # that alias when converting to OpenAI params. So, to support schema, - # we use a TypedDict. - schema: dict[str, Any] | None - - -@json_schema_type -class OpenAIResponseFormatJSONSchema(BaseModel): - """JSON schema response format for OpenAI-compatible chat completion requests. - - :param type: Must be "json_schema" to indicate structured JSON response format - :param json_schema: The JSON schema specification for the response - """ - - type: Literal["json_schema"] = "json_schema" - json_schema: OpenAIJSONSchema - - -@json_schema_type -class OpenAIResponseFormatJSONObject(BaseModel): - """JSON object response format for OpenAI-compatible chat completion requests. - - :param type: Must be "json_object" to indicate generic JSON object response format - """ - - type: Literal["json_object"] = "json_object" - - -OpenAIResponseFormatParam = Annotated[ - OpenAIResponseFormatText | OpenAIResponseFormatJSONSchema | OpenAIResponseFormatJSONObject, - Field(discriminator="type"), -] -register_schema(OpenAIResponseFormatParam, name="OpenAIResponseFormatParam") - - -@json_schema_type -class OpenAITopLogProb(BaseModel): - """The top log probability for a token from an OpenAI-compatible chat completion response. - - :token: The token - :bytes: (Optional) The bytes for the token - :logprob: The log probability of the token - """ - - token: str - bytes: list[int] | None = None - logprob: float - - -@json_schema_type -class OpenAITokenLogProb(BaseModel): - """The log probability for a token from an OpenAI-compatible chat completion response. - - :token: The token - :bytes: (Optional) The bytes for the token - :logprob: The log probability of the token - :top_logprobs: The top log probabilities for the token - """ - - token: str - bytes: list[int] | None = None - logprob: float - top_logprobs: list[OpenAITopLogProb] - - -@json_schema_type -class OpenAIChoiceLogprobs(BaseModel): - """The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. - - :param content: (Optional) The log probabilities for the tokens in the message - :param refusal: (Optional) The log probabilities for the tokens in the message - """ - - content: list[OpenAITokenLogProb] | None = None - refusal: list[OpenAITokenLogProb] | None = None - - -@json_schema_type -class OpenAIChoiceDelta(BaseModel): - """A delta from an OpenAI-compatible chat completion streaming response. - - :param content: (Optional) The content of the delta - :param refusal: (Optional) The refusal of the delta - :param role: (Optional) The role of the delta - :param tool_calls: (Optional) The tool calls of the delta - :param reasoning_content: (Optional) The reasoning content from the model (non-standard, for o1/o3 models) - """ - - content: str | None = None - refusal: str | None = None - role: str | None = None - tool_calls: list[OpenAIChatCompletionToolCall] | None = None - reasoning_content: str | None = None - - -@json_schema_type -class OpenAIChunkChoice(BaseModel): - """A chunk choice from an OpenAI-compatible chat completion streaming response. - - :param delta: The delta from the chunk - :param finish_reason: The reason the model stopped generating - :param index: The index of the choice - :param logprobs: (Optional) The log probabilities for the tokens in the message - """ - - delta: OpenAIChoiceDelta - finish_reason: str - index: int - logprobs: OpenAIChoiceLogprobs | None = None - - -@json_schema_type -class OpenAIChoice(BaseModel): - """A choice from an OpenAI-compatible chat completion response. - - :param message: The message from the model - :param finish_reason: The reason the model stopped generating - :param index: The index of the choice - :param logprobs: (Optional) The log probabilities for the tokens in the message - """ - - message: OpenAIMessageParam - finish_reason: str - index: int - logprobs: OpenAIChoiceLogprobs | None = None - - -class OpenAIChatCompletionUsageCompletionTokensDetails(BaseModel): - """Token details for output tokens in OpenAI chat completion usage. - - :param reasoning_tokens: Number of tokens used for reasoning (o1/o3 models) - """ - - reasoning_tokens: int | None = None - - -class OpenAIChatCompletionUsagePromptTokensDetails(BaseModel): - """Token details for prompt tokens in OpenAI chat completion usage. - - :param cached_tokens: Number of tokens retrieved from cache - """ - - cached_tokens: int | None = None - - -@json_schema_type -class OpenAIChatCompletionUsage(BaseModel): - """Usage information for OpenAI chat completion. - - :param prompt_tokens: Number of tokens in the prompt - :param completion_tokens: Number of tokens in the completion - :param total_tokens: Total tokens used (prompt + completion) - :param input_tokens_details: Detailed breakdown of input token usage - :param output_tokens_details: Detailed breakdown of output token usage - """ - - prompt_tokens: int - completion_tokens: int - total_tokens: int - prompt_tokens_details: OpenAIChatCompletionUsagePromptTokensDetails | None = None - completion_tokens_details: OpenAIChatCompletionUsageCompletionTokensDetails | None = None - - -@json_schema_type -class OpenAIChatCompletion(BaseModel): - """Response from an OpenAI-compatible chat completion request. - - :param id: The ID of the chat completion - :param choices: List of choices - :param object: The object type, which will be "chat.completion" - :param created: The Unix timestamp in seconds when the chat completion was created - :param model: The model that was used to generate the chat completion - :param usage: Token usage information for the completion - """ - - id: str - choices: list[OpenAIChoice] - object: Literal["chat.completion"] = "chat.completion" - created: int - model: str - usage: OpenAIChatCompletionUsage | None = None - - -@json_schema_type -class OpenAIChatCompletionChunk(BaseModel): - """Chunk from a streaming response to an OpenAI-compatible chat completion request. - - :param id: The ID of the chat completion - :param choices: List of choices - :param object: The object type, which will be "chat.completion.chunk" - :param created: The Unix timestamp in seconds when the chat completion was created - :param model: The model that was used to generate the chat completion - :param usage: Token usage information (typically included in final chunk with stream_options) - """ - - id: str - choices: list[OpenAIChunkChoice] - object: Literal["chat.completion.chunk"] = "chat.completion.chunk" - created: int - model: str - usage: OpenAIChatCompletionUsage | None = None - - -@json_schema_type -class OpenAICompletionLogprobs(BaseModel): - """The log probabilities for the tokens in the message from an OpenAI-compatible completion response. - - :text_offset: (Optional) The offset of the token in the text - :token_logprobs: (Optional) The log probabilities for the tokens - :tokens: (Optional) The tokens - :top_logprobs: (Optional) The top log probabilities for the tokens - """ - - text_offset: list[int] | None = None - token_logprobs: list[float] | None = None - tokens: list[str] | None = None - top_logprobs: list[dict[str, float]] | None = None - - -@json_schema_type -class OpenAICompletionChoice(BaseModel): - """A choice from an OpenAI-compatible completion response. - - :finish_reason: The reason the model stopped generating - :text: The text of the choice - :index: The index of the choice - :logprobs: (Optional) The log probabilities for the tokens in the choice - """ - - finish_reason: str - text: str - index: int - logprobs: OpenAIChoiceLogprobs | None = None - - -@json_schema_type -class OpenAICompletion(BaseModel): - """Response from an OpenAI-compatible completion request. - - :id: The ID of the completion - :choices: List of choices - :created: The Unix timestamp in seconds when the completion was created - :model: The model that was used to generate the completion - :object: The object type, which will be "text_completion" - """ - - id: str - choices: list[OpenAICompletionChoice] - created: int - model: str - object: Literal["text_completion"] = "text_completion" - - -@json_schema_type -class OpenAIEmbeddingData(BaseModel): - """A single embedding data object from an OpenAI-compatible embeddings response. - - :param object: The object type, which will be "embedding" - :param embedding: The embedding vector as a list of floats (when encoding_format="float") or as a base64-encoded string (when encoding_format="base64") - :param index: The index of the embedding in the input list - """ - - object: Literal["embedding"] = "embedding" - # TODO: consider dropping str and using openai.types.embeddings.Embedding instead of OpenAIEmbeddingData - embedding: list[float] | str - index: int - - -@json_schema_type -class OpenAIEmbeddingUsage(BaseModel): - """Usage information for an OpenAI-compatible embeddings response. - - :param prompt_tokens: The number of tokens in the input - :param total_tokens: The total number of tokens used - """ - - prompt_tokens: int - total_tokens: int - - -@json_schema_type -class OpenAIEmbeddingsResponse(BaseModel): - """Response from an OpenAI-compatible embeddings request. - - :param object: The object type, which will be "list" - :param data: List of embedding data objects - :param model: The model that was used to generate the embeddings - :param usage: Usage information - """ - - object: Literal["list"] = "list" - data: list[OpenAIEmbeddingData] - model: str - usage: OpenAIEmbeddingUsage - - -class ModelStore(Protocol): - async def get_model(self, identifier: str) -> Model: ... - - -class TextTruncation(Enum): - """Config for how to truncate text for embedding when text is longer than the model's max sequence length. Start and End semantics depend on whether the language is left-to-right or right-to-left. - - :cvar none: No truncation (default). If the text is longer than the model's max sequence length, you will get an error. - :cvar start: Truncate from the start - :cvar end: Truncate from the end - """ - - none = "none" - start = "start" - end = "end" - - -class EmbeddingTaskType(Enum): - """How is the embedding being used? This is only supported by asymmetric embedding models. - - :cvar query: Used for a query for semantic search. - :cvar document: Used at indexing time when ingesting documents. - """ - - query = "query" - document = "document" - - -class OpenAICompletionWithInputMessages(OpenAIChatCompletion): - input_messages: list[OpenAIMessageParam] - - -@json_schema_type -class ListOpenAIChatCompletionResponse(BaseModel): - """Response from listing OpenAI-compatible chat completions. - - :param data: List of chat completion objects with their input messages - :param has_more: Whether there are more completions available beyond this list - :param first_id: ID of the first completion in this list - :param last_id: ID of the last completion in this list - :param object: Must be "list" to identify this as a list response - """ - - data: list[OpenAICompletionWithInputMessages] - has_more: bool - first_id: str - last_id: str - object: Literal["list"] = "list" - - -# extra_body can be accessed via .model_extra -@json_schema_type -class OpenAICompletionRequestWithExtraBody(BaseModel, extra="allow"): - """Request parameters for OpenAI-compatible completion endpoint. - - :param model: The identifier of the model to use. The model must be registered with Llama Stack and available via the /models endpoint. - :param prompt: The prompt to generate a completion for. - :param best_of: (Optional) The number of completions to generate. - :param echo: (Optional) Whether to echo the prompt. - :param frequency_penalty: (Optional) The penalty for repeated tokens. - :param logit_bias: (Optional) The logit bias to use. - :param logprobs: (Optional) The log probabilities to use. - :param max_tokens: (Optional) The maximum number of tokens to generate. - :param n: (Optional) The number of completions to generate. - :param presence_penalty: (Optional) The penalty for repeated tokens. - :param seed: (Optional) The seed to use. - :param stop: (Optional) The stop tokens to use. - :param stream: (Optional) Whether to stream the response. - :param stream_options: (Optional) The stream options to use. - :param temperature: (Optional) The temperature to use. - :param top_p: (Optional) The top p to use. - :param user: (Optional) The user to use. - :param suffix: (Optional) The suffix that should be appended to the completion. - """ - - # Standard OpenAI completion parameters - model: str - prompt: str | list[str] | list[int] | list[list[int]] - best_of: int | None = None - echo: bool | None = None - frequency_penalty: float | None = None - logit_bias: dict[str, float] | None = None - logprobs: bool | None = None - max_tokens: int | None = None - n: int | None = None - presence_penalty: float | None = None - seed: int | None = None - stop: str | list[str] | None = None - stream: bool | None = None - stream_options: dict[str, Any] | None = None - temperature: float | None = None - top_p: float | None = None - user: str | None = None - suffix: str | None = None - - -# extra_body can be accessed via .model_extra -@json_schema_type -class OpenAIChatCompletionRequestWithExtraBody(BaseModel, extra="allow"): - """Request parameters for OpenAI-compatible chat completion endpoint. - - :param model: The identifier of the model to use. The model must be registered with Llama Stack and available via the /models endpoint. - :param messages: List of messages in the conversation. - :param frequency_penalty: (Optional) The penalty for repeated tokens. - :param function_call: (Optional) The function call to use. - :param functions: (Optional) List of functions to use. - :param logit_bias: (Optional) The logit bias to use. - :param logprobs: (Optional) The log probabilities to use. - :param max_completion_tokens: (Optional) The maximum number of tokens to generate. - :param max_tokens: (Optional) The maximum number of tokens to generate. - :param n: (Optional) The number of completions to generate. - :param parallel_tool_calls: (Optional) Whether to parallelize tool calls. - :param presence_penalty: (Optional) The penalty for repeated tokens. - :param response_format: (Optional) The response format to use. - :param seed: (Optional) The seed to use. - :param stop: (Optional) The stop tokens to use. - :param stream: (Optional) Whether to stream the response. - :param stream_options: (Optional) The stream options to use. - :param temperature: (Optional) The temperature to use. - :param tool_choice: (Optional) The tool choice to use. - :param tools: (Optional) The tools to use. - :param top_logprobs: (Optional) The top log probabilities to use. - :param top_p: (Optional) The top p to use. - :param user: (Optional) The user to use. - """ - - # Standard OpenAI chat completion parameters - model: str - messages: Annotated[list[OpenAIMessageParam], Field(..., min_length=1)] - frequency_penalty: float | None = None - function_call: str | dict[str, Any] | None = None - functions: list[dict[str, Any]] | None = None - logit_bias: dict[str, float] | None = None - logprobs: bool | None = None - max_completion_tokens: int | None = None - max_tokens: int | None = None - n: int | None = None - parallel_tool_calls: bool | None = None - presence_penalty: float | None = None - response_format: OpenAIResponseFormatParam | None = None - seed: int | None = None - stop: str | list[str] | None = None - stream: bool | None = None - stream_options: dict[str, Any] | None = None - temperature: float | None = None - tool_choice: str | dict[str, Any] | None = None - tools: list[dict[str, Any]] | None = None - top_logprobs: int | None = None - top_p: float | None = None - user: str | None = None - - -# extra_body can be accessed via .model_extra -@json_schema_type -class OpenAIEmbeddingsRequestWithExtraBody(BaseModel, extra="allow"): - """Request parameters for OpenAI-compatible embeddings endpoint. - - :param model: The identifier of the model to use. The model must be an embedding model registered with Llama Stack and available via the /models endpoint. - :param input: Input text to embed, encoded as a string or array of strings. To embed multiple inputs in a single request, pass an array of strings. - :param encoding_format: (Optional) The format to return the embeddings in. Can be either "float" or "base64". Defaults to "float". - :param dimensions: (Optional) The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models. - :param user: (Optional) A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. - """ - - model: str - input: str | list[str] - encoding_format: str | None = "float" - dimensions: int | None = None - user: str | None = None - - -@runtime_checkable -@trace_protocol -class InferenceProvider(Protocol): - """ - This protocol defines the interface that should be implemented by all inference providers. - """ - - API_NAMESPACE: str = "Inference" - - model_store: ModelStore | None = None - - @webmethod(route="/inference/rerank", method="POST", level=LLAMA_STACK_API_V1ALPHA) - async def rerank( - self, - model: str, - query: str | OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam, - items: list[str | OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam], - max_num_results: int | None = None, - ) -> RerankResponse: - """Rerank a list of documents based on their relevance to a query. - - :param model: The identifier of the reranking model to use. - :param query: The search query to rank items against. Can be a string, text content part, or image content part. The input must not exceed the model's max input token length. - :param items: List of items to rerank. Each item can be a string, text content part, or image content part. Each input must not exceed the model's max input token length. - :param max_num_results: (Optional) Maximum number of results to return. Default: returns all. - :returns: RerankResponse with indices sorted by relevance score (descending). - """ - raise NotImplementedError("Reranking is not implemented") - return # this is so mypy's safe-super rule will consider the method concrete - - @webmethod(route="/completions", method="POST", level=LLAMA_STACK_API_V1) - async def openai_completion( - self, - params: Annotated[OpenAICompletionRequestWithExtraBody, Body(...)], - ) -> OpenAICompletion: - """Create completion. - - Generate an OpenAI-compatible completion for the given prompt using the specified model. - :returns: An OpenAICompletion. - """ - ... - - @webmethod(route="/chat/completions", method="POST", level=LLAMA_STACK_API_V1) - async def openai_chat_completion( - self, - params: Annotated[OpenAIChatCompletionRequestWithExtraBody, Body(...)], - ) -> OpenAIChatCompletion | AsyncIterator[OpenAIChatCompletionChunk]: - """Create chat completions. - - Generate an OpenAI-compatible chat completion for the given messages using the specified model. - :returns: An OpenAIChatCompletion. - """ - ... - - @webmethod(route="/embeddings", method="POST", level=LLAMA_STACK_API_V1) - async def openai_embeddings( - self, - params: Annotated[OpenAIEmbeddingsRequestWithExtraBody, Body(...)], - ) -> OpenAIEmbeddingsResponse: - """Create embeddings. - - Generate OpenAI-compatible embeddings for the given input using the specified model. - :returns: An OpenAIEmbeddingsResponse containing the embeddings. - """ - ... - - -class Inference(InferenceProvider): - """Inference - - Llama Stack Inference API for generating completions, chat completions, and embeddings. - - This API provides the raw interface to the underlying models. Three kinds of models are supported: - - LLM models: these models generate "raw" and "chat" (conversational) completions. - - Embedding models: these models generate embeddings to be used for semantic search. - - Rerank models: these models reorder the documents based on their relevance to a query. - """ - - @webmethod(route="/chat/completions", method="GET", level=LLAMA_STACK_API_V1) - async def list_chat_completions( - self, - after: str | None = None, - limit: int | None = 20, - model: str | None = None, - order: Order | None = Order.desc, - ) -> ListOpenAIChatCompletionResponse: - """List chat completions. - - :param after: The ID of the last chat completion to return. - :param limit: The maximum number of chat completions to return. - :param model: The model to filter by. - :param order: The order to sort the chat completions by: "asc" or "desc". Defaults to "desc". - :returns: A ListOpenAIChatCompletionResponse. - """ - raise NotImplementedError("List chat completions is not implemented") - - @webmethod(route="/chat/completions/{completion_id}", method="GET", level=LLAMA_STACK_API_V1) - async def get_chat_completion(self, completion_id: str) -> OpenAICompletionWithInputMessages: - """Get chat completion. - - Describe a chat completion by its ID. - - :param completion_id: ID of the chat completion. - :returns: A OpenAICompletionWithInputMessages. - """ - raise NotImplementedError("Get chat completion is not implemented") diff --git a/src/llama_stack/apis/inference/inference_service.py b/src/llama_stack/apis/inference/inference_service.py new file mode 100644 index 000000000..65b6af33b --- /dev/null +++ b/src/llama_stack/apis/inference/inference_service.py @@ -0,0 +1,93 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from collections.abc import AsyncIterator +from typing import Annotated, Protocol, runtime_checkable + +from fastapi import Body + +from llama_stack.apis.common.responses import Order +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ( + ListOpenAIChatCompletionResponse, + ModelStore, + OpenAIChatCompletion, + OpenAIChatCompletionChunk, + OpenAIChatCompletionContentPartImageParam, + OpenAIChatCompletionContentPartTextParam, + OpenAIChatCompletionRequestWithExtraBody, + OpenAICompletion, + OpenAICompletionRequestWithExtraBody, + OpenAICompletionWithInputMessages, + OpenAIEmbeddingsRequestWithExtraBody, + OpenAIEmbeddingsResponse, + RerankResponse, +) + + +@runtime_checkable +@trace_protocol +class InferenceService(Protocol): + """ + This protocol defines the interface that should be implemented by all inference providers. + + Llama Stack Inference API for generating completions, chat completions, and embeddings. + + This API provides the raw interface to the underlying models. Three kinds of models are supported: + - LLM models: these models generate "raw" and "chat" (conversational) completions. + - Embedding models: these models generate embeddings to be used for semantic search. + - Rerank models: these models reorder the documents based on their relevance to a query. + """ + + API_NAMESPACE: str = "Inference" + + model_store: ModelStore | None = None + + async def rerank( + self, + model: str, + query: str | OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam, + items: list[str | OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam], + max_num_results: int | None = None, + ) -> RerankResponse: + """Rerank a list of documents based on their relevance to a query.""" + ... + + async def openai_completion( + self, + params: Annotated[OpenAICompletionRequestWithExtraBody, Body(...)], + ) -> OpenAICompletion: + """Create completion.""" + ... + + async def openai_chat_completion( + self, + params: Annotated[OpenAIChatCompletionRequestWithExtraBody, Body(...)], + ) -> OpenAIChatCompletion | AsyncIterator[OpenAIChatCompletionChunk]: + """Create chat completions.""" + ... + + async def openai_embeddings( + self, + params: Annotated[OpenAIEmbeddingsRequestWithExtraBody, Body(...)], + ) -> OpenAIEmbeddingsResponse: + """Create embeddings.""" + ... + + async def list_chat_completions( + self, + after: str | None = None, + limit: int | None = 20, + model: str | None = None, + order: Order | None = Order.desc, + ) -> ListOpenAIChatCompletionResponse: + """List chat completions.""" + ... + + async def get_chat_completion(self, completion_id: str) -> OpenAICompletionWithInputMessages: + """Get chat completion.""" + ... diff --git a/src/llama_stack/apis/inference/models.py b/src/llama_stack/apis/inference/models.py new file mode 100644 index 000000000..454721197 --- /dev/null +++ b/src/llama_stack/apis/inference/models.py @@ -0,0 +1,818 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import Enum, StrEnum +from typing import Annotated, Any, Literal, Protocol + +from pydantic import BaseModel, Field, field_validator +from typing_extensions import TypedDict + +from llama_stack.apis.common.content_types import ContentDelta, InterleavedContent +from llama_stack.apis.models import Model +from llama_stack.core.telemetry.telemetry import MetricResponseMixin +from llama_stack.models.llama.datatypes import ( + BuiltinTool, + StopReason, + ToolCall, + ToolDefinition, + ToolPromptFormat, +) +from llama_stack.schema_utils import json_schema_type, register_schema + +register_schema(ToolCall) +register_schema(ToolDefinition) + + +@json_schema_type +class GreedySamplingStrategy(BaseModel): + """Greedy sampling strategy that selects the highest probability token at each step.""" + + type: Literal["greedy"] = "greedy" + + +@json_schema_type +class TopPSamplingStrategy(BaseModel): + """Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p.""" + + type: Literal["top_p"] = "top_p" + temperature: float | None = Field(..., gt=0.0) + top_p: float | None = 0.95 + + +@json_schema_type +class TopKSamplingStrategy(BaseModel): + """Top-k sampling strategy that restricts sampling to the k most likely tokens.""" + + type: Literal["top_k"] = "top_k" + top_k: int = Field(..., ge=1) + + +SamplingStrategy = Annotated[ + GreedySamplingStrategy | TopPSamplingStrategy | TopKSamplingStrategy, + Field(discriminator="type"), +] +register_schema(SamplingStrategy, name="SamplingStrategy") + + +@json_schema_type +class SamplingParams(BaseModel): + """Sampling parameters.""" + + strategy: SamplingStrategy = Field(default_factory=GreedySamplingStrategy) + + max_tokens: int | None = None + repetition_penalty: float | None = 1.0 + stop: list[str] | None = None + + +class LogProbConfig(BaseModel): + """Configuration for log probability generation.""" + + top_k: int | None = 0 + + +class QuantizationType(Enum): + """Type of model quantization to run inference with.""" + + bf16 = "bf16" + fp8_mixed = "fp8_mixed" + int4_mixed = "int4_mixed" + + +@json_schema_type +class Fp8QuantizationConfig(BaseModel): + """Configuration for 8-bit floating point quantization.""" + + type: Literal["fp8_mixed"] = "fp8_mixed" + + +@json_schema_type +class Bf16QuantizationConfig(BaseModel): + """Configuration for BFloat16 precision (typically no quantization).""" + + type: Literal["bf16"] = "bf16" + + +@json_schema_type +class Int4QuantizationConfig(BaseModel): + """Configuration for 4-bit integer quantization.""" + + type: Literal["int4_mixed"] = "int4_mixed" + scheme: str | None = "int4_weight_int8_dynamic_activation" + + +QuantizationConfig = Annotated[ + Bf16QuantizationConfig | Fp8QuantizationConfig | Int4QuantizationConfig, + Field(discriminator="type"), +] + + +@json_schema_type +class UserMessage(BaseModel): + """A message from the user in a chat conversation.""" + + role: Literal["user"] = "user" + content: InterleavedContent + context: InterleavedContent | None = None + + +@json_schema_type +class SystemMessage(BaseModel): + """A system message providing instructions or context to the model.""" + + role: Literal["system"] = "system" + content: InterleavedContent + + +@json_schema_type +class ToolResponseMessage(BaseModel): + """A message representing the result of a tool invocation.""" + + role: Literal["tool"] = "tool" + call_id: str + content: InterleavedContent + + +@json_schema_type +class CompletionMessage(BaseModel): + """A message containing the model's (assistant) response in a chat conversation. + + - `StopReason.end_of_turn`: The model finished generating the entire response. + - `StopReason.end_of_message`: The model finished generating but generated a partial response -- usually, a tool call. The user may call the tool and continue the conversation with the tool's response. + - `StopReason.out_of_tokens`: The model ran out of token budget. + """ + + role: Literal["assistant"] = "assistant" + content: InterleavedContent + stop_reason: StopReason + tool_calls: list[ToolCall] | None = Field(default_factory=lambda: []) + + +Message = Annotated[ + UserMessage | SystemMessage | ToolResponseMessage | CompletionMessage, + Field(discriminator="role"), +] +register_schema(Message, name="Message") + + +@json_schema_type +class ToolResponse(BaseModel): + """Response from a tool invocation.""" + + call_id: str + tool_name: BuiltinTool | str + content: InterleavedContent + metadata: dict[str, Any] | None = None + + @field_validator("tool_name", mode="before") + @classmethod + def validate_field(cls, v): + if isinstance(v, str): + try: + return BuiltinTool(v) + except ValueError: + return v + return v + + +class ToolChoice(Enum): + """Whether tool use is required or automatic. This is a hint to the model which may not be followed. It depends on the Instruction Following capabilities of the model.""" + + auto = "auto" + required = "required" + none = "none" + + +@json_schema_type +class TokenLogProbs(BaseModel): + """Log probabilities for generated tokens.""" + + logprobs_by_token: dict[str, float] + + +class ChatCompletionResponseEventType(Enum): + """Types of events that can occur during chat completion.""" + + start = "start" + complete = "complete" + progress = "progress" + + +@json_schema_type +class ChatCompletionResponseEvent(BaseModel): + """An event during chat completion generation.""" + + event_type: ChatCompletionResponseEventType + delta: ContentDelta + logprobs: list[TokenLogProbs] | None = None + stop_reason: StopReason | None = None + + +class ResponseFormatType(StrEnum): + """Types of formats for structured (guided) decoding.""" + + json_schema = "json_schema" + grammar = "grammar" + + +@json_schema_type +class JsonSchemaResponseFormat(BaseModel): + """Configuration for JSON schema-guided response generation.""" + + type: Literal[ResponseFormatType.json_schema] = ResponseFormatType.json_schema + json_schema: dict[str, Any] + + +@json_schema_type +class GrammarResponseFormat(BaseModel): + """Configuration for grammar-guided response generation.""" + + type: Literal[ResponseFormatType.grammar] = ResponseFormatType.grammar + bnf: dict[str, Any] + + +ResponseFormat = Annotated[ + JsonSchemaResponseFormat | GrammarResponseFormat, + Field(discriminator="type"), +] +register_schema(ResponseFormat, name="ResponseFormat") + + +# This is an internally used class +class CompletionRequest(BaseModel): + content: InterleavedContent + sampling_params: SamplingParams | None = Field(default_factory=SamplingParams) + response_format: ResponseFormat | None = None + stream: bool | None = False + logprobs: LogProbConfig | None = None + + +@json_schema_type +class CompletionResponse(MetricResponseMixin): + """Response from a completion request.""" + + content: str + stop_reason: StopReason + logprobs: list[TokenLogProbs] | None = None + + +@json_schema_type +class CompletionResponseStreamChunk(MetricResponseMixin): + """A chunk of a streamed completion response.""" + + delta: str + stop_reason: StopReason | None = None + logprobs: list[TokenLogProbs] | None = None + + +class SystemMessageBehavior(Enum): + """Config for how to override the default system prompt. + + https://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/#-function-definitions-in-the-system-prompt- + '{{function_definitions}}' to indicate where the function definitions should be inserted. + """ + + append = "append" + replace = "replace" + + +@json_schema_type +class ToolConfig(BaseModel): + """Configuration for tool use. + + - `ToolPromptFormat.json`: The tool calls are formatted as a JSON object. + - `ToolPromptFormat.function_tag`: The tool calls are enclosed in a tag. + - `ToolPromptFormat.python_list`: The tool calls are output as Python syntax -- a list of function calls. + - `SystemMessageBehavior.append`: Appends the provided system message to the default system prompt. + - `SystemMessageBehavior.replace`: Replaces the default system prompt with the provided system message. The system message can include the string + '{{function_definitions}}' to indicate where the function definitions should be inserted. + """ + + tool_choice: ToolChoice | str | None = Field(default=ToolChoice.auto) + tool_prompt_format: ToolPromptFormat | None = Field(default=None) + system_message_behavior: SystemMessageBehavior | None = Field(default=SystemMessageBehavior.append) + + def model_post_init(self, __context: Any) -> None: + if isinstance(self.tool_choice, str): + try: + self.tool_choice = ToolChoice[self.tool_choice] + except KeyError: + pass + + +# This is an internally used class +@json_schema_type +class ChatCompletionRequest(BaseModel): + messages: list[Message] + sampling_params: SamplingParams | None = Field(default_factory=SamplingParams) + + tools: list[ToolDefinition] | None = Field(default_factory=lambda: []) + tool_config: ToolConfig | None = Field(default_factory=ToolConfig) + + response_format: ResponseFormat | None = None + stream: bool | None = False + logprobs: LogProbConfig | None = None + + +@json_schema_type +class ChatCompletionResponseStreamChunk(MetricResponseMixin): + """A chunk of a streamed chat completion response.""" + + event: ChatCompletionResponseEvent + + +@json_schema_type +class ChatCompletionResponse(MetricResponseMixin): + """Response from a chat completion request.""" + + completion_message: CompletionMessage + logprobs: list[TokenLogProbs] | None = None + + +@json_schema_type +class EmbeddingsResponse(BaseModel): + """Response containing generated embeddings.""" + + embeddings: list[list[float]] + + +@json_schema_type +class RerankData(BaseModel): + """A single rerank result from a reranking response.""" + + index: int + relevance_score: float + + +@json_schema_type +class RerankResponse(BaseModel): + """Response from a reranking request.""" + + data: list[RerankData] + + +@json_schema_type +class OpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + + type: Literal["text"] = "text" + text: str + + +@json_schema_type +class OpenAIImageURL(BaseModel): + """Image URL specification for OpenAI-compatible chat completion messages.""" + + url: str + detail: str | None = None + + +@json_schema_type +class OpenAIChatCompletionContentPartImageParam(BaseModel): + """Image content part for OpenAI-compatible chat completion messages.""" + + type: Literal["image_url"] = "image_url" + image_url: OpenAIImageURL + + +@json_schema_type +class OpenAIFileFile(BaseModel): + file_id: str | None = None + filename: str | None = None + + +@json_schema_type +class OpenAIFile(BaseModel): + type: Literal["file"] = "file" + file: OpenAIFileFile + + +OpenAIChatCompletionContentPartParam = Annotated[ + OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam | OpenAIFile, + Field(discriminator="type"), +] +register_schema(OpenAIChatCompletionContentPartParam, name="OpenAIChatCompletionContentPartParam") + + +OpenAIChatCompletionMessageContent = str | list[OpenAIChatCompletionContentPartParam] + +OpenAIChatCompletionTextOnlyMessageContent = str | list[OpenAIChatCompletionContentPartTextParam] + + +@json_schema_type +class OpenAIUserMessageParam(BaseModel): + """A message from the user in an OpenAI-compatible chat completion request.""" + + role: Literal["user"] = "user" + content: OpenAIChatCompletionMessageContent + name: str | None = None + + +@json_schema_type +class OpenAISystemMessageParam(BaseModel): + """A system message providing instructions or context to the model.""" + + role: Literal["system"] = "system" + content: OpenAIChatCompletionTextOnlyMessageContent + name: str | None = None + + +@json_schema_type +class OpenAIChatCompletionToolCallFunction(BaseModel): + """Function call details for OpenAI-compatible tool calls.""" + + name: str | None = None + arguments: str | None = None + + +@json_schema_type +class OpenAIChatCompletionToolCall(BaseModel): + """Tool call specification for OpenAI-compatible chat completion responses.""" + + index: int | None = None + id: str | None = None + type: Literal["function"] = "function" + function: OpenAIChatCompletionToolCallFunction | None = None + + +@json_schema_type +class OpenAIAssistantMessageParam(BaseModel): + """A message containing the model's (assistant) response in an OpenAI-compatible chat completion request.""" + + role: Literal["assistant"] = "assistant" + content: OpenAIChatCompletionTextOnlyMessageContent | None = None + name: str | None = None + tool_calls: list[OpenAIChatCompletionToolCall] | None = None + + +@json_schema_type +class OpenAIToolMessageParam(BaseModel): + """A message representing the result of a tool invocation in an OpenAI-compatible chat completion request.""" + + role: Literal["tool"] = "tool" + tool_call_id: str + content: OpenAIChatCompletionTextOnlyMessageContent + + +@json_schema_type +class OpenAIDeveloperMessageParam(BaseModel): + """A message from the developer in an OpenAI-compatible chat completion request.""" + + role: Literal["developer"] = "developer" + content: OpenAIChatCompletionTextOnlyMessageContent + name: str | None = None + + +OpenAIMessageParam = Annotated[ + OpenAIUserMessageParam + | OpenAISystemMessageParam + | OpenAIAssistantMessageParam + | OpenAIToolMessageParam + | OpenAIDeveloperMessageParam, + Field(discriminator="role"), +] +register_schema(OpenAIMessageParam, name="OpenAIMessageParam") + + +@json_schema_type +class OpenAIResponseFormatText(BaseModel): + """Text response format for OpenAI-compatible chat completion requests.""" + + type: Literal["text"] = "text" + + +@json_schema_type +class OpenAIJSONSchema(TypedDict, total=False): + """JSON schema specification for OpenAI-compatible structured response format.""" + + name: str + description: str | None + strict: bool | None + + # Pydantic BaseModel cannot be used with a schema param, since it already + # has one. And, we don't want to alias here because then have to handle + # that alias when converting to OpenAI params. So, to support schema, + # we use a TypedDict. + schema: dict[str, Any] | None + + +@json_schema_type +class OpenAIResponseFormatJSONSchema(BaseModel): + """JSON schema response format for OpenAI-compatible chat completion requests.""" + + type: Literal["json_schema"] = "json_schema" + json_schema: OpenAIJSONSchema + + +@json_schema_type +class OpenAIResponseFormatJSONObject(BaseModel): + """JSON object response format for OpenAI-compatible chat completion requests.""" + + type: Literal["json_object"] = "json_object" + + +OpenAIResponseFormatParam = Annotated[ + OpenAIResponseFormatText | OpenAIResponseFormatJSONSchema | OpenAIResponseFormatJSONObject, + Field(discriminator="type"), +] +register_schema(OpenAIResponseFormatParam, name="OpenAIResponseFormatParam") + + +@json_schema_type +class OpenAITopLogProb(BaseModel): + """The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + bytes: list[int] | None = None + logprob: float + + +@json_schema_type +class OpenAITokenLogProb(BaseModel): + """The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + bytes: list[int] | None = None + logprob: float + top_logprobs: list[OpenAITopLogProb] + + +@json_schema_type +class OpenAIChoiceLogprobs(BaseModel): + """The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response.""" + + content: list[OpenAITokenLogProb] | None = None + refusal: list[OpenAITokenLogProb] | None = None + + +@json_schema_type +class OpenAIChoiceDelta(BaseModel): + """A delta from an OpenAI-compatible chat completion streaming response.""" + + content: str | None = None + refusal: str | None = None + role: str | None = None + tool_calls: list[OpenAIChatCompletionToolCall] | None = None + reasoning_content: str | None = None + + +@json_schema_type +class OpenAIChunkChoice(BaseModel): + """A chunk choice from an OpenAI-compatible chat completion streaming response.""" + + delta: OpenAIChoiceDelta + finish_reason: str + index: int + logprobs: OpenAIChoiceLogprobs | None = None + + +@json_schema_type +class OpenAIChoice(BaseModel): + """A choice from an OpenAI-compatible chat completion response.""" + + message: OpenAIMessageParam + finish_reason: str + index: int + logprobs: OpenAIChoiceLogprobs | None = None + + +class OpenAIChatCompletionUsageCompletionTokensDetails(BaseModel): + """Token details for output tokens in OpenAI chat completion usage.""" + + reasoning_tokens: int | None = None + + +class OpenAIChatCompletionUsagePromptTokensDetails(BaseModel): + """Token details for prompt tokens in OpenAI chat completion usage.""" + + cached_tokens: int | None = None + + +@json_schema_type +class OpenAIChatCompletionUsage(BaseModel): + """Usage information for OpenAI chat completion.""" + + prompt_tokens: int + completion_tokens: int + total_tokens: int + prompt_tokens_details: OpenAIChatCompletionUsagePromptTokensDetails | None = None + completion_tokens_details: OpenAIChatCompletionUsageCompletionTokensDetails | None = None + + +@json_schema_type +class OpenAIChatCompletion(BaseModel): + """Response from an OpenAI-compatible chat completion request.""" + + id: str + choices: list[OpenAIChoice] + object: Literal["chat.completion"] = "chat.completion" + created: int + model: str + usage: OpenAIChatCompletionUsage | None = None + + +@json_schema_type +class OpenAIChatCompletionChunk(BaseModel): + """Chunk from a streaming response to an OpenAI-compatible chat completion request.""" + + id: str + choices: list[OpenAIChunkChoice] + object: Literal["chat.completion.chunk"] = "chat.completion.chunk" + created: int + model: str + usage: OpenAIChatCompletionUsage | None = None + + +@json_schema_type +class OpenAICompletionLogprobs(BaseModel): + """The log probabilities for the tokens in the message from an OpenAI-compatible completion response. + + :text_offset: (Optional) The offset of the token in the text + :token_logprobs: (Optional) The log probabilities for the tokens + :tokens: (Optional) The tokens + :top_logprobs: (Optional) The top log probabilities for the tokens + """ + + text_offset: list[int] | None = None + token_logprobs: list[float] | None = None + tokens: list[str] | None = None + top_logprobs: list[dict[str, float]] | None = None + + +@json_schema_type +class OpenAICompletionChoice(BaseModel): + """A choice from an OpenAI-compatible completion response. + + :finish_reason: The reason the model stopped generating + :text: The text of the choice + :index: The index of the choice + :logprobs: (Optional) The log probabilities for the tokens in the choice + """ + + finish_reason: str + text: str + index: int + logprobs: OpenAIChoiceLogprobs | None = None + + +@json_schema_type +class OpenAICompletion(BaseModel): + """Response from an OpenAI-compatible completion request. + + :id: The ID of the completion + :choices: List of choices + :created: The Unix timestamp in seconds when the completion was created + :model: The model that was used to generate the completion + :object: The object type, which will be "text_completion" + """ + + id: str + choices: list[OpenAICompletionChoice] + created: int + model: str + object: Literal["text_completion"] = "text_completion" + + +@json_schema_type +class OpenAIEmbeddingData(BaseModel): + """A single embedding data object from an OpenAI-compatible embeddings response.""" + + object: Literal["embedding"] = "embedding" + # TODO: consider dropping str and using openai.types.embeddings.Embedding instead of OpenAIEmbeddingData + embedding: list[float] | str + index: int + + +@json_schema_type +class OpenAIEmbeddingUsage(BaseModel): + """Usage information for an OpenAI-compatible embeddings response.""" + + prompt_tokens: int + total_tokens: int + + +@json_schema_type +class OpenAIEmbeddingsResponse(BaseModel): + """Response from an OpenAI-compatible embeddings request.""" + + object: Literal["list"] = "list" + data: list[OpenAIEmbeddingData] + model: str + usage: OpenAIEmbeddingUsage + + +class ModelStore(Protocol): + async def get_model(self, identifier: str) -> Model: ... + + +class TextTruncation(Enum): + """Config for how to truncate text for embedding when text is longer than the model's max sequence length. Start and End semantics depend on whether the language is left-to-right or right-to-left.""" + + none = "none" + start = "start" + end = "end" + + +class EmbeddingTaskType(Enum): + """How is the embedding being used? This is only supported by asymmetric embedding models.""" + + query = "query" + document = "document" + + +class OpenAICompletionWithInputMessages(OpenAIChatCompletion): + input_messages: list[OpenAIMessageParam] + + +@json_schema_type +class ListOpenAIChatCompletionResponse(BaseModel): + """Response from listing OpenAI-compatible chat completions.""" + + data: list[OpenAICompletionWithInputMessages] + has_more: bool + first_id: str + last_id: str + object: Literal["list"] = "list" + + +# extra_body can be accessed via .model_extra +@json_schema_type +class OpenAICompletionRequestWithExtraBody(BaseModel, extra="allow"): + """Request parameters for OpenAI-compatible completion endpoint.""" + + # Standard OpenAI completion parameters + model: str + prompt: str | list[str] | list[int] | list[list[int]] + best_of: int | None = None + echo: bool | None = None + frequency_penalty: float | None = None + logit_bias: dict[str, float] | None = None + logprobs: int | None = Field(None, ge=0, le=5) + max_tokens: int | None = None + n: int | None = None + presence_penalty: float | None = None + seed: int | None = None + stop: str | list[str] | None = None + stream: bool | None = None + stream_options: dict[str, Any] | None = None + temperature: float | None = None + top_p: float | None = None + user: str | None = None + suffix: str | None = None + + +# extra_body can be accessed via .model_extra +@json_schema_type +class OpenAIChatCompletionRequestWithExtraBody(BaseModel, extra="allow"): + """Request parameters for OpenAI-compatible chat completion endpoint.""" + + # Standard OpenAI chat completion parameters + model: str + messages: Annotated[list[OpenAIMessageParam], Field(..., min_length=1)] + frequency_penalty: float | None = None + function_call: str | dict[str, Any] | None = None + functions: list[dict[str, Any]] | None = None + logit_bias: dict[str, float] | None = None + logprobs: bool | None = None + max_completion_tokens: int | None = None + max_tokens: int | None = None + n: int | None = None + parallel_tool_calls: bool | None = None + presence_penalty: float | None = None + response_format: OpenAIResponseFormatParam | None = None + seed: int | None = None + stop: str | list[str] | None = None + stream: bool | None = None + stream_options: dict[str, Any] | None = None + temperature: float | None = None + tool_choice: str | dict[str, Any] | None = None + tools: list[dict[str, Any]] | None = None + top_logprobs: int | None = None + top_p: float | None = None + user: str | None = None + + +# extra_body can be accessed via .model_extra +@json_schema_type +class OpenAIEmbeddingsRequestWithExtraBody(BaseModel, extra="allow"): + """Request parameters for OpenAI-compatible embeddings endpoint.""" + + model: str + input: str | list[str] + encoding_format: str | None = "float" + dimensions: int | None = None + user: str | None = None diff --git a/src/llama_stack/apis/inference/routes.py b/src/llama_stack/apis/inference/routes.py new file mode 100644 index 000000000..708b54891 --- /dev/null +++ b/src/llama_stack/apis/inference/routes.py @@ -0,0 +1,183 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +import json +from typing import Annotated + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath +from fastapi.responses import StreamingResponse +from pydantic import BaseModel + +from llama_stack.apis.common.responses import Order +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .inference_service import InferenceService +from .models import ( + ListOpenAIChatCompletionResponse, + OpenAIChatCompletionContentPartImageParam, + OpenAIChatCompletionContentPartTextParam, + OpenAIChatCompletionRequestWithExtraBody, + OpenAICompletion, + OpenAICompletionRequestWithExtraBody, + OpenAICompletionWithInputMessages, + OpenAIEmbeddingsRequestWithExtraBody, + OpenAIEmbeddingsResponse, + RerankResponse, +) + + +def get_inference_service(request: Request) -> InferenceService: + """Dependency to get the inference service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.inference not in impls: + raise ValueError("Inference API implementation not found") + return impls[Api.inference] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Inference"], + responses=standard_responses, +) + +router_v1alpha = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1ALPHA}", + tags=["Inference"], + responses=standard_responses, +) + + +@router_v1alpha.post( + "/inference/rerank", + response_model=RerankResponse, + summary="Rerank a list of documents.", + description="Rerank a list of documents based on their relevance to a query.", +) +async def rerank( + model: str = Body(..., description="The identifier of the reranking model to use."), + query: str | OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam = Body( + ..., description="The search query to rank items against." + ), + items: list[str | OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam] = Body( + ..., description="List of items to rerank." + ), + max_num_results: int | None = Body(None, description="Maximum number of results to return. Default: returns all."), + svc: InferenceService = Depends(get_inference_service), +) -> RerankResponse: + """Rerank a list of documents based on their relevance to a query.""" + return await svc.rerank(model=model, query=query, items=items, max_num_results=max_num_results) + + +@router.post( + "/completions", + response_model=OpenAICompletion, + summary="Create completion.", + description="Create completion.", +) +async def openai_completion( + params: OpenAICompletionRequestWithExtraBody = Body(...), + svc: InferenceService = Depends(get_inference_service), +) -> OpenAICompletion: + """Create completion.""" + return await svc.openai_completion(params=params) + + +@router.post( + "/chat/completions", + summary="Create chat completions.", + description="Create chat completions.", +) +async def openai_chat_completion( + params: OpenAIChatCompletionRequestWithExtraBody = Body(...), + svc: InferenceService = Depends(get_inference_service), +): + """Create chat completions.""" + response = await svc.openai_chat_completion(params=params) + + # Check if response is an async generator/iterator (streaming response) + # Check for __aiter__ method which all async iterators have + if hasattr(response, "__aiter__"): + # Convert async generator to SSE stream + async def sse_stream(): + try: + async for chunk in response: + if isinstance(chunk, BaseModel): + data = chunk.model_dump_json() + else: + data = json.dumps(chunk) + yield f"data: {data}\n\n" + except Exception as e: + # Send error as SSE event + error_data = json.dumps({"error": {"message": str(e)}}) + yield f"data: {error_data}\n\n" + + return StreamingResponse(sse_stream(), media_type="text/event-stream") + + return response + + +@router.post( + "/embeddings", + response_model=OpenAIEmbeddingsResponse, + summary="Create embeddings.", + description="Create embeddings.", +) +async def openai_embeddings( + params: OpenAIEmbeddingsRequestWithExtraBody = Body(...), + svc: InferenceService = Depends(get_inference_service), +) -> OpenAIEmbeddingsResponse: + """Create embeddings.""" + return await svc.openai_embeddings(params=params) + + +@router.get( + "/chat/completions", + response_model=ListOpenAIChatCompletionResponse, + summary="List chat completions.", + description="List chat completions.", +) +async def list_chat_completions( + after: str | None = Query(None, description="The ID of the last chat completion to return."), + limit: int | None = Query(20, description="The maximum number of chat completions to return."), + model: str | None = Query(None, description="The model to filter by."), + order: Order | None = Query( + Order.desc, description="The order to sort the chat completions by: 'asc' or 'desc'. Defaults to 'desc'." + ), + svc: InferenceService = Depends(get_inference_service), +) -> ListOpenAIChatCompletionResponse: + """List chat completions.""" + return await svc.list_chat_completions(after=after, limit=limit, model=model, order=order) + + +@router.get( + "/chat/completions/{completion_id}", + response_model=OpenAICompletionWithInputMessages, + summary="Get chat completion.", + description="Get chat completion.", +) +async def get_chat_completion( + completion_id: Annotated[str, FastAPIPath(..., description="ID of the chat completion.")], + svc: InferenceService = Depends(get_inference_service), +) -> OpenAICompletionWithInputMessages: + """Get chat completion.""" + return await svc.get_chat_completion(completion_id=completion_id) + + +# For backward compatibility with the router registry system +def create_inference_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Inference API (legacy compatibility).""" + main_router = APIRouter() + main_router.include_router(router) + main_router.include_router(router_v1alpha) + return main_router + + +# Register the router factory +register_router(Api.inference, create_inference_router) diff --git a/src/llama_stack/apis/inspect/__init__.py b/src/llama_stack/apis/inspect/__init__.py index 016937e3d..afb0a588c 100644 --- a/src/llama_stack/apis/inspect/__init__.py +++ b/src/llama_stack/apis/inspect/__init__.py @@ -4,4 +4,12 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .inspect import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .inspect_service import InspectService +from .models import HealthInfo, ListRoutesResponse, RouteInfo, VersionInfo + +# Backward compatibility - export Inspect as alias for InspectService +Inspect = InspectService + +__all__ = ["Inspect", "InspectService", "ListRoutesResponse", "RouteInfo", "HealthInfo", "VersionInfo"] diff --git a/src/llama_stack/apis/inspect/inspect.py b/src/llama_stack/apis/inspect/inspect.py deleted file mode 100644 index 4e0e2548b..000000000 --- a/src/llama_stack/apis/inspect/inspect.py +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from typing import Literal, Protocol, runtime_checkable - -from pydantic import BaseModel - -from llama_stack.apis.version import ( - LLAMA_STACK_API_V1, -) -from llama_stack.providers.datatypes import HealthStatus -from llama_stack.schema_utils import json_schema_type, webmethod - -# Valid values for the route filter parameter. -# Actual API levels: v1, v1alpha, v1beta (filters by level, excludes deprecated) -# Special filter value: "deprecated" (shows deprecated routes regardless of level) -ApiFilter = Literal["v1", "v1alpha", "v1beta", "deprecated"] - - -@json_schema_type -class RouteInfo(BaseModel): - """Information about an API route including its path, method, and implementing providers. - - :param route: The API endpoint path - :param method: HTTP method for the route - :param provider_types: List of provider types that implement this route - """ - - route: str - method: str - provider_types: list[str] - - -@json_schema_type -class HealthInfo(BaseModel): - """Health status information for the service. - - :param status: Current health status of the service - """ - - status: HealthStatus - - -@json_schema_type -class VersionInfo(BaseModel): - """Version information for the service. - - :param version: Version number of the service - """ - - version: str - - -class ListRoutesResponse(BaseModel): - """Response containing a list of all available API routes. - - :param data: List of available route information objects - """ - - data: list[RouteInfo] - - -@runtime_checkable -class Inspect(Protocol): - """Inspect - - APIs for inspecting the Llama Stack service, including health status, available API routes with methods and implementing providers. - """ - - @webmethod(route="/inspect/routes", method="GET", level=LLAMA_STACK_API_V1) - async def list_routes(self, api_filter: ApiFilter | None = None) -> ListRoutesResponse: - """List routes. - - List all available API routes with their methods and implementing providers. - - :param api_filter: Optional filter to control which routes are returned. Can be an API level ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, or 'deprecated' to show deprecated routes across all levels. If not specified, returns only non-deprecated v1 routes. - :returns: Response containing information about all available routes. - """ - ... - - @webmethod(route="/health", method="GET", level=LLAMA_STACK_API_V1, require_authentication=False) - async def health(self) -> HealthInfo: - """Get health status. - - Get the current health status of the service. - - :returns: Health information indicating if the service is operational. - """ - ... - - @webmethod(route="/version", method="GET", level=LLAMA_STACK_API_V1, require_authentication=False) - async def version(self) -> VersionInfo: - """Get version. - - Get the version of the service. - - :returns: Version information containing the service version number. - """ - ... diff --git a/src/llama_stack/apis/inspect/inspect_service.py b/src/llama_stack/apis/inspect/inspect_service.py new file mode 100644 index 000000000..e117cb5c6 --- /dev/null +++ b/src/llama_stack/apis/inspect/inspect_service.py @@ -0,0 +1,29 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Protocol, runtime_checkable + +from .models import HealthInfo, ListRoutesResponse, VersionInfo + + +@runtime_checkable +class InspectService(Protocol): + """Inspect + + APIs for inspecting the Llama Stack service, including health status, available API routes with methods and implementing providers. + """ + + async def list_routes(self) -> ListRoutesResponse: + """List routes.""" + ... + + async def health(self) -> HealthInfo: + """Get health status.""" + ... + + async def version(self) -> VersionInfo: + """Get version.""" + ... diff --git a/src/llama_stack/apis/inspect/models.py b/src/llama_stack/apis/inspect/models.py new file mode 100644 index 000000000..d84421ec7 --- /dev/null +++ b/src/llama_stack/apis/inspect/models.py @@ -0,0 +1,39 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from pydantic import BaseModel, Field + +from llama_stack.providers.datatypes import HealthStatus +from llama_stack.schema_utils import json_schema_type + + +@json_schema_type +class RouteInfo(BaseModel): + """Information about an API route including its path, method, and implementing providers.""" + + route: str = Field(..., description="The API endpoint path") + method: str = Field(..., description="HTTP method for the route") + provider_types: list[str] = Field(..., description="List of provider types that implement this route") + + +@json_schema_type +class HealthInfo(BaseModel): + """Health status information for the service.""" + + status: HealthStatus = Field(..., description="Current health status of the service") + + +@json_schema_type +class VersionInfo(BaseModel): + """Version information for the service.""" + + version: str = Field(..., description="Version number of the service") + + +class ListRoutesResponse(BaseModel): + """Response containing a list of all available API routes.""" + + data: list[RouteInfo] = Field(..., description="List of available route information objects") diff --git a/src/llama_stack/apis/inspect/routes.py b/src/llama_stack/apis/inspect/routes.py new file mode 100644 index 000000000..14aeebfd1 --- /dev/null +++ b/src/llama_stack/apis/inspect/routes.py @@ -0,0 +1,73 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from fastapi import Depends, Request + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .inspect_service import InspectService +from .models import HealthInfo, ListRoutesResponse, VersionInfo + + +def get_inspect_service(request: Request) -> InspectService: + """Dependency to get the inspect service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.inspect not in impls: + raise ValueError("Inspect API implementation not found") + return impls[Api.inspect] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Inspect"], + responses=standard_responses, +) + + +@router.get( + "/inspect/routes", + response_model=ListRoutesResponse, + summary="List routes.", + description="List all available API routes with their methods and implementing providers.", +) +async def list_routes(svc: InspectService = Depends(get_inspect_service)) -> ListRoutesResponse: + """List all available API routes.""" + return await svc.list_routes() + + +@router.get( + "/health", + response_model=HealthInfo, + summary="Get health status.", + description="Get the current health status of the service.", +) +async def health(svc: InspectService = Depends(get_inspect_service)) -> HealthInfo: + """Get the current health status of the service.""" + return await svc.health() + + +@router.get( + "/version", + response_model=VersionInfo, + summary="Get version.", + description="Get the version of the service.", +) +async def version(svc: InspectService = Depends(get_inspect_service)) -> VersionInfo: + """Get the version of the service.""" + return await svc.version() + + +# For backward compatibility with the router registry system +def create_inspect_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Inspect API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.inspect, create_inspect_router) diff --git a/src/llama_stack/apis/models/__init__.py b/src/llama_stack/apis/models/__init__.py index ee90106b6..c6093de8e 100644 --- a/src/llama_stack/apis/models/__init__.py +++ b/src/llama_stack/apis/models/__init__.py @@ -4,4 +4,30 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .models import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .model_schemas import ( + ListModelsResponse, + Model, + ModelInput, + ModelType, + OpenAIListModelsResponse, + OpenAIModel, + RegisterModelRequest, +) +from .models_service import ModelService + +# Backward compatibility - export Models as alias for ModelService +Models = ModelService + +__all__ = [ + "Models", + "ModelService", + "Model", + "ModelInput", + "ModelType", + "ListModelsResponse", + "RegisterModelRequest", + "OpenAIModel", + "OpenAIListModelsResponse", +] diff --git a/src/llama_stack/apis/models/model_schemas.py b/src/llama_stack/apis/models/model_schemas.py new file mode 100644 index 000000000..942806385 --- /dev/null +++ b/src/llama_stack/apis/models/model_schemas.py @@ -0,0 +1,98 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import StrEnum +from typing import Any, Literal + +from pydantic import BaseModel, ConfigDict, Field, field_validator + +from llama_stack.apis.resource import Resource, ResourceType +from llama_stack.schema_utils import json_schema_type + + +class CommonModelFields(BaseModel): + metadata: dict[str, Any] = Field( + default_factory=dict, + description="Any additional metadata for this model.", + ) + + +@json_schema_type +class ModelType(StrEnum): + """Enumeration of supported model types in Llama Stack.""" + + llm = "llm" + embedding = "embedding" + rerank = "rerank" + + +@json_schema_type +class Model(CommonModelFields, Resource): + """A model resource representing an AI model registered in Llama Stack.""" + + type: Literal[ResourceType.model] = Field( + default=ResourceType.model, description="The resource type, always 'model' for model resources." + ) + model_type: ModelType = Field(default=ModelType.llm, description="The type of model (LLM or embedding model).") + + @property + def model_id(self) -> str: + return self.identifier + + @property + def provider_model_id(self) -> str: + assert self.provider_resource_id is not None, "Provider resource ID must be set" + return self.provider_resource_id + + model_config = ConfigDict(protected_namespaces=()) + + @field_validator("provider_resource_id") + @classmethod + def validate_provider_resource_id(cls, v): + if v is None: + raise ValueError("provider_resource_id cannot be None") + return v + + +class ModelInput(CommonModelFields): + model_id: str + provider_id: str | None = None + provider_model_id: str | None = None + model_type: ModelType | None = ModelType.llm + model_config = ConfigDict(protected_namespaces=()) + + +class ListModelsResponse(BaseModel): + """Response model for listing models.""" + + data: list[Model] = Field(description="List of model resources.") + + +@json_schema_type +class RegisterModelRequest(BaseModel): + """Request model for registering a new model.""" + + model_id: str = Field(..., description="The identifier of the model to register.") + provider_model_id: str | None = Field(default=None, description="The identifier of the model in the provider.") + provider_id: str | None = Field(default=None, description="The identifier of the provider.") + metadata: dict[str, Any] | None = Field(default=None, description="Any additional metadata for this model.") + model_type: ModelType | None = Field(default=None, description="The type of model to register.") + + +@json_schema_type +class OpenAIModel(BaseModel): + """A model from OpenAI.""" + + id: str = Field(..., description="The ID of the model.") + object: Literal["model"] = Field(default="model", description="The object type, which will be 'model'.") + created: int = Field(..., description="The Unix timestamp in seconds when the model was created.") + owned_by: str = Field(..., description="The owner of the model.") + + +class OpenAIListModelsResponse(BaseModel): + """Response model for listing OpenAI models.""" + + data: list[OpenAIModel] = Field(description="List of OpenAI model objects.") diff --git a/src/llama_stack/apis/models/models.py b/src/llama_stack/apis/models/models.py deleted file mode 100644 index 552f47c30..000000000 --- a/src/llama_stack/apis/models/models.py +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from enum import StrEnum -from typing import Any, Literal, Protocol, runtime_checkable - -from pydantic import BaseModel, ConfigDict, Field, field_validator - -from llama_stack.apis.resource import Resource, ResourceType -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, webmethod - - -class CommonModelFields(BaseModel): - metadata: dict[str, Any] = Field( - default_factory=dict, - description="Any additional metadata for this model", - ) - - -@json_schema_type -class ModelType(StrEnum): - """Enumeration of supported model types in Llama Stack. - :cvar llm: Large language model for text generation and completion - :cvar embedding: Embedding model for converting text to vector representations - :cvar rerank: Reranking model for reordering documents based on their relevance to a query - """ - - llm = "llm" - embedding = "embedding" - rerank = "rerank" - - -@json_schema_type -class Model(CommonModelFields, Resource): - """A model resource representing an AI model registered in Llama Stack. - - :param type: The resource type, always 'model' for model resources - :param model_type: The type of model (LLM or embedding model) - :param metadata: Any additional metadata for this model - :param identifier: Unique identifier for this resource in llama stack - :param provider_resource_id: Unique identifier for this resource in the provider - :param provider_id: ID of the provider that owns this resource - """ - - type: Literal[ResourceType.model] = ResourceType.model - - @property - def model_id(self) -> str: - return self.identifier - - @property - def provider_model_id(self) -> str: - assert self.provider_resource_id is not None, "Provider resource ID must be set" - return self.provider_resource_id - - model_config = ConfigDict(protected_namespaces=()) - - model_type: ModelType = Field(default=ModelType.llm) - - @field_validator("provider_resource_id") - @classmethod - def validate_provider_resource_id(cls, v): - if v is None: - raise ValueError("provider_resource_id cannot be None") - return v - - -class ModelInput(CommonModelFields): - model_id: str - provider_id: str | None = None - provider_model_id: str | None = None - model_type: ModelType | None = ModelType.llm - model_config = ConfigDict(protected_namespaces=()) - - -class ListModelsResponse(BaseModel): - data: list[Model] - - -@json_schema_type -class OpenAIModel(BaseModel): - """A model from OpenAI. - - :id: The ID of the model - :object: The object type, which will be "model" - :created: The Unix timestamp in seconds when the model was created - :owned_by: The owner of the model - :custom_metadata: Llama Stack-specific metadata including model_type, provider info, and additional metadata - """ - - id: str - object: Literal["model"] = "model" - created: int - owned_by: str - custom_metadata: dict[str, Any] | None = None - - -class OpenAIListModelsResponse(BaseModel): - data: list[OpenAIModel] - - -@runtime_checkable -@trace_protocol -class Models(Protocol): - async def list_models(self) -> ListModelsResponse: - """List all models. - - :returns: A ListModelsResponse. - """ - ... - - @webmethod(route="/models", method="GET", level=LLAMA_STACK_API_V1) - async def openai_list_models(self) -> OpenAIListModelsResponse: - """List models using the OpenAI API. - - :returns: A OpenAIListModelsResponse. - """ - ... - - @webmethod(route="/models/{model_id:path}", method="GET", level=LLAMA_STACK_API_V1) - async def get_model( - self, - model_id: str, - ) -> Model: - """Get model. - - Get a model by its identifier. - - :param model_id: The identifier of the model to get. - :returns: A Model. - """ - ... - - @webmethod(route="/models", method="POST", level=LLAMA_STACK_API_V1) - async def register_model( - self, - model_id: str, - provider_model_id: str | None = None, - provider_id: str | None = None, - metadata: dict[str, Any] | None = None, - model_type: ModelType | None = None, - ) -> Model: - """Register model. - - Register a model. - - :param model_id: The identifier of the model to register. - :param provider_model_id: The identifier of the model in the provider. - :param provider_id: The identifier of the provider. - :param metadata: Any additional metadata for this model. - :param model_type: The type of model to register. - :returns: A Model. - """ - ... - - @webmethod(route="/models/{model_id:path}", method="DELETE", level=LLAMA_STACK_API_V1) - async def unregister_model( - self, - model_id: str, - ) -> None: - """Unregister model. - - Unregister a model. - - :param model_id: The identifier of the model to unregister. - """ - ... diff --git a/src/llama_stack/apis/models/models_models.py b/src/llama_stack/apis/models/models_models.py new file mode 100644 index 000000000..942806385 --- /dev/null +++ b/src/llama_stack/apis/models/models_models.py @@ -0,0 +1,98 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import StrEnum +from typing import Any, Literal + +from pydantic import BaseModel, ConfigDict, Field, field_validator + +from llama_stack.apis.resource import Resource, ResourceType +from llama_stack.schema_utils import json_schema_type + + +class CommonModelFields(BaseModel): + metadata: dict[str, Any] = Field( + default_factory=dict, + description="Any additional metadata for this model.", + ) + + +@json_schema_type +class ModelType(StrEnum): + """Enumeration of supported model types in Llama Stack.""" + + llm = "llm" + embedding = "embedding" + rerank = "rerank" + + +@json_schema_type +class Model(CommonModelFields, Resource): + """A model resource representing an AI model registered in Llama Stack.""" + + type: Literal[ResourceType.model] = Field( + default=ResourceType.model, description="The resource type, always 'model' for model resources." + ) + model_type: ModelType = Field(default=ModelType.llm, description="The type of model (LLM or embedding model).") + + @property + def model_id(self) -> str: + return self.identifier + + @property + def provider_model_id(self) -> str: + assert self.provider_resource_id is not None, "Provider resource ID must be set" + return self.provider_resource_id + + model_config = ConfigDict(protected_namespaces=()) + + @field_validator("provider_resource_id") + @classmethod + def validate_provider_resource_id(cls, v): + if v is None: + raise ValueError("provider_resource_id cannot be None") + return v + + +class ModelInput(CommonModelFields): + model_id: str + provider_id: str | None = None + provider_model_id: str | None = None + model_type: ModelType | None = ModelType.llm + model_config = ConfigDict(protected_namespaces=()) + + +class ListModelsResponse(BaseModel): + """Response model for listing models.""" + + data: list[Model] = Field(description="List of model resources.") + + +@json_schema_type +class RegisterModelRequest(BaseModel): + """Request model for registering a new model.""" + + model_id: str = Field(..., description="The identifier of the model to register.") + provider_model_id: str | None = Field(default=None, description="The identifier of the model in the provider.") + provider_id: str | None = Field(default=None, description="The identifier of the provider.") + metadata: dict[str, Any] | None = Field(default=None, description="Any additional metadata for this model.") + model_type: ModelType | None = Field(default=None, description="The type of model to register.") + + +@json_schema_type +class OpenAIModel(BaseModel): + """A model from OpenAI.""" + + id: str = Field(..., description="The ID of the model.") + object: Literal["model"] = Field(default="model", description="The object type, which will be 'model'.") + created: int = Field(..., description="The Unix timestamp in seconds when the model was created.") + owned_by: str = Field(..., description="The owner of the model.") + + +class OpenAIListModelsResponse(BaseModel): + """Response model for listing OpenAI models.""" + + data: list[OpenAIModel] = Field(description="List of OpenAI model objects.") diff --git a/src/llama_stack/apis/models/models_service.py b/src/llama_stack/apis/models/models_service.py new file mode 100644 index 000000000..3cf2f6bea --- /dev/null +++ b/src/llama_stack/apis/models/models_service.py @@ -0,0 +1,53 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .model_schemas import ( + ListModelsResponse, + Model, + ModelType, + OpenAIListModelsResponse, +) + + +@runtime_checkable +@trace_protocol +class ModelService(Protocol): + async def list_models(self) -> ListModelsResponse: + """List all models.""" + ... + + async def openai_list_models(self) -> OpenAIListModelsResponse: + """List models using the OpenAI API.""" + ... + + async def get_model( + self, + model_id: str, + ) -> Model: + """Get model.""" + ... + + async def register_model( + self, + model_id: str, + provider_model_id: str | None = None, + provider_id: str | None = None, + metadata: dict[str, Any] | None = None, + model_type: ModelType | None = None, + ) -> Model: + """Register model.""" + ... + + async def unregister_model( + self, + model_id: str, + ) -> None: + """Unregister model.""" + ... diff --git a/src/llama_stack/apis/models/routes.py b/src/llama_stack/apis/models/routes.py new file mode 100644 index 000000000..510f502d5 --- /dev/null +++ b/src/llama_stack/apis/models/routes.py @@ -0,0 +1,107 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .model_schemas import ( + ListModelsResponse, + Model, + RegisterModelRequest, +) +from .models_service import ModelService + + +def get_model_service(request: Request) -> ModelService: + """Dependency to get the model service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.models not in impls: + raise ValueError("Models API implementation not found") + return impls[Api.models] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Models"], + responses=standard_responses, +) + + +@router.get( + "/models", + response_model=ListModelsResponse, + summary="List all models.", + description="List all models registered in Llama Stack.", +) +async def list_models(svc: ModelService = Depends(get_model_service)) -> ListModelsResponse: + """List all models.""" + return await svc.list_models() + + +@router.get( + "/models/{model_id:path}", + response_model=Model, + summary="Get model.", + description="Get a model by its identifier.", +) +async def get_model( + model_id: Annotated[str, FastAPIPath(..., description="The identifier of the model to get.")], + svc: ModelService = Depends(get_model_service), +) -> Model: + """Get model by its identifier.""" + return await svc.get_model(model_id=model_id) + + +@router.post( + "/models", + response_model=Model, + summary="Register model.", + description="Register a new model in Llama Stack.", +) +async def register_model( + body: RegisterModelRequest = Body(...), + svc: ModelService = Depends(get_model_service), +) -> Model: + """Register a new model.""" + return await svc.register_model( + model_id=body.model_id, + provider_model_id=body.provider_model_id, + provider_id=body.provider_id, + metadata=body.metadata, + model_type=body.model_type, + ) + + +@router.delete( + "/models/{model_id:path}", + response_model=None, + status_code=204, + summary="Unregister model.", + description="Unregister a model from Llama Stack.", +) +async def unregister_model( + model_id: Annotated[str, FastAPIPath(..., description="The identifier of the model to unregister.")], + svc: ModelService = Depends(get_model_service), +) -> None: + """Unregister a model.""" + await svc.unregister_model(model_id=model_id) + + +# For backward compatibility with the router registry system +def create_models_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Models API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.models, create_models_router) diff --git a/src/llama_stack/apis/post_training/__init__.py b/src/llama_stack/apis/post_training/__init__.py index 695575a30..3b1fce1ad 100644 --- a/src/llama_stack/apis/post_training/__init__.py +++ b/src/llama_stack/apis/post_training/__init__.py @@ -4,4 +4,61 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .post_training import * +# Import routes to trigger router registration +from llama_stack.apis.common.job_types import JobStatus +from llama_stack.apis.common.training_types import Checkpoint + +from . import routes # noqa: F401 +from .models import ( + AlgorithmConfig, + DataConfig, + DatasetFormat, + DPOAlignmentConfig, + DPOLossType, + EfficiencyConfig, + ListPostTrainingJobsResponse, + LoraFinetuningConfig, + OptimizerConfig, + OptimizerType, + PostTrainingJob, + PostTrainingJobArtifactsResponse, + PostTrainingJobLogStream, + PostTrainingJobStatusResponse, + PostTrainingRLHFRequest, + PreferenceOptimizeRequest, + QATFinetuningConfig, + RLHFAlgorithm, + SupervisedFineTuneRequest, + TrainingConfig, +) +from .post_training_service import PostTrainingService + +# Backward compatibility - export PostTraining as alias for PostTrainingService +PostTraining = PostTrainingService + +__all__ = [ + "PostTraining", + "PostTrainingService", + "Checkpoint", + "JobStatus", + "OptimizerType", + "DatasetFormat", + "DataConfig", + "OptimizerConfig", + "EfficiencyConfig", + "TrainingConfig", + "LoraFinetuningConfig", + "QATFinetuningConfig", + "AlgorithmConfig", + "PostTrainingJobLogStream", + "RLHFAlgorithm", + "DPOLossType", + "DPOAlignmentConfig", + "PostTrainingRLHFRequest", + "PostTrainingJob", + "PostTrainingJobStatusResponse", + "ListPostTrainingJobsResponse", + "PostTrainingJobArtifactsResponse", + "SupervisedFineTuneRequest", + "PreferenceOptimizeRequest", +] diff --git a/src/llama_stack/apis/post_training/models.py b/src/llama_stack/apis/post_training/models.py new file mode 100644 index 000000000..4be609a90 --- /dev/null +++ b/src/llama_stack/apis/post_training/models.py @@ -0,0 +1,222 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from datetime import datetime +from enum import Enum +from typing import Annotated, Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.common.content_types import URL +from llama_stack.apis.common.job_types import JobStatus +from llama_stack.apis.common.training_types import Checkpoint +from llama_stack.schema_utils import json_schema_type, register_schema + + +@json_schema_type +class OptimizerType(Enum): + """Available optimizer algorithms for training.""" + + adam = "adam" + adamw = "adamw" + sgd = "sgd" + + +@json_schema_type +class DatasetFormat(Enum): + """Format of the training dataset.""" + + instruct = "instruct" + dialog = "dialog" + + +@json_schema_type +class DataConfig(BaseModel): + """Configuration for training data and data loading.""" + + dataset_id: str + batch_size: int + shuffle: bool + data_format: DatasetFormat + validation_dataset_id: str | None = None + packed: bool | None = False + train_on_input: bool | None = False + + +@json_schema_type +class OptimizerConfig(BaseModel): + """Configuration parameters for the optimization algorithm.""" + + optimizer_type: OptimizerType + lr: float + weight_decay: float + num_warmup_steps: int + + +@json_schema_type +class EfficiencyConfig(BaseModel): + """Configuration for memory and compute efficiency optimizations.""" + + enable_activation_checkpointing: bool | None = False + enable_activation_offloading: bool | None = False + memory_efficient_fsdp_wrap: bool | None = False + fsdp_cpu_offload: bool | None = False + + +@json_schema_type +class TrainingConfig(BaseModel): + """Comprehensive configuration for the training process.""" + + n_epochs: int + max_steps_per_epoch: int = 1 + gradient_accumulation_steps: int = 1 + max_validation_steps: int | None = 1 + data_config: DataConfig | None = None + optimizer_config: OptimizerConfig | None = None + efficiency_config: EfficiencyConfig | None = None + dtype: str | None = "bf16" + + +@json_schema_type +class LoraFinetuningConfig(BaseModel): + """Configuration for Low-Rank Adaptation (LoRA) fine-tuning.""" + + type: Literal["LoRA"] = "LoRA" + lora_attn_modules: list[str] + apply_lora_to_mlp: bool + apply_lora_to_output: bool + rank: int + alpha: int + use_dora: bool | None = False + quantize_base: bool | None = False + + +@json_schema_type +class QATFinetuningConfig(BaseModel): + """Configuration for Quantization-Aware Training (QAT) fine-tuning.""" + + type: Literal["QAT"] = "QAT" + quantizer_name: str + group_size: int + + +AlgorithmConfig = Annotated[LoraFinetuningConfig | QATFinetuningConfig, Field(discriminator="type")] +register_schema(AlgorithmConfig, name="AlgorithmConfig") + + +@json_schema_type +class PostTrainingJobLogStream(BaseModel): + """Stream of logs from a finetuning job.""" + + job_uuid: str + log_lines: list[str] + + +@json_schema_type +class RLHFAlgorithm(Enum): + """Available reinforcement learning from human feedback algorithms.""" + + dpo = "dpo" + + +@json_schema_type +class DPOLossType(Enum): + sigmoid = "sigmoid" + hinge = "hinge" + ipo = "ipo" + kto_pair = "kto_pair" + + +@json_schema_type +class DPOAlignmentConfig(BaseModel): + """Configuration for Direct Preference Optimization (DPO) alignment.""" + + beta: float + loss_type: DPOLossType = DPOLossType.sigmoid + + +@json_schema_type +class PostTrainingRLHFRequest(BaseModel): + """Request to finetune a model using reinforcement learning from human feedback.""" + + job_uuid: str + + finetuned_model: URL + + dataset_id: str + validation_dataset_id: str + + algorithm: RLHFAlgorithm + algorithm_config: DPOAlignmentConfig + + optimizer_config: OptimizerConfig + training_config: TrainingConfig + + # TODO: define these + hyperparam_search_config: dict[str, Any] + logger_config: dict[str, Any] + + +class PostTrainingJob(BaseModel): + job_uuid: str = Field(..., description="The UUID of the job") + + +@json_schema_type +class PostTrainingJobStatusResponse(BaseModel): + """Status of a finetuning job.""" + + job_uuid: str + status: JobStatus + + scheduled_at: datetime | None = None + started_at: datetime | None = None + completed_at: datetime | None = None + + resources_allocated: dict[str, Any] | None = None + + checkpoints: list[Checkpoint] = Field(default_factory=list) + + +class ListPostTrainingJobsResponse(BaseModel): + data: list[PostTrainingJob] = Field(..., description="The list of training jobs") + + +@json_schema_type +class PostTrainingJobArtifactsResponse(BaseModel): + """Artifacts of a finetuning job.""" + + job_uuid: str = Field(..., description="The UUID of the job") + checkpoints: list[Checkpoint] = Field(default_factory=list) + + # TODO(ashwin): metrics, evals + + +@json_schema_type +class SupervisedFineTuneRequest(BaseModel): + """Request to run supervised fine-tuning of a model.""" + + job_uuid: str = Field(..., description="The UUID of the job to create") + training_config: TrainingConfig = Field(..., description="The training configuration") + hyperparam_search_config: dict[str, Any] = Field(..., description="The hyperparam search configuration") + logger_config: dict[str, Any] = Field(..., description="The logger configuration") + model: str | None = Field( + default=None, + description="Model descriptor for training if not in provider config`", + ) + checkpoint_dir: str | None = Field(default=None, description="The directory to save checkpoint(s) to") + algorithm_config: AlgorithmConfig | None = Field(default=None, description="The algorithm configuration") + + +@json_schema_type +class PreferenceOptimizeRequest(BaseModel): + """Request to run preference optimization of a model.""" + + job_uuid: str = Field(..., description="The UUID of the job to create") + finetuned_model: str = Field(..., description="The model to fine-tune") + algorithm_config: DPOAlignmentConfig = Field(..., description="The algorithm configuration") + training_config: TrainingConfig = Field(..., description="The training configuration") + hyperparam_search_config: dict[str, Any] = Field(..., description="The hyperparam search configuration") + logger_config: dict[str, Any] = Field(..., description="The logger configuration") diff --git a/src/llama_stack/apis/post_training/post_training.py b/src/llama_stack/apis/post_training/post_training.py deleted file mode 100644 index 2b7a6222f..000000000 --- a/src/llama_stack/apis/post_training/post_training.py +++ /dev/null @@ -1,368 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from datetime import datetime -from enum import Enum -from typing import Annotated, Any, Literal, Protocol - -from pydantic import BaseModel, Field - -from llama_stack.apis.common.content_types import URL -from llama_stack.apis.common.job_types import JobStatus -from llama_stack.apis.common.training_types import Checkpoint -from llama_stack.apis.version import LLAMA_STACK_API_V1ALPHA -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod - - -@json_schema_type -class OptimizerType(Enum): - """Available optimizer algorithms for training. - :cvar adam: Adaptive Moment Estimation optimizer - :cvar adamw: AdamW optimizer with weight decay - :cvar sgd: Stochastic Gradient Descent optimizer - """ - - adam = "adam" - adamw = "adamw" - sgd = "sgd" - - -@json_schema_type -class DatasetFormat(Enum): - """Format of the training dataset. - :cvar instruct: Instruction-following format with prompt and completion - :cvar dialog: Multi-turn conversation format with messages - """ - - instruct = "instruct" - dialog = "dialog" - - -@json_schema_type -class DataConfig(BaseModel): - """Configuration for training data and data loading. - - :param dataset_id: Unique identifier for the training dataset - :param batch_size: Number of samples per training batch - :param shuffle: Whether to shuffle the dataset during training - :param data_format: Format of the dataset (instruct or dialog) - :param validation_dataset_id: (Optional) Unique identifier for the validation dataset - :param packed: (Optional) Whether to pack multiple samples into a single sequence for efficiency - :param train_on_input: (Optional) Whether to compute loss on input tokens as well as output tokens - """ - - dataset_id: str - batch_size: int - shuffle: bool - data_format: DatasetFormat - validation_dataset_id: str | None = None - packed: bool | None = False - train_on_input: bool | None = False - - -@json_schema_type -class OptimizerConfig(BaseModel): - """Configuration parameters for the optimization algorithm. - - :param optimizer_type: Type of optimizer to use (adam, adamw, or sgd) - :param lr: Learning rate for the optimizer - :param weight_decay: Weight decay coefficient for regularization - :param num_warmup_steps: Number of steps for learning rate warmup - """ - - optimizer_type: OptimizerType - lr: float - weight_decay: float - num_warmup_steps: int - - -@json_schema_type -class EfficiencyConfig(BaseModel): - """Configuration for memory and compute efficiency optimizations. - - :param enable_activation_checkpointing: (Optional) Whether to use activation checkpointing to reduce memory usage - :param enable_activation_offloading: (Optional) Whether to offload activations to CPU to save GPU memory - :param memory_efficient_fsdp_wrap: (Optional) Whether to use memory-efficient FSDP wrapping - :param fsdp_cpu_offload: (Optional) Whether to offload FSDP parameters to CPU - """ - - enable_activation_checkpointing: bool | None = False - enable_activation_offloading: bool | None = False - memory_efficient_fsdp_wrap: bool | None = False - fsdp_cpu_offload: bool | None = False - - -@json_schema_type -class TrainingConfig(BaseModel): - """Comprehensive configuration for the training process. - - :param n_epochs: Number of training epochs to run - :param max_steps_per_epoch: Maximum number of steps to run per epoch - :param gradient_accumulation_steps: Number of steps to accumulate gradients before updating - :param max_validation_steps: (Optional) Maximum number of validation steps per epoch - :param data_config: (Optional) Configuration for data loading and formatting - :param optimizer_config: (Optional) Configuration for the optimization algorithm - :param efficiency_config: (Optional) Configuration for memory and compute optimizations - :param dtype: (Optional) Data type for model parameters (bf16, fp16, fp32) - """ - - n_epochs: int - max_steps_per_epoch: int = 1 - gradient_accumulation_steps: int = 1 - max_validation_steps: int | None = 1 - data_config: DataConfig | None = None - optimizer_config: OptimizerConfig | None = None - efficiency_config: EfficiencyConfig | None = None - dtype: str | None = "bf16" - - -@json_schema_type -class LoraFinetuningConfig(BaseModel): - """Configuration for Low-Rank Adaptation (LoRA) fine-tuning. - - :param type: Algorithm type identifier, always "LoRA" - :param lora_attn_modules: List of attention module names to apply LoRA to - :param apply_lora_to_mlp: Whether to apply LoRA to MLP layers - :param apply_lora_to_output: Whether to apply LoRA to output projection layers - :param rank: Rank of the LoRA adaptation (lower rank = fewer parameters) - :param alpha: LoRA scaling parameter that controls adaptation strength - :param use_dora: (Optional) Whether to use DoRA (Weight-Decomposed Low-Rank Adaptation) - :param quantize_base: (Optional) Whether to quantize the base model weights - """ - - type: Literal["LoRA"] = "LoRA" - lora_attn_modules: list[str] - apply_lora_to_mlp: bool - apply_lora_to_output: bool - rank: int - alpha: int - use_dora: bool | None = False - quantize_base: bool | None = False - - -@json_schema_type -class QATFinetuningConfig(BaseModel): - """Configuration for Quantization-Aware Training (QAT) fine-tuning. - - :param type: Algorithm type identifier, always "QAT" - :param quantizer_name: Name of the quantization algorithm to use - :param group_size: Size of groups for grouped quantization - """ - - type: Literal["QAT"] = "QAT" - quantizer_name: str - group_size: int - - -AlgorithmConfig = Annotated[LoraFinetuningConfig | QATFinetuningConfig, Field(discriminator="type")] -register_schema(AlgorithmConfig, name="AlgorithmConfig") - - -@json_schema_type -class PostTrainingJobLogStream(BaseModel): - """Stream of logs from a finetuning job. - - :param job_uuid: Unique identifier for the training job - :param log_lines: List of log message strings from the training process - """ - - job_uuid: str - log_lines: list[str] - - -@json_schema_type -class RLHFAlgorithm(Enum): - """Available reinforcement learning from human feedback algorithms. - :cvar dpo: Direct Preference Optimization algorithm - """ - - dpo = "dpo" - - -@json_schema_type -class DPOLossType(Enum): - sigmoid = "sigmoid" - hinge = "hinge" - ipo = "ipo" - kto_pair = "kto_pair" - - -@json_schema_type -class DPOAlignmentConfig(BaseModel): - """Configuration for Direct Preference Optimization (DPO) alignment. - - :param beta: Temperature parameter for the DPO loss - :param loss_type: The type of loss function to use for DPO - """ - - beta: float - loss_type: DPOLossType = DPOLossType.sigmoid - - -@json_schema_type -class PostTrainingRLHFRequest(BaseModel): - """Request to finetune a model using reinforcement learning from human feedback. - - :param job_uuid: Unique identifier for the training job - :param finetuned_model: URL or path to the base model to fine-tune - :param dataset_id: Unique identifier for the training dataset - :param validation_dataset_id: Unique identifier for the validation dataset - :param algorithm: RLHF algorithm to use for training - :param algorithm_config: Configuration parameters for the RLHF algorithm - :param optimizer_config: Configuration parameters for the optimization algorithm - :param training_config: Configuration parameters for the training process - :param hyperparam_search_config: Configuration for hyperparameter search - :param logger_config: Configuration for training logging - """ - - job_uuid: str - - finetuned_model: URL - - dataset_id: str - validation_dataset_id: str - - algorithm: RLHFAlgorithm - algorithm_config: DPOAlignmentConfig - - optimizer_config: OptimizerConfig - training_config: TrainingConfig - - # TODO: define these - hyperparam_search_config: dict[str, Any] - logger_config: dict[str, Any] - - -class PostTrainingJob(BaseModel): - job_uuid: str - - -@json_schema_type -class PostTrainingJobStatusResponse(BaseModel): - """Status of a finetuning job. - - :param job_uuid: Unique identifier for the training job - :param status: Current status of the training job - :param scheduled_at: (Optional) Timestamp when the job was scheduled - :param started_at: (Optional) Timestamp when the job execution began - :param completed_at: (Optional) Timestamp when the job finished, if completed - :param resources_allocated: (Optional) Information about computational resources allocated to the job - :param checkpoints: List of model checkpoints created during training - """ - - job_uuid: str - status: JobStatus - - scheduled_at: datetime | None = None - started_at: datetime | None = None - completed_at: datetime | None = None - - resources_allocated: dict[str, Any] | None = None - - checkpoints: list[Checkpoint] = Field(default_factory=list) - - -class ListPostTrainingJobsResponse(BaseModel): - data: list[PostTrainingJob] - - -@json_schema_type -class PostTrainingJobArtifactsResponse(BaseModel): - """Artifacts of a finetuning job. - - :param job_uuid: Unique identifier for the training job - :param checkpoints: List of model checkpoints created during training - """ - - job_uuid: str - checkpoints: list[Checkpoint] = Field(default_factory=list) - - # TODO(ashwin): metrics, evals - - -class PostTraining(Protocol): - @webmethod(route="/post-training/supervised-fine-tune", method="POST", level=LLAMA_STACK_API_V1ALPHA) - async def supervised_fine_tune( - self, - job_uuid: str, - training_config: TrainingConfig, - hyperparam_search_config: dict[str, Any], - logger_config: dict[str, Any], - model: str | None = Field( - default=None, - description="Model descriptor for training if not in provider config`", - ), - checkpoint_dir: str | None = None, - algorithm_config: AlgorithmConfig | None = None, - ) -> PostTrainingJob: - """Run supervised fine-tuning of a model. - - :param job_uuid: The UUID of the job to create. - :param training_config: The training configuration. - :param hyperparam_search_config: The hyperparam search configuration. - :param logger_config: The logger configuration. - :param model: The model to fine-tune. - :param checkpoint_dir: The directory to save checkpoint(s) to. - :param algorithm_config: The algorithm configuration. - :returns: A PostTrainingJob. - """ - ... - - @webmethod(route="/post-training/preference-optimize", method="POST", level=LLAMA_STACK_API_V1ALPHA) - async def preference_optimize( - self, - job_uuid: str, - finetuned_model: str, - algorithm_config: DPOAlignmentConfig, - training_config: TrainingConfig, - hyperparam_search_config: dict[str, Any], - logger_config: dict[str, Any], - ) -> PostTrainingJob: - """Run preference optimization of a model. - - :param job_uuid: The UUID of the job to create. - :param finetuned_model: The model to fine-tune. - :param algorithm_config: The algorithm configuration. - :param training_config: The training configuration. - :param hyperparam_search_config: The hyperparam search configuration. - :param logger_config: The logger configuration. - :returns: A PostTrainingJob. - """ - ... - - @webmethod(route="/post-training/jobs", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def get_training_jobs(self) -> ListPostTrainingJobsResponse: - """Get all training jobs. - - :returns: A ListPostTrainingJobsResponse. - """ - ... - - @webmethod(route="/post-training/job/status", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def get_training_job_status(self, job_uuid: str) -> PostTrainingJobStatusResponse: - """Get the status of a training job. - - :param job_uuid: The UUID of the job to get the status of. - :returns: A PostTrainingJobStatusResponse. - """ - ... - - @webmethod(route="/post-training/job/cancel", method="POST", level=LLAMA_STACK_API_V1ALPHA) - async def cancel_training_job(self, job_uuid: str) -> None: - """Cancel a training job. - - :param job_uuid: The UUID of the job to cancel. - """ - ... - - @webmethod(route="/post-training/job/artifacts", method="GET", level=LLAMA_STACK_API_V1ALPHA) - async def get_training_job_artifacts(self, job_uuid: str) -> PostTrainingJobArtifactsResponse: - """Get the artifacts of a training job. - - :param job_uuid: The UUID of the job to get the artifacts of. - :returns: A PostTrainingJobArtifactsResponse. - """ - ... diff --git a/src/llama_stack/apis/post_training/post_training_service.py b/src/llama_stack/apis/post_training/post_training_service.py new file mode 100644 index 000000000..0338e7b5c --- /dev/null +++ b/src/llama_stack/apis/post_training/post_training_service.py @@ -0,0 +1,64 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ( + AlgorithmConfig, + DPOAlignmentConfig, + ListPostTrainingJobsResponse, + PostTrainingJob, + PostTrainingJobArtifactsResponse, + PostTrainingJobStatusResponse, + TrainingConfig, +) + + +@runtime_checkable +@trace_protocol +class PostTrainingService(Protocol): + async def supervised_fine_tune( + self, + job_uuid: str, + training_config: TrainingConfig, + hyperparam_search_config: dict[str, Any], + logger_config: dict[str, Any], + model: str | None = None, + checkpoint_dir: str | None = None, + algorithm_config: AlgorithmConfig | None = None, + ) -> PostTrainingJob: + """Run supervised fine-tuning of a model.""" + ... + + async def preference_optimize( + self, + job_uuid: str, + finetuned_model: str, + algorithm_config: DPOAlignmentConfig, + training_config: TrainingConfig, + hyperparam_search_config: dict[str, Any], + logger_config: dict[str, Any], + ) -> PostTrainingJob: + """Run preference optimization of a model.""" + ... + + async def get_training_jobs(self) -> ListPostTrainingJobsResponse: + """Get all training jobs.""" + ... + + async def get_training_job_status(self, job_uuid: str) -> PostTrainingJobStatusResponse: + """Get the status of a training job.""" + ... + + async def cancel_training_job(self, job_uuid: str) -> None: + """Cancel a training job.""" + ... + + async def get_training_job_artifacts(self, job_uuid: str) -> PostTrainingJobArtifactsResponse: + """Get the artifacts of a training job.""" + ... diff --git a/src/llama_stack/apis/post_training/routes.py b/src/llama_stack/apis/post_training/routes.py new file mode 100644 index 000000000..3a1004799 --- /dev/null +++ b/src/llama_stack/apis/post_training/routes.py @@ -0,0 +1,199 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + + +from fastapi import Body, Depends, Query, Request + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1, LLAMA_STACK_API_V1ALPHA +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ( + ListPostTrainingJobsResponse, + PostTrainingJob, + PostTrainingJobArtifactsResponse, + PostTrainingJobStatusResponse, + PreferenceOptimizeRequest, + SupervisedFineTuneRequest, +) +from .post_training_service import PostTrainingService + + +def get_post_training_service(request: Request) -> PostTrainingService: + """Dependency to get the post training service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.post_training not in impls: + raise ValueError("Post Training API implementation not found") + return impls[Api.post_training] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Post Training"], + responses=standard_responses, +) + +router_v1alpha = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1ALPHA}", + tags=["Post Training"], + responses=standard_responses, +) + + +@router.post( + "/post-training/supervised-fine-tune", + response_model=PostTrainingJob, + summary="Run supervised fine-tuning of a model", + description="Run supervised fine-tuning of a model", + deprecated=True, +) +@router_v1alpha.post( + "/post-training/supervised-fine-tune", + response_model=PostTrainingJob, + summary="Run supervised fine-tuning of a model", + description="Run supervised fine-tuning of a model", +) +async def supervised_fine_tune( + body: SupervisedFineTuneRequest = Body(...), + svc: PostTrainingService = Depends(get_post_training_service), +) -> PostTrainingJob: + """Run supervised fine-tuning of a model.""" + return await svc.supervised_fine_tune( + job_uuid=body.job_uuid, + training_config=body.training_config, + hyperparam_search_config=body.hyperparam_search_config, + logger_config=body.logger_config, + model=body.model, + checkpoint_dir=body.checkpoint_dir, + algorithm_config=body.algorithm_config, + ) + + +@router.post( + "/post-training/preference-optimize", + response_model=PostTrainingJob, + summary="Run preference optimization of a model", + description="Run preference optimization of a model", + deprecated=True, +) +@router_v1alpha.post( + "/post-training/preference-optimize", + response_model=PostTrainingJob, + summary="Run preference optimization of a model", + description="Run preference optimization of a model", +) +async def preference_optimize( + body: PreferenceOptimizeRequest = Body(...), + svc: PostTrainingService = Depends(get_post_training_service), +) -> PostTrainingJob: + """Run preference optimization of a model.""" + return await svc.preference_optimize( + job_uuid=body.job_uuid, + finetuned_model=body.finetuned_model, + algorithm_config=body.algorithm_config, + training_config=body.training_config, + hyperparam_search_config=body.hyperparam_search_config, + logger_config=body.logger_config, + ) + + +@router.get( + "/post-training/jobs", + response_model=ListPostTrainingJobsResponse, + summary="Get all training jobs", + description="Get all training jobs", + deprecated=True, +) +@router_v1alpha.get( + "/post-training/jobs", + response_model=ListPostTrainingJobsResponse, + summary="Get all training jobs", + description="Get all training jobs", +) +async def get_training_jobs( + svc: PostTrainingService = Depends(get_post_training_service), +) -> ListPostTrainingJobsResponse: + """Get all training jobs.""" + return await svc.get_training_jobs() + + +@router.get( + "/post-training/job/status", + response_model=PostTrainingJobStatusResponse, + summary="Get the status of a training job", + description="Get the status of a training job", + deprecated=True, +) +@router_v1alpha.get( + "/post-training/job/status", + response_model=PostTrainingJobStatusResponse, + summary="Get the status of a training job", + description="Get the status of a training job", +) +async def get_training_job_status( + job_uuid: str = Query(..., description="The UUID of the job to get the status of"), + svc: PostTrainingService = Depends(get_post_training_service), +) -> PostTrainingJobStatusResponse: + """Get the status of a training job.""" + return await svc.get_training_job_status(job_uuid=job_uuid) + + +@router.post( + "/post-training/job/cancel", + response_model=None, + status_code=204, + summary="Cancel a training job", + description="Cancel a training job", + deprecated=True, +) +@router_v1alpha.post( + "/post-training/job/cancel", + response_model=None, + status_code=204, + summary="Cancel a training job", + description="Cancel a training job", +) +async def cancel_training_job( + job_uuid: str = Query(..., description="The UUID of the job to cancel"), + svc: PostTrainingService = Depends(get_post_training_service), +) -> None: + """Cancel a training job.""" + await svc.cancel_training_job(job_uuid=job_uuid) + + +@router.get( + "/post-training/job/artifacts", + response_model=PostTrainingJobArtifactsResponse, + summary="Get the artifacts of a training job", + description="Get the artifacts of a training job", + deprecated=True, +) +@router_v1alpha.get( + "/post-training/job/artifacts", + response_model=PostTrainingJobArtifactsResponse, + summary="Get the artifacts of a training job", + description="Get the artifacts of a training job", +) +async def get_training_job_artifacts( + job_uuid: str = Query(..., description="The UUID of the job to get the artifacts of"), + svc: PostTrainingService = Depends(get_post_training_service), +) -> PostTrainingJobArtifactsResponse: + """Get the artifacts of a training job.""" + return await svc.get_training_job_artifacts(job_uuid=job_uuid) + + +# For backward compatibility with the router registry system +def create_post_training_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Post Training API (legacy compatibility).""" + main_router = APIRouter() + main_router.include_router(router) + main_router.include_router(router_v1alpha) + return main_router + + +# Register the router factory +register_router(Api.post_training, create_post_training_router) diff --git a/src/llama_stack/apis/prompts/__init__.py b/src/llama_stack/apis/prompts/__init__.py index 6070f3450..6bda77a1c 100644 --- a/src/llama_stack/apis/prompts/__init__.py +++ b/src/llama_stack/apis/prompts/__init__.py @@ -4,6 +4,26 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .prompts import ListPromptsResponse, Prompt, Prompts +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import ( + CreatePromptRequest, + ListPromptsResponse, + Prompt, + SetDefaultVersionRequest, + UpdatePromptRequest, +) +from .prompts_service import PromptService -__all__ = ["Prompt", "Prompts", "ListPromptsResponse"] +# Backward compatibility - export Prompts as alias for PromptService +Prompts = PromptService + +__all__ = [ + "Prompts", + "PromptService", + "Prompt", + "ListPromptsResponse", + "CreatePromptRequest", + "UpdatePromptRequest", + "SetDefaultVersionRequest", +] diff --git a/src/llama_stack/apis/prompts/models.py b/src/llama_stack/apis/prompts/models.py new file mode 100644 index 000000000..a984d091b --- /dev/null +++ b/src/llama_stack/apis/prompts/models.py @@ -0,0 +1,113 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +import re +import secrets + +from pydantic import BaseModel, Field, field_validator, model_validator + +from llama_stack.schema_utils import json_schema_type + + +@json_schema_type +class Prompt(BaseModel): + """A prompt resource representing a stored OpenAI Compatible prompt template in Llama Stack.""" + + prompt: str | None = Field( + default=None, + description="The system prompt text with variable placeholders. Variables are only supported when using the Responses API.", + ) + version: int = Field(description="Version (integer starting at 1, incremented on save).", ge=1) + prompt_id: str = Field(description="Unique identifier formatted as 'pmpt_<48-digit-hash>'.") + variables: list[str] = Field( + default_factory=list, description="List of prompt variable names that can be used in the prompt template." + ) + is_default: bool = Field( + default=False, description="Boolean indicating whether this version is the default version for this prompt." + ) + + @field_validator("prompt_id") + @classmethod + def validate_prompt_id(cls, prompt_id: str) -> str: + if not isinstance(prompt_id, str): + raise TypeError("prompt_id must be a string in format 'pmpt_<48-digit-hash>'") + + if not prompt_id.startswith("pmpt_"): + raise ValueError("prompt_id must start with 'pmpt_' prefix") + + hex_part = prompt_id[5:] + if len(hex_part) != 48: + raise ValueError("prompt_id must be in format 'pmpt_<48-digit-hash>' (48 lowercase hex chars)") + + for char in hex_part: + if char not in "0123456789abcdef": + raise ValueError("prompt_id hex part must contain only lowercase hex characters [0-9a-f]") + + return prompt_id + + @field_validator("version") + @classmethod + def validate_version(cls, prompt_version: int) -> int: + if prompt_version < 1: + raise ValueError("version must be >= 1") + return prompt_version + + @model_validator(mode="after") + def validate_prompt_variables(self): + """Validate that all variables used in the prompt are declared in the variables list.""" + if not self.prompt: + return self + + prompt_variables = set(re.findall(r"{{\s*(\w+)\s*}}", self.prompt)) + declared_variables = set(self.variables) + + undeclared = prompt_variables - declared_variables + if undeclared: + raise ValueError(f"Prompt contains undeclared variables: {sorted(undeclared)}") + + return self + + @classmethod + def generate_prompt_id(cls) -> str: + # Generate 48 hex characters (24 bytes) + random_bytes = secrets.token_bytes(24) + hex_string = random_bytes.hex() + return f"pmpt_{hex_string}" + + +class ListPromptsResponse(BaseModel): + """Response model to list prompts.""" + + data: list[Prompt] = Field(description="List of prompt resources.") + + +@json_schema_type +class CreatePromptRequest(BaseModel): + """Request model for creating a new prompt.""" + + prompt: str = Field(..., description="The prompt text content with variable placeholders.") + variables: list[str] | None = Field( + default=None, description="List of variable names that can be used in the prompt template." + ) + + +@json_schema_type +class UpdatePromptRequest(BaseModel): + """Request model for updating an existing prompt.""" + + prompt: str = Field(..., description="The updated prompt text content.") + version: int = Field(..., description="The current version of the prompt being updated.") + variables: list[str] | None = Field( + default=None, description="Updated list of variable names that can be used in the prompt template." + ) + set_as_default: bool = Field(default=True, description="Set the new version as the default (default=True).") + + +@json_schema_type +class SetDefaultVersionRequest(BaseModel): + """Request model for setting a prompt version as default.""" + + version: int = Field(..., description="The version to set as default.") diff --git a/src/llama_stack/apis/prompts/prompts.py b/src/llama_stack/apis/prompts/prompts.py deleted file mode 100644 index 4651b9294..000000000 --- a/src/llama_stack/apis/prompts/prompts.py +++ /dev/null @@ -1,204 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -import re -import secrets -from typing import Protocol, runtime_checkable - -from pydantic import BaseModel, Field, field_validator, model_validator - -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, webmethod - - -@json_schema_type -class Prompt(BaseModel): - """A prompt resource representing a stored OpenAI Compatible prompt template in Llama Stack. - - :param prompt: The system prompt text with variable placeholders. Variables are only supported when using the Responses API. - :param version: Version (integer starting at 1, incremented on save) - :param prompt_id: Unique identifier formatted as 'pmpt_<48-digit-hash>' - :param variables: List of prompt variable names that can be used in the prompt template - :param is_default: Boolean indicating whether this version is the default version for this prompt - """ - - prompt: str | None = Field(default=None, description="The system prompt with variable placeholders") - version: int = Field(description="Version (integer starting at 1, incremented on save)", ge=1) - prompt_id: str = Field(description="Unique identifier in format 'pmpt_<48-digit-hash>'") - variables: list[str] = Field( - default_factory=list, description="List of variable names that can be used in the prompt template" - ) - is_default: bool = Field( - default=False, description="Boolean indicating whether this version is the default version" - ) - - @field_validator("prompt_id") - @classmethod - def validate_prompt_id(cls, prompt_id: str) -> str: - if not isinstance(prompt_id, str): - raise TypeError("prompt_id must be a string in format 'pmpt_<48-digit-hash>'") - - if not prompt_id.startswith("pmpt_"): - raise ValueError("prompt_id must start with 'pmpt_' prefix") - - hex_part = prompt_id[5:] - if len(hex_part) != 48: - raise ValueError("prompt_id must be in format 'pmpt_<48-digit-hash>' (48 lowercase hex chars)") - - for char in hex_part: - if char not in "0123456789abcdef": - raise ValueError("prompt_id hex part must contain only lowercase hex characters [0-9a-f]") - - return prompt_id - - @field_validator("version") - @classmethod - def validate_version(cls, prompt_version: int) -> int: - if prompt_version < 1: - raise ValueError("version must be >= 1") - return prompt_version - - @model_validator(mode="after") - def validate_prompt_variables(self): - """Validate that all variables used in the prompt are declared in the variables list.""" - if not self.prompt: - return self - - prompt_variables = set(re.findall(r"{{\s*(\w+)\s*}}", self.prompt)) - declared_variables = set(self.variables) - - undeclared = prompt_variables - declared_variables - if undeclared: - raise ValueError(f"Prompt contains undeclared variables: {sorted(undeclared)}") - - return self - - @classmethod - def generate_prompt_id(cls) -> str: - # Generate 48 hex characters (24 bytes) - random_bytes = secrets.token_bytes(24) - hex_string = random_bytes.hex() - return f"pmpt_{hex_string}" - - -class ListPromptsResponse(BaseModel): - """Response model to list prompts.""" - - data: list[Prompt] - - -@runtime_checkable -@trace_protocol -class Prompts(Protocol): - """Prompts - - Protocol for prompt management operations.""" - - @webmethod(route="/prompts", method="GET", level=LLAMA_STACK_API_V1) - async def list_prompts(self) -> ListPromptsResponse: - """List all prompts. - - :returns: A ListPromptsResponse containing all prompts. - """ - ... - - @webmethod(route="/prompts/{prompt_id}/versions", method="GET", level=LLAMA_STACK_API_V1) - async def list_prompt_versions( - self, - prompt_id: str, - ) -> ListPromptsResponse: - """List prompt versions. - - List all versions of a specific prompt. - - :param prompt_id: The identifier of the prompt to list versions for. - :returns: A ListPromptsResponse containing all versions of the prompt. - """ - ... - - @webmethod(route="/prompts/{prompt_id}", method="GET", level=LLAMA_STACK_API_V1) - async def get_prompt( - self, - prompt_id: str, - version: int | None = None, - ) -> Prompt: - """Get prompt. - - Get a prompt by its identifier and optional version. - - :param prompt_id: The identifier of the prompt to get. - :param version: The version of the prompt to get (defaults to latest). - :returns: A Prompt resource. - """ - ... - - @webmethod(route="/prompts", method="POST", level=LLAMA_STACK_API_V1) - async def create_prompt( - self, - prompt: str, - variables: list[str] | None = None, - ) -> Prompt: - """Create prompt. - - Create a new prompt. - - :param prompt: The prompt text content with variable placeholders. - :param variables: List of variable names that can be used in the prompt template. - :returns: The created Prompt resource. - """ - ... - - @webmethod(route="/prompts/{prompt_id}", method="PUT", level=LLAMA_STACK_API_V1) - async def update_prompt( - self, - prompt_id: str, - prompt: str, - version: int, - variables: list[str] | None = None, - set_as_default: bool = True, - ) -> Prompt: - """Update prompt. - - Update an existing prompt (increments version). - - :param prompt_id: The identifier of the prompt to update. - :param prompt: The updated prompt text content. - :param version: The current version of the prompt being updated. - :param variables: Updated list of variable names that can be used in the prompt template. - :param set_as_default: Set the new version as the default (default=True). - :returns: The updated Prompt resource with incremented version. - """ - ... - - @webmethod(route="/prompts/{prompt_id}", method="DELETE", level=LLAMA_STACK_API_V1) - async def delete_prompt( - self, - prompt_id: str, - ) -> None: - """Delete prompt. - - Delete a prompt. - - :param prompt_id: The identifier of the prompt to delete. - """ - ... - - @webmethod(route="/prompts/{prompt_id}/set-default-version", method="PUT", level=LLAMA_STACK_API_V1) - async def set_default_version( - self, - prompt_id: str, - version: int, - ) -> Prompt: - """Set prompt version. - - Set which version of a prompt should be the default in get_prompt (latest). - - :param prompt_id: The identifier of the prompt. - :param version: The version to set as default. - :returns: The prompt with the specified version now set as default. - """ - ... diff --git a/src/llama_stack/apis/prompts/prompts_service.py b/src/llama_stack/apis/prompts/prompts_service.py new file mode 100644 index 000000000..b51bb27e6 --- /dev/null +++ b/src/llama_stack/apis/prompts/prompts_service.py @@ -0,0 +1,72 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Protocol, runtime_checkable + +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ListPromptsResponse, Prompt + + +@runtime_checkable +@trace_protocol +class PromptService(Protocol): + """Prompts + + Protocol for prompt management operations.""" + + async def list_prompts(self) -> ListPromptsResponse: + """List all prompts.""" + ... + + async def list_prompt_versions( + self, + prompt_id: str, + ) -> ListPromptsResponse: + """List prompt versions.""" + ... + + async def get_prompt( + self, + prompt_id: str, + version: int | None = None, + ) -> Prompt: + """Get prompt.""" + ... + + async def create_prompt( + self, + prompt: str, + variables: list[str] | None = None, + ) -> Prompt: + """Create prompt.""" + ... + + async def update_prompt( + self, + prompt_id: str, + prompt: str, + version: int, + variables: list[str] | None = None, + set_as_default: bool = True, + ) -> Prompt: + """Update prompt.""" + ... + + async def delete_prompt( + self, + prompt_id: str, + ) -> None: + """Delete prompt.""" + ... + + async def set_default_version( + self, + prompt_id: str, + version: int, + ) -> Prompt: + """Set prompt version.""" + ... diff --git a/src/llama_stack/apis/prompts/routes.py b/src/llama_stack/apis/prompts/routes.py new file mode 100644 index 000000000..45542b8fb --- /dev/null +++ b/src/llama_stack/apis/prompts/routes.py @@ -0,0 +1,154 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ( + CreatePromptRequest, + ListPromptsResponse, + Prompt, + SetDefaultVersionRequest, + UpdatePromptRequest, +) +from .prompts_service import PromptService + + +def get_prompt_service(request: Request) -> PromptService: + """Dependency to get the prompt service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.prompts not in impls: + raise ValueError("Prompts API implementation not found") + return impls[Api.prompts] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Prompts"], + responses=standard_responses, +) + + +@router.get( + "/prompts", + response_model=ListPromptsResponse, + summary="List all prompts", + description="List all prompts registered in Llama Stack", +) +async def list_prompts(svc: PromptService = Depends(get_prompt_service)) -> ListPromptsResponse: + """List all prompts.""" + return await svc.list_prompts() + + +@router.get( + "/prompts/{prompt_id}/versions", + response_model=ListPromptsResponse, + summary="List prompt versions", + description="List all versions of a specific prompt", +) +async def list_prompt_versions( + prompt_id: Annotated[str, FastAPIPath(..., description="The identifier of the prompt to list versions for")], + svc: PromptService = Depends(get_prompt_service), +) -> ListPromptsResponse: + """List prompt versions.""" + return await svc.list_prompt_versions(prompt_id=prompt_id) + + +@router.get( + "/prompts/{prompt_id}", + response_model=Prompt, + summary="Get prompt", + description="Get a prompt by its identifier and optional version", +) +async def get_prompt( + prompt_id: Annotated[str, FastAPIPath(..., description="The identifier of the prompt to get")], + version: int | None = Query(None, description="The version of the prompt to get (defaults to latest)"), + svc: PromptService = Depends(get_prompt_service), +) -> Prompt: + """Get prompt by its identifier and optional version.""" + return await svc.get_prompt(prompt_id=prompt_id, version=version) + + +@router.post( + "/prompts", + response_model=Prompt, + summary="Create prompt", + description="Create a new prompt", +) +async def create_prompt( + body: CreatePromptRequest = Body(...), + svc: PromptService = Depends(get_prompt_service), +) -> Prompt: + """Create a new prompt.""" + return await svc.create_prompt(prompt=body.prompt, variables=body.variables) + + +@router.post( + "/prompts/{prompt_id}", + response_model=Prompt, + summary="Update prompt", + description="Update an existing prompt (increments version)", +) +async def update_prompt( + prompt_id: Annotated[str, FastAPIPath(..., description="The identifier of the prompt to update")], + body: UpdatePromptRequest = Body(...), + svc: PromptService = Depends(get_prompt_service), +) -> Prompt: + """Update an existing prompt.""" + return await svc.update_prompt( + prompt_id=prompt_id, + prompt=body.prompt, + version=body.version, + variables=body.variables, + set_as_default=body.set_as_default, + ) + + +@router.delete( + "/prompts/{prompt_id}", + response_model=None, + status_code=204, + summary="Delete prompt", + description="Delete a prompt", +) +async def delete_prompt( + prompt_id: Annotated[str, FastAPIPath(..., description="The identifier of the prompt to delete")], + svc: PromptService = Depends(get_prompt_service), +) -> None: + """Delete a prompt.""" + await svc.delete_prompt(prompt_id=prompt_id) + + +@router.post( + "/prompts/{prompt_id}/set-default-version", + response_model=Prompt, + summary="Set prompt version", + description="Set which version of a prompt should be the default in get_prompt (latest)", +) +async def set_default_version( + prompt_id: Annotated[str, FastAPIPath(..., description="The identifier of the prompt")], + body: SetDefaultVersionRequest = Body(...), + svc: PromptService = Depends(get_prompt_service), +) -> Prompt: + """Set which version of a prompt should be the default.""" + return await svc.set_default_version(prompt_id=prompt_id, version=body.version) + + +# For backward compatibility with the router registry system +def create_prompts_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Prompts API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.prompts, create_prompts_router) diff --git a/src/llama_stack/apis/providers/__init__.py b/src/llama_stack/apis/providers/__init__.py index e35e2fe47..951968bf5 100644 --- a/src/llama_stack/apis/providers/__init__.py +++ b/src/llama_stack/apis/providers/__init__.py @@ -4,4 +4,12 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .providers import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import ListProvidersResponse, ProviderInfo +from .providers_service import ProviderService + +# Backward compatibility - export Providers as alias for ProviderService +Providers = ProviderService + +__all__ = ["Providers", "ProviderService", "ListProvidersResponse", "ProviderInfo"] diff --git a/src/llama_stack/apis/providers/models.py b/src/llama_stack/apis/providers/models.py new file mode 100644 index 000000000..f6b4ab2ac --- /dev/null +++ b/src/llama_stack/apis/providers/models.py @@ -0,0 +1,29 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any + +from pydantic import BaseModel, Field + +from llama_stack.providers.datatypes import HealthResponse +from llama_stack.schema_utils import json_schema_type + + +@json_schema_type +class ProviderInfo(BaseModel): + """Information about a registered provider including its configuration and health status.""" + + api: str = Field(..., description="The API name this provider implements") + provider_id: str = Field(..., description="Unique identifier for the provider") + provider_type: str = Field(..., description="The type of provider implementation") + config: dict[str, Any] = Field(..., description="Configuration parameters for the provider") + health: HealthResponse = Field(..., description="Current health status of the provider") + + +class ListProvidersResponse(BaseModel): + """Response containing a list of all available providers.""" + + data: list[ProviderInfo] = Field(..., description="List of provider information objects") diff --git a/src/llama_stack/apis/providers/providers.py b/src/llama_stack/apis/providers/providers.py deleted file mode 100644 index e1872571d..000000000 --- a/src/llama_stack/apis/providers/providers.py +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from typing import Any, Protocol, runtime_checkable - -from pydantic import BaseModel - -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.providers.datatypes import HealthResponse -from llama_stack.schema_utils import json_schema_type, webmethod - - -@json_schema_type -class ProviderInfo(BaseModel): - """Information about a registered provider including its configuration and health status. - - :param api: The API name this provider implements - :param provider_id: Unique identifier for the provider - :param provider_type: The type of provider implementation - :param config: Configuration parameters for the provider - :param health: Current health status of the provider - """ - - api: str - provider_id: str - provider_type: str - config: dict[str, Any] - health: HealthResponse - - -class ListProvidersResponse(BaseModel): - """Response containing a list of all available providers. - - :param data: List of provider information objects - """ - - data: list[ProviderInfo] - - -@runtime_checkable -class Providers(Protocol): - """Providers - - Providers API for inspecting, listing, and modifying providers and their configurations. - """ - - @webmethod(route="/providers", method="GET", level=LLAMA_STACK_API_V1) - async def list_providers(self) -> ListProvidersResponse: - """List providers. - - List all available providers. - - :returns: A ListProvidersResponse containing information about all providers. - """ - ... - - @webmethod(route="/providers/{provider_id}", method="GET", level=LLAMA_STACK_API_V1) - async def inspect_provider(self, provider_id: str) -> ProviderInfo: - """Get provider. - - Get detailed information about a specific provider. - - :param provider_id: The ID of the provider to inspect. - :returns: A ProviderInfo object containing the provider's details. - """ - ... diff --git a/src/llama_stack/apis/providers/providers_service.py b/src/llama_stack/apis/providers/providers_service.py new file mode 100644 index 000000000..1a7a86560 --- /dev/null +++ b/src/llama_stack/apis/providers/providers_service.py @@ -0,0 +1,25 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Protocol, runtime_checkable + +from .models import ListProvidersResponse, ProviderInfo + + +@runtime_checkable +class ProviderService(Protocol): + """Providers + + Providers API for inspecting, listing, and modifying providers and their configurations. + """ + + async def list_providers(self) -> ListProvidersResponse: + """List providers.""" + ... + + async def inspect_provider(self, provider_id: str) -> ProviderInfo: + """Get provider.""" + ... diff --git a/src/llama_stack/apis/providers/routes.py b/src/llama_stack/apis/providers/routes.py new file mode 100644 index 000000000..53a09443b --- /dev/null +++ b/src/llama_stack/apis/providers/routes.py @@ -0,0 +1,68 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Depends, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ListProvidersResponse, ProviderInfo +from .providers_service import ProviderService + + +def get_provider_service(request: Request) -> ProviderService: + """Dependency to get the provider service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.providers not in impls: + raise ValueError("Providers API implementation not found") + return impls[Api.providers] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Providers"], + responses=standard_responses, +) + + +@router.get( + "/providers", + response_model=ListProvidersResponse, + summary="List providers", + description="List all available providers", +) +async def list_providers(svc: ProviderService = Depends(get_provider_service)) -> ListProvidersResponse: + """List all available providers.""" + return await svc.list_providers() + + +@router.get( + "/providers/{provider_id}", + response_model=ProviderInfo, + summary="Get provider", + description="Get detailed information about a specific provider", +) +async def inspect_provider( + provider_id: Annotated[str, FastAPIPath(..., description="The ID of the provider to inspect")], + svc: ProviderService = Depends(get_provider_service), +) -> ProviderInfo: + """Get detailed information about a specific provider.""" + return await svc.inspect_provider(provider_id=provider_id) + + +# For backward compatibility with the router registry system +def create_providers_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Providers API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.providers, create_providers_router) diff --git a/src/llama_stack/apis/safety/__init__.py b/src/llama_stack/apis/safety/__init__.py index d93bc1355..d6396300d 100644 --- a/src/llama_stack/apis/safety/__init__.py +++ b/src/llama_stack/apis/safety/__init__.py @@ -4,4 +4,31 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .safety import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import ( + ModerationObject, + ModerationObjectResults, + RunModerationRequest, + RunShieldRequest, + RunShieldResponse, + SafetyViolation, + ViolationLevel, +) +from .safety_service import SafetyService, ShieldStore + +# Backward compatibility - export Safety as alias for SafetyService +Safety = SafetyService + +__all__ = [ + "Safety", + "SafetyService", + "ShieldStore", + "ModerationObject", + "ModerationObjectResults", + "RunShieldRequest", + "RunShieldResponse", + "RunModerationRequest", + "SafetyViolation", + "ViolationLevel", +] diff --git a/src/llama_stack/apis/safety/models.py b/src/llama_stack/apis/safety/models.py new file mode 100644 index 000000000..9aa109ddc --- /dev/null +++ b/src/llama_stack/apis/safety/models.py @@ -0,0 +1,96 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import Enum +from typing import Any + +from pydantic import BaseModel, Field + +from llama_stack.apis.inference import OpenAIMessageParam +from llama_stack.schema_utils import json_schema_type + + +@json_schema_type +class ModerationObjectResults(BaseModel): + """A moderation object.""" + + flagged: bool = Field(..., description="Whether any of the below categories are flagged.") + categories: dict[str, bool] | None = Field( + default=None, description="A list of the categories, and whether they are flagged or not." + ) + category_applied_input_types: dict[str, list[str]] | None = Field( + default=None, + description="A list of the categories along with the input type(s) that the score applies to.", + ) + category_scores: dict[str, float] | None = Field( + default=None, description="A list of the categories along with their scores as predicted by model." + ) + user_message: str | None = Field(default=None, description="User message.") + metadata: dict[str, Any] = Field(default_factory=dict, description="Additional metadata.") + + +@json_schema_type +class ModerationObject(BaseModel): + """A moderation object.""" + + id: str = Field(..., description="The unique identifier for the moderation request.") + model: str = Field(..., description="The model used to generate the moderation results.") + results: list[ModerationObjectResults] = Field(..., description="A list of moderation objects.") + + +@json_schema_type +class ViolationLevel(Enum): + """Severity level of a safety violation. + + :cvar INFO: Informational level violation that does not require action + :cvar WARN: Warning level violation that suggests caution but allows continuation + :cvar ERROR: Error level violation that requires blocking or intervention + """ + + INFO = "info" + WARN = "warn" + ERROR = "error" + + +@json_schema_type +class SafetyViolation(BaseModel): + """Details of a safety violation detected by content moderation.""" + + violation_level: ViolationLevel = Field(..., description="Severity level of the violation.") + user_message: str | None = Field(default=None, description="Message to convey to the user about the violation.") + metadata: dict[str, Any] = Field( + default_factory=dict, + description="Additional metadata including specific violation codes for debugging and telemetry.", + ) + + +@json_schema_type +class RunShieldResponse(BaseModel): + """Response from running a safety shield.""" + + violation: SafetyViolation | None = Field( + default=None, description="Safety violation detected by the shield, if any." + ) + + +@json_schema_type +class RunShieldRequest(BaseModel): + """Request model for running a shield.""" + + shield_id: str = Field(..., description="The identifier of the shield to run.") + messages: list[OpenAIMessageParam] = Field(..., description="The messages to run the shield on.") + params: dict[str, Any] = Field(..., description="The parameters of the shield.") + + +@json_schema_type +class RunModerationRequest(BaseModel): + """Request model for running moderation.""" + + input: str | list[str] = Field( + ..., + description="Input (or inputs) to classify. Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models.", + ) + model: str | None = Field(default=None, description="The content moderation model you would like to use.") diff --git a/src/llama_stack/apis/safety/routes.py b/src/llama_stack/apis/safety/routes.py new file mode 100644 index 000000000..2896cd86a --- /dev/null +++ b/src/llama_stack/apis/safety/routes.py @@ -0,0 +1,68 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from fastapi import Body, Depends, Request + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ModerationObject, RunModerationRequest, RunShieldRequest, RunShieldResponse +from .safety_service import SafetyService + + +def get_safety_service(request: Request) -> SafetyService: + """Dependency to get the safety service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.safety not in impls: + raise ValueError("Safety API implementation not found") + return impls[Api.safety] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Safety"], + responses=standard_responses, +) + + +@router.post( + "/safety/run-shield", + response_model=RunShieldResponse, + summary="Run shield.", + description="Run a shield.", +) +async def run_shield( + body: RunShieldRequest = Body(...), + svc: SafetyService = Depends(get_safety_service), +) -> RunShieldResponse: + """Run a shield.""" + return await svc.run_shield(shield_id=body.shield_id, messages=body.messages, params=body.params) + + +@router.post( + "/moderations", + response_model=ModerationObject, + summary="Create moderation.", + description="Classifies if text and/or image inputs are potentially harmful.", +) +async def run_moderation( + body: RunModerationRequest = Body(...), + svc: SafetyService = Depends(get_safety_service), +) -> ModerationObject: + """Create moderation.""" + return await svc.run_moderation(input=body.input, model=body.model) + + +# For backward compatibility with the router registry system +def create_safety_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Safety API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.safety, create_safety_router) diff --git a/src/llama_stack/apis/safety/safety.py b/src/llama_stack/apis/safety/safety.py deleted file mode 100644 index 97fffcff1..000000000 --- a/src/llama_stack/apis/safety/safety.py +++ /dev/null @@ -1,134 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from enum import Enum -from typing import Any, Protocol, runtime_checkable - -from pydantic import BaseModel, Field - -from llama_stack.apis.inference import OpenAIMessageParam -from llama_stack.apis.shields import Shield -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, webmethod - - -@json_schema_type -class ModerationObjectResults(BaseModel): - """A moderation object. - :param flagged: Whether any of the below categories are flagged. - :param categories: A list of the categories, and whether they are flagged or not. - :param category_applied_input_types: A list of the categories along with the input type(s) that the score applies to. - :param category_scores: A list of the categories along with their scores as predicted by model. - """ - - flagged: bool - categories: dict[str, bool] | None = None - category_applied_input_types: dict[str, list[str]] | None = None - category_scores: dict[str, float] | None = None - user_message: str | None = None - metadata: dict[str, Any] = Field(default_factory=dict) - - -@json_schema_type -class ModerationObject(BaseModel): - """A moderation object. - :param id: The unique identifier for the moderation request. - :param model: The model used to generate the moderation results. - :param results: A list of moderation objects - """ - - id: str - model: str - results: list[ModerationObjectResults] - - -@json_schema_type -class ViolationLevel(Enum): - """Severity level of a safety violation. - - :cvar INFO: Informational level violation that does not require action - :cvar WARN: Warning level violation that suggests caution but allows continuation - :cvar ERROR: Error level violation that requires blocking or intervention - """ - - INFO = "info" - WARN = "warn" - ERROR = "error" - - -@json_schema_type -class SafetyViolation(BaseModel): - """Details of a safety violation detected by content moderation. - - :param violation_level: Severity level of the violation - :param user_message: (Optional) Message to convey to the user about the violation - :param metadata: Additional metadata including specific violation codes for debugging and telemetry - """ - - violation_level: ViolationLevel - - # what message should you convey to the user - user_message: str | None = None - - # additional metadata (including specific violation codes) more for - # debugging, telemetry - metadata: dict[str, Any] = Field(default_factory=dict) - - -@json_schema_type -class RunShieldResponse(BaseModel): - """Response from running a safety shield. - - :param violation: (Optional) Safety violation detected by the shield, if any - """ - - violation: SafetyViolation | None = None - - -class ShieldStore(Protocol): - async def get_shield(self, identifier: str) -> Shield: ... - - -@runtime_checkable -@trace_protocol -class Safety(Protocol): - """Safety - - OpenAI-compatible Moderations API. - """ - - shield_store: ShieldStore - - @webmethod(route="/safety/run-shield", method="POST", level=LLAMA_STACK_API_V1) - async def run_shield( - self, - shield_id: str, - messages: list[OpenAIMessageParam], - params: dict[str, Any], - ) -> RunShieldResponse: - """Run shield. - - Run a shield. - - :param shield_id: The identifier of the shield to run. - :param messages: The messages to run the shield on. - :param params: The parameters of the shield. - :returns: A RunShieldResponse. - """ - ... - - @webmethod(route="/moderations", method="POST", level=LLAMA_STACK_API_V1) - async def run_moderation(self, input: str | list[str], model: str | None = None) -> ModerationObject: - """Create moderation. - - Classifies if text and/or image inputs are potentially harmful. - :param input: Input (or inputs) to classify. - Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models. - :param model: (Optional) The content moderation model you would like to use. - :returns: A moderation object. - """ - ... diff --git a/src/llama_stack/apis/safety/safety_service.py b/src/llama_stack/apis/safety/safety_service.py new file mode 100644 index 000000000..12bd43f89 --- /dev/null +++ b/src/llama_stack/apis/safety/safety_service.py @@ -0,0 +1,41 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.apis.inference import OpenAIMessageParam +from llama_stack.apis.shields import Shield +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ModerationObject, RunShieldResponse + + +class ShieldStore(Protocol): + async def get_shield(self, identifier: str) -> Shield: ... + + +@runtime_checkable +@trace_protocol +class SafetyService(Protocol): + """Safety + + OpenAI-compatible Moderations API. + """ + + shield_store: ShieldStore + + async def run_shield( + self, + shield_id: str, + messages: list[OpenAIMessageParam], + params: dict[str, Any], + ) -> RunShieldResponse: + """Run shield.""" + ... + + async def run_moderation(self, input: str | list[str], model: str | None = None) -> ModerationObject: + """Create moderation.""" + ... diff --git a/src/llama_stack/apis/scoring/__init__.py b/src/llama_stack/apis/scoring/__init__.py index 624b9e704..e9ccc3c24 100644 --- a/src/llama_stack/apis/scoring/__init__.py +++ b/src/llama_stack/apis/scoring/__init__.py @@ -4,4 +4,29 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .scoring import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import ( + ScoreBatchRequest, + ScoreBatchResponse, + ScoreRequest, + ScoreResponse, + ScoringResult, + ScoringResultRow, +) +from .scoring_service import ScoringFunctionStore, ScoringService + +# Backward compatibility - export Scoring as alias for ScoringService +Scoring = ScoringService + +__all__ = [ + "Scoring", + "ScoringService", + "ScoringFunctionStore", + "ScoreBatchRequest", + "ScoreBatchResponse", + "ScoreRequest", + "ScoreResponse", + "ScoringResult", + "ScoringResultRow", +] diff --git a/src/llama_stack/apis/scoring/models.py b/src/llama_stack/apis/scoring/models.py new file mode 100644 index 000000000..04c111e50 --- /dev/null +++ b/src/llama_stack/apis/scoring/models.py @@ -0,0 +1,61 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any + +from pydantic import BaseModel, Field + +from llama_stack.apis.scoring_functions import ScoringFnParams +from llama_stack.schema_utils import json_schema_type + +# mapping of metric to value +ScoringResultRow = dict[str, Any] + + +@json_schema_type +class ScoringResult(BaseModel): + """A scoring result for a single row.""" + + score_rows: list[ScoringResultRow] = Field( + ..., description="The scoring result for each row. Each row is a map of column name to value" + ) + aggregated_results: dict[str, Any] = Field(..., description="Map of metric name to aggregated value") + + +@json_schema_type +class ScoreBatchResponse(BaseModel): + """Response from batch scoring operations on datasets.""" + + dataset_id: str | None = Field(default=None, description="The identifier of the dataset that was scored") + results: dict[str, ScoringResult] = Field(..., description="A map of scoring function name to ScoringResult") + + +@json_schema_type +class ScoreResponse(BaseModel): + """The response from scoring.""" + + results: dict[str, ScoringResult] = Field(..., description="A map of scoring function name to ScoringResult") + + +@json_schema_type +class ScoreBatchRequest(BaseModel): + """Request for batch scoring operations.""" + + dataset_id: str = Field(..., description="The ID of the dataset to score") + scoring_functions: dict[str, ScoringFnParams | None] = Field( + ..., description="The scoring functions to use for the scoring" + ) + save_results_dataset: bool = Field(default=False, description="Whether to save the results to a dataset") + + +@json_schema_type +class ScoreRequest(BaseModel): + """Request for scoring a list of rows.""" + + input_rows: list[dict[str, Any]] = Field(..., description="The rows to score") + scoring_functions: dict[str, ScoringFnParams | None] = Field( + ..., description="The scoring functions to use for the scoring" + ) diff --git a/src/llama_stack/apis/scoring/routes.py b/src/llama_stack/apis/scoring/routes.py new file mode 100644 index 000000000..4f7747924 --- /dev/null +++ b/src/llama_stack/apis/scoring/routes.py @@ -0,0 +1,75 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from fastapi import Body, Depends, Request + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ScoreBatchRequest, ScoreBatchResponse, ScoreRequest, ScoreResponse +from .scoring_service import ScoringService + + +def get_scoring_service(request: Request) -> ScoringService: + """Dependency to get the scoring service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.scoring not in impls: + raise ValueError("Scoring API implementation not found") + return impls[Api.scoring] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Scoring"], + responses=standard_responses, +) + + +@router.post( + "/scoring/score-batch", + response_model=ScoreBatchResponse, + summary="Score a batch of rows", + description="Score a batch of rows from a dataset", +) +async def score_batch( + body: ScoreBatchRequest = Body(...), + svc: ScoringService = Depends(get_scoring_service), +) -> ScoreBatchResponse: + """Score a batch of rows from a dataset.""" + return await svc.score_batch( + dataset_id=body.dataset_id, + scoring_functions=body.scoring_functions, + save_results_dataset=body.save_results_dataset, + ) + + +@router.post( + "/scoring/score", + response_model=ScoreResponse, + summary="Score a list of rows", + description="Score a list of rows", +) +async def score( + body: ScoreRequest = Body(...), + svc: ScoringService = Depends(get_scoring_service), +) -> ScoreResponse: + """Score a list of rows.""" + return await svc.score( + input_rows=body.input_rows, + scoring_functions=body.scoring_functions, + ) + + +# For backward compatibility with the router registry system +def create_scoring_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Scoring API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.scoring, create_scoring_router) diff --git a/src/llama_stack/apis/scoring/scoring.py b/src/llama_stack/apis/scoring/scoring.py deleted file mode 100644 index 03d943e94..000000000 --- a/src/llama_stack/apis/scoring/scoring.py +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from typing import Any, Protocol, runtime_checkable - -from pydantic import BaseModel - -from llama_stack.apis.scoring_functions import ScoringFn, ScoringFnParams -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.schema_utils import json_schema_type, webmethod - -# mapping of metric to value -ScoringResultRow = dict[str, Any] - - -@json_schema_type -class ScoringResult(BaseModel): - """ - A scoring result for a single row. - - :param score_rows: The scoring result for each row. Each row is a map of column name to value. - :param aggregated_results: Map of metric name to aggregated value - """ - - score_rows: list[ScoringResultRow] - # aggregated metrics to value - aggregated_results: dict[str, Any] - - -@json_schema_type -class ScoreBatchResponse(BaseModel): - """Response from batch scoring operations on datasets. - - :param dataset_id: (Optional) The identifier of the dataset that was scored - :param results: A map of scoring function name to ScoringResult - """ - - dataset_id: str | None = None - results: dict[str, ScoringResult] - - -@json_schema_type -class ScoreResponse(BaseModel): - """ - The response from scoring. - - :param results: A map of scoring function name to ScoringResult. - """ - - # each key in the dict is a scoring function name - results: dict[str, ScoringResult] - - -class ScoringFunctionStore(Protocol): - def get_scoring_function(self, scoring_fn_id: str) -> ScoringFn: ... - - -@runtime_checkable -class Scoring(Protocol): - scoring_function_store: ScoringFunctionStore - - @webmethod(route="/scoring/score-batch", method="POST", level=LLAMA_STACK_API_V1) - async def score_batch( - self, - dataset_id: str, - scoring_functions: dict[str, ScoringFnParams | None], - save_results_dataset: bool = False, - ) -> ScoreBatchResponse: - """Score a batch of rows. - - :param dataset_id: The ID of the dataset to score. - :param scoring_functions: The scoring functions to use for the scoring. - :param save_results_dataset: Whether to save the results to a dataset. - :returns: A ScoreBatchResponse. - """ - ... - - @webmethod(route="/scoring/score", method="POST", level=LLAMA_STACK_API_V1) - async def score( - self, - input_rows: list[dict[str, Any]], - scoring_functions: dict[str, ScoringFnParams | None], - ) -> ScoreResponse: - """Score a list of rows. - - :param input_rows: The rows to score. - :param scoring_functions: The scoring functions to use for the scoring. - :returns: A ScoreResponse object containing rows and aggregated results. - """ - ... diff --git a/src/llama_stack/apis/scoring/scoring_service.py b/src/llama_stack/apis/scoring/scoring_service.py new file mode 100644 index 000000000..3cba521e7 --- /dev/null +++ b/src/llama_stack/apis/scoring/scoring_service.py @@ -0,0 +1,37 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.apis.scoring_functions import ScoringFn, ScoringFnParams + +from .models import ScoreBatchResponse, ScoreResponse + + +class ScoringFunctionStore(Protocol): + def get_scoring_function(self, scoring_fn_id: str) -> ScoringFn: ... + + +@runtime_checkable +class ScoringService(Protocol): + scoring_function_store: ScoringFunctionStore + + async def score_batch( + self, + dataset_id: str, + scoring_functions: dict[str, ScoringFnParams | None], + save_results_dataset: bool = False, + ) -> ScoreBatchResponse: + """Score a batch of rows.""" + ... + + async def score( + self, + input_rows: list[dict[str, Any]], + scoring_functions: dict[str, ScoringFnParams | None], + ) -> ScoreResponse: + """Score a list of rows.""" + ... diff --git a/src/llama_stack/apis/scoring_functions/__init__.py b/src/llama_stack/apis/scoring_functions/__init__.py index fc1de0311..18cb2116a 100644 --- a/src/llama_stack/apis/scoring_functions/__init__.py +++ b/src/llama_stack/apis/scoring_functions/__init__.py @@ -4,4 +4,38 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .scoring_functions import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import ( + AggregationFunctionType, + BasicScoringFnParams, + CommonScoringFnFields, + ListScoringFunctionsResponse, + LLMAsJudgeScoringFnParams, + RegexParserScoringFnParams, + RegisterScoringFunctionRequest, + ScoringFn, + ScoringFnInput, + ScoringFnParams, + ScoringFnParamsType, +) +from .scoring_functions_service import ScoringFunctionsService + +# Backward compatibility - export ScoringFunctions as alias for ScoringFunctionsService +ScoringFunctions = ScoringFunctionsService + +__all__ = [ + "ScoringFunctions", + "ScoringFunctionsService", + "ScoringFn", + "ScoringFnInput", + "CommonScoringFnFields", + "ScoringFnParams", + "ScoringFnParamsType", + "LLMAsJudgeScoringFnParams", + "RegexParserScoringFnParams", + "BasicScoringFnParams", + "AggregationFunctionType", + "ListScoringFunctionsResponse", + "RegisterScoringFunctionRequest", +] diff --git a/src/llama_stack/apis/scoring_functions/models.py b/src/llama_stack/apis/scoring_functions/models.py new file mode 100644 index 000000000..6c0fd1c17 --- /dev/null +++ b/src/llama_stack/apis/scoring_functions/models.py @@ -0,0 +1,143 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import StrEnum +from typing import Annotated, Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.common.type_system import ParamType +from llama_stack.apis.resource import Resource, ResourceType +from llama_stack.schema_utils import json_schema_type, register_schema + + +@json_schema_type +class ScoringFnParamsType(StrEnum): + """Types of scoring function parameter configurations.""" + + llm_as_judge = "llm_as_judge" + regex_parser = "regex_parser" + basic = "basic" + + +@json_schema_type +class AggregationFunctionType(StrEnum): + """Types of aggregation functions for scoring results.""" + + average = "average" + weighted_average = "weighted_average" + median = "median" + categorical_count = "categorical_count" + accuracy = "accuracy" + + +@json_schema_type +class LLMAsJudgeScoringFnParams(BaseModel): + """Parameters for LLM-as-judge scoring function configuration.""" + + type: Literal[ScoringFnParamsType.llm_as_judge] = ScoringFnParamsType.llm_as_judge + judge_model: str + prompt_template: str | None = None + judge_score_regexes: list[str] = Field( + description="Regexes to extract the answer from generated response", + default_factory=lambda: [], + ) + aggregation_functions: list[AggregationFunctionType] = Field( + description="Aggregation functions to apply to the scores of each row", + default_factory=lambda: [], + ) + + +@json_schema_type +class RegexParserScoringFnParams(BaseModel): + """Parameters for regex parser scoring function configuration.""" + + type: Literal[ScoringFnParamsType.regex_parser] = ScoringFnParamsType.regex_parser + parsing_regexes: list[str] = Field( + description="Regex to extract the answer from generated response", + default_factory=lambda: [], + ) + aggregation_functions: list[AggregationFunctionType] = Field( + description="Aggregation functions to apply to the scores of each row", + default_factory=lambda: [], + ) + + +@json_schema_type +class BasicScoringFnParams(BaseModel): + """Parameters for basic scoring function configuration.""" + + type: Literal[ScoringFnParamsType.basic] = ScoringFnParamsType.basic + aggregation_functions: list[AggregationFunctionType] = Field( + description="Aggregation functions to apply to the scores of each row", + default_factory=list, + ) + + +ScoringFnParams = Annotated[ + LLMAsJudgeScoringFnParams | RegexParserScoringFnParams | BasicScoringFnParams, + Field(discriminator="type"), +] +register_schema(ScoringFnParams, name="ScoringFnParams") + + +class CommonScoringFnFields(BaseModel): + description: str | None = None + metadata: dict[str, Any] = Field( + default_factory=dict, + description="Any additional metadata for this definition", + ) + return_type: ParamType = Field( + description="The return type of the deterministic function", + ) + params: ScoringFnParams | None = Field( + description="The parameters for the scoring function for benchmark eval, these can be overridden for app eval", + default=None, + ) + + +@json_schema_type +class ScoringFn(CommonScoringFnFields, Resource): + """A scoring function resource for evaluating model outputs.""" + + type: Literal[ResourceType.scoring_function] = ResourceType.scoring_function + + @property + def scoring_fn_id(self) -> str: + return self.identifier + + @property + def provider_scoring_fn_id(self) -> str | None: + return self.provider_resource_id + + +class ScoringFnInput(CommonScoringFnFields, BaseModel): + scoring_fn_id: str + provider_id: str | None = None + provider_scoring_fn_id: str | None = None + + +class ListScoringFunctionsResponse(BaseModel): + """Response model for listing scoring functions.""" + + data: list[ScoringFn] = Field(..., description="List of scoring function resources") + + +@json_schema_type +class RegisterScoringFunctionRequest(BaseModel): + """Request model for registering a scoring function.""" + + scoring_fn_id: str = Field(..., description="The ID of the scoring function to register") + description: str = Field(..., description="The description of the scoring function") + return_type: ParamType = Field(..., description="The return type of the scoring function") + provider_scoring_fn_id: str | None = Field( + default=None, description="The ID of the provider scoring function to use for the scoring function" + ) + provider_id: str | None = Field(default=None, description="The ID of the provider to use for the scoring function") + params: ScoringFnParams | None = Field( + default=None, + description="The parameters for the scoring function for benchmark eval, these can be overridden for app eval", + ) diff --git a/src/llama_stack/apis/scoring_functions/routes.py b/src/llama_stack/apis/scoring_functions/routes.py new file mode 100644 index 000000000..a983e0cf7 --- /dev/null +++ b/src/llama_stack/apis/scoring_functions/routes.py @@ -0,0 +1,111 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ( + ListScoringFunctionsResponse, + RegisterScoringFunctionRequest, + ScoringFn, +) +from .scoring_functions_service import ScoringFunctionsService + + +def get_scoring_functions_service(request: Request) -> ScoringFunctionsService: + """Dependency to get the scoring functions service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.scoring_functions not in impls: + raise ValueError("Scoring Functions API implementation not found") + return impls[Api.scoring_functions] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Scoring Functions"], + responses=standard_responses, +) + + +@router.get( + "/scoring-functions", + response_model=ListScoringFunctionsResponse, + summary="List all scoring functions", + description="List all scoring functions", +) +async def list_scoring_functions( + svc: ScoringFunctionsService = Depends(get_scoring_functions_service), +) -> ListScoringFunctionsResponse: + """List all scoring functions.""" + return await svc.list_scoring_functions() + + +@router.get( + "/scoring-functions/{scoring_fn_id:path}", + response_model=ScoringFn, + summary="Get a scoring function by its ID", + description="Get a scoring function by its ID", +) +async def get_scoring_function( + scoring_fn_id: Annotated[str, FastAPIPath(..., description="The ID of the scoring function to get")], + svc: ScoringFunctionsService = Depends(get_scoring_functions_service), +) -> ScoringFn: + """Get a scoring function by its ID.""" + return await svc.get_scoring_function(scoring_fn_id) + + +@router.post( + "/scoring-functions", + response_model=None, + status_code=204, + summary="Register a scoring function", + description="Register a scoring function", +) +async def register_scoring_function( + body: RegisterScoringFunctionRequest = Body(...), + svc: ScoringFunctionsService = Depends(get_scoring_functions_service), +) -> None: + """Register a scoring function.""" + return await svc.register_scoring_function( + scoring_fn_id=body.scoring_fn_id, + description=body.description, + return_type=body.return_type, + provider_scoring_fn_id=body.provider_scoring_fn_id, + provider_id=body.provider_id, + params=body.params, + ) + + +@router.delete( + "/scoring-functions/{scoring_fn_id:path}", + response_model=None, + status_code=204, + summary="Unregister a scoring function", + description="Unregister a scoring function", +) +async def unregister_scoring_function( + scoring_fn_id: Annotated[str, FastAPIPath(..., description="The ID of the scoring function to unregister")], + svc: ScoringFunctionsService = Depends(get_scoring_functions_service), +) -> None: + """Unregister a scoring function.""" + await svc.unregister_scoring_function(scoring_fn_id) + + +# For backward compatibility with the router registry system +def create_scoring_functions_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Scoring Functions API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.scoring_functions, create_scoring_functions_router) diff --git a/src/llama_stack/apis/scoring_functions/scoring_functions.py b/src/llama_stack/apis/scoring_functions/scoring_functions.py deleted file mode 100644 index fe49723ab..000000000 --- a/src/llama_stack/apis/scoring_functions/scoring_functions.py +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -# TODO: use enum.StrEnum when we drop support for python 3.10 -from enum import StrEnum -from typing import ( - Annotated, - Any, - Literal, - Protocol, - runtime_checkable, -) - -from pydantic import BaseModel, Field - -from llama_stack.apis.common.type_system import ParamType -from llama_stack.apis.resource import Resource, ResourceType -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod - - -# Perhaps more structure can be imposed on these functions. Maybe they could be associated -# with standard metrics so they can be rolled up? -@json_schema_type -class ScoringFnParamsType(StrEnum): - """Types of scoring function parameter configurations. - :cvar llm_as_judge: Use an LLM model to evaluate and score responses - :cvar regex_parser: Use regex patterns to extract and score specific parts of responses - :cvar basic: Basic scoring with simple aggregation functions - """ - - llm_as_judge = "llm_as_judge" - regex_parser = "regex_parser" - basic = "basic" - - -@json_schema_type -class AggregationFunctionType(StrEnum): - """Types of aggregation functions for scoring results. - :cvar average: Calculate the arithmetic mean of scores - :cvar weighted_average: Calculate a weighted average of scores - :cvar median: Calculate the median value of scores - :cvar categorical_count: Count occurrences of categorical values - :cvar accuracy: Calculate accuracy as the proportion of correct answers - """ - - average = "average" - weighted_average = "weighted_average" - median = "median" - categorical_count = "categorical_count" - accuracy = "accuracy" - - -@json_schema_type -class LLMAsJudgeScoringFnParams(BaseModel): - """Parameters for LLM-as-judge scoring function configuration. - :param type: The type of scoring function parameters, always llm_as_judge - :param judge_model: Identifier of the LLM model to use as a judge for scoring - :param prompt_template: (Optional) Custom prompt template for the judge model - :param judge_score_regexes: Regexes to extract the answer from generated response - :param aggregation_functions: Aggregation functions to apply to the scores of each row - """ - - type: Literal[ScoringFnParamsType.llm_as_judge] = ScoringFnParamsType.llm_as_judge - judge_model: str - prompt_template: str | None = None - judge_score_regexes: list[str] = Field( - description="Regexes to extract the answer from generated response", - default_factory=lambda: [], - ) - aggregation_functions: list[AggregationFunctionType] = Field( - description="Aggregation functions to apply to the scores of each row", - default_factory=lambda: [], - ) - - -@json_schema_type -class RegexParserScoringFnParams(BaseModel): - """Parameters for regex parser scoring function configuration. - :param type: The type of scoring function parameters, always regex_parser - :param parsing_regexes: Regex to extract the answer from generated response - :param aggregation_functions: Aggregation functions to apply to the scores of each row - """ - - type: Literal[ScoringFnParamsType.regex_parser] = ScoringFnParamsType.regex_parser - parsing_regexes: list[str] = Field( - description="Regex to extract the answer from generated response", - default_factory=lambda: [], - ) - aggregation_functions: list[AggregationFunctionType] = Field( - description="Aggregation functions to apply to the scores of each row", - default_factory=lambda: [], - ) - - -@json_schema_type -class BasicScoringFnParams(BaseModel): - """Parameters for basic scoring function configuration. - :param type: The type of scoring function parameters, always basic - :param aggregation_functions: Aggregation functions to apply to the scores of each row - """ - - type: Literal[ScoringFnParamsType.basic] = ScoringFnParamsType.basic - aggregation_functions: list[AggregationFunctionType] = Field( - description="Aggregation functions to apply to the scores of each row", - default_factory=list, - ) - - -ScoringFnParams = Annotated[ - LLMAsJudgeScoringFnParams | RegexParserScoringFnParams | BasicScoringFnParams, - Field(discriminator="type"), -] -register_schema(ScoringFnParams, name="ScoringFnParams") - - -class CommonScoringFnFields(BaseModel): - description: str | None = None - metadata: dict[str, Any] = Field( - default_factory=dict, - description="Any additional metadata for this definition", - ) - return_type: ParamType = Field( - description="The return type of the deterministic function", - ) - params: ScoringFnParams | None = Field( - description="The parameters for the scoring function for benchmark eval, these can be overridden for app eval", - default=None, - ) - - -@json_schema_type -class ScoringFn(CommonScoringFnFields, Resource): - """A scoring function resource for evaluating model outputs. - :param type: The resource type, always scoring_function - """ - - type: Literal[ResourceType.scoring_function] = ResourceType.scoring_function - - @property - def scoring_fn_id(self) -> str: - return self.identifier - - @property - def provider_scoring_fn_id(self) -> str | None: - return self.provider_resource_id - - -class ScoringFnInput(CommonScoringFnFields, BaseModel): - scoring_fn_id: str - provider_id: str | None = None - provider_scoring_fn_id: str | None = None - - -class ListScoringFunctionsResponse(BaseModel): - data: list[ScoringFn] - - -@runtime_checkable -class ScoringFunctions(Protocol): - @webmethod(route="/scoring-functions", method="GET", level=LLAMA_STACK_API_V1) - async def list_scoring_functions(self) -> ListScoringFunctionsResponse: - """List all scoring functions. - - :returns: A ListScoringFunctionsResponse. - """ - ... - - @webmethod(route="/scoring-functions/{scoring_fn_id:path}", method="GET", level=LLAMA_STACK_API_V1) - async def get_scoring_function(self, scoring_fn_id: str, /) -> ScoringFn: - """Get a scoring function by its ID. - - :param scoring_fn_id: The ID of the scoring function to get. - :returns: A ScoringFn. - """ - ... - - @webmethod(route="/scoring-functions", method="POST", level=LLAMA_STACK_API_V1) - async def register_scoring_function( - self, - scoring_fn_id: str, - description: str, - return_type: ParamType, - provider_scoring_fn_id: str | None = None, - provider_id: str | None = None, - params: ScoringFnParams | None = None, - ) -> None: - """Register a scoring function. - - :param scoring_fn_id: The ID of the scoring function to register. - :param description: The description of the scoring function. - :param return_type: The return type of the scoring function. - :param provider_scoring_fn_id: The ID of the provider scoring function to use for the scoring function. - :param provider_id: The ID of the provider to use for the scoring function. - :param params: The parameters for the scoring function for benchmark eval, these can be overridden for app eval. - """ - ... - - @webmethod(route="/scoring-functions/{scoring_fn_id:path}", method="DELETE", level=LLAMA_STACK_API_V1) - async def unregister_scoring_function(self, scoring_fn_id: str) -> None: - """Unregister a scoring function. - - :param scoring_fn_id: The ID of the scoring function to unregister. - """ - ... diff --git a/src/llama_stack/apis/scoring_functions/scoring_functions_service.py b/src/llama_stack/apis/scoring_functions/scoring_functions_service.py new file mode 100644 index 000000000..818274705 --- /dev/null +++ b/src/llama_stack/apis/scoring_functions/scoring_functions_service.py @@ -0,0 +1,40 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Protocol, runtime_checkable + +from llama_stack.apis.common.type_system import ParamType +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ListScoringFunctionsResponse, ScoringFn, ScoringFnParams + + +@runtime_checkable +@trace_protocol +class ScoringFunctionsService(Protocol): + async def list_scoring_functions(self) -> ListScoringFunctionsResponse: + """List all scoring functions.""" + ... + + async def get_scoring_function(self, scoring_fn_id: str, /) -> ScoringFn: + """Get a scoring function by its ID.""" + ... + + async def register_scoring_function( + self, + scoring_fn_id: str, + description: str, + return_type: ParamType, + provider_scoring_fn_id: str | None = None, + provider_id: str | None = None, + params: ScoringFnParams | None = None, + ) -> None: + """Register a scoring function.""" + ... + + async def unregister_scoring_function(self, scoring_fn_id: str) -> None: + """Unregister a scoring function.""" + ... diff --git a/src/llama_stack/apis/shields/__init__.py b/src/llama_stack/apis/shields/__init__.py index 783a4d124..b3ba02a7e 100644 --- a/src/llama_stack/apis/shields/__init__.py +++ b/src/llama_stack/apis/shields/__init__.py @@ -4,4 +4,20 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .shields import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import CommonShieldFields, ListShieldsResponse, RegisterShieldRequest, Shield, ShieldInput +from .shields_service import ShieldsService + +# Backward compatibility - export Shields as alias for ShieldsService +Shields = ShieldsService + +__all__ = [ + "Shields", + "ShieldsService", + "Shield", + "ShieldInput", + "CommonShieldFields", + "ListShieldsResponse", + "RegisterShieldRequest", +] diff --git a/src/llama_stack/apis/shields/models.py b/src/llama_stack/apis/shields/models.py new file mode 100644 index 000000000..060ea97d8 --- /dev/null +++ b/src/llama_stack/apis/shields/models.py @@ -0,0 +1,55 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.resource import Resource, ResourceType +from llama_stack.schema_utils import json_schema_type + + +class CommonShieldFields(BaseModel): + params: dict[str, Any] | None = Field(default=None, description="Configuration parameters for the shield") + + +@json_schema_type +class Shield(CommonShieldFields, Resource): + """A safety shield resource that can be used to check content.""" + + type: Literal[ResourceType.shield] = Field( + default=ResourceType.shield, description="The resource type, always shield" + ) + + @property + def shield_id(self) -> str: + return self.identifier + + @property + def provider_shield_id(self) -> str | None: + return self.provider_resource_id + + +class ShieldInput(CommonShieldFields): + shield_id: str + provider_id: str | None = None + provider_shield_id: str | None = None + + +class ListShieldsResponse(BaseModel): + """Response model for listing shields.""" + + data: list[Shield] = Field(..., description="List of shield resources") + + +@json_schema_type +class RegisterShieldRequest(BaseModel): + """Request model for registering a shield.""" + + shield_id: str = Field(..., description="The identifier of the shield to register") + provider_shield_id: str | None = Field(default=None, description="The identifier of the shield in the provider") + provider_id: str | None = Field(default=None, description="The identifier of the provider") + params: dict[str, Any] | None = Field(default=None, description="The parameters of the shield") diff --git a/src/llama_stack/apis/shields/routes.py b/src/llama_stack/apis/shields/routes.py new file mode 100644 index 000000000..88daecd96 --- /dev/null +++ b/src/llama_stack/apis/shields/routes.py @@ -0,0 +1,102 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ListShieldsResponse, RegisterShieldRequest, Shield +from .shields_service import ShieldsService + + +def get_shields_service(request: Request) -> ShieldsService: + """Dependency to get the shields service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.shields not in impls: + raise ValueError("Shields API implementation not found") + return impls[Api.shields] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Shields"], + responses=standard_responses, +) + + +@router.get( + "/shields", + response_model=ListShieldsResponse, + summary="List all shields", + description="List all shields", +) +async def list_shields(svc: ShieldsService = Depends(get_shields_service)) -> ListShieldsResponse: + """List all shields.""" + return await svc.list_shields() + + +@router.get( + "/shields/{identifier:path}", + response_model=Shield, + summary="Get a shield by its identifier", + description="Get a shield by its identifier", +) +async def get_shield( + identifier: Annotated[str, FastAPIPath(..., description="The identifier of the shield to get")], + svc: ShieldsService = Depends(get_shields_service), +) -> Shield: + """Get a shield by its identifier.""" + return await svc.get_shield(identifier=identifier) + + +@router.post( + "/shields", + response_model=Shield, + summary="Register a shield", + description="Register a shield", +) +async def register_shield( + body: RegisterShieldRequest = Body(...), + svc: ShieldsService = Depends(get_shields_service), +) -> Shield: + """Register a shield.""" + return await svc.register_shield( + shield_id=body.shield_id, + provider_shield_id=body.provider_shield_id, + provider_id=body.provider_id, + params=body.params, + ) + + +@router.delete( + "/shields/{identifier:path}", + response_model=None, + status_code=204, + summary="Unregister a shield", + description="Unregister a shield", +) +async def unregister_shield( + identifier: Annotated[str, FastAPIPath(..., description="The identifier of the shield to unregister")], + svc: ShieldsService = Depends(get_shields_service), +) -> None: + """Unregister a shield.""" + await svc.unregister_shield(identifier=identifier) + + +# For backward compatibility with the router registry system +def create_shields_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Shields API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.shields, create_shields_router) diff --git a/src/llama_stack/apis/shields/shields.py b/src/llama_stack/apis/shields/shields.py deleted file mode 100644 index 565e1db15..000000000 --- a/src/llama_stack/apis/shields/shields.py +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from typing import Any, Literal, Protocol, runtime_checkable - -from pydantic import BaseModel - -from llama_stack.apis.resource import Resource, ResourceType -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, webmethod - - -class CommonShieldFields(BaseModel): - params: dict[str, Any] | None = None - - -@json_schema_type -class Shield(CommonShieldFields, Resource): - """A safety shield resource that can be used to check content. - - :param params: (Optional) Configuration parameters for the shield - :param type: The resource type, always shield - """ - - type: Literal[ResourceType.shield] = ResourceType.shield - - @property - def shield_id(self) -> str: - return self.identifier - - @property - def provider_shield_id(self) -> str | None: - return self.provider_resource_id - - -class ShieldInput(CommonShieldFields): - shield_id: str - provider_id: str | None = None - provider_shield_id: str | None = None - - -class ListShieldsResponse(BaseModel): - data: list[Shield] - - -@runtime_checkable -@trace_protocol -class Shields(Protocol): - @webmethod(route="/shields", method="GET", level=LLAMA_STACK_API_V1) - async def list_shields(self) -> ListShieldsResponse: - """List all shields. - - :returns: A ListShieldsResponse. - """ - ... - - @webmethod(route="/shields/{identifier:path}", method="GET", level=LLAMA_STACK_API_V1) - async def get_shield(self, identifier: str) -> Shield: - """Get a shield by its identifier. - - :param identifier: The identifier of the shield to get. - :returns: A Shield. - """ - ... - - @webmethod(route="/shields", method="POST", level=LLAMA_STACK_API_V1) - async def register_shield( - self, - shield_id: str, - provider_shield_id: str | None = None, - provider_id: str | None = None, - params: dict[str, Any] | None = None, - ) -> Shield: - """Register a shield. - - :param shield_id: The identifier of the shield to register. - :param provider_shield_id: The identifier of the shield in the provider. - :param provider_id: The identifier of the provider. - :param params: The parameters of the shield. - :returns: A Shield. - """ - ... - - @webmethod(route="/shields/{identifier:path}", method="DELETE", level=LLAMA_STACK_API_V1) - async def unregister_shield(self, identifier: str) -> None: - """Unregister a shield. - - :param identifier: The identifier of the shield to unregister. - """ - ... diff --git a/src/llama_stack/apis/shields/shields_service.py b/src/llama_stack/apis/shields/shields_service.py new file mode 100644 index 000000000..25d051f63 --- /dev/null +++ b/src/llama_stack/apis/shields/shields_service.py @@ -0,0 +1,37 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ListShieldsResponse, Shield + + +@runtime_checkable +@trace_protocol +class ShieldsService(Protocol): + async def list_shields(self) -> ListShieldsResponse: + """List all shields.""" + ... + + async def get_shield(self, identifier: str) -> Shield: + """Get a shield by its identifier.""" + ... + + async def register_shield( + self, + shield_id: str, + provider_shield_id: str | None = None, + provider_id: str | None = None, + params: dict[str, Any] | None = None, + ) -> Shield: + """Register a shield.""" + ... + + async def unregister_shield(self, identifier: str) -> None: + """Unregister a shield.""" + ... diff --git a/src/llama_stack/apis/synthetic_data_generation/models.py b/src/llama_stack/apis/synthetic_data_generation/models.py new file mode 100644 index 000000000..9f94894bc --- /dev/null +++ b/src/llama_stack/apis/synthetic_data_generation/models.py @@ -0,0 +1,60 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import Enum +from typing import Any + +from pydantic import BaseModel, Field + +from llama_stack.apis.inference import Message +from llama_stack.schema_utils import json_schema_type + + +class FilteringFunction(Enum): + """The type of filtering function. + + :cvar none: No filtering applied, accept all generated synthetic data + :cvar random: Random sampling of generated data points + :cvar top_k: Keep only the top-k highest scoring synthetic data samples + :cvar top_p: Nucleus-style filtering, keep samples exceeding cumulative score threshold + :cvar top_k_top_p: Combined top-k and top-p filtering strategy + :cvar sigmoid: Apply sigmoid function for probability-based filtering + """ + + none = "none" + random = "random" + top_k = "top_k" + top_p = "top_p" + top_k_top_p = "top_k_top_p" + sigmoid = "sigmoid" + + +@json_schema_type +class SyntheticDataGenerationRequest(BaseModel): + """Request to generate synthetic data. A small batch of prompts and a filtering function.""" + + dialogs: list[Message] = Field( + ..., description="List of conversation messages to use as input for synthetic data generation" + ) + filtering_function: FilteringFunction = Field( + default=FilteringFunction.none, description="Type of filtering to apply to generated synthetic data samples" + ) + model: str | None = Field( + default=None, + description="The identifier of the model to use. The model must be registered with Llama Stack and available via the /models endpoint", + ) + + +@json_schema_type +class SyntheticDataGenerationResponse(BaseModel): + """Response from the synthetic data generation. Batch of (prompt, response, score) tuples that pass the threshold.""" + + synthetic_data: list[dict[str, Any]] = Field( + ..., description="List of generated synthetic data samples that passed the filtering criteria" + ) + statistics: dict[str, Any] | None = Field( + default=None, description="Statistical information about the generation process and filtering results" + ) diff --git a/src/llama_stack/apis/synthetic_data_generation/routes.py b/src/llama_stack/apis/synthetic_data_generation/routes.py new file mode 100644 index 000000000..77900f491 --- /dev/null +++ b/src/llama_stack/apis/synthetic_data_generation/routes.py @@ -0,0 +1,61 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from fastapi import Body, Depends, Request + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ( + SyntheticDataGenerationRequest, + SyntheticDataGenerationResponse, +) +from .synthetic_data_generation_service import SyntheticDataGenerationService + + +def get_synthetic_data_generation_service(request: Request) -> SyntheticDataGenerationService: + """Dependency to get the synthetic data generation service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.synthetic_data_generation not in impls: + raise ValueError("Synthetic Data Generation API implementation not found") + return impls[Api.synthetic_data_generation] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Synthetic Data Generation"], + responses=standard_responses, +) + + +@router.post( + "/synthetic-data-generation/generate", + response_model=SyntheticDataGenerationResponse, + summary="Generate synthetic data based on input dialogs and apply filtering", + description="Generate synthetic data based on input dialogs and apply filtering", +) +def synthetic_data_generate( + body: SyntheticDataGenerationRequest = Body(...), + svc: SyntheticDataGenerationService = Depends(get_synthetic_data_generation_service), +) -> SyntheticDataGenerationResponse: + """Generate synthetic data based on input dialogs and apply filtering.""" + return svc.synthetic_data_generate( + dialogs=body.dialogs, + filtering_function=body.filtering_function, + model=body.model, + ) + + +# For backward compatibility with the router registry system +def create_synthetic_data_generation_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Synthetic Data Generation API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.synthetic_data_generation, create_synthetic_data_generation_router) diff --git a/src/llama_stack/apis/synthetic_data_generation/synthetic_data_generation_service.py b/src/llama_stack/apis/synthetic_data_generation/synthetic_data_generation_service.py new file mode 100644 index 000000000..9b278be01 --- /dev/null +++ b/src/llama_stack/apis/synthetic_data_generation/synthetic_data_generation_service.py @@ -0,0 +1,31 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Protocol, runtime_checkable + +from llama_stack.apis.inference import Message +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import FilteringFunction, SyntheticDataGenerationResponse + + +@runtime_checkable +@trace_protocol +class SyntheticDataGenerationService(Protocol): + def synthetic_data_generate( + self, + dialogs: list[Message], + filtering_function: FilteringFunction = FilteringFunction.none, + model: str | None = None, + ) -> SyntheticDataGenerationResponse: + """Generate synthetic data based on input dialogs and apply filtering. + + :param dialogs: List of conversation messages to use as input for synthetic data generation + :param filtering_function: Type of filtering to apply to generated synthetic data samples + :param model: (Optional) The identifier of the model to use. The model must be registered with Llama Stack and available via the /models endpoint + :returns: Response containing filtered synthetic data samples and optional statistics + """ + ... diff --git a/src/llama_stack/apis/tools/__init__.py b/src/llama_stack/apis/tools/__init__.py index b25310ecf..e59fcfb87 100644 --- a/src/llama_stack/apis/tools/__init__.py +++ b/src/llama_stack/apis/tools/__init__.py @@ -4,5 +4,44 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .rag_tool import * -from .tools import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import ( + InvokeToolRequest, + ListToolDefsResponse, + ListToolGroupsResponse, + RegisterToolGroupRequest, + SpecialToolGroup, + ToolDef, + ToolGroup, + ToolGroupInput, + ToolInvocationResult, +) +from .rag_tool import RAGDocument, RAGQueryConfig, RAGQueryResult, RAGToolRuntime +from .tool_groups_service import ToolGroupsService, ToolStore +from .tool_runtime_service import ToolRuntimeService + +# Backward compatibility - export as aliases +ToolGroups = ToolGroupsService +ToolRuntime = ToolRuntimeService + +__all__ = [ + "ToolGroups", + "ToolGroupsService", + "ToolRuntime", + "ToolRuntimeService", + "ToolStore", + "ToolDef", + "ToolGroup", + "ToolGroupInput", + "ToolInvocationResult", + "ListToolGroupsResponse", + "ListToolDefsResponse", + "RegisterToolGroupRequest", + "InvokeToolRequest", + "SpecialToolGroup", + "RAGToolRuntime", + "RAGDocument", + "RAGQueryConfig", + "RAGQueryResult", +] diff --git a/src/llama_stack/apis/tools/models.py b/src/llama_stack/apis/tools/models.py new file mode 100644 index 000000000..3aa3b5a84 --- /dev/null +++ b/src/llama_stack/apis/tools/models.py @@ -0,0 +1,101 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from enum import Enum +from typing import Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.common.content_types import URL, InterleavedContent +from llama_stack.apis.resource import Resource, ResourceType +from llama_stack.schema_utils import json_schema_type + + +@json_schema_type +class ToolDef(BaseModel): + """Tool definition used in runtime contexts.""" + + toolgroup_id: str | None = Field(default=None, description="ID of the tool group this tool belongs to") + name: str = Field(..., description="Name of the tool") + description: str | None = Field(default=None, description="Human-readable description of what the tool does") + input_schema: dict[str, Any] | None = Field( + default=None, description="JSON Schema for tool inputs (MCP inputSchema)" + ) + output_schema: dict[str, Any] | None = Field( + default=None, description="JSON Schema for tool outputs (MCP outputSchema)" + ) + metadata: dict[str, Any] | None = Field(default=None, description="Additional metadata about the tool") + + +@json_schema_type +class ToolGroupInput(BaseModel): + """Input data for registering a tool group.""" + + toolgroup_id: str = Field(..., description="Unique identifier for the tool group") + provider_id: str = Field(..., description="ID of the provider that will handle this tool group") + args: dict[str, Any] | None = Field(default=None, description="Additional arguments to pass to the provider") + mcp_endpoint: URL | None = Field(default=None, description="Model Context Protocol endpoint for remote tools") + + +@json_schema_type +class ToolGroup(Resource): + """A group of related tools managed together.""" + + type: Literal[ResourceType.tool_group] = Field( + default=ResourceType.tool_group, description="Type of resource, always 'tool_group'" + ) + mcp_endpoint: URL | None = Field(default=None, description="Model Context Protocol endpoint for remote tools") + args: dict[str, Any] | None = Field(default=None, description="Additional arguments for the tool group") + + +@json_schema_type +class ToolInvocationResult(BaseModel): + """Result of a tool invocation.""" + + content: InterleavedContent | None = Field(default=None, description="The output content from the tool execution") + error_message: str | None = Field(default=None, description="Error message if the tool execution failed") + error_code: int | None = Field(default=None, description="Numeric error code if the tool execution failed") + metadata: dict[str, Any] | None = Field(default=None, description="Additional metadata about the tool execution") + + +class ListToolGroupsResponse(BaseModel): + """Response containing a list of tool groups.""" + + data: list[ToolGroup] = Field(..., description="List of tool groups") + + +@json_schema_type +class ListToolDefsResponse(BaseModel): + """Response containing a list of tool definitions.""" + + data: list[ToolDef] = Field(..., description="List of tool definitions") + + +@json_schema_type +class RegisterToolGroupRequest(BaseModel): + """Request model for registering a tool group.""" + + toolgroup_id: str = Field(..., description="The ID of the tool group to register") + provider_id: str = Field(..., description="The ID of the provider to use for the tool group") + mcp_endpoint: URL | None = Field(default=None, description="The MCP endpoint to use for the tool group") + args: dict[str, Any] | None = Field(default=None, description="A dictionary of arguments to pass to the tool group") + + +@json_schema_type +class InvokeToolRequest(BaseModel): + """Request model for invoking a tool.""" + + tool_name: str = Field(..., description="The name of the tool to invoke") + kwargs: dict[str, Any] = Field(..., description="A dictionary of arguments to pass to the tool") + + +class SpecialToolGroup(Enum): + """Special tool groups with predefined functionality. + + :cvar rag_tool: Retrieval-Augmented Generation tool group for document search and retrieval + """ + + rag_tool = "rag_tool" diff --git a/src/llama_stack/apis/tools/rag_tool.py b/src/llama_stack/apis/tools/rag_tool.py index 4e43bb284..ace5b2704 100644 --- a/src/llama_stack/apis/tools/rag_tool.py +++ b/src/llama_stack/apis/tools/rag_tool.py @@ -11,9 +11,8 @@ from pydantic import BaseModel, Field, field_validator from typing_extensions import runtime_checkable from llama_stack.apis.common.content_types import URL, InterleavedContent -from llama_stack.apis.version import LLAMA_STACK_API_V1 from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod +from llama_stack.schema_utils import json_schema_type, register_schema @json_schema_type @@ -186,7 +185,6 @@ class RAGQueryConfig(BaseModel): @runtime_checkable @trace_protocol class RAGToolRuntime(Protocol): - @webmethod(route="/tool-runtime/rag-tool/insert", method="POST", level=LLAMA_STACK_API_V1) async def insert( self, documents: list[RAGDocument], @@ -201,7 +199,6 @@ class RAGToolRuntime(Protocol): """ ... - @webmethod(route="/tool-runtime/rag-tool/query", method="POST", level=LLAMA_STACK_API_V1) async def query( self, content: InterleavedContent, diff --git a/src/llama_stack/apis/tools/routes.py b/src/llama_stack/apis/tools/routes.py new file mode 100644 index 000000000..46862428f --- /dev/null +++ b/src/llama_stack/apis/tools/routes.py @@ -0,0 +1,240 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.common.content_types import URL, InterleavedContent +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ( + InvokeToolRequest, + ListToolDefsResponse, + ListToolGroupsResponse, + RegisterToolGroupRequest, + ToolDef, + ToolGroup, + ToolInvocationResult, +) +from .rag_tool import RAGDocument, RAGQueryConfig, RAGQueryResult +from .tool_groups_service import ToolGroupsService +from .tool_runtime_service import ToolRuntimeService + + +def get_tool_groups_service(request: Request) -> ToolGroupsService: + """Dependency to get the tool groups service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.tool_groups not in impls: + raise ValueError("Tool Groups API implementation not found") + return impls[Api.tool_groups] + + +def get_tool_runtime_service(request: Request) -> ToolRuntimeService: + """Dependency to get the tool runtime service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.tool_runtime not in impls: + raise ValueError("Tool Runtime API implementation not found") + return impls[Api.tool_runtime] + + +# Tool Groups Router +tool_groups_router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Tool Groups"], + responses=standard_responses, +) + + +@tool_groups_router.post( + "/toolgroups", + response_model=None, + status_code=204, + summary="Register a tool group", + description="Register a tool group", +) +async def register_tool_group( + body: RegisterToolGroupRequest = Body(...), + svc: ToolGroupsService = Depends(get_tool_groups_service), +) -> None: + """Register a tool group.""" + await svc.register_tool_group( + toolgroup_id=body.toolgroup_id, + provider_id=body.provider_id, + mcp_endpoint=body.mcp_endpoint, + args=body.args, + ) + + +@tool_groups_router.get( + "/toolgroups/{toolgroup_id:path}", + response_model=ToolGroup, + summary="Get a tool group by its ID", + description="Get a tool group by its ID", +) +async def get_tool_group( + toolgroup_id: Annotated[str, FastAPIPath(..., description="The ID of the tool group to get")], + svc: ToolGroupsService = Depends(get_tool_groups_service), +) -> ToolGroup: + """Get a tool group by its ID.""" + return await svc.get_tool_group(toolgroup_id=toolgroup_id) + + +@tool_groups_router.get( + "/toolgroups", + response_model=ListToolGroupsResponse, + summary="List tool groups", + description="List tool groups with optional provider", +) +async def list_tool_groups(svc: ToolGroupsService = Depends(get_tool_groups_service)) -> ListToolGroupsResponse: + """List tool groups.""" + return await svc.list_tool_groups() + + +@tool_groups_router.get( + "/tools", + response_model=ListToolDefsResponse, + summary="List tools", + description="List tools with optional tool group", +) +async def list_tools( + toolgroup_id: str | None = Query(None, description="The ID of the tool group to list tools for"), + svc: ToolGroupsService = Depends(get_tool_groups_service), +) -> ListToolDefsResponse: + """List tools.""" + return await svc.list_tools(toolgroup_id=toolgroup_id) + + +@tool_groups_router.get( + "/tools/{tool_name:path}", + response_model=ToolDef, + summary="Get a tool by its name", + description="Get a tool by its name", +) +async def get_tool( + tool_name: Annotated[str, FastAPIPath(..., description="The name of the tool to get")], + svc: ToolGroupsService = Depends(get_tool_groups_service), +) -> ToolDef: + """Get a tool by its name.""" + return await svc.get_tool(tool_name=tool_name) + + +@tool_groups_router.delete( + "/toolgroups/{toolgroup_id:path}", + response_model=None, + status_code=204, + summary="Unregister a tool group", + description="Unregister a tool group", +) +async def unregister_toolgroup( + toolgroup_id: Annotated[str, FastAPIPath(..., description="The ID of the tool group to unregister")], + svc: ToolGroupsService = Depends(get_tool_groups_service), +) -> None: + """Unregister a tool group.""" + await svc.unregister_toolgroup(toolgroup_id=toolgroup_id) + + +# Tool Runtime Router +tool_runtime_router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Tool Runtime"], + responses=standard_responses, +) + + +@tool_runtime_router.get( + "/tool-runtime/list-tools", + response_model=ListToolDefsResponse, + summary="List all tools in the runtime", + description="List all tools in the runtime", +) +async def list_runtime_tools( + tool_group_id: str | None = Query(None, description="The ID of the tool group to list tools for"), + mcp_endpoint: str | None = Query(None, description="The MCP endpoint URL to use for the tool group"), + svc: ToolRuntimeService = Depends(get_tool_runtime_service), +) -> ListToolDefsResponse: + """List all tools in the runtime.""" + url_obj = URL(uri=mcp_endpoint) if mcp_endpoint else None + return await svc.list_runtime_tools(tool_group_id=tool_group_id, mcp_endpoint=url_obj) + + +@tool_runtime_router.post( + "/tool-runtime/invoke", + response_model=ToolInvocationResult, + summary="Run a tool with the given arguments", + description="Run a tool with the given arguments", +) +async def invoke_tool( + body: InvokeToolRequest = Body(...), + svc: ToolRuntimeService = Depends(get_tool_runtime_service), +) -> ToolInvocationResult: + """Invoke a tool.""" + return await svc.invoke_tool(tool_name=body.tool_name, kwargs=body.kwargs) + + +@tool_runtime_router.post( + "/tool-runtime/rag-tool/insert", + response_model=None, + status_code=204, + summary="Insert documents into the RAG system.", + description="Index documents so they can be used by the RAG system.", +) +async def rag_tool_insert( + documents: list[RAGDocument] = Body(..., description="List of documents to index in the RAG system."), + vector_store_id: str = Body(..., description="ID of the vector database to store the document embeddings."), + chunk_size_in_tokens: int = Body(512, description="Size in tokens for document chunking during indexing."), + svc: ToolRuntimeService = Depends(get_tool_runtime_service), +) -> None: + """Insert documents into the RAG system.""" + if svc.rag_tool is None: + raise ValueError("RAG tool is not available") + await svc.rag_tool.insert( + documents=documents, + vector_store_id=vector_store_id, + chunk_size_in_tokens=chunk_size_in_tokens, + ) + + +@tool_runtime_router.post( + "/tool-runtime/rag-tool/query", + response_model=RAGQueryResult, + summary="Query the RAG system for context.", + description="Query the RAG system for context; typically invoked by the agent.", +) +async def rag_tool_query( + content: InterleavedContent = Body(..., description="The query content to search for in the indexed documents."), + vector_store_ids: list[str] = Body(..., description="List of vector database IDs to search within."), + query_config: RAGQueryConfig | None = Body(None, description="Configuration parameters for the query operation."), + svc: ToolRuntimeService = Depends(get_tool_runtime_service), +) -> RAGQueryResult: + """Query the RAG system for context.""" + if svc.rag_tool is None: + raise ValueError("RAG tool is not available") + return await svc.rag_tool.query( + content=content, + vector_store_ids=vector_store_ids, + query_config=query_config, + ) + + +# For backward compatibility with the router registry system +def create_tool_groups_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Tool Groups API (legacy compatibility).""" + return tool_groups_router + + +def create_tool_runtime_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Tool Runtime API (legacy compatibility).""" + return tool_runtime_router + + +# Register the router factories +register_router(Api.tool_groups, create_tool_groups_router) +register_router(Api.tool_runtime, create_tool_runtime_router) diff --git a/src/llama_stack/apis/tools/tool_groups_service.py b/src/llama_stack/apis/tools/tool_groups_service.py new file mode 100644 index 000000000..d558351f7 --- /dev/null +++ b/src/llama_stack/apis/tools/tool_groups_service.py @@ -0,0 +1,61 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.apis.common.content_types import URL +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ListToolDefsResponse, ListToolGroupsResponse, ToolDef, ToolGroup + + +class ToolStore(Protocol): + async def get_tool(self, tool_name: str) -> ToolDef: ... + + async def get_tool_group(self, toolgroup_id: str) -> ToolGroup: ... + + +@runtime_checkable +@trace_protocol +class ToolGroupsService(Protocol): + async def register_tool_group( + self, + toolgroup_id: str, + provider_id: str, + mcp_endpoint: URL | None = None, + args: dict[str, Any] | None = None, + ) -> None: + """Register a tool group.""" + ... + + async def get_tool_group( + self, + toolgroup_id: str, + ) -> ToolGroup: + """Get a tool group by its ID.""" + ... + + async def list_tool_groups(self) -> ListToolGroupsResponse: + """List tool groups with optional provider.""" + ... + + async def list_tools(self, toolgroup_id: str | None = None) -> ListToolDefsResponse: + """List tools with optional tool group.""" + ... + + async def get_tool( + self, + tool_name: str, + ) -> ToolDef: + """Get a tool by its name.""" + ... + + async def unregister_toolgroup( + self, + toolgroup_id: str, + ) -> None: + """Unregister a tool group.""" + ... diff --git a/src/llama_stack/apis/tools/tool_runtime_service.py b/src/llama_stack/apis/tools/tool_runtime_service.py new file mode 100644 index 000000000..f72aa461f --- /dev/null +++ b/src/llama_stack/apis/tools/tool_runtime_service.py @@ -0,0 +1,38 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Any, Protocol, runtime_checkable + +from llama_stack.apis.common.content_types import URL +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ListToolDefsResponse, ToolInvocationResult +from .rag_tool import RAGToolRuntime + + +class ToolStore(Protocol): + async def get_tool(self, tool_name: str) -> Any: ... + + async def get_tool_group(self, toolgroup_id: str) -> Any: ... + + +@runtime_checkable +@trace_protocol +class ToolRuntimeService(Protocol): + tool_store: ToolStore | None = None + + rag_tool: RAGToolRuntime | None = None + + # TODO: This needs to be renamed once OPEN API generator name conflict issue is fixed. + async def list_runtime_tools( + self, tool_group_id: str | None = None, mcp_endpoint: URL | None = None + ) -> ListToolDefsResponse: + """List all tools in the runtime.""" + ... + + async def invoke_tool(self, tool_name: str, kwargs: dict[str, Any]) -> ToolInvocationResult: + """Run a tool with the given arguments.""" + ... diff --git a/src/llama_stack/apis/tools/tools.py b/src/llama_stack/apis/tools/tools.py deleted file mode 100644 index 39706d2cb..000000000 --- a/src/llama_stack/apis/tools/tools.py +++ /dev/null @@ -1,222 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from enum import Enum -from typing import Any, Literal, Protocol - -from pydantic import BaseModel -from typing_extensions import runtime_checkable - -from llama_stack.apis.common.content_types import URL, InterleavedContent -from llama_stack.apis.resource import Resource, ResourceType -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, webmethod - -from .rag_tool import RAGToolRuntime - - -@json_schema_type -class ToolDef(BaseModel): - """Tool definition used in runtime contexts. - - :param name: Name of the tool - :param description: (Optional) Human-readable description of what the tool does - :param input_schema: (Optional) JSON Schema for tool inputs (MCP inputSchema) - :param output_schema: (Optional) JSON Schema for tool outputs (MCP outputSchema) - :param metadata: (Optional) Additional metadata about the tool - :param toolgroup_id: (Optional) ID of the tool group this tool belongs to - """ - - toolgroup_id: str | None = None - name: str - description: str | None = None - input_schema: dict[str, Any] | None = None - output_schema: dict[str, Any] | None = None - metadata: dict[str, Any] | None = None - - -@json_schema_type -class ToolGroupInput(BaseModel): - """Input data for registering a tool group. - - :param toolgroup_id: Unique identifier for the tool group - :param provider_id: ID of the provider that will handle this tool group - :param args: (Optional) Additional arguments to pass to the provider - :param mcp_endpoint: (Optional) Model Context Protocol endpoint for remote tools - """ - - toolgroup_id: str - provider_id: str - args: dict[str, Any] | None = None - mcp_endpoint: URL | None = None - - -@json_schema_type -class ToolGroup(Resource): - """A group of related tools managed together. - - :param type: Type of resource, always 'tool_group' - :param mcp_endpoint: (Optional) Model Context Protocol endpoint for remote tools - :param args: (Optional) Additional arguments for the tool group - """ - - type: Literal[ResourceType.tool_group] = ResourceType.tool_group - mcp_endpoint: URL | None = None - args: dict[str, Any] | None = None - - -@json_schema_type -class ToolInvocationResult(BaseModel): - """Result of a tool invocation. - - :param content: (Optional) The output content from the tool execution - :param error_message: (Optional) Error message if the tool execution failed - :param error_code: (Optional) Numeric error code if the tool execution failed - :param metadata: (Optional) Additional metadata about the tool execution - """ - - content: InterleavedContent | None = None - error_message: str | None = None - error_code: int | None = None - metadata: dict[str, Any] | None = None - - -class ToolStore(Protocol): - async def get_tool(self, tool_name: str) -> ToolDef: ... - async def get_tool_group(self, toolgroup_id: str) -> ToolGroup: ... - - -class ListToolGroupsResponse(BaseModel): - """Response containing a list of tool groups. - - :param data: List of tool groups - """ - - data: list[ToolGroup] - - -@json_schema_type -class ListToolDefsResponse(BaseModel): - """Response containing a list of tool definitions. - - :param data: List of tool definitions - """ - - data: list[ToolDef] - - -@runtime_checkable -@trace_protocol -class ToolGroups(Protocol): - @webmethod(route="/toolgroups", method="POST", level=LLAMA_STACK_API_V1) - async def register_tool_group( - self, - toolgroup_id: str, - provider_id: str, - mcp_endpoint: URL | None = None, - args: dict[str, Any] | None = None, - ) -> None: - """Register a tool group. - - :param toolgroup_id: The ID of the tool group to register. - :param provider_id: The ID of the provider to use for the tool group. - :param mcp_endpoint: The MCP endpoint to use for the tool group. - :param args: A dictionary of arguments to pass to the tool group. - """ - ... - - @webmethod(route="/toolgroups/{toolgroup_id:path}", method="GET", level=LLAMA_STACK_API_V1) - async def get_tool_group( - self, - toolgroup_id: str, - ) -> ToolGroup: - """Get a tool group by its ID. - - :param toolgroup_id: The ID of the tool group to get. - :returns: A ToolGroup. - """ - ... - - @webmethod(route="/toolgroups", method="GET", level=LLAMA_STACK_API_V1) - async def list_tool_groups(self) -> ListToolGroupsResponse: - """List tool groups with optional provider. - - :returns: A ListToolGroupsResponse. - """ - ... - - @webmethod(route="/tools", method="GET", level=LLAMA_STACK_API_V1) - async def list_tools(self, toolgroup_id: str | None = None) -> ListToolDefsResponse: - """List tools with optional tool group. - - :param toolgroup_id: The ID of the tool group to list tools for. - :returns: A ListToolDefsResponse. - """ - ... - - @webmethod(route="/tools/{tool_name:path}", method="GET", level=LLAMA_STACK_API_V1) - async def get_tool( - self, - tool_name: str, - ) -> ToolDef: - """Get a tool by its name. - - :param tool_name: The name of the tool to get. - :returns: A ToolDef. - """ - ... - - @webmethod(route="/toolgroups/{toolgroup_id:path}", method="DELETE", level=LLAMA_STACK_API_V1) - async def unregister_toolgroup( - self, - toolgroup_id: str, - ) -> None: - """Unregister a tool group. - - :param toolgroup_id: The ID of the tool group to unregister. - """ - ... - - -class SpecialToolGroup(Enum): - """Special tool groups with predefined functionality. - - :cvar rag_tool: Retrieval-Augmented Generation tool group for document search and retrieval - """ - - rag_tool = "rag_tool" - - -@runtime_checkable -@trace_protocol -class ToolRuntime(Protocol): - tool_store: ToolStore | None = None - - rag_tool: RAGToolRuntime | None = None - - # TODO: This needs to be renamed once OPEN API generator name conflict issue is fixed. - @webmethod(route="/tool-runtime/list-tools", method="GET", level=LLAMA_STACK_API_V1) - async def list_runtime_tools( - self, tool_group_id: str | None = None, mcp_endpoint: URL | None = None - ) -> ListToolDefsResponse: - """List all tools in the runtime. - - :param tool_group_id: The ID of the tool group to list tools for. - :param mcp_endpoint: The MCP endpoint to use for the tool group. - :returns: A ListToolDefsResponse. - """ - ... - - @webmethod(route="/tool-runtime/invoke", method="POST", level=LLAMA_STACK_API_V1) - async def invoke_tool(self, tool_name: str, kwargs: dict[str, Any]) -> ToolInvocationResult: - """Run a tool with the given arguments. - - :param tool_name: The name of the tool to invoke. - :param kwargs: A dictionary of arguments to pass to the tool. - :returns: A ToolInvocationResult. - """ - ... diff --git a/src/llama_stack/apis/vector_io/__init__.py b/src/llama_stack/apis/vector_io/__init__.py index 3f4c60805..d00805efe 100644 --- a/src/llama_stack/apis/vector_io/__init__.py +++ b/src/llama_stack/apis/vector_io/__init__.py @@ -4,4 +4,77 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .vector_io import * +# Import routes to trigger router registration +from . import routes # noqa: F401 +from .models import ( + Chunk, + ChunkMetadata, + InsertChunksRequest, + OpenAICreateVectorStoreFileBatchRequestWithExtraBody, + OpenAICreateVectorStoreRequestWithExtraBody, + QueryChunksRequest, + QueryChunksResponse, + SearchRankingOptions, + VectorStoreChunkingStrategy, + VectorStoreChunkingStrategyAuto, + VectorStoreChunkingStrategyStatic, + VectorStoreChunkingStrategyStaticConfig, + VectorStoreContent, + VectorStoreCreateRequest, + VectorStoreDeleteResponse, + VectorStoreFileBatchObject, + VectorStoreFileContentsResponse, + VectorStoreFileCounts, + VectorStoreFileDeleteResponse, + VectorStoreFileLastError, + VectorStoreFileObject, + VectorStoreFilesListInBatchResponse, + VectorStoreFileStatus, + VectorStoreListFilesResponse, + VectorStoreListResponse, + VectorStoreModifyRequest, + VectorStoreObject, + VectorStoreSearchRequest, + VectorStoreSearchResponse, + VectorStoreSearchResponsePage, +) +from .vector_io_service import VectorIOService, VectorStoreTable + +# Backward compatibility - export VectorIO as alias for VectorIOService +VectorIO = VectorIOService + +__all__ = [ + "VectorIO", + "VectorIOService", + "VectorStoreTable", + "Chunk", + "ChunkMetadata", + "QueryChunksResponse", + "InsertChunksRequest", + "QueryChunksRequest", + "VectorStoreObject", + "VectorStoreCreateRequest", + "VectorStoreModifyRequest", + "VectorStoreListResponse", + "VectorStoreDeleteResponse", + "VectorStoreSearchRequest", + "VectorStoreSearchResponse", + "VectorStoreSearchResponsePage", + "VectorStoreContent", + "VectorStoreFileCounts", + "VectorStoreFileObject", + "VectorStoreListFilesResponse", + "VectorStoreFileContentsResponse", + "VectorStoreFileDeleteResponse", + "VectorStoreFileBatchObject", + "VectorStoreFilesListInBatchResponse", + "VectorStoreChunkingStrategy", + "VectorStoreChunkingStrategyAuto", + "VectorStoreChunkingStrategyStatic", + "VectorStoreChunkingStrategyStaticConfig", + "VectorStoreFileStatus", + "VectorStoreFileLastError", + "SearchRankingOptions", + "OpenAICreateVectorStoreRequestWithExtraBody", + "OpenAICreateVectorStoreFileBatchRequestWithExtraBody", +] diff --git a/src/llama_stack/apis/vector_io/models.py b/src/llama_stack/apis/vector_io/models.py new file mode 100644 index 000000000..f0cad3585 --- /dev/null +++ b/src/llama_stack/apis/vector_io/models.py @@ -0,0 +1,339 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated, Any, Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.inference import InterleavedContent +from llama_stack.schema_utils import json_schema_type, register_schema + + +@json_schema_type +class ChunkMetadata(BaseModel): + """ + `ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that + will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata` + is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after. + Use `Chunk.metadata` for metadata that will be used in the context during inference. + """ + + chunk_id: str | None = None + document_id: str | None = None + source: str | None = None + created_timestamp: int | None = None + updated_timestamp: int | None = None + chunk_window: str | None = None + chunk_tokenizer: str | None = None + chunk_embedding_model: str | None = None + chunk_embedding_dimension: int | None = None + content_token_count: int | None = None + metadata_token_count: int | None = None + + +@json_schema_type +class Chunk(BaseModel): + """A chunk of content that can be inserted into a vector database.""" + + content: InterleavedContent + chunk_id: str + metadata: dict[str, Any] = Field(default_factory=dict) + embedding: list[float] | None = None + chunk_metadata: ChunkMetadata | None = None + + @property + def document_id(self) -> str | None: + """Returns the document_id from either metadata or chunk_metadata, with metadata taking precedence.""" + # Check metadata first (takes precedence) + doc_id = self.metadata.get("document_id") + if doc_id is not None: + if not isinstance(doc_id, str): + raise TypeError(f"metadata['document_id'] must be a string, got {type(doc_id).__name__}: {doc_id!r}") + return doc_id + + # Fall back to chunk_metadata if available (Pydantic ensures type safety) + if self.chunk_metadata is not None: + return self.chunk_metadata.document_id + + return None + + +@json_schema_type +class QueryChunksResponse(BaseModel): + """Response from querying chunks in a vector database.""" + + chunks: list[Chunk] + scores: list[float] + + +@json_schema_type +class VectorStoreFileCounts(BaseModel): + """File processing status counts for a vector store.""" + + completed: int + cancelled: int + failed: int + in_progress: int + total: int + + +# TODO: rename this as OpenAIVectorStore +@json_schema_type +class VectorStoreObject(BaseModel): + """OpenAI Vector Store object.""" + + id: str + object: str = "vector_store" + created_at: int + name: str | None = None + usage_bytes: int = 0 + file_counts: VectorStoreFileCounts + status: str = "completed" + expires_after: dict[str, Any] | None = None + expires_at: int | None = None + last_active_at: int | None = None + metadata: dict[str, Any] = Field(default_factory=dict) + + +@json_schema_type +class VectorStoreCreateRequest(BaseModel): + """Request to create a vector store.""" + + name: str | None = None + file_ids: list[str] = Field(default_factory=list) + expires_after: dict[str, Any] | None = None + chunking_strategy: dict[str, Any] | None = None + metadata: dict[str, Any] = Field(default_factory=dict) + + +@json_schema_type +class VectorStoreModifyRequest(BaseModel): + """Request to modify a vector store.""" + + name: str | None = None + expires_after: dict[str, Any] | None = None + metadata: dict[str, Any] | None = None + + +@json_schema_type +class VectorStoreListResponse(BaseModel): + """Response from listing vector stores.""" + + object: str = "list" + data: list[VectorStoreObject] + first_id: str | None = None + last_id: str | None = None + has_more: bool = False + + +@json_schema_type +class VectorStoreSearchRequest(BaseModel): + """Request to search a vector store.""" + + query: str | list[str] + filters: dict[str, Any] | None = None + max_num_results: int = 10 + ranking_options: dict[str, Any] | None = None + rewrite_query: bool = False + + +@json_schema_type +class VectorStoreContent(BaseModel): + """Content item from a vector store file or search result.""" + + type: Literal["text"] + text: str + + +@json_schema_type +class VectorStoreSearchResponse(BaseModel): + """Response from searching a vector store.""" + + file_id: str + filename: str + score: float + attributes: dict[str, str | float | bool] | None = None + content: list[VectorStoreContent] + + +@json_schema_type +class VectorStoreSearchResponsePage(BaseModel): + """Paginated response from searching a vector store.""" + + object: str = "vector_store.search_results.page" + search_query: str + data: list[VectorStoreSearchResponse] + has_more: bool = False + next_page: str | None = None + + +@json_schema_type +class VectorStoreDeleteResponse(BaseModel): + """Response from deleting a vector store.""" + + id: str + object: str = "vector_store.deleted" + deleted: bool = True + + +@json_schema_type +class VectorStoreChunkingStrategyAuto(BaseModel): + """Automatic chunking strategy for vector store files.""" + + type: Literal["auto"] = "auto" + + +@json_schema_type +class VectorStoreChunkingStrategyStaticConfig(BaseModel): + """Configuration for static chunking strategy.""" + + chunk_overlap_tokens: int = 400 + max_chunk_size_tokens: int = Field(800, ge=100, le=4096) + + +@json_schema_type +class VectorStoreChunkingStrategyStatic(BaseModel): + """Static chunking strategy with configurable parameters.""" + + type: Literal["static"] = "static" + static: VectorStoreChunkingStrategyStaticConfig + + +VectorStoreChunkingStrategy = Annotated[ + VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic, + Field(discriminator="type"), +] +register_schema(VectorStoreChunkingStrategy, name="VectorStoreChunkingStrategy") + + +class SearchRankingOptions(BaseModel): + """Options for ranking and filtering search results.""" + + ranker: str | None = None + # NOTE: OpenAI File Search Tool requires threshold to be between 0 and 1, however + # we don't guarantee that the score is between 0 and 1, so will leave this unconstrained + # and let the provider handle it + score_threshold: float | None = Field(default=0.0) + + +@json_schema_type +class VectorStoreFileLastError(BaseModel): + """Error information for failed vector store file processing.""" + + code: Literal["server_error"] | Literal["rate_limit_exceeded"] + message: str + + +VectorStoreFileStatus = Literal["completed"] | Literal["in_progress"] | Literal["cancelled"] | Literal["failed"] +register_schema(VectorStoreFileStatus, name="VectorStoreFileStatus") + + +@json_schema_type +class VectorStoreFileObject(BaseModel): + """OpenAI Vector Store File object.""" + + id: str + object: str = "vector_store.file" + attributes: dict[str, Any] = Field(default_factory=dict) + chunking_strategy: VectorStoreChunkingStrategy + created_at: int + last_error: VectorStoreFileLastError | None = None + status: VectorStoreFileStatus + usage_bytes: int = 0 + vector_store_id: str + + +@json_schema_type +class VectorStoreListFilesResponse(BaseModel): + """Response from listing files in a vector store.""" + + object: str = "list" + data: list[VectorStoreFileObject] + first_id: str | None = None + last_id: str | None = None + has_more: bool = False + + +@json_schema_type +class VectorStoreFileContentsResponse(BaseModel): + """Response from retrieving the contents of a vector store file.""" + + file_id: str + filename: str + attributes: dict[str, Any] + content: list[VectorStoreContent] + + +@json_schema_type +class VectorStoreFileDeleteResponse(BaseModel): + """Response from deleting a vector store file.""" + + id: str + object: str = "vector_store.file.deleted" + deleted: bool = True + + +@json_schema_type +class VectorStoreFileBatchObject(BaseModel): + """OpenAI Vector Store File Batch object.""" + + id: str + object: str = "vector_store.file_batch" + created_at: int + vector_store_id: str + status: VectorStoreFileStatus + file_counts: VectorStoreFileCounts + + +@json_schema_type +class VectorStoreFilesListInBatchResponse(BaseModel): + """Response from listing files in a vector store file batch.""" + + object: str = "list" + data: list[VectorStoreFileObject] + first_id: str | None = None + last_id: str | None = None + has_more: bool = False + + +# extra_body can be accessed via .model_extra +@json_schema_type +class OpenAICreateVectorStoreRequestWithExtraBody(BaseModel, extra="allow"): + """Request to create a vector store with extra_body support.""" + + name: str | None = None + file_ids: list[str] | None = None + expires_after: dict[str, Any] | None = None + chunking_strategy: dict[str, Any] | None = None + metadata: dict[str, Any] | 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.""" + + file_ids: list[str] + attributes: dict[str, Any] | None = None + chunking_strategy: VectorStoreChunkingStrategy | None = None + + +@json_schema_type +class InsertChunksRequest(BaseModel): + """Request to insert chunks into a vector database.""" + + vector_store_id: str = Field(..., description="The identifier of the vector database to insert the chunks into.") + chunks: list[Chunk] = Field(..., description="The chunks to insert.") + ttl_seconds: int | None = Field(None, description="The time to live of the chunks.") + + +@json_schema_type +class QueryChunksRequest(BaseModel): + """Request to query chunks from a vector database.""" + + vector_store_id: str = Field(..., description="The identifier of the vector database to query.") + query: InterleavedContent = Field(..., description="The query to search for.") + params: dict[str, Any] | None = Field(None, description="The parameters of the query.") diff --git a/src/llama_stack/apis/vector_io/routes.py b/src/llama_stack/apis/vector_io/routes.py new file mode 100644 index 000000000..2f2535854 --- /dev/null +++ b/src/llama_stack/apis/vector_io/routes.py @@ -0,0 +1,452 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated, Any + +from fastapi import Body, Depends, Query, Request +from fastapi import Path as FastAPIPath + +from llama_stack.apis.datatypes import Api +from llama_stack.apis.version import LLAMA_STACK_API_V1 +from llama_stack.core.server.router_utils import standard_responses +from llama_stack.core.server.routers import APIRouter, register_router + +from .models import ( + InsertChunksRequest, + OpenAICreateVectorStoreFileBatchRequestWithExtraBody, + OpenAICreateVectorStoreRequestWithExtraBody, + QueryChunksRequest, + QueryChunksResponse, + SearchRankingOptions, + VectorStoreChunkingStrategy, + VectorStoreDeleteResponse, + VectorStoreFileBatchObject, + VectorStoreFileContentsResponse, + VectorStoreFileDeleteResponse, + VectorStoreFileObject, + VectorStoreFilesListInBatchResponse, + VectorStoreFileStatus, + VectorStoreListFilesResponse, + VectorStoreListResponse, + VectorStoreModifyRequest, + VectorStoreObject, + VectorStoreSearchResponsePage, +) +from .vector_io_service import VectorIOService + + +def get_vector_io_service(request: Request) -> VectorIOService: + """Dependency to get the vector io service implementation from app state.""" + impls = getattr(request.app.state, "impls", {}) + if Api.vector_io not in impls: + raise ValueError("Vector IO API implementation not found") + return impls[Api.vector_io] + + +router = APIRouter( + prefix=f"/{LLAMA_STACK_API_V1}", + tags=["Vector IO"], + responses=standard_responses, +) + + +@router.post( + "/vector-io/insert", + response_model=None, + status_code=204, + summary="Insert chunks into a vector database.", + description="Insert chunks into a vector database.", +) +async def insert_chunks( + body: InsertChunksRequest = Body(...), + svc: VectorIOService = Depends(get_vector_io_service), +) -> None: + """Insert chunks into a vector database.""" + await svc.insert_chunks(vector_store_id=body.vector_store_id, chunks=body.chunks, ttl_seconds=body.ttl_seconds) + + +@router.post( + "/vector-io/query", + response_model=QueryChunksResponse, + summary="Query chunks from a vector database.", + description="Query chunks from a vector database.", +) +async def query_chunks( + body: QueryChunksRequest = Body(...), + svc: VectorIOService = Depends(get_vector_io_service), +) -> QueryChunksResponse: + """Query chunks from a vector database.""" + return await svc.query_chunks(vector_store_id=body.vector_store_id, query=body.query, params=body.params) + + +# OpenAI Vector Stores API endpoints +@router.post( + "/vector_stores", + response_model=VectorStoreObject, + summary="Creates a vector store.", + description="Creates a vector store.", +) +async def openai_create_vector_store( + body: OpenAICreateVectorStoreRequestWithExtraBody = Body(...), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreObject: + """Creates a vector store.""" + return await svc.openai_create_vector_store(params=body) + + +@router.get( + "/vector_stores", + response_model=VectorStoreListResponse, + summary="Returns a list of vector stores.", + description="Returns a list of vector stores.", +) +async def openai_list_vector_stores( + limit: int | None = Query( + 20, + description="A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + ge=1, + le=100, + ), + order: str | None = Query( + "desc", + description="Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.", + ), + after: str | None = Query( + None, description="A cursor for use in pagination. `after` is an object ID that defines your place in the list." + ), + before: str | None = Query( + None, + description="A cursor for use in pagination. `before` is an object ID that defines your place in the list.", + ), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreListResponse: + """Returns a list of vector stores.""" + return await svc.openai_list_vector_stores(limit=limit, order=order, after=after, before=before) + + +@router.get( + "/vector_stores/{vector_store_id}", + response_model=VectorStoreObject, + summary="Retrieves a vector store.", + description="Retrieves a vector store.", +) +async def openai_retrieve_vector_store( + vector_store_id: Annotated[str, FastAPIPath(..., description="The ID of the vector store to retrieve.")], + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreObject: + """Retrieves a vector store.""" + return await svc.openai_retrieve_vector_store(vector_store_id=vector_store_id) + + +@router.post( + "/vector_stores/{vector_store_id}", + response_model=VectorStoreObject, + summary="Updates a vector store.", + description="Updates a vector store.", +) +async def openai_update_vector_store( + vector_store_id: Annotated[str, FastAPIPath(..., description="The ID of the vector store to update.")], + body: VectorStoreModifyRequest = Body(...), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreObject: + """Updates a vector store.""" + return await svc.openai_update_vector_store( + vector_store_id=vector_store_id, + name=body.name, + expires_after=body.expires_after, + metadata=body.metadata, + ) + + +@router.delete( + "/vector_stores/{vector_store_id}", + response_model=VectorStoreDeleteResponse, + summary="Delete a vector store.", + description="Delete a vector store.", +) +async def openai_delete_vector_store( + vector_store_id: Annotated[str, FastAPIPath(..., description="The ID of the vector store to delete.")], + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreDeleteResponse: + """Delete a vector store.""" + return await svc.openai_delete_vector_store(vector_store_id=vector_store_id) + + +@router.post( + "/vector_stores/{vector_store_id}/search", + response_model=VectorStoreSearchResponsePage, + summary="Search for chunks in a vector store.", + description="Search for chunks in a vector store.", +) +async def openai_search_vector_store( + vector_store_id: Annotated[str, FastAPIPath(..., description="The ID of the vector store to search.")], + query: str | list[str] = Body(..., description="The query string or array for performing the search."), + filters: dict[str, Any] | None = Body( + None, description="Filters based on file attributes to narrow the search results." + ), + max_num_results: int | None = Body( + 10, description="Maximum number of results to return (1 to 50 inclusive, default 10).", ge=1, le=50 + ), + ranking_options: SearchRankingOptions | None = Body( + None, description="Ranking options for fine-tuning the search results." + ), + rewrite_query: bool = Body( + False, description="Whether to rewrite the natural language query for vector search (default false)." + ), + search_mode: str | None = Body( + "vector", description="The search mode to use - 'keyword', 'vector', or 'hybrid' (default 'vector')." + ), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreSearchResponsePage: + """Search for chunks in a vector store.""" + return await svc.openai_search_vector_store( + vector_store_id=vector_store_id, + query=query, + filters=filters, + max_num_results=max_num_results, + ranking_options=ranking_options, + rewrite_query=rewrite_query, + search_mode=search_mode, + ) + + +@router.post( + "/vector_stores/{vector_store_id}/files", + response_model=VectorStoreFileObject, + summary="Attach a file to a vector store.", + description="Attach a file to a vector store.", +) +async def openai_attach_file_to_vector_store( + vector_store_id: Annotated[str, FastAPIPath(..., description="The ID of the vector store to attach the file to.")], + file_id: str = Body(..., description="The ID of the file to attach to the vector store."), + attributes: dict[str, Any] | None = Body( + None, description="The key-value attributes stored with the file, which can be used for filtering." + ), + chunking_strategy: VectorStoreChunkingStrategy | None = Body( + None, description="The chunking strategy to use for the file." + ), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileObject: + """Attach a file to a vector store.""" + return await svc.openai_attach_file_to_vector_store( + vector_store_id=vector_store_id, + file_id=file_id, + attributes=attributes, + chunking_strategy=chunking_strategy, + ) + + +@router.get( + "/vector_stores/{vector_store_id}/files", + response_model=VectorStoreListFilesResponse, + summary="List files in a vector store.", + description="List files in a vector store.", +) +async def openai_list_files_in_vector_store( + vector_store_id: Annotated[str, FastAPIPath(..., description="The ID of the vector store to list files from.")], + limit: int | None = Query( + 20, + description="A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + ge=1, + le=100, + ), + order: str | None = Query( + "desc", + description="Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.", + ), + after: str | None = Query( + None, description="A cursor for use in pagination. `after` is an object ID that defines your place in the list." + ), + before: str | None = Query( + None, + description="A cursor for use in pagination. `before` is an object ID that defines your place in the list.", + ), + filter: VectorStoreFileStatus | None = Query( + None, description="Filter by file status to only return files with the specified status." + ), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreListFilesResponse: + """List files in a vector store.""" + return await svc.openai_list_files_in_vector_store( + vector_store_id=vector_store_id, limit=limit, order=order, after=after, before=before, filter=filter + ) + + +@router.get( + "/vector_stores/{vector_store_id}/files/{file_id}", + response_model=VectorStoreFileObject, + summary="Retrieves a vector store file.", + description="Retrieves a vector store file.", +) +async def openai_retrieve_vector_store_file( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store containing the file to retrieve.") + ], + file_id: Annotated[str, FastAPIPath(..., description="The ID of the file to retrieve.")], + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileObject: + """Retrieves a vector store file.""" + return await svc.openai_retrieve_vector_store_file(vector_store_id=vector_store_id, file_id=file_id) + + +@router.get( + "/vector_stores/{vector_store_id}/files/{file_id}/content", + response_model=VectorStoreFileContentsResponse, + summary="Retrieves the contents of a vector store file.", + description="Retrieves the contents of a vector store file.", +) +async def openai_retrieve_vector_store_file_contents( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store containing the file to retrieve.") + ], + file_id: Annotated[str, FastAPIPath(..., description="The ID of the file to retrieve.")], + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileContentsResponse: + """Retrieves the contents of a vector store file.""" + return await svc.openai_retrieve_vector_store_file_contents(vector_store_id=vector_store_id, file_id=file_id) + + +@router.post( + "/vector_stores/{vector_store_id}/files/{file_id}", + response_model=VectorStoreFileObject, + summary="Updates a vector store file.", + description="Updates a vector store file.", +) +async def openai_update_vector_store_file( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store containing the file to update.") + ], + file_id: Annotated[str, FastAPIPath(..., description="The ID of the file to update.")], + attributes: dict[str, Any] = Body(..., description="The updated key-value attributes to store with the file."), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileObject: + """Updates a vector store file.""" + return await svc.openai_update_vector_store_file( + vector_store_id=vector_store_id, file_id=file_id, attributes=attributes + ) + + +@router.delete( + "/vector_stores/{vector_store_id}/files/{file_id}", + response_model=VectorStoreFileDeleteResponse, + summary="Delete a vector store file.", + description="Delete a vector store file.", +) +async def openai_delete_vector_store_file( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store containing the file to delete.") + ], + file_id: Annotated[str, FastAPIPath(..., description="The ID of the file to delete.")], + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileDeleteResponse: + """Delete a vector store file.""" + return await svc.openai_delete_vector_store_file(vector_store_id=vector_store_id, file_id=file_id) + + +@router.post( + "/vector_stores/{vector_store_id}/file_batches", + response_model=VectorStoreFileBatchObject, + summary="Create a vector store file batch.", + description="Create a vector store file batch.", +) +async def openai_create_vector_store_file_batch( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store to create the file batch for.") + ], + body: OpenAICreateVectorStoreFileBatchRequestWithExtraBody = Body(...), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileBatchObject: + """Create a vector store file batch.""" + return await svc.openai_create_vector_store_file_batch(vector_store_id=vector_store_id, params=body) + + +@router.get( + "/vector_stores/{vector_store_id}/file_batches/{batch_id}", + response_model=VectorStoreFileBatchObject, + summary="Retrieve a vector store file batch.", + description="Retrieve a vector store file batch.", +) +async def openai_retrieve_vector_store_file_batch( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store containing the file batch.") + ], + batch_id: Annotated[str, FastAPIPath(..., description="The ID of the file batch to retrieve.")], + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileBatchObject: + """Retrieve a vector store file batch.""" + return await svc.openai_retrieve_vector_store_file_batch(batch_id=batch_id, vector_store_id=vector_store_id) + + +@router.get( + "/vector_stores/{vector_store_id}/file_batches/{batch_id}/files", + response_model=VectorStoreFilesListInBatchResponse, + summary="Returns a list of vector store files in a batch.", + description="Returns a list of vector store files in a batch.", +) +async def openai_list_files_in_vector_store_file_batch( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store containing the file batch.") + ], + batch_id: Annotated[str, FastAPIPath(..., description="The ID of the file batch to list files from.")], + after: str | None = Query( + None, description="A cursor for use in pagination. `after` is an object ID that defines your place in the list." + ), + before: str | None = Query( + None, + description="A cursor for use in pagination. `before` is an object ID that defines your place in the list.", + ), + filter: str | None = Query( + None, description="Filter by file status. One of in_progress, completed, failed, cancelled." + ), + limit: int | None = Query( + 20, + description="A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + ge=1, + le=100, + ), + order: str | None = Query( + "desc", + description="Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.", + ), + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFilesListInBatchResponse: + """Returns a list of vector store files in a batch.""" + return await svc.openai_list_files_in_vector_store_file_batch( + batch_id=batch_id, + vector_store_id=vector_store_id, + after=after, + before=before, + filter=filter, + limit=limit, + order=order, + ) + + +@router.post( + "/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel", + response_model=VectorStoreFileBatchObject, + summary="Cancels a vector store file batch.", + description="Cancels a vector store file batch.", +) +async def openai_cancel_vector_store_file_batch( + vector_store_id: Annotated[ + str, FastAPIPath(..., description="The ID of the vector store containing the file batch.") + ], + batch_id: Annotated[str, FastAPIPath(..., description="The ID of the file batch to cancel.")], + svc: VectorIOService = Depends(get_vector_io_service), +) -> VectorStoreFileBatchObject: + """Cancels a vector store file batch.""" + return await svc.openai_cancel_vector_store_file_batch(batch_id=batch_id, vector_store_id=vector_store_id) + + +# For backward compatibility with the router registry system +def create_vector_io_router(impl_getter) -> APIRouter: + """Create a FastAPI router for the Vector IO API (legacy compatibility).""" + return router + + +# Register the router factory +register_router(Api.vector_io, create_vector_io_router) diff --git a/src/llama_stack/apis/vector_io/vector_io.py b/src/llama_stack/apis/vector_io/vector_io.py deleted file mode 100644 index 892dc0711..000000000 --- a/src/llama_stack/apis/vector_io/vector_io.py +++ /dev/null @@ -1,861 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. -from typing import Annotated, Any, Literal, Protocol, runtime_checkable - -from fastapi import Body -from pydantic import BaseModel, Field - -from llama_stack.apis.inference import InterleavedContent -from llama_stack.apis.vector_stores import VectorStore -from llama_stack.apis.version import LLAMA_STACK_API_V1 -from llama_stack.core.telemetry.trace_protocol import trace_protocol -from llama_stack.schema_utils import json_schema_type, register_schema, webmethod - - -@json_schema_type -class ChunkMetadata(BaseModel): - """ - `ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that - will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata` - is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after. - Use `Chunk.metadata` for metadata that will be used in the context during inference. - :param chunk_id: The ID of the chunk. If not set, it will be generated based on the document ID and content. - :param document_id: The ID of the document this chunk belongs to. - :param source: The source of the content, such as a URL, file path, or other identifier. - :param created_timestamp: An optional timestamp indicating when the chunk was created. - :param updated_timestamp: An optional timestamp indicating when the chunk was last updated. - :param chunk_window: The window of the chunk, which can be used to group related chunks together. - :param chunk_tokenizer: The tokenizer used to create the chunk. Default is Tiktoken. - :param chunk_embedding_model: The embedding model used to create the chunk's embedding. - :param chunk_embedding_dimension: The dimension of the embedding vector for the chunk. - :param content_token_count: The number of tokens in the content of the chunk. - :param metadata_token_count: The number of tokens in the metadata of the chunk. - """ - - chunk_id: str | None = None - document_id: str | None = None - source: str | None = None - created_timestamp: int | None = None - updated_timestamp: int | None = None - chunk_window: str | None = None - chunk_tokenizer: str | None = None - chunk_embedding_model: str | None = None - chunk_embedding_dimension: int | None = None - content_token_count: int | None = None - metadata_token_count: int | None = None - - -@json_schema_type -class Chunk(BaseModel): - """ - A chunk of content that can be inserted into a vector database. - :param content: The content of the chunk, which can be interleaved text, images, or other types. - :param chunk_id: Unique identifier for the chunk. Must be provided explicitly. - :param metadata: Metadata associated with the chunk that will be used in the model context during inference. - :param embedding: Optional embedding for the chunk. If not provided, it will be computed later. - :param chunk_metadata: Metadata for the chunk that will NOT be used in the context during inference. - The `chunk_metadata` is required backend functionality. - """ - - content: InterleavedContent - chunk_id: str - metadata: dict[str, Any] = Field(default_factory=dict) - embedding: list[float] | None = None - chunk_metadata: ChunkMetadata | None = None - - @property - def document_id(self) -> str | None: - """Returns the document_id from either metadata or chunk_metadata, with metadata taking precedence.""" - # Check metadata first (takes precedence) - doc_id = self.metadata.get("document_id") - if doc_id is not None: - if not isinstance(doc_id, str): - raise TypeError(f"metadata['document_id'] must be a string, got {type(doc_id).__name__}: {doc_id!r}") - return doc_id - - # Fall back to chunk_metadata if available (Pydantic ensures type safety) - if self.chunk_metadata is not None: - return self.chunk_metadata.document_id - - return None - - -@json_schema_type -class QueryChunksResponse(BaseModel): - """Response from querying chunks in a vector database. - - :param chunks: List of content chunks returned from the query - :param scores: Relevance scores corresponding to each returned chunk - """ - - chunks: list[Chunk] - scores: list[float] - - -@json_schema_type -class VectorStoreFileCounts(BaseModel): - """File processing status counts for a vector store. - - :param completed: Number of files that have been successfully processed - :param cancelled: Number of files that had their processing cancelled - :param failed: Number of files that failed to process - :param in_progress: Number of files currently being processed - :param total: Total number of files in the vector store - """ - - completed: int - cancelled: int - failed: int - in_progress: int - total: int - - -# TODO: rename this as OpenAIVectorStore -@json_schema_type -class VectorStoreObject(BaseModel): - """OpenAI Vector Store object. - - :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 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 - :param expires_after: (Optional) Expiration policy for the vector store - :param expires_at: (Optional) Timestamp when the vector store will expire - :param last_active_at: (Optional) Timestamp of last activity on the vector store - :param metadata: Set of key-value pairs that can be attached to the vector store - """ - - id: str - object: str = "vector_store" - created_at: int - name: str | None = None - usage_bytes: int = 0 - file_counts: VectorStoreFileCounts - status: str = "completed" - expires_after: dict[str, Any] | None = None - expires_at: int | None = None - last_active_at: int | None = None - metadata: dict[str, Any] = Field(default_factory=dict) - - -@json_schema_type -class VectorStoreCreateRequest(BaseModel): - """Request to create a vector store. - - :param name: (Optional) Name for 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 - :param metadata: Set of key-value pairs that can be attached to the vector store - """ - - name: str | None = None - file_ids: list[str] = Field(default_factory=list) - expires_after: dict[str, Any] | None = None - chunking_strategy: dict[str, Any] | None = None - metadata: dict[str, Any] = Field(default_factory=dict) - - -@json_schema_type -class VectorStoreModifyRequest(BaseModel): - """Request to modify a vector store. - - :param name: (Optional) Updated name for the vector store - :param expires_after: (Optional) Updated expiration policy for the vector store - :param metadata: (Optional) Updated set of key-value pairs for the vector store - """ - - name: str | None = None - expires_after: dict[str, Any] | None = None - metadata: dict[str, Any] | None = None - - -@json_schema_type -class VectorStoreListResponse(BaseModel): - """Response from listing vector stores. - - :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 has_more: Whether there are more vector stores available beyond this page - """ - - object: str = "list" - data: list[VectorStoreObject] - first_id: str | None = None - last_id: str | None = None - has_more: bool = False - - -@json_schema_type -class VectorStoreSearchRequest(BaseModel): - """Request to search a vector store. - - :param query: Search query as a string or list of strings - :param filters: (Optional) Filters based on file attributes to narrow search results - :param max_num_results: Maximum number of results to return, defaults to 10 - :param ranking_options: (Optional) Options for ranking and filtering search results - :param rewrite_query: Whether to rewrite the query for better vector search performance - """ - - query: str | list[str] - filters: dict[str, Any] | None = None - max_num_results: int = 10 - ranking_options: dict[str, Any] | None = None - rewrite_query: bool = False - - -@json_schema_type -class VectorStoreContent(BaseModel): - """Content item from a vector store file or search result. - - :param type: Content type, currently only "text" is supported - :param text: The actual text content - """ - - type: Literal["text"] - text: str - - -@json_schema_type -class VectorStoreSearchResponse(BaseModel): - """Response from searching a vector store. - - :param file_id: Unique identifier of the file containing the result - :param filename: Name of the file containing the result - :param score: Relevance score for this search result - :param attributes: (Optional) Key-value attributes associated with the file - :param content: List of content items matching the search query - """ - - file_id: str - filename: str - score: float - attributes: dict[str, str | float | bool] | None = None - content: list[VectorStoreContent] - - -@json_schema_type -class VectorStoreSearchResponsePage(BaseModel): - """Paginated response from searching a vector store. - - :param object: Object type identifier for the search results page - :param search_query: The original search query that was executed - :param data: List of search result objects - :param has_more: Whether there are more results available beyond this page - :param next_page: (Optional) Token for retrieving the next page of results - """ - - object: str = "vector_store.search_results.page" - search_query: str - data: list[VectorStoreSearchResponse] - has_more: bool = False - next_page: str | None = None - - -@json_schema_type -class VectorStoreDeleteResponse(BaseModel): - """Response from deleting a vector store. - - :param id: Unique identifier of the deleted vector store - :param object: Object type identifier for the deletion response - :param deleted: Whether the deletion operation was successful - """ - - id: str - object: str = "vector_store.deleted" - deleted: bool = True - - -@json_schema_type -class VectorStoreChunkingStrategyAuto(BaseModel): - """Automatic chunking strategy for vector store files. - - :param type: Strategy type, always "auto" for automatic chunking - """ - - type: Literal["auto"] = "auto" - - -@json_schema_type -class VectorStoreChunkingStrategyStaticConfig(BaseModel): - """Configuration for static chunking strategy. - - :param chunk_overlap_tokens: Number of tokens to overlap between adjacent chunks - :param max_chunk_size_tokens: Maximum number of tokens per chunk, must be between 100 and 4096 - """ - - chunk_overlap_tokens: int = 400 - max_chunk_size_tokens: int = Field(800, ge=100, le=4096) - - -@json_schema_type -class VectorStoreChunkingStrategyStatic(BaseModel): - """Static chunking strategy with configurable parameters. - - :param type: Strategy type, always "static" for static chunking - :param static: Configuration parameters for the static chunking strategy - """ - - type: Literal["static"] = "static" - static: VectorStoreChunkingStrategyStaticConfig - - -VectorStoreChunkingStrategy = Annotated[ - VectorStoreChunkingStrategyAuto | VectorStoreChunkingStrategyStatic, - Field(discriminator="type"), -] -register_schema(VectorStoreChunkingStrategy, name="VectorStoreChunkingStrategy") - - -class SearchRankingOptions(BaseModel): - """Options for ranking and filtering search results. - - :param ranker: (Optional) Name of the ranking algorithm to use - :param score_threshold: (Optional) Minimum relevance score threshold for results - """ - - ranker: str | None = None - # NOTE: OpenAI File Search Tool requires threshold to be between 0 and 1, however - # we don't guarantee that the score is between 0 and 1, so will leave this unconstrained - # and let the provider handle it - score_threshold: float | None = Field(default=0.0) - - -@json_schema_type -class VectorStoreFileLastError(BaseModel): - """Error information for failed vector store file processing. - - :param code: Error code indicating the type of failure - :param message: Human-readable error message describing the failure - """ - - code: Literal["server_error"] | Literal["rate_limit_exceeded"] - message: str - - -VectorStoreFileStatus = Literal["completed"] | Literal["in_progress"] | Literal["cancelled"] | Literal["failed"] -register_schema(VectorStoreFileStatus, name="VectorStoreFileStatus") - - -@json_schema_type -class VectorStoreFileObject(BaseModel): - """OpenAI Vector Store File object. - - :param id: Unique identifier for the file - :param object: Object type identifier, always "vector_store.file" - :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 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: dict[str, Any] = Field(default_factory=dict) - chunking_strategy: VectorStoreChunkingStrategy - created_at: int - last_error: VectorStoreFileLastError | None = None - status: VectorStoreFileStatus - usage_bytes: int = 0 - vector_store_id: str - - -@json_schema_type -class VectorStoreListFilesResponse(BaseModel): - """Response from listing files in a vector store. - - :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 has_more: Whether there are more files available beyond this page - """ - - object: str = "list" - data: list[VectorStoreFileObject] - first_id: str | None = None - last_id: str | None = None - has_more: bool = False - - -@json_schema_type -class VectorStoreFileContentsResponse(BaseModel): - """Response from retrieving the contents of a vector store file. - - :param file_id: Unique identifier for the file - :param filename: Name of the file - :param attributes: Key-value attributes associated with the file - :param content: List of content items from the file - """ - - file_id: str - filename: str - attributes: dict[str, Any] - content: list[VectorStoreContent] - - -@json_schema_type -class VectorStoreFileDeleteResponse(BaseModel): - """Response from deleting a vector store file. - - :param id: Unique identifier of the deleted file - :param object: Object type identifier for the deletion response - :param deleted: Whether the deletion operation was successful - """ - - id: str - object: str = "vector_store.file.deleted" - deleted: bool = True - - -@json_schema_type -class VectorStoreFileBatchObject(BaseModel): - """OpenAI Vector Store File Batch object. - - :param id: Unique identifier for the file batch - :param object: Object type identifier, always "vector_store.file_batch" - :param created_at: Timestamp when the file batch was created - :param vector_store_id: ID of the vector store containing the file batch - :param status: Current processing status of the file batch - :param file_counts: File processing status counts for the batch - """ - - id: str - object: str = "vector_store.file_batch" - created_at: int - vector_store_id: str - status: VectorStoreFileStatus - file_counts: VectorStoreFileCounts - - -@json_schema_type -class VectorStoreFilesListInBatchResponse(BaseModel): - """Response from listing files in a vector store file batch. - - :param object: Object type identifier, always "list" - :param data: List of vector store file objects in the batch - :param first_id: (Optional) ID of the first file in the list for pagination - :param last_id: (Optional) ID of the last file in the list for pagination - :param has_more: Whether there are more files available beyond this page - """ - - object: str = "list" - data: list[VectorStoreFileObject] - first_id: str | None = None - last_id: str | None = None - has_more: bool = False - - -# extra_body can be accessed via .model_extra -@json_schema_type -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 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 - :param metadata: Set of key-value pairs that can be attached to the vector store - """ - - name: str | None = None - file_ids: list[str] | None = None - expires_after: dict[str, Any] | None = None - chunking_strategy: dict[str, Any] | None = None - metadata: dict[str, Any] | 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 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 - chunking_strategy: VectorStoreChunkingStrategy | None = None - - -class VectorStoreTable(Protocol): - def get_vector_store(self, vector_store_id: str) -> VectorStore | None: ... - - -@runtime_checkable -@trace_protocol -class VectorIO(Protocol): - vector_store_table: VectorStoreTable | None = None - - # this will just block now until chunks are inserted, but it should - # probably return a Job instance which can be polled for completion - # TODO: rename vector_store_id to vector_store_id once Stainless is working - @webmethod(route="/vector-io/insert", method="POST", level=LLAMA_STACK_API_V1) - async def insert_chunks( - self, - vector_store_id: str, - chunks: list[Chunk], - ttl_seconds: int | None = None, - ) -> None: - """Insert chunks into a vector database. - - :param vector_store_id: The identifier of the vector database to insert the chunks into. - :param chunks: The chunks to insert. Each `Chunk` should contain content which can be interleaved text, images, or other types. - `metadata`: `dict[str, Any]` and `embedding`: `List[float]` are optional. - If `metadata` is provided, you configure how Llama Stack formats the chunk during generation. - If `embedding` is not provided, it will be computed later. - :param ttl_seconds: The time to live of the chunks. - """ - ... - - # TODO: rename vector_store_id to vector_store_id once Stainless is working - @webmethod(route="/vector-io/query", method="POST", level=LLAMA_STACK_API_V1) - async def query_chunks( - self, - vector_store_id: str, - query: InterleavedContent, - params: dict[str, Any] | None = None, - ) -> QueryChunksResponse: - """Query chunks from a vector database. - - :param vector_store_id: The identifier of the vector database to query. - :param query: The query to search for. - :param params: The parameters of the query. - :returns: A QueryChunksResponse. - """ - ... - - # OpenAI Vector Stores API endpoints - @webmethod(route="/vector_stores", method="POST", level=LLAMA_STACK_API_V1) - async def openai_create_vector_store( - self, - params: Annotated[OpenAICreateVectorStoreRequestWithExtraBody, Body(...)], - ) -> VectorStoreObject: - """Creates a vector store. - - Generate an OpenAI-compatible vector store with the given parameters. - :returns: A VectorStoreObject representing the created vector store. - """ - ... - - @webmethod(route="/vector_stores", method="GET", level=LLAMA_STACK_API_V1) - async def openai_list_vector_stores( - self, - limit: int | None = 20, - order: str | None = "desc", - after: str | None = None, - before: str | None = None, - ) -> VectorStoreListResponse: - """Returns a list of vector stores. - - :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - :param order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. - :param after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - :param before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. - :returns: A VectorStoreListResponse containing the list of vector stores. - """ - ... - - @webmethod(route="/vector_stores/{vector_store_id}", method="GET", level=LLAMA_STACK_API_V1) - async def openai_retrieve_vector_store( - self, - vector_store_id: str, - ) -> VectorStoreObject: - """Retrieves a vector store. - - :param vector_store_id: The ID of the vector store to retrieve. - :returns: A VectorStoreObject representing the vector store. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}", - method="POST", - level=LLAMA_STACK_API_V1, - ) - async def openai_update_vector_store( - self, - vector_store_id: str, - name: str | None = None, - expires_after: dict[str, Any] | None = None, - metadata: dict[str, Any] | None = None, - ) -> VectorStoreObject: - """Updates a vector store. - - :param vector_store_id: The ID of the vector store to update. - :param name: The name of the vector store. - :param expires_after: The expiration policy for a vector store. - :param metadata: Set of 16 key-value pairs that can be attached to an object. - :returns: A VectorStoreObject representing the updated vector store. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}", - method="DELETE", - level=LLAMA_STACK_API_V1, - ) - async def openai_delete_vector_store( - self, - vector_store_id: str, - ) -> VectorStoreDeleteResponse: - """Delete a vector store. - - :param vector_store_id: The ID of the vector store to delete. - :returns: A VectorStoreDeleteResponse indicating the deletion status. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/search", - method="POST", - level=LLAMA_STACK_API_V1, - ) - async def openai_search_vector_store( - self, - vector_store_id: str, - query: str | list[str], - filters: dict[str, Any] | None = None, - max_num_results: int | None = 10, - ranking_options: SearchRankingOptions | None = None, - rewrite_query: bool | None = False, - search_mode: ( - str | None - ) = "vector", # Using str instead of Literal due to OpenAPI schema generator limitations - ) -> VectorStoreSearchResponsePage: - """Search for chunks in a vector store. - - Searches a vector store for relevant chunks based on a query and optional file attribute filters. - - :param vector_store_id: The ID of the vector store to search. - :param query: The query string or array for performing the search. - :param filters: Filters based on file attributes to narrow the search results. - :param max_num_results: Maximum number of results to return (1 to 50 inclusive, default 10). - :param ranking_options: Ranking options for fine-tuning the search results. - :param rewrite_query: Whether to rewrite the natural language query for vector search (default false) - :param search_mode: The search mode to use - "keyword", "vector", or "hybrid" (default "vector") - :returns: A VectorStoreSearchResponse containing the search results. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/files", - method="POST", - level=LLAMA_STACK_API_V1, - ) - async def openai_attach_file_to_vector_store( - self, - vector_store_id: str, - file_id: str, - attributes: dict[str, Any] | None = None, - chunking_strategy: VectorStoreChunkingStrategy | None = None, - ) -> VectorStoreFileObject: - """Attach a file to a vector store. - - :param vector_store_id: The ID of the vector store to attach the file to. - :param file_id: The ID of the file to attach to the vector store. - :param attributes: The key-value attributes stored with the file, which can be used for filtering. - :param chunking_strategy: The chunking strategy to use for the file. - :returns: A VectorStoreFileObject representing the attached file. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/files", - method="GET", - level=LLAMA_STACK_API_V1, - ) - async def openai_list_files_in_vector_store( - self, - vector_store_id: str, - limit: int | None = 20, - order: str | None = "desc", - after: str | None = None, - before: str | None = None, - filter: VectorStoreFileStatus | None = None, - ) -> VectorStoreListFilesResponse: - """List files in a vector store. - - :param vector_store_id: The ID of the vector store to list files from. - :param limit: (Optional) A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - :param order: (Optional) Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. - :param after: (Optional) A cursor for use in pagination. `after` is an object ID that defines your place in the list. - :param before: (Optional) A cursor for use in pagination. `before` is an object ID that defines your place in the list. - :param filter: (Optional) Filter by file status to only return files with the specified status. - :returns: A VectorStoreListFilesResponse containing the list of files. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/files/{file_id}", - method="GET", - level=LLAMA_STACK_API_V1, - ) - async def openai_retrieve_vector_store_file( - self, - vector_store_id: str, - file_id: str, - ) -> VectorStoreFileObject: - """Retrieves a vector store file. - - :param vector_store_id: The ID of the vector store containing the file to retrieve. - :param file_id: The ID of the file to retrieve. - :returns: A VectorStoreFileObject representing the file. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/files/{file_id}/content", - method="GET", - level=LLAMA_STACK_API_V1, - ) - async def openai_retrieve_vector_store_file_contents( - self, - vector_store_id: str, - file_id: str, - ) -> VectorStoreFileContentsResponse: - """Retrieves the contents of a vector store file. - - :param vector_store_id: The ID of the vector store containing the file to retrieve. - :param file_id: The ID of the file to retrieve. - :returns: A list of InterleavedContent representing the file contents. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/files/{file_id}", - method="POST", - level=LLAMA_STACK_API_V1, - ) - async def openai_update_vector_store_file( - self, - vector_store_id: str, - file_id: str, - attributes: dict[str, Any], - ) -> VectorStoreFileObject: - """Updates a vector store file. - - :param vector_store_id: The ID of the vector store containing the file to update. - :param file_id: The ID of the file to update. - :param attributes: The updated key-value attributes to store with the file. - :returns: A VectorStoreFileObject representing the updated file. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/files/{file_id}", - method="DELETE", - level=LLAMA_STACK_API_V1, - ) - async def openai_delete_vector_store_file( - self, - vector_store_id: str, - file_id: str, - ) -> VectorStoreFileDeleteResponse: - """Delete a vector store file. - - :param vector_store_id: The ID of the vector store containing the file to delete. - :param file_id: The ID of the file to delete. - :returns: A VectorStoreFileDeleteResponse indicating the deletion status. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/file_batches", - method="POST", - level=LLAMA_STACK_API_V1, - ) - async def openai_create_vector_store_file_batch( - self, - vector_store_id: str, - params: Annotated[OpenAICreateVectorStoreFileBatchRequestWithExtraBody, Body(...)], - ) -> VectorStoreFileBatchObject: - """Create a vector store file batch. - - Generate an OpenAI-compatible vector store file batch for the given vector store. - :param vector_store_id: The ID of the vector store to create the file batch for. - :returns: A VectorStoreFileBatchObject representing the created file batch. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/file_batches/{batch_id}", - method="GET", - level=LLAMA_STACK_API_V1, - ) - async def openai_retrieve_vector_store_file_batch( - self, - batch_id: str, - vector_store_id: str, - ) -> VectorStoreFileBatchObject: - """Retrieve a vector store file batch. - - :param batch_id: The ID of the file batch to retrieve. - :param vector_store_id: The ID of the vector store containing the file batch. - :returns: A VectorStoreFileBatchObject representing the file batch. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/file_batches/{batch_id}/files", - method="GET", - level=LLAMA_STACK_API_V1, - ) - async def openai_list_files_in_vector_store_file_batch( - self, - batch_id: str, - vector_store_id: str, - after: str | None = None, - before: str | None = None, - filter: str | None = None, - limit: int | None = 20, - order: str | None = "desc", - ) -> VectorStoreFilesListInBatchResponse: - """Returns a list of vector store files in a batch. - - :param batch_id: The ID of the file batch to list files from. - :param vector_store_id: The ID of the vector store containing the file batch. - :param after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. - :param before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. - :param filter: Filter by file status. One of in_progress, completed, failed, cancelled. - :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. - :param order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. - :returns: A VectorStoreFilesListInBatchResponse containing the list of files in the batch. - """ - ... - - @webmethod( - route="/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel", - method="POST", - level=LLAMA_STACK_API_V1, - ) - async def openai_cancel_vector_store_file_batch( - self, - batch_id: str, - vector_store_id: str, - ) -> VectorStoreFileBatchObject: - """Cancels a vector store file batch. - - :param batch_id: The ID of the file batch to cancel. - :param vector_store_id: The ID of the vector store containing the file batch. - :returns: A VectorStoreFileBatchObject representing the cancelled file batch. - """ - ... diff --git a/src/llama_stack/apis/vector_io/vector_io_service.py b/src/llama_stack/apis/vector_io/vector_io_service.py new file mode 100644 index 000000000..24d709f23 --- /dev/null +++ b/src/llama_stack/apis/vector_io/vector_io_service.py @@ -0,0 +1,326 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Annotated, Any, Protocol, runtime_checkable + +from fastapi import Body + +from llama_stack.apis.inference import InterleavedContent +from llama_stack.apis.vector_stores import VectorStore +from llama_stack.core.telemetry.trace_protocol import trace_protocol + +from .models import ( + Chunk, + OpenAICreateVectorStoreFileBatchRequestWithExtraBody, + OpenAICreateVectorStoreRequestWithExtraBody, + QueryChunksResponse, + SearchRankingOptions, + VectorStoreChunkingStrategy, + VectorStoreDeleteResponse, + VectorStoreFileBatchObject, + VectorStoreFileContentsResponse, + VectorStoreFileDeleteResponse, + VectorStoreFileObject, + VectorStoreFilesListInBatchResponse, + VectorStoreFileStatus, + VectorStoreListFilesResponse, + VectorStoreListResponse, + VectorStoreObject, + VectorStoreSearchResponsePage, +) + + +class VectorStoreTable(Protocol): + def get_vector_store(self, vector_store_id: str) -> VectorStore | None: ... + + +@runtime_checkable +@trace_protocol +class VectorIOService(Protocol): + vector_store_table: VectorStoreTable | None = None + + # this will just block now until chunks are inserted, but it should + # probably return a Job instance which can be polled for completion + # TODO: rename vector_store_id to vector_store_id once Stainless is working + async def insert_chunks( + self, + vector_store_id: str, + chunks: list[Chunk], + ttl_seconds: int | None = None, + ) -> None: + """Insert chunks into a vector database. + + :param vector_store_id: The identifier of the vector database to insert the chunks into. + :param chunks: The chunks to insert. Each `Chunk` should contain content which can be interleaved text, images, or other types. + `metadata`: `dict[str, Any]` and `embedding`: `List[float]` are optional. + If `metadata` is provided, you configure how Llama Stack formats the chunk during generation. + If `embedding` is not provided, it will be computed later. + :param ttl_seconds: The time to live of the chunks. + """ + ... + + # TODO: rename vector_store_id to vector_store_id once Stainless is working + async def query_chunks( + self, + vector_store_id: str, + query: InterleavedContent, + params: dict[str, Any] | None = None, + ) -> QueryChunksResponse: + """Query chunks from a vector database. + + :param vector_store_id: The identifier of the vector database to query. + :param query: The query to search for. + :param params: The parameters of the query. + :returns: A QueryChunksResponse. + """ + ... + + # OpenAI Vector Stores API endpoints + async def openai_create_vector_store( + self, + params: Annotated[OpenAICreateVectorStoreRequestWithExtraBody, Body(...)], + ) -> VectorStoreObject: + """Creates a vector store. + + Generate an OpenAI-compatible vector store with the given parameters. + :returns: A VectorStoreObject representing the created vector store. + """ + ... + + async def openai_list_vector_stores( + self, + limit: int | None = 20, + order: str | None = "desc", + after: str | None = None, + before: str | None = None, + ) -> VectorStoreListResponse: + """Returns a list of vector stores. + + :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + :param order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + :param after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + :param before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + :returns: A VectorStoreListResponse containing the list of vector stores. + """ + ... + + async def openai_retrieve_vector_store( + self, + vector_store_id: str, + ) -> VectorStoreObject: + """Retrieves a vector store. + + :param vector_store_id: The ID of the vector store to retrieve. + :returns: A VectorStoreObject representing the vector store. + """ + ... + + async def openai_update_vector_store( + self, + vector_store_id: str, + name: str | None = None, + expires_after: dict[str, Any] | None = None, + metadata: dict[str, Any] | None = None, + ) -> VectorStoreObject: + """Updates a vector store. + + :param vector_store_id: The ID of the vector store to update. + :param name: The name of the vector store. + :param expires_after: The expiration policy for a vector store. + :param metadata: Set of 16 key-value pairs that can be attached to an object. + :returns: A VectorStoreObject representing the updated vector store. + """ + ... + + async def openai_delete_vector_store( + self, + vector_store_id: str, + ) -> VectorStoreDeleteResponse: + """Delete a vector store. + + :param vector_store_id: The ID of the vector store to delete. + :returns: A VectorStoreDeleteResponse indicating the deletion status. + """ + ... + + async def openai_search_vector_store( + self, + vector_store_id: str, + query: str | list[str], + filters: dict[str, Any] | None = None, + max_num_results: int | None = 10, + ranking_options: SearchRankingOptions | None = None, + rewrite_query: bool | None = False, + search_mode: str | None = "vector", + ) -> VectorStoreSearchResponsePage: + """Search for chunks in a vector store. + + Searches a vector store for relevant chunks based on a query and optional file attribute filters. + + :param vector_store_id: The ID of the vector store to search. + :param query: The query string or array for performing the search. + :param filters: Filters based on file attributes to narrow the search results. + :param max_num_results: Maximum number of results to return (1 to 50 inclusive, default 10). + :param ranking_options: Ranking options for fine-tuning the search results. + :param rewrite_query: Whether to rewrite the natural language query for vector search (default false) + :param search_mode: The search mode to use - "keyword", "vector", or "hybrid" (default "vector") + :returns: A VectorStoreSearchResponse containing the search results. + """ + ... + + async def openai_attach_file_to_vector_store( + self, + vector_store_id: str, + file_id: str, + attributes: dict[str, Any] | None = None, + chunking_strategy: VectorStoreChunkingStrategy | None = None, + ) -> VectorStoreFileObject: + """Attach a file to a vector store. + + :param vector_store_id: The ID of the vector store to attach the file to. + :param file_id: The ID of the file to attach to the vector store. + :param attributes: The key-value attributes stored with the file, which can be used for filtering. + :param chunking_strategy: The chunking strategy to use for the file. + :returns: A VectorStoreFileObject representing the attached file. + """ + ... + + async def openai_list_files_in_vector_store( + self, + vector_store_id: str, + limit: int | None = 20, + order: str | None = "desc", + after: str | None = None, + before: str | None = None, + filter: VectorStoreFileStatus | None = None, + ) -> VectorStoreListFilesResponse: + """List files in a vector store. + + :param vector_store_id: The ID of the vector store to list files from. + :param limit: (Optional) A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + :param order: (Optional) Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + :param after: (Optional) A cursor for use in pagination. `after` is an object ID that defines your place in the list. + :param before: (Optional) A cursor for use in pagination. `before` is an object ID that defines your place in the list. + :param filter: (Optional) Filter by file status to only return files with the specified status. + :returns: A VectorStoreListFilesResponse containing the list of files. + """ + ... + + async def openai_retrieve_vector_store_file( + self, + vector_store_id: str, + file_id: str, + ) -> VectorStoreFileObject: + """Retrieves a vector store file. + + :param vector_store_id: The ID of the vector store containing the file to retrieve. + :param file_id: The ID of the file to retrieve. + :returns: A VectorStoreFileObject representing the file. + """ + ... + + async def openai_retrieve_vector_store_file_contents( + self, + vector_store_id: str, + file_id: str, + ) -> VectorStoreFileContentsResponse: + """Retrieves the contents of a vector store file. + + :param vector_store_id: The ID of the vector store containing the file to retrieve. + :param file_id: The ID of the file to retrieve. + :returns: A list of InterleavedContent representing the file contents. + """ + ... + + async def openai_update_vector_store_file( + self, + vector_store_id: str, + file_id: str, + attributes: dict[str, Any], + ) -> VectorStoreFileObject: + """Updates a vector store file. + + :param vector_store_id: The ID of the vector store containing the file to update. + :param file_id: The ID of the file to update. + :param attributes: The updated key-value attributes to store with the file. + :returns: A VectorStoreFileObject representing the updated file. + """ + ... + + async def openai_delete_vector_store_file( + self, + vector_store_id: str, + file_id: str, + ) -> VectorStoreFileDeleteResponse: + """Delete a vector store file. + + :param vector_store_id: The ID of the vector store containing the file to delete. + :param file_id: The ID of the file to delete. + :returns: A VectorStoreFileDeleteResponse indicating the deletion status. + """ + ... + + async def openai_create_vector_store_file_batch( + self, + vector_store_id: str, + params: Annotated[OpenAICreateVectorStoreFileBatchRequestWithExtraBody, Body(...)], + ) -> VectorStoreFileBatchObject: + """Create a vector store file batch. + + Generate an OpenAI-compatible vector store file batch for the given vector store. + :param vector_store_id: The ID of the vector store to create the file batch for. + :returns: A VectorStoreFileBatchObject representing the created file batch. + """ + ... + + async def openai_retrieve_vector_store_file_batch( + self, + batch_id: str, + vector_store_id: str, + ) -> VectorStoreFileBatchObject: + """Retrieve a vector store file batch. + + :param batch_id: The ID of the file batch to retrieve. + :param vector_store_id: The ID of the vector store containing the file batch. + :returns: A VectorStoreFileBatchObject representing the file batch. + """ + ... + + async def openai_list_files_in_vector_store_file_batch( + self, + batch_id: str, + vector_store_id: str, + after: str | None = None, + before: str | None = None, + filter: str | None = None, + limit: int | None = 20, + order: str | None = "desc", + ) -> VectorStoreFilesListInBatchResponse: + """Returns a list of vector store files in a batch. + + :param batch_id: The ID of the file batch to list files from. + :param vector_store_id: The ID of the vector store containing the file batch. + :param after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. + :param before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. + :param filter: Filter by file status. One of in_progress, completed, failed, cancelled. + :param limit: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + :param order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + :returns: A VectorStoreFilesListInBatchResponse containing the list of files in the batch. + """ + ... + + async def openai_cancel_vector_store_file_batch( + self, + batch_id: str, + vector_store_id: str, + ) -> VectorStoreFileBatchObject: + """Cancels a vector store file batch. + + :param batch_id: The ID of the file batch to cancel. + :param vector_store_id: The ID of the vector store containing the file batch. + :returns: A VectorStoreFileBatchObject representing the cancelled file batch. + """ + ... diff --git a/src/llama_stack/apis/vector_stores/__init__.py b/src/llama_stack/apis/vector_stores/__init__.py index 8fc34058a..17183363a 100644 --- a/src/llama_stack/apis/vector_stores/__init__.py +++ b/src/llama_stack/apis/vector_stores/__init__.py @@ -4,4 +4,6 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from .vector_stores import * +from .models import VectorStore, VectorStoreInput + +__all__ = ["VectorStore", "VectorStoreInput"] diff --git a/src/llama_stack/apis/vector_stores/models.py b/src/llama_stack/apis/vector_stores/models.py new file mode 100644 index 000000000..c5455f919 --- /dev/null +++ b/src/llama_stack/apis/vector_stores/models.py @@ -0,0 +1,42 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +from typing import Literal + +from pydantic import BaseModel, Field + +from llama_stack.apis.resource import Resource, ResourceType + + +# Internal resource type for storing the vector store routing and other information +class VectorStore(Resource): + """Vector database resource for storing and querying vector embeddings.""" + + type: Literal[ResourceType.vector_store] = ResourceType.vector_store + + embedding_model: str = Field(..., description="Name of the embedding model to use for vector generation") + embedding_dimension: int = Field(..., description="Dimension of the embedding vectors") + vector_store_name: str | None = Field(default=None, description="Name of the vector store") + + @property + def vector_store_id(self) -> str: + return self.identifier + + @property + def provider_vector_store_id(self) -> str | None: + return self.provider_resource_id + + +class VectorStoreInput(BaseModel): + """Input parameters for creating or configuring a vector database.""" + + vector_store_id: str = Field(..., description="Unique identifier for the vector store") + embedding_model: str = Field(..., description="Name of the embedding model to use for vector generation") + embedding_dimension: int = Field(..., description="Dimension of the embedding vectors") + provider_id: str | None = Field(default=None, description="ID of the provider that owns this vector store") + provider_vector_store_id: str | None = Field( + default=None, description="Provider-specific identifier for the vector store" + ) diff --git a/src/llama_stack/apis/vector_stores/vector_stores.py b/src/llama_stack/apis/vector_stores/vector_stores.py deleted file mode 100644 index 524624028..000000000 --- a/src/llama_stack/apis/vector_stores/vector_stores.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - -from typing import Literal - -from pydantic import BaseModel - -from llama_stack.apis.resource import Resource, ResourceType - - -# Internal resource type for storing the vector store routing and other information -class VectorStore(Resource): - """Vector database resource for storing and querying vector embeddings. - - :param type: Type of resource, always 'vector_store' for vector stores - :param embedding_model: Name of the embedding model to use for vector generation - :param embedding_dimension: Dimension of the embedding vectors - """ - - type: Literal[ResourceType.vector_store] = ResourceType.vector_store - - embedding_model: str - embedding_dimension: int - vector_store_name: str | None = None - - @property - def vector_store_id(self) -> str: - return self.identifier - - @property - def provider_vector_store_id(self) -> str | None: - return self.provider_resource_id - - -class VectorStoreInput(BaseModel): - """Input parameters for creating or configuring a vector database. - - :param vector_store_id: Unique identifier for the vector store - :param embedding_model: Name of the embedding model to use for vector generation - :param embedding_dimension: Dimension of the embedding vectors - :param provider_vector_store_id: (Optional) Provider-specific identifier for the vector store - """ - - vector_store_id: str - embedding_model: str - embedding_dimension: int - provider_id: str | None = None - provider_vector_store_id: str | None = None diff --git a/src/llama_stack/core/conversations/conversations.py b/src/llama_stack/core/conversations/conversations.py index 951de5e9d..d4cf0c620 100644 --- a/src/llama_stack/core/conversations/conversations.py +++ b/src/llama_stack/core/conversations/conversations.py @@ -10,7 +10,7 @@ from typing import Any, Literal from pydantic import BaseModel, TypeAdapter -from llama_stack.apis.conversations.conversations import ( +from llama_stack.apis.conversations import ( Conversation, ConversationDeletedResource, ConversationItem, diff --git a/src/llama_stack/core/inspect.py b/src/llama_stack/core/inspect.py index 6352af00f..c08de35c5 100644 --- a/src/llama_stack/core/inspect.py +++ b/src/llama_stack/core/inspect.py @@ -18,8 +18,9 @@ from llama_stack.apis.inspect import ( from llama_stack.apis.version import LLAMA_STACK_API_V1 from llama_stack.core.datatypes import StackRunConfig from llama_stack.core.external import load_external_apis -from llama_stack.core.server.routes import get_all_api_routes -from llama_stack.providers.datatypes import HealthStatus +from llama_stack.core.resolver import api_protocol_map +from llama_stack.core.server.routers import create_router, has_router +from llama_stack.providers.datatypes import Api, HealthStatus class DistributionInspectConfig(BaseModel): @@ -56,36 +57,77 @@ class DistributionInspectImpl(Inspect): return not webmethod.deprecated and webmethod.level == api_filter ret = [] + + # Create a dummy impl_getter for router creation + def dummy_impl_getter(_api: Api) -> None: + return None + + # Get all APIs that should be served + external_apis = load_external_apis(run_config) - all_endpoints = get_all_api_routes(external_apis) - for api, endpoints in all_endpoints.items(): - # Always include provider and inspect APIs, filter others based on run config + protocols = api_protocol_map(external_apis) + + # Get APIs to serve + if run_config.apis: + apis_to_serve = set(run_config.apis) + else: + apis_to_serve = set(protocols.keys()) + + apis_to_serve.add("inspect") + apis_to_serve.add("providers") + apis_to_serve.add("prompts") + apis_to_serve.add("conversations") + + # Get routes from routers + for api_str in apis_to_serve: + api = Api(api_str) + + # Skip if no router registered + if not has_router(api): + continue + + # Create router to extract routes + router = create_router(api, dummy_impl_getter) + if not router: + continue + + # Extract routes from the router + provider_types: list[str] = [] if api.value in ["providers", "inspect"]: - ret.extend( - [ - RouteInfo( - route=e.path, - method=next(iter([m for m in e.methods if m != "HEAD"])), - provider_types=[], # These APIs don't have "real" providers - they're internal to the stack - ) - for e, webmethod in endpoints - if e.methods is not None and should_include_route(webmethod) - ] - ) + # These APIs don't have "real" providers + provider_types = [] else: providers = run_config.providers.get(api.value, []) - if providers: # Only process if there are providers for this API - ret.extend( - [ - RouteInfo( - route=e.path, - method=next(iter([m for m in e.methods if m != "HEAD"])), - provider_types=[p.provider_type for p in providers], - ) - for e, webmethod in endpoints - if e.methods is not None and should_include_route(webmethod) - ] + provider_types = [p.provider_type for p in providers] + + # Extract routes from router + for route in router.routes: + if not hasattr(route, "path") or not hasattr(route, "methods"): + continue + + # Filter out HEAD method + methods = [m for m in route.methods if m != "HEAD"] + if not methods: + continue + + # Get full path (prefix + path) + path = route.path + if hasattr(router, "prefix") and router.prefix: + if path.startswith("/"): + full_path = path + else: + full_path = router.prefix + "/" + path + full_path = full_path.replace("//", "/") + else: + full_path = path + + ret.append( + RouteInfo( + route=full_path, + method=methods[0], + provider_types=provider_types, ) + ) return ListRoutesResponse(data=ret) diff --git a/src/llama_stack/core/resolver.py b/src/llama_stack/core/resolver.py index 805d260fc..ab903e88a 100644 --- a/src/llama_stack/core/resolver.py +++ b/src/llama_stack/core/resolver.py @@ -17,7 +17,7 @@ from llama_stack.apis.datasets import Datasets from llama_stack.apis.datatypes import ExternalApiSpec from llama_stack.apis.eval import Eval from llama_stack.apis.files import Files -from llama_stack.apis.inference import Inference, InferenceProvider +from llama_stack.apis.inference import Inference, InferenceProvider, InferenceService from llama_stack.apis.inspect import Inspect from llama_stack.apis.models import Models from llama_stack.apis.post_training import PostTraining @@ -397,14 +397,16 @@ async def instantiate_provider( impl.__provider_spec__ = provider_spec impl.__provider_config__ = config - protocols = api_protocol_map_for_compliance_check(run_config) - additional_protocols = additional_protocols_map() - # TODO: check compliance for special tool groups - # the impl should be for Api.tool_runtime, the name should be the special tool group, the protocol should be the special tool group protocol - check_protocol_compliance(impl, protocols[provider_spec.api]) - if not isinstance(provider_spec, AutoRoutedProviderSpec) and provider_spec.api in additional_protocols: - additional_api, _, _ = additional_protocols[provider_spec.api] - check_protocol_compliance(impl, additional_api) + # Skip protocol compliance checks for routing tables - they implement RoutingTable, not the full API protocol + if not isinstance(provider_spec, RoutingTableProviderSpec): + protocols = api_protocol_map_for_compliance_check(run_config) + additional_protocols = additional_protocols_map() + # TODO: check compliance for special tool groups + # the impl should be for Api.tool_runtime, the name should be the special tool group, the protocol should be the special tool group protocol + check_protocol_compliance(impl, protocols[provider_spec.api]) + if not isinstance(provider_spec, AutoRoutedProviderSpec) and provider_spec.api in additional_protocols: + additional_api, _, _ = additional_protocols[provider_spec.api] + check_protocol_compliance(impl, additional_api) return impl @@ -412,9 +414,60 @@ async def instantiate_provider( def check_protocol_compliance(obj: Any, protocol: Any) -> None: missing_methods = [] + # Define optional methods per protocol that don't need to be implemented by providers + # These are methods that are either: + # 1. Alpha API methods (only in V1ALPHA routes) + # 2. Methods handled by routers (like inference store methods) + optional_methods = { + Inference: {"rerank", "list_chat_completions", "get_chat_completion"}, + InferenceService: {"rerank", "list_chat_completions", "get_chat_completion"}, + InferenceProvider: {"rerank", "list_chat_completions", "get_chat_completion"}, + } + + protocol_optional = optional_methods.get(protocol, set()) + + # Skip Pydantic BaseModel methods - these are not part of the protocol interface + # These methods come from BaseModel and should not be checked for compliance + pydantic_methods = { + "copy", + "dict", + "json", + "model_copy", + "model_dump", + "model_dump_json", + "model_post_init", + "model_validate", + "model_validate_json", + "parse_obj", + "parse_raw", + "schema", + "schema_json", + "construct", + "update_forward_refs", + "validate", + } + mro = type(obj).__mro__ for name, value in inspect.getmembers(protocol): - if inspect.isfunction(value) and hasattr(value, "__webmethods__"): + # Check all protocol methods, not just ones with webmethods + # Skip properties, attributes, and class variables + if not inspect.isfunction(value): + continue + + # Skip private methods (starting with _) + if name.startswith("_"): + continue + + # Skip Pydantic BaseModel methods + if name in pydantic_methods: + continue + + # Skip optional methods for this protocol + if name in protocol_optional: + continue + + # For methods that still have webmethods (unmigrated APIs), check for alpha API + if hasattr(value, "__webmethods__"): has_alpha_api = False for webmethod in value.__webmethods__: if webmethod.level == LLAMA_STACK_API_V1ALPHA: @@ -423,32 +476,37 @@ def check_protocol_compliance(obj: Any, protocol: Any) -> None: # if this API has multiple webmethods, and one of them is an alpha API, this API should be skipped when checking for missing or not callable routes if has_alpha_api: continue - if not hasattr(obj, name): - missing_methods.append((name, "missing")) - elif not callable(getattr(obj, name)): - missing_methods.append((name, "not_callable")) + + if not hasattr(obj, name): + missing_methods.append((name, "missing")) + elif not callable(getattr(obj, name)): + missing_methods.append((name, "not_callable")) + else: + # Check if the method signatures are compatible + obj_method = getattr(obj, name) + proto_sig = inspect.signature(value) + obj_sig = inspect.signature(obj_method) + + proto_params = list(proto_sig.parameters.values()) + proto_params = [p for p in proto_params if p.name != "self"] + obj_params = list(obj_sig.parameters.values()) + obj_params = [p for p in obj_params if p.name != "self"] + + # Check positional compatibility: same number of parameters + if len(proto_params) != len(obj_params): + logger.error( + f"Method {name} incompatible: proto has {len(proto_params)} params, obj has {len(obj_params)} params" + ) + missing_methods.append((name, "signature_mismatch")) else: - # Check if the method signatures are compatible - obj_method = getattr(obj, name) - proto_sig = inspect.signature(value) - obj_sig = inspect.signature(obj_method) + # Check if the method has a concrete implementation (not just a protocol stub) + # Find all classes in MRO that define this method + method_owners = [cls for cls in mro if name in cls.__dict__] - proto_params = set(proto_sig.parameters) - proto_params.discard("self") - obj_params = set(obj_sig.parameters) - obj_params.discard("self") - if not (proto_params <= obj_params): - logger.error(f"Method {name} incompatible proto: {proto_params} vs. obj: {obj_params}") - missing_methods.append((name, "signature_mismatch")) - else: - # Check if the method has a concrete implementation (not just a protocol stub) - # Find all classes in MRO that define this method - method_owners = [cls for cls in mro if name in cls.__dict__] - - # Allow methods from mixins/parents, only reject if ONLY the protocol defines it - if len(method_owners) == 1 and method_owners[0].__name__ == protocol.__name__: - # Only reject if the method is ONLY defined in the protocol itself (abstract stub) - missing_methods.append((name, "not_actually_implemented")) + # Allow methods from mixins/parents, only reject if ONLY the protocol defines it + if len(method_owners) == 1 and method_owners[0].__name__ == protocol.__name__: + # Only reject if the method is ONLY defined in the protocol itself (abstract stub) + missing_methods.append((name, "not_actually_implemented")) if missing_methods: raise ValueError( diff --git a/src/llama_stack/core/routers/eval_scoring.py b/src/llama_stack/core/routers/eval_scoring.py index ffca81bf0..929b0ed56 100644 --- a/src/llama_stack/core/routers/eval_scoring.py +++ b/src/llama_stack/core/routers/eval_scoring.py @@ -6,13 +6,14 @@ from typing import Any -from llama_stack.apis.eval import BenchmarkConfig, Eval, EvaluateResponse, Job +from llama_stack.apis.common.job_types import Job +from llama_stack.apis.eval import BenchmarkConfig, Eval, EvaluateResponse from llama_stack.apis.scoring import ( ScoreBatchResponse, ScoreResponse, Scoring, - ScoringFnParams, ) +from llama_stack.apis.scoring_functions import ScoringFnParams from llama_stack.log import get_logger from llama_stack.providers.datatypes import RoutingTable diff --git a/src/llama_stack/core/routers/inference.py b/src/llama_stack/core/routers/inference.py index a4f0f4411..530bbb2dc 100644 --- a/src/llama_stack/core/routers/inference.py +++ b/src/llama_stack/core/routers/inference.py @@ -22,6 +22,8 @@ from llama_stack.apis.inference import ( OpenAIAssistantMessageParam, OpenAIChatCompletion, OpenAIChatCompletionChunk, + OpenAIChatCompletionContentPartImageParam, + OpenAIChatCompletionContentPartTextParam, OpenAIChatCompletionRequestWithExtraBody, OpenAIChatCompletionToolCall, OpenAIChatCompletionToolCallFunction, @@ -36,10 +38,6 @@ from llama_stack.apis.inference import ( Order, RerankResponse, ) -from llama_stack.apis.inference.inference import ( - OpenAIChatCompletionContentPartImageParam, - OpenAIChatCompletionContentPartTextParam, -) from llama_stack.apis.models import ModelType from llama_stack.core.telemetry.telemetry import MetricEvent from llama_stack.core.telemetry.tracing import enqueue_event, get_current_span diff --git a/src/llama_stack/core/routers/safety.py b/src/llama_stack/core/routers/safety.py index 79eac8b46..3c9de40e3 100644 --- a/src/llama_stack/core/routers/safety.py +++ b/src/llama_stack/core/routers/safety.py @@ -7,8 +7,7 @@ from typing import Any from llama_stack.apis.inference import Message -from llama_stack.apis.safety import RunShieldResponse, Safety -from llama_stack.apis.safety.safety import ModerationObject +from llama_stack.apis.safety import ModerationObject, RunShieldResponse, Safety from llama_stack.apis.shields import Shield from llama_stack.core.datatypes import SafetyConfig from llama_stack.log import get_logger diff --git a/src/llama_stack/core/routing_tables/vector_stores.py b/src/llama_stack/core/routing_tables/vector_stores.py index c6c80a01e..4d31c2635 100644 --- a/src/llama_stack/core/routing_tables/vector_stores.py +++ b/src/llama_stack/core/routing_tables/vector_stores.py @@ -11,7 +11,7 @@ from llama_stack.apis.models import ModelType from llama_stack.apis.resource import ResourceType # Removed VectorStores import to avoid exposing public API -from llama_stack.apis.vector_io.vector_io import ( +from llama_stack.apis.vector_io import ( SearchRankingOptions, VectorStoreChunkingStrategy, VectorStoreDeleteResponse, diff --git a/src/llama_stack/core/server/auth.py b/src/llama_stack/core/server/auth.py index 8a4c8956f..64505d5f9 100644 --- a/src/llama_stack/core/server/auth.py +++ b/src/llama_stack/core/server/auth.py @@ -7,12 +7,9 @@ import json import httpx -from aiohttp import hdrs -from llama_stack.core.datatypes import AuthenticationConfig, User -from llama_stack.core.request_headers import user_from_scope +from llama_stack.core.datatypes import AuthenticationConfig from llama_stack.core.server.auth_providers import create_auth_provider -from llama_stack.core.server.routes import find_matching_route, initialize_route_impls from llama_stack.log import get_logger logger = get_logger(name=__name__, category="core::auth") @@ -28,9 +25,8 @@ class AuthenticationMiddleware: 4. Makes these attributes available to the route handlers for access control Unauthenticated Access: - Endpoints can opt out of authentication by setting require_authentication=False - in their @webmethod decorator. This is typically used for operational endpoints - like /health and /version to support monitoring, load balancers, and observability tools. + Public endpoints (like /health and /version) are configured in the middleware + and bypass authentication. All other endpoints require authentication. The middleware supports multiple authentication providers through the AuthProvider interface: - Kubernetes: Validates tokens against the Kubernetes API server @@ -93,23 +89,24 @@ class AuthenticationMiddleware: async def __call__(self, scope, receive, send): if scope["type"] == "http": - # Find the route and check if authentication is required + # Check if authentication is required path = scope.get("path", "") - method = scope.get("method", hdrs.METH_GET) - if not hasattr(self, "route_impls"): - self.route_impls = initialize_route_impls(self.impls) + # Known public endpoints that don't require authentication + # These are typically operational endpoints like health checks + public_paths = ( + "/v1/health", + "/v1/inspect/version", + ) - webmethod = None - try: - _, _, _, webmethod = find_matching_route(method, path, self.route_impls) - except ValueError: - # If no matching endpoint is found, pass here to run auth anyways - pass - - # If webmethod explicitly sets require_authentication=False, allow without auth - if webmethod and webmethod.require_authentication is False: - logger.debug(f"Allowing unauthenticated access to endpoint: {path}") + # Check if this is a public endpoint + if ( + path in public_paths + or path.startswith("/docs") + or path.startswith("/redoc") + or path.startswith("/openapi.json") + ): + logger.debug(f"Allowing unauthenticated access to public endpoint: {path}") return await self.app(scope, receive, send) # Handle authentication @@ -150,15 +147,8 @@ class AuthenticationMiddleware: f"Authentication successful: {validation_result.principal} with {len(validation_result.attributes)} attributes" ) - # Scope-based API access control - if webmethod and webmethod.required_scope: - user = user_from_scope(scope) - if not _has_required_scope(webmethod.required_scope, user): - return await self._send_auth_error( - send, - f"Access denied: user does not have required scope: {webmethod.required_scope}", - status=403, - ) + # Note: Scope-based API access control can be implemented at the route level + # using FastAPI dependencies if needed return await self.app(scope, receive, send) @@ -173,15 +163,3 @@ class AuthenticationMiddleware: error_key = "message" if status == 401 else "detail" error_msg = json.dumps({"error": {error_key: message}}).encode() await send({"type": "http.response.body", "body": error_msg}) - - -def _has_required_scope(required_scope: str, user: User | None) -> bool: - # if no user, assume auth is not enabled - if not user: - return True - - if not user.attributes: - return False - - user_scopes = user.attributes.get("scopes", []) - return required_scope in user_scopes diff --git a/src/llama_stack/core/server/router_utils.py b/src/llama_stack/core/server/router_utils.py new file mode 100644 index 000000000..5b72f01e6 --- /dev/null +++ b/src/llama_stack/core/server/router_utils.py @@ -0,0 +1,28 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +"""Utilities for creating FastAPI routers with standard error responses.""" + +from llama_stack.apis.datatypes import Error + +standard_responses = { + 400: { + "model": Error, + "description": "The request was invalid or malformed.", + }, + 429: { + "model": Error, + "description": "The client has sent too many requests in a given amount of time.", + }, + 500: { + "model": Error, + "description": "The server encountered an unexpected error.", + }, + "default": { + "model": Error, + "description": "An unexpected error occurred.", + }, +} diff --git a/src/llama_stack/core/server/routers.py b/src/llama_stack/core/server/routers.py new file mode 100644 index 000000000..c6f537202 --- /dev/null +++ b/src/llama_stack/core/server/routers.py @@ -0,0 +1,64 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +""" +Router registry for FastAPI routers. + +This module provides a way to register FastAPI routers for APIs that have been +migrated to use explicit FastAPI routers instead of Protocol-based route discovery. +""" + +from collections.abc import Callable +from typing import TYPE_CHECKING, Any + +from fastapi import APIRouter + +if TYPE_CHECKING: + from llama_stack.apis.datatypes import Api + +# Registry of router factory functions +# Each factory function takes a callable that returns the implementation for a given API +# and returns an APIRouter +# Use string keys to avoid circular imports +_router_factories: dict[str, Callable[[Callable[[str], Any]], APIRouter]] = {} + + +def register_router(api: "Api", router_factory: Callable[[Callable[["Api"], Any]], APIRouter]) -> None: + """Register a router factory for an API. + + Args: + api: The API enum value + router_factory: A function that takes an impl_getter function and returns an APIRouter + """ + _router_factories[api.value] = router_factory # type: ignore[attr-defined] + + +def has_router(api: "Api") -> bool: + """Check if an API has a registered router. + + Args: + api: The API enum value + + Returns: + True if a router factory is registered for this API + """ + return api.value in _router_factories # type: ignore[attr-defined] + + +def create_router(api: "Api", impl_getter: Callable[["Api"], Any]) -> APIRouter | None: + """Create a router for an API if one is registered. + + Args: + api: The API enum value + impl_getter: Function that returns the implementation for a given API + + Returns: + APIRouter if registered, None otherwise + """ + api_value = api.value # type: ignore[attr-defined] + if api_value not in _router_factories: + return None + return _router_factories[api_value](impl_getter) diff --git a/src/llama_stack/core/server/server.py b/src/llama_stack/core/server/server.py index 80505c3f9..4f4369fe9 100644 --- a/src/llama_stack/core/server/server.py +++ b/src/llama_stack/core/server/server.py @@ -6,33 +6,28 @@ import asyncio import concurrent.futures -import functools import inspect import json -import logging # allow-direct-logging import os import sys import traceback import warnings -from collections.abc import Callable from contextlib import asynccontextmanager from importlib.metadata import version as parse_version from pathlib import Path -from typing import Annotated, Any, get_origin +from typing import Any import httpx import rich.pretty import yaml -from fastapi import Body, FastAPI, HTTPException, Request, Response -from fastapi import Path as FastapiPath +from fastapi import FastAPI, HTTPException, Request from fastapi.exceptions import RequestValidationError from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import JSONResponse, StreamingResponse -from openai import BadRequestError +from fastapi.responses import JSONResponse +from openai import BadRequestError, NotFoundError from pydantic import BaseModel, ValidationError from llama_stack.apis.common.errors import ConflictError, ResourceNotFoundError -from llama_stack.apis.common.responses import PaginatedResponse from llama_stack.core.access_control.access_control import AccessDeniedError from llama_stack.core.datatypes import ( AuthenticationRequiredError, @@ -41,22 +36,15 @@ from llama_stack.core.datatypes import ( ) from llama_stack.core.distribution import builtin_automatically_routed_apis from llama_stack.core.external import load_external_apis -from llama_stack.core.request_headers import ( - PROVIDER_DATA_VAR, - request_provider_data_context, - user_from_scope, -) -from llama_stack.core.server.routes import get_all_api_routes from llama_stack.core.stack import ( Stack, cast_image_name_to_string, replace_env_vars, ) from llama_stack.core.telemetry import Telemetry -from llama_stack.core.telemetry.tracing import CURRENT_TRACE_CONTEXT, setup_logger +from llama_stack.core.telemetry.tracing import setup_logger from llama_stack.core.utils.config import redact_sensitive_fields from llama_stack.core.utils.config_resolution import Mode, resolve_config_or_distro -from llama_stack.core.utils.context import preserve_contexts_async_generator from llama_stack.log import LoggingConfig, get_logger, setup_logging from llama_stack.providers.datatypes import Api @@ -89,9 +77,15 @@ def create_sse_event(data: Any) -> str: async def global_exception_handler(request: Request, exc: Exception): - traceback.print_exception(exc) http_exc = translate_exception(exc) + # Only log full tracebacks for unexpected server errors (5xx), not expected client/provider errors + if http_exc.status_code >= 500: + traceback.print_exception(exc) + elif http_exc.status_code >= 400: + # Log expected errors at debug level without full traceback + logger.debug(f"Client error {http_exc.status_code}: {http_exc.detail}") + return JSONResponse(status_code=http_exc.status_code, content={"error": {"detail": http_exc.detail}}) @@ -121,6 +115,8 @@ def translate_exception(exc: Exception) -> HTTPException | RequestValidationErro return HTTPException(status_code=httpx.codes.BAD_REQUEST, detail=f"Invalid value: {str(exc)}") elif isinstance(exc, BadRequestError): return HTTPException(status_code=httpx.codes.BAD_REQUEST, detail=str(exc)) + elif isinstance(exc, NotFoundError): + return HTTPException(status_code=httpx.codes.NOT_FOUND, detail=str(exc)) elif isinstance(exc, PermissionError | AccessDeniedError): return HTTPException(status_code=httpx.codes.FORBIDDEN, detail=f"Permission denied: {str(exc)}") elif isinstance(exc, ConnectionError | httpx.ConnectError): @@ -177,21 +173,6 @@ async def lifespan(app: StackApp): await app.stack.shutdown() -def is_streaming_request(func_name: str, request: Request, **kwargs): - # TODO: pass the api method and punt it to the Protocol definition directly - # If there's a stream parameter at top level, use it - if "stream" in kwargs: - return kwargs["stream"] - - # If there's a stream parameter inside a "params" parameter, e.g. openai_chat_completion() use it - if "params" in kwargs: - params = kwargs["params"] - if hasattr(params, "stream"): - return params.stream - - return False - - async def maybe_await(value): if inspect.iscoroutine(value): return await value @@ -236,90 +217,6 @@ async def log_request_pre_validation(request: Request): logger.warning(f"Could not read or log request body for {request.method} {request.url.path}: {e}") -def create_dynamic_typed_route(func: Any, method: str, route: str) -> Callable: - @functools.wraps(func) - async def route_handler(request: Request, **kwargs): - # Get auth attributes from the request scope - user = user_from_scope(request.scope) - - await log_request_pre_validation(request) - - test_context_token = None - test_context_var = None - reset_test_context_fn = None - - # Use context manager with both provider data and auth attributes - with request_provider_data_context(request.headers, user): - if os.environ.get("LLAMA_STACK_TEST_INFERENCE_MODE"): - from llama_stack.core.testing_context import ( - TEST_CONTEXT, - reset_test_context, - sync_test_context_from_provider_data, - ) - - test_context_token = sync_test_context_from_provider_data() - test_context_var = TEST_CONTEXT - reset_test_context_fn = reset_test_context - - is_streaming = is_streaming_request(func.__name__, request, **kwargs) - - try: - if is_streaming: - context_vars = [CURRENT_TRACE_CONTEXT, PROVIDER_DATA_VAR] - if test_context_var is not None: - context_vars.append(test_context_var) - gen = preserve_contexts_async_generator(sse_generator(func(**kwargs)), context_vars) - return StreamingResponse(gen, media_type="text/event-stream") - else: - value = func(**kwargs) - result = await maybe_await(value) - if isinstance(result, PaginatedResponse) and result.url is None: - result.url = route - - if method.upper() == "DELETE" and result is None: - return Response(status_code=httpx.codes.NO_CONTENT) - - return result - except Exception as e: - if logger.isEnabledFor(logging.INFO): - logger.exception(f"Error executing endpoint {route=} {method=}") - else: - logger.error(f"Error executing endpoint {route=} {method=}: {str(e)}") - raise translate_exception(e) from e - finally: - if test_context_token is not None and reset_test_context_fn is not None: - reset_test_context_fn(test_context_token) - - sig = inspect.signature(func) - - new_params = [inspect.Parameter("request", inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=Request)] - new_params.extend(sig.parameters.values()) - - path_params = extract_path_params(route) - if method == "post": - # Annotate parameters that are in the path with Path(...) and others with Body(...), - # but preserve existing File() and Form() annotations for multipart form data - new_params = ( - [new_params[0]] - + [ - ( - param.replace(annotation=Annotated[param.annotation, FastapiPath(..., title=param.name)]) - if param.name in path_params - else ( - param # Keep original annotation if it's already an Annotated type - if get_origin(param.annotation) is Annotated - else param.replace(annotation=Annotated[param.annotation, Body(..., embed=True)]) - ) - ) - for param in new_params[1:] - ] - ) - - route_handler.__signature__ = sig.replace(parameters=new_params) - - return route_handler - - class ClientVersionMiddleware: def __init__(self, app): self.app = app @@ -448,7 +345,30 @@ def create_app() -> StackApp: # Load external APIs if configured external_apis = load_external_apis(config) - all_routes = get_all_api_routes(external_apis) + + # Import API modules to ensure routers are registered (they register on import) + # External APIs must also register their routers via register_router() in their module + from llama_stack.apis import ( # noqa: F401 + batches, + benchmarks, + conversations, + datasetio, + datasets, + eval, + files, + inspect, + models, + prompts, + providers, + safety, + scoring, + scoring_functions, + shields, + tools, + ) + + # Import router registry to ensure routers are registered + from llama_stack.core.server.routers import create_router, has_router if config.apis: apis_to_serve = set(config.apis) @@ -465,37 +385,29 @@ def create_app() -> StackApp: apis_to_serve.add("providers") apis_to_serve.add("prompts") apis_to_serve.add("conversations") + + # Store impls in app state for dependency injection + app.state.impls = impls + + # Create impl_getter function for routers + def impl_getter(api: Api) -> Any: + return impls[api] + + # Register routers for all APIs (including external APIs that must register routers) for api_str in apis_to_serve: api = Api(api_str) - - routes = all_routes[api] - try: - impl = impls[api] - except KeyError as e: - raise ValueError(f"Could not find provider implementation for {api} API") from e - - for route, _ in routes: - if not hasattr(impl, route.name): - # ideally this should be a typing violation already - raise ValueError(f"Could not find method {route.name} on {impl}!") - - impl_method = getattr(impl, route.name) - # Filter out HEAD method since it's automatically handled by FastAPI for GET routes - available_methods = [m for m in route.methods if m != "HEAD"] - if not available_methods: - raise ValueError(f"No methods found for {route.name} on {impl}") - method = available_methods[0] - logger.debug(f"{method} {route.path}") - - with warnings.catch_warnings(): - warnings.filterwarnings("ignore", category=UserWarning, module="pydantic._internal._fields") - getattr(app, method.lower())(route.path, response_model=None)( - create_dynamic_typed_route( - impl_method, - method.lower(), - route.path, - ) - ) + if has_router(api): + router = create_router(api, impl_getter) + if router: + app.include_router(router) + logger.debug(f"Registered router for {api} API") + else: + # All APIs must now use routers - this is a breaking change for external APIs + logger.warning( + f"API '{api.value}' does not have a registered router. " + f"External APIs must register a router using register_router() in their module. " + f"Skipping this API." + ) logger.debug(f"serving APIs: {apis_to_serve}") @@ -516,14 +428,6 @@ def _log_run_config(run_config: StackRunConfig): logger.info(yaml.dump(clean_config, indent=2)) -def extract_path_params(route: str) -> list[str]: - segments = route.split("/") - params = [seg[1:-1] for seg in segments if seg.startswith("{") and seg.endswith("}")] - # to handle path params like {param:path} - params = [param.split(":")[0] for param in params] - return params - - def remove_disabled_providers(obj): if isinstance(obj, dict): keys = ["provider_id", "shield_id", "provider_model_id", "model_id"] diff --git a/src/llama_stack/core/server/tracing.py b/src/llama_stack/core/server/tracing.py index c4901d9b1..9c4480bcf 100644 --- a/src/llama_stack/core/server/tracing.py +++ b/src/llama_stack/core/server/tracing.py @@ -3,10 +3,8 @@ # # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from aiohttp import hdrs +from typing import Any -from llama_stack.core.external import ExternalApiSpec -from llama_stack.core.server.routes import find_matching_route, initialize_route_impls from llama_stack.core.telemetry.tracing import end_trace, start_trace from llama_stack.log import get_logger @@ -14,7 +12,7 @@ logger = get_logger(name=__name__, category="core::server") class TracingMiddleware: - def __init__(self, app, impls, external_apis: dict[str, ExternalApiSpec]): + def __init__(self, app, impls, external_apis: dict[str, Any]): self.app = app self.impls = impls self.external_apis = external_apis @@ -33,26 +31,6 @@ class TracingMiddleware: logger.debug(f"Bypassing custom routing for FastAPI built-in path: {path}") return await self.app(scope, receive, send) - if not hasattr(self, "route_impls"): - self.route_impls = initialize_route_impls(self.impls, self.external_apis) - - try: - _, _, route_path, webmethod = find_matching_route( - scope.get("method", hdrs.METH_GET), path, self.route_impls - ) - except ValueError: - # If no matching endpoint is found, pass through to FastAPI - logger.debug(f"No matching route found for path: {path}, falling back to FastAPI") - return await self.app(scope, receive, send) - - # Log deprecation warning if route is deprecated - if getattr(webmethod, "deprecated", False): - logger.warning( - f"DEPRECATED ROUTE USED: {scope.get('method', 'GET')} {path} - " - f"This route is deprecated and may be removed in a future version. " - f"Please check the docs for the supported version." - ) - trace_attributes = {"__location__": "server", "raw_path": path} # Extract W3C trace context headers and store as trace attributes @@ -64,8 +42,8 @@ class TracingMiddleware: if tracestate: trace_attributes["tracestate"] = tracestate - trace_path = webmethod.descriptive_name or route_path - trace_context = await start_trace(trace_path, trace_attributes) + # Use path as trace name (FastAPI will handle routing) + trace_context = await start_trace(path, trace_attributes) async def send_with_trace_id(message): if message["type"] == "http.response.start": diff --git a/src/llama_stack/providers/inline/agents/meta_reference/agents.py b/src/llama_stack/providers/inline/agents/meta_reference/agents.py index 85c6cb251..dec214acf 100644 --- a/src/llama_stack/providers/inline/agents/meta_reference/agents.py +++ b/src/llama_stack/providers/inline/agents/meta_reference/agents.py @@ -25,13 +25,13 @@ from llama_stack.apis.agents import ( OpenAIResponseInput, OpenAIResponseInputTool, OpenAIResponseObject, - Order, + OpenAIResponsePrompt, + OpenAIResponseText, + ResponseGuardrail, Session, Turn, ) -from llama_stack.apis.agents.agents import ResponseGuardrail -from llama_stack.apis.agents.openai_responses import OpenAIResponsePrompt, OpenAIResponseText -from llama_stack.apis.common.responses import PaginatedResponse +from llama_stack.apis.common.responses import Order, PaginatedResponse from llama_stack.apis.conversations import Conversations from llama_stack.apis.inference import ( Inference, diff --git a/src/llama_stack/providers/inline/agents/meta_reference/responses/openai_responses.py b/src/llama_stack/providers/inline/agents/meta_reference/responses/openai_responses.py index 933cfe963..9025f918d 100644 --- a/src/llama_stack/providers/inline/agents/meta_reference/responses/openai_responses.py +++ b/src/llama_stack/providers/inline/agents/meta_reference/responses/openai_responses.py @@ -10,8 +10,7 @@ from collections.abc import AsyncIterator from pydantic import BaseModel, TypeAdapter -from llama_stack.apis.agents import Order -from llama_stack.apis.agents.agents import ResponseGuardrailSpec +from llama_stack.apis.agents import ResponseGuardrailSpec from llama_stack.apis.agents.openai_responses import ( ListOpenAIResponseInputItem, ListOpenAIResponseObject, @@ -29,8 +28,8 @@ from llama_stack.apis.agents.openai_responses import ( from llama_stack.apis.common.errors import ( InvalidConversationIdError, ) -from llama_stack.apis.conversations import Conversations -from llama_stack.apis.conversations.conversations import ConversationItem +from llama_stack.apis.common.responses import Order +from llama_stack.apis.conversations import ConversationItem, Conversations from llama_stack.apis.inference import ( Inference, OpenAIMessageParam, diff --git a/src/llama_stack/providers/inline/agents/meta_reference/responses/utils.py b/src/llama_stack/providers/inline/agents/meta_reference/responses/utils.py index 26af1d595..eb62f9c51 100644 --- a/src/llama_stack/providers/inline/agents/meta_reference/responses/utils.py +++ b/src/llama_stack/providers/inline/agents/meta_reference/responses/utils.py @@ -9,7 +9,7 @@ import re import uuid from collections.abc import Sequence -from llama_stack.apis.agents.agents import ResponseGuardrailSpec +from llama_stack.apis.agents import ResponseGuardrailSpec from llama_stack.apis.agents.openai_responses import ( OpenAIResponseAnnotationFileCitation, OpenAIResponseInput, diff --git a/src/llama_stack/providers/inline/eval/meta_reference/eval.py b/src/llama_stack/providers/inline/eval/meta_reference/eval.py index 3c1e2e462..a23f34d57 100644 --- a/src/llama_stack/providers/inline/eval/meta_reference/eval.py +++ b/src/llama_stack/providers/inline/eval/meta_reference/eval.py @@ -29,7 +29,7 @@ from llama_stack.providers.utils.common.data_schema_validator import ColumnName from llama_stack.providers.utils.kvstore import kvstore_impl from .....apis.common.job_types import Job, JobStatus -from .....apis.eval.eval import BenchmarkConfig, Eval, EvaluateResponse +from .....apis.eval import BenchmarkConfig, Eval, EvaluateResponse from .config import MetaReferenceEvalConfig EVAL_TASKS_PREFIX = "benchmarks:" diff --git a/src/llama_stack/providers/inline/inference/meta_reference/inference.py b/src/llama_stack/providers/inline/inference/meta_reference/inference.py index 286335a7d..52d524d0c 100644 --- a/src/llama_stack/providers/inline/inference/meta_reference/inference.py +++ b/src/llama_stack/providers/inline/inference/meta_reference/inference.py @@ -9,13 +9,11 @@ from collections.abc import AsyncIterator from llama_stack.apis.inference import ( InferenceProvider, - OpenAIChatCompletionRequestWithExtraBody, - OpenAICompletionRequestWithExtraBody, -) -from llama_stack.apis.inference.inference import ( OpenAIChatCompletion, OpenAIChatCompletionChunk, + OpenAIChatCompletionRequestWithExtraBody, OpenAICompletion, + OpenAICompletionRequestWithExtraBody, ) from llama_stack.apis.models import Model, ModelType from llama_stack.log import get_logger diff --git a/src/llama_stack/providers/inline/inference/sentence_transformers/sentence_transformers.py b/src/llama_stack/providers/inline/inference/sentence_transformers/sentence_transformers.py index cb72aa13a..25e257819 100644 --- a/src/llama_stack/providers/inline/inference/sentence_transformers/sentence_transformers.py +++ b/src/llama_stack/providers/inline/inference/sentence_transformers/sentence_transformers.py @@ -8,13 +8,11 @@ from collections.abc import AsyncIterator from llama_stack.apis.inference import ( InferenceProvider, - OpenAIChatCompletionRequestWithExtraBody, - OpenAICompletionRequestWithExtraBody, -) -from llama_stack.apis.inference.inference import ( OpenAIChatCompletion, OpenAIChatCompletionChunk, + OpenAIChatCompletionRequestWithExtraBody, OpenAICompletion, + OpenAICompletionRequestWithExtraBody, ) from llama_stack.apis.models import ModelType from llama_stack.log import get_logger diff --git a/src/llama_stack/providers/inline/safety/code_scanner/code_scanner.py b/src/llama_stack/providers/inline/safety/code_scanner/code_scanner.py index 7da9ea0d7..09a4420cc 100644 --- a/src/llama_stack/providers/inline/safety/code_scanner/code_scanner.py +++ b/src/llama_stack/providers/inline/safety/code_scanner/code_scanner.py @@ -12,12 +12,13 @@ if TYPE_CHECKING: from llama_stack.apis.inference import OpenAIMessageParam from llama_stack.apis.safety import ( + ModerationObject, + ModerationObjectResults, RunShieldResponse, Safety, SafetyViolation, ViolationLevel, ) -from llama_stack.apis.safety.safety import ModerationObject, ModerationObjectResults from llama_stack.apis.shields import Shield from llama_stack.log import get_logger from llama_stack.providers.utils.inference.prompt_adapter import ( @@ -50,6 +51,9 @@ class MetaReferenceCodeScannerSafetyImpl(Safety): f"Unsupported Code Scanner ID: {shield.provider_resource_id}. Allowed IDs: {ALLOWED_CODE_SCANNER_MODEL_IDS}" ) + async def unregister_shield(self, identifier: str) -> None: + pass + async def run_shield( self, shield_id: str, diff --git a/src/llama_stack/providers/inline/safety/llama_guard/llama_guard.py b/src/llama_stack/providers/inline/safety/llama_guard/llama_guard.py index 6f6346e82..1869ddb61 100644 --- a/src/llama_stack/providers/inline/safety/llama_guard/llama_guard.py +++ b/src/llama_stack/providers/inline/safety/llama_guard/llama_guard.py @@ -17,12 +17,13 @@ from llama_stack.apis.inference import ( OpenAIUserMessageParam, ) from llama_stack.apis.safety import ( + ModerationObject, + ModerationObjectResults, RunShieldResponse, Safety, SafetyViolation, ViolationLevel, ) -from llama_stack.apis.safety.safety import ModerationObject, ModerationObjectResults from llama_stack.apis.shields import Shield from llama_stack.core.datatypes import Api from llama_stack.log import get_logger diff --git a/src/llama_stack/providers/inline/safety/prompt_guard/prompt_guard.py b/src/llama_stack/providers/inline/safety/prompt_guard/prompt_guard.py index 2015e1150..801d012da 100644 --- a/src/llama_stack/providers/inline/safety/prompt_guard/prompt_guard.py +++ b/src/llama_stack/providers/inline/safety/prompt_guard/prompt_guard.py @@ -11,13 +11,13 @@ from transformers import AutoModelForSequenceClassification, AutoTokenizer from llama_stack.apis.inference import OpenAIMessageParam from llama_stack.apis.safety import ( + ModerationObject, RunShieldResponse, Safety, SafetyViolation, ShieldStore, ViolationLevel, ) -from llama_stack.apis.safety.safety import ModerationObject from llama_stack.apis.shields import Shield from llama_stack.core.utils.model_utils import model_local_dir from llama_stack.log import get_logger diff --git a/src/llama_stack/providers/registry/synthetic_data_generation.py b/src/llama_stack/providers/registry/synthetic_data_generation.py new file mode 100644 index 000000000..b13cc1222 --- /dev/null +++ b/src/llama_stack/providers/registry/synthetic_data_generation.py @@ -0,0 +1,13 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + + +from llama_stack.providers.datatypes import ProviderSpec + + +def available_providers() -> list[ProviderSpec]: + """Return available providers for synthetic data generation API.""" + return [] diff --git a/src/llama_stack/providers/remote/inference/bedrock/bedrock.py b/src/llama_stack/providers/remote/inference/bedrock/bedrock.py index d266f9e6f..e259e71ab 100644 --- a/src/llama_stack/providers/remote/inference/bedrock/bedrock.py +++ b/src/llama_stack/providers/remote/inference/bedrock/bedrock.py @@ -12,16 +12,14 @@ from botocore.client import BaseClient from llama_stack.apis.inference import ( ChatCompletionRequest, Inference, + OpenAIChatCompletion, + OpenAIChatCompletionChunk, OpenAIChatCompletionRequestWithExtraBody, + OpenAICompletion, OpenAICompletionRequestWithExtraBody, OpenAIEmbeddingsRequestWithExtraBody, OpenAIEmbeddingsResponse, ) -from llama_stack.apis.inference.inference import ( - OpenAIChatCompletion, - OpenAIChatCompletionChunk, - OpenAICompletion, -) from llama_stack.providers.remote.inference.bedrock.config import BedrockConfig from llama_stack.providers.utils.bedrock.client import create_bedrock_client from llama_stack.providers.utils.inference.model_registry import ( diff --git a/src/llama_stack/providers/remote/inference/llama_openai_compat/llama.py b/src/llama_stack/providers/remote/inference/llama_openai_compat/llama.py index 05d6e8cc8..27d50590e 100644 --- a/src/llama_stack/providers/remote/inference/llama_openai_compat/llama.py +++ b/src/llama_stack/providers/remote/inference/llama_openai_compat/llama.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from llama_stack.apis.inference.inference import ( +from llama_stack.apis.inference import ( OpenAICompletion, OpenAICompletionRequestWithExtraBody, OpenAIEmbeddingsRequestWithExtraBody, diff --git a/src/llama_stack/providers/remote/inference/nvidia/nvidia.py b/src/llama_stack/providers/remote/inference/nvidia/nvidia.py index bc5aa7953..7d7a0acb5 100644 --- a/src/llama_stack/providers/remote/inference/nvidia/nvidia.py +++ b/src/llama_stack/providers/remote/inference/nvidia/nvidia.py @@ -10,12 +10,10 @@ from collections.abc import Iterable import aiohttp from llama_stack.apis.inference import ( - RerankData, - RerankResponse, -) -from llama_stack.apis.inference.inference import ( OpenAIChatCompletionContentPartImageParam, OpenAIChatCompletionContentPartTextParam, + RerankData, + RerankResponse, ) from llama_stack.apis.models import Model, ModelType from llama_stack.log import get_logger diff --git a/src/llama_stack/providers/remote/inference/together/together.py b/src/llama_stack/providers/remote/inference/together/together.py index 963b384a0..d159ca755 100644 --- a/src/llama_stack/providers/remote/inference/together/together.py +++ b/src/llama_stack/providers/remote/inference/together/together.py @@ -14,8 +14,8 @@ from together.constants import BASE_URL # type: ignore[import-untyped] from llama_stack.apis.inference import ( OpenAIEmbeddingsRequestWithExtraBody, OpenAIEmbeddingsResponse, + OpenAIEmbeddingUsage, ) -from llama_stack.apis.inference.inference import OpenAIEmbeddingUsage from llama_stack.apis.models import Model from llama_stack.core.request_headers import NeedsRequestProviderData from llama_stack.log import get_logger diff --git a/src/llama_stack/providers/remote/inference/watsonx/watsonx.py b/src/llama_stack/providers/remote/inference/watsonx/watsonx.py index b31f1f5e8..85561e9e2 100644 --- a/src/llama_stack/providers/remote/inference/watsonx/watsonx.py +++ b/src/llama_stack/providers/remote/inference/watsonx/watsonx.py @@ -10,7 +10,7 @@ from typing import Any import litellm import requests -from llama_stack.apis.inference.inference import ( +from llama_stack.apis.inference import ( OpenAIChatCompletion, OpenAIChatCompletionChunk, OpenAIChatCompletionRequestWithExtraBody, diff --git a/src/llama_stack/providers/utils/inference/openai_mixin.py b/src/llama_stack/providers/utils/inference/openai_mixin.py index 09059da09..3c6377802 100644 --- a/src/llama_stack/providers/utils/inference/openai_mixin.py +++ b/src/llama_stack/providers/utils/inference/openai_mixin.py @@ -14,7 +14,6 @@ from openai import AsyncOpenAI from pydantic import BaseModel, ConfigDict from llama_stack.apis.inference import ( - Model, OpenAIChatCompletion, OpenAIChatCompletionChunk, OpenAIChatCompletionRequestWithExtraBody, @@ -26,7 +25,7 @@ from llama_stack.apis.inference import ( OpenAIEmbeddingUsage, OpenAIMessageParam, ) -from llama_stack.apis.models import ModelType +from llama_stack.apis.models import Model, ModelType from llama_stack.core.request_headers import NeedsRequestProviderData from llama_stack.log import get_logger from llama_stack.providers.utils.inference.model_registry import RemoteInferenceProviderConfig diff --git a/src/llama_stack/providers/utils/responses/responses_store.py b/src/llama_stack/providers/utils/responses/responses_store.py index 40466d00c..e2553929e 100644 --- a/src/llama_stack/providers/utils/responses/responses_store.py +++ b/src/llama_stack/providers/utils/responses/responses_store.py @@ -6,9 +6,6 @@ import asyncio from typing import Any -from llama_stack.apis.agents import ( - Order, -) from llama_stack.apis.agents.openai_responses import ( ListOpenAIResponseInputItem, ListOpenAIResponseObject, @@ -17,6 +14,7 @@ from llama_stack.apis.agents.openai_responses import ( OpenAIResponseObject, OpenAIResponseObjectWithInput, ) +from llama_stack.apis.common.responses import Order from llama_stack.apis.inference import OpenAIMessageParam from llama_stack.core.datatypes import AccessRule from llama_stack.core.storage.datatypes import ResponsesStoreReference, SqlStoreReference, StorageBackendType diff --git a/src/llama_stack/providers/utils/scoring/base_scoring_fn.py b/src/llama_stack/providers/utils/scoring/base_scoring_fn.py index 2fae177b7..f193e7ea5 100644 --- a/src/llama_stack/providers/utils/scoring/base_scoring_fn.py +++ b/src/llama_stack/providers/utils/scoring/base_scoring_fn.py @@ -6,8 +6,8 @@ from abc import ABC, abstractmethod from typing import Any -from llama_stack.apis.scoring import ScoringFnParams, ScoringResultRow -from llama_stack.apis.scoring_functions import ScoringFn +from llama_stack.apis.scoring import ScoringResultRow +from llama_stack.apis.scoring_functions import ScoringFn, ScoringFnParams from llama_stack.providers.utils.scoring.aggregation_utils import aggregate_metrics diff --git a/tests/integration/inference/test_provider_data_routing.py b/tests/integration/inference/test_provider_data_routing.py index 34ee2672f..1f04ed363 100644 --- a/tests/integration/inference/test_provider_data_routing.py +++ b/tests/integration/inference/test_provider_data_routing.py @@ -18,7 +18,7 @@ import pytest from llama_stack import LlamaStackAsLibraryClient from llama_stack.apis.datatypes import Api -from llama_stack.apis.inference.inference import ( +from llama_stack.apis.inference import ( OpenAIAssistantMessageParam, OpenAIChatCompletion, OpenAIChatCompletionUsage,