From 8edb2ebb72b5b18c2ee2ec4c4f4645d3b460ea82 Mon Sep 17 00:00:00 2001
From: hieu-jan <150573299+hieu-jan@users.noreply.github.com>
Date: Fri, 15 Mar 2024 18:33:15 +0900
Subject: [PATCH] feat: add jan.json
---
docs/docusaurus.config.js | 6 +-
docs/openapi/jan.json | 2486 +++++++++++++++++++++++++++++++++++++
2 files changed, 2489 insertions(+), 3 deletions(-)
create mode 100644 docs/openapi/jan.json
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index 14b92fbce..72e90adf0 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -104,7 +104,7 @@ const config = {
{
from: "/troubleshooting/undefined-issue/",
to: "/guides/error-codes/undefined-issue/",
- }, {
+ }, {
from: "/install/",
to: "/guides/install/",
},
@@ -121,10 +121,10 @@ const config = {
route: '/api-reference',
configuration: {
spec: {
- url: 'https://aindrajaya.github.io/openapi-spec/openapi.json',
+ url: 'https://raw.githubusercontent.com/janhq/jan/dev/docs/openapi/jan.json',
},
},
- }
+ },
],
],
diff --git a/docs/openapi/jan.json b/docs/openapi/jan.json
new file mode 100644
index 000000000..f4f511a18
--- /dev/null
+++ b/docs/openapi/jan.json
@@ -0,0 +1,2486 @@
+{
+ "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. Equivalent to OpenAI's create chat completion. \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. Equivalent to OpenAI's list model. \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. Equivalent to OpenAI's retrieve 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/GetModelResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "deleteModel",
+ "tags": [
+ "Models"
+ ],
+ "summary": "Delete model",
+ "description": "Delete a model. Equivalent to OpenAI's delete model. \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. Equivalent to OpenAI's create thread. \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. Equivalent to OpenAI's retrieve thread. \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. Equivalent to OpenAI's modify thread. \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. Equivalent to OpenAI's delete thread. \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. Equivalent to OpenAI's list assistants. \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. Equivalent to OpenAI's retrieve assistants. \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. Equivalent to OpenAI's list messages. \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. Equivalent to OpenAI's list messages. \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. Equivalent to OpenAI's retrieve messages. \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. Equivalent to OpenAI's model object. \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. Equivalent to OpenAI's assistants object. \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. Equivalent to OpenAI's message object. \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. Equivalent to OpenAI's thread object. ",
+ "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
+ }
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file