Model API

This commit is contained in:
hahuyhoang411 2023-11-21 18:45:36 +07:00
parent 6df3ea9fa1
commit fd3f699a29
5 changed files with 520 additions and 674 deletions

View File

@ -103,7 +103,7 @@ const config = {
{
specs: [
{
spec: "openapi/jan.json", // can be local file, url, or parsed json object
spec: "openapi/jan.yaml", // can be local file, url, or parsed json object
route: "/api-reference", // path where to render docs
},
],

View File

@ -1,673 +0,0 @@
{
"swagger": "2.0",
"info": {
"description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
"version": "1.0.6",
"title": "Swagger Petstore",
"termsOfService": "http://swagger.io/terms/",
"contact": { "email": "apiteam@swagger.io" },
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"host": "petstore.swagger.io",
"basePath": "/v2",
"tags": [
{
"name": "pet",
"description": "Everything about your Pets",
"externalDocs": {
"description": "Find out more",
"url": "http://swagger.io"
}
},
{ "name": "store", "description": "Access to Petstore orders" },
{
"name": "user",
"description": "Operations about user",
"externalDocs": {
"description": "Find out more about our store",
"url": "http://swagger.io"
}
}
],
"schemes": ["https", "http"],
"paths": {
"/pet/{petId}/uploadImage": {
"post": {
"tags": ["pet"],
"summary": "uploads an image",
"description": "",
"operationId": "uploadFile",
"consumes": ["multipart/form-data"],
"produces": ["application/json"],
"parameters": [
{
"name": "petId",
"in": "path",
"description": "ID of pet to update",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "additionalMetadata",
"in": "formData",
"description": "Additional data to pass to server",
"required": false,
"type": "string"
},
{
"name": "file",
"in": "formData",
"description": "file to upload",
"required": false,
"type": "file"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": { "$ref": "#/definitions/ApiResponse" }
}
},
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
}
},
"/pet": {
"post": {
"tags": ["pet"],
"summary": "Add a new pet to the store",
"description": "",
"operationId": "addPet",
"consumes": ["application/json", "application/xml"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Pet object that needs to be added to the store",
"required": true,
"schema": { "$ref": "#/definitions/Pet" }
}
],
"responses": { "405": { "description": "Invalid input" } },
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
},
"put": {
"tags": ["pet"],
"summary": "Update an existing pet",
"description": "",
"operationId": "updatePet",
"consumes": ["application/json", "application/xml"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Pet object that needs to be added to the store",
"required": true,
"schema": { "$ref": "#/definitions/Pet" }
}
],
"responses": {
"400": { "description": "Invalid ID supplied" },
"404": { "description": "Pet not found" },
"405": { "description": "Validation exception" }
},
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
}
},
"/pet/findByStatus": {
"get": {
"tags": ["pet"],
"summary": "Finds Pets by status",
"description": "Multiple status values can be provided with comma separated strings",
"operationId": "findPetsByStatus",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "status",
"in": "query",
"description": "Status values that need to be considered for filter",
"required": true,
"type": "array",
"items": {
"type": "string",
"enum": ["available", "pending", "sold"],
"default": "available"
},
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": { "$ref": "#/definitions/Pet" }
}
},
"400": { "description": "Invalid status value" }
},
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
}
},
"/pet/findByTags": {
"get": {
"tags": ["pet"],
"summary": "Finds Pets by tags",
"description": "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.",
"operationId": "findPetsByTags",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "tags",
"in": "query",
"description": "Tags to filter by",
"required": true,
"type": "array",
"items": { "type": "string" },
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": { "$ref": "#/definitions/Pet" }
}
},
"400": { "description": "Invalid tag value" }
},
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }],
"deprecated": true
}
},
"/pet/{petId}": {
"get": {
"tags": ["pet"],
"summary": "Find pet by ID",
"description": "Returns a single pet",
"operationId": "getPetById",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "petId",
"in": "path",
"description": "ID of pet to return",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": { "$ref": "#/definitions/Pet" }
},
"400": { "description": "Invalid ID supplied" },
"404": { "description": "Pet not found" }
},
"security": [{ "api_key": [] }]
},
"post": {
"tags": ["pet"],
"summary": "Updates a pet in the store with form data",
"description": "",
"operationId": "updatePetWithForm",
"consumes": ["application/x-www-form-urlencoded"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "petId",
"in": "path",
"description": "ID of pet that needs to be updated",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "name",
"in": "formData",
"description": "Updated name of the pet",
"required": false,
"type": "string"
},
{
"name": "status",
"in": "formData",
"description": "Updated status of the pet",
"required": false,
"type": "string"
}
],
"responses": { "405": { "description": "Invalid input" } },
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
},
"delete": {
"tags": ["pet"],
"summary": "Deletes a pet",
"description": "",
"operationId": "deletePet",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "api_key",
"in": "header",
"required": false,
"type": "string"
},
{
"name": "petId",
"in": "path",
"description": "Pet id to delete",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"400": { "description": "Invalid ID supplied" },
"404": { "description": "Pet not found" }
},
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
}
},
"/store/order": {
"post": {
"tags": ["store"],
"summary": "Place an order for a pet",
"description": "",
"operationId": "placeOrder",
"consumes": ["application/json"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "order placed for purchasing the pet",
"required": true,
"schema": { "$ref": "#/definitions/Order" }
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": { "$ref": "#/definitions/Order" }
},
"400": { "description": "Invalid Order" }
}
}
},
"/store/order/{orderId}": {
"get": {
"tags": ["store"],
"summary": "Find purchase order by ID",
"description": "For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions",
"operationId": "getOrderById",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "ID of pet that needs to be fetched",
"required": true,
"type": "integer",
"maximum": 10,
"minimum": 1,
"format": "int64"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": { "$ref": "#/definitions/Order" }
},
"400": { "description": "Invalid ID supplied" },
"404": { "description": "Order not found" }
}
},
"delete": {
"tags": ["store"],
"summary": "Delete purchase order by ID",
"description": "For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors",
"operationId": "deleteOrder",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "ID of the order that needs to be deleted",
"required": true,
"type": "integer",
"minimum": 1,
"format": "int64"
}
],
"responses": {
"400": { "description": "Invalid ID supplied" },
"404": { "description": "Order not found" }
}
}
},
"/store/inventory": {
"get": {
"tags": ["store"],
"summary": "Returns pet inventories by status",
"description": "Returns a map of status codes to quantities",
"operationId": "getInventory",
"produces": ["application/json"],
"parameters": [],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "object",
"additionalProperties": { "type": "integer", "format": "int32" }
}
}
},
"security": [{ "api_key": [] }]
}
},
"/user/createWithArray": {
"post": {
"tags": ["user"],
"summary": "Creates list of users with given input array",
"description": "",
"operationId": "createUsersWithArrayInput",
"consumes": ["application/json"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "List of user object",
"required": true,
"schema": {
"type": "array",
"items": { "$ref": "#/definitions/User" }
}
}
],
"responses": { "default": { "description": "successful operation" } }
}
},
"/user/createWithList": {
"post": {
"tags": ["user"],
"summary": "Creates list of users with given input array",
"description": "",
"operationId": "createUsersWithListInput",
"consumes": ["application/json"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "List of user object",
"required": true,
"schema": {
"type": "array",
"items": { "$ref": "#/definitions/User" }
}
}
],
"responses": { "default": { "description": "successful operation" } }
}
},
"/user/{username}": {
"get": {
"tags": ["user"],
"summary": "Get user by user name",
"description": "",
"operationId": "getUserByName",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "username",
"in": "path",
"description": "The name that needs to be fetched. Use user1 for testing. ",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": { "$ref": "#/definitions/User" }
},
"400": { "description": "Invalid username supplied" },
"404": { "description": "User not found" }
}
},
"put": {
"tags": ["user"],
"summary": "Updated user",
"description": "This can only be done by the logged in user.",
"operationId": "updateUser",
"consumes": ["application/json"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "username",
"in": "path",
"description": "name that need to be updated",
"required": true,
"type": "string"
},
{
"in": "body",
"name": "body",
"description": "Updated user object",
"required": true,
"schema": { "$ref": "#/definitions/User" }
}
],
"responses": {
"400": { "description": "Invalid user supplied" },
"404": { "description": "User not found" }
}
},
"delete": {
"tags": ["user"],
"summary": "Delete user",
"description": "This can only be done by the logged in user.",
"operationId": "deleteUser",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "username",
"in": "path",
"description": "The name that needs to be deleted",
"required": true,
"type": "string"
}
],
"responses": {
"400": { "description": "Invalid username supplied" },
"404": { "description": "User not found" }
}
}
},
"/user/login": {
"get": {
"tags": ["user"],
"summary": "Logs user into the system",
"description": "",
"operationId": "loginUser",
"produces": ["application/json", "application/xml"],
"parameters": [
{
"name": "username",
"in": "query",
"description": "The user name for login",
"required": true,
"type": "string"
},
{
"name": "password",
"in": "query",
"description": "The password for login in clear text",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"headers": {
"X-Expires-After": {
"type": "string",
"format": "date-time",
"description": "date in UTC when token expires"
},
"X-Rate-Limit": {
"type": "integer",
"format": "int32",
"description": "calls per hour allowed by the user"
}
},
"schema": { "type": "string" }
},
"400": { "description": "Invalid username/password supplied" }
}
}
},
"/user/logout": {
"get": {
"tags": ["user"],
"summary": "Logs out current logged in user session",
"description": "",
"operationId": "logoutUser",
"produces": ["application/json", "application/xml"],
"parameters": [],
"responses": { "default": { "description": "successful operation" } }
}
},
"/user": {
"post": {
"tags": ["user"],
"summary": "Create user",
"description": "This can only be done by the logged in user.",
"operationId": "createUser",
"consumes": ["application/json"],
"produces": ["application/json", "application/xml"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Created user object",
"required": true,
"schema": { "$ref": "#/definitions/User" }
}
],
"responses": { "default": { "description": "successful operation" } }
}
}
},
"securityDefinitions": {
"api_key": { "type": "apiKey", "name": "api_key", "in": "header" },
"petstore_auth": {
"type": "oauth2",
"authorizationUrl": "https://petstore.swagger.io/oauth/authorize",
"flow": "implicit",
"scopes": {
"read:pets": "read your pets",
"write:pets": "modify pets in your account"
}
}
},
"definitions": {
"ApiResponse": {
"type": "object",
"properties": {
"code": { "type": "integer", "format": "int32" },
"type": { "type": "string" },
"message": { "type": "string" }
}
},
"Category": {
"type": "object",
"properties": {
"id": { "type": "integer", "format": "int64" },
"name": { "type": "string" }
},
"xml": { "name": "Category" }
},
"Pet": {
"type": "object",
"required": ["name", "photoUrls"],
"properties": {
"id": { "type": "integer", "format": "int64" },
"category": { "$ref": "#/definitions/Category" },
"name": { "type": "string", "example": "doggie" },
"photoUrls": {
"type": "array",
"xml": { "wrapped": true },
"items": { "type": "string", "xml": { "name": "photoUrl" } }
},
"tags": {
"type": "array",
"xml": { "wrapped": true },
"items": { "xml": { "name": "tag" }, "$ref": "#/definitions/Tag" }
},
"status": {
"type": "string",
"description": "pet status in the store",
"enum": ["available", "pending", "sold"]
}
},
"xml": { "name": "Pet" }
},
"Tag": {
"type": "object",
"properties": {
"id": { "type": "integer", "format": "int64" },
"name": { "type": "string" }
},
"xml": { "name": "Tag" }
},
"Order": {
"type": "object",
"properties": {
"id": { "type": "integer", "format": "int64" },
"petId": { "type": "integer", "format": "int64" },
"quantity": { "type": "integer", "format": "int32" },
"shipDate": { "type": "string", "format": "date-time" },
"status": {
"type": "string",
"description": "Order Status",
"enum": ["placed", "approved", "delivered"]
},
"complete": { "type": "boolean" }
},
"xml": { "name": "Order" }
},
"User": {
"type": "object",
"properties": {
"id": { "type": "integer", "format": "int64" },
"username": { "type": "string" },
"firstName": { "type": "string" },
"lastName": { "type": "string" },
"email": { "type": "string" },
"password": { "type": "string" },
"phone": { "type": "string" },
"userStatus": {
"type": "integer",
"format": "int32",
"description": "User Status"
}
},
"xml": { "name": "User" }
}
},
"externalDocs": {
"description": "Find out more about Swagger",
"url": "http://swagger.io"
}
}

