433 lines
10 KiB
JSON
433 lines
10 KiB
JSON
{
|
||
"openapi": "3.0.3",
|
||
"info": {
|
||
"title": "Tabby Server",
|
||
"description": "\n[](https://github.com/TabbyML/tabby)\n[](https://join.slack.com/t/tabbycommunity/shared_invite/zt-1xeiddizp-bciR2RtFTaJ37RBxr8VxpA)\n\nInstall following IDE / Editor extensions to get started with [Tabby](https://github.com/TabbyML/tabby).\n* [VSCode Extension](https://github.com/TabbyML/tabby/tree/main/clients/vscode) – Install from the [marketplace](https://marketplace.visualstudio.com/items?itemName=TabbyML.vscode-tabby), or [open-vsx.org](https://open-vsx.org/extension/TabbyML/vscode-tabby)\n* [VIM Extension](https://github.com/TabbyML/tabby/tree/main/clients/vim)\n* [IntelliJ Platform Plugin](https://github.com/TabbyML/tabby/tree/main/clients/intellij) – Install from the [marketplace](https://plugins.jetbrains.com/plugin/22379-tabby)\n",
|
||
"license": {
|
||
"name": "Apache 2.0",
|
||
"url": "https://github.com/TabbyML/tabby/blob/main/LICENSE"
|
||
},
|
||
"version": "0.6.0"
|
||
},
|
||
"servers": [
|
||
{
|
||
"url": "https://playground.app.tabbyml.com",
|
||
"description": "Playground server"
|
||
}
|
||
],
|
||
"paths": {
|
||
"/v1/completions": {
|
||
"post": {
|
||
"tags": [
|
||
"v1"
|
||
],
|
||
"operationId": "completion",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/CompletionRequest"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Success",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/CompletionResponse"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "Bad Request"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/v1/events": {
|
||
"post": {
|
||
"tags": [
|
||
"v1"
|
||
],
|
||
"operationId": "event",
|
||
"requestBody": {
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/LogEventRequest"
|
||
}
|
||
}
|
||
},
|
||
"required": true
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "Success"
|
||
},
|
||
"400": {
|
||
"description": "Bad Request"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/v1/health": {
|
||
"get": {
|
||
"tags": [
|
||
"v1"
|
||
],
|
||
"operationId": "health",
|
||
"responses": {
|
||
"200": {
|
||
"description": "Success",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/HealthState"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"components": {
|
||
"schemas": {
|
||
"ChatCompletionChunk": {
|
||
"type": "object",
|
||
"required": [
|
||
"content"
|
||
],
|
||
"properties": {
|
||
"content": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"ChatCompletionRequest": {
|
||
"type": "object",
|
||
"required": [
|
||
"messages"
|
||
],
|
||
"properties": {
|
||
"messages": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/components/schemas/Message"
|
||
}
|
||
}
|
||
},
|
||
"example": {
|
||
"messages": [
|
||
{
|
||
"role": "user",
|
||
"content": "What is tail recursion?"
|
||
},
|
||
{
|
||
"role": "assistant",
|
||
"content": "It's a kind of optimization in compiler?"
|
||
},
|
||
{
|
||
"role": "user",
|
||
"content": "Could you share more details?"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"Choice": {
|
||
"type": "object",
|
||
"required": [
|
||
"index",
|
||
"text"
|
||
],
|
||
"properties": {
|
||
"index": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"minimum": 0
|
||
},
|
||
"text": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"CompletionRequest": {
|
||
"type": "object",
|
||
"properties": {
|
||
"language": {
|
||
"type": "string",
|
||
"description": "Language identifier, full list is maintained at\nhttps://code.visualstudio.com/docs/languages/identifiers",
|
||
"example": "python",
|
||
"nullable": true
|
||
},
|
||
"segments": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/Segments"
|
||
}
|
||
],
|
||
"nullable": true
|
||
},
|
||
"user": {
|
||
"type": "string",
|
||
"description": "A unique identifier representing your end-user, which can help Tabby to monitor & generating\nreports.",
|
||
"nullable": true
|
||
}
|
||
},
|
||
"example": {
|
||
"language": "python",
|
||
"segments": {
|
||
"prefix": "def fib(n):\n ",
|
||
"suffix": "\n return fib(n - 1) + fib(n - 2)"
|
||
}
|
||
}
|
||
},
|
||
"CompletionResponse": {
|
||
"type": "object",
|
||
"required": [
|
||
"id",
|
||
"choices"
|
||
],
|
||
"properties": {
|
||
"id": {
|
||
"type": "string"
|
||
},
|
||
"choices": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/components/schemas/Choice"
|
||
}
|
||
}
|
||
},
|
||
"example": {
|
||
"id": "string",
|
||
"choices": [
|
||
{
|
||
"index": 0,
|
||
"text": "string"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"HealthState": {
|
||
"type": "object",
|
||
"required": [
|
||
"device",
|
||
"arch",
|
||
"cpu_info",
|
||
"cpu_count",
|
||
"cuda_devices",
|
||
"version"
|
||
],
|
||
"properties": {
|
||
"model": {
|
||
"type": "string",
|
||
"nullable": true
|
||
},
|
||
"chat_model": {
|
||
"type": "string",
|
||
"nullable": true
|
||
},
|
||
"device": {
|
||
"type": "string"
|
||
},
|
||
"arch": {
|
||
"type": "string"
|
||
},
|
||
"cpu_info": {
|
||
"type": "string"
|
||
},
|
||
"cpu_count": {
|
||
"type": "integer",
|
||
"minimum": 0
|
||
},
|
||
"cuda_devices": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"version": {
|
||
"$ref": "#/components/schemas/Version"
|
||
}
|
||
}
|
||
},
|
||
"Hit": {
|
||
"type": "object",
|
||
"required": [
|
||
"score",
|
||
"doc",
|
||
"id"
|
||
],
|
||
"properties": {
|
||
"score": {
|
||
"type": "number",
|
||
"format": "float"
|
||
},
|
||
"doc": {
|
||
"$ref": "#/components/schemas/HitDocument"
|
||
},
|
||
"id": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"minimum": 0
|
||
}
|
||
}
|
||
},
|
||
"HitDocument": {
|
||
"type": "object",
|
||
"required": [
|
||
"body",
|
||
"filepath",
|
||
"git_url",
|
||
"kind",
|
||
"language",
|
||
"name"
|
||
],
|
||
"properties": {
|
||
"body": {
|
||
"type": "string"
|
||
},
|
||
"filepath": {
|
||
"type": "string"
|
||
},
|
||
"git_url": {
|
||
"type": "string"
|
||
},
|
||
"kind": {
|
||
"type": "string"
|
||
},
|
||
"language": {
|
||
"type": "string"
|
||
},
|
||
"name": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"LogEventRequest": {
|
||
"type": "object",
|
||
"required": [
|
||
"type",
|
||
"completion_id",
|
||
"choice_index"
|
||
],
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"description": "Event type, should be `view` or `select`.",
|
||
"example": "view"
|
||
},
|
||
"completion_id": {
|
||
"type": "string"
|
||
},
|
||
"choice_index": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"minimum": 0
|
||
}
|
||
}
|
||
},
|
||
"Message": {
|
||
"type": "object",
|
||
"required": [
|
||
"role",
|
||
"content"
|
||
],
|
||
"properties": {
|
||
"role": {
|
||
"type": "string"
|
||
},
|
||
"content": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
},
|
||
"SearchResponse": {
|
||
"type": "object",
|
||
"required": [
|
||
"num_hits",
|
||
"hits"
|
||
],
|
||
"properties": {
|
||
"num_hits": {
|
||
"type": "integer",
|
||
"minimum": 0
|
||
},
|
||
"hits": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/components/schemas/Hit"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"Segments": {
|
||
"type": "object",
|
||
"required": [
|
||
"prefix"
|
||
],
|
||
"properties": {
|
||
"prefix": {
|
||
"type": "string",
|
||
"description": "Content that appears before the cursor in the editor window."
|
||
},
|
||
"suffix": {
|
||
"type": "string",
|
||
"description": "Content that appears after the cursor in the editor window.",
|
||
"nullable": true
|
||
}
|
||
}
|
||
},
|
||
"Snippet": {
|
||
"type": "object",
|
||
"required": [
|
||
"filepath",
|
||
"body",
|
||
"score"
|
||
],
|
||
"properties": {
|
||
"filepath": {
|
||
"type": "string"
|
||
},
|
||
"body": {
|
||
"type": "string"
|
||
},
|
||
"score": {
|
||
"type": "number",
|
||
"format": "float"
|
||
}
|
||
}
|
||
},
|
||
"Version": {
|
||
"type": "object",
|
||
"required": [
|
||
"build_date",
|
||
"build_timestamp",
|
||
"git_sha",
|
||
"git_describe"
|
||
],
|
||
"properties": {
|
||
"build_date": {
|
||
"type": "string"
|
||
},
|
||
"build_timestamp": {
|
||
"type": "string"
|
||
},
|
||
"git_sha": {
|
||
"type": "string"
|
||
},
|
||
"git_describe": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|