jan/docs/openapi/jan.json
2024-03-25 15:46:12 +07:00

2398 lines
77 KiB
JSON

{
"openapi": "3.0.0",
"info": {
"title": "API Reference",
"description": "# Introduction\nJan API is compatible with the [OpenAI API](https://platform.openai.com/docs/api-reference).\n",
"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": "http://localhost:1337/v1"
}
],
"tags": [
{
"name": "Models",
"description": "List and describe the various models available in the API."
},
{
"name": "Chat",
"description": "Given a list of messages comprising a conversation, the model will return a response.\n"
},
{
"name": "Messages",
"description": "Messages capture a conversation's content. This can include the content from LLM responses and other metadata from [chat completions](/specs/chats).\n"
},
{
"name": "Threads"
},
{
"name": "Assistants",
"description": "Configures and utilizes different AI assistants for varied tasks"
}
],
"x-tagGroups": [
{
"name": "Endpoints",
"tags": ["Models", "Chat"]
},
{
"name": "Chat",
"tags": ["Assistants", "Messages", "Threads"]
}
],
"paths": {
"/chat/completions": {
"post": {
"operationId": "createChatCompletion",
"tags": ["Chat"],
"summary": "Create chat completion\n",
"description": "Creates a model response for the given chat conversation. <a href = \"https://platform.openai.com/docs/api-reference/chat/create\"> Equivalent to OpenAI's create chat completion. </a>\n",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionRequest"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionResponse"
}
}
}
}
}
}
},
"/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. <a href = \"https://platform.openai.com/docs/api-reference/models/list\"> Equivalent to OpenAI's list model. </a>\n",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListModelsResponse"
}
}
}
}
}
}
},
"/models/download/{model_id}": {
"get": {
"operationId": "downloadModel",
"tags": ["Models"],
"summary": "Download a specific model.",
"description": "Download a model.\n",
"parameters": [
{
"in": "path",
"name": "model_id",
"required": true,
"schema": {
"type": "string",
"example": "mistral-ins-7b-q4"
},
"description": "The ID of the model to use for this request.\n"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DownloadModelResponse"
}
}
}
}
}
}
},
"/models/{model_id}": {
"get": {
"operationId": "retrieveModel",
"tags": ["Models"],
"summary": "Retrieve model",
"description": "Get a model instance, providing basic information about the model such as the owner and permissioning. <a href = \"https://platform.openai.com/docs/api-reference/models/retrieve\"> Equivalent to OpenAI's retrieve model. </a>\n",
"parameters": [
{
"in": "path",
"name": "model_id",
"required": true,
"schema": {
"type": "string",
"example": "mistral-ins-7b-q4"
},
"description": "The ID of the model to use for this request.\n"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetModelResponse"
}
}
}
}
}
},
"delete": {
"operationId": "deleteModel",
"tags": ["Models"],
"summary": "Delete model",
"description": "Delete a model. <a href = \"https://platform.openai.com/docs/api-reference/models/delete\"> Equivalent to OpenAI's delete model. </a>\n",
"parameters": [
{
"in": "path",
"name": "model_id",
"required": true,
"schema": {
"type": "string",
"example": "mistral-ins-7b-q4"
},
"description": "The model id to delete\n"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeleteModelResponse"
}
}
}
}
}
}
},
"/threads": {
"post": {
"operationId": "createThread",
"tags": ["Threads"],
"summary": "Create thread",
"description": "Create a thread. <a href = \"https://platform.openai.com/docs/api-reference/threads/createThread\"> Equivalent to OpenAI's create thread. </a>\n",
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateThreadObject"
}
}
}
},
"responses": {
"200": {
"description": "Thread created successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateThreadResponse"
}
}
}
}
}
},
"get": {
"operationId": "listThreads",
"tags": ["Threads"],
"summary": "List threads",
"description": "Retrieves a list of all threads available in the system.\n",
"responses": {
"200": {
"description": "List of threads retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ThreadObject"
},
"example": [
{
"id": "thread_abc123",
"object": "thread",
"created_at": 1699014083,
"assistants": ["assistant-001"],
"metadata": {},
"messages": []
},
{
"id": "thread_abc456",
"object": "thread",
"created_at": 1699014083,
"assistants": ["assistant-002", "assistant-003"],
"metadata": {}
}
]
}
}
}
}
}
}
},
"/threads/{thread_id}": {
"get": {
"operationId": "getThread",
"tags": ["Threads"],
"summary": "Retrieve thread",
"description": "Retrieves detailed information about a specific thread using its thread_id. <a href = \"https://platform.openai.com/docs/api-reference/threads/getThread\"> Equivalent to OpenAI's retrieve thread. </a>\n",
"parameters": [
{
"in": "path",
"name": "thread_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the thread to retrieve.\n"
}
],
"responses": {
"200": {
"description": "Thread details retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetThreadResponse"
}
}
}
}
}
},
"patch": {
"operationId": "modifyThread",
"tags": ["Threads"],
"summary": "Modify thread",
"description": "Modifies a thread. <a href = \"https://platform.openai.com/docs/api-reference/threads/modifyThread\"> Equivalent to OpenAI's modify thread. </a>\n",
"parameters": [
{
"in": "path",
"name": "thread_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the thread to be modified.\n"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Set the title of the thread",
"items": {
"$ref": "#/components/schemas/ThreadMessageObject"
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Thread modified successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModifyThreadResponse"
}
}
}
}
}
},
"delete": {
"operationId": "deleteThread",
"tags": ["Threads"],
"summary": "Delete thread",
"description": "Delete a thread. <a href = \"https://platform.openai.com/docs/api-reference/threads/deleteThread\"> Equivalent to OpenAI's delete thread. </a>\n",
"parameters": [
{
"in": "path",
"name": "thread_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the thread to be deleted.\n"
}
],
"responses": {
"200": {
"description": "Thread deleted successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeleteThreadResponse"
}
}
}
}
}
}
},
"/assistants": {
"get": {
"operationId": "listAssistants",
"tags": ["Assistants"],
"summary": "List assistants",
"description": "Return a list of assistants. <a href = \"https://platform.openai.com/docs/api-reference/assistants/listAssistants\"> Equivalent to OpenAI's list assistants. </a>\n",
"responses": {
"200": {
"description": "List of assistants retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"object": {
"type": "string"
},
"version": {
"type": "integer"
},
"created_at": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"avatar": {
"type": "string",
"format": "uri"
},
"models": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model_id": {
"type": "string"
}
}
}
},
"instructions": {
"type": "string"
},
"events": {
"type": "object",
"properties": {
"in": {
"type": "array",
"items": {}
},
"out": {
"type": "array",
"items": {}
}
}
},
"metadata": {
"type": "object"
},
"x-codeSamples": {
"type": "object",
"properties": {
"cURL": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"example": "cURL"
},
"source": {
"type": "string",
"example": "curl http://localhost:1337/v1/assistants \\\n -H \"Content-Type: application/json\"\n"
}
}
},
"JavaScript": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"example": "JavaScript"
},
"source": {
"type": "string",
"example": "fetch('http://localhost:1337/v1/assistants', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n})\n"
}
}
},
"Node.js": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"example": "Node.js"
},
"source": {
"type": "string",
"example": "const fetch = require('node-fetch');\n\nfetch('http://localhost:1337/v1/assistants', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n})\n"
}
}
},
"Python": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"example": "Python"
},
"source": {
"type": "string",
"example": "import requests\n\nurl = 'http://localhost:1337/v1/assistants'\nheaders = {'Content-Type': 'application/json'}\n\nresponse = requests.get(url, headers=headers)\n"
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"/assistants/{assistant_id}": {
"get": {
"operationId": "getAssistant",
"tags": ["Assistants"],
"summary": "Retrieve assistant",
"description": "Retrieves an assistant. <a href = \"https://platform.openai.com/docs/api-reference/assistants/getAssistant\"> Equivalent to OpenAI's retrieve assistants. </a>\n",
"parameters": [
{
"in": "path",
"name": "assistant_id",
"required": true,
"schema": {
"type": "string",
"example": "jan"
},
"description": "The ID of the assistant to retrieve.\n"
}
],
"responses": {
"200": {
"description": "string",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RetrieveAssistantResponse"
}
}
}
}
}
}
},
"/threads/{thread_id}/messages": {
"get": {
"operationId": "listMessages",
"tags": ["Messages"],
"summary": "List messages",
"description": "Retrieves all messages from the given thread. <a href = \"https://platform.openai.com/docs/api-reference/messages/listMessages\"> Equivalent to OpenAI's list messages. </a>\n",
"parameters": [
{
"in": "path",
"name": "thread_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the thread from which to retrieve messages.\n"
}
],
"responses": {
"200": {
"description": "List of messages retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListMessagesResponse"
}
}
}
}
}
},
"post": {
"operationId": "createMessage",
"tags": ["Messages"],
"summary": "Create message",
"description": "Create a message. <a href = \"https://platform.openai.com/docs/api-reference/messages/createMessage\"> Equivalent to OpenAI's list messages. </a>\n",
"parameters": [
{
"in": "path",
"name": "thread_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the thread to which the message will be posted.\n"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "Role of the sender, either 'user' or 'assistant'.\n",
"example": "user",
"enum": ["user", "assistant"]
},
"content": {
"type": "string",
"description": "Text content of the message.\n",
"example": "How does AI work? Explain it in simple terms."
}
},
"required": ["role", "content"]
}
}
}
},
"responses": {
"200": {
"description": "Message created successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateMessageResponse"
}
}
}
}
}
}
},
"/threads/{thread_id}/messages/{message_id}": {
"get": {
"operationId": "retrieveMessage",
"tags": ["Messages"],
"summary": "Retrieve message",
"description": "Retrieve a specific message from a thread using its thread_id and message_id. <a href = \"https://platform.openai.com/docs/api-reference/messages/getMessage\"> Equivalent to OpenAI's retrieve messages. </a>\n",
"parameters": [
{
"in": "path",
"name": "thread_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the thread containing the message.\n"
},
{
"in": "path",
"name": "message_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the message to retrieve.\n"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetMessageResponse"
}
}
}
}
}
}
}
},
"x-webhooks": {
"ModelObject": {
"post": {
"summary": "The model object",
"description": "Describe a model offering that can be used with the API. <a href = \"https://platform.openai.com/docs/api-reference/models/object\"> Equivalent to OpenAI's model object. </a>\n",
"operationId": "ModelObject",
"tags": ["Models"],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelObject"
}
}
}
}
}
},
"AssistantObject": {
"post": {
"summary": "The assistant object",
"description": "Build assistants that can call models and use tools to perform tasks. <a href = \"https://platform.openai.com/docs/api-reference/assistants\"> Equivalent to OpenAI's assistants object. </a>\n",
"operationId": "AssistantObjects",
"tags": ["Assistants"],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantObject"
}
}
}
}
}
},
"MessageObject": {
"post": {
"summary": "The message object",
"description": "Information about a message in the thread. <a href = \"https://platform.openai.com/docs/api-reference/messages/object\"> Equivalent to OpenAI's message object. </a>\n",
"operationId": "MessageObject",
"tags": ["Messages"],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": null
}
}
}
}
}
},
"ThreadObject": {
"post": {
"summary": "The thread object",
"description": "Represents a thread that contains messages. <a href = \"https://platform.openai.com/docs/api-reference/threads/object\"> Equivalent to OpenAI's thread object. </a>",
"operationId": "ThreadObject",
"tags": ["Threads"],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": null
}
}
}
}
}
}
},
"components": {
"schemas": {
"ThreadObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the thread, defaults to foldername.\n",
"example": "thread_...."
},
"object": {
"type": "string",
"description": "Type of the object, defaults to thread.\n",
"example": "thread"
},
"title": {
"type": "string",
"description": "A brief summary or description of the thread, defaults to an empty string.\n",
"example": "funny physics joke"
},
"assistants": {
"type": "array",
"description": "",
"items": {
"properties": {
"assistant_id": {
"type": "string",
"description": "The identifier of assistant, defaults to \"jan\"\n",
"example": "jan"
},
"model": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "",
"example": "..."
},
"settings": {
"type": "object",
"description": "Defaults to and overrides assistant.json's \"settings\" (and if none, then model.json \"settings\")\n"
},
"parameters": {
"type": "object",
"description": "Defaults to and overrides assistant.json's \"parameters\" (and if none, then model.json \"parameters\")\n"
}
}
}
}
}
},
"created": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the thread, defaults to file creation time.\n",
"example": 1231231
},
"metadata": {
"type": "object",
"description": "Metadata associated with the thread, defaults to an empty object.\n",
"example": {}
}
}
},
"GetThreadResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the thread.",
"example": "thread_abc123"
},
"object": {
"type": "string",
"description": "Type of the object",
"example": "thread"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the thread.",
"example": 1699014083
},
"assistants": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of assistants involved in the thread.",
"example": ["assistant-001"]
},
"metadata": {
"type": "object",
"description": "Metadata associated with the thread.",
"example": {}
},
"messages": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of messages within the thread.",
"example": []
}
}
},
"CreateThreadResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the newly created thread.",
"example": "thread_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's a thread.",
"example": "thread"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the thread.",
"example": 1699014083
},
"metadata": {
"type": "object",
"description": "Metadata associated with the newly created thread.",
"example": {}
}
}
},
"CreateThreadObject": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "Type of the object, indicating it's a thread.",
"example": "thread"
},
"title": {
"type": "string",
"description": "A brief summary or description of the thread, defaults to an empty string.\n",
"example": "funny physics joke"
},
"assistants": {
"type": "array",
"description": "assistant involved in the thread",
"items": {
"properties": {
"assistant_id": {
"type": "string",
"description": "The identifier of assistant, defaults to \"jan\"\n",
"example": "jan"
},
"assistant_name": {
"type": "string",
"description": "The name of assistant, defaults to \"Jan\"\n",
"example": "Jan"
},
"instructions": {
"type": "string",
"description": "The instruction of assistant, defaults to \"Be my grammar corrector\"\n"
},
"model": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Model id",
"example": "mistral-ins-7b-q4"
},
"settings": {
"type": "object",
"description": "Defaults to and overrides assistant.json's \"settings\" (and if none, then model.json \"settings\")\n"
},
"parameters": {
"type": "object",
"description": "Defaults to and overrides assistant.json's \"parameters\" (and if none, then model.json \"parameters\")\n"
},
"engine": {
"type": "string",
"description": "Engine id",
"example": "nitro"
}
}
}
}
}
},
"metadata": {
"type": "object",
"description": "Metadata associated with the thread, defaults to an empty object.\n"
}
}
},
"ThreadMessageObject": {
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "\"Role of the sender, either 'user' or 'assistant'.\"\n",
"enum": ["user", "assistant"]
},
"content": {
"type": "string",
"description": "\"Text content of the message.\"\n"
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "\"Array of file IDs associated with the message, if any.\"\n"
}
}
},
"ModifyThreadResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "\"The identifier of the modified thread.\"\n",
"example": "thread_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's a thread.",
"example": "thread"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the thread.",
"example": 1699014083
},
"metadata": {
"type": "object",
"description": "Metadata associated with the modified thread.",
"example": {}
}
}
},
"DeleteThreadResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the deleted thread.",
"example": "thread_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating the thread has been deleted.",
"example": "thread.deleted"
},
"deleted": {
"type": "boolean",
"description": "Indicates whether the thread was successfully deleted.",
"example": true
}
}
},
"ListModelsResponse": {
"type": "object",
"properties": {
"object": {
"type": "string",
"enum": ["list"]
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Model"
}
}
},
"required": ["object", "data"]
},
"Model": {
"type": "object",
"properties": {
"source_url": {
"type": "string",
"format": "uri",
"description": "URL to the source of the model.",
"example": "https://huggingface.co/janhq/trinity-v1.2-GGUF/resolve/main/trinity-v1.2.Q4_K_M.gguf"
},
"id": {
"type": "string",
"description": "Unique identifier used in chat-completions model_name, matches folder name.",
"example": "trinity-v1.2-7b"
},
"object": {
"type": "string",
"example": "model"
},
"name": {
"type": "string",
"description": "Name of the model.",
"example": "Trinity-v1.2 7B Q4"
},
"version": {
"type": "string",
"default": "1.0",
"description": "The version number of the model."
},
"description": {
"type": "string",
"description": "Description of the model.",
"example": "Trinity is an experimental model merge using the Slerp method. Recommended for daily assistance purposes."
},
"format": {
"type": "string",
"description": "State format of the model, distinct from the engine.",
"example": "gguf"
},
"settings": {
"type": "object",
"properties": {
"ctx_len": {
"type": "integer",
"description": "Context length.",
"example": 4096
},
"prompt_template": {
"type": "string",
"example": "<|im_start|>system\n{system_message}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant"
}
},
"additionalProperties": false
},
"parameters": {
"type": "object",
"properties": {
"temperature": {
"example": 0.7
},
"top_p": {
"example": 0.95
},
"stream": {
"example": true
},
"max_tokens": {
"example": 4096
},
"stop": {
"example": []
},
"frequency_penalty": {
"example": 0
},
"presence_penalty": {
"example": 0
}
},
"additionalProperties": false
},
"metadata": {
"type": "object",
"properties": {
"author": {
"type": "string",
"example": "Jan"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": ["7B", "Merged", "Featured"]
},
"size": {
"type": "integer",
"example": 4370000000
},
"cover": {
"type": "string",
"format": "uri",
"example": "https://raw.githubusercontent.com/janhq/jan/main/models/trinity-v1.2-7b/cover.png"
}
},
"additionalProperties": false
},
"engine": {
"example": "nitro"
}
}
},
"ModelObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the model.\n",
"example": "trinity-v1.2-7b"
},
"object": {
"type": "string",
"description": "The type of the object, indicating it's a model.\n",
"default": "model"
},
"created": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the model.\n",
"example": 1253935178
},
"owned_by": {
"type": "string",
"description": "The entity that owns the model.\n",
"example": "_"
}
}
},
"GetModelResponse": {
"type": "object",
"properties": {
"source_url": {
"type": "string",
"format": "uri",
"description": "URL to the source of the model.",
"example": "https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf"
},
"id": {
"type": "string",
"description": "Unique identifier used in chat-completions model_name, matches folder name.",
"example": "mistral-ins-7b-q4"
},
"object": {
"type": "string",
"example": "model"
},
"name": {
"type": "string",
"description": "Name of the model.",
"example": "Mistral Instruct 7B Q4"
},
"version": {
"type": "string",
"default": "1.0",
"description": "The version number of the model."
},
"description": {
"type": "string",
"description": "Description of the model.",
"example": "Trinity is an experimental model merge using the Slerp method. Recommended for daily assistance purposes."
},
"format": {
"type": "string",
"description": "State format of the model, distinct from the engine.",
"example": "gguf"
},
"settings": {
"type": "object",
"properties": {
"ctx_len": {
"type": "integer",
"description": "Context length.",
"example": 4096
},
"prompt_template": {
"type": "string",
"example": "[INST] {prompt} [/INST]"
}
},
"additionalProperties": false
},
"parameters": {
"type": "object",
"properties": {
"temperature": {
"example": 0.7
},
"top_p": {
"example": 0.95
},
"stream": {
"example": true
},
"max_tokens": {
"example": 4096
},
"stop": {
"example": []
},
"frequency_penalty": {
"example": 0
},
"presence_penalty": {
"example": 0
}
},
"additionalProperties": false
},
"metadata": {
"type": "object",
"properties": {
"author": {
"type": "string",
"example": "MistralAI"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": ["7B", "Featured", "Foundation Model"]
},
"size": {
"example": 4370000000,
"type": "integer"
},
"cover": {
"example": "https://raw.githubusercontent.com/janhq/jan/main/models/mistral-ins-7b-q4/cover.png",
"type": "string"
}
},
"additionalProperties": false
},
"engine": {
"example": "nitro"
}
}
},
"DeleteModelResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the model that was deleted.",
"example": "mistral-ins-7b-q4"
},
"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
}
}
},
"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": {
"message": {
"type": "string",
"description": "Message indicates Jan starting download corresponding model.",
"example": "Starting download mistral-ins-7b-q4"
}
}
},
"MessageObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Sequential or UUID identifier of the message.\n",
"example": 0
},
"object": {
"type": "string",
"description": "Type of the object, defaults to 'thread.message'.\n",
"example": "thread.message"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the message.\n"
},
"thread_id": {
"type": "string",
"description": "Identifier of the thread to which this message belongs. Defaults to parent thread.\n",
"example": "thread_asdf"
},
"assistant_id": {
"type": "string",
"description": "Identifier of the assistant involved in the message. Defaults to parent thread.\n",
"example": "jan"
},
"role": {
"type": "string",
"enum": ["user", "assistant"],
"description": "Role of the sender, either 'user' or 'assistant'.\n"
},
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of content, e.g., 'text'.\n"
},
"text": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Text content of the message.\n",
"example": "Hi!?"
},
"annotations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Annotations for the text content, if any.\n",
"example": []
}
}
}
}
}
},
"metadata": {
"type": "object",
"description": "Metadata associated with the message, defaults to an empty object.\n",
"example": {}
}
}
},
"GetMessageResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the message.",
"example": "msg_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's a thread message.",
"default": "thread.message"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the message.",
"example": 1699017614
},
"thread_id": {
"type": "string",
"description": "Identifier of the thread to which this message belongs.",
"example": "thread_abc123"
},
"role": {
"type": "string",
"description": "Role of the sender, either 'user' or 'assistant'.",
"example": "user"
},
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of content, e.g., 'text'.",
"example": "text"
},
"text": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Text content of the message.",
"example": "How does AI work? Explain it in simple terms."
},
"annotations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Annotations for the text content, if any.",
"example": []
}
}
}
}
}
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of file IDs associated with the message, if any.",
"example": []
},
"assistant_id": {
"type": "string",
"description": "Identifier of the assistant involved in the message, if applicable.",
"example": null
},
"run_id": {
"type": "string",
"description": "Run ID associated with the message, if applicable.",
"example": null
},
"metadata": {
"type": "object",
"description": "Metadata associated with the message.",
"example": {}
}
}
},
"CreateMessageResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the created message.",
"example": "msg_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's a thread message.",
"example": "thread.message"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the message.",
"example": 1699017614
},
"thread_id": {
"type": "string",
"description": "Identifier of the thread to which this message belongs.",
"example": "thread_abc123"
},
"role": {
"type": "string",
"description": "Role of the sender, either 'user' or 'assistant'.",
"example": "user"
},
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of content, e.g., 'text'.",
"example": "text"
},
"text": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Text content of the message.",
"example": "How does AI work? Explain it in simple terms."
},
"annotations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Annotations for the text content, if any.",
"example": []
}
}
}
}
}
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of file IDs associated with the message, if any.",
"example": []
},
"assistant_id": {
"type": "string",
"description": "Identifier of the assistant involved in the message, if applicable.",
"example": null
},
"run_id": {
"type": "string",
"description": "Run ID associated with the message, if applicable.",
"example": null
},
"metadata": {
"type": "object",
"description": "Metadata associated with the message.",
"example": {}
}
}
},
"ListMessagesResponse": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "Type of the object, indicating it's a list.",
"default": "list"
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ListMessageObject"
}
},
"first_id": {
"type": "string",
"description": "Identifier of the first message in the list.",
"example": "msg_abc123"
},
"last_id": {
"type": "string",
"description": "Identifier of the last message in the list.",
"example": "msg_abc456"
},
"has_more": {
"type": "boolean",
"description": "Indicates whether there are more messages to retrieve.",
"example": false
}
}
},
"ListMessageObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the message.",
"example": "msg_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's a thread message.",
"example": "thread.message"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the message.",
"example": 1699017614
},
"thread_id": {
"type": "string",
"description": "Identifier of the thread to which this message belongs.",
"example": "thread_abc123"
},
"role": {
"type": "string",
"description": "Role of the sender, either 'user' or 'assistant'.",
"example": "user"
},
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of content, e.g., 'text'."
},
"text": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Text content of the message.",
"example": "How does AI work? Explain it in simple terms."
},
"annotations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Annotations for the text content, if any."
}
}
}
}
}
},
"file_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of file IDs associated with the message, if any.",
"example": []
},
"assistant_id": {
"type": "string",
"description": "Identifier of the assistant involved in the message, if applicable.",
"example": null
},
"run_id": {
"type": "string",
"description": "Run ID associated with the message, if applicable.",
"example": null
},
"metadata": {
"type": "object",
"description": "Metadata associated with the message.",
"example": {}
}
}
},
"MessageFileObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the file.",
"example": "file-abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's a thread message file.",
"example": "thread.message.file"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the file.",
"example": 1699061776
},
"message_id": {
"type": "string",
"description": "Identifier of the message to which this file is associated.",
"example": "msg_abc123"
}
}
},
"ListMessageFilesResponse": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "Type of the object, indicating it's a list.",
"default": "list"
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MessageFileObject"
}
}
}
},
"ChatObject": {
"type": "object",
"properties": {
"messages": {
"type": "array",
"description": "Contains input data or prompts for the model to process.\n",
"items": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"role": {
"type": "string"
}
}
},
"example": [
{
"content": "Hello there :wave:",
"role": "assistant"
},
{
"content": "Can you write a long story",
"role": "user"
}
]
},
"stream": {
"type": "boolean",
"default": true,
"description": "Enables continuous output generation, allowing for streaming of model responses."
},
"model": {
"type": "string",
"example": "gpt-3.5-turbo",
"description": "Specifies the model being used for inference or processing tasks."
},
"max_tokens": {
"type": "number",
"default": 2048,
"description": "The maximum number of tokens the model will generate in a single response."
},
"stop": {
"type": "array",
"items": {
"type": "string"
},
"description": "Defines specific tokens or phrases at which the model will stop generating further output.",
"example": ["hello"]
},
"frequency_penalty": {
"type": "number",
"default": 0,
"description": "Adjusts the likelihood of the model repeating words or phrases in its output."
},
"presence_penalty": {
"type": "number",
"default": 0,
"description": "Influences the generation of new and varied concepts in the model's output."
},
"temperature": {
"type": "number",
"default": 0.7,
"description": "Controls the randomness of the model's output."
},
"top_p": {
"type": "number",
"default": 0.95,
"description": "Set probability threshold for more relevant outputs."
},
"cache_prompt": {
"type": "boolean",
"default": true,
"description": "Optimize performance in repeated or similar requests."
}
}
},
"ChatCompletionRequest": {
"type": "object",
"properties": {
"messages": {
"type": "array",
"description": "Contains input data or prompts for the model to process.\n",
"items": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"role": {
"type": "string"
}
}
},
"example": [
{
"content": "You are a helpful assistant.",
"role": "system"
},
{
"content": "Hello!",
"role": "user"
}
]
},
"model": {
"type": "string",
"example": "tinyllama-1.1b",
"description": "Specifies the model being used for inference or processing tasks.\n"
},
"stream": {
"type": "boolean",
"default": true,
"description": "Enables continuous output generation, allowing for streaming of model responses.\n"
},
"max_tokens": {
"type": "number",
"default": 2048,
"description": "The maximum number of tokens the model will generate in a single response.\n"
},
"stop": {
"type": "array",
"items": {
"type": "string"
},
"description": "Defines specific tokens or phrases at which the model will stop generating further output.\n",
"example": ["hello"]
},
"frequency_penalty": {
"type": "number",
"default": 0,
"description": "Adjusts the likelihood of the model repeating words or phrases in its output.\n"
},
"presence_penalty": {
"type": "number",
"default": 0,
"description": "Influences the generation of new and varied concepts in the model's output.\n"
},
"temperature": {
"type": "number",
"default": 0.7,
"description": "Controls the randomness of the model's output.\n"
},
"top_p": {
"type": "number",
"default": 0.95,
"description": "Set probability threshold for more relevant outputs.\n"
}
}
},
"ChatCompletionResponse": {
"type": "object",
"description": "Description of the response structure",
"properties": {
"choices": {
"type": "array",
"description": "Array of choice objects",
"items": {
"type": "object",
"properties": {
"finish_reason": {
"type": "string",
"nullable": true,
"example": null,
"description": "Reason for finishing the response, if applicable"
},
"index": {
"type": "integer",
"example": 0,
"description": "Index of the choice"
},
"message": {
"type": "object",
"properties": {
"content": {
"type": "string",
"example": "Hello user. What can I help you with?",
"description": "Content of the message"
},
"role": {
"type": "string",
"example": "assistant",
"description": "Role of the sender"
}
}
}
}
}
},
"created": {
"type": "integer",
"example": 1700193928,
"description": "Timestamp of when the response was created"
},
"id": {
"type": "string",
"example": "ebwd2niJvJB1Q2Whyvkz",
"description": "Unique identifier of the response"
},
"model": {
"type": "string",
"nullable": true,
"example": "_",
"description": "Model used for generating the response"
},
"object": {
"type": "string",
"example": "chat.completion",
"description": "Type of the response object"
},
"system_fingerprint": {
"type": "string",
"nullable": true,
"example": "_",
"description": "System fingerprint"
},
"usage": {
"type": "object",
"description": "Information about the usage of tokens",
"properties": {
"completion_tokens": {
"type": "integer",
"example": 500,
"description": "Number of tokens used for completion"
},
"prompt_tokens": {
"type": "integer",
"example": 33,
"description": "Number of tokens used in the prompt"
},
"total_tokens": {
"type": "integer",
"example": 533,
"description": "Total number of tokens used"
}
}
}
}
},
"AssistantObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the assistant.",
"example": "asst_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's an assistant.",
"default": "assistant"
},
"version": {
"type": "integer",
"description": "Version number of the assistant.",
"example": 1
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the assistant.",
"example": 1698984975
},
"name": {
"type": "string",
"description": "Name of the assistant.",
"example": "Math Tutor"
},
"description": {
"type": "string",
"description": "Description of the assistant. Can be null.",
"example": null
},
"avatar": {
"type": "string",
"description": "URL of the assistant's avatar. Jan-specific property.",
"example": "https://pic.png"
},
"models": {
"type": "array",
"description": "List of models associated with the assistant. Jan-specific property.",
"items": {
"type": "object",
"properties": {
"model_id": {
"type": "string",
"example": "model_0"
}
}
}
},
"instructions": {
"type": "string",
"description": "A system prompt for the assistant.",
"example": "Be concise"
},
"events": {
"type": "object",
"description": "Event subscription settings for the assistant.",
"properties": {
"in": {
"type": "array",
"items": {
"type": "string"
}
},
"out": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"metadata": {
"type": "object",
"description": "Metadata associated with the assistant."
}
}
},
"ListAssistantsResponse": {
"type": "object"
},
"CreateAssistantResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the assistant.",
"example": "asst_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's an assistant.",
"default": "assistant"
},
"version": {
"type": "integer",
"description": "Version number of the assistant.",
"example": 1
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the assistant.",
"example": 1698984975
},
"name": {
"type": "string",
"description": "Name of the assistant.",
"example": "Math Tutor"
},
"description": {
"type": "string",
"description": "Description of the assistant. Can be null.",
"example": null
},
"avatar": {
"type": "string",
"description": "URL of the assistant's avatar. Jan-specific property.",
"example": "https://pic.png"
},
"models": {
"type": "array",
"description": "List of models associated with the assistant. Jan-specific property.",
"items": {
"type": "object",
"properties": {
"model_id": {
"type": "string",
"example": "model_0"
}
}
}
},
"instructions": {
"type": "string",
"description": "A system prompt for the assistant.",
"example": "Be concise"
},
"events": {
"type": "object",
"description": "Event subscription settings for the assistant.",
"properties": {
"in": {
"type": "array",
"items": {
"type": "string"
}
},
"out": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"metadata": {
"type": "object",
"description": "Metadata associated with the assistant."
}
}
},
"RetrieveAssistantResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the assistant.",
"example": "asst_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's an assistant.",
"default": "assistant"
},
"version": {
"type": "integer",
"description": "Version number of the assistant.",
"example": 1
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the assistant.",
"example": 1698984975
},
"name": {
"type": "string",
"description": "Name of the assistant.",
"example": "Math Tutor"
},
"description": {
"type": "string",
"description": "Description of the assistant. Can be null.",
"example": null
},
"avatar": {
"type": "string",
"description": "URL of the assistant's avatar. Jan-specific property.",
"example": "https://pic.png"
},
"models": {
"type": "array",
"description": "List of models associated with the assistant. Jan-specific property.",
"items": {
"type": "object",
"properties": {
"model_id": {
"type": "string",
"example": "model_0"
}
}
}
},
"instructions": {
"type": "string",
"description": "A system prompt for the assistant.",
"example": "Be concise"
},
"events": {
"type": "object",
"description": "Event subscription settings for the assistant.",
"properties": {
"in": {
"type": "array",
"items": {
"type": "string"
}
},
"out": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"metadata": {
"type": "object",
"description": "Metadata associated with the assistant."
}
}
},
"ModifyAssistantObject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the assistant.",
"example": "asst_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's an assistant.",
"default": "assistant"
},
"version": {
"type": "integer",
"description": "Version number of the assistant.",
"example": 1
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the assistant.",
"example": 1698984975
},
"name": {
"type": "string",
"description": "Name of the assistant.",
"example": "Math Tutor"
},
"description": {
"type": "string",
"description": "Description of the assistant. Can be null.",
"example": null
},
"avatar": {
"type": "string",
"description": "URL of the assistant's avatar. Jan-specific property.",
"example": "https://pic.png"
},
"models": {
"type": "array",
"description": "List of models associated with the assistant. Jan-specific property.",
"items": {
"type": "object",
"properties": {
"model_id": {
"type": "string",
"example": "model_0"
}
}
}
},
"instructions": {
"type": "string",
"description": "A system prompt for the assistant.",
"example": "Be concise"
},
"events": {
"type": "object",
"description": "Event subscription settings for the assistant.",
"properties": {
"in": {
"type": "array",
"items": {
"type": "string"
}
},
"out": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"metadata": {
"type": "object",
"description": "Metadata associated with the assistant."
}
}
},
"ModifyAssistantResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the assistant.",
"example": "asst_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating it's an assistant.",
"default": "assistant"
},
"version": {
"type": "integer",
"description": "Version number of the assistant.",
"example": 1
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp representing the creation time of the assistant.",
"example": 1698984975
},
"name": {
"type": "string",
"description": "Name of the assistant.",
"example": "Physics Tutor"
},
"description": {
"type": "string",
"description": "Description of the assistant. Can be null.",
"example": null
},
"avatar": {
"type": "string",
"description": "URL of the assistant's avatar. Jan-specific property.",
"example": "https://pic.png"
},
"models": {
"type": "array",
"description": "List of models associated with the assistant. Jan-specific property.",
"items": {
"type": "object",
"properties": {
"model_id": {
"type": "string",
"example": "model_0"
}
}
}
},
"instructions": {
"type": "string",
"description": "A system prompt for the assistant.",
"example": "Be concise!"
},
"events": {
"type": "object",
"description": "Event subscription settings for the assistant.",
"properties": {
"in": {
"type": "array",
"items": {
"type": "string"
}
},
"out": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"metadata": {
"type": "object",
"description": "Metadata associated with the assistant."
}
}
},
"DeleteAssistantResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier of the deleted assistant.",
"example": "asst_abc123"
},
"object": {
"type": "string",
"description": "Type of the object, indicating the assistant has been deleted.",
"example": "assistant.deleted"
},
"deleted": {
"type": "boolean",
"description": "Indicates whether the assistant was successfully deleted.",
"example": true
}
}
}
}
}
}