---
updatedAt: 2025-09-02T07:17:19.000Z
agentTools:
  projectIndex: https://jamaibase.readme.io/llms.txt
---

# Create an action table.

Permissions: `organization.MEMBER` OR `project.MEMBER`.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "JamAI Base API",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "0.1.0",
    "x-logo": {
      "url": "https://www.jamaibase.com/favicon.svg"
    }
  },
  "servers": [
    {
      "url": "https://api.jamaibase.com"
    }
  ],
  "paths": {
    "/api/v1/gen_tables/action": {
      "post": {
        "tags": [
          "Generative Table (V1)"
        ],
        "summary": "Create an action table.",
        "description": "Permissions: `organization.MEMBER` OR `project.MEMBER`.",
        "operationId": "create_action_table_api_v1_gen_tables_action_post",
        "deprecated": true,
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User PAT or service key.",
              "title": "Authorization"
            },
            "description": "User PAT or service key."
          },
          {
            "name": "X-USER-ID",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "description": "User ID. Can be omitted if PAT is used as token.",
              "default": "",
              "title": "X-User-Id"
            },
            "description": "User ID. Can be omitted if PAT is used as token."
          },
          {
            "name": "X-PROJECT-ID",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Project ID. Can be omitted if PAT is used as token.",
              "default": "",
              "title": "X-Project-Id"
            },
            "description": "Project ID. Can be omitted if PAT is used as token."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionTableSchemaCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetaResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ActionTableSchemaCreate": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9]([A-Za-z0-9.?!@#$%^&*_()\\- ]*[A-Za-z0-9.?!()\\-])?$",
            "title": "Id",
            "description": "Table name."
          },
          "cols": {
            "items": {
              "$ref": "#/components/schemas/ColumnSchemaCreate"
            },
            "type": "array",
            "title": "Cols",
            "description": "List of column schema."
          },
          "version": {
            "type": "string",
            "title": "Version",
            "description": "Table version, following jamaibase version.",
            "default": "0.5.0"
          }
        },
        "type": "object",
        "required": [
          "id",
          "cols"
        ],
        "title": "ActionTableSchemaCreate"
      },
      "ColumnDtypeCreate": {
        "type": "string",
        "enum": [
          "int",
          "float",
          "bool",
          "str",
          "image",
          "audio",
          "document"
        ],
        "title": "ColumnDtypeCreate"
      },
      "ColumnSchema": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Column name."
          },
          "dtype": {
            "type": "string",
            "title": "Dtype",
            "description": "Column data type.",
            "default": "str"
          },
          "vlen": {
            "type": "integer",
            "minimum": 0,
            "title": "Vlen",
            "description": "_Optional_. Vector length. If this is larger than zero, then `dtype` must be one of the floating data types. Defaults to zero.",
            "default": 0
          },
          "index": {
            "type": "boolean",
            "title": "Index",
            "description": "_Optional_. Whether to build full-text-search (FTS) or vector index for this column. Only applies to string and vector columns. Defaults to True.",
            "default": true
          },
          "gen_config": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PythonGenConfig"
                  },
                  {
                    "$ref": "#/components/schemas/LLMGenConfig-Output"
                  },
                  {
                    "$ref": "#/components/schemas/EmbedGenConfig"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Gen Config",
            "description": "_Optional_. Generation config. If provided, then this column will be an \"Output Column\". Table columns on its left can be referenced by `${column-name}`."
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "ColumnSchema"
      },
      "ColumnSchemaCreate": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9]([A-Za-z0-9.?!@#$%^&*_()\\- ]*[A-Za-z0-9.?!()\\-])?$",
            "title": "Id",
            "description": "Column name."
          },
          "dtype": {
            "$ref": "#/components/schemas/ColumnDtypeCreate",
            "description": "Column data type, one of ['int', 'float', 'bool', 'str', 'image', 'audio', 'document'].",
            "default": "str"
          },
          "vlen": {
            "type": "integer",
            "minimum": 0,
            "title": "Vlen",
            "description": "_Optional_. Vector length. If this is larger than zero, then `dtype` must be one of the floating data types. Defaults to zero.",
            "default": 0
          },
          "index": {
            "type": "boolean",
            "title": "Index",
            "description": "_Optional_. Whether to build full-text-search (FTS) or vector index for this column. Only applies to string and vector columns. Defaults to True.",
            "default": true
          },
          "gen_config": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PythonGenConfig"
                  },
                  {
                    "$ref": "#/components/schemas/LLMGenConfig-Input"
                  },
                  {
                    "$ref": "#/components/schemas/EmbedGenConfig"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Gen Config",
            "description": "_Optional_. Generation config. If provided, then this column will be an \"Output Column\". Table columns on its left can be referenced by `${column-name}`."
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "ColumnSchemaCreate"
      },
      "EmbedGenConfig": {
        "properties": {
          "object": {
            "type": "string",
            "const": "gen_config.embed",
            "title": "Object",
            "description": "The object type, which is always \"gen_config.embed\".",
            "default": "gen_config.embed",
            "examples": [
              "gen_config.embed"
            ]
          },
          "embedding_model": {
            "type": "string",
            "title": "Embedding Model",
            "description": "The embedding model to use.",
            "examples": [
              "openai/text-embedding-3-small-512",
              "ellm/sentence-transformers/all-MiniLM-L6-v2"
            ]
          },
          "source_column": {
            "type": "string",
            "title": "Source Column",
            "description": "The source column for embedding.",
            "examples": [
              "text_column"
            ]
          }
        },
        "type": "object",
        "required": [
          "embedding_model",
          "source_column"
        ],
        "title": "EmbedGenConfig"
      },
      "FunctionParameter": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type",
            "description": "The type of the parameter, e.g., 'string', 'number'.",
            "default": ""
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "A description of the parameter.",
            "default": ""
          },
          "enum": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Enum",
            "description": "An optional list of allowed values for the parameter.",
            "default": []
          }
        },
        "type": "object",
        "title": "FunctionParameter"
      },
      "FunctionParameters": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type",
            "description": "The type of the parameters object, usually 'object'.",
            "default": "object"
          },
          "properties": {
            "additionalProperties": {
              "$ref": "#/components/schemas/FunctionParameter"
            },
            "type": "object",
            "title": "Properties",
            "description": "The properties of the parameters object."
          },
          "required": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Required",
            "description": "A list of required parameter names."
          },
          "additionalProperties": {
            "type": "boolean",
            "title": "Additionalproperties",
            "description": "Whether additional properties are allowed.",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "properties",
          "required"
        ],
        "title": "FunctionParameters"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "LLMGenConfig-Input": {
        "properties": {
          "model": {
            "type": "string",
            "title": "Model",
            "description": "ID of the model to use. Defaults to \"\".",
            "default": ""
          },
          "rag_params": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RAGParams"
              },
              {
                "type": "null"
              }
            ],
            "description": "Retrieval Augmented Generation params. Defaults to None (disabled).",
            "examples": [
              {
                "concat_reranker_input": false,
                "inline_citations": true,
                "k": 3,
                "rerank": true,
                "search_query": "",
                "table_id": "papers"
              },
              null
            ]
          },
          "tools": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/Tool-Input"
                },
                "type": "array",
                "minItems": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Tools",
            "description": "A list of tools available for the chat model to use.",
            "examples": [
              [
                {
                  "function": {
                    "description": "Get current temperature for a given location.",
                    "name": "get_weather",
                    "parameters": {
                      "additionalProperties": false,
                      "properties": {
                        "location": {
                          "description": "City and country e.g. Bogotá, Colombia",
                          "enum": [],
                          "type": "string"
                        }
                      },
                      "required": [
                        "location"
                      ],
                      "type": "object"
                    },
                    "strict": false
                  },
                  "type": "function"
                }
              ]
            ]
          },
          "tool_choice": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "none",
                  "auto",
                  "required"
                ]
              },
              {
                "$ref": "#/components/schemas/ToolChoice"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tool Choice",
            "description": "Controls which (if any) tool is called by the model. `\"none\"` means the model will not call any tool and instead generates a message. `\"auto\"` means the model can pick between generating a message or calling one or more tools. `\"required\"` means the model must call one or more tools. Specifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}` forces the model to call that tool. `\"none\"` is the default when no tools are present. `\"auto\"` is the default if tools are present.",
            "examples": [
              "auto",
              {
                "function": {
                  "name": "get_delivery_date"
                },
                "type": "function"
              }
            ]
          },
          "temperature": {
            "type": "number",
            "minimum": 0.001,
            "title": "Temperature",
            "description": "What sampling temperature to use. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models and Anthropic with extended thinking.",
            "default": 0.2,
            "examples": [
              0.2
            ]
          },
          "top_p": {
            "type": "number",
            "minimum": 0.001,
            "title": "Top P",
            "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models and Anthropic with extended thinking.",
            "default": 0.6,
            "examples": [
              0.6
            ]
          },
          "stream": {
            "type": "boolean",
            "title": "Stream",
            "description": "If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as server-sent events (SSE) as they become available, with the stream terminated by a `data: [DONE]` message.",
            "default": true,
            "examples": [
              true,
              false
            ]
          },
          "max_tokens": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "title": "Max Tokens",
            "description": "The maximum number of tokens to generate in the chat completion. Must be in [1, context_length - 1). Default is 2048. The total length of input tokens and generated tokens is limited by the model's context length.",
            "default": 2048,
            "examples": [
              2048
            ]
          },
          "stop": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array",
                "minItems": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Stop",
            "description": "A list of sequences where the API will stop generating further tokens. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "examples": [
              null
            ]
          },
          "presence_penalty": {
            "type": "number",
            "title": "Presence Penalty",
            "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "default": 0,
            "examples": [
              0
            ]
          },
          "frequency_penalty": {
            "type": "number",
            "title": "Frequency Penalty",
            "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "default": 0,
            "examples": [
              0
            ]
          },
          "logit_bias": {
            "additionalProperties": true,
            "type": "object",
            "title": "Logit Bias",
            "description": "Modify the likelihood of specified tokens appearing in the completion. Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "default": {},
            "examples": [
              {}
            ]
          },
          "object": {
            "type": "string",
            "const": "gen_config.llm",
            "title": "Object",
            "description": "The object type, which is always \"gen_config.llm\".",
            "default": "gen_config.llm",
            "examples": [
              "gen_config.llm"
            ]
          },
          "system_prompt": {
            "type": "string",
            "title": "System Prompt",
            "description": "System prompt for the LLM.",
            "default": ""
          },
          "prompt": {
            "type": "string",
            "title": "Prompt",
            "description": "Prompt for the LLM.",
            "default": ""
          },
          "multi_turn": {
            "type": "boolean",
            "title": "Multi Turn",
            "description": "Whether this column is a multi-turn chat with history along the entire column.",
            "default": false
          }
        },
        "type": "object",
        "title": "LLMGenConfig"
      },
      "LLMGenConfig-Output": {
        "properties": {
          "model": {
            "type": "string",
            "title": "Model",
            "description": "ID of the model to use. Defaults to \"\".",
            "default": ""
          },
          "rag_params": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RAGParams"
              },
              {
                "type": "null"
              }
            ],
            "description": "Retrieval Augmented Generation params. Defaults to None (disabled).",
            "examples": [
              {
                "concat_reranker_input": false,
                "inline_citations": true,
                "k": 3,
                "rerank": true,
                "search_query": "",
                "table_id": "papers"
              },
              null
            ]
          },
          "tools": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/Tool-Output"
                },
                "type": "array",
                "minItems": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Tools",
            "description": "A list of tools available for the chat model to use.",
            "examples": [
              [
                {
                  "function": {
                    "description": "Get current temperature for a given location.",
                    "name": "get_weather",
                    "parameters": {
                      "additionalProperties": false,
                      "properties": {
                        "location": {
                          "description": "City and country e.g. Bogotá, Colombia",
                          "enum": [],
                          "type": "string"
                        }
                      },
                      "required": [
                        "location"
                      ],
                      "type": "object"
                    },
                    "strict": false
                  },
                  "type": "function"
                }
              ]
            ]
          },
          "tool_choice": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "none",
                  "auto",
                  "required"
                ]
              },
              {
                "$ref": "#/components/schemas/ToolChoice"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tool Choice",
            "description": "Controls which (if any) tool is called by the model. `\"none\"` means the model will not call any tool and instead generates a message. `\"auto\"` means the model can pick between generating a message or calling one or more tools. `\"required\"` means the model must call one or more tools. Specifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}` forces the model to call that tool. `\"none\"` is the default when no tools are present. `\"auto\"` is the default if tools are present.",
            "examples": [
              "auto",
              {
                "function": {
                  "name": "get_delivery_date"
                },
                "type": "function"
              }
            ]
          },
          "temperature": {
            "type": "number",
            "minimum": 0.001,
            "title": "Temperature",
            "description": "What sampling temperature to use. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models and Anthropic with extended thinking.",
            "default": 0.2,
            "examples": [
              0.2
            ]
          },
          "top_p": {
            "type": "number",
            "minimum": 0.001,
            "title": "Top P",
            "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models and Anthropic with extended thinking.",
            "default": 0.6,
            "examples": [
              0.6
            ]
          },
          "stream": {
            "type": "boolean",
            "title": "Stream",
            "description": "If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as server-sent events (SSE) as they become available, with the stream terminated by a `data: [DONE]` message.",
            "default": true,
            "examples": [
              true,
              false
            ]
          },
          "max_tokens": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "title": "Max Tokens",
            "description": "The maximum number of tokens to generate in the chat completion. Must be in [1, context_length - 1). Default is 2048. The total length of input tokens and generated tokens is limited by the model's context length.",
            "default": 2048,
            "examples": [
              2048
            ]
          },
          "stop": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array",
                "minItems": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Stop",
            "description": "A list of sequences where the API will stop generating further tokens. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "examples": [
              null
            ]
          },
          "presence_penalty": {
            "type": "number",
            "title": "Presence Penalty",
            "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "default": 0,
            "examples": [
              0
            ]
          },
          "frequency_penalty": {
            "type": "number",
            "title": "Frequency Penalty",
            "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "default": 0,
            "examples": [
              0
            ]
          },
          "logit_bias": {
            "additionalProperties": true,
            "type": "object",
            "title": "Logit Bias",
            "description": "Modify the likelihood of specified tokens appearing in the completion. Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. Note that this parameter will be ignored for models that do not support it, such as OpenAI's reasoning models.",
            "default": {},
            "examples": [
              {}
            ]
          },
          "object": {
            "type": "string",
            "const": "gen_config.llm",
            "title": "Object",
            "description": "The object type, which is always \"gen_config.llm\".",
            "default": "gen_config.llm",
            "examples": [
              "gen_config.llm"
            ]
          },
          "system_prompt": {
            "type": "string",
            "title": "System Prompt",
            "description": "System prompt for the LLM.",
            "default": ""
          },
          "prompt": {
            "type": "string",
            "title": "Prompt",
            "description": "Prompt for the LLM.",
            "default": ""
          },
          "multi_turn": {
            "type": "boolean",
            "title": "Multi Turn",
            "description": "Whether this column is a multi-turn chat with history along the entire column.",
            "default": false
          }
        },
        "type": "object",
        "title": "LLMGenConfig"
      },
      "PythonGenConfig": {
        "properties": {
          "object": {
            "type": "string",
            "const": "gen_config.python",
            "title": "Object",
            "description": "The object type, which is always \"gen_config.python\".",
            "default": "gen_config.python",
            "examples": [
              "gen_config.python"
            ]
          },
          "python_code": {
            "type": "string",
            "title": "Python Code",
            "description": "The python code to execute.",
            "examples": [
              "row['output_column']='Hello World!'"
            ]
          }
        },
        "type": "object",
        "required": [
          "python_code"
        ],
        "title": "PythonGenConfig"
      },
      "RAGParams": {
        "properties": {
          "table_id": {
            "type": "string",
            "title": "Table Id",
            "description": "Knowledge Table ID",
            "default": "",
            "examples": [
              "my-dataset"
            ]
          },
          "reranking_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reranking Model",
            "description": "Reranking model to use for hybrid search. Defaults to None (no reranking).",
            "examples": [
              "cohere/rerank-multilingual-v3.0",
              null
            ]
          },
          "search_query": {
            "type": "string",
            "title": "Search Query",
            "description": "Query used to retrieve items from the Knowledge Table. If not provided (default), it will be generated using LLM.",
            "default": ""
          },
          "k": {
            "type": "integer",
            "maximum": 1024,
            "exclusiveMinimum": 0,
            "title": "K",
            "description": "Top-k closest text in terms of embedding distance. Must be in [1, 1024]. Defaults to 3.",
            "default": 3,
            "examples": [
              3
            ]
          },
          "rerank": {
            "type": "boolean",
            "title": "Rerank",
            "description": "(Deprecated) Flag to perform rerank on the retrieved results. Defaults to True.",
            "default": true,
            "deprecated": true,
            "examples": [
              true,
              false
            ]
          },
          "concat_reranker_input": {
            "type": "boolean",
            "title": "Concat Reranker Input",
            "description": "Flag to concat title and content as reranker input. Defaults to False.",
            "default": false,
            "examples": [
              true,
              false
            ]
          },
          "inline_citations": {
            "type": "boolean",
            "title": "Inline Citations",
            "description": "If True, the model will cite sources as it writes using Pandoc-style in the form of `[@<number>]`. The number is the index of the source in the reference list, ie `[@0; @3]` means the 1st and 4th source in `References.chunks`. Defaults to True.",
            "default": true,
            "examples": [
              true,
              false
            ]
          }
        },
        "type": "object",
        "title": "RAGParams"
      },
      "TableMetaResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Table name."
          },
          "meta": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Meta",
            "description": "Additional metadata about the table."
          },
          "cols": {
            "items": {
              "$ref": "#/components/schemas/ColumnSchema"
            },
            "type": "array",
            "title": "Cols",
            "description": "List of column schema."
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id",
            "description": "The parent table ID. If None (default), it means this is a parent table."
          },
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Chat title. Defaults to \"\"."
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By",
            "description": "ID of the user that created this table. Defaults to None."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At",
            "description": "Table last update datetime (UTC)."
          },
          "num_rows": {
            "type": "integer",
            "title": "Num Rows",
            "description": "Number of rows in the table. Defaults to -1 (not counted).",
            "default": -1
          },
          "version": {
            "type": "string",
            "title": "Version",
            "description": "Version."
          },
          "indexed_at_fts": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Indexed At Fts",
            "description": "Table last FTS index timestamp (ISO 8601 UTC)."
          },
          "indexed_at_vec": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Indexed At Vec",
            "description": "Table last vector index timestamp (ISO 8601 UTC)."
          },
          "indexed_at_sca": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Indexed At Sca",
            "description": "Table last scalar index timestamp (ISO 8601 UTC)."
          }
        },
        "type": "object",
        "required": [
          "id",
          "cols",
          "parent_id",
          "title",
          "updated_at",
          "version"
        ],
        "title": "TableMetaResponse"
      },
      "Tool-Input": {
        "properties": {
          "type": {
            "type": "string",
            "const": "function",
            "title": "Type",
            "description": "The type of the tool. Currently, only `function` is supported.",
            "default": "function"
          },
          "function": {
            "$ref": "#/components/schemas/ToolFunction-Input"
          }
        },
        "type": "object",
        "required": [
          "function"
        ],
        "title": "Tool"
      },
      "Tool-Output": {
        "properties": {
          "type": {
            "type": "string",
            "const": "function",
            "title": "Type",
            "description": "The type of the tool. Currently, only `function` is supported.",
            "default": "function"
          },
          "function": {
            "$ref": "#/components/schemas/ToolFunction-Output"
          }
        },
        "type": "object",
        "required": [
          "function"
        ],
        "title": "Tool"
      },
      "ToolChoice": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type",
            "description": "The type of the tool. Currently, only `function` is supported.",
            "default": "function"
          },
          "function": {
            "$ref": "#/components/schemas/ToolChoiceFunction",
            "description": "The function that should be called."
          }
        },
        "type": "object",
        "required": [
          "function"
        ],
        "title": "ToolChoice"
      },
      "ToolChoiceFunction": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the function to call."
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ToolChoiceFunction"
      },
      "ToolFunction-Input": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 64,
            "title": "Name",
            "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description",
            "description": "A description of what the function does, used by the model to choose when and how to call the function."
          },
          "parameters": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FunctionParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "The parameters the functions accepts, described as a JSON Schema object."
          },
          "strict": {
            "type": "boolean",
            "title": "Strict",
            "description": "Whether to enable strict schema adherence when generating the function call. If set to `true`, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`.",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ToolFunction"
      },
      "ToolFunction-Output": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 64,
            "title": "Name",
            "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description",
            "description": "A description of what the function does, used by the model to choose when and how to call the function."
          },
          "parameters": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FunctionParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "The parameters the functions accepts, described as a JSON Schema object."
          },
          "strict": {
            "type": "boolean",
            "title": "Strict",
            "description": "Whether to enable strict schema adherence when generating the function call. If set to `true`, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`.",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ToolFunction"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      }
    },
    "securitySchemes": {
      "Authentication": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "security": [
    {
      "Authentication": []
    }
  ]
}
```