2023-07-11 06:02:58 +00:00
{
"openapi" : "3.0.3" ,
"info" : {
"title" : "Tabby Server" ,
"description" : "\n[](https://github.com/TabbyML/tabby)\n\nOpenAPI documentation for [tabby](https://github.com/TabbyML/tabby), a self-hosted AI coding assistant." ,
2023-09-05 07:06:35 +00:00
"license" : { "name" : "Apache 2.0" , "url" : "https://github.com/TabbyML/tabby/blob/main/LICENSE" } ,
2023-07-11 06:02:58 +00:00
"version" : "0.1.0"
} ,
"servers" : [
2023-09-05 07:06:35 +00:00
{ "url" : "https://playground.app.tabbyml.com" , "description" : "Playground server" } ,
{ "url" : "http://localhost:8080" , "description" : "Local server" }
2023-07-11 06:02:58 +00:00
] ,
"paths" : {
"/v1/completions" : {
"post" : {
2023-07-13 08:31:20 +00:00
"tags" : [ "v1" ] ,
2023-07-11 06:02:58 +00:00
"operationId" : "completion" ,
"requestBody" : {
2023-09-05 07:06:35 +00:00
"content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CompletionRequest" } } } ,
2023-07-11 06:02:58 +00:00
"required" : true
} ,
"responses" : {
"200" : {
"description" : "Success" ,
2023-08-17 14:28:41 +00:00
"content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/CompletionResponse" } } }
2023-07-11 06:02:58 +00:00
} ,
2023-08-17 14:28:41 +00:00
"400" : { "description" : "Bad Request" }
2023-07-11 06:02:58 +00:00
}
}
} ,
"/v1/events" : {
"post" : {
2023-07-13 08:31:20 +00:00
"tags" : [ "v1" ] ,
2023-07-11 06:02:58 +00:00
"operationId" : "event" ,
"requestBody" : {
2023-08-17 14:28:41 +00:00
"content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/LogEventRequest" } } } ,
2023-07-11 06:02:58 +00:00
"required" : true
} ,
2023-08-17 14:28:41 +00:00
"responses" : { "200" : { "description" : "Success" } , "400" : { "description" : "Bad Request" } }
2023-07-11 06:02:58 +00:00
}
} ,
"/v1/health" : {
"post" : {
2023-07-13 08:31:20 +00:00
"tags" : [ "v1" ] ,
2023-07-11 06:02:58 +00:00
"operationId" : "health" ,
"responses" : {
"200" : {
"description" : "Success" ,
2023-08-17 14:28:41 +00:00
"content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/HealthState" } } }
2023-07-11 06:02:58 +00:00
}
}
}
}
} ,
"components" : {
"schemas" : {
"Choice" : {
"type" : "object" ,
2023-07-13 08:31:20 +00:00
"required" : [ "index" , "text" ] ,
2023-07-11 06:02:58 +00:00
"properties" : {
2023-08-17 14:28:41 +00:00
"index" : { "type" : "integer" , "format" : "int32" , "minimum" : 0.0 } ,
"text" : { "type" : "string" }
2023-07-11 06:02:58 +00:00
}
} ,
"CompletionRequest" : {
"type" : "object" ,
"properties" : {
2023-08-17 14:28:41 +00:00
"prompt" : { "type" : "string" , "example" : "def fib(n):" , "nullable" : true } ,
2023-07-11 06:02:58 +00:00
"language" : {
"type" : "string" ,
"description" : "Language identifier, full list is maintained at\nhttps://code.visualstudio.com/docs/languages/identifiers" ,
"example" : "python" ,
"nullable" : true
} ,
2023-08-17 14:28:41 +00:00
"segments" : { "allOf" : [ { "$ref" : "#/components/schemas/Segments" } ] , "nullable" : true } ,
"user" : { "type" : "string" , "nullable" : true }
2023-07-11 06:02:58 +00:00
} ,
"example" : {
"language" : "python" ,
2023-08-17 14:28:41 +00:00
"segments" : { "prefix" : "def fib(n):\n " , "suffix" : "\n return fib(n - 1) + fib(n - 2)" }
2023-07-11 06:02:58 +00:00
}
} ,
"CompletionResponse" : {
"type" : "object" ,
2023-07-13 08:31:20 +00:00
"required" : [ "id" , "choices" ] ,
2023-07-11 06:02:58 +00:00
"properties" : {
2023-08-17 14:28:41 +00:00
"id" : { "type" : "string" } ,
"choices" : { "type" : "array" , "items" : { "$ref" : "#/components/schemas/Choice" } }
2023-07-11 06:02:58 +00:00
}
} ,
"HealthState" : {
"type" : "object" ,
2023-09-05 07:06:35 +00:00
"required" : [ "model" , "device" , "compute_type" , "arch" , "cpu_info" , "cpu_count" , "cuda_devices" , "version" ] ,
2023-07-11 06:02:58 +00:00
"properties" : {
2023-08-17 14:28:41 +00:00
"model" : { "type" : "string" } ,
"device" : { "type" : "string" } ,
"compute_type" : { "type" : "string" } ,
"arch" : { "type" : "string" } ,
"cpu_info" : { "type" : "string" } ,
2023-09-05 07:06:35 +00:00
"cpu_count" : { "type" : "integer" , "minimum" : 0.0 } ,
"cuda_devices" : { "type" : "array" , "items" : { "type" : "string" } } ,
"version" : { "$ref" : "#/components/schemas/Version" }
2023-07-11 06:02:58 +00:00
}
} ,
"LogEventRequest" : {
"type" : "object" ,
2023-07-13 08:31:20 +00:00
"required" : [ "type" , "completion_id" , "choice_index" ] ,
2023-07-11 06:02:58 +00:00
"properties" : {
2023-08-17 14:28:41 +00:00
"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.0 }
2023-07-11 06:02:58 +00:00
}
} ,
"Segments" : {
"type" : "object" ,
2023-07-13 08:31:20 +00:00
"required" : [ "prefix" ] ,
2023-07-11 06:02:58 +00:00
"properties" : {
2023-08-17 14:28:41 +00:00
"prefix" : { "type" : "string" , "description" : "Content that appears before the cursor in the editor window." } ,
2023-07-11 06:02:58 +00:00
"suffix" : {
"type" : "string" ,
"description" : "Content that appears after the cursor in the editor window." ,
"nullable" : true
}
}
2023-09-05 07:06:35 +00:00
} ,
"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" }
}
2023-07-11 06:02:58 +00:00
}
}
}
}