190
docs/openapi/jan.yaml Normal file
View File

@ -0,0 +1,190 @@
openapi: 3.0.0
info:
title: Jan API Reference
description: Please see https://jan.ai for documentation.
version: "0.1.8"
contact:
name: Jan Discord
url: https://discord.gg/7EcEz7MrvA
license:
name: AGPLv3
url: https://github.com/janhq/nitro/blob/main/LICENSE
servers:
- url: https://localhost:1337/v1/
tags:
- name: Models
description: List and describe the various models available in the API.
- name: Chat Completion
description: Given a list of messages comprising a conversation, the model will return a response.
- name: Messages
description: Operations for individual messages, including creation, retrieval, and modification
- name: Threads
description: Manages series of related messages or conversation threads
- name: Assistants
description: Configures and utilizes different AI assistants for varied tasks
x-tagGroups:
- name: Endpoints
tags:
- Models
- Chat Completion
- name: Chat
tags:
- Assistants
- Messages
- Threads
paths:
/models:
get:
operationId: listModels
tags:
- Models
summary: List Models
description: Lists the currently available models, and provides basic information about each one such as the owner and availability.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "specs/models/models.yaml#/components/schemas/ListModelsResponse"
x-codeSamples:
- lang: "curl"
source: |
curl https://localhost:1337/v1/models
post:
operationId: downloadModel
tags:
- Models
summary: Download Model
description: Download a model.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "specs/models/models.yaml#/components/schemas/DownloadModelResponse"
x-codeSamples:
- lang: "curl"
source: |
curl -X POST https://localhost:1337/v1/models
/models/{model_id}:
get:
operationId: getModel
tags:
- Models
summary: Get Model
description: Get a model instance, providing basic information about the model such as the owner and permissioning.
parameters:
- in: path
name: source_url
required: true
schema:
type: string
# ideally this will be an actual ID, so this will always work from browser
example: https://huggingface.com/thebloke/example.gguf
description: The ID of the model to use for this request
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "specs/models/models.yaml#/components/schemas/GetModelResponse"
x-codeSamples:
- lang: "curl"
source: |
curl https://localhost:1337/v1/models/zephyr-7b
delete:
operationId: deleteModel
tags:
- Models
summary: Delete Model
description: Delete a model.
parameters:
- in: path
name: model
required: true
schema:
type: string
example: zephyr-7b
description: The model to delete
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "specs/models/models.yaml#/components/schemas/DeleteModelResponse"
x-codeSamples:
- lang: "curl"
source: |
curl -X DELETE https://localhost:1337/v1/models/zephyr-7b
/models/{model_id}/start:
put:
operationId: startModel
tags:
- Models
summary: Start Model
description: Starts an imported model. Loads the model into V/RAM.
parameters:
- in: path
name: model
required: true
schema:
type: string
# ideally this will be an actual ID, so this will always work from browser
example: zephyr-7b
description: The ID of the model to use for this request
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "specs/models/models.yaml#/components/schemas/StartModelResponse"
x-codeSamples:
- lang: "curl"
source: |
curl -X PUT https://localhost:1337/v1/models/zephyr-7b/start
/models/{model_id}/stop:
put:
operationId: stopModel
tags:
- Models
summary: Stop Model
description: Stop an imported model.
parameters:
- in: path
name: model
required: true
schema:
type: string
# ideally this will be an actual ID, so this will always work from browser
example: zephyr-7b
description: The ID of the model to use for this request
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "specs/models/models.yaml#/components/schemas/StopModelResponse"
x-codeSamples:
- lang: "curl"
source: |
curl -X PUT https://localhost:1337/v1/models/zephyr-7b/stop
x-webhooks:
ModelObject:
post:
summary: The model object
description: Information about a model in the systems
operationId: ModelObject
tags:
- Models
requestBody:
content:
application/json:
schema:
$ref: 'specs/models/models.yaml#/components/schemas/ModelObject'

