{ "swagger": "2.0", "info": { "description": "The LocalAI Rest API.", "title": "LocalAI API", "contact": { "name": "LocalAI", "url": "https://localai.io" }, "license": { "name": "MIT", "url": "https://raw.githubusercontent.com/mudler/LocalAI/master/LICENSE" }, "version": "2.0.0" }, "basePath": "/", "paths": { "/v1/assistants": { "post": { "summary": "Create an assistant with a model and instructions.", "parameters": [ { "description": "query params", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/openai.AssistantRequest" } } ], "responses": { "200": { "description": "Response", "schema": { "$ref": "#/definitions/openai.Assistant" } } } } }, "/v1/audio/speech": { "post": { "summary": "Generates audio from the input text.", "parameters": [ { "description": "query params", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/schema.TTSRequest" } } ], "responses": { "200": { "description": "Response", "schema": { "type": "string" } } } } }, "/v1/audio/transcriptions": { "post": { "consumes": [ "multipart/form-data" ], "summary": "Transcribes audio into the input language.", "parameters": [ { "type": "string", "description": "model", "name": "model", "in": "formData", "required": true }, { "type": "file", "description": "file", "name": "file", "in": "formData", "required": true } ], "responses": { "200": { "description": "Response", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/chat/completions": { "post": { "summary": "Generate a chat completions for a given prompt and model.", "parameters": [ { "description": "query params", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/schema.OpenAIRequest" } } ], "responses": { "200": { "description": "Response", "schema": { "$ref": "#/definitions/schema.OpenAIResponse" } } } } }, "/v1/completions": { "post": { "summary": "Generate completions for a given prompt and model.", "parameters": [ { "description": "query params", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/schema.OpenAIRequest" } } ], "responses": { "200": { "description": "Response", "schema": { "$ref": "#/definitions/schema.OpenAIResponse" } } } } }, "/v1/embeddings": { "post": { "summary": "Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.", "parameters": [ { "description": "query params", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/schema.OpenAIRequest" } } ], "responses": { "200": { "description": "Response", "schema": { "$ref": "#/definitions/schema.OpenAIResponse" } } } } }, "/v1/images/generations": { "post": { "summary": "Creates an image given a prompt.", "parameters": [ { "description": "query params", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/schema.OpenAIRequest" } } ], "responses": { "200": { "description": "Response", "schema": { "$ref": "#/definitions/schema.OpenAIResponse" } } } } }, "/v1/text-to-speech/{voice-id}": { "post": { "summary": "Generates audio from the input text.", "parameters": [ { "type": "string", "description": "Account ID", "name": "voice-id", "in": "path", "required": true }, { "description": "query params", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/schema.TTSRequest" } } ], "responses": { "200": { "description": "Response", "schema": { "type": "string" } } } } } }, "definitions": { "functions.Argument": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": true }, "type": { "type": "string" } } }, "functions.Function": { "type": "object", "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "parameters": { "type": "object", "additionalProperties": true } } }, "functions.FunctionName": { "type": "object", "properties": { "const": { "type": "string" } } }, "functions.FunctionProperties": { "type": "object", "properties": { "arguments": { "$ref": "#/definitions/functions.Argument" }, "function": { "$ref": "#/definitions/functions.FunctionName" } } }, "functions.ItemFunction": { "type": "object", "properties": { "properties": { "$ref": "#/definitions/functions.FunctionProperties" }, "type": { "type": "string" } } }, "functions.ItemName": { "type": "object", "properties": { "properties": { "$ref": "#/definitions/functions.NameProperties" }, "type": { "type": "string" } } }, "functions.JSONFunctionStructureFunction": { "type": "object", "properties": { "$defs": { "type": "object", "additionalProperties": true }, "anyOf": { "type": "array", "items": { "$ref": "#/definitions/functions.ItemFunction" } }, "oneOf": { "type": "array", "items": { "$ref": "#/definitions/functions.ItemFunction" } } } }, "functions.JSONFunctionStructureName": { "type": "object", "properties": { "$defs": { "type": "object", "additionalProperties": true }, "anyOf": { "type": "array", "items": { "$ref": "#/definitions/functions.ItemName" } }, "oneOf": { "type": "array", "items": { "$ref": "#/definitions/functions.ItemName" } } } }, "functions.NameProperties": { "type": "object", "properties": { "arguments": { "$ref": "#/definitions/functions.Argument" }, "name": { "$ref": "#/definitions/functions.FunctionName" } } }, "functions.Tool": { "type": "object", "properties": { "function": { "$ref": "#/definitions/functions.Function" }, "type": { "type": "string" } } }, "openai.Assistant": { "type": "object", "properties": { "created": { "description": "The time at which the assistant was created.", "type": "integer" }, "description": { "description": "The description of the assistant.", "type": "string" }, "file_ids": { "description": "A list of file IDs attached to this assistant.", "type": "array", "items": { "type": "string" } }, "id": { "description": "The unique identifier of the assistant.", "type": "string" }, "instructions": { "description": "The system instructions that the assistant uses.", "type": "string" }, "metadata": { "description": "Set of key-value pairs attached to the assistant.", "type": "object", "additionalProperties": { "type": "string" } }, "model": { "description": "The model ID used by the assistant.", "type": "string" }, "name": { "description": "The name of the assistant.", "type": "string" }, "object": { "description": "Object type, which is \"assistant\".", "type": "string" }, "tools": { "description": "A list of tools enabled on the assistant.", "type": "array", "items": { "$ref": "#/definitions/openai.Tool" } } } }, "openai.AssistantRequest": { "type": "object", "properties": { "description": { "type": "string" }, "file_ids": { "type": "array", "items": { "type": "string" } }, "instructions": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "model": { "type": "string" }, "name": { "type": "string" }, "tools": { "type": "array", "items": { "$ref": "#/definitions/openai.Tool" } } } }, "openai.Tool": { "type": "object", "properties": { "type": { "$ref": "#/definitions/openai.ToolType" } } }, "openai.ToolType": { "type": "string", "enum": [ "code_interpreter", "retrieval", "function" ], "x-enum-varnames": [ "CodeInterpreter", "Retrieval", "Function" ] }, "schema.Choice": { "type": "object", "properties": { "delta": { "$ref": "#/definitions/schema.Message" }, "finish_reason": { "type": "string" }, "index": { "type": "integer" }, "message": { "$ref": "#/definitions/schema.Message" }, "text": { "type": "string" } } }, "schema.FunctionCall": { "type": "object", "properties": { "arguments": { "type": "string" }, "name": { "type": "string" } } }, "schema.Item": { "type": "object", "properties": { "b64_json": { "type": "string" }, "embedding": { "type": "array", "items": { "type": "number" } }, "index": { "type": "integer" }, "object": { "type": "string" }, "url": { "description": "Images", "type": "string" } } }, "schema.Message": { "type": "object", "properties": { "content": { "description": "The message content" }, "function_call": { "description": "A result of a function call" }, "name": { "description": "The message name (used for tools calls)", "type": "string" }, "role": { "description": "The message role", "type": "string" }, "string_content": { "type": "string" }, "string_images": { "type": "array", "items": { "type": "string" } }, "tool_calls": { "type": "array", "items": { "$ref": "#/definitions/schema.ToolCall" } } } }, "schema.OpenAIRequest": { "type": "object", "required": [ "file" ], "properties": { "backend": { "type": "string" }, "batch": { "description": "Custom parameters - not present in the OpenAI API", "type": "integer" }, "clip_skip": { "description": "Diffusers", "type": "integer" }, "echo": { "type": "boolean" }, "file": { "description": "whisper", "type": "string" }, "frequency_penalty": { "type": "number" }, "function_call": { "description": "might be a string or an object" }, "functions": { "description": "A list of available functions to call", "type": "array", "items": { "$ref": "#/definitions/functions.Function" } }, "grammar": { "description": "A grammar to constrain the LLM output", "type": "string" }, "grammar_json_functions": { "$ref": "#/definitions/functions.JSONFunctionStructureFunction" }, "grammar_json_name": { "$ref": "#/definitions/functions.JSONFunctionStructureName" }, "ignore_eos": { "type": "boolean" }, "input": {}, "instruction": { "description": "Edit endpoint", "type": "string" }, "language": { "description": "Also part of the OpenAI official spec", "type": "string" }, "max_tokens": { "type": "integer" }, "messages": { "description": "Messages is read only by chat/completion API calls", "type": "array", "items": { "$ref": "#/definitions/schema.Message" } }, "mode": { "description": "Image (not supported by OpenAI)", "type": "integer" }, "model": { "description": "Also part of the OpenAI official spec", "type": "string" }, "model_base_name": { "description": "AutoGPTQ", "type": "string" }, "n": { "description": "Also part of the OpenAI official spec. use it for returning multiple results", "type": "integer" }, "n_keep": { "type": "integer" }, "negative_prompt": { "type": "string" }, "negative_prompt_scale": { "type": "number" }, "presence_penalty": { "type": "number" }, "prompt": { "description": "Prompt is read only by completion/image API calls" }, "repeat_penalty": { "type": "number" }, "response_format": { "description": "whisper/image" }, "rope_freq_base": { "type": "number" }, "rope_freq_scale": { "type": "number" }, "seed": { "type": "integer" }, "size": { "description": "image", "type": "string" }, "step": { "type": "integer" }, "stop": {}, "stream": { "type": "boolean" }, "temperature": { "type": "number" }, "tfz": { "type": "number" }, "tokenizer": { "description": "RWKV (?)", "type": "string" }, "tool_choice": {}, "tools": { "type": "array", "items": { "$ref": "#/definitions/functions.Tool" } }, "top_k": { "type": "integer" }, "top_p": { "description": "Common options between all the API calls, part of the OpenAI spec", "type": "number" }, "typical_p": { "type": "number" }, "use_fast_tokenizer": { "description": "AutoGPTQ", "type": "boolean" } } }, "schema.OpenAIResponse": { "type": "object", "properties": { "choices": { "type": "array", "items": { "$ref": "#/definitions/schema.Choice" } }, "created": { "type": "integer" }, "data": { "type": "array", "items": { "$ref": "#/definitions/schema.Item" } }, "id": { "type": "string" }, "model": { "type": "string" }, "object": { "type": "string" }, "usage": { "$ref": "#/definitions/schema.OpenAIUsage" } } }, "schema.OpenAIUsage": { "type": "object", "properties": { "completion_tokens": { "type": "integer" }, "prompt_tokens": { "type": "integer" }, "total_tokens": { "type": "integer" } } }, "schema.TTSRequest": { "type": "object", "properties": { "backend": { "type": "string" }, "input": { "type": "string" }, "model": { "type": "string" }, "voice": { "type": "string" } } }, "schema.ToolCall": { "type": "object", "properties": { "function": { "$ref": "#/definitions/schema.FunctionCall" }, "id": { "type": "string" }, "index": { "type": "integer" }, "type": { "type": "string" } } } }, "securityDefinitions": { "BearerAuth": { "type": "apiKey", "name": "Authorization", "in": "header" } } }