View File

@ -0,0 +1,329 @@
components:
schemas:
ListModelsResponse:
type: object
properties:
object:
type: string
enum: [list]
data:
type: array
items:
$ref: "#/components/schemas/Model"
required:
- object
- data
Model:
type: object
properties:
type:
type: string
default: "model"
description: "The type of the object."
version:
type: string
default: "1"
description: "The version number of the model."
id:
type: string
description: "Unique identifier used in chat-completions model_name, matches folder name."
example: "zephyr-7b"
name:
type: string
description: "Name of the model."
example: "Zephyr 7B"
owned_by:
type: string
description: "Compatibility field for OpenAI."
default: ""
created:
type: integer
format: int64
description: "Unix timestamp representing the creation time."
description:
type: string
description: "Description of the model."
state:
type: string
enum: [null, "downloading", "available"]
description: "Current state of the model."
format:
type: string
description: "State format of the model, distinct from the engine."
example: "ggufv3"
source_url:
type: string
format: uri
description: "URL to the source of the model."
example: "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf"
settings:
type: object
properties:
ctx_len:
type: string
description: "Context length."
example: "2048"
ngl:
type: string
description: "Number of layers."
example: "100"
embedding:
type: string
description: "Indicates if embedding is enabled."
example: "true"
n_parallel:
type: string
description: "Number of parallel processes."
example: "4"
additionalProperties: false
parameters:
type: object
properties:
temperature:
type: string
description: "Temperature setting for the model."
example: "0.7"
token_limit:
type: string
description: "Token limit for the model."
example: "2048"
top_k:
type: string
description: "Top-k setting for the model."
example: "0"
top_p:
type: string
description: "Top-p setting for the model."
example: "1"
stream:
type: string
description: "Indicates if streaming is enabled."
example: "true"
additionalProperties: false
metadata:
type: object
description: "Additional metadata."
assets:
type: array
items:
type: string
description: "List of assets related to the model."
required:
- type
- version
- id
- name
- created
- state
- format
- source_url
- settings
- parameters
ModelObject:
type: object
properties:
id:
type: string
description: "The identifier of the model."
example: "zephyr-7b"
object:
type: string
description: "The type of the object, indicating it's a model."
default: "model"
created:
type: integer
format: int64
description: "Unix timestamp representing the creation time of the model."
example: "1253935178"
owned_by:
type: string
description: "The entity that owns the model."
example: "_"
required:
- id
- object
- created
- owned_by
GetModelResponse:
type: object
properties:
id:
type: string
description: "The identifier of the model."
example: "zephyr-7b"
object:
type: string
description: "Type of the object, indicating it's a model."
default: "model"
created:
type: integer
format: int64
description: "Unix timestamp representing the creation time of the model."
owned_by:
type: string
description: "The entity that owns the model."
example: "_"
state:
type: string
enum: [not_downloaded, downloaded, running, stopped]
description: "The current state of the model."
source_url:
type: string
format: uri
description: "URL to the source of the model."
example: "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf"
parameters:
type: object
properties:
ctx_len:
type: integer
description: "Context length."
example: 2048
ngl:
type: integer
description: "Number of layers."
example: 100
embedding:
type: boolean
description: "Indicates if embedding is enabled."
example: true
n_parallel:
type: integer
description: "Number of parallel processes."
example: 4
# pre_prompt:
# type: string
# description: "Predefined prompt for initiating the chat."
# example: "A chat between a curious user and an artificial intelligence"
# user_prompt:
# type: string
# description: "Format of user's prompt."
# example: "USER: "
# ai_prompt:
# type: string
# description: "Format of AI's response."
# example: "ASSISTANT: "
temperature:
type: string
description: "Temperature setting for the model."
example: "0.7"
token_limit:
type: string
description: "Token limit for the model."
example: "2048"
top_k:
type: string
description: "Top-k setting for the model."
example: "0"
top_p:
type: string
description: "Top-p setting for the model."
example: "1"
metadata:
type: object
properties:
engine:
type: string
description: "The engine used by the model."
example: "llamacpp"
quantization:
type: string
description: "Quantization parameter of the model."
example: "Q3_K_L"
size:
type: string
description: "Size of the model."
example: "7B"
required:
- id
- object
- created
- owned_by
- state
- source_url
- parameters
- metadata
DeleteModelResponse:
type: object
properties:
id:
type: string
description: "The identifier of the model that was deleted."
example: "model-zephyr-7B"
object:
type: string
description: "Type of the object, indicating it's a model."
default: "model"
deleted:
type: boolean
description: "Indicates whether the model was successfully deleted."
example: true
required:
- id
- object
- deleted
StartModelResponse:
type: object
properties:
id:
type: string
description: "The identifier of the model that was started."
example: "model-zephyr-7B"
object:
type: string
description: "Type of the object, indicating it's a model."
default: "model"
state:
type: string
description: "The current state of the model after the start operation."
example: "running"
required:
- id
- object
- state
StopModelResponse:
type: object
properties:
id:
type: string
description: "The identifier of the model that was started."
example: "model-zephyr-7B"
object:
type: string
description: "Type of the object, indicating it's a model."
default: "model"
state:
type: string
description: "The current state of the model after the start operation."
example: "stopped"
required:
- id
- object
- state
DownloadModelResponse:
type: object
properties:
id:
type: string
description: "The identifier of the model that was started."
example: "model-zephyr-7B"
object:
type: string
description: "Type of the object, indicating it's a model."
default: "model"
state:
type: string
description: "The current state of the model after the start operation."
example: "downloaded"
required:
- id
- object
- state