diff --git a/docs/callbacks.mdx b/docs/callbacks.mdx
deleted file mode 100644
index 85d9f186f07..00000000000
--- a/docs/callbacks.mdx
+++ /dev/null
@@ -1,318 +0,0 @@
----
-title: Callbacks
-sidebarTitle: Callbacks
----
-
-Callbacks enable the retrieval of a model's status when it transitions to either 'complete' or 'error'. This is accomplished by sending a POST request to the specified URL, with the payload structured as follows:
-
-```json
-{
- "name": "my_model",
- "version": 1,
- "active": true,
- "predictor_id": 123,
- "project_name": "mindsdb",
- "predictor_created_at": "Fri, 09 Sep 2023 11:50:27 GMT",
- "old_status": "training",
- "new_status": "complete",
- "changed_at": "Fri, 09 Sep 2023 11:59:00 GMT"
-}
-```
-
-Let's break down each key:
- - `name`: name of the model
- - `version`: version of the trained model
- - `active`: indicates whether the newly trained model is active
- - `predictor_id`: unique identifier for the trained model
- - `project_name`: the name of the project in which the model was created
- - `predictor_created_at`: time at which the model was created
- - `old_status`: status the model had prior to receiving the `new_status`
- - `new_status`: current status of the model
- - `changed_at`: time when the model's status transitioned from `old_status` to `new_status`
-
-
-Please note that this feature works only in MinsdDB Cloud and only for [MindsDB Starter](/setup/cloud-starter) users.
-
-
-## Callbacks API
-
-Callback API provides information on how to add, get, edit, and delete callbacks.
-
-### Add a Callback
-
-This is the Request format:
-
-```json
-POST /cloud/callback/model_status
-Content-Type: application/json
-{
- // url will be called on model status change
- "url": "https://my.endpoint.com/",
- "filter": {
- "model_name": ".*",
- "project_name": ".*"
- },
- "attempt": {
- "count": 5,
- "http_timeout": 10,
- "interval": 10
- }
-}
-```
-
-And this is the Response format:
-
-```json
-Status: 200 OK
-Content-Type: application/json
-{
- // id of created 'callback'
- "id": 123456
-}
-```
-
-Only the `url` key is required in the Request. All others are optional.
- - `url` - this represents the address that will be utilized to send a POST request, containing detailed information about the model's status
- - `filter` - this is used to restrict the triggering of callbacks:
- - `model_name` - python-style regular expression used to filter the names of models that trigger a callback
- - `project_name` - python-style regular expression used to filter the names of projects
- - `attempt` - this outlines the configuration of the number and frequency of attempts to send callbacks
- - `count` - maximum number of attempts
- - `interval` - represents the interval between failed attempts
- - `http_timeout` - time allotted to wait for a successful response.
-
-### Get a Callback
-
-This is the Request format:
-
-```json
-GET /cloud/callback/model_status
-```
-
-And this is the Response format:
-
-```json
-Status: 200 OK
-Content-Type: application/json
-[{
- "id": 123456,
- "created_at": "Fri, 09 Sep 2023 11:50:27 GMT",
- "url": "https://my.endpoint.com/"
-}]
-```
-
-### Edit a Callback
-
-This is the Request format:
-
-```json
-PUT /cloud/callback/model_status/
-Content-Type: application/json
-{
- // new callback url
- "url": "https://my.endpoint.com/"
-}
-```
-
-And this is the Response format:
-
-```json
-Status: 200 OK
-```
-
-### Delete a Callback
-
-This is the Request format:
-
-```json
-DELETE /cloud/callback/model_status/
-```
-
-And this is the Response format:
-
-```json
-Status: 200 OK
-```
-
-## Handling Callbacks using Python SDK
-
-Below is an example of using callbacks with the `home_rentals` model. Be sure that your endpoint `HOSTNAME` is accessible from the internet.
-
-
-Please note that `localhost` is not accessible from the internet - you can make `localhost` accessible via multiple ways, like [ngrok tunnel](https://ngrok.com/).
-
-
-```python
-import requests
-import mindsdb_sdk
-from flask import Flask, request
-
-MODEL_NAME = 'home_rentals'
-HOSTNAME = 'my.endpoint.com'
-PORT = 5000
-
-app = Flask(__name__)
-
-con = mindsdb_sdk.connect(
- 'https://cloud.mindsdb.com',
- login='name@email.com',
- password='password'
-)
-
-# add callback
-con.api.session.post(
- 'https://cloud.mindsdb.com/cloud/callback/model_status',
- json={
- 'url': f'https://{HOSTNAME}:{PORT}/'
- }
-)
-
-@app.route('/', methods=['POST'])
-def callback():
- data = request.json
- if data['version'] == 1:
- # let retrain the model
- model = con.models.get(MODEL_NAME)
- model.retrain()
- elif data['version'] == 2:
- # let make a prediciton
- model = con.models.get(MODEL_NAME)
- prediction = model.predict({"sqft": 1000})
- print(prediction)
- return '', 200
-
-# connect to database
-db = con.databases.create(
- 'example_db',
- engine='postgres',
- connection_args={
- "user": "demo_user",
- "password": "demo_password",
- "host": "samples.mindsdb.com",
- "port": "5432",
- "database": "demo"
- }
-)
-
-# train base model
-model = con.models.create(
- MODEL_NAME,
- predict='rental_price',
- query=db.tables.get('demo_data.home_rentals')
-)
-
-if __name__ == '__main__':
- app.run(host='0.0.0.0', port=PORT)
-```
-
-## Handling Callbacks using JavaScript SDK
-
-Below is an example of using callbacks with the `home_rentals` model. Be sure that the callback `HOSTNAME` is accessible from MindsDB Cloud.
-
-```js
-import express from 'express';
-import axios from 'axios';
-import * as MindsDB from 'mindsdb-js-sdk';
-const mdb = MindsDB.default.default;
-
-const app = express();
-const PORT = 54321;
-const MODEL_NAME = 'home_rentals';
-const HOSTNAME = 'my.endpoint.com';
-
-// Create an Axios instance with interceptors for timeout and error handling
-const customAxios = axios.create();
-customAxios.interceptors.request.use(config => {
- config.timeout = 120000; // Set a request timeout of 120 seconds
- return config;
-});
-customAxios.interceptors.response.use(
- response => response,
- error => {
- console.error('Axios Error:', error.message);
- return Promise.reject(error);
- }
-);
-
-// Connect to MindsDB Cloud
-try {
- await mdb.connect({
- host: 'https://cloud.mindsdb.com',
- user: 'name@email.com',
- password: 'password',
- httpClient: customAxios,
- });
-} catch (error) {
- console.error('MindsDB Cloud Connection Error:', error);
- process.exit(1);
-}
-
-// Connect to the database
-await mdb.Databases.createDatabase('example_db', 'postgres', {
- user: 'demo_user',
- password: 'demo_password',
- host: 'samples.mindsdb.com',
- port: '5432',
- database: 'demo',
-});
-
-// Express Middleware to parse JSON requests
-app.use(express.json());
-
-// Define an Express route to handle model status updates
-app.post('/model-status', async (req, res) => {
- const data = req.body;
-
- if (data.new_status !== 'complete') {
- console.error(`Error! Got model status: ${data.new_status}`);
- return res.status(400).send({ error: 'Invalid model status' });
- }
-
- const trained_model_version = data.version;
- console.log(`Model training completed, model version=${trained_model_version}`);
-
- if (trained_model_version === 1) {
- // Base model finished training, let's retrain it
- let model = await mdb.Models.getModel(MODEL_NAME, 'mindsdb');
- model.retrain();
- } else if (trained_model_version === 2) {
- // Model retraining finished, let's make a prediction
- let model = await mdb.Models.getModel(MODEL_NAME, 'mindsdb');
- let prediction = await model.query({
- where: [
- 'sqft = 823',
- 'location = "good"',
- 'neighborhood = "downtown"',
- 'days_on_market = 10',
- ],
- });
- console.log(`Prediction: ${JSON.stringify(prediction)}`);
- }
-
- res.sendStatus(200);
-});
-
-// Start the Express server
-app.listen(PORT, () => {
- console.log(`Express server started on port ${PORT}`);
-});
-
-// Add a callback to notify MindsDB Cloud about the endpoint
-try {
- await customAxios.post('https://cloud.mindsdb.com/cloud/callback/model_status', {
- url: `https://${HOSTNAME}:${PORT}/model-status`,
- });
-} catch (error) {
- console.error('Callback Error:', error);
-}
-
-// Train a model
-try {
- await mdb.Models.trainModel(MODEL_NAME, 'rental_price', 'mindsdb', {
- integration: 'example_db',
- select: 'SELECT * FROM demo_data.home_rentals',
- });
-} catch (error) {
- console.error('Model Training Error:', error);
-}
-```
diff --git a/docs/contribute/ml-handlers.mdx b/docs/contribute/ml-handlers.mdx
deleted file mode 100644
index e9d9013597c..00000000000
--- a/docs/contribute/ml-handlers.mdx
+++ /dev/null
@@ -1,258 +0,0 @@
----
-title: Build an AI/ML Handler
-sidebarTitle: Build an AI/ML Handler
-icon: "gear"
----
-
-In this section, you'll find how to create new machine learning (ML) handlers within MindsDB.
-
-
- **Prerequisite**
-
- You should have the latest version of the MindsDB repository installed locally. Follow [this guide](/contribute/install/) to learn how to install MindsDB for development.
-
-
-## What are Machine Learning Handlers?
-
-ML handlers act as a bridge to any ML framework. You use ML handlers to create ML engines using [the CREATE ML_ENGINE command](/sql/create/ml-engine/). So you can expose ML models from any supported ML engine as an AI table.
-
-
- **Database Handlers**
-
- To learn more about handlers and how to implement a database handler, visit our [doc page here](/contribute/data-handlers/).
-
-
-## Creating a Machine Learning Handler
-
-You can create your own ML handler within MindsDB by inheriting from the [BaseMLEngine](https://github.com/mindsdb/mindsdb/blob/3d9090acb0b8b3b0e2a96e2c93dad436f5ebef90/mindsdb/integrations/libs/base.py#L123) class.
-
-By providing the implementation for some or all of the methods contained in the `BaseMLEngine` class, you can connect with the machine learning library or framework of your choice.
-
-### Core Methods
-
-Apart from the `__init__()` method, there are five methods, of which two must be implemented. We recommend checking actual examples in the codebase to get an idea of what goes into each of these methods, as they can change a bit depending on the nature of the system being integrated.
-
-Let's review the purpose of each method.
-
-| Method | Purpose |
-|-------------------|--------------------------------------------------------------------------------------|
-| `create()` | It creates a model inside the engine registry. |
-| `predict()` | It calls a model and returns prediction data. |
-| `update()` | Optional. It updates an existing model without resetting its internal structure. |
-| `describe()` | Optional. It provides global model insights. |
-| `create_engine()` | Optional. It connects with external sources, such as REST API. |
-
-Authors can opt for adding private methods, new files and folders, or any combination of these to structure all the necessary work that will enable the core methods to work as intended.
-
-
- **Other Common Methods**
-
- Under the `mindsdb.integrations.libs.utils` library, contributors can find various methods that may be useful while implementing new handlers.
-
- Also, there is a wrapper class for the `BaseMLEngine` instances called [BaseMLEngineExec](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/libs/ml_exec_base.py#L157). It is automatically deployed to take care of modifying the data responses into something that can be used alongside data handlers.
-
-
-### Implementation
-
-Here are the methods that must be implemented while inheriting from the [BaseMLEngine](https://github.com/mindsdb/mindsdb/blob/3d9090acb0b8b3b0e2a96e2c93dad436f5ebef90/mindsdb/integrations/libs/base.py#L123) class:
-
-* [The create() method](https://github.com/mindsdb/mindsdb/blob/3d9090acb0b8b3b0e2a96e2c93dad436f5ebef90/mindsdb/integrations/libs/base.py#L151) saves a model inside the engine registry for later usage.
-
-```py
-def create(self, target: str, df: Optional[pd.DataFrame] = None, args: Optional[Dict] = None) -> None:
- """
- Saves a model inside the engine registry for later usage.
- Normally, an input dataframe is required to train the model.
- However, some integrations may merely require registering the model instead of training, in which case `df` can be omitted.
- Any other arguments required to register the model can be passed in an `args` dictionary.
- """
-```
-
-* [The predict() method](https://github.com/mindsdb/mindsdb/blob/3d9090acb0b8b3b0e2a96e2c93dad436f5ebef90/mindsdb/integrations/libs/base.py#L162) calls a model with an input dataframe and optionally, arguments to modify model's behaviour. This method returns a dataframe with the predicted values.
-
-```py
-def predict(self, df: pd.DataFrame, args: Optional[Dict] = None) -> pd.DataFrame:
- """
- Calls a model with some input dataframe `df`, and optionally some arguments `args` that may modify the model behavior.
- The expected output is a dataframe with the predicted values in the target-named column.
- Additional columns can be present, and will be considered row-wise explanations if their names finish with `_explain`.
- """
-```
-
-And here are the optional methods that you can implement alongside the mandatory ones if your ML framework allows it:
-
-* [The update() method](https://github.com/mindsdb/mindsdb/blob/3d9090acb0b8b3b0e2a96e2c93dad436f5ebef90/mindsdb/integrations/libs/base.py#L171) is used to update, fine-tune, or adjust an existing model without resetting its internal state.
-
-```py
-def finetune(self, df: Optional[pd.DataFrame] = None, args: Optional[Dict] = None) -> None:
- """
- Optional.
- Used to update/fine-tune/adjust a pre-existing model without resetting its internal state (e.g. weights).
- Availability will depend on underlying integration support, as not all ML models can be partially updated.
- """
-```
-
-* [The describe() method](https://github.com/mindsdb/mindsdb/blob/3d9090acb0b8b3b0e2a96e2c93dad436f5ebef90/mindsdb/integrations/libs/base.py#L181) provides global model insights, such as framework-level parameters used in training.
-
-```py
-def describe(self, key: Optional[str] = None) -> pd.DataFrame:
- """
- Optional.
- When called, this method provides global model insights, e.g. framework-level parameters used in training.
- """
-```
-
-* [The create_engine() method](https://github.com/mindsdb/mindsdb/blob/3d9090acb0b8b3b0e2a96e2c93dad436f5ebef90/mindsdb/integrations/libs/base.py#L189) is used to connect with the external sources, such as REST API.
-
-```py
-def create_engine(self, connection_args: dict):
- """
- Optional.
- Used to connect with external sources (e.g. a REST API) that the engine will require to use any other methods.
- """
-```
-
-## MindsDB ML Ecosystem
-
-MindsDB has recently decoupled some modules out of its AutoML package in order to leverage them in integrations with other ML engines. The three modules are as follows:
-
-1. The [type_infer](https://github.com/mindsdb/type_infer) module that implements automated type inference for any dataset.
-Below is the description of the input and output of this module.
-**Input:** tabular dataset.
-**Output:** best guesses of what type of data each column contains.
-
-2. The [dataprep_ml](https://github.com/mindsdb/dataprep_ml) module that provides data preparation utilities, such as data cleaning, analysis, and splitting. Data cleaning procedures include column-wise cleaners, column-wise missing value imputers, and data splitters (train-val-test split, either simple or stratified).
-Below is the description of the input and output of this module.
-**Input:** tabular dataset.
-**Output:** cleaned dataset, plus insights useful for data analysis and model building.
-
-3. The [mindsdb_evaluator](https://github.com/mindsdb/mindsdb_evaluator) module that provides utilities for evaluating the accuracy and calibration of ML models.
-Below is the description of the input and output of this module.
-**Input:** model predictions and the input data used to generate these predictions, including corresponding ground truth values of the column to predict.
-**Output:** accuracy metrics that evaluate prediction accuracy and calibration metrics that check whether model-emitted probabilities are calibrated.
-
-We recommend that new contributors use [type_infer](https://github.com/mindsdb/type_infer) and [dataprep_ml](https://github.com/mindsdb/dataprep_ml) modules when writing ML handlers to avoid reimplementing thin AutoML layers over and over again; it is advised to focus on mapping input data and user parameters to the underlying framework’s API.
-
-For now, using the [mindsdb_evaluator](https://github.com/mindsdb/mindsdb_evaluator) module is not required, but will be in the short to medium term, so it’s important to be aware of it while writing a new integration.
-
-
-**Example**
-
-Let’s say you want to write an integration for `TPOT`. Its high-level API exposes classes that are either for classification or regression. But as a handler designer, you need to ensure that arbitrary ML tasks are dispatched properly to each class (i.e., not using a regressor for a classification problem and vice versa). First, `type_infer` can help you by estimating the data type of the target variable (so you immediately know what class to use). Additionally, to quickly get a stratified train-test split, you can leverage `dataprep_ml` splitters and continue to focus on the actual usage of TPOT for the training and inference logic.
-
-
-
-We would appreciate your feedback regarding usage & feature roadmap for the above modules, as they are quite new.
-
-
-## Step-by-Step Instructions
-
-
-
-
-
- 1. Set up MindsDB using the [self-hosted pip](/setup/self-hosted/pip/source) installation method.
- 2. Make sure you can run the [quickstart example](/quickstart) locally. If you run into errors, check your bash terminal output.
- 3. Create a new git branch to store your changes.
-
-
-
-
-
- 1. Check that you can run the existing handler tests with `python -m pytest tests/unit/ml_handlers/`. If you get the `ModuleNotFoundError` error, try adding the `__init__.py` file to any subdirectory that doesn't have it.
-
- 2. Copy the simple tests from a relevant handler.
-
- 3. Change the SQL query to reference your handler. Specifically, set `USING engine={HandlerName}`.
-
- 4. Run your new test. Please note that it should fail as you haven’t yet added your handler. The exception should be `Can't find integration_record for handler ...`.
-
-
-
-
-
- 1. Create a new directory in `mindsdb/integrations/handlers/`. You must name the new directory `{HandlerName}_handler/`.
-
- 2. Copy the `.py` files from the [OpenAI handler folder](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/openai_handler), including: `__about__.py`, `__init__.py`, `openai_handler.py`, `creation_args.py`, and `model_using_args.py`.
-
-
- Note that the arguments used at model creation time (stored in `creation_args.py`) and the arguments used at prediction time (stored in `model_using_args.py`) should be stored in separate files in order to be able to hide sensitive information such as API keys.
-
- By default, when querying for `connection_data` from the `information_schema.ml_engines` table or `training_options` from the `information_schema.models` table, all sensitive information is hidden. To unhide it, use this command:
-
- ```sql
- set show_secrets=true;
- ```
-
-
- 3. Change the contents of `.py` files to match your new handler. Also, change the name of the `statsforecast_handler.py` file to match your handler.
-
- 4. Modify the `requirements.txt` file to install your handler’s dependencies. You may get conflicts with other packages, but you can ignore them for now.
-
- 5. Create a new blank class for your handler in the `{HandlerName}_handler.py` file. Like for other handlers, this should be a subclass of the `BaseMLEngine` class.
-
- 6. Add your new handler class to the testing DB. In the `tests/unit/executor_test_base.py` file starting at line 91, you can see how other handlers are added with `db.session.add(...)`. Copy that and modify it to add your handler.
-
- 7. Run your new test. Please note that it should still fail but with a different exception message.
-
-
-
-
-
- 1. Define a `create()` method that deals with the model setup arguments. This will add your handler to the models table. Depending on the framework, you may also train the model here using the `df` argument.
-
- 2. Save relevant arguments/trained models at the end of your `create` method. This allows them to be accessed later. Use the `engine_storage` attributes; you can find examples in other handlers' folders.
-
- 3. Define a `predict()` method that makes model predictions. This method must return a dataframe with format matching the input, except with a column containing your model’s predictions of the target. The input df is a subset of the original df with the rows determined by the conditions in the predict SQL query.
-
- 4. Don’t debug the `create()` and `predict()` methods with the `print()` statement because they’re inside a subthread. Instead, write relevant info to disk.
-
- 5. Once your first test passes, add new tests for any important cases. You can also add tests for any helper functions you write.
-
-
-
-
-
- 1. Launch the MindsDB server locally with `python -m mindsdb`. Again, any issues will appear in the terminal output.
-
- 2. Check that your handler has been added to the local server database. You can view the list of handlers with `SELECT * from information_schema.handlers`.
-
- 3. Run the relevant tutorial from the panel on the right side. For regular data, this is `Predict Home Rental Prices`. And for time series data, this is `Forecast Quarterly House Sales`. Specify `USING ENGINE={your_handler}` while creating a model.
-
- 4. Don’t debug the `create()` and `predict()` methods with the `print()` statement because they’re inside a subthread. Instead, write relevant info to disk.
-
- 5. You should get sensible results if your handler has been well-implemented. Make sure you try the predict step with a range of parameters.
-
-
-
-
-
- 1. You need to fork the MindsDB repository. Follow [this guide](https://github.com/mindsdb/mindsdb/blob/main/CONTRIBUTING.md) to start a PR.
-
- 2. If relevant, add your tests and new dependencies to the CI config. This is at `.github/workflows/mindsdb.yml`.
-
-
-
-
-
-
-Please note that `pytest` is the recommended testing package. Use `pytest` to confirm your ML handler implementation is correct.
-
-
-
-**Templates for Unit Tests**
-
-If you implement a time-series ML handler, create your unit tests following the structure of the [StatsForecast unit tests](https://github.com/mindsdb/mindsdb/blob/main/tests/unit/ml_handlers/test_statsforecast.py).
-
-If you implement an NLP ML handler, create your unit tests following the structure of the [Hugging Face unit tests](https://github.com/mindsdb/mindsdb/blob/main/tests/unit/ml_handlers/test_huggingface.py).
-
-
-
-## Check out our Machine Learning Handlers!
-
-To see some ML handlers that are currently in use, we encourage you to check out the following ML handlers inside the MindsDB repository:
-
-* [HuggingFace](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/huggingface_handler)
-* [OpenAI](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/handlers/openai_handler)
-
-And here are [all the handlers available in the MindsDB repository](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers).
diff --git a/docs/data_catalog/integrations/overview.mdx b/docs/data_catalog/integrations/overview.mdx
deleted file mode 100644
index 52099e4fe2b..00000000000
--- a/docs/data_catalog/integrations/overview.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: Data Catalog for Integrations
-sidebarTitle: Overview
----
-
-As of now, the Data Catalog is available for the following integrations:
-
-- [Snowflake](/integrations/data-integrations/snowflake)
-- [Salesforce](/integrations/app-integrations/salesforce)
-- [BigQuery](/integrations/data-integrations/google-bigquery)
-- [MS SQL Server](/integrations/data-integrations/microsoft-sql-server)
-- [MySQL](/integrations/app-integrations/mysql)
-- [Oracle](/integrations/data-integrations/oracle)
-- [PostgreSQL](/integrations/data-integrations/postgresql)
-
-### Enabling the Data Catalog
-
-To enable the Data Catalog feature in MindsDB, update your `config.json` file by setting the `data_catalog` flag to `true`:
-
-```json
-{
- "data_catalog": {
- "enabled": true
- }
-}
-```
-
-Follow this doc page to learn how to [start MindsDB with custom configuration](/setup/custom-config).
-
-
-Note that the data catalog is generated for a data source only after this data source is connected to an agent.
-
-Here is an example:
-
-```sql
-CREATE DATABASE snowflake_data
-WITH
- ENGINE = 'snowflake',
- PARAMETERS = {
- "account": "abc123-xyz987",
- "user": "username",
- "password": "password",
- "database": "database_name",
- "schema": "schema_name",
- "warehouse": "warehouse_name"
- };
-
-CREATE AGENT my_agent
-USING
- include_tables= ['snowflake_data.table_name', ...];
-```
-
-Now you can [query the data catalog](/data_catalog/integrations/query) generated for the `snowflake_data` integration.
-
-
-### How It Works
-
-When you create an [agent](/mindsdb_sql/agents/agent) in MindsDB that connects to one of the supported integrations, the Data Catalog automatically:
-
-1. Inspects the data source.
-2. Extracts metadata for all accessible tables and columns.
-3. Stores this information in a dedicated catalog schema (`DATA_CATALOG`).
-4. Makes this metadata available to agents and users via both SQL queries and internal reasoning.
-
-
-**Current Limitations**
-
-This feature is still evolving and has some known limitations:
-
-- **One-Time Snapshot**: Metadata is generated only once—at the time the agent is created. If the data schema changes (e.g., new columns, renamed tables), the Data Catalog will not automatically update. A refresh mechanism is planned in a future release.
-- **No Manual Feedback**: If any metadata appears to be incorrect (e.g., wrong row counts or data types), there is currently no way for users to flag or correct it. A feedback system will be introduced soon.
-
diff --git a/docs/data_catalog/integrations/query.mdx b/docs/data_catalog/integrations/query.mdx
deleted file mode 100644
index 627806ff145..00000000000
--- a/docs/data_catalog/integrations/query.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
----
-title: Querying Data Catalog for Integrations
-sidebarTitle: Querying Data Catalog
----
-
-MindsDB exposes collected metadata from connected data sources via virtual tables in the `INFORMATION_SCHEMA` schema. These views allow users to inspect and query the Data Catalog using familiar SQL syntax.
-
-## Available Data Catalog Tables
-
-To filter results for a specific data integration, use `WHERE TABLE_SCHEMA = ''`.
-
-### `INFORMATION_SCHEMA.META_TABLES`
-
-Provides high-level metadata about available tables in a given integration.
-
-Here are the available columns:
-
-- `TABLE_NAME` (string): Name of the table.
-- `TABLE_TYPE` (string, optional): Type of table (e.g., `BASE TABLE`, `VIEW`).
-- `TABLE_SCHEMA` (string, optional): Schema name or integration name.
-- `TABLE_DESCRIPTION` (string, optional): Description of the table.
-- `ROW_COUNT` (integer, optional): Estimated row count.
-
-Here is how to query it foe a specific data integration:
-
-```sql
-SELECT * FROM INFORMATION_SCHEMA.META_TABLES
-WHERE TABLE_SCHEMA = 'integration_name';
-```
-
-### `INFORMATION_SCHEMA.META_COLUMNS`
-
-Returns detailed column-level metadata for all tables in the specified integration.
-
-Here are the available columns:
-
-- `TABLE_NAME` (string): Name of the table.
-- `COLUMN_NAME` (string): Column name.
-- `DATA_TYPE` (string): Data type of the column.
-- `COLUMN_DESCRIPTION` (string, optional): Description of the column.
-- `IS_NULLABLE` (boolean, optional): Whether nulls are allowed.
-- `COLUMN_DEFAULT` (string, optional): Default value, if any.
-
-Here is how to query it foe a specific data integration:
-
-```sql
-SELECT * FROM INFORMATION_SCHEMA.META_COLUMNS
-WHERE TABLE_SCHEMA = 'integration_name';
-```
-
-### `INFORMATION_SCHEMA.META_COLUMN_STATISTICS`
-
-Provides statistical insights about each column’s values and distribution.
-
-Here are the available columns:
-
-- `TABLE_NAME` (string): Name of the table.
-- `COLUMN_NAME` (string): Column name.
-- `MOST_COMMON_VALUES` (array of strings, optional)
-- `MOST_COMMON_FREQUENCIES` (array of integers, optional)
-- `NULL_PERCENTAGE` (float, optional)
-- `MINIMUM_VALUE` (string, optional)
-- `MAXIMUM_VALUE` (string, optional)
-- `DISTINCT_VALUES_COUNT` (integer, optional)
-
-Here is how to query it foe a specific data integration:
-
-```sql
-SELECT * FROM INFORMATION_SCHEMA.META_COLUMN_STATISTICS
-WHERE TABLE_SCHEMA = 'integration_name';
-```
-
-### `INFORMATION_SCHEMA.META_KEY_COLUMN_USAGE`
-
-Describes the primary key columns for tables in the integration.
-
-Here are the available columns:
-
-- `TABLE_NAME` (string): Name of the table.
-- `COLUMN_NAME` (string): Column name.
-- `ORDINAL_POSITION` (integer, optional)
-- `CONSTRAINT_NAME` (string, optional)
-
-Here is how to query it foe a specific data integration:
-
-```sql
-SELECT * FROM INFORMATION_SCHEMA.META_KEY_COLUMN_USAGE
-WHERE TABLE_SCHEMA = 'integration_name';
-```
-
-### `INFORMATION_SCHEMA.META_TABLE_CONSTRAINTS`
-
-Lists table-level constraints, including primary and foreign keys.
-
-Here are the available columns:
-
-- `TABLE_NAME` (string): Name of the table.
-- `CONSTRAINT_NAME` (string, optional)
-- `CONSTRAINT_TYPE` (string): e.g., PRIMARY KEY, FOREIGN KEY
-
-Here is how to query it foe a specific data integration:
-
-```sql
-SELECT * FROM INFORMATION_SCHEMA.META_TABLE_CONSTRAINTS
-WHERE TABLE_SCHEMA = 'integration_name';
-```
-
-### `INFORMATION_SCHEMA.META_HANDLER_INFO`
-
-Returns a textual summary of the integration implementation, including supported SQL features and capabilities.
-
-Here are the available columns:
-
-- `HANDLER_INFO` (string): Description.
-
-Here is how to query it foe a specific data integration:
-
-```sql
-SELECT * FROM INFORMATION_SCHEMA.META_HANDLER_INFO
-WHERE TABLE_SCHEMA = 'integration_name';
-```
diff --git a/docs/data_catalog/overview.mdx b/docs/data_catalog/overview.mdx
deleted file mode 100644
index 1a6b351e896..00000000000
--- a/docs/data_catalog/overview.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Data Catalog
-sidebarTitle: Overview
----
-
-The **Data Catalog** in MindsDB plays a key role in enhancing the context available to [agents](/mindsdb_sql/agents/agent) when querying data sources. By automatically indexing and storing metadata, such as table names, column types, constraints, and statistics, the catalog empowers agents to understand the structure and semantics of the data, leading to more accurate and efficient query generation.
-
-### Why It Matters
-
-When agents interpret natural language questions or generate SQL queries, access to metadata improves their ability to:
-
-- Understand relationships between tables and fields.
-- Infer joins, filters, and aggregations more intelligently.
-- Avoid syntax errors due to missing or unknown schema information.
-
-This metadata layer provides agents with the necessary context to avoid making uninformed queries.
diff --git a/docs/docs.json b/docs/docs.json
index ff5a1352eb2..8e82e94f7e3 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -100,6 +100,7 @@
"integrations/app-integrations/plaid",
"integrations/app-integrations/pypi",
"integrations/app-integrations/reddit",
+ "integrations/app-integrations/rest-api",
"integrations/app-integrations/salesforce",
"integrations/app-integrations/sendinblue",
"integrations/app-integrations/shopify",
@@ -153,6 +154,7 @@
"integrations/data-integrations/microsoft-access",
"integrations/data-integrations/microsoft-sql-server",
"integrations/data-integrations/monetdb",
+ "integrations/data-integrations/mongodb",
"integrations/data-integrations/mysql",
"integrations/data-integrations/oceanbase",
"integrations/data-integrations/opengauss",
@@ -233,19 +235,6 @@
}
]
},
- {
- "group": "Data Catalog",
- "pages": [
- "data_catalog/overview",
- {
- "group": "Data Catalog for Integrations",
- "pages": [
- "data_catalog/integrations/overview",
- "data_catalog/integrations/query"
- ]
- }
- ]
- },
{
"group": "Bring Your Own Models",
"pages": [
@@ -1061,26 +1050,10 @@
"source": "/data-integrations/yugabytedb",
"destination": "/integrations/data-integrations/yugabytedb"
},
- {
- "source": "/custom-model/openai",
- "destination": "/integrations/ai-engines/openai"
- },
- {
- "source": "/custom-model/huggingface",
- "destination": "/integrations/ai-engines/huggingface"
- },
- {
- "source": "/custom-model/langchain",
- "destination": "/integrations/ai-engines/langchain"
- },
{
"source": "/custom-model/byom",
"destination": "/integrations/ai-engines/byom"
},
- {
- "source": "/custom-model/ray-serve",
- "destination": "/integrations/ai-engines/ray-serve"
- },
{
"source": "/custom-model/mlflow",
"destination": "/integrations/ai-engines/mlflow"
@@ -1305,122 +1278,6 @@
"source": "/agents/knowledge-bases",
"destination": "/mindsdb_sql/agents/knowledge-bases"
},
- {
- "source": "/finetune/openai",
- "destination": "/use-cases/automated_finetuning/openai"
- },
- {
- "source": "/finetune/classification",
- "destination": "/use-cases/automated_finetuning/classification"
- },
- {
- "source": "/finetune/regression",
- "destination": "/use-cases/automated_finetuning/regression"
- },
- {
- "source": "/sql/tutorials/chatbots_agents",
- "destination": "/use-cases/ai_agents/chatbots_agents"
- },
- {
- "source": "/sql/tutorials/create-chatbot",
- "destination": "/use-cases/ai_agents/create-chatbot"
- },
- {
- "source": "/sql/tutorials/create-chatbot-kb",
- "destination": "/use-cases/ai_agents/create-chatbot-kb"
- },
- {
- "source": "/sql/tutorials/recommenders",
- "destination": "/use-cases/ai-powered_data_retrieval/recommenders"
- },
- {
- "source": "/sql/tutorials/image-generator",
- "destination": "/use-cases/data_enrichment/image-generator"
- },
- {
- "source": "/nlp/json-from-text",
- "destination": "/use-cases/data_enrichment/json-from-text"
- },
- {
- "source": "/nlp/text-summarization-inside-mysql-with-openai",
- "destination": "/use-cases/data_enrichment/text-summarization-inside-mysql-with-openai"
- },
- {
- "source": "/nlp/sentiment-analysis-inside-mysql-with-openai",
- "destination": "/use-cases/data_enrichment/sentiment-analysis-inside-mysql-with-openai"
- },
- {
- "source": "/nlp/question-answering-inside-mysql-with-openai",
- "destination": "/use-cases/data_enrichment/question-answering-inside-mysql-with-openai"
- },
- {
- "source": "/sql/tutorials/text-sentiment-hf",
- "destination": "/use-cases/data_enrichment/text-sentiment-hf"
- },
- {
- "source": "/sql/tutorials/hugging-face-examples",
- "destination": "/use-cases/data_enrichment/hugging-face-examples"
- },
- {
- "source": "/sql/tutorials/hugging-face-inference-api-examples",
- "destination": "/use-cases/data_enrichment/hugging-face-inference-api-examples"
- },
- {
- "source": "/sql/tutorials/house-sales-forecasting",
- "destination": "/use-cases/predictive_analytics/house-sales-forecasting"
- },
- {
- "source": "/sql/tutorials/eeg-forecasting",
- "destination": "/use-cases/predictive_analytics/eeg-forecasting"
- },
- {
- "source": "/sql/tutorials/customer-churn",
- "destination": "/use-cases/in-database_ml/customer-churn"
- },
- {
- "source": "/sql/tutorials/home-rentals",
- "destination": "/use-cases/in-database_ml/home-rentals"
- },
- {
- "source": "/sql/tutorials/slack-chatbot",
- "destination": "/use-cases/ai_workflow_automation/slack-chatbot"
- },
- {
- "source": "/sql/tutorials/twitter-chatbot",
- "destination": "/use-cases/ai_workflow_automation/twitter-chatbot"
- },
- {
- "source": "/sql/tutorials/twilio-chatbot",
- "destination": "/use-cases/ai_workflow_automation/twilio-chatbot"
- },
- {
- "source": "/sql/tutorials/customer-reviews-notifications",
- "destination": "/use-cases/ai_workflow_automation/customer-reviews-notifications"
- },
- {
- "source": "/sql/tutorials/real-time-trading-forecasts",
- "destination": "/use-cases/ai_workflow_automation/real-time-trading-forecasts"
- },
- {
- "source": "/model-management",
- "destination": "/features/model-management"
- },
- {
- "source": "/ai-integrations",
- "destination": "/features/ai-integrations"
- },
- {
- "source": "/data-integrations",
- "destination": "/features/data-integrations"
- },
- {
- "source": "/automation",
- "destination": "/features/automation"
- },
- {
- "source": "/features/ai-integrations",
- "destination": "/integrations/ai-overview"
- },
{
"source": "/features/data-integrations",
"destination": "/integrations/data-overview"
diff --git a/docs/features/ai-integrations.mdx b/docs/features/ai-integrations.mdx
deleted file mode 100644
index c04fb3911fc..00000000000
--- a/docs/features/ai-integrations.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: AI Integrations
-sidebarTitle: AI Integrations
-icon: "microchip-ai"
----
-
-
diff --git a/docs/features/automation.mdx b/docs/features/automation.mdx
deleted file mode 100644
index 94b4df3b944..00000000000
--- a/docs/features/automation.mdx
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Automation
-sidebarTitle: Automation
-icon: "bolt-auto"
----
-
-MindsDB provides mechanisms to automate tasks. These include [jobs](/mindsdb_sql/sql/create/jobs), [triggers](/mindsdb_sql/sql/create/trigger), and [chatbots](/mindsdb_sql/agents/chatbot).
-
-
-
-
-
-
-Use AI automation to keep your AI systems up-to-date by continuously retraining or fine-tuning them with real-time data. Follow [this use case](/sql/tutorials/real-time-trading-forecasts) to learn how to build it with MindsDB.
-
-
-
-Use AI automation to create chatbots. Follow [this use case](/sql/tutorials/twilio-chatbot) to learn how to build custom chatbots with MindsDB.
-
diff --git a/docs/features/data-integrations.mdx b/docs/features/data-integrations.mdx
deleted file mode 100644
index 3930e98fa0c..00000000000
--- a/docs/features/data-integrations.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Data Integrations
-sidebarTitle: Data Integrations
-icon: "database"
----
-
-
diff --git a/docs/features/model-management.mdx b/docs/features/model-management.mdx
deleted file mode 100644
index ddbd428c9b3..00000000000
--- a/docs/features/model-management.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Model Management
-sidebarTitle: Model Management
-icon: "bars-progress"
----
-
-MindsDB abstracts AI models, making them accessible from enterprise data environments.
-
-
-
-
-
-MindsDB enables you to manage every aspect of AI models. With MindsDB, you can [CREATE MODEL](/mindsdb_sql/sql/create/model), [FINETUNE](/mindsdb_sql/sql/api/finetune), [RETRAIN](/mindsdb_sql/sql/api/retrain), and more.
-
-* [Deploy](/mindsdb_sql/sql/create/model)
- You can [create, train, and deploy AI models](/mindsdb_sql/sql/create/model) based on popular [AI/ML frameworks](/integrations/ai-overview) within MindsDB.
-
-* [Fine-tune](/mindsdb_sql/sql/api/finetune)
- You can [fine-tune models](/mindsdb_sql/sql/api/finetune) with data from various [data sources](/integrations/data-overview) connected to MindsDB. Check out [examples here](/use-cases/automated_finetuning/overview).
-
-* [Automate](/mindsdb_sql/sql/create/jobs)
- You can automate tasks, including retraining or fine-tuning of AI models, to keep your AI system up-to-date. See [examples here](/use-cases/ai_workflow_automation/overview).
-
-
-Go ahead and create an AI model!
-
-Use [SQL API](/mindsdb_sql/overview), [REST API](/rest/overview), or one of the [SDKs](/sdks/overview) to create and deploy AI models within MindsDB.
-
diff --git a/docs/generative-ai-tables.mdx b/docs/generative-ai-tables.mdx
deleted file mode 100644
index 27a903c2eff..00000000000
--- a/docs/generative-ai-tables.mdx
+++ /dev/null
@@ -1,267 +0,0 @@
----
-title: Generative AI Tables
-sidebarTitle: AI Tables
----
-
-MindsDB empowers organizations to harness the power of AI by abstracting AI models as Generative AI Tables. These tables are capable of learning from the input data and generating predictions from the underlying model upon being queried. This abstraction makes AI highly accessible, enabling development teams to use their existing SQL skills to build applications powered by AI.
-
-
-MindsDB integrates with numerous AI frameworks. [Learn more here](/integrations/ai-overview).
-
-
-
-
-
-
-## What are Generative AI Tables?
-
-Generative AI is a subfield of artificial intelligence that trains AI models to create new content, such as realistic text, forecasts, images, and more, by learning patterns from existing data.
-
-MindsDB revolutionizes machine learning within enterprise databases by introducing the concept of **Generative AI tables**. These essentially abstract AI models as virtual AI tables, capable of producing output when given certain input.
-
-## How to Use Generative AI Tables
-
-AI tables, introduced by MindsDB, abstract AI models as virtual tables so you can simply query AI models for predictions.
-
-With MindsDB, you can join multiple AI tables (that abstract AI models) with multiple data tables (that provide input to the models) to get all predictions at once.
-
-Let's look at some examples.
-
-### Deploy AI Models as AI Tables
-
-You can deploy an AI model as a virtual AI table using the `CREATE MODEL` statement.
-
-Here we create a model that classifies sentiment of customer reviews as instructed in the prompt template message. The required input is the review and output is the sentiment predicted by the model.
-
-```sql
-CREATE MODEL sentiment_classifier_model
-PREDICT sentiment
-USING
- engine = 'openai_engine',
- model_name = 'gpt-4',
- prompt_template = 'describe the sentiment of the reviews
- strictly as "positive", "neutral", or "negative".
- "I love the product":positive
- "It is a scam":negative
- "{{review}}.":';
-```
-
-Next we create a model that generates responses to the reviews. The required input includes review, product name, and sold product quantity, and output is the response generated by the model.
-
-```sql
-CREATE MODEL response_generator_model
-PREDICT response
-USING
- engine = 'openai_engine',
- model_name = 'gpt-4',
- prompt_template = 'briefly respond to the customer review: {{review}}, added by a customer after buying {{product_name}} in quantity {{quantity}}';
-```
-
-
-Follow [this doc page](/integrations/ai-engines/openai) to configure the OpenAI engine in MindsDB.
-
-
-Now let's look at the data tables that we'll use to provide input data to the AI tables.
-
-### Prepare Input Data
-
-The `amazon_reviews` table stores the following columns:
-
-```sql
-+----------------------------+-----------------------------+------------------------+-------------+
-| created_at | product_name | review | customer_id |
-+----------------------------+-----------------------------+------------------------+-------------+
-| 2023-10-03 16:30:00.000000 | Power Adapter | It is a great product. | 1 |
-| 2023-10-03 16:31:00.000000 | Bluetooth and Wi-Fi Speaker | It is ok. | 2 |
-| 2023-10-03 16:32:00.000000 | Kindle eReader | It doesn’t work. | 3 |
-+----------------------------+-----------------------------+------------------------+-------------+
-```
-
-It provides sufficient input data for the `sentiment_classifier_model`, but not for the `response_generator_model`.
-
-The `products_sold` table stores the following columns:
-
-```sql
-+----------------------------+-----------------------------+-------------+----------+
-| sale_date | product_name | customer_id | quantity |
-+----------------------------+-----------------------------+-------------+----------+
-| 2023-10-03 16:30:00.000000 | Power Adapter | 1 | 20 |
-| 2023-10-03 16:31:00.000000 | Bluetooth and Wi-Fi Speaker | 2 | 5 |
-| 2023-10-03 16:32:00.000000 | Kindle eReader | 3 | 10 |
-+----------------------------+-----------------------------+-------------+----------+
-```
-
-The `response_generator_model` requires the two tables to be joined to provide it with sufficient input data.
-
-### Make Predictions
-
-You can query the AI tables directly or join AI tables with data tables to get the predictions.
-
-There are two ways you can provide input to the models:
-
-1. If you query the AI table directly, you can provide input data in the `WHERE` clause, like this:
-
- ```sql
- SELECT review, sentiment
- FROM sentiment_classifier_model
- WHERE review = 'I like it';
- ```
-
-2. You can provide input data to AI tables from the joined data tables, like this:
-
- ```sql
- SELECT inp.product_name,
- inp.review,
- m1.sentiment,
- m2.response
- FROM data_integration_conn.amazon_reviews2 AS inp
- JOIN data_integration_conn.products_sold AS inp2
- ON inp.customer_id = inp2.customer_id
- JOIN sentiment_classifier_model AS m1
- JOIN response_generator_model AS m2;
- ```
-
- The `sentiment_classifier_model` requires a parameter named `review`, so the data table should contain a column named `review`, which is picked up by the model.
-
- Note that, when joining data tables, you must provide the `ON` clause condition, which is implemented implicitly when joining the AI tables.
-
-Moreover, you can combine these two options and provide the input data to the AI tables partially from the data tables and partially from the `WHERE` clause, like this:
-
-```sql
-SELECT inp.product_name,
- inp.review,
- m1.sentiment,
- m2.response
-FROM data_integration_conn.amazon_reviews2 AS inp
-JOIN sentiment_classifier_model AS m1
-JOIN response_generator_model AS m2
-WHERE m2.quantity = 5;
-```
-
-Here the `sentiment_classifier_model` takes input data from the `amazon_review` table, while the `response_generator_model` takes input data from the `amazon_reviews` table and from the `WHERE` clause.
-
-Furthermore, you can make use of subqueries to provide input data to the models via the `WHERE` clause, like this:
-
-```sql
-SELECT inp.product_name,
- inp.review,
- m1.sentiment,
- m2.response
-FROM data_integration_conn.amazon_reviews2 AS inp
-JOIN sentiment_classifier_model AS m1
-JOIN response_generator_model AS m2
-WHERE m2.quantity = (SELECT quantity
- FROM data_integration_conn.products_sold
- WHERE customer_id = 2);
-```
-
-## Difference between AI Tables and Standard Tables
-
-To understand the difference, let's go over a simpler example. Here we will see how traditional database tables are designed to give you a deterministic response given some input, and how Generative AI Tables are designed to generate an approximate response given some input.
-
-Let’s consider the following `income_table` table that stores the `income` and `debt` values.
-
-```sql
-SELECT income, debt
-FROM income_table;
-```
-
-On execution, we get:
-
-```sql
-+------+-----+
-|income|debt |
-+------+-----+
-|60000 |20000|
-|80000 |25100|
-|100000|30040|
-|120000|36010|
-+------+-----+
-```
-
-A simple visualization of the data present in the `income_table` table is as follows:
-
-
-
-Querying the income table to get the `debt` value for a particular `income` value results in the following:
-
-```sql
-SELECT income, debt
-FROM income_table
-WHERE income = 80000;
-```
-
-On execution, we get:
-
-```sql
-+------+-----+
-|income|debt |
-+------+-----+
-|80000 |25100|
-+------+-----+
-```
-
-And here is what we get:
-
-
-
-But what happens when querying the table for an `income` value that is not
-present there?
-
-```sql
-SELECT income, debt
-FROM income_table
-WHERE income = 90000;
-```
-
-On execution, we get:
-
-```sql
-Empty set (0.00 sec)
-```
-
-When the `WHERE` clause condition is not fulfilled for any of the rows, no value is returned.
-
-
-
-When a table doesn’t have an exact match, the query returns an empty set or null value. This is where the AI Tables come into play!
-
-Let’s create a `debt_model` model that allows us to approximate the `debt` value for any `income` value. We train the `debt_model` model using the data from the `income_table` table.
-
-```sql
-CREATE MODEL mindsdb.debt_model
-FROM income_table
-PREDICT debt;
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-MindsDB provides the [`CREATE MODEL`](/sql/create/model/) statement. On execution of this statement, the predictive model works in the background, automatically creating a vector representation of the data that can be visualized as follows:
-
-
-
-Let’s now look for the `debt` value of some random `income` value. To get the approximated `debt` value, we query the `mindsdb.debt_model` model instead of the `income_table` table.
-
-```sql
-SELECT income, debt
-FROM mindsdb.debt_model
-WHERE income = 90000;
-```
-
-On execution, we get:
-
-```sql
-+------+-----+
-|income|debt |
-+------+-----+
-|90000 |27820|
-+------+-----+
-```
-
-And here is how it looks:
-
-
diff --git a/docs/integrations/ai-engines/amazon-bedrock.mdx b/docs/integrations/ai-engines/amazon-bedrock.mdx
deleted file mode 100644
index 81e9205d399..00000000000
--- a/docs/integrations/ai-engines/amazon-bedrock.mdx
+++ /dev/null
@@ -1,150 +0,0 @@
----
-title: Amazon Bedrock
-sidebarTitle: Amazon Bedrock
----
-
-This documentation describes the integration of MindsDB with [Amazon Bedrock](https://aws.amazon.com/bedrock/), a fully managed service that offers a choice of high-performing foundation models (FMs) from leading AI companies.
-The integration allows for the deployment of models offered by Amazon Bedrock within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Amaon Bedrock within MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
-3. Obtain the AWS credentials for a user with access to the Amazon Bedrock service.
-
-## Setup
-
-Create an AI engine from the [Amazon Bedrock handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/bedrock_handler).
-
-```sql
-CREATE ML_ENGINE bedrock_engine
-FROM bedrock
-USING
- aws_access_key_id = 'AQAXEQK89OX07YS34OP',
- aws_secret_access_key = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
- aws_session_token = 'FwoGZXIvYXdzEJr...',
- aws_region = 'us-east-1',
-```
-
-Required parameters for creating an engine include the following:
-
-- `aws_access_key_id`: The AWS access key ID for the user.
-- `aws_secret_access_key`: The AWS secret access key for the user.
-- `aws_region`: The AWS region to use.
-
-Optional parameters include the following:
-
-- `aws_session_token`: The AWS session token for the user. This is required when using temporary security credentials.
-
-Create a model using `bedrock_engine` as an engine.
-
-```sql
-CREATE MODEL bedrock_model
-PREDICT answer
-USING
- engine = 'bedrock_engine',
- question_column = 'question',
- max_tokens = 100,
- temperature = 0.3,
-```
-
-Required parameters for creating a model include the following:
-
-* `engine`: The name of the engine created via `CREATE ML_ENGINE`.
-
-Optional parameters include the following:
-
-* `mode`: The mode to run inference in. The default mode is `default` and the other supported mode is `conversational`.
-* `model_id`: The model ID to use for inference. The default model ID is `amazon.titan-text-premier-v1:0` and a list of other supported models can be found https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html.
-* `question_column`: The column that stores the user input.
-* `context_column`: The column that stores context to the user input.
-* `prompt_template`: A template for the prompt with placeholders to be replaced by the user input.
-* `max_tokens`: The maximum number of tokens to be generated in the model's responses.
-* `temperature`: The likelihood of the model selecting higher-probability options while generating a response.
-* `top_p`: The percentage of most-likely candidates that the model considers for the next token.
-* `stop`: A list of tokens that the model should stop generating at.
-
-
-For the `default` and `conversational` modes, one of the following need to be provided:
- * `prompt_template`.
- * `question_column`, and an optional `context_column`.
-
-
-## Usage
-
-### Default Mode
-
-In the `default` mode, the model will generate a separate response for each input provided. No context is maintained between the inputs.
-
-```sql
-CREATE MODEL bedrock_default_model
-PREDICT answer
-USING
- engine = 'bedrock_engine',
- prompt_template = 'Answer the users input in a helpful way: {{question}}';
-```
-
-To generate a response for a single input, the following query can be used:
-
-```sql
-SELECT *
-FROM bedrock_default_model
-WHERE question = 'What is the capital of Sweden?';
-```
-
-The response will look like the following:
-
-| question | answer |
-| ------ | -------- |
-| What is the capital of Sweden? | The capital of Sweden is Stockholm. Stockholm is the largest city in Sweden, with a population of over 900,000 people in the city proper and over 2 million in the metropolitan area. It is known for its beautiful architecture, scenic waterways, and rich cultural heritage. The city is built on 14 islands, which are connected by over 50 bridges, and is home to many museums, galleries, and historic landmarks. Some of the most famous attractions in Stockholm include the Vasa Museum, the Stockholm Palace, and the Old Town (Gamla Stan). |
-
-To generate responses for multiple inputs, the following query can be used:
-
-```sql
-SELECT *
-FROM files.unrelated_questions AS d
-JOIN bedrock_default_model AS m
-```
-
-The response will look like the following:
-
-| question | answer |
-| -------- | ------ |
-| What is the capital of Sweden? | The capital of Sweden is Stockholm. Stockholm is the most populated city in Sweden with over 975,000 residents. The city is known for its stunning architecture and beautiful waterways. |
-| What is the second planet in the solar system? | The second planet from the sun in our solar system is Venus. Venus is often called Earth's "sister planet" because of their similar size, mass, and density. However, the two planets have very different atmospheres and surface conditions. Venus has a thick, toxic atmosphere composed of carbon dioxide, which traps heat and causes the planet to have surface temperatures that can reach up to 471 degrees Celsius (880 degrees Fahrenheit). Venus also has a highly reflective cloud cover that obscures its surface, making it difficult to study. Despite these challenges, Venus has been the subject of numerous scientific missions, including several orbiters and landers that have provided valuable insights into the planet's geology, atmosphere, and climate. |
-
-
-`files.unrelated_questions` is a simple CSV file containing a `question` column (as expected by the above model) that has been uploaded to MindsDB. It is, however, possible to use any other supported data source in the same manner.
-
-
-### Conversational Mode
-
-In the `conversational` mode, the model will maintain context between the inputs and generate a single response. This response will be placed in the last row of the result set.
-
-```sql
-CREATE MODEL bedrock_conversational_model
-PREDICT answer
-USING
- engine = 'bedrock_engine',
- mode = 'conversational',
- question_column = 'question';
-```
-
-The syntax for generating responses in the `conversational` mode is the same as in the `default` mode.
-
-However, when generating responses for multiple inputs, the difference between the two modes becomes apparent. As mentioned above, the `conversational` mode maintains context between the inputs and generates a single response, which is placed in the last row of the result set:
-
-```sql
-SELECT *
-FROM files.related_questions AS d
-JOIN bedrock_default_model AS m
-```
-
-This is what the response will look like:
-
-| question | answer |
-| -------- | ------ |
-| What is the capital of Sweden? | [NULL] |
-| What are some cool places to visit there? | The capital of Sweden is Stockholm. It’s a beautiful city, with lots of old buildings and a scenic waterfront. You should definitely visit the Royal Palace, which is the largest palace in Scandinavia. You can also visit the Vasa Museum, which has a famous 17th-century warship that sank in Stockholm harbor. And you should definitely check out the ABBA Museum, which is dedicated to the famous pop group. |
\ No newline at end of file
diff --git a/docs/integrations/ai-engines/anomaly.mdx b/docs/integrations/ai-engines/anomaly.mdx
deleted file mode 100644
index b2f91fff228..00000000000
--- a/docs/integrations/ai-engines/anomaly.mdx
+++ /dev/null
@@ -1,195 +0,0 @@
----
-title: Anomaly Detection Handler
-sidebarTitle: Anomaly Detection
----
-
-The Anomaly Detection handler implements supervised, semi-supervised, and unsupervised anomaly detection algorithms using the pyod, catboost, xgboost, and sklearn libraries. The models were chosen based on the results in the [ADBench benchmark paper](https://proceedings.neurips.cc/paper_files/paper/2022/hash/cf93972b116ca5268827d575f2cc226b-Abstract-Datasets_and_Benchmarks.html).
-
-
-**Additional information**
-
-- If no labelled data, we use an unsupervised learner with the syntax `CREATE ANOMALY DETECTION MODEL ` without specifying the target to predict. MindsDB then adds a column called `outlier` when generating results.
-
-- If we have labelled data, we use the regular model creation syntax. There is backend logic that chooses between a semi-supervised algorithm (currently XGBOD) vs. a supervised algorithm (currently CatBoost).
-
-- If multiple models are provided, then we create an ensemble and use majority voting.
-
-- See the anomaly detection proposal [document](https://docs.google.com/document/d/1Yd7ARZVg_67xlcY-JR2kuO7mak9Ia2YER1Jk0EdpEa0/edit#heading=h.mo4wxsae6t1d) for more information.
-
-
-
-
-**Context about types of anomaly detection**
-
-- Supervised: we have inlier/outlier labels, so we can train a classifier the normal way. This is very similar to a standard classification problem.
-
-- Semi-supervised: we have inlier/outlier labels and perform an unsupervised preprocessing step, and then a supervised classification algorithm.
-
-- Unsupervised: we don’t have inlier/outlier labels and cannot assume all training data are inliers. These methods construct inlier criteria that will classify some training data as outliers too based on distributional traits. New observations are classified against these criteria. However, it’s not possible to evaluate how well the model detects outliers without labels.
-
-
-
-
-**Default dispatch logic**
-
-We propose the following logic to determine type of learning:
-- Use supervised learning if labels are available and the dataset contains at least 3000 samples.
-- Use semi-supervised learning if labels are available and number of samples in the dataset is less than 3000.
-- If the dataset is unlabelled, use unsupervised learning.
-
-We’ve chosen 3000 based on the results of the NeurIPS AD Benchmark paper (linked above). The authors report that semi-supervised learning outperforms supervised learning when the number of samples used is less than 5% of the size of the training dataset. The average size of the training datasets in their study is 60,000, therefore this 5% corresponds to 3000 samples on average.
-
-
-
-
-**Reasoning for default models on each type**
-
-We refer to the NeurIPS AD Benchmark paper (linked above) to make these choices:
-- For supervised learning, use CatBoost. It often outperforms classic algorithms.
-- For semi-supervised, XGBod is a good default from PyOD.
-- There’s no clear winner for unsupervised methods, it depends on the use case. ECOD is a sensible default with a fast runtime. If we’re not concerned about runtime, we can use an ensemble.
-
-
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Anomaly Detection handler within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-
-## Setup
-
-Create an AI engine from the [Anomaly Detection handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/anomaly_detection_handler).
-
-```sql
-CREATE ML_ENGINE anomaly_detection_engine
-FROM anomaly_detection;
-```
-
-Create a model using `anomaly_detection_engine` as an engine.
-
-```sql
-CREATE ANOMALY DETECTION MODEL anomaly_detection_model
-FROM datasource
- (SELECT * FROM data_table)
-PREDICT target_column
-USING
- engine = 'anomaly_detection_engine', -- engine name as created via CREATE ML_ENGINE
- ...; -- other parameters shown in usage examples below
-```
-
-## Usage
-
-To run example queries, use the data from this [CSV file](https://raw.githubusercontent.com/mindsdb/mindsdb/main/tests/unit/ml_handlers/data/anomaly_detection.csv).
-
-### Unsupervised detection
-
-```sql
-CREATE ANOMALY DETECTION MODEL mindsdb.unsupervised_ad
-FROM files
- (SELECT * FROM anomaly_detection)
-USING
- engine = 'anomaly_detection_engine';
-
-DESCRIBE MODEL mindsdb.unsupervised_ad.model;
-
-SELECT t.class, m.outlier as anomaly
-FROM files.anomaly_detection as t
-JOIN mindsdb.unsupervised_ad as m;
-```
-
-### Semi-supervised detection
-
-```sql
-CREATE MODEL mindsdb.semi_supervised_ad
-FROM files
- (SELECT * FROM anomaly_detection)
-PREDICT class
-USING
- engine = 'anomaly_detection_engine';
-
-DESCRIBE MODEL mindsdb.semi_supervised_ad.model;
-
-SELECT t.carat, t.category, t.class, m.class as anomaly
-FROM files.anomaly_detection as t
-JOIN mindsdb.semi_supervised_ad as m;
-```
-
-### Supervised detection
-
-```sql
-CREATE MODEL mindsdb.supervised_ad
-FROM files
- (SELECT * FROM anomaly_detection)
-PREDICT class
-USING
- engine = 'anomaly_detection_engine',
- type = 'supervised';
-
-DESCRIBE MODEL mindsdb.supervised_ad.model;
-
-SELECT t.carat, t.category, t.class, m.class as anomaly
-FROM files.anomaly_detection as t
-JOIN mindsdb.supervised_ad as m;
-```
-
-### Specific model
-
-```sql
-CREATE ANOMALY DETECTION MODEL mindsdb.unsupervised_ad_knn
-FROM files
- (SELECT * FROM anomaly_detection)
-USING
- engine = 'anomaly_detection_engine',
- model_name = 'knn';
-
-DESCRIBE MODEL mindsdb.unsupervised_ad_knn.model;
-
-SELECT t.class, m.outlier as anomaly
-FROM files.anomaly_detection as t
-JOIN mindsdb.unsupervised_ad_knn as m;
-```
-
-### Specific anomaly type
-
-```sql
-CREATE ANOMALY DETECTION MODEL mindsdb.unsupervised_ad_local
-FROM files
- (SELECT * FROM anomaly_detection)
-USING
- engine = 'anomaly_detection_engine',
- anomaly_type = 'local';
-
-DESCRIBE MODEL mindsdb.unsupervised_ad_local.model;
-
-SELECT t.class, m.outlier as anomaly
-FROM files.anomaly_detection as t
-JOIN mindsdb.unsupervised_ad_local as m;
-```
-
-### Ensemble
-
-```sql
-CREATE ANOMALY DETECTION MODEL mindsdb.ad_ensemble
-FROM files
- (SELECT * FROM anomaly_detection)
-USING
- engine = 'anomaly_detection_engine',
- ensemble_models = ['knn','ecod','lof'];
-
-DESCRIBE MODEL mindsdb.ad_ensemble.model;
-
-SELECT t.class, m.outlier as anomaly
-FROM files.anomaly_detection as t
-JOIN mindsdb.ad_ensemble as m;
-```
-
-
-
-**Next Steps**
-
-Watch [demo 1](https://www.loom.com/share/0996e5faa3f7415bacd51a6e8e161d5e?sid=9bacd29a-975b-4a94-b081-de2255b93607) and [demo 2](https://www.loom.com/share/c22335d83cb04ac281e2ef080792f2dd) to see usage examples.
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/anthropic.mdx b/docs/integrations/ai-engines/anthropic.mdx
deleted file mode 100644
index 6e65f85559d..00000000000
--- a/docs/integrations/ai-engines/anthropic.mdx
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: Anthropic
-sidebarTitle: Anthropic
----
-
-This documentation describes the integration of MindsDB with [Anthropic](https://www.anthropic.com/), an AI research company.
-The integration allows for the deployment of Anthropic models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Anthropic within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-3. Obtain the Anthropic API key required to deploy and use Anthropic models within MindsDB. Follow the [instructions for obtaining the API key](https://docs.anthropic.com/claude/docs/getting-access-to-claude).
-
-## Setup
-
-Create an AI engine from the [Anthropic handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/anthropic_handler).
-
-```sql
-CREATE ML_ENGINE anthropic_engine
-FROM anthropic
-USING
- anthropic_api_key = 'your-anthropic-api-key';
-```
-
-Create a model using `anthropic_engine` as an engine.
-
-```sql
-CREATE MODEL anthropic_model
-PREDICT target_column
-USING
- engine = 'anthropic_engine', -- engine name as created via CREATE ML_ENGINE
- column = 'column_name', -- column that stores input/question to the model
- max_tokens = , -- max number of tokens to be generated by the model (default is 100)
- model = 'model_name'; -- choose one of 'claude-instant-1.2', 'claude-2.1', 'claude-3-opus-20240229', 'claude-3-sonnet-20240229' (default is 'claude-2.1')
-```
-
-
-
-The integrations between Anthropic and MindsDB was implemented using [Anthropic Python SDK](https://github.com/anthropics/anthropic-sdk-python).
-
-
-## Usage
-
-The following usage examples utilize `anthropic_engine` to create a model with the `CREATE MODEL` statement.
-
-Create and deploy the Anthropic model within MindsDB to ask any question.
-
-```sql
-CREATE MODEL anthropic_model
-PREDICT answer
-USING
- column = 'question',
- engine = 'anthropic_engine',
- max_tokens = 300,
- model = 'claude-2.1'; -- choose one of 'claude-instant-1.2', 'claude-2.1', 'claude-3-opus-20240229', 'claude-3-sonnet-20240229'
-```
-
-Where:
-
-| Name | Description |
-|-------------------|---------------------------------------------------------------------------|
-| `column` | It defines the prompt to the model. |
-| `engine` | It defines the Anthropic engine. |
-| `max_tokens` | It defines the maximum number of tokens to generate before stopping. |
-| `model` | It defines model that will complete your prompt. |
-
-
-
-**Default Model**
-
-When you create an Anthropic model in MindsDB, it uses the `claude-2.1` model by default. But you can use other available models by passing the model name to the `model` parameter in the `USING` clause of the `CREATE MODEL` statement.
-
-
-
-
-**Default Max Tokens**
-
-When you create an Anthropic model in MindsDB, it uses 100 tokens as the maximum by default. But you can adjust this value by passing it to the `max_tokens` parameter in the `USING` clause of the `CREATE MODEL` statement.
-
-
-Query the model to get predictions.
-
-```sql
-SELECT question, answer
-FROM anthropic_model
-WHERE question = 'Where is Stockholm located?';
-```
-
-Here is the output:
-
-```sql
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| question | answer |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| Where is Stockholm located? | Stockholm is the capital and largest city of Sweden. It is located on Sweden's south-central east coast, where Lake Mälaren meets the Baltic Sea. |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-
-
-**Next Steps**
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/autokeras.mdx b/docs/integrations/ai-engines/autokeras.mdx
deleted file mode 100644
index 05907f673df..00000000000
--- a/docs/integrations/ai-engines/autokeras.mdx
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: AutoKeras
-sidebarTitle: AutoKeras
----
-
-
-AutoKeras is an AutoML package for both regression and classification tasks.
-We have integrated both the Regressor and Classifier models from this package.
-Our implementation will automatically determine whether the task is regression or classification, the user does not need to specify this.
-
-Call this handler with
-`USING ENGINE='autokeras'` - you can see a full example in https://github.com/mindsdb/mindsdb/pull/4559
-
-## Why is this integration useful?
-
-AutoKeras will build an accurate deep learning model for the end-user, with no prior knowledge of deep learning required.
-The handler will automatically search and tune different neural network architectures to find the most accurate for the given problem.
-The ideal use case is a very large dataset with many predictive features, where the user doesn't have strong priors about how these features may affect the target variable.
-
-Do not use this integration for for small datasets, as neural networks are prone to overfitting.
-
-Do not use this integration if you need to fit a model very quickly, as training time can be long.
-
-## Are models created with this integration fast and scalable, in general?
-Making predictions with these models are very fast.
-
-However, the model search and auto-training process is slow because AutoKeras uses neural networks. Using the default settings, model training may take several hours. We provide an optional setting to reduce training time (see below).
-
-
-## What are the recommended system specifications for models created with this framework?
-We recommend training this handler on a machine with a CUDA-enabled GPU.
-We would also recommend training on a remote server, or a machine you can leave running, given potentially long training times.
-
-## To what degree can users control the underlying framework by passing parameters via the USING syntax?
-We provide an optional argument,
-
-```
-USING
- ENGINE='autokeras',
- train_time={x}
-```
-
-where x can take values from 0 to 1 (default to 1). Lower values will reduce training time linearly e.g. a value of 0.1 will cut training time to 10% of the default. This comes at the cost of accuracy, as the neural net model search space is reduced by the same factor.
-
-## Does this integration offer model explainability or insights via the DESCRIBE syntax?
-Not implemented yet.
-
-## Does this integration support fine-tuning pre-existing models (i.e. is the update() method implemented)? Are there any caveats?
-Not implemented yet.
-
-## Are there any other noteworthy aspects to this handler?
-AutoKeras automatically splits the data into training and validation sets, the user does not need to do this.
-The original Keras library was for computer vision, so this would be a good option if users want to do image analysis.
-
-Users should set up a Conda environment to use this handler, as Keras depends on Tensorflow rather than PyTorch.
-They should follow the instructions at:
-1. https://www.tensorflow.org/install/pip
-2. https://autokeras.com/install/
-
-## Any directions for future work in subsequent versions of the handler?
-Implement the DESCRIBE and UPDATE methods.
-
-If there is user demand for image analysis, implement the image models from AutoKeras.
-
-## Please provide a minimal SQL example that uses this ML engine (pointers to integration tests in the PR also valid)
-See integration test in https://github.com/mindsdb/mindsdb/pull/4559
-
diff --git a/docs/integrations/ai-engines/autosklearn.mdx b/docs/integrations/ai-engines/autosklearn.mdx
deleted file mode 100644
index 83d51424128..00000000000
--- a/docs/integrations/ai-engines/autosklearn.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: AutoSklearn
-sidebarTitle: AutoSklearn
----
-
-
-This page is a work in progress.
-
diff --git a/docs/integrations/ai-engines/clipdrop.mdx b/docs/integrations/ai-engines/clipdrop.mdx
deleted file mode 100644
index c0a174272fa..00000000000
--- a/docs/integrations/ai-engines/clipdrop.mdx
+++ /dev/null
@@ -1,235 +0,0 @@
----
-title: Clipdrop
-sidebarTitle: Clipdrop
----
-
-Integrate state of the art image processing AI directly in your products.
-
-
-
-To use Clipdrop in MindsDB, you need to sign up for a Clipdrop account and obtain an API key. Learn more [here](https://clipdrop.co/apis).
-
-
-
-## Setup
-
-```sql
-CREATE ML_ENGINE clipdrop_engine
-FROM clipdrop
-USING
- clipdrop_api_key = 'your_api_key';
-```
-
-## Usage
-
-### Remove Text from Image
-
-
-
-Create a model to automatically remove text from an image.
-
-```sql
-CREATE MODEL mindsdb.clipdrop_rt
-PREDICT image
-USING
- engine = "clipdrop_engine",
- task = "remove_text",
- local_directory_path = "/Users/Sam/Downloads/test";
-```
-
-You can then make predictions with the model by providing an image URL:
-
-```sql
-SELECT *
-FROM mindsdb.clipdrop_rt
-WHERE image_url = "https://onlinejpgtools.com/images/examples-onlinejpgtools/calm-body-of-water-with-quote.jpg";
-```
-
-### Remove Background from Image
-
-
-
-Effortlessly strip away the background from any image using this task.
-
-```sql
-CREATE MODEL mindsdb.clipdrop_rb
-PREDICT image
-USING
- engine = "clipdrop_engine",
- task = "remove_background",
- local_directory_path = "/Users/Sam/Downloads/test";
-```
-
-Provide an image URL to remove the background:
-
-```sql
-SELECT *
-FROM mindsdb.clipdrop_rb
-WHERE image_url = "https://static.clipdrop.co/web/apis/remove-background/input.jpg";
-```
-
-### Generate Image from Sketch
-
-
-
-Turn simple sketches into detailed images with AI.
-
-```sql
-CREATE MODEL mindsdb.clipdrop_s2i
-PREDICT image
-USING
- engine = "clipdrop_engine",
- task = "sketch_to_image",
- local_directory_path = "/Users/Sam/Downloads/test";
-```
-
-Provide an image URL and a description of the desired transformation:
-
-```sql
-SELECT *
-FROM mindsdb.clipdrop_s2i
-WHERE image_url = 'https://img.freepik.com/free-vector/hand-drawn-cat-outline-illustration_23-2149266368.jpg'
- AND text = 'brown cat';
-```
-
-### Generate Image from Text
-
-
-
-Create unique images directly from text prompts.
-
-```sql
-CREATE MODEL mindsdb.clipdrop_t2i
-PREDICT image
-USING
- engine = "clipdrop_engine",
- task = "text_to_image",
- local_directory_path = "/Users/Sam/Downloads/test";
-```
-
-For example:
-
-```sql
-SELECT *
-FROM mindsdb.clipdrop_t2i
-WHERE text = 'Imagine a software engineer';
-```
-
-### Re-imagine the Image
-
-
-
-Re-imagine any image in a different artistic style or form.
-
-```sql
-CREATE MODEL mindsdb.clipdrop_reimagine
-PREDICT image
-USING
- engine = "clipdrop_engine",
- task = "reimagine",
- local_directory_path = "/Users/Sam/Downloads/test";
-```
-
-Run the model to transform an existing image:
-
-```sql
-SELECT *
-FROM mindsdb.clipdrop_reimagine
-WHERE image_url = "https://static.clipdrop.co/web/apis/remove-background/input.jpg";
-```
-
-### Replace Background in Image
-
-
-
-Replace the background of any image with custom scenes or environments.
-
-```sql
-CREATE MODEL mindsdb.clipdrop_rbi
-PREDICT image
-USING
- engine = "clipdrop_engine",
- task = "replace_background",
- local_directory_path = "/Users/Sam/Downloads/test";
-```
-
-Example query:
-
-```sql
-SELECT *
-FROM mindsdb.clipdrop_rbi
-WHERE image_url = "https://static.clipdrop.co/web/apis/remove-background/input.jpg"
- AND text = "Empty road";
-```
-
-
-
-**Note:** The `local_directory_path` parameter specifies the path to the directory where the images are stored on your local machine.
-
-
\ No newline at end of file
diff --git a/docs/integrations/ai-engines/cohere.mdx b/docs/integrations/ai-engines/cohere.mdx
deleted file mode 100644
index f222b2f1a45..00000000000
--- a/docs/integrations/ai-engines/cohere.mdx
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: Cohere
-sidebarTitle: Cohere
----
-
-This documentation describes the integration of MindsDB with [Cohere](https://cohere.com/), a technology company focused on artificial intelligence for the enterprise.
-The integration allows for the deployment of Cohere models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Cohere within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-3. Obtain the Cohere API key required to deploy and use Cohere models within MindsDB. Sign up for a Cohere account and request an API key from the Cohere dashboard. Learn more [here](https://cohere.com/pricing).
-
-## Setup
-
-Create an AI engine from the [Cohere handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/cohere_handler).
-
-```sql
-CREATE ML_ENGINE cohere_engine
-FROM cohere
-USING
- cohere_api_key = 'your-cohere-api-key';
-```
-
-Create a model using `cohere_engine` as an engine.
-
-```sql
-CREATE MODEL cohere_model
-PREDICT target_column
-USING
- engine = 'cohere_engine', -- engine name as created via CREATE ML_ENGINE
- task = 'task_name', -- choose one of 'text-summarization', 'text-generation'
- column = 'column_name'; -- column that stores input/question to the model
-```
-
-## Usage
-
-The following usage examples utilize `cohere_engine` to create a model with the `CREATE MODEL` statement.
-
-Create a model to predict the answer to a question using the `text-generation` task.
-
-```sql
-CREATE MODEL cohere_model
-PREDICT answer
-USING
- engine = 'cohere_engine',
- task = 'text-generation',
- column = 'question';
-```
-
-Where:
-
-| Name | Description |
-|-------------------|------------------------------------------------------------------------|
-| `task` | It defines the task to be accomplished. |
-| `column` | It defines the column with the text to be acted upon. |
-| `engine` | It defines the Cohere engine. |
-
-Query the model to get predictions.
-
-```sql
-SELECT answer
-FROM cohere_model
-WHERE question = 'What is the capital of France?';
-```
-
-Here is the output:
-
-| answer |
-| :------ |
-| The capital of France is Paris. Paris is France's largest city and a major global center for art, culture, fashion, and cuisine. It is renowned for its iconic landmarks such as the Eiffel Tower, Notre-Dame Cathedral, and the Louvre Museum. |
-
-
-
-**Next Steps**
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/google_gemini.mdx b/docs/integrations/ai-engines/google_gemini.mdx
deleted file mode 100644
index 939ead7a2cd..00000000000
--- a/docs/integrations/ai-engines/google_gemini.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Google Gemini
-sidebarTitle: Google Gemini
----
-
-This documentation describes the integration of MindsDB with [Google Gemini](), a generative artificial intelligence model developed by Google.
-The integration allows for the deployment of Google Gemini models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Google Gemini within MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
-3. Obtain the Google Gemini API key required to deploy and use Google Gemini models within MindsDB. Follow the [instructions for obtaining the API key](https://ai.google.dev/gemini-api/docs/api-key).
-
-## Setup
-
-Create an AI engine from the [Google Gemini handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_gemini_handler).
-
-```sql
-CREATE ML_ENGINE google_gemini_engine
-FROM google_gemini
-USING
- api_key = 'api-key-value';
-```
-
-Create a model using `google_gemini_engine` as an engine.
-
-```sql
-CREATE MODEL google_gemini_model
-PREDICT target_column
-USING
- engine = 'google_gemini_engine', -- engine name as created via CREATE ML_ENGINE
- question_column = 'input_column', -- column name that stores user input
- model_name = 'gemini-2.0-flash'; -- model name to be used
-```
-
-## Usage
-
-The following usage examples utilize `google_gemini_engine` to create a model with the `CREATE MODEL` statement.
-
-Create a model to generate text completions with the Gemini Pro model for your existing text data.
-
-```sql
-CREATE MODEL google_gemini_model
-PREDICT answer
-USING
- engine = 'google_gemini_engine',
- question_column = 'question',
- model_name = 'gemini-2.0-flash';
-```
-
-Query the model to get predictions.
-
-```sql
-SELECT question, answer
-FROM google_gemini_model
-WHERE question = 'How are you?';
-```
-
-Alternatively, you can query for batch predictions:
-
-```sql
-SELECT t.question, m.answer
-FROM google_gemini_model AS m
-JOIN data_table AS t;
-```
-
-
-**Next Steps**
-
-Go to the [Use Cases](/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/huggingface.mdx b/docs/integrations/ai-engines/huggingface.mdx
deleted file mode 100644
index 3a38cbaae97..00000000000
--- a/docs/integrations/ai-engines/huggingface.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Hugging Face
-sidebarTitle: Hugging Face
----
-
-This documentation describes the integration of MindsDB with [Hugging Face](https://huggingface.co/), a company that develops computer tools for building applications using machine learning.
-The integration allows for the deployment of Hugging Face models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Hugging Face within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-
-## Setup
-
-Create an AI engine from the [Hugging Face handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/huggingface_handler).
-
-```sql
-CREATE ML_ENGINE huggingface_engine
-FROM huggingface
-USING huggingface_api_api_key = 'hf_xxx';
-```
-
-Create a model using `huggingface_engine` as an engine.
-
-```sql
-CREATE MODEL huggingface_model
-PREDICT target_column
-USING
- engine = 'huggingface_engine', -- engine name as created via CREATE ML_ENGINE
- model_name = 'hf_hub_model_name', -- choose one of PyTorch models from the Hugging Face Hub
- task = 'task_name', -- choose one of 'text-classification', 'text-generation', 'zero-shot-classification', 'translation', 'summarization', 'text2text-generation', 'fill-mask'
- input_column = 'column_name', -- column that stores input/question to the model
- labels = ['label 1', 'label 2']; -- labels used to classify data (used for classification tasks)
-```
-
-## Usage
-
-The following usage examples utilize `huggingface_engine` to create a model with the `CREATE MODEL` statement.
-
-Create a model to classify input text as spam or ham.
-
-```sql
-CREATE MODEL spam_classifier
-PREDICT spam_or_ham
-USING
- engine = 'huggingface_engine',
- model_name = 'mrm8488/bert-tiny-finetuned-sms-spam-detection',
- task = 'text-classification',
- input_column = 'text',
- labels = ['ham', 'spam'];
-```
-
-Query the model to get predictions.
-
-```sql
-SELECT text, spam_or_ham
-FROM spam_classifier
-WHERE text = 'Subscribe to this channel asap';
-```
-
-Here is the output:
-
-```sql
-+--------------------------------+-------------+
-| text | spam_or_ham |
-+--------------------------------+-------------+
-| Subscribe to this channel asap | spam |
-+--------------------------------+-------------+
-```
-
-
-
-**Next Steps**
-
-Follow [this link](https://docs.mindsdb.com/sql/tutorials/hugging-face-examples) to see more use case examples.
-
diff --git a/docs/integrations/ai-engines/huggingface_inference_api.mdx b/docs/integrations/ai-engines/huggingface_inference_api.mdx
deleted file mode 100644
index c7ea1660339..00000000000
--- a/docs/integrations/ai-engines/huggingface_inference_api.mdx
+++ /dev/null
@@ -1,227 +0,0 @@
----
-title: Hugging Face Inference API
-sidebarTitle: Hugging Face Inference API
----
-
-This documentation describes the integration of MindsDB with [Hugging Face Inference API](https://huggingface.co/inference-api/serverless).
-The integration allows for the deployment of Hugging Face models through Inference API within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Hugging Face Inference API within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-3. Obtain the API key for Hugging Face Inference API required to deploy and use Hugging Face models through Inference API within MindsDB. Generate tokens in the `Settings -> Access Tokens` tab of the Hugging Face account.
-
-## Setup
-
-Create an AI engine from the [Hugging Face Inference API handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/huggingface_api_handler).
-
-```sql
-CREATE ML_ENGINE huggingface_api_engine
-FROM huggingface_api
-USING
- huggingface_api_api_key = 'api-key-value';
-```
-
-Create a model using `huggingface_api_engine` as an engine.
-
-```sql
-CREATE MODEL huggingface_api_model
-PREDICT target_column
-USING
- engine = 'huggingface_api_engine', -- engine name as created via CREATE ML_ENGINE
- task = 'task_name', -- choose one of 'text-classification', 'text-generation', 'question-answering', 'sentence-similarity', 'zero-shot-classification', 'summarization', 'fill-mask', 'image-classification', 'object-detection', 'automatic-speech-recognition', 'audio-classification'
- input_column = 'column_name', -- column that stores input/question to the model
- labels = ['label 1', 'label 2']; -- labels used to classify data (used for classification tasks)
-```
-
-The following parameters are supported in the `USING` clause of the `CREATE MODEL` statement:
-
-| Parameter | Required | Description |
-| ------------------ | -------------------------------------------- | --------------- |
-| `engine` | Yes | It is the name of the ML engine created with the `CREATE ML_ENGINE` statement.|
-| `task` | Only if `model_name` is not provided | It describes a task to be performed.|
-| `model_name` | Only if `task` is not provided | It specifies a model to be used.|
-| `input_column` | Yes | It is the name of the column that stores input to the model.|
-| `endpoint` | No | It defines the endpoint to use for API calls. If not specified, the hosted Inference API from Hugging Face will be used.|
-| `options` | No | It is a JSON object containing additional options to pass to the API call. More information about the available options for each task can be found [here](https://huggingface.co/docs/api-inference/detailed_parameters).|
-| `parameters` | No | It is a JSON object containing additional parameters to pass to the API call. More information about the available parameters for each task can be found [here](https://huggingface.co/docs/api-inference/detailed_parameters).|
-| `context_column` | Only if `task` is `question-answering` | It is used for the `question-answering` task to provide context to the question.|
-| `input_column2` | Only if `task` is `sentence-similarity` | It is used for the `sentence-similarity` task to provide the second input sentence for comparison.|
-| `candidate_labels` | Only if `task` is `zero-shot-classification` | It is used for the `zero-shot-classification` task to classify input data according to provided labels.|
-
-## Usage
-
-The following usage examples utilize `huggingface_api_engine` to create a model with the `CREATE MODEL` statement.
-
-Create a model to classify input text as spam or ham.
-
-```sql
-CREATE MODEL spam_classifier
-PREDICT is_spam
-USING
- engine = 'huggingface_api_engine',
- task = 'text-classification',
- column = 'text';
-```
-
-Query the model to get predictions.
-
-```sql
-SELECT text, is_spam
-FROM spam_classifier
-WHERE text = 'Subscribe to this channel asap';
-```
-
-Here is the output:
-
-```sql
-+--------------------------------+---------+
-| text | is_spam |
-+--------------------------------+---------+
-| Subscribe to this channel asap | spam |
-+--------------------------------+---------+
-```
-
-
-
-Find more quick examples below:
-
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_text_classifier
-PREDICT sentiment
-USING
- task = 'text-classification',
- engine = 'hf_api_engine',
- input_column = 'text';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_fill_mask
-PREDICT sequence
-USING
- task = 'fill-mask',
- engine = 'hf_api_engine',
- input_column = 'text';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_summarizer
-PREDICT summary
-USING
- task = 'summarization',
- engine = 'hf_api_engine',
- input_column = 'text';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_text_generator
-PREDICT generated_text
-USING
- task = 'text-generation',
- engine = 'hf_api_engine',
- input_column = 'text';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_question_answerer
-PREDICT answer
-USING
- task = 'question-answering',
- engine = 'hf_api_engine',
- input_column = 'question',
- context_column = 'context';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_sentence_similarity
-PREDICT similarity
-USING
- task = 'sentence-similarity',
- engine = 'hf_api_engine',
- input_column = 'sentence1',
- input_column2 = 'sentence2';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_zero_shot_classifier
-PREDICT label
-USING
- task = 'zero-shot-classification',
- engine = 'hf_api_engine',
- input_column = 'text',
- candidate_labels = ['label1', 'label2', 'label3'];
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_image_classifier
-PREDICT label
-USING
- task = 'image-classification',
- engine = 'hf_api_engine',
- input_column = 'image_url';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_object_detector
-PREDICT objects
-USING
- task = 'object-detection',
- engine = 'hf_api_engine',
- input_column = 'image_url';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_speech_recognizer
-PREDICT transcription
-USING
- task = 'automatic-speech-recognition',
- engine = 'hf_api_engine',
- input_column = 'audio_url';
-```
-
-
-
-```sql
-CREATE MODEL mindsdb.hf_audio_classifier
-PREDICT label
-USING
- task = 'audio-classification',
- engine = 'hf_api_engine',
- input_column = 'audio_url';
-```
-
-
-
-
-
-
-
-
-**Next Steps**
-
-Follow [this link](https://docs.mindsdb.com/sql/tutorials/hugging-face-inference-api-examples) to see more use case examples.
-
diff --git a/docs/integrations/ai-engines/langchain.mdx b/docs/integrations/ai-engines/langchain.mdx
deleted file mode 100644
index 155409a6bbc..00000000000
--- a/docs/integrations/ai-engines/langchain.mdx
+++ /dev/null
@@ -1,222 +0,0 @@
----
-title: LangChain
-sidebarTitle: LangChain
----
-
-This documentation describes the integration of MindsDB with [LangChain](https://www.langchain.com/), a framework for developing applications powered by language models.
-The integration allows for the deployment of LangChain models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use LangChain within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-3. Obtain the API key for a selected model provider that you want to use through LangChain.
-
-
-Available models include the following:
-
-- OpenAI ([how to get the API key](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key))
-- Anthropic ([how to get the API key](https://docs.anthropic.com/claude/docs/getting-access-to-claude))
-- Google ([how to get the API key](http://aistudio.google.com/))
-- Ollama ([how to download Ollama](https://ollama.com/download))
-- LiteLLM (use the API key of the model used via LiteLLM)
-- MindsDB (use any model created within MindsDB)
-
-
-## Setup
-
-Create an AI engine from the [LangChain handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/langchain_handler).
-
-```sql
-CREATE ML_ENGINE langchain_engine
-FROM langchain
-USING
- serper_api_key = 'your-serper-api-key'; -- it is an optional parameter (if provided, the model will use serper.dev search to enhance the output)
-```
-
-Create a model using `langchain_engine` as an engine and a selected model provider.
-
-```sql
-CREATE MODEL langchain_model
-PREDICT target_column
-USING
- engine = 'langchain_engine', -- engine name as created via CREATE ML_ENGINE
- _api_key = 'api-key-value', -- replace with one of the available values (openai, anthropic, google, litellm)
- model_name = 'model-name', -- optional, model to be used (for example, 'gpt-4' if 'openai_api_key' provided)
- prompt_template = 'message to the model that may include some {{input}} columns as variables',
- max_tokens = 4096; -- defines the maximum number of tokens
-```
-
-
-This handler supports [tracing features for LangChain via LangFuse](https://langfuse.com/docs/integrations/langchain/tracing). To use it, provide the following parameters in the `USING` clause:
-
-- `langfuse_host`,
-- `langfuse_public_key`,
-- `langfuse_secret_key`.
-
-
-
-There are three different tools utilized by this agent:
-
-* **MindsDB** is the internal MindsDB executor.
-* **Metadata** fetches the metadata information for the available tables.
-* **Write** is able to write agent responses into a MindsDB data source.
-
-Each tool exposes the internal MindsDB executor in a different way to perform its tasks, effectively enabling the agent model to read from (and potentially write to) data sources or models available in the active MindsDB project.
-
-
-Create a conversational model using `langchain_engine` as an engine and a selected model provider.
-
-
-
-
-```sql
-CREATE MODEL langchain_openai_model
-PREDICT answer
-USING
- engine = 'langchain_engine', -- engine name as created via CREATE ML_ENGINE
- provider = 'openai', -- one of the available providers
- openai_api_key = 'api-key-value',
- model_name = 'gpt-3.5-turbo', -- choose one of the available OpenAI models
- mode = 'conversational', -- conversational mode
- user_column = 'question', -- column name that stores input from the user
- assistant_column = 'answer', -- column name that stores output of the model (see PREDICT column)
- base_url = 'base-url-value', -- optional, default is https://api.openai.com/v1/
- verbose = True,
- prompt_template = 'Answer the users input in a helpful way: {{question}}',
- max_tokens = 4096;
-```
-
-
-
-```sql
-CREATE MODEL langchain_anthropic_model
-PREDICT answer
-USING
- engine = 'langchain_engine', -- engine name as created via CREATE ML_ENGINE
- provider = 'anthropic', -- one of the available providers
- anthropic_api_key = 'api-key-value',
- model_name = 'claude-2.1', -- choose one of the available OpenAI models
- mode = 'conversational', -- conversational mode
- user_column = 'question', -- column name that stores input from the user
- assistant_column = 'answer', -- column name that stores output of the model (see PREDICT column)
- verbose = True,
- prompt_template = 'Answer the users input in a helpful way: {{question}}',
- max_tokens = 4096;
-```
-
-
-
-```sql
-CREATE MODEL langchain_ollama_model
-PREDICT answer
-USING
- engine = 'langchain_engine', -- engine name as created via CREATE ML_ENGINE
- provider = 'ollama', -- one of the available providers
- model_name = 'llama2', -- choose one of the models available from Ollama
- mode = 'conversational', -- conversational mode
- user_column = 'question', -- column name that stores input from the user
- assistant_column = 'answer', -- column name that stores output of the model (see PREDICT column)
- verbose = True,
- prompt_template = 'Answer the users input in a helpful way: {{question}}',
- max_tokens = 4096;
-```
-Ensure to have Ollama set up locally by following this guide on [how to download Ollama](https://ollama.com/download).
-
-
-
-```sql
-CREATE MODEL langchain_litellm_model
-PREDICT answer
-USING
- engine = 'langchain_engine', -- engine name as created via CREATE ML_ENGINE
- provider = 'litellm', -- one of the available providers
- litellm_api_key = 'api-key-value',
- model_name = 'gpt-4', -- choose one of the models available from LiteLLM
- mode = 'conversational', -- conversational mode
- user_column = 'question', -- column name that stores input from the user
- assistant_column = 'answer', -- column name that stores output of the model (see PREDICT column)
- base_url = 'https://ai.dev.mindsdb.com',
- verbose = True,
- prompt_template = 'Answer the users input in a helpful way: {{question}}',
- max_tokens = 4096;
-```
-
-
-
-```sql
-CREATE MODEL langchain_google_model
-PREDICT answer
-USING
- engine = 'langchain_engine', -- engine name as created via CREATE ML_ENGINE
- provider = 'google', -- one of the available providers
- google_api_key = 'api-key-value',
- model_name = 'gemini-1.5-flash', -- choose one of the models available from Google
- mode = 'conversational', -- conversational mode
- user_column = 'question', -- column name that stores input from the user
- assistant_column = 'answer', -- column name that stores output of the model (see PREDICT column)
- verbose = True,
- prompt_template = 'Answer the users input in a helpful way: {{question}}',
- max_tokens = 4096;
-```
-
-
-
-```sql
-CREATE MODEL langchain_mindsdb_model
-PREDICT answer
-USING
- engine = 'langchain_engine', -- engine name as created via CREATE ML_ENGINE
- provider = 'mindsdb', -- one of the available providers
- model_name = 'mindsdb_model', -- any model created within MindsDB
- mode = 'conversational', -- conversational mode
- user_column = 'question', -- column name that stores input from the user
- assistant_column = 'answer', -- column name that stores output of the model (see PREDICT column)
- verbose = True,
- prompt_template = 'Answer the users input in a helpful way: {{question}}',
- max_tokens = 4096;
-```
-
-
-
-
-## Usage
-
-The following usage examples utilize `langchain_engine` to create a model with the `CREATE MODEL` statement.
-
-Create a model that will be used to ask questions.
-
-```sql
-CREATE ML_ENGINE langchain_engine_google
-FROM langchain;
-
-CREATE MODEL langchain_google_model
-PREDICT answer
-USING
- engine = 'langchain_engine_google',
- provider = 'google',
- google_api_key = 'api-key-value',
- model_name = 'gemini-1.5-flash',
- mode = 'conversational',
- user_column = 'question',
- assistant_column = 'answer',
- verbose = True,
- prompt_template = 'Answer the users input in a helpful way: {{question}}',
- max_tokens = 4096;
-```
-
-Ask questions.
-
-```sql
-SELECT question, answer
-FROM langchain_google_model
-WHERE question = 'How many planets are in the solar system?';
-```
-
-
-**Next Steps**
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/langchain_embedding.mdx b/docs/integrations/ai-engines/langchain_embedding.mdx
deleted file mode 100644
index 4940f3b5ffe..00000000000
--- a/docs/integrations/ai-engines/langchain_embedding.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: LangChain Embedding
-sidebarTitle: LangChain Embedding
----
-
-This documentation describes the integration of MindsDB with [LangChain](https://www.langchain.com/), a framework for developing applications powered by language models.
-The integration allows for the deployment of LangChain models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use LangChain within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-
-## Setup
-
-Create an [AI/ML engine](/mindsdb_sql/sql/create/ml-engine) from the [LangChain Embedding handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/langchain_embedding_handler).
-
-```sql
-CREATE ML_ENGINE embedding
-FROM langchain_embedding;
-```
-
-Create a model using `embedding` as an engine and providing your OpenAI API key.
-
-```sql
-CREATE MODEL embedding_model
-PREDICT embeddings
-USING
- engine = "embedding",
- class = "embedding_model_provider",
- model = "embedding_model_name",
- openai_api_key = "sk-xxx",
- input_columns = ["column1", "column2", ...];
-```
-
-The following are the required and optional parameters:
-
-* `engine` is a required parameter. It defines the AI engine, as created with the `CREATE ML_ENGINE` statement, to be used.
-* `class` is a required parameter. It defines the model provider, such as `"OpenAI"` or `"HuggingFace"`.
-* `model` is a required parameter. It defined the embedding model, such as `text-embedding-3-small`.
-* `openai_api_key` is a required parameter when using OpenAI as a provider.
-* `input_columns` is an optional parameter. It defines the column(s) to be processed by the embedding model.
-
-## Usage
-
-The following usage examples utilize `embedding` to create a model with the `CREATE MODEL` statement.
-
-* Using the OpenAI models:
-
-```sql
-CREATE MODEL openai_embedding_model
-PREDICT embeddings
-USING
- engine = "embedding",
- class = "OpenAIEmbeddings",
- model = "text-embedding-3-small",
- openai_api_key = "sk-xxx",
- input_columns = ["content"];
-```
-
-* Using the HuggingFace models:
-
-```sql
-CREATE MODEL hf_embedding_model
-PREDICT embedding
-USING
- engine = 'embedding',
- class = 'HuggingFaceEmbeddings',
- model = "sentence-transformers/all-mpnet-base-v2";
-```
-
-Ensure that the model has been created successfully before using it. To do that, use the `DESCRIBE` command and look at the `status` column.
-
-```sql
-DESCRIBE openai_embedding_model;
-```
-
-
-**Next Steps**
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/lightfm.mdx b/docs/integrations/ai-engines/lightfm.mdx
deleted file mode 100644
index f7aeca7d46e..00000000000
--- a/docs/integrations/ai-engines/lightfm.mdx
+++ /dev/null
@@ -1,140 +0,0 @@
----
-title: LightFM
-sidebarTitle: LightFM
----
-
-The [LightFM](https://github.com/lyst/lightfm) handler functions as an interface for the LightFM Python recommendation library. The current implementation supports collaborative filtering for user-item and item-item recommendations. It allows users to make use of the powerful LightFM recommendation framework library for performing recommendation on interaction data sets.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-2. To use LightFM within MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
-
-
-Please note that, if you are using Docker to run MindsDB, before installing the dependencies for this integration as per the instructions given above, it is currently necessary to install a couple of Linux development packages in the container. To do this, run the following commands:
-
-Start an interactive shell in the container:
-```bash
-docker exec -it mindsdb_container sh
-```
-If you haven't specified a name when spinning up the MindsDB container with `docker run`, you can find it by running `docker ps`.
-
-Install the required Linux development packages:
-```bash
-apt-get -y update
-apt-get install -y build-essential python3-dev libopenblas-dev
-```
-
-
-As the current implementation stands, the input data should be a table containing user-item interaction data:
-
-```
-+---------+---------+--------+
-| user_id | item_id | rating |
-+---------+---------+--------+
-| 1 | 2 | 4 |
-| 1 | 3 | 7 |
-+---------+---------+--------+
-```
-
-
-Please note that at the moment this integration does not support the `FINETUNE` feature.
-
-
-## Example
-
-Before creating a LightFM model, we need to create an ML engine.
-
-```sql
-CREATE ML_ENGINE lightfm
-FROM lightfm;
-```
-
-You can verify it by running `SHOW ML_ENGINES`.
-
-Now let's create a LightFM model specifying the necessary input parameters.
-
-```sql
-CREATE MODEL lightfm_demo
-FROM mysql_demo_db (SELECT * FROM movie_lens_ratings)
-PREDICT movieId
-USING
- engine = 'lightfm',
- item_id = 'movieId',
- user_id = 'userId',
- threshold = 4,
- n_recommendations = 10,
- evaluation = true;
-```
-
-The required parameters include the following:
-
-- The `item_id` parameter that stores items to be recommended; here, these are movies.
-- The `user_id` parameter that stores users to whom items are recommended.
-- The `threshold` parameter is used when score of interaction is provided in the input data. It defines the threshold for the recommendation.
-- The `n_recommendations` parameter stores the number of recommendations to be returned.
-
-Optionally, you can provide the `evaluation` parameter if you want to store the evaluation metrics. It is set to `false` by default.
-
-
-Here is how to connect the `mysql_demo_db` used for training the model:
-
-```sql
-CREATE DATABASE mysql_demo_db
-WITH ENGINE = 'mysql',
-PARAMETERS = {
- "user": "user",
- "password": "MindsDBUser123!",
- "host": "samples.mindsdb.com",
- "port": "3306",
- "database": "public"
-};
-```
-
-
-Let's query for the following recommendations:
-
-- Get recommendations for all item_item pairs:
-
- ```sql
- SELECT b.*
- FROM lightfm_demo AS b
- WHERE recommender_type = 'item_item';
- ```
-
-- Get item-item recommendations for a specific item_id:
-
- ```sql
- SELECT b.*
- FROM lightfm_demo AS b
- WHERE movieId = 100
- USING recommender_type = 'item_item';
- ```
-
-- Get recommendations for all user-item pairs:
-
- ```sql
- SELECT b.*
- FROM lightfm_demo AS b
- where recommender_type = 'user_item';
- ```
-
-- Get user-item recommendations for a specific user_id:
-
- ```sql
- SELECT b.*
- FROM lightfm_demo AS b
- WHERE userId = 100
- USING recommender_type = 'user_item';
- ```
-
-- Get user-item recommendations for multiple user_ids:
-
- ```sql
- SELECT b.*
- FROM mysql_demo_db.movie_lens_ratings AS a
- JOIN lightfm_demo AS b
- WHERE a.userId in (215,216);
- ```
diff --git a/docs/integrations/ai-engines/litellm.mdx b/docs/integrations/ai-engines/litellm.mdx
deleted file mode 100644
index af26de31150..00000000000
--- a/docs/integrations/ai-engines/litellm.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: LiteLLM
-sidebarTitle: LiteLLM
----
-
-This documentation describes the integration of MindsDB with [LiteLLM](https://www.litellm.ai/), a framework that simplifies access to models of various providers.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use LiteLLM within MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
-3. Obtain the API key of the model provider, if required.
-
-## Setup
-
-Create an AI engine from the [LiteLLM handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/litellm_handler).
-
-```sql
-CREATE ML_ENGINE litellm
-FROM litellm;
-```
-
-Create a model using `litellm` as an engine.
-
-```sql
-CREATE MODEL litellm_model
-PREDICT target_column
-USING
- engine = "litellm_engine",
- model = "gpt-4",
- base_url = "https://api.openai.com/v1",
- api_key = "sk-xxx",
- prompt_template = "answer questions in three bullet points: {question}";
-```
-
-The parameters include:
-
-* `engine` is the LiteLLM engine created based on the LiteLLM handler with the [`CREATE ML_ENGINE`](https://docs.mindsdb.com/mindsdb_sql/sql/create/ml-engine) statement.
-
-* `model` is the one of the models supported by LiteLLM. See the [complete list of the supported providers and models here](https://docs.litellm.ai/docs/providers).
-
-
- Note that you may need to provide the model name following this format: `provider/model_name`. For example, `ollama/llama2` or `openai/gpt-4o`.
-
-
-* `base_url` is an optional parameter that stores the base URL for accessing models.
-
-* `api_key` stores the API key of the provider whose model is used.
-
-* `prompt_template` stores the instructions to the model.
-
-## Usage
-
-Here is how to create and use models through LiteLLM in MindsDB.
-
-```sql
-CREATE ML_ENGINE litellm
-FROM litellm;
-
-CREATE MODEL chat_model
-PREDICT answer
-USING
- engine = "litellm",
- model = "ollama/llama2:latest",
- base_url = "http://localhost:11434";
-
-SELECT *
-FROM chat_model
-WHERE question = "what is ai?";
-```
diff --git a/docs/integrations/ai-engines/llamaindex.mdx b/docs/integrations/ai-engines/llamaindex.mdx
deleted file mode 100644
index fa48241eb1a..00000000000
--- a/docs/integrations/ai-engines/llamaindex.mdx
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: LlamaIndex
-sidebarTitle: LlamaIndex
----
-
-## LlamaIndex Handler
-
-This documentation describes the integration of MindsDB with [LlamaIndex](https://docs.llamaindex.ai/en/stable/), a framework for building context-augmented generative AI applications with LLMs.
-
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use LlamaIndex within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-3. Obtain the OpenAI API key required to OpenAI LLMs. Follow the [instructions for obtaining the API key](https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key).
-
-## Setup
-
-Create an AI engine from the [Llamaindex handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/llama_index_handler).
-
-```sql
-CREATE ML_ENGINE llama_index
-FROM llama_index
-USING
- openai_api_key = 'api-key-value';
-```
-
-Create a model using `llama_index` as an engine and OpenAI as a model provider.
-
-```sql
-CREATE MODEL chatbot_model
-PREDICT answer
-USING
- engine = 'llama_index', -- engine name as created via CREATE ML_ENGINE
- input_column = 'question',
- mode = 'conversational', -- optional
- user_column = 'question', -- optional: used only for conversational mode
- assistant_column = 'answer'; -- optional: used only for conversational mode
-```
-
-
-## Usage
-
-Here is how to create a model that answers questions by reading a page from the web:
-
-```sql
-CREATE MODEL qa_model
-PREDICT answer
-USING
- engine = 'llama_index',
- reader = 'SimpleWebPageReader',
- source_url_link = 'https://mindsdb.com/about',
- input_column = 'question';
-```
-
-Query the model to get answer:
-
-```sql
-SELECT question, answer
-FROM mindsdb.qa_model
-WHERE question = "What is MindsDB's story?"
-```
-
-Here is the output:
-
-```sql
-+---------------------------+-------------------------------+
-|question |answer |
-+---------------------------+-------------------------------+
-|What is MindsDB's story? |MindsDB is a fast-growing open-source ...|
-+---------------------------+-------------------------------+
-
-```
-
-### Configuring SimpleWebPageReader for Specific Domains
-
-When SimpleWebPageReader is used it can be configured to interact only with specific domains by using the `web_crawling_allowed_sites` setting in the `config.json` file.
-This feature allows you to restrict the handler to read and process content only from the domains you specify, enhancing security and control over web interactions.
-
-To configure this, simply list the allowed domains under the `web_crawling_allowed_sites` key in `config.json`. For example:
-
-```json
-"web_crawling_allowed_sites": [
- "https://docs.mindsdb.com",
- "https://another-allowed-site.com"
-]
-```
-
-
-
-**Next Steps**
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
-
diff --git a/docs/integrations/ai-engines/merlion.mdx b/docs/integrations/ai-engines/merlion.mdx
deleted file mode 100644
index 7f068e165dc..00000000000
--- a/docs/integrations/ai-engines/merlion.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Merlion
-sidebarTitle: Merlion
----
-
-
-This page is a work in progress.
-
\ No newline at end of file
diff --git a/docs/integrations/ai-engines/monkeylearn.mdx b/docs/integrations/ai-engines/monkeylearn.mdx
deleted file mode 100644
index 7f977b56f31..00000000000
--- a/docs/integrations/ai-engines/monkeylearn.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: MonkeyLearn
-sidebarTitle: MonkeyLearn
----
-
-MonkeyLearn is a No-code text analysis tool. MindsDB allows you to use pre-built & custom MonkeyLearn models to use its features like classifying text according to user needs and fields of interest like business, reviews, comments, and customer feedback.
-
-## How to bring MonkeyLearn Models to MindsDB
-
-Before creating a model, you will need to create the ML_ENGINE for MonkeyLearn using the `CREATE ML_ENGINE` syntax
-
-```sql
-CREATE ML_ENGINE monkeylearn_engine
-FROM monkeylearn
-USING
- monkeylearn_api_key = 'monkeylearn_api_key';
-```
-
-
-
-
-
-
-Once the ML_ENGINE is created, we use the `CREATE MODEL` statement to bring MonkeyLearn models to MindsDB.
-
-For this example, you will make use of MonkeyLearn's pre-made model `E-commerce Support Ticket Classifier`.
-
-```sql
-CREATE MODEL mindsdb.ecommerce_ticket_classifier
-PREDICT tag
-USING
-engine = 'monkeylearn_engine',
-monkeylearn_api_key = 'api_key',
-model_id = 'model_id',
-input_column = 'text';
-```
-
-On execution, you get:
-
-
-
-
-
-Where:
-
-| Expression | Description |
-|----------------------------------------|----------------------------------------------------------|
-| `ecommerce_ticket_classifier` | The model name provided to the model created in MindsDB. |
-| `tag` | The column that will provide the predicted result. |
-| `engine` | The ML framework engine used, which is MonkeyLearn. |
-| `monkeylearn_api_key` | The API Key of the model provided by MonkeyLearn. |
-| `model_id` | The respective model's ID you want to make use of. |
-| `input_column` | Specifies the input column fed to the model |
-
-
-You can use the `DESCRIBE` syntax to verify the model's status.
-
-```sql
-DESCRIBE ecommerce_ticket_classifier;
-```
-
-On execution, you get:
-
-
-
-
-
-Use the `SELECT` statement to make a prediction on the model.
-
-```sql
-SELECT * FROM ecommerce_ticket_classifier
-WHERE text = 'Where is my order? The delivery status shows shipped. When I call the delivery driver there is no response!';
-```
-
-On execution, you get:
-
-
-
-
-
-### Create and train a model.
-
-You can also create a model with a dataset. For this example, we will be using a dataset consisting of messages for E-commerce support tickets. The dataset will be [uploaded as a file](https://docs.mindsdb.com/sql/create/file) onto the GUI.
-
-Use the `CREATE MODEL` syntax:
-
-```sql
-CREATE MODEL mindsdb.ecommerce_ticket_classifier2
-FROM files (select * from queries2)
-PREDICT tag
-USING
-engine = 'monkeylearn_engine',
-monkeylearn_api_key = 'api_key',
-model_id = 'model_id',
-input_column = 'text';
-```
-
-Use the `SELECT` statement to make a prediction
-
-```sql
-SELECT * FROM ecommerce_ticket_classifier2
-WHERE text = 'I ordered 4 units but only received 3';
-```
-
-On execution, you get:
-
-
-
-
-
-The MindsDB model created with the MonkeyLearn model successfully predicted the tag of an E-commerce support ticket according to the text input.
diff --git a/docs/integrations/ai-engines/ollama.mdx b/docs/integrations/ai-engines/ollama.mdx
deleted file mode 100644
index 9cca48ce604..00000000000
--- a/docs/integrations/ai-engines/ollama.mdx
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: Ollama
-sidebarTitle: Ollama
----
-
-This documentation describes the integration of MindsDB with [Ollama](https://ollama.com/), a tool that enables local deployment of large language models.
-The integration allows for the deployment of Ollama models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Ollama within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-3. Follow [this instruction](https://github.com/ollama/ollama?tab=readme-ov-file#ollama) to download Ollama and run models locally.
-
-
-Here are the recommended system specifications:
-
-- A working Ollama installation, as in point 3.
-- For 7B models, at least 8GB RAM is recommended.
-- For 13B models, at least 16GB RAM is recommended.
-- For 70B models, at least 64GB RAM is recommended.
-
-
-## Setup
-
-Create an AI engine from the [Ollama handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/ollama_handler).
-
-```sql
-CREATE ML_ENGINE ollama
-FROM ollama;
-```
-
-Create a model using `ollama` as an engine.
-
-```sql
-CREATE MODEL ollama_model
-PREDICT completion
-USING
- engine = 'ollama', -- engine name as created via CREATE ML_ENGINE
- model_name = 'model-name', -- model run with 'ollama run model-name'
- ollama_serve_url = 'http://localhost:11434';
-```
-
-
-If you run Ollama and MindsDB in separate Docker containers, use the `localhost` value of the container. For example, `ollama_serve_url = 'http://host.docker.internal:11434'`.
-
-
-You can find [available models here](https://github.com/ollama/ollama?tab=readme-ov-file#model-library).
-
-## Usage
-
-The following usage examples utilize `ollama` to create a model with the `CREATE MODEL` statement.
-
-Deploy and use the `llama3` model.
-
-First, [download Ollama](https://github.com/ollama/ollama?tab=readme-ov-file#ollama) and run the model locally by executing `ollama pull llama3`.
-
-Now deploy this model within MindsDB.
-
-```sql
-CREATE MODEL llama3_model
-PREDICT completion
-USING
- engine = 'ollama',
- model_name = 'llama3';
-```
-
-
-Models can be run in either the 'generate' or 'embedding' modes. The 'generate' mode is used for text generation, while the 'embedding' mode is used to generate embeddings for text.
-
-However, these modes can only be used with models that support them. For example, the `moondream` model supports both modes.
-
-By default, if the mode is not specified, the model will run in 'generate' mode if multiple modes are supported. If only one mode is supported, the model will run in that mode.
-
-To specify the mode, use the `mode` parameter in the `CREATE MODEL` statement. For example, `mode = 'embedding'`.
-
-
-Query the model to get predictions.
-
-```sql
-SELECT text, completion
-FROM llama3_model
-WHERE text = 'Hello';
-```
-
-Here is the output:
-
-```sql
-+-------+--------------------------------------------------------------------------------------+
-| text | completion |
-+-------+--------------------------------------------------------------------------------------+
-| Hello | Hello back to you! Is there something I can help you with or would you like to chat? |
-+-------+--------------------------------------------------------------------------------------+
-```
-
-You can override the prompt message as below:
-
-```sql
-SELECT text, completion
-FROM llama3_model
-WHERE text = 'Hello'
-USING
- prompt_template = 'Answer using exactly five words: {{text}}:';
-```
-
-Here is the output:
-
-```sql
-+-------+------------------------------+
-| text | completion |
-+-------+------------------------------+
-| Hello | Warmly welcome to our space. |
-+-------+------------------------------+
-```
-
-
-**Next Steps**
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/openai.mdx b/docs/integrations/ai-engines/openai.mdx
deleted file mode 100644
index 448b86c10e3..00000000000
--- a/docs/integrations/ai-engines/openai.mdx
+++ /dev/null
@@ -1,320 +0,0 @@
----
-title: OpenAI
-sidebarTitle: OpenAI
----
-
-This documentation describes the integration of MindsDB with [OpenAI](https://openai.com/), an AI research organization known for developing AI models like GPT-3 and GPT-4.
-The integration allows for the deployment of OpenAI models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use OpenAI within MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
-3. Obtain the OpenAI API key required to deploy and use OpenAI models within MindsDB. Follow the [instructions for obtaining the API key](https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key).
-
-## Setup
-
-Create an AI engine from the [OpenAI handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/openai_handler).
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'api-key-value';
-```
-
-Create a model using `openai_engine` as an engine.
-
-```sql
-CREATE MODEL openai_model
-PREDICT target_column
-USING
- engine = 'openai_engine', -- engine name as created via CREATE ML_ENGINE
- api_base = 'base-url', -- optional, replaces the default base URL
- mode = 'mode_name', -- optional, mode to run the model in
- model_name = 'openai_model_name', -- optional with default value of gpt-3.5-turbo
- question_column = 'question', -- optional, column name that stores user input
- context_column = 'context', -- optional, column that stores context of the user input
- prompt_template = 'input message to the model here', -- optional, user provides instructions to the model here
- user_column = 'user_input', -- optional, stores user input
- assistant_column = 'conversation_context', -- optional, stores conversation context
- prompt = 'instruction to the model', -- optional stores instruction to the model
- max_tokens = 100, -- optional, token limit for answer
- temperature = 0.3, -- temp
- json_struct = {
- 'key': 'value',
- ...
- }'
-```
-
-
-If you want to update the `prompt_template` parameter, you do not have to recreate the model. Instead, you can override the `prompt_template` parameter at prediction time like this:
-
-```sql
-SELECT question, answer
-FROM openai_model
-WHERE question = 'input question here'
-USING prompt_template = 'input new message to the model here';
-```
-
-
-The following parameters are available to use when creating an OpenAI model:
-
-
-
-
- This is the engine name as created with the [`CREATE ML_ENGINE`](https://docs.mindsdb.com/mindsdb_sql/sql/create/ml-engine) statement.
-
-
-
- This parameter is optional.
-
- It replaces the default OpenAI's base URL with the defined value.
-
-
-
- This parameter is optional.
-
- The available modes include `default`, `conversational`, `conversational-full`, `image`, and `embedding`.
-
- - The `default` mode is used by default. The model replies to the `prompt_template` message.
- - The `conversational` mode enables the model to read and reply to multiple messages.
- - The `conversational-full` mode enables the model to read and reply to multiple messages, one reply per message.
- - The `image` mode is used to create an image instead of a text reply.
- - The `embedding` mode enables the model to return output in the form of embeddings.
-
- You can find [all models supported by each mode here](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/handlers/openai_handler/constants.py).
-
-
-
- This parameter is optional. By default, the `gpt-3.5-turbo` model is used.
-
- You can find [all available models here](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/handlers/openai_handler/constants.py).
-
-
-
- This parameter is optional. It contains the column name that stores user input.
-
-
-
- This parameter is optional. It contains the column name that stores context for the user input.
-
-
-
- This parameter is optional if you use `question_column`. It stores the message or instructions to the model. *Please note that this parameter can be overridden at prediction time.*
-
-
-
- This parameter is optional. It defines the maximum token cost of the prediction. *Please note that this parameter can be overridden at prediction time.*
-
-
-
- This parameter is optional. It defines how *risky* the answers are. The value of `0` marks a well-defined answer, and the value of `0.9` marks a more creative answer. *Please note that this parameter can be overridden at prediction time.*
-
-
-
- This parameter is optional. It is used to extract JSON data from a text column provided in the `prompt_template` parameter. [See examples here](/use-cases/data_enrichment/json-from-text#extract-json-from-text-data).
-
-
-
-## Usage with OpenAI-Compatible APIs
-
-The OpenAI handler can be used with any OpenAI-compatible APIs by providing the `api_base` parameter that stores the base URL of the OpenAI-compatible APIs.
-
-Here is an example of how to use the OpenAI handler with OpenRouter, the OpenAI-compatible interface for accessing LLMs.
-
-```sql
-CREATE MODEL openrouter_model
-PREDICT answer
-USING
- engine = 'openai_engine',
- api_base = 'https://openrouter.ai/api/v1',
- openai_api_key = 'openrouter-api-key',
- model_name = 'mistralai/devstral-small-2505',
- prompt_template = 'answer a question: {{question}}';
-
-DESCRIBE openrouter_model;
-
-SELECT * FROM openrouter_model
-WHERE question = 'how many planets are in the solar system?';
-```
-
-When using OpenAI-compatible APIs, it is required to provide the base URL in the `api_base` parameter and the API key in the `openai_api_key` parameter.
-
-## Usage
-
-Here are the combination of parameters for creating a model:
-
-1. Provide a `prompt_template` alone.
-2. Provide a `question_column` and optionally a `context_column`.
-3. Provide a `prompt`, `user_column`, and `assistant_column` to create a model in the conversational mode.
-
-The following usage examples utilize `openai_engine` to create a model with the `CREATE MODEL` statement.
-
-
-
-
- Here is how to create a model that answers questions without context.
-
- ```sql
- CREATE MODEL openai_model
- PREDICT answer
- USING
- engine = 'openai_engine',
- question_column = 'question';
- ```
-
- Query the model to get predictions.
-
- ```sql
- SELECT question, answer
- FROM openai_model
- WHERE question = 'Where is Stockholm located?';
- ```
-
- Here is the output:
-
- ```sql
- +---------------------------+-------------------------------+
- |question |answer |
- +---------------------------+-------------------------------+
- |Where is Stockholm located?|Stockholm is located in Sweden.|
- +---------------------------+-------------------------------+
- ```
-
-
-
- Here is how to create a model that answers questions with context.
-
- ```sql
- CREATE MODEL openai_model
- PREDICT answer
- USING
- engine = 'openai_engine',
- question_column = 'question',
- context_column = 'context';
- ```
-
- Query the model to get predictions.
-
- ```sql
- SELECT context, question, answer
- FROM openai_model
- WHERE context = 'Answer accurately'
- AND question = 'How many planets exist in the solar system?';
- ```
-
- On execution, we get:
-
- ```sql
- +-------------------+-------------------------------------------+----------------------------------------------+
- |context |question |answer |
- +-------------------+-------------------------------------------+----------------------------------------------+
- |Answer accurately |How many planets exist in the solar system?| There are eight planets in the solar system. |
- +-------------------+-------------------------------------------+----------------------------------------------+
- ```
-
-
-
- Here is how to create a model that offers the most flexible mode of operation. It answers any query provided in the `prompt_template` parameter.
-
-
- Good prompts are the key to getting great completions out of large language models like the ones that OpenAI offers. For best performance, we recommend you read their [prompting guide](https://beta.openai.com/docs/guides/completion/prompt-design) before trying your hand at prompt templating.
-
-
- Let's look at an example that reuses the `openai_model` model created earlier and overrides parameters at prediction time.
-
- ```sql
- SELECT instruction, answer
- FROM openai_model
- WHERE instruction = 'Speculate extensively'
- USING
- prompt_template = '{{instruction}}. What does Tom Hanks like?',
- max_tokens = 100,
- temperature = 0.5;
- ```
-
- On execution, we get:
-
- ```sql
- +----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |instruction |answer |
- +----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |Speculate extensively |Some people speculate that Tom Hanks likes to play golf, while others believe that he enjoys acting and directing. It is also speculated that he likes to spend time with his family and friends, and that he enjoys traveling.|
- +----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- ```
-
-
-
- Here is how to create a model in the conversational mode.
-
- ```sql
- CREATE MODEL openai_chat_model
- PREDICT response
- USING
- engine = 'openai_engine',
- mode = 'conversational',
- model_name = 'gpt-3.5-turbo',
- user_column = 'user_input',
- assistant_column = 'conversation_history',
- prompt = 'Answer the question in a helpful way.';
- ```
-
- And here is how to query this model:
-
- ```sql
- SELECT response
- FROM openai_chat_model
- WHERE user_input = ''
- AND conversation_history = '';
- ```
-
-
-
-
-**Next Steps**
-
-Follow [this tutorial on sentiment analysis](/use-cases/data_enrichment/sentiment-analysis-inside-mysql-with-openai) and [this tutorial on finetuning OpenAI models](/use-cases/automated_finetuning/openai) to see more use case examples.
-
-
-## Troubleshooting Guide
-
-
-`Authentication Error`
-
-* **Symptoms**: Failure to authenticate to the OpenAI API.
-* **Checklist**:
- 1. Make sure that your OpenAI account is active.
- 2. Confirm that your API key is correct.
- 3. Ensure that your API key has not been revoked.
- 4. Ensure that you have not exceeded the API usage or rate limit.
-
-
-
-`SQL statement cannot be parsed by mindsdb_sql`
-
-* **Symptoms**: SQL queries failing or not recognizing table and model names containing spaces or special characters.
-* **Checklist**:
- 1. Ensure table names with spaces or special characters are enclosed in backticks.
- Examples:
- * Incorrect:
- ```sql
- SELECT input.text, output.sentiment
- FROM integration.travel data AS input
- JOIN openai_engine AS output
- ```
- * Incorrect:
- ```sql
- SELECT input.text, output.sentiment
- FROM integration.'travel data' AS input
- JOIN openai_engine AS output
- ```
- * Correct:
- ```sql
- SELECT input.text, output.sentiment
- FROM integration.`travel data` AS input
- JOIN openai_engine AS output
- ```
-
\ No newline at end of file
diff --git a/docs/integrations/ai-engines/popularity-recommender.mdx b/docs/integrations/ai-engines/popularity-recommender.mdx
deleted file mode 100644
index 35ba1b26225..00000000000
--- a/docs/integrations/ai-engines/popularity-recommender.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: Popularity Recommender
-sidebarTitle: Popularity Recommender
----
-
-The popularity recommender is built using [Polars](https://pola.rs/) to create a simple but fast popularity recommender, recommending items based on global popularity and personal past interaction.
-It identifies the most popular items from the entire dataset and excludes any items a user has already interacted with.
-Its straightforward methodology makes it an excellent benchmark for comparing more sophisticated recommendation engines.
-The ideal use cases for this handler include analyzing ecommerce rating data, web page browsing data, or past purchase data for serving users recommendations.
-
-As the current implementations stand, the input data should be a table containing user-item interaction data:
-
-```
-+---------+---------+--------+
-| user_id | item_id | rating |
-+---------+---------+--------+
-| 1 | 2 | 4 |
-| 1 | 3 | 7 |
-+---------+---------+--------+
-```
-
-
-Please note that at the moment this integrations does not support `DESCRIBE` and `FINETUNE` features.
-
-
-## Example
-
-Before creating a popularity recommender model, we need to create an ML engine.
-
-```sql
-CREATE ML_ENGINE popularity_recommender
-FROM popularity_recommender;
-```
-
-You can verify it by running `SHOW ML_ENGINES`.
-
-Now let's create a popularity recommender model specifying the necessary input parameters.
-
-```sql
-CREATE MODEL pop_rec_demo
-FROM mysql_demo_db (SELECT * FROM movie_lens_ratings)
-PREDICT movieId
-USING
- engine = 'popularity_recommender',
- item_id = 'movieId',
- user_id = 'userId',
- n_recommendations = 10;
-```
-
-The required parameters include the following:
-
-- The `item_id` parameter that stores items to be recommended; here, these are movies.
-- The `user_id` parameter that stores users to whom items are recommended.
-- The `n_recommendations` parameter stores the number of recommendations to be returned.
-
-
-Here is how to connect the `mysql_demo_db` used for training the model:
-
-```sql
-CREATE DATABASE mysql_demo_db
-WITH ENGINE = 'mysql',
-PARAMETERS = {
- "user": "user",
- "password": "MindsDBUser123!",
- "host": "samples.mindsdb.com",
- "port": "3306",
- "database": "public"
-};
-```
-
-
-Here is how to get recommendations per user based on the global most popular items:
-
-```sql
-SELECT b.*
-FROM mysql_demo_db.movie_lens_ratings AS a
-JOIN pop_rec_demo AS b;
-```
-
-And here is how to get recommendations for specific users based on popularity:
-
-```sql
-SELECT b.*
-FROM mysql_demo_db.movie_lens_ratings AS a
-JOIN pop_rec_demo AS b
-WHERE a.userId in (215,216);
-```
diff --git a/docs/integrations/ai-engines/portkey.mdx b/docs/integrations/ai-engines/portkey.mdx
deleted file mode 100644
index e3d1d6f4b3e..00000000000
--- a/docs/integrations/ai-engines/portkey.mdx
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: Portkey
-sidebarTitle: Portkey
----
-
-This documentation describes the integration of MindsDB with [Portkey](https://www.portkey.com/), an AI Gateway that allows developers to connect to All the AI models in the world with a single API.
-Portkey also brings in observability, caching, and other features that are useful for building production-grade AI applications.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-2. To use Portkey within MindsDB, install the required dependencies following [this instruction](https://docs.mindsdb.com/setup/self-hosted/docker#install-dependencies).
-3. Obtain the Portkey API key required to deploy and use Portkey within MindsDB. Follow the [instructions for obtaining the API key](https://docs.portkey.ai/docs/api-reference/introduction).
-
-## Setup
-
-Create an AI engine from the [Portkey handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/portkey_handler).
-
-
-You can pass all the parameters that are supported by Portkey inside the `USING` clause.
-
-
-
-```sql
-CREATE ML_ENGINE portkey_engine
-FROM portkey
-USING
- portkey_api_key = '{PORTKEY_API_KEY}', -- get this from Portkey dashboard (https://app.portkey.ai/api-keys)
- config = '{PORTKEY_CONFIG_ID}'; -- get this from Portkey dashboard (https://app.portkey.ai/configs)
-```
-
-Create a model using `portkey_engine` as an engine.
-
-You can pass all the parameters supported by Portkey Chat completions here inside the `USING` clause.
-refer [Portkey Chat completions](https://docs.portkey.ai/docs/provider-endpoints/chat) for more details.
-
-
-```sql
-CREATE MODEL portkey_model
-PREDICT answer
-USING
- engine = 'portkey_engine',
- model = 'gpt-3.5-turbo',
- temperature = 0.2;
-```
-
-
-The integrations between Portkey and MindsDB was implemented using [Portkey Python SDK](https://docs.portkey.ai/docs/api-reference/portkey-sdk-client).
-
-
-Query the model to get predictions.
-
-```sql
-SELECT question, answer
-FROM portkey_model
-WHERE question = 'Where is Stockholm located?';
-```
-
-Here is the output:
-
-```sql
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| question | answer |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-| Where is Stockholm located? | Stockholm is the capital and largest city of Sweden. It is located on Sweden's south-central east coast, where Lake Mälaren meets the Baltic Sea. |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-## Usage
-
-The following usage examples utilize `portkey_engine` and `gpt-3.5-turbo` to create a model with the `CREATE MODEL` statement.
-
-### Creating a Summarization Model
-
-This example demonstrates how to create a model to summarize text using Portkey:
-
-```sql
-CREATE MODEL summarization_model
-PREDICT summary
-USING
- engine = 'portkey_engine',
- model = 'gpt-3.5-turbo',
- temperature = 0.5,
- max_tokens = 100;
-
-SELECT document, summary
-FROM summarization_model
-WHERE document = 'MindsDB is a predictive platform that connects machine learning models with databases.';
-
-```
-
-### Generating Sentiment Analysis
-
-```sql
-CREATE MODEL sentiment_model
-PREDICT sentiment
-USING
- engine = 'portkey_engine',
- model = 'gpt-3.5-turbo',
- temperature = 0.3;
-
-SELECT review, sentiment
-FROM sentiment_model
-WHERE review = 'The product was excellent and exceeded expectations!';
-
-```
-
-### Translating Text
-
-```sql
-CREATE MODEL translation_model
-PREDICT translation
-USING
- engine = 'portkey_engine',
- model = 'gpt-3.5-turbo',
- temperature = 0.4;
-
-SELECT original_text, translation
-FROM translation_model
-WHERE original_text = 'Hello, how are you?' AND target_language = 'es';
-
-```
-
-### Extracting Key Information
-
-```sql
-CREATE MODEL extraction_model
-PREDICT extracted_data
-USING
- engine = 'portkey_engine',
- model = 'gpt-3.5-turbo',
- temperature = 0.6;
-
-SELECT text, extracted_data
-FROM extraction_model
-WHERE text = 'Minds , 35, lives in New York and works as a software engineer.';
-
-```
-
-
-
-**Next Steps**
-
-Go to the [Use Cases](https://docs.mindsdb.com/use-cases/overview) section to see more examples.
-
diff --git a/docs/integrations/ai-engines/pycaret.mdx b/docs/integrations/ai-engines/pycaret.mdx
deleted file mode 100644
index 6f5caa99e11..00000000000
--- a/docs/integrations/ai-engines/pycaret.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: PyCaret
-sidebarTitle: PyCaret
----
-
-PyCaret ML handler for MindsDB.
-
-## PyCaret
-
-PyCaret is an open-source, low-code machine learning library in Python that automates machine learning workflows.
-
-## Example Usage
-
-### Creation
-
-Required parameters:
-- `model_type`: the type of model that you want to build
-- `model_name`: you can pass in supported models using this. eg. supported models for regression can be found [here](https://pycaret.readthedocs.io/en/latest/api/regression.html#pycaret.regression.create_model). You can also set it to `best` to generate the best model (only supported for classification, regression and time_series)
-
-In addition to required parameters, there are 3 categories of optional parameters `setup`, `create` and `predict`. These are passed in during various stages of model development (see below). You have to prefix the arguments with one of these categories to pass in during the workflow.
-- `setup_*`: these are passed to `setup()` function while creating model. You can find these in PyCaret's documentation. eg. For regression, the setup function's arguments are documented [here](https://pycaret.readthedocs.io/en/latest/api/regression.html#pycaret.regression.RegressionExperiment.setup).
-- `create_*`: these are passed into `create_model()` or `compare_models()` function depending on the `model_name`. For classification you can find the docs [here](https://pycaret.readthedocs.io/en/latest/api/classification.html#pycaret.classification.create_model).
-- `predict_*`: these are passed into `predict_model()` function of PyCaret. eg. You can find the documentation for classification [here](https://pycaret.readthedocs.io/en/latest/api/classification.html#pycaret.classification.predict_model).
-
-These are the supported types of models (`model_type`):
-- `classification`
-- `regression`
-- `time_series`
-- `clustering`
-- `anomaly`
-
-Below is the example for creating a classification model
-
-~~~sql
-CREATE MODEL my_pycaret_class_model
-FROM irisdb
- (SELECT SepalLengthCm, SepalWidthCm, PetalLengthCm, PetalWidthCm, Species FROM Iris)
-PREDICT Species
-USING
- engine = 'pycaret',
- model_type = 'classification',
- model_name = 'xgboost',
- setup_session_id = 123;
-~~~~
-
-For model types that don't want a target column (like anomaly and clustering), just pass in any one of the column names in `PREDICT` clause to comply with MindsDB's SQL syntax:
-
-~~~sql
-CREATE MODEL my_pycaret_anom_model
-FROM anomalydb
- (SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10 FROM anomaly)
-PREDICT Col10
-USING
- engine = 'pycaret',
- model_type = 'anomaly',
- model_name = 'iforest',
- setup_session_id = 123;
-~~~~
-
-### Prediction
-
-You can predict using normal mindsdb syntax like so:
-
-~~~sql
-SELECT t.Id, m.prediction_label, m.prediction_score
-FROM irisdb.Iris as t
-JOIN my_pycaret_class_model AS m;
-~~~~
diff --git a/docs/integrations/ai-engines/ray-serve.mdx b/docs/integrations/ai-engines/ray-serve.mdx
deleted file mode 100644
index 5f35905389e..00000000000
--- a/docs/integrations/ai-engines/ray-serve.mdx
+++ /dev/null
@@ -1,396 +0,0 @@
----
-title: MindsDB and Ray Serve
-sidebarTitle: Ray Serve
----
-
-Ray Serve is a simple high-throughput model serving library that can wrap around your ML model.
-
-## Simple Example of Logistic Regression
-
-In this example, we train an external scikit-learn model to use for making
-predictions.
-
-### Creating the Ray Serve Model
-
-Let's look at an actual model wrapped by a class that complies with the
-requirements.
-
-```python
-import ray
-from fastapi import Request, FastAPI
-from ray import serve
-import time
-import pandas as pd
-import json
-
-app = FastAPI()
-
-async def parse_req(request: Request):
- data = await request.json()
- target = data.get('target', None)
- di = json.loads(data['df'])
- df = pd.DataFrame(di)
- return df, target
-
-
-@serve.deployment(route_prefix="/my_model")
-@serve.ingress(app)
-class MyModel:
- @app.post("/train")
- async def train(self, request: Request):
- df, target = await parse_req(request)
- feature_cols = list(set(list(df.columns)) - set([target]))
- self.feature_cols = feature_cols
- X = df.loc[:, self.feature_cols]
- Y = list(df[target])
- self.model = LogisticRegression()
- self.model.fit(X, Y)
- return {'status': 'ok'}
-
- @app.post("/predict")
- async def predict(self, request: Request):
- df, _ = await parse_req(request)
- X = df.loc[:, self.feature_cols]
- predictions = self.model.predict(X)
- index = list(range(len(predictions)))
- pred_dict = {'prediction': [float(x) for x in predictions], 'index': index}
- return pred_dict
-
-my_app = MyModel.bind()
-```
-
-After saving the above code into `rayserve.py`, run it using `serve run rayserve:my_app`.
-
-It is important to have the `/train` and `/predict` endpoints.
-
-The `/train` endpoint accepts two parameters to be sent via POST:
-
-- `df` is a serialized dictionary that can be converted into a pandas dataframe.
-- `target` is the name of the target column to be predicted.
-
-It returns a JSON object containing the `status` key and the `ok` value.
-
-The `/predict` endpoint requires one parameter to be sent via POST:
-
-- `df` is a serialized dictionary that can be converted into a pandas dataframe.
-
-It returns a dictionary containing the `prediction` and `index` keys. It stores the
-predictions. Additional keys can be returned for confidence and confidence
-intervals.
-
-### Bringing the Ray Serve Model to MindsDB
-
-Once you start the RayServe-wrapped model, you can create and train it in
-MindsDB.
-
-```sql
-CREATE MODEL mindsdb.byom_ray_serve
-FROM mydb (
- SELECT number_of_rooms, initial_price, rental_price
- FROM test_data.home_rentals
-)
-PREDICT number_of_rooms
-USING
- url.train = 'http://127.0.0.1:8000/my_model/train',
- url.predict = 'http://127.0.0.1:8000/my_model/predict',
- dtype_dict={"number_of_rooms": "categorical", "initial_price": "integer", "rental_price": "integer"},
- format='ray_server';
-```
-
-Now, you can fetch predictions using the standard MindsDB syntax. Follow the
-guide on the [`SELECT`](/sql/api/select/) statement to learn more.
-
-You can directly pass input data in the `WHERE` clause to get a single
-prediction.
-
-```sql
-SELECT *
-FROM byom_ray_serve
-WHERE initial_price=3000
-AND rental_price=3000;
-```
-
-Or you can `JOIN` the model wth a data table to get bulk predictions.
-
-```sql
-SELECT tb.number_of_rooms, t.rental_price, tb.index
-FROM mydb.test_data.home_rentals AS t
-JOIN mindsdb.byom_ray_serve AS tb
-WHERE t.rental_price > 5300;
-```
-
-
-**Limit for POST Requests**
-
-Please note that if your model is behind a reverse proxy like nginx, you might
-have to increase the maximum limit for POST requests in order to receive the
-training data. MindsDB can send as much as you'd like - it has been
-stress-tested with over a billion rows.
-
-
-
-## Example of Keras NLP Model
-
-Here, we consider a
-[natural language processing (NLP) task](https://www.kaggle.com/c/nlp-getting-started)
-where we want to train a neural network using [Keras](https://keras.io) to
-detect if a tweet is related to a natural disaster, such as fires, earthquakes,
-etc. Please download
-[this dataset](https://www.kaggle.com/c/nlp-getting-started) to follow the
-example.
-
-### Creating the Ray Serve Model
-
-We create a Ray Serve service that wraps around the
-[Kaggle NLP Model](https://www.kaggle.com/shahules/basic-eda-cleaning-and-glove)
-that can be trained and used for making predictions.
-
-```python
-import re
-import time
-import json
-import string
-import requests
-from collections import Counter, defaultdict
-
-import ray
-from ray import serve
-
-import gensim
-import numpy as np
-import pandas as pd
-from tqdm import tqdm
-from nltk.util import ngrams
-from nltk.corpus import stopwords
-from nltk.tokenize import word_tokenize
-from fastapi import Request, FastAPI
-from sklearn.model_selection import train_test_split
-from sklearn.feature_extraction.text import CountVectorizer
-
-from tensorflow.keras.preprocessing.text import Tokenizer
-from tensorflow.keras.preprocessing.sequence import pad_sequences
-from tensorflow.keras.models import Sequential
-from tensorflow.keras.layers import Embedding, LSTM, Dense, SpatialDropout1D
-from tensorflow.keras.initializers import Constant
-from tensorflow.keras.optimizers import Adam
-
-app = FastAPI()
-stop = set(stopwords.words('english'))
-
-
-async def parse_req(request: Request):
- data = await request.json()
- target = data.get('target', None)
- di = json.loads(data['df'])
- df = pd.DataFrame(di)
- return df, target
-
-
-@serve.deployment(route_prefix="/nlp_kaggle_model")
-@serve.ingress(app)
-class Model:
- MAX_LEN = 100
- GLOVE_DIM = 50
- EPOCHS = 10
-
- def __init__(self):
- self.model = None
-
- @app.post("/train")
- async def train(self, request: Request):
- df, target = await parse_req(request)
-
- target_arr = df.pop(target).values
- df = self.preprocess_df(df)
- train_corpus = self.create_corpus(df)
-
- self.embedding_dict = {}
- with open('./glove.6B.50d.txt', 'r') as f:
- for line in f:
- values = line.split()
- word = values[0]
- vectors = np.asarray(values[1:], 'float32')
- self.embedding_dict[word] = vectors
- f.close()
-
- self.tokenizer_obj = Tokenizer()
- self.tokenizer_obj.fit_on_texts(train_corpus)
-
- sequences = self.tokenizer_obj.texts_to_sequences(train_corpus)
- tweet_pad = pad_sequences(sequences, maxlen=self.__class__.MAX_LEN, truncating='post', padding='post')
- df = tweet_pad[:df.shape[0]]
-
- word_index = self.tokenizer_obj.word_index
- num_words = len(word_index) + 1
- embedding_matrix = np.zeros((num_words, self.__class__.GLOVE_DIM))
-
- for word, i in tqdm(word_index.items()):
- if i > num_words:
- continue
-
- emb_vec = self.embedding_dict.get(word)
- if emb_vec is not None:
- embedding_matrix[i] = emb_vec
-
- self.model = Sequential()
- embedding = Embedding(num_words,
- self.__class__.GLOVE_DIM,
- embeddings_initializer=Constant(embedding_matrix),
- input_length=self.__class__.MAX_LEN,
- trainable=False)
- self.model.add(embedding)
- self.model.add(SpatialDropout1D(0.2))
- self.model.add(LSTM(64, dropout=0.2, recurrent_dropout=0.2))
- self.model.add(Dense(1, activation='sigmoid'))
-
- optimizer = Adam(learning_rate=1e-5)
- self.model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy'])
-
- X_train, X_test, y_train, y_test = train_test_split(df, target_arr, test_size=0.15)
- self.model.fit(X_train, y_train, batch_size=4, epochs=self.__class__.EPOCHS, validation_data=(X_test, y_test), verbose=2)
-
- return {'status': 'ok'}
-
- @app.post("/predict")
- async def predict(self, request: Request):
- df, _ = await parse_req(request)
-
- df = self.preprocess_df(df)
- test_corpus = self.create_corpus(df)
-
- sequences = self.tokenizer_obj.texts_to_sequences(test_corpus)
- tweet_pad = pad_sequences(sequences, maxlen=self.__class__.MAX_LEN, truncating='post', padding='post')
- df = tweet_pad[:df.shape[0]]
-
- y_pre = self.model.predict(df)
- y_pre = np.round(y_pre).astype(int).flatten().tolist()
- sub = pd.DataFrame({'target': y_pre})
-
- pred_dict = {'prediction': [float(x) for x in sub['target'].values]}
- return pred_dict
-
- def preprocess_df(self, df):
- df = df[['text']]
- df['text'] = df['text'].apply(lambda x: self.remove_URL(x))
- df['text'] = df['text'].apply(lambda x: self.remove_html(x))
- df['text'] = df['text'].apply(lambda x: self.remove_emoji(x))
- df['text'] = df['text'].apply(lambda x: self.remove_punct(x))
- return df
-
- def remove_URL(self, text):
- url = re.compile(r'https?://\S+|www\.\S+')
- return url.sub(r'', text)
-
- def remove_html(self, text):
- html = re.compile(r'<.*?>')
- return html.sub(r'', text)
-
- def remove_punct(self, text):
- table = str.maketrans('', '', string.punctuation)
- return text.translate(table)
-
- def remove_emoji(self, text):
- emoji_pattern = re.compile("["
- u"\U0001F600-\U0001F64F" # emoticons
- u"\U0001F300-\U0001F5FF" # symbols & pictographs
- u"\U0001F680-\U0001F6FF" # transport & map symbols
- u"\U0001F1E0-\U0001F1FF" # flags (iOS)
- u"\U00002702-\U000027B0"
- u"\U000024C2-\U0001F251"
- "]+", flags=re.UNICODE)
- return emoji_pattern.sub(r'', text)
-
- def create_corpus(self, df):
- corpus = []
- for tweet in tqdm(df['text']):
- words = [word.lower() for word in word_tokenize(tweet) if ((word.isalpha() == 1) & (word not in stop))]
- corpus.append(words)
- return corpus
-
-
-if __name__ == '__main__':
-
- ray.init()
- serve.start(detached=True)
-
- Model.deploy()
-
- while True:
- time.sleep(1)
-```
-
-Now, we need access to the training data. For that, we create a table called
-`nlp_kaggle_train` to load the
-[dataset](https://www.kaggle.com/c/nlp-getting-started) that the original model
-uses. The `nlp_kaggle_train` table contains the following columns:
-
-```sql
-id INT,
-keyword VARCHAR(255),
-location VARCHAR(255),
-text VARCHAR(5000),
-target INT
-```
-
-Please note that the specifics of the schema/table and how to ingest the CSV
-data vary depending on your database.
-
-### Bringing the Ray Serve Model to MindsDB
-
-Now, we can create and train this custom model in MindsDB.
-
-```sql
-CREATE MODEL mindsdb.byom_ray_serve_nlp
-FROM maria (
- SELECT text, target
- FROM test.nlp_kaggle_train
-) PREDICT target
-USING
- url.train = 'http://127.0.0.1:8000/nlp_kaggle_model/train',
- url.predict = 'http://127.0.0.1:8000/nlp_kaggle_model/predict',
- dtype_dict={"text": "rich_text", "target": "integer"},
- format='ray_server';
-```
-
-The training process takes some time, considering that this model is a neural
-network rather than a simple logistic regression.
-
-You can check the model status using this query:
-
-```sql
-DESCRIBE byom_ray_serve_nlp;
-```
-
-Once the status of the predictor has a value of `trained`, you can fetch
-predictions using the standard MindsDB syntax. Follow the guide on the
-[`SELECT`](/sql/api/select/) statement to learn more.
-
-```sql
-SELECT *
-FROM mindsdb.byom_ray_serve_nlp
-WHERE text='The tsunami is coming, seek high ground';
-```
-
-The expected output of the query above is `1`.
-
-```sql
-SELECT *
-FROM mindsdb.byom_ray_serve_nlp
-WHERE text='This is lovely dear friend';
-```
-
-The expected output of the query above is `0`.
-
-
-**Wrong Results?**
-
-If your results do not match this example, try training the model for a longer
-amount of epochs.
-
-
-
-
-**Get More Insights**
-
-Check out the article on [How to bring your own machine learning model to databases](https://medium.com/mindsdb/how-to-bring-your-own-machine-learning-model-to-databases-47a188d6db00) by [Patricio Cerda Mardini](https://medium.com/@paxcema) to learn more.
-
diff --git a/docs/integrations/ai-engines/replicate-audio.mdx b/docs/integrations/ai-engines/replicate-audio.mdx
deleted file mode 100644
index 8625aea1f45..00000000000
--- a/docs/integrations/ai-engines/replicate-audio.mdx
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: Replicate (Audio)
-sidebarTitle: Replicate (Audio)
----
-
-This handler was implemented using the `replicate` library that is provided by Replicate.
-
-The required arguments to establish a connection are,
--
-* model_name: Model name which you want to access in MindsDB. e.g 'air-forever/kandinsky-2'
-* version: version hash/id which you want to use in MindsDB.
-* api_key: API key from Replicate Platform you can found [here](https://replicate.com/account/api-tokens).
-
-
-
-Before you can use Replicate, it's essential to authenticate by setting your API token in an environment variable named REPLICATE_API_TOKEN.
- This token acts as a key to enable access to Replicate's features.
-
-1. Using pip:
-
-If you're working in a standard Python environment (using pip for package management), set your token as an environment variable by running the following command
-in your terminal:
-
-On Linux, Mac:
-```
-export REPLICATE_API_TOKEN='YOUR_TOKEN'
-```
-On Windows:
-
-```
-set REPLICATE_API_TOKEN=YOUR_TOKEN
-```
-
-
-2. Using Docker:
-
-For Docker users, the process slightly differs. You need to pass the environment variable directly to the Docker container when running it. Use this command:
-
-```
-docker run -e REPLICATE_API_TOKEN='YOUR_TOKEN' -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
-```
-
-Again, replace 'YOUR_TOKEN' with your actual Replicate API token.
-
-
-## Usage
-To use this handler and connect to a Replicate cluster in MindsDB, you need an account on Replicate. Make sure to create an account by following this [link](https://replicate.com/signin?next=/account/api-tokens).
-
-
-To establish the connection and create a model in MindsDB, use the following syntax:
-```sql
-
-CREATE MODEL audio_ai
-PREDICT audio
-USING
- engine = 'replicate',
- model_name= 'afiaka87/tortoise-tts',
- version ='e9658de4b325863c4fcdc12d94bb7c9b54cbfe351b7ca1b36860008172b91c71',
- api_key = 'r8_BpO.........................';
-```
-
-You can use the DESCRIBE PREDICTOR query to see the available parameters that you can specify to customize your predictions:
-```sql
-DESCRIBE PREDICTOR mindsdb.audio_ai.features;
-```
-### Output
-```sql
-+--------------+---------+-----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| inputs | type | default | description |
-+--------------+---------+-----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| seed | integer | 0 | Random seed which can be used to reproduce results. |
-| text | string | The expressiveness of autoregressive transformers is literally nuts! I absolutely adore them. | Text to speak. |
-| preset | - | fast | Which voice preset to use. See the documentation for more information. |
-| voice_a | - | random | Selects the voice to use for generation. Use `random` to select a random voice. Use `custom_voice` to use a custom voice. |
-| voice_b | - | disabled | (Optional) Create new voice from averaging the latents for `voice_a`, `voice_b` and `voice_c`. Use `disabled` to disable voice mixing. |
-| voice_c | - | disabled | (Optional) Create new voice from averaging the latents for `voice_a`, `voice_b` and `voice_c`. Use `disabled` to disable voice mixing. |
-| cvvp_amount | number | 0 | How much the CVVP model should influence the output. Increasing this can in some cases reduce the likelihood of multiple speakers. Defaults to 0 (disabled) |
-| custom_voice | string | - | (Optional) Create a custom voice based on an mp3 file of a speaker. Audio should be at least 15 seconds, only contain one speaker, and be in mp3 format. Overrides the `voice_a` input. |
-+--------------+---------+-----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Now, you can use the established connection to query your ML Model as follows:
-
-# Audio Generation
-
-
-
-## Custom Audio Cloning
-
-```sql
-SELECT * FROM audio_ai
-WHERE
- text = "This is breaking news that first humans have landed on Mars, and they have found something very unusual there. By the way, this is the future."
-USING
- voice_a = 'custom_voice',
- custom_voice = 'https://123bien.com/wp-content/uploads/2019/05/i-want-to-work-2.mp3';
-```
-OUTPUT
-```sql
-+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| audio | text |
-+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| https://replicate.delivery/pbxt/ffOCXeL4fa5yekAL4ybfFiJBbqENSEjhSLpA2zp1ElsBxxhSE/tortoise.mp3 | This is breaking news that first human are landed on mars and they find something very unusual there which is not yet out, by the way this is future |
-+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-If above predicted url don't work , then use [this](./assets/cloned_audio.mp3)
-
-## Audio Generation
-
-```sql
-SELECT * FROM audio_ai
-WHERE
- text = "An image captured by NASA's Mars Curiosity Rover shows a faint figure of a woman against the desert landscape of Mars. If you take a closer look, it will seem that the lady is standing on a cliff overlooking the vast undulating expanse. She seems to wear a long cloak and has long hair."
-USING
- voice_a = 'random';
-```
-
-### OUTPUT
-```sql
-+---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| audio | text |
-+---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| https://replicate.delivery/pbxt/EQj2DtBn5fxVA6P97GfPYthmgd0I3VaOEGFnweE4hvl5BPUiA/audio.wav | An image captured by NASA's Mars Curiosity Rover shows a faint figure of a woman against the desert landscape of Mars. If you take a closer look, it will seem that the lady is standing on a cliff overlooking the vast undulating expanse. She seems to wear a long cloak and has long hair. |
-+---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Above predicted url will work , therefore use [this](./assets/generated_audio.wav).
-
-This is just an one model used in this example there are more with vast variation and use cases.
-Also there is no limit to imagination, how can you use this.
-
-- IMPORTANT NOTE: PREDICTED **URL** will only work for **24 hours** after prediction.
-> Note: Replicate provides only a few free predictions, so choose your predictions wisely. Don't let the machines have all the fun, save some for yourself! 😉
diff --git a/docs/integrations/ai-engines/replicate-img2text.mdx b/docs/integrations/ai-engines/replicate-img2text.mdx
deleted file mode 100644
index 0b82470cb56..00000000000
--- a/docs/integrations/ai-engines/replicate-img2text.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: Replicate (Img2Text)
-sidebarTitle: Replicate (Img2Text)
----
-
-This handler was implemented using the `replicate` library that is provided by Replicate.
-
-The required arguments to establish a connection are,
-
-* model_name: Model name which you want to access in MindsDB. e.g 'air-forever/kandinsky-2'
-* version: version hash/id which you want to use in MindsDB.
-* api_key: API key from Replicate Platform you can found [here](https://replicate.com/account/api-tokens).
-
-
-
-Before you can use Replicate, it's essential to authenticate by setting your API token in an environment variable named REPLICATE_API_TOKEN.
- This token acts as a key to enable access to Replicate's features.
-
-1. Using pip:
-
-If you're working in a standard Python environment (using pip for package management), set your token as an environment variable by running the following command
-in your terminal:
-
-On Linux, Mac:
-```
-export REPLICATE_API_TOKEN='YOUR_TOKEN'
-```
-On Windows:
-
-```
-set REPLICATE_API_TOKEN=YOUR_TOKEN
-```
-
-
-2. Using Docker:
-
-For Docker users, the process slightly differs. You need to pass the environment variable directly to the Docker container when running it. Use this command:
-
-```
-docker run -e REPLICATE_API_TOKEN='YOUR_TOKEN' -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
-```
-
-Again, replace 'YOUR_TOKEN' with your actual Replicate API token.
-
-
-## Usage
-To use this handler and connect to a Replicate cluster in MindsDB, you need an account on Replicate. Make sure to create an account by following this [link](https://replicate.com/signin?next=/account/api-tokens).
-
-
-To establish the connection and create a model in MindsDB, use the following syntax:
-```sql
-CREATE MODEL blip
-PREDICT text
-USING
- engine = 'replicate',
- model_name= 'salesforce/blip',
- version ='2e1dddc8621f72155f24cf2e0adbde548458d3cab9f00c0139eea840d0ac4746',
- api_key = 'r8_BpO.........................';
-```
-
-You can use the DESCRIBE PREDICTOR query to see the available parameters that you can specify to customize your predictions:
-```sql
-DESCRIBE PREDICTOR mindsdb.blip.features;
-```
-### OUTPUT
-```sql
-+----------+------------------+-----------------------------------------------------------------------+--------+
-| inputs | default | description | type |
-+----------+------------------+-----------------------------------------------------------------------+--------+
-| task | image_captioning | Choose a task. | - |
-| image | - | Input image | string |
-| caption | - | Type caption for the input image for image text matching task. | string |
-| question | - | Type question for the input image for visual question answering task. | string |
-+----------+------------------+-----------------------------------------------------------------------+--------+
-```
-
-## Visual Question Answering
-
-Now, you can use the established connection to query your ML Model as follows:
-```sql
-SELECT *
-FROM mindsdb.blip
-WHERE image="https://images.unsplash.com/photo-1686847266385-a32745169de4"
-AND question="Is there lion in image?"
-USING
-task="visual_question_answering";
-```
-### OUTPUT
-```sql
-+------------+--------------------------------------------------------------+-------------------------+
-| text | image | question |
-+------------+--------------------------------------------------------------+-------------------------+
-| Answer: no | https://images.unsplash.com/photo-1686847266385-a32745169de4 | Is there lion in image? |
-+------------+--------------------------------------------------------------+-------------------------+
-```
-
-## Image Captioning
-
-```sql
-SELECT *
-FROM mindsdb.blip
-WHERE image="https://images.unsplash.com/photo-1686847266385-a32745169de4"
-```
-
-### OUTPUT
-```sql
-+---------------------------------------------------+--------------------------------------------------------------+
-| text | image |
-+---------------------------------------------------+--------------------------------------------------------------+
-| Caption: a bird is sitting on the back of a horse | https://images.unsplash.com/photo-1686847266385-a32745169de4 |
-+---------------------------------------------------+--------------------------------------------------------------+
-```
-
-Image Text Matching
-
-```sql
-SELECT *
-FROM mindsdb.blip
-WHERE image="https://images.unsplash.com/photo-1686847266385-a32745169de4"
-AND caption="Bird having horse Riding"
-USING
-task="image_text_matching";
-```
-OUTPUT
-```sql
-+-----------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+--------------------------+
-| text | image | caption |
-+-----------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+--------------------------+
-| The image and text is matched with a probability of 0.7730.
-The image feature and text feature has a cosine similarity of 0.3615. | https://images.unsplash.com/photo-1686847266385-a32745169de4 | Bird having horse Riding |
-+-----------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+--------------------------+
-```
-This is just an one model used in this example there are more with vast variation and use cases.
-Also there is no limit to imagination, how can you use this.
-
- Note: Replicate provides only a few free predictions, so choose your predictions wisely. Don't let the machines have all the fun, save some for yourself! 😉
diff --git a/docs/integrations/ai-engines/replicate-llm.mdx b/docs/integrations/ai-engines/replicate-llm.mdx
deleted file mode 100644
index c1e416443da..00000000000
--- a/docs/integrations/ai-engines/replicate-llm.mdx
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: Replicate (LLM)
-sidebarTitle: Replicate (LLM)
----
-
-This handler was implemented using the `replicate` library that is provided by Replicate.
-
-The required arguments to establish a connection are,
-
-* model_name: Model name which you want to access in MindsDB. e.g 'air-forever/kandinsky-2'
-* version: version hash/id which you want to use in MindsDB.
-* api_key: API key from Replicate Platform you can found [here](https://replicate.com/account/api-tokens).
-* model_type: It should be set to '**LLM**' while using Large language Model else it Optional
-
-
-
-Before you can use Replicate, it's essential to authenticate by setting your API token in an environment variable named REPLICATE_API_TOKEN.
- This token acts as a key to enable access to Replicate's features.
-
-1. Using pip:
-
-If you're working in a standard Python environment (using pip for package management), set your token as an environment variable by running the following command
-in your terminal:
-
-On Linux, Mac:
-```
-export REPLICATE_API_TOKEN='YOUR_TOKEN'
-```
-On Windows:
-
-```
-set REPLICATE_API_TOKEN=YOUR_TOKEN
-```
-
-
-2. Using Docker:
-
-For Docker users, the process slightly differs. You need to pass the environment variable directly to the Docker container when running it. Use this command:
-
-```
-docker run -e REPLICATE_API_TOKEN='YOUR_TOKEN' -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
-```
-
-Again, replace 'YOUR_TOKEN' with your actual Replicate API token.
-
-
-## Usage
-To use this handler and connect to a Replicate cluster in MindsDB, you need an account on Replicate. Make sure to create an account by following this [link](https://replicate.com/signin?next=/account/api-tokens).
-
-
-To establish the connection and create a model in MindsDB, use the following syntax:
-```sql
-CREATE MODEL vicuna_13b
-PREDICT output
-USING
- engine = 'replicate',
- model_name= 'replicate/vicuna_13b',
- model_type='LLM',
- version ='6282abe6a492de4145d7bb601023762212f9ddbbe78278bd6771c8b3b2f2a13b',
- api_key = 'r8_HEH............';
-```
-
-You can use the DESCRIBE PREDICTOR query to see the available parameters that you can specify to customize your predictions:
-```sql
-DESCRIBE PREDICTOR mindsdb.vicuna_13b.features;
-```
-
-### OUTPUT
-```sql
-+--------------------+---------+---------+---------------------------------------------------------------------------------------------------------------------------------------+
-| inputs | type | default | description |
-+--------------------+---------+---------+---------------------------------------------------------------------------------------------------------------------------------------+
-| seed | integer | -1 | Seed for random number generator, for reproducibility |
-| debug | boolean | False | provide debugging output in logs |
-| top_p | number | 1 | When decoding text, samples from the top p percentage of most likely tokens; lower to ignore less likely tokens |
-| prompt | string | - | Prompt to send to Llama. |
-| max_length | integer | 500 | Maximum number of tokens to generate. A word is generally 2-3 tokens |
-| temperature | number | 0.75 | Adjusts randomness of outputs, greater than 1 is random and 0 is deterministic, 0.75 is a good starting value. |
-| repetition_penalty | number | 1 | Penalty for repeated words in generated text; 1 is no penalty, values greater than 1 discourage repetition, less than 1 encourage it. |
-+--------------------+---------+---------+---------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Now, you can use the established connection to query your ML Model as follows:
-```sql
-SELECT *
-FROM vicuna_13b
-WHERE prompt='Write a humourous poem on Open Source'
-USING
- max_length=200,
- temperature=0.75;
-```
-### OUTPUT
-```sql
-+--------------------------------------------------------------+----------------------------------------+
-| output | prompt |
-+--------------------------------------------------------------+----------------------------------------+
-| Opensource software, oh how we love thee | Write a humourous poem on Open Source |
-| With bugs and glitches, oh so free | |
-| You bring us laughter and joy each day | |
-| And we'll never have to pay | |
-| | |
-| The license is open, the code is there | |
-| For all to see and share in cheer | |
-| You bring us together, from far and wide | |
-| To work on projects, side by side | |
-| | |
-| With open source, there's no end | |
-| To the code we can bend | |
-| We can change it, mold it, make it our own | |
-| And create something truly great, or really strange | |
-| | |
-| So here's to open source, the future is bright | |
-| With code that's free, and with all of our might | |
-| We"ll make the future shine, with technology fine | |
-| And open source will always be our shining line | |
-+--------------------------------------------------------------+----------------------------------------+
-```
-
-
-
-
-> Note: Replicate provides only a few free predictions, so choose your predictions wisely. Don't let the machines have all the fun, save some for yourself! 😉
diff --git a/docs/integrations/ai-engines/replicate-text2img.mdx b/docs/integrations/ai-engines/replicate-text2img.mdx
deleted file mode 100644
index 0de33e6cd3e..00000000000
--- a/docs/integrations/ai-engines/replicate-text2img.mdx
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: Replicate (Text2Img)
-sidebarTitle: Replicate (Text2Img)
----
-
-This handler was implemented using the `replicate` library that is provided by Replicate.
-
-The required arguments to establish a connection are,
-
-* model_name: Model name which you want to access in MindsDB. e.g 'air-forever/kandinsky-2'
-* version: version hash/id which you want to use in MindsDB.
-* api_key: API key from Replicate Platform you can found [here](https://replicate.com/account/api-tokens).
-
-
-
-Before you can use Replicate, it's essential to authenticate by setting your API token in an environment variable named REPLICATE_API_TOKEN.
- This token acts as a key to enable access to Replicate's features.
-
-1. Using pip:
-
-If you're working in a standard Python environment (using pip for package management), set your token as an environment variable by running the following command
-in your terminal:
-
-On Linux, Mac:
-```
-export REPLICATE_API_TOKEN='YOUR_TOKEN'
-```
-On Windows:
-
-```
-set REPLICATE_API_TOKEN=YOUR_TOKEN
-```
-
-
-2. Using Docker:
-
-For Docker users, the process slightly differs. You need to pass the environment variable directly to the Docker container when running it. Use this command:
-
-```
-docker run -e REPLICATE_API_TOKEN='YOUR_TOKEN' -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
-```
-
-Again, replace 'YOUR_TOKEN' with your actual Replicate API token.
-
-
-## Usage
-To use this handler and connect to a Replicate cluster in MindsDB, you need an account on Replicate. Make sure to create an account by following this [link](https://replicate.com/signin?next=/account/api-tokens).
-
-
-To establish the connection and create a model in MindsDB, use the following syntax:
-```sql
-
-CREATE MODEL aiforever
-PREDICT url
-USING
- engine = 'replicate',
- model_name= 'ai-forever/kandinsky-2',
- version ='2af375da21c5b824a84e1c459f45b69a117ec8649c2aa974112d7cf1840fc0ce',
- api_key = 'r8_BpO.........................';
-```
-
-You can use the DESCRIBE PREDICTOR query to see the available parameters that you can specify to customize your predictions:
-```sql
-DESCRIBE PREDICTOR mindsdb.aiforever.features;
-```
-
-### Output
-```sql
-+---------------------+-------------------+--------------------------------------------------------+---------+
-| inputs | default | description | type |
-+---------------------+-------------------+--------------------------------------------------------+---------+
-| width | 512 | Choose width. Lower the setting if out of memory. | - |
-| height | 512 | Choose height. Lower the setting if out of memory. | - |
-| prompt | red cat, 4k photo | Input Prompt | string |
-| scheduler | p_sampler | Choose a scheduler | - |
-| batch_size | 1 | Choose batch size. Lower the setting if out of memory. | - |
-| prior_steps | 5 | - | string |
-| guidance_scale | 4 | Scale for classifier-free guidance | number |
-| prior_cf_scale | 4 | - | integer |
-| num_inference_steps | 50 | Number of denoising steps | integer |
-+---------------------+-------------------+--------------------------------------------------------+---------+
-```
-
-Now, you can use the established connection to query your ML Model as follows:
-```sql
-SELECT *
-FROM aiforever
-WHERE prompt='Great warrior Arjun from Mahabharata, looking at camera,cinematic lighting, 4k quality';
-```
-
-### Output
-
-
-
-- IMPORTANT NOTE: PREDICTED **URL** will only work for **24 hours** after prediction.
-
-> Note: Replicate provides only a few free predictions, so choose your predictions wisely. Don't let the machines have all the fun, save some for yourself! 😉
diff --git a/docs/integrations/ai-engines/replicate-text2video.mdx b/docs/integrations/ai-engines/replicate-text2video.mdx
deleted file mode 100644
index d4548919eec..00000000000
--- a/docs/integrations/ai-engines/replicate-text2video.mdx
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: Replicate (Text2Video)
-sidebarTitle: Replicate (Text2Video)
----
-
-This handler was implemented using the `replicate` library that is provided by Replicate.
-
-The required arguments to establish a connection are,
-
-* model_name: Model name which you want to access in MindsDB. e.g 'air-forever/kandinsky-2'
-* version: version hash/id which you want to use in MindsDB.
-* api_key: API key from Replicate Platform you can found [here](https://replicate.com/account/api-tokens).
-
-
-
-Before you can use Replicate, it's essential to authenticate by setting your API token in an environment variable named REPLICATE_API_TOKEN.
- This token acts as a key to enable access to Replicate's features.
-
-1. Using pip:
-
-If you're working in a standard Python environment (using pip for package management), set your token as an environment variable by running the following command
-in your terminal:
-
-On Linux, Mac:
-```
-export REPLICATE_API_TOKEN='YOUR_TOKEN'
-```
-On Windows:
-
-```
-set REPLICATE_API_TOKEN=YOUR_TOKEN
-```
-
-
-2. Using Docker:
-
-For Docker users, the process slightly differs. You need to pass the environment variable directly to the Docker container when running it. Use this command:
-
-```
-docker run -e REPLICATE_API_TOKEN='YOUR_TOKEN' -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
-```
-
-Again, replace 'YOUR_TOKEN' with your actual Replicate API token.
-
-
-## Usage
-To use this handler and connect to a Replicate cluster in MindsDB, you need an account on Replicate. Make sure to create an account by following this [link](https://replicate.com/signin?next=/account/api-tokens).
-
-
-To establish the connection and create a model in MindsDB, use the following syntax:
-```sql
-
-CREATE MODEL video_ai
-PREDICT output
-USING
- engine = 'replicate',
- model_name= 'deforum/deforum_stable_diffusion',
- version ='e22e77495f2fb83c34d5fae2ad8ab63c0a87b6b573b6208e1535b23b89ea66d6',
- api_key = 'r8_HEH............';
-```
-
-You can use the DESCRIBE PREDICTOR query to see the available parameters that you can specify to customize your predictions:
-```sql
-DESCRIBE PREDICTOR mindsdb.video_ai.features;
-```
-### OUTPUT
-```sql
-+-------------------+---------+-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| inputs | type | default | description |
-+-------------------+---------+-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| fps | integer | 15 | Choose fps for the video. |
-| seed | integer | - | Random seed. Leave blank to randomize the seed |
-| zoom | string | 0: (1.04) | zoom parameter for the motion |
-| angle | string | 0:(0) | angle parameter for the motion |
-| sampler | - | plms | - |
-| max_frames | integer | 100 | Number of frames for animation |
-| translation_x | string | 0: (0) | translation_x parameter for the motion |
-| translation_y | string | 0: (0) | translation_y parameter for the motion |
-| color_coherence | - | Match Frame 0 LAB | - |
-| animation_prompts | string | 0: a beautiful portrait of a woman by Artgerm, trending on Artstation | Prompt for animation. Provide 'frame number : prompt at this frame', separate different prompts with '|'. Make sure the frame number does not exceed the max_frames. |
-+-------------------+---------+-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-
-Now, you can use the established connection to query your ML Model as follows:
-```sql
-SELECT *
-FROM video_ai
-WHERE animation_prompts='a human and animals are friends by Asher Brown Durand, trending on Artstation'
-USING
- max_frames=119;
-```
-
-### OUTPUT
-```sql
-+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------+
-| output | prompt |
-+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------+
-| https://replicate.delivery/pbxt/gSgRjNlxIgJWBB8KeebKeRmBjZx0wqX7JC41U0pvIfPCYVzEB/out.mp4 | a human and animals are friends by Asher Brown Durand, trending on Artstation |
-+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------+
-```
-
-Checkout generated video [here](./assets/animals.mp4) as above link will not work, reason is given below.
-
-- IMPORTANT NOTE: PREDICTED **URL** will only work for **24 hours** after prediction.
-
-> Note: Replicate provides only a few free predictions, so choose your predictions wisely. Don't let the machines have all the fun, save some for yourself! 😉
diff --git a/docs/integrations/ai-engines/twelvelabs.mdx b/docs/integrations/ai-engines/twelvelabs.mdx
deleted file mode 100644
index 76d3e4ea62c..00000000000
--- a/docs/integrations/ai-engines/twelvelabs.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: TwelveLabs (Video Semantic Search)
-sidebarTitle: TwelveLabs
----
-
-In this section, we present how to connect Twelve Labs API to MindsDB.
-
-[Twelve Labs](https://twelvelabs.io/product
-) provides a powerful and seamless video search infrastructure for your application.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
- 1. Install MindsDB on your system or obtain access to cloud options.
- 2. To use Twelve Labs with MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
- 3. Copy your Twelve Labs API Key by navigating to the [Dashboard page](https://api.twelvelabs.io/dashboard).
-
-## AI Engine
-
-The first step to use this handler is to create an ML Engine. The required argument to create the engine is:
-
-* `twelve_labs_api_key` - The TwelveLabs api key.
-
-Once you have the API key you can establish a connection by executing the following SQL command:
-
-```sql
-CREATE ML_ENGINE twelve_labs_engine
-FROM twelve_labs
-USING
- twelve_labs_api_key = '';
-```
-
-## AI Model
-
-Now, you can use this ML Engine to create Models for the different tasks supported by the handler.
-
-When executing the `CREATE MODEL` statement, the following parameters are supported in the `USING` clause of the query:
-- `engine`: The name of the ML Engine to use. This is a required parameter.
-- `twelve_labs_api_key`: The Twelve Labs API key to use for authentication, if the ML Engine is not provided.
-- `base_url`: The base URL of the Twelve Labs API. This is an optional parameter and defaults to `https://api.twelvelabs.io/v1.2`.
-- `task`: The task to perform. This is a required parameter and must be one of `search` or `summarization`.
-- `engine_id`: The ID of the Twelve Labs engine to use. This is an optional parameter and defaults to `marengo2.6`. However, certain tasks may require a different engine ID; for instance, the `summarization` task runs only on the Pegasus family of engines. More information about the different engines can be found [here](https://docs.twelvelabs.io/v1.2/docs/engine-options).
-- `index_name`: The name of the index to use; if it does not exist, it will be created. This is a required parameter. More information about indexes can be found [here](https://docs.twelvelabs.io/docs/create-indexes).
-- `index_options`: A list of the types of information within the video that will be processed by the video understanding engine. This is a required parameter and can be any combination of `visual`, `conversation`, `text_in_video` and `logo`. More information about index options can be found [here](https://docs.twelvelabs.io/docs/indexing-options). Certain engines support only a subset of these options; for instance, the Pegasus family of engines only support the `visual` and `conversation` options. More information about the about these configurations can be found [here](https://docs.twelvelabs.io/v1.2/docs/create-indexes).
-- `video_urls`: A list of URLs to the videos to be indexed. This is an optional parameter, but if not specified, one of `video_files`, `video_urls_column` or `video_files_column` must be specified instead.
-- `video_files`: A list of local paths to the videos to be indexed. This is an optional parameter, but if not specified, one of `video_urls`, `video_urls_column` or `video_files_column` must be specified instead.
-- `video_urls_column`: The name of the column containing the URLs to the videos to be indexed. This is an optional parameter, but if not specified, one of `video_urls`, `video_files` or `video_files_column` must be specified instead.
-- `video_files_column`: The name of the column containing the local paths to the videos to be indexed. This is an optional parameter, but if not specified, one of `video_urls`, `video_files` or `video_urls_column` must be specified instead.
-- `search_options`: A list of the sources of information to use when performing a search. This parameter is required if the `task` is `search` and it should be a subset of `index_options`. More information about search options can be found [here](https://docs.twelvelabs.io/docs/search-options).
-- `search_query_column`: The name of the column containing the search queries. This parameter is required if the `task` is `search`.
-- `summarization_type`: The type of summarization to perform. This parameter is required if the `task` is `summarization` and it should be one of `summary`, `chapter` or `highlight`.
-- `prompt` - Provide context for the summarization task, such as the target audience, style, tone of voice, and purpose. This is an optional parameter.
-
-Given below are examples of creating Models for each of the supported tasks.
-
-### Search
-
-```sql
-CREATE MODEL mindsdb.twelve_labs_search
-PREDICT search_results
-USING
- engine = 'twelve_labs_engine',
- twelve_labs_api_key = '',
- task = 'search',
- index_name = 'index_1',
- index_options = ['visual', 'conversation', 'text_in_video', 'logo'],
- video_urls = ['https://.../video_1.mp4', 'https://.../video_2.mp4'],
- search_options = ['visual', 'conversation', 'text_in_video', 'logo'],
- search_query_column = 'query'
-```
-
-As mentioned above, the `search_options` parameter is specific to the `search` task and should be a subset of `index_options`.
-
-### Summarization
-
-```sql
-CREATE MODEL mindsdb.twelve_labs_summarization
-PREDICT search_results
-USING
- engine = 'twelve_labs_engine',
- task = 'summarization',
- engine_id = 'pegasus1',
- index_name = 'index_1',
- index_options = ['visual', 'conversation'],
- video_urls = ['https://.../video_1.mp4', 'https://.../video_2.mp4'],
- summarization_type = 'summary';
-```
-
-
-## Making Predictions
-
-Given below are examples of using Models created for each of the supported tasks.
-
-### Search
-```sql
-SELECT *
-FROM mindsdb.twelve_labs_search
-WHERE query = 'search query';
-```
-
-Here, the `query` column is the name of the column containing the search queries as specified in the `search_query_column` parameter of the `CREATE MODEL` statement.
-
-Note: At the moment, only a single query can be specified in the `WHERE` clause of the query. The `JOIN` clause for making multiple predictions will be added in a future release.
-
-### Summarization
-
-
-```sql
-SELECT *
-FROM mindsdb.twelve_labs_summarization
-WHERE video_id = 'video_1';
-```
-
-Here, the video IDs that were indexed by a model can be found by running a `DESCRIBE` statement on the it. The URL or file path of the video will be available in the `video_reference` column. The following is an example of how to run such a `DESCRIBE` statement,
-```sql
-DESCRIBE mindsdb.twelve_labs_summarization.indexed_videos;
-```
-
-The response returned will look something like this,
-| video_id | created_at | updated_at | duration | engine_ids | filename | fps | height | size | video_reference | width |
-| -------- | ---------- | ---------- | -------- | ---------- | -------- | --- | ------ | ---- | --------------- | ----- |
-| 66c8425e35db9fa680cd4195 | 2024-02-23T03:39:10Z | 2024-02-23T03:39:12Z | 43.733333 | pegasus1 | test.mp4 | 30 | 1280 | 3737394 | /path/to/Videos/test.mp4 | 720 |
-
-Note: This will display all of the indexed videos that are contained within the index specified in the `index_name` parameter of the `CREATE MODEL` statement. If the same index is used for multiple models, the `indexed_videos` table will contain all of the videos indexed by all of the models that use that index.
\ No newline at end of file
diff --git a/docs/integrations/ai-engines/vertex.mdx b/docs/integrations/ai-engines/vertex.mdx
deleted file mode 100644
index 83811b2d1aa..00000000000
--- a/docs/integrations/ai-engines/vertex.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Vertex AI
-sidebarTitle: Vertex AI
----
-
-This documentation describes the integration of MindsDB with [Vertex AI](https://cloud.google.com/vertex-ai), a machine learning platform that lets you train and deploy ML models and AI applications, and customize large language models (LLMs) for use in AI-powered applications.
-The integration allows for the deployment of Vertex AI models within MindsDB, providing the models with access to data from various data sources.
-
-## Prerequisites
-
-Before proceeding, ensure the following prerequisites are met:
-
-1. Install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-2. To use Vertex AI within MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
-
-## Setup
-
-Create an AI engine from the [Vertex AI handler](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/vertex_handler).
-
-This command creates a config object that can be used in client creation step.
-
-```sql
-CREATE ML_ENGINE vertex_engine
-FROM vertex
-USING
- project_id = "mindsdb-401709",
- location = "us-central1",
- staging_bucket = "gs://my_staging_bucket",
- experiment = "my-experiment",
- experiment_description = "my experiment description",
- service_account = {
-
- };
-```
-
-Create a model using `vertex_engine` as an engine.
-
-This command authenticates client to a Vertex account using config from previous step. If the endpoint for the model already exists, we create this model in MindsDB. Otherwise, we create and deploy the model to the endpoint before creating this model in MindsDB.
-
-```sql
-CREATE MODEL vertex_model
-PREDICT target_column
-USING
- engine = 'vertex_engine', -- engine name as created via CREATE ML_ENGINE
- model_name = 'model_name', -- choose one of models from your project
- custom_model = value; -- indicate whether it is a custom model (True) or not (False)
-;
-```
-
-## Usage
-
-The following usage examples utilize `vertex_engine` to create a model with the `CREATE MODEL` statement.
-
-Detect anomaly using a custom model stored in Vertex AI.
-
-```sql
-CREATE MODEL vertex_model
-PREDICT cut
-USING
- engine = 'vertex',
- model_name = 'diamonds_anomaly_detection',
- custom_model = True;
-```
-
-Query the model to get predictions by joining it with the data table.
-
-```sql
-SELECT d.cut, m.cut AS anomaly
-FROM data_table as d
-JOIN vertex_model as m;
-```
-
-
-**Next Steps**
-
-Go to the [Use Cases](/use-cases/overview) section to see more examples.>
-
diff --git a/docs/integrations/ai-engines/xgboost.mdx b/docs/integrations/ai-engines/xgboost.mdx
deleted file mode 100644
index 78d651b1db6..00000000000
--- a/docs/integrations/ai-engines/xgboost.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: XGBoost
-sidebarTitle: XGBoost
----
-
-
-This page is a work in progress.
-
diff --git a/docs/integrations/ai-overview.mdx b/docs/integrations/ai-overview.mdx
deleted file mode 100644
index 690da12bc5c..00000000000
--- a/docs/integrations/ai-overview.mdx
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: AI Integrations
-sidebarTitle: Overview
-icon: "microchip-ai"
----
-
-MindsDB integrates with numerous AI frameworks, facilitating [deployment and management of AI models](/model-management).
-
-
-
-
-
-MindsDB offers a wide range of AI engines used to create models and incorporate them in the data landscape as virtual [AI tables](/generative-ai-tables). MindsDB abstracts AI models as virtual tables, or Generative AI Tables, that can generate data from the underlying model upon being queried.
-
-
-This section contains instructions on how to create and deploy models within MindsDB, utilizing different AI/ML frameworks.
-
-
-### Large Language Models
-
-
-
-
-
-
-
-
-
-
-
-
-### Bring Your Own Models
-
-
-
-
-
-
-
-
-
-
-
-
-**Metadata about AI handlers and AI engines**
-
-**AI handlers** represent a raw implementation of the integration between MindsDB and an AI/ML framework. These are used to create AI engines.
-
-Here is how you can query for all the available AI handlers used to create AI engines.
-
- ```sql
- SELECT *
- FROM information_schema.handlers
- WHERE type = 'ml';
- ```
-
- Or, alternatively:
-
- ```sql
- SHOW HANDLERS
- WHERE type = 'ml';
- ```
-
-And here is how you can query for all the created AI engines:
-
- ```sql
- SELECT *
- FROM information_schema.ml_engines;
- ```
-
- Or, alternatively:
-
- ```sql
- SHOW ML_ENGINES;
- ```
-
diff --git a/docs/integrations/data-integrations/all-data-integrations.mdx b/docs/integrations/data-integrations/all-data-integrations.mdx
deleted file mode 100644
index 61e7cccc74c..00000000000
--- a/docs/integrations/data-integrations/all-data-integrations.mdx
+++ /dev/null
@@ -1,2231 +0,0 @@
----
-title: Supported Integrations
-sidebarTitle: Supported Integrations
----
-
-The list of databases supported by MindsDB keeps growing. Here are the currently supported integrations:
-
-
-
-
-
-You can find particular [databases' handler files here](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers) to see their connection arguments. For example, to see the latest updates to the Oracle handler, check [Oracle's `readme.md` file here](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/handlers/oracle_handler/README.md).
-
-
-**MindsDB supports Model Context Protocol (MCP)**
-
-MindsDB is an MCP server that enables your MCP applications to answer questions over large-scale federated data. [Learn more here](/mcp/overview).
-
-
-Let's look at sample codes showing how to connect to each of the supported integrations.
-
-
-**From Our Community**
-
-Check out the video guides created by our community:
-
-- Video guide on [Connect Postgres Database to MindsDB](https://youtu.be/jbH5fsviAgE) by
- [@akhilcoder](https://twitter.com/akhilcoder)
-
-- Video guide on [Setting up data sources with mindsDB](https://www.youtube.com/watch?v=kRrMjUVnib0)
- by [Syed Zubeen](https://github.com/syedzubeen)
-
-
-## Airtable
-
-
-
- ```sql
- CREATE DATABASE airtable_datasource --- display name for the database
- WITH ENGINE = 'airtable', --- name of the MindsDB handler
- PARAMETERS = {
- "base_id": " ", --- the Airtable base ID
- "table_name": " ", --- the Airtable table name
- "api_key": " " --- the API key for the Airtable API
- };
- ```
-
-
- ```sql
- CREATE DATABASE airtable_datasource
- WITH ENGINE = 'airtable',
- PARAMETERS = {
- "base_id": "appve10klsda2",
- "table_name": "my_table",
- "api_key": "KdJX2Q5km%5b$T$sQYm^gvN"
- };
- ```
-
-
-
-
-Check out the Airtable data handler details [here](/data-integrations/airtable).
-
-
-## Amazon DynamoDB
-
-
-
- ```sql
- CREATE DATABASE dynamodb_datasource --- display name for the database
- WITH ENGINE = 'dynamodb', --- name of the MindsDB handler
- PARAMETERS = {
- "aws_access_key_id": " ", --- the AWS access key
- "aws_secret_access_key": " ", --- the AWS secret access key
- "region_name": " " --- the AWS region
- };
- ```
-
-
- ```sql
- CREATE DATABASE dynamodb_datasource
- WITH ENGINE = 'dynamodb',
- PARAMETERS = {
- "aws_access_key_id": "PCAQ2LJDOSWLNSQKOCPW",
- "aws_secret_access_key": "U/VjewPlNopsDmmwItl34r2neyC6WhZpUiip57i",
- "region_name": "us-east-1"
- };
- ```
-
-
-
-
-Check out the Amazon DynamoDB data handler details [here](/data-integrations/amazon-dynamodb).
-
-
-## Amazon Redshift
-
-
-
- ```sql
- CREATE DATABASE amazonredshift_datasource --- display name for the database
- WITH ENGINE = 'amazonredshift', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address of the Redshift cluster
- "port": , --- port used when connecting to the Redshift cluster
- "database": " ", --- database name used when connecting to the Redshift cluster
- "user": " ", --- user to authenticate with the Redshift cluster
- "password": " " --- password used to authenticate with the Redshift cluster
- };
- ```
-
-
- ```sql
- CREATE DATABASE amazonredshift_datasource
- WITH ENGINE = 'amazonredshift',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 5439,
- "database": "test",
- "user": "amazonredshift",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the Amazon Redshift data handler details [here](/data-integrations/amazon-redshift).
-
-
-## Amazon S3
-
-
-
- ```sql
- CREATE DATABASE amazons3_datasource --- display name for the database
- WITH ENGINE = 's3', --- name of the MindsDB handler
- PARAMETERS = {
- "aws_access_key_id": " ", --- the AWS access key
- "aws_secret_access_key": " ", --- the AWS secret access key
- "region_name": " ", --- the AWS region
- "bucket": " ", --- name of the S3 bucket
- "key": " ", --- key of the object to be queried
- "input_serialization": " " --- format of the data to be queried
- };
- ```
-
-
- ```sql
- CREATE DATABASE amazons3_datasource
- WITH ENGINE = 's3',
- PARAMETERS = {
- "aws_access_key_id": "PCAQ2LJDOSWLNSQKOCPW",
- "aws_secret_access_key": "U/VjewPlNopsDmmwItl34r2neyC6WhZpUiip57i",
- "region_name": "us-east-1",
- "bucket": "mindsdb-bucket",
- "key": "iris.csv",
- "input_serialization": "{'CSV': {'FileHeaderInfo': 'NONE'}}"
- };
- ```
-
-
-
-
-Check out the Amazon S3 data handler details [here](/data-integrations/amazon-s3).
-
-
-## Apache Cassandra
-
-
-
- ```sql
- CREATE DATABASE cassandra_datasource --- display name for the database
- WITH ENGINE = 'cassandra', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "user": " ", --- database user
- "password": " ", --- database password
- "keyspace": " ", --- database name
- "protocol_version": , --- optional, protocol version (defaults to 4 if left blank)
- "secure_connect_bundle": { --- optional, secure connect bundle file
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE cassandra_datasource
- WITH ENGINE = 'cassandra',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 9043,
- "user": "user",
- "password": "password",
- "keyspace": "test_data",
- "protocol_version": 4
- };
- ```
-
-
-
-
-Check out the Apache Cassandra data handler details [here](/data-integrations/apache-cassandra).
-
-
-## Apache Druid
-
-
-
- ```sql
- CREATE DATABASE druid_datasource --- display name for the database
- WITH ENGINE = 'druid', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address of Apache Druid
- "port": , --- port where Apache Druid runs
- "user": " ", --- optional, user to authenticate with Apache Druid
- "password": " ", --- optional, password used to authenticate with Apache Druid
- "path": " ", --- query path
- "scheme": " " --- the URI scheme (defaults to `http` if left blank)
- };
- ```
-
-
- ```sql
- CREATE DATABASE druid_datasource
- WITH ENGINE = 'druid',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 8888,
- "path": "/druid/v2/sql/",
- "scheme": "http"
- };
- ```
-
-
-
-
-Check out the Apache Druid data handler details [here](/data-integrations/apache-druid).
-
-
-## Apache Hive
-
-
-
- ```sql
- CREATE DATABASE hive_datasource --- display name for the database
- WITH ENGINE = 'hive', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- database user
- "password": " ", --- database password
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "auth": " " --- defaults to CUSTOM if not provided; check for options here: https://pypi.org/project/PyHive/
- };
- ```
-
-
- ```sql
- CREATE DATABASE hive_datasource
- WITH ENGINE = 'hive',
- PARAMETERS = {
- "user": "hive",
- "password": "password",
- "host": "127.0.0.1",
- "port": 10000,
- "database": "hive_db",
- "auth": "CUSTOM"
- };
- ```
-
-
-
-
-Check out the Apache Hive data handler details [here](/data-integrations/apache-hive).
-
-
-## Apache Impala
-
-
-
- ```sql
- CREATE DATABASE impala_datasource --- display name for the database
- WITH ENGINE = 'impala', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- database user
- "password": " ", --- database password
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE impala_datasource
- WITH ENGINE = 'impala',
- PARAMETERS = {
- "user": "impala_user",
- "password": "password",
- "host": "127.0.0.1",
- "port": 21050,
- "database": "impala_db"
- };
- ```
-
-
-
-
-Check out the Apache Impala data handler details [here](/data-integrations/apache-impala).
-
-
-## Apache Pinot
-
-
-
- ```sql
- CREATE DATABASE pinot_datasource --- display name for the database
- WITH ENGINE = 'pinot', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address of the Apache Pinot cluster
- "broker_port": , --- port where the broker of the Apache Pinot cluster runs
- "controller_port": , --- port where the controller of the Apache Pinot cluster runs
- "path": " ", --- query path
- "scheme": " ", --- scheme (defaults to `http` if left blank)
- "username": " ", --- optional, user
- "password": " ", --- optional, password
- "verify_ssl": " " --- optional, verify SSL
- };
- ```
-
-
- ```sql
- CREATE DATABASE pinot_datasource
- WITH ENGINE = 'pinot',
- PARAMETERS = {
- "host": "127.0.0.1",
- "broker_port": 8000,
- "controller_port": 9000,
- "path": "/query/sql",
- "scheme": "http"
- };
- ```
-
-
-
-
-Check out the Apache Pinot data handler details [here](/data-integrations/apache-pinot).
-
-
-## Apache Solr
-
-
-
- ```sql
- CREATE DATABASE solr_datasource --- display name for the database
- WITH ENGINE = 'solr', --- name of the MindsDB handler
- PARAMETERS = {
- "username": " ", --- optional, username used to authenticate with the Solr server
- "password": " ", --- optional, password used to authenticate with the Solr server
- "host": " ", --- host name or IP address of the Solr serve
- "port": , --- port number of the Solr server
- "server_path": " ", --- defaults to `solr` if left blank
- "collection": " ", --- Solr Collection name
- "use_ssl": " " --- defaults to `false` if left blank; refer to https://pypi.org/project/sqlalchemy-solr/
- };
- ```
-
-
- ```sql
- CREATE DATABASE solr_datasource
- WITH ENGINE = 'solr',
- PARAMETERS = {
- "username": "solr_user",
- "password": "password",
- "host": "127.0.0.1",
- "port": 8981,
- "server_path": "solr",
- "collection": "collection_name",
- "use_ssl": "false"
- };
- ```
-
-
-
-
-Check out the Apache Solr data handler details [here](/data-integrations/apache-solr).
-
-
-## Ckan
-
-
-
- ```sql
- CREATE DATABASE ckan_datasource --- display name for the database
- WITH ENGINE = 'ckan', --- name of the MindsDB handler
- PARAMETERS = {
- "url": " ", --- host name, IP address, or a URL
- "apikey": " " --- the API key used for authentication
- };
- ```
-
-
- ```sql
- CREATE DATABASE ckan_datasource
- WITH ENGINE = 'ckan',
- PARAMETERS = {
- "url": "http://demo.ckan.org/api/3/action/",
- "apikey": "YOUR_API_KEY"
- };
- ```
-
-
-
-
-Check out the Ckan data handler details [here](/data-integrations/ckan).
-
-
-## ClickHouse
-
-
-
- ```sql
- CREATE DATABASE clickhouse_datasource --- display name for the database
- WITH ENGINE = 'clickhouse', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "protocol": " " --- optional, http or https (defaults to `native`)
- };
- ```
-
-
- ```sql
- CREATE DATABASE clickhouse_datasource
- WITH ENGINE = 'clickhouse',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 9000,
- "database": "test_data",
- "user": "root",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the ClickHouse data handler details [here](/data-integrations/clickhouse).
-
-
-## Cloud Spanner
-
-
-
- ```sql
- CREATE DATABASE cloud_spanner_datasource --- display name for the database
- WITH ENGINE = 'cloud_spanner', --- name of the MindsDB handler
- PARAMETERS = {
- "instance_id": " ", --- the instance identifier
- "database_id": , --- the database identifier
- "project_id": " ", --- the identifier of the project that owns the instances and data
- "credentials": " ", --- a stringified GCP service account key JSON
- };
- ```
-
-
- ```sql
- CREATE DATABASE cloud_spanner_datasource
- WITH ENGINE = 'cloud_spanner',
- PARAMETERS = {
- "instance_id": "my-instance",
- "database_id": "example-db",
- "project": "my-project",
- "credentials": "{...}"
- };
- ```
-
-
-
-
-Check out the Cloud Spanner data handler details [here](/data-integrations/cloud-spanner).
-
-
-## CockroachDB
-
-
-
- ```sql
- CREATE DATABASE cockroach_datasource --- display name for the database
- WITH ENGINE = 'cockroachdb', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "publish": " " --- optional, publish
- };
- ```
-
-
- ```sql
- CREATE DATABASE cockroach_datasource
- WITH ENGINE = 'cockroachdb',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 26257,
- "database": "cockroachdb",
- "user": "username",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the CockroachDB data handler details [here](/data-integrations/cockroachdb).
-
-
-## Couchbase
-
-
-
- ```sql
- CREATE DATABASE couchbase_datasource --- display name for the database
- WITH ENGINE = 'couchbase', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address of the Couchbase server
- "user": " ", --- user to authenticate with the Couchbase server
- "password": " ", --- password used to authenticate with the Couchbase server
- "bucket": " ", --- bucket name
- "scope": " " --- scope used to query (defaults to `_default` if left blank)
- }; --- a scope in Couchbase is equivalent to a schema in MySQL
- ```
-
-
- ```sql
- CREATE DATABASE couchbase_datasource
- WITH ENGINE = 'couchbase',
- PARAMETERS = {
- "host": "127.0.0.1",
- "user": "couchbase",
- "password": "password",
- "bucket": "test-bucket"
- };
- ```
-
-
-
-
-Check out the Couchbase data handler details [here](/data-integrations/couchbase).
-
-
-## CrateDB
-
-
-
- ```sql
- CREATE DATABASE cratedb_datasource --- display name for the database
- WITH ENGINE = 'crate', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "user": " ", --- database user
- "password": " ", --- database password
- "schema_name": " " --- database schema name (defaults to `doc` if left blank)
- };
- ```
-
-
- ```sql
- CREATE DATABASE cratedb_datasource
- WITH ENGINE = 'crate',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 4200,
- "user": "crate",
- "password": "password",
- "schema_name": "doc"
- };
- ```
-
-
-
-
-Check out the CrateDB data handler details [here](/data-integrations/cratedb).
-
-
-## D0lt
-
-
-
- ```sql
- CREATE DATABASE d0lt_datasource --- display name for the database
- WITH ENGINE = 'd0lt', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "ssl": , --- optional, the `ssl` parameter value indicates whether SSL is enabled (`True`) or disabled (`False`)
- "ssl_ca": { --- optional, SSL Certificate Authority
- "path": " " --- either "path" or "url"
- },
- "ssl_cert": { --- optional, SSL certificates
- "url": " " --- either "path" or "url"
- },
- "ssl_key": { --- optional, SSL keys
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE d0lt_datasource
- WITH ENGINE = 'd0lt',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 3306,
- "database": "information_schema",
- "user": "root",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the D0lt data handler details [here](/data-integrations/d0lt).
-
-
-## Databend
-
-
-
- ```sql
- CREATE DATABASE databend_datasource --- display name for the database
- WITH ENGINE = 'databend', --- name of the MindsDB handler
- PARAMETERS = {
- "protocol": " ", --- protocol used to query Databend (defaults to `native` if left blank); supported protocols: native, http, https
- "user": " ", --- username used to authenticate with the Databend warehouse
- "port": , --- TCP/IP port of the Databend warehouse
- "password": " ", --- password used to authenticate with the Databend warehouse
- "host": " ", --- host name or IP address of the Databend warehouse (use '127.0.0.1' instead of 'localhost' when connecting to a local server)
- "database": " " --- database name used when connecting to the Databend warehouse
- };
- ```
-
-
- ```sql
- CREATE DATABASE databend_datasource
- WITH ENGINE = 'databend',
- PARAMETERS = {
- "protocol": "native",
- "user": "databend_user",
- "port": 443,
- "password": "password",
- "host": "127.0.0.1",
- "database": "databend_db"
- };
- ```
-
-
-
-
-Check out the Databend data handler details [here](/data-integrations/databend).
-
-
-## Databricks
-
-
-
- ```sql
- CREATE DATABASE databricks_datasource --- display name for the database
- WITH ENGINE = 'databricks', --- name of the MindsDB handler
- PARAMETERS = {
- "server_hostname": " ", --- server hostname of the cluster or SQL warehouse
- "http_path": " ", --- http path to the cluster or SQL warehouse
- "access_token": " ", --- personal Databricks access token
- "schema": " ", --- schema name (defaults to `default` if left blank)
- "session_configuration": " ", --- optional, dictionary of Spark session configuration parameters
- "http_headers": " ", --- optional, additional (key, value) pairs to set in HTTP headers on every RPC request the client makes
- "catalog": " " --- catalog (defaults to `hive_metastore` if left blank)
- };
- ```
-
-
- ```sql
- CREATE DATABASE databricks_datasource
- WITH ENGINE = 'databricks',
- PARAMETERS = {
- "server_hostname": "adb-1234567890123456.7.azuredatabricks.net",
- "http_path": "sql/protocolv1/o/1234567890123456/1234-567890-test123",
- "access_token": "dapi1234567890ab1cde2f3ab456c7d89efa",
- "schema": "example_db"
- };
- ```
-
-
-
-
-Check out the Databricks data handler details [here](/data-integrations/databricks).
-
-
-## DataStax
-
-
-
- ```sql
- CREATE DATABASE datastax_datasource --- display name for the database
- WITH ENGINE = 'astra', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- user to be authenticated
- "password": " ", --- password for authentication
- "secure_connection_bundle": { --- secure connection bundle zip file
- "path": " " --- either "path" or "url"
- },
- "host": " ", --- optional, host name or IP address
- "port": , --- optional, port used to make TCP/IP connection
- "protocol_version": , --- optional, protocol version
- "keyspace": " " --- optional, keyspace
- };
- ```
-
-
- ```sql
- CREATE DATABASE datastax_datasource
- WITH ENGINE = 'astra',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 7077,
- "user": "datastax",
- "password": "password",
- "secure_connection_bundle": {
- "path": "/home/Downloads/file.zip"
- }
- };
- ```
-
-
-
-
-Check out the DataStax data handler details [here](/data-integrations/datastax).
-
-
-## DuckDB
-
-
-
- ```sql
- CREATE DATABASE duckdb_datasource --- display name for the database
- WITH ENGINE = 'duckdb', --- name of the MindsDB handler
- PARAMETERS = {
- "database": " ", --- database file name
- "read_only": --- flag used to set the connection to read-only mode
- };
- ```
-
-
- ```sql
- CREATE DATABASE duckdb_datasource
- WITH ENGINE = 'duckdb',
- PARAMETERS = {
- "database": "db.duckdb",
- "read_only": False
- };
- ```
-
-
-
-
-Check out the DuckDB data handler details [here](/data-integrations/duckdb).
-
-
-## Elasticsearch
-
-
-
- ```sql
- CREATE DATABASE elastic_datasource --- display name for the database
- WITH ENGINE = 'elasticsearch', --- name of the MindsDB handler
- PARAMETERS = {
- "hosts": " ", --- one or more host names or IP addresses of the Elasticsearch server
- "username": " ", --- optional, username to authenticate with the Elasticsearch server
- "password": " ", --- optional, password used to authenticate with the Elasticsearch server
- "cloud_id": " " --- optional, unique ID of your hosted Elasticsearch cluster (must be provided when "hosts" is left blank)
- };
- ```
-
-
- ```sql
- CREATE DATABASE elastic_datasource
- WITH ENGINE = 'elasticsearch',
- PARAMETERS = {
- "hosts": "localhost:9200"
- };
- ```
-
-
-
-
-Check out the Elasticsearch data handler details [here](/data-integrations/elasticsearch).
-
-
-## Firebird
-
-
-
- ```sql
- CREATE DATABASE firebird_datasource --- display name for the database
- WITH ENGINE = 'firebird', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address of the Firebird server
- "database": " ", --- database name
- "user": " ", --- user to authenticate with the Firebird server
- "password": " " --- password used to authenticate with the Firebird server
- };
- ```
-
-
- ```sql
- CREATE DATABASE firebird_datasource
- WITH ENGINE = 'firebird',
- PARAMETERS = {
- "host": "127.0.0.1",
- "database": "test",
- "user": "firebird",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the Firebird data handler details [here](/data-integrations/firebird).
-
-
-## Google BigQuery
-
-
-
- ```sql
- CREATE DATABASE bigquery_datasource --- display name for the database
- WITH ENGINE = 'bigquery', --- name of the MindsDB handler
- PARAMETERS = {
- "project_id": " ", --- globally unique project identifier
- "dataset": " ", --- default dataset
- "service_account_keys": " ", --- service account keys file
- "service_account_json": {...} --- it is an alternative to using 'service_account_keys'
- };
- ```
-
-
- ```sql
- CREATE DATABASE bigquery_datasource
- WITH ENGINE = 'bigquery',
- PARAMETERS = {
- "project_id": "badger-345908",
- "service_account_keys": "/home/Downloads/badger-345908.json"
- };
- ```
-
-
- ```sql
- CREATE DATABASE bigquery_datasource
- WITH ENGINE = 'bigquery',
- PARAMETERS = {
- "project_id": "badger-345908",
- "service_account_keys": {
- "url": "https://url/badger-345908.json"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE bq
- WITH
- ENGINE = 'bigquery',
- PARAMETERS = {
- "project_id": "bgtest-1111",
- "dataset": "mydataset",
- "service_account_json": {
- "type": "service_account",
- "project_id": "bgtest-1111",
- "private_key_id": "aaaaaaaaaa",
- "private_key": "---------BIG STRING WITH KEY-------\n",
- "client_email": "testbigquery@bgtest-11111.iam.gserviceaccount.com",
- "client_id": "1111111111111",
- "auth_uri": "https://accounts.google.com/o/oauth2/auth",
- "token_uri": "https://oauth2.googleapis.com/token",
- "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
- "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/testbigquery%40bgtest-11111.iam.gserviceaccount.com"
- }
- };
- ```
-
-
-
-
-Check out the Google BigQuery data handler details [here](/data-integrations/google-bigquery).
-
-
-## Google Sheets
-
-
-
- ```sql
- CREATE DATABASE sheets_datasource --- display name for the database
- WITH ENGINE = 'sheets', --- name of the MindsDB handler
- PARAMETERS = {
- "spreadsheet_id": " ", --- unique ID of the Google Sheet
- "sheet_name": " " --- name of the Google Sheet
- };
- ```
-
-
- ```sql
- CREATE DATABASE sheets_datasource
- WITH ENGINE = 'sheets',
- PARAMETERS = {
- "spreadsheet_id": "abc1234567", --- located in the URL: https://docs.google.com/spreadsheets/d/abc1234567/edit#gid=0
- "sheet_name": "Invoice"
- };
- ```
-
-
-
-
-Check out the Google Sheets data handler details [here](/data-integrations/google-sheets).
-
-
-## GreptimeDB
-
-
-
- ```sql
- CREATE DATABASE greptimedb_datasource --- display name for the database
- WITH ENGINE = 'greptimedb', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host IP address or URL
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "ssl": , --- optional, the `ssl` parameter value indicates whether SSL is enabled (`True`) or disabled (`False`)
- "ssl_ca": { --- optional, SSL Certificate Authority
- "path": " " --- either "path" or "url"
- },
- "ssl_cert": { --- optional, SSL certificates
- "url": " " --- either "path" or "url"
- },
- "ssl_key": { --- optional, SSL keys
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE greptimedb_datasource
- WITH ENGINE = 'greptimedb',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 4002,
- "database": "public",
- "user": "username",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the GreptimeDB data handler details [here](/data-integrations/greptimedb).
-
-
-
-## IBM Db2
-
-
-
- ```sql
- CREATE DATABASE db2_datasource --- display name for the database
- WITH ENGINE = 'DB2', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "schema_name": " " --- database schema name
- };
- ```
-
-
- ```sql
- CREATE DATABASE db2_datasource
- WITH ENGINE = 'DB2',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 25000,
- "database": "BOOKS",
- "user": "db2admin",
- "password": "password",
- "schema_name": "db2admin"
- };
- ```
-
-
-
-
-Check out the IBM Db2 data handler details [here](/data-integrations/ibm-db2).
-
-
-## IBM Informix
-
-
-
- ```sql
- CREATE DATABASE informix_datasource --- display name for the database
- WITH ENGINE = 'informix', --- name of the MindsDB handler
- PARAMETERS = {
- "server": " ", --- server name
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "schema_name": " ", --- database schema name
- "logging_enabled": --- indicates whether logging is enabled (defaults to `True` if left blank)
- };
- ```
-
-
- ```sql
- CREATE DATABASE informix_datasource
- WITH ENGINE = 'informix',
- PARAMETERS = {
- "server": "server",
- "host": "127.0.0.1",
- "port": 9091,
- "database": "stores_demo",
- "user": "informix",
- "password": "password",
- "schema_name": "demo_schema",
- "logging_enabled": False
- };
- ```
-
-
-
-
-Check out the IBM Informix data handler details [here](/data-integrations/ibm-informix).
-
-
-## MariaDB
-
-
-
- ```sql
- CREATE DATABASE maria_datasource --- display name for the database
- WITH ENGINE = 'mariadb', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host IP address or URL
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "ssl": , --- optional, the `ssl` parameter value indicates whether SSL is enabled (`True`) or disabled (`False`)
- "ssl_ca": { --- optional, SSL Certificate Authority
- "path": " " --- either "path" or "url"
- },
- "ssl_cert": { --- optional, SSL certificates
- "url": " " --- either "path" or "url"
- },
- "ssl_key": { --- optional, SSL keys
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE maria_datasource
- WITH ENGINE = 'mariadb',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 3306,
- "database": "mariadb",
- "user": "root",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the MariaDB data handler details [here](/data-integrations/mariadb).
-
-
-## MariaDB SkySQL
-
-
-
- ```sql
- CREATE DATABASE skysql --- display name for the database
- WITH ENGINE = 'mariadb', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- database user
- "password": " ", --- database password
- "host": " ", --- host IP address or URL
- "port": , --- port used to make TCP/IP connection
- "ssl": , --- optional, the `ssl` parameter value indicates whether SSL is enabled (`True`) or disabled (`False`)
- "ssl-ca": { --- optional, SSL Certificate Authority
- "path": " " --- either "path" or "url"
- },
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE skysql_datasource
- WITH ENGINE = 'mariadb',
- PARAMETERS = {
- "host": "mindsdbtest.mdb0002956.db1.skysql.net",
- "port": 5001,
- "database": "mindsdb_data",
- "user": "DB00007539",
- "password": "password",
- "ssl-ca": {
- "url": "https://mindsdb-web-builds.s3.amazonaws.com/aws_skysql_chain.pem"
- }
- };
- ```
-
-
-
-
-For more information on how to connect MariaDB SkySQL and MindsDB, visit our [doc page here](/connect/connect-mariadb-skysql/).
-
-
-## MatrixOne
-
-
-
- ```sql
- CREATE DATABASE matrixone_datasource --- display name for the database
- WITH ENGINE = 'matrixone', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host IP address or URL
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "ssl": , --- optional, the `ssl` parameter value indicates whether SSL is enabled (`True`) or disabled (`False`)
- "ssl_ca": { --- optional, SSL Certificate Authority
- "path": " " --- either "path" or "url"
- },
- "ssl_cert": { --- optional, SSL certificates
- "url": " " --- either "path" or "url"
- },
- "ssl_key": { --- optional, SSL keys
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE matrixone_datasource
- WITH ENGINE = 'matrixone',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 6001,
- "database": "mo_catalog",
- "user": "matrixone",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the MatrixOne data handler details [here](/data-integrations/matrixone).
-
-
-## Microsoft Access
-
-
-
- ```sql
- CREATE DATABASE access_datasource --- display name for the database
- WITH ENGINE = 'access', --- name of the MindsDB handler
- PARAMETERS = {
- "db_file": " " --- path to the database file to be used
- };
- ```
-
-
- ```sql
- CREATE DATABASE access_datasource
- WITH ENGINE = 'access',
- PARAMETERS = {
- "db_file": "example_db.accdb"
- };
- ```
-
-
-
-
-Check out the Microsoft Access data handler details [here](/data-integrations/microsoft-access).
-
-
-## Microsoft SQL Server
-
-
-
- ```sql
- CREATE DATABASE mssql_datasource --- display name for the database
- WITH ENGINE = 'mssql', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " " --- database password
- };
- ```
-
-
- ```sql
- CREATE DATABASE mssql_datasource
- WITH ENGINE = 'mssql',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 1433,
- "database": "master",
- "user": "sa",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the Microsoft SQL Server data handler details [here](/data-integrations/microsoft-sql-server).
-
-
-## MonetDB
-
-
-
- ```sql
- CREATE DATABASE monetdb_datasource --- display name for the database
- WITH ENGINE = 'monetdb', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "schema_name": " " --- database schema name (defaults to the current schema if left blank)
- };
- ```
-
-
- ```sql
- CREATE DATABASE monetdb_datasource
- WITH ENGINE = 'monetdb',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 50000,
- "database": "demo",
- "user": "monetdb",
- "password": "password",
- "schema_name": "sys"
- };
- ```
-
-
-
-
-Check out the MonetDB data handler details [here](/data-integrations/monetdb).
-
-
-## MongoDB
-
-
-
- ```sql
- CREATE DATABASE mongo_datasource --- display name for the database
- WITH ENGINE = 'mongo', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "user": " ", --- database user
- "password": " " --- database password
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE mongo_datasource
- WITH ENGINE = 'mongo',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 27017,
- "user": "mongo",
- "password": "password",
- "database": "database"
- };
- ```
-
-
-
-
-Check out the MongoDB data handler details [here](/data-integrations/mongodb).
-
-
-## MySQL
-
-
-
- ```sql
- CREATE DATABASE mysql_datasource --- display name for the database
- WITH ENGINE = 'mysql', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "ssl": , --- optional, the `ssl` parameter value indicates whether SSL is enabled (`True`) or disabled (`False`)
- "ssl_ca": { --- optional, SSL Certificate Authority
- "path": " " --- either "path" or "url"
- },
- "ssl_cert": { --- optional, SSL certificates
- "url": " " --- either "path" or "url"
- },
- "ssl_key": { --- optional, SSL keys
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE mysql_datasource
- WITH ENGINE = 'mysql',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 3306,
- "database": "mysql",
- "user": "root",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the MySQL data handler details [here](/data-integrations/mysql).
-
-
-## OceanBase
-
-
-
- ```sql
- CREATE DATABASE oceanbase_datasource --- display name for the database
- WITH ENGINE = 'oceanbase', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "user": " ", --- database user
- "password": " ", --- database password
- "port": , --- port used to make TCP/IP connection
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE oceanbase_datasource
- WITH ENGINE = 'oceanbase',
- PARAMETERS = {
- "host": "127.0.0.1",
- "user": "oceanbase_user",
- "password": "password",
- "port": 2881,
- "database": "oceanbase_db"
- };
- ```
-
-
-
-
-Check out the OceanBase data handler details [here](/data-integrations/oceanbase).
-
-
-## OpenGauss
-
-
-
- ```sql
- CREATE DATABASE opengauss_datasource --- display name for the database
- WITH ENGINE = 'opengauss', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- };
- ```
-
-
- ```sql
- CREATE DATABASE opengauss_datasource
- WITH ENGINE = 'opengauss',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 5432,
- "database": "opengauss",
- "user": "mindsdb",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the OpenGauss data handler details [here](/data-integrations/opengauss).
-
-
-## Oracle
-
-
-
- ```sql
- CREATE DATABASE oracle_datasource --- display name for the database
- WITH ENGINE = 'oracle', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "sid": " ", --- unique identifier of the database instance
- "user": " ", --- database user
- "password": " " --- database password
- };
- ```
-
-
- ```sql
- CREATE DATABASE oracle_datasource
- WITH ENGINE = 'oracle',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 1521,
- "sid": "ORCL",
- "user": "sys",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the Oracle data handler details [here](/data-integrations/oracle).
-
-
-## OrioleDB
-
-
-
- ```sql
- CREATE DATABASE orioledb_datasource --- display name for the database
- WITH ENGINE = 'orioledb', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- database user
- "password": " ", --- database password
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "server": " ", --- sets the current server
- "database": " " --- sets the current database
- };
- ```
-
-
- ```sql
- CREATE DATABASE orioledb_datasource
- WITH ENGINE = 'orioledb',
- PARAMETERS = {
- "user": "orioledb_user",
- "password": "password",
- "host": "127.0.0.1",
- "port": 55505,
- "server": "server_name",
- "database": "oriole_db"
- };
- ```
-
-
-
-
-Check out the OrioleDB data handler details [here](/data-integrations/orioledb).
-
-
-## PlanetScale
-
-
-
- ```sql
- CREATE DATABASE planetscale_datasource --- display name for the database
- WITH ENGINE = 'planet_scale', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "user": " ", --- database user
- "password": " ", --- database password
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE planetscale_datasource
- WITH ENGINE = 'planet_scale',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 3306,
- "user": "planetscale_user",
- "password": "password",
- "database": "planetscale_db"
- };
- ```
-
-
-
-
-Check out the PlanetScale data handler details [here](/data-integrations/planetscale).
-
-
-## PostgreSQL
-
-
-
- ```sql
- CREATE DATABASE psql_datasource --- display name for the database
- WITH ENGINE = 'postgres', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " " --- database password
- };
- ```
-
-
- ```sql
- CREATE DATABASE psql_datasource
- WITH ENGINE = 'postgres',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 5432,
- "database": "postgres",
- "user": "postgres",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the PostgreSQL data handler details [here](/data-integrations/postgresql).
-
-
-## QuestDB
-
-
-
- ```sql
- CREATE DATABASE questdb_datasource --- display name for the database
- WITH ENGINE = 'questdb', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "public": --- value of `True` or `False` (defaults to `True` if left blank)
- };
- ```
-
-
- ```sql
- CREATE DATABASE questdb_datasource
- WITH ENGINE = 'questdb',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 8812,
- "database": "qdb",
- "user": "admin",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the QuestDB data handler details [here](/data-integrations/questdb).
-
-
-## SAP HANA
-
-
-
- ```sql
- CREATE DATABASE sap_hana_datasource --- display name for the database
- WITH ENGINE = 'hana', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "user": " ", --- user
- "password": " ", --- password
- "schema": " ", --- database schema name (defaults to the current schema if left blank)
- "encrypt": --- indicates whether connection is encrypted (required for cloud usage)
- };
- ```
-
-
- ```sql
- CREATE DATABASE sap_hana_datasource
- WITH ENGINE = 'hana',
- PARAMETERS = {
- "host": ".hana.trial-us10.hanacloud.ondemand.com",
- "port": "443",
- "user": "DBADMIN",
- "password": "password",
- "schema": "MINDSDB",
- "encrypt": True
- };
- ```
-
-
-
-
-Check out the SAP HANA data handler details [here](/data-integrations/sap-hana).
-
-
-## ScyllaDB
-
-
-
- ```sql
- CREATE DATABASE scylladb_datasource --- display name for the database
- WITH ENGINE = 'scylladb', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "user": " ", --- user
- "password": " ", --- password
- "protocol_version": , --- optional, protocol version (defaults to 4 if left blank)
- "keyspace": " ", --- keyspace name (it is the top level container for tables)
- "secure_connect_bundle": { --- secure connect bundle file
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE scylladb_datasource
- WITH ENGINE = 'scylladb',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 7199,
- "user": "user@mindsdb.com",
- "password": "password",
- "protocol_version": 4,
- "keyspace": "keyspace_name",
- "secure_connect_bundle": {
- "path": "/home/zoran/Downloads/secure-connect-mindsdb.zip"
- }
- };
- ```
-
-
-
-
-Check out the ScyllaDB data handler details [here](/data-integrations/scylladb).
-
-
-## SingleStore
-
-
-
- ```sql
- CREATE DATABASE singlestore_datasource --- display name for the database
- WITH ENGINE = 'singlestore', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "ssl": , --- optional, the `ssl` parameter value indicates whether SSL is enabled (`True`) or disabled (`False`)
- "ssl_ca": { --- optional, SSL Certificate Authority
- "path": " " --- either "path" or "url"
- },
- "ssl_cert": { --- optional, SSL certificates
- "url": " " --- either "path" or "url"
- },
- "ssl_key": { --- optional, SSL keys
- "path": " " --- either "path" or "url"
- }
- };
- ```
-
-
- ```sql
- CREATE DATABASE singlestore_datasource
- WITH ENGINE = 'singlestore',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 3306,
- "database": "singlestore",
- "user": "root",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the SingleStore data handler details [here](/data-integrations/singlestore).
-
-
-## Snowflake
-
-
-
- ```sql
- CREATE DATABASE snowflake_datasource --- display name for the database
- WITH ENGINE = 'snowflake', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "account": " ", --- the Snowflake account
- "schema": " ", --- schema name (defaults to `public` if left blank)
- "protocol": " ", --- protocol (defaults to `https` if left blank)
- "warehouse": " " --- the warehouse account
- };
- ```
-
-
- ```sql
- CREATE DATABASE snowflake_datasource
- WITH ENGINE = 'snowflake',
- PARAMETERS = {
- "host": "account_name.snowflakecomputing.com",
- "port": 443,
- "database": "snowflake",
- "user": "user",
- "password": "password",
- "account": "account_name",
- "schema": "public",
- "protocol": "https",
- "warehouse": "warehouse"
- };
- ```
-
-
-
-
-Check out the Snowflake data handler details [here](/data-integrations/snowflake).
-
-
-## SQL Anywhere
-
-
-
- ```sql
- CREATE DATABASE sqlany_datasource --- display name for the database
- WITH ENGINE = 'sqlany', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- username
- "password": " ", --- password
- "host": " ", --- host name or IP address of the SAP SQL Anywhere instance
- "port": , --- port number of the SAP SQL Anywhere instance
- "server": " ", --- sets the current server
- "database": " " --- sets the current database
- };
- ```
-
-
- ```sql
- CREATE DATABASE sqlany_datasource
- WITH ENGINE = 'sqlany',
- PARAMETERS = {
- "user": "sqlany_user",
- "password": "password",
- "host": "127.0.0.1",
- "port": 55505,
- "server": "server_name",
- "database": "sqlany_db"
- };
- ```
-
-
-
-
-Check out the SQL Anywhere data handler details [here](/data-integrations/sql-anywhere).
-
-
-## SQLite
-
-
-
- ```sql
- CREATE DATABASE sqlite_datasource --- display name for the database
- WITH ENGINE = 'sqlite', --- name of the MindsDB handler
- PARAMETERS = {
- "db_file": " " --- path to the database file to be used
- };
- ```
-
-
- ```sql
- CREATE DATABASE sqlite_datasource
- WITH ENGINE = 'sqlite',
- PARAMETERS = {
- "db_file": "example.db"
- };
- ```
-
-
-
-
-Check out the SQLite data handler details [here](/data-integrations/sqlite).
-
-
-## StarRocks
-
-
-
- ```sql
- CREATE DATABASE starrocks_datasource --- display name for the database
- WITH ENGINE = 'starrocks', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "user": " ", --- database user
- "password": " ", --- database password
- "port": , --- port used to make TCP/IP connection
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE starrocks_datasource
- WITH ENGINE = 'starrocks',
- PARAMETERS = {
- "host": "127.0.0.1",
- "user": "starrocks_user",
- "password": "password",
- "port": 8030,
- "database": "starrocks_db"
- };
- ```
-
-
-
-
-Check out the StarRocks data handler details [here](/data-integrations/starrocks).
-
-
-## Supabase
-
-
-
- ```sql
- CREATE DATABASE supabase_datasource --- display name for the database
- WITH ENGINE = 'supabase', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- };
- ```
-
-
- ```sql
- CREATE DATABASE supabase_datasource
- WITH ENGINE = 'supabase',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 54321,
- "database": "test",
- "user": "supabase",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the Supabase data handler details [here](/data-integrations/supabase).
-
-
-## TDengine
-
-
-
- ```sql
- CREATE DATABASE tdengine_datasource --- display name for the database
- WITH ENGINE = 'tdengine', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- server username
- "password": " ", --- server password
- "url": " ", --- URL to the TDEngine server (for local server, it is localhost:6041 by default)
- "token": " ", --- unique token provided when using TDEngine Cloud
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE tdengine_datasource
- WITH ENGINE = 'tdengine',
- PARAMETERS = {
- "user": "tdengine_user",
- "password": "password",
- "url": "localhost:6041",
- "token": "token",
- "database": "tdengine_db"
- };
- ```
-
-
-
-
-Check out the TDengine data handler details [here](/data-integrations/tdengine).
-
-
-## Teradata
-
-
-
- ```sql
- CREATE DATABASE teradata_datasource --- display name for the database
- WITH ENGINE = 'teradata', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "user": " ", --- database user
- "password": " ", --- database password
- "database": " ", --- database name
- "port": --- port used to make TCP/IP connection
- };
- ```
-
-
- ```sql
- CREATE DATABASE teradata_datasource
- WITH ENGINE = 'teradata',
- PARAMETERS = {
- "host": "127.0.0.1",
- "user": "teradata",
- "password": "password",
- "database": "teradata_db",
- "port": 1025
- };
- ```
-
-
-
-
-Check out the Teradata data handler details [here](/data-integrations/teradata).
-
-
-## TiDB
-
-
-
- ```sql
- CREATE DATABASE tidb_datasource --- display name for the database
- WITH ENGINE = 'tidb', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- };
- ```
-
-
- ```sql
- CREATE DATABASE tidb_datasource
- WITH ENGINE = 'tidb',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 4000,
- "database": "tidb",
- "user": "root",
- "password": "password"
- };
- ```
-
-
-
-
-Check out the TiDB data handler details [here](/data-integrations/tidb).
-
-
-## TimescaleDB
-
-
-
- ```sql
- CREATE DATABASE timescaledb_datasource --- display name for the database
- WITH ENGINE = 'timescaledb', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- database user
- "password": " ", --- database password
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE timescaledb_datasource
- WITH ENGINE = 'timescaledb',
- PARAMETERS = {
- "user": "timescaledb",
- "password": "password",
- "host": "127.0.0.1",
- "port": 36806,
- "database": "timescaledb_db"
- };
- ```
-
-
-
-
-Check out the TimescaleDB data handler details [here](/data-integrations/timescaledb).
-
-
-## Trino
-
-
-
- ```sql
- CREATE DATABASE trino_datasource --- display name for the database
- WITH ENGINE = 'trino', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "auth": " ", --- optional, authentication method, currently only `basic` is supported
- "http_scheme": " ", --- optional, `http`(default) or `https`
- "user": " ", --- database user
- "password": " ", --- database password
- "catalog": " ", --- optional, catalog
- "schema": " " --- optional, schema
- "with": --- optional, default WITH-clause (properties) for ALL tables
- --- this parameter is experimental and might be changed or removed in future release
- };
- ```
-
-
- ```sql
- CREATE DATABASE trino_datasource
- WITH ENGINE = 'trino',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 8080,
- "user": "trino",
- "password": "password",
- "catalog": "default",
- "schema": "test"
- };
- ```
-
-
- ```sql
- CREATE DATABASE trino_datasource
- WITH ENGINE = 'trino',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 443,
- "auth": "basic",
- "http_scheme": "https",
- "user": "trino",
- "password": "password",
- "catalog": "default",
- "schema": "test",
- "with": "with (transactional = true)"
- };
- ```
-
-
-
-
-Check out the Trino data handler details [here](/data-integrations/trino).
-
-
-## Vertica
-
-
-
- ```sql
- CREATE DATABASE vertica_datasource --- display name for the database
- WITH ENGINE = 'vertica', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " ", --- database name
- "user": " ", --- database user
- "password": " ", --- database password
- "schema_name": " " --- database schema name
- };
- ```
-
-
- ```sql
- CREATE DATABASE vertica_datasource
- WITH ENGINE = 'vertica',
- PARAMETERS = {
- "host": "127.0.0.1",
- "port": 5433,
- "database": "VMart",
- "user": "vertica",
- "password": "password",
- "schema_name": "public"
- };
- ```
-
-
-
-
-Check out the Vertica data handler details [here](/data-integrations/vertica).
-
-
-## Vitess
-
-
-
- ```sql
- CREATE DATABASE vitess_datasource --- display name for the database
- WITH ENGINE = 'vitess', --- name of the MindsDB handler
- PARAMETERS = {
- "host": " ", --- host name or IP address
- "user": " ", --- database user
- "password": " ", --- database password
- "port": , --- port used to make TCP/IP connection
- "database": " " --- database name
- };
- ```
-
-
- ```sql
- CREATE DATABASE vitess_datasource
- WITH ENGINE = 'vitess',
- PARAMETERS = {
- "host": "127.0.0.1",
- "user": "vitess_user",
- "password": "password",
- "port": 33577,
- "database": "vitess_db"
- };
- ```
-
-
-
-
-Check out the Vitess data handler details [here](/data-integrations/vitess).
-
-
-## YugabyteDB
-
-
-
- ```sql
- CREATE DATABASE yugabyte_datasource --- display name for the database
- WITH ENGINE = 'yugabyte', --- name of the MindsDB handler
- PARAMETERS = {
- "user": " ", --- database user
- "password": " ", --- database password
- "host": " ", --- host name or IP address
- "port": , --- port used to make TCP/IP connection
- "database": " " --- database name
- "schema": " " --- schema name, if multiple schemas then comma separated
- };
- ```
-
-
- ```sql
- CREATE DATABASE yugabyte_datasource
- WITH ENGINE = 'yugabyte',
- PARAMETERS = {
- "user": "yugabyte",
- "password": "password",
- "host": "127.0.0.1",
- "port": 5433,
- "database": "yugabyte_db",
- "schema":"cd"
- };
- ```
-
-
-
-
-Check out the YugabyteDB data handler details [here](/data-integrations/yugabytedb).
-
diff --git a/docs/integrations/integrations.mdx b/docs/integrations/integrations.mdx
deleted file mode 100644
index 38e88c78640..00000000000
--- a/docs/integrations/integrations.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Integrations Overview
-sidebarTitle: Overview
-icon: "link"
----
-
-MindsDB integrates with numerous data sources and popular AI/ML frameworks to seamlessly bring data and AI together.
-
-[Data sources](/integrations/data-overview) are all the data sources that you can conect to MindsDB, including traditional databases and data that is behind APIs. It is important that MindsDB does no ETL pipelines. When you query a data source MindsDB forwards this query in real-time to the original data source. MindsDB is very good at translating SQL to any other query dialect.
-
-
-**MindsDB supports Model Context Protocol (MCP)**
-
-MindsDB is an MCP server that enables your MCP applications to answer questions over large-scale federated data. [Learn more here](/mcp/overview).
-
-
-[AI/ML frameworks](/integrations/ai-overview) are all the possibilities you have for AI/ML modeling, from Generative AI to traditional ML and AutoML. You can create, train, and deploy AI/ML models within MindsDB ecosystem and provide it with data from connected data sources.
-
-
-
-
-
-
-
-If you want to use a specific integration with MindsDB (either data or AI/ML integration), you need to ensure that the required dependencies are installed.
-
-You can verify it by running this command:
-
-```sql
-SHOW HANDLERS WHERE name = 'integration_name';
-```
-
-The output includes the `IMPORT_SUCCESS` column. If this column reads `true`, then you can go ahead and use this integration. But, if it reads `false`, then you need to install all required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
-
diff --git a/docs/integrations/support.mdx b/docs/integrations/support.mdx
deleted file mode 100644
index d76df9af518..00000000000
--- a/docs/integrations/support.mdx
+++ /dev/null
@@ -1,214 +0,0 @@
----
-title: Supported Integrations
-sidebarTitle: Supported Integrations
-icon: "badge-check"
----
-
-MindsDB integrates with numerous data sources, AI/ML frameworks, and LLM providers. These integrations fall into two categories:
-
-- **Verified integrations**: Officially supported and maintained by the MindsDB Team, these high-standard integrations meet the MindsDB verification process, ensuring full feature coverage and thorough testing.
-- **Community integrations**: Developed and maintained by the MindsDB Community, these integrations offer valuable functionality and continue to receive community-driven improvements and support.
-
-
-The documentation for most of the integrations can be found in the following sections for [Data Sources](/integrations/data-overview) and [AI Engines](/integrations/ai-overview).
-
-
-## Verified Integrations
-
-Below is the list of all verified integrations.
-
-| Integration | Type | Handler |
-| -------------------- | ---- | ------- |
-| PostgreSQL | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/postgres_handler) |
-| MySQL | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/mysql_handler) |
-| ClickHouse | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/clickhouse_handler) |
-| Microsoft SQL Server | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/mssql_handler) |
-| Snowflake | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/snowflake_handler) |
-| Web | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/web_handler) |
-| Redshift | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/redshift_handler) |
-| OpenAI | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/openai_handler) |
-| Google BigQuery | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/bigquery_handler) |
-| ElasticSearch | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/elasticsearch_handler) |
-| Amazon S3 | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/s3_handler) |
-
-
-## Community Integrations
-
-Below is the list of all community integrations.
-
-| Integration | Type | Handler |
-| -------------------- | ----- | ------- |
-| LangChain | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/langchain_handler) |
-| Slack | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/slack_handler) |
-| Ollama | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/ollama_handler) |
-| ChromaDB | VECTOR STORE | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/chromadb_handler) |
-| Milvus | VECTOR STORE | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/milvus_handler) |
-| Pinecone | VECTOR STORE | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/pinecone_handler) |
-| Qdrant | VECTOR STORE | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/qdrant_handler) |
-| Weaviate | VECTOR STORE | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/weaviate_handler) |
-| PGVector | VECTOR STORE | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/pgvector_handler) |
-| Hugging Face | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/huggingface_handler) |
-| Llama Index | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/llama_index_handler) |
-| Anthropic | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/anthropic_handler) |
-| MariaDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/mariadb_handler) |
-| X (Twitter) | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/twitter_handler) |
-| GitHub | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/github_handler) |
-| Hugging Face Inference API | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/huggingface_api_handler) |
-| Binance | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/binance_handler) |
-| BYOM | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/byom_handler) |
-| Cassandra | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/cassandra_handler) |
-| Confluence | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/confluence_handler) |
-| Gmail | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/gmail_handler) |
-| Couchbase | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/couchbase_handler) |
-| Twelve Labs | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/twelve_labs_handler) |
-| Anomaly Detection | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/anomaly_detection_handler) |
-| YouTube | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/youtube_handler) |
-| Vertex | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/vertex_handler) |
-| Aerospike | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/aerospike_handler) |
-| Microsoft Access | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/access_handler) |
-| Airtable | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/airtable_handler) |
-| Altibase | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/altibase_handler) |
-| Apache Doris | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/apache_doris_handler) |
-| World Air Quality Index | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/aqicn_handler) |
-| Amazon Aurora | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/aurora_handler) |
-| AutoGluon | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/autogluon_handler) |
-| Autokeras | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/autokeras_handler) |
-| AutoSkLearn | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/autosklearn_handler) |
-| Ckan | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/ckan_handler) |
-| Clipdrop | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/clipdrop_handler) |
-| Google Cloud Spanner | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/cloud_spanner_handler) |
-| Google Cloud SQL | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/cloud_sql_handler) |
-| CockroachDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/cockroach_handler) |
-| Cohere | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/cohere_handler) |
-| Coinbase | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/coinbase_handler) |
-| Crate DB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/crate_handler) |
-| D0lt | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/d0lt_handler) |
-| Databend | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/databend_handler) |
-| Databricks | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/databricks_handler) |
-| Datastax | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/datastax_handler) |
-| IBM DB2 | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/db2_handler) |
-| Apache Derby | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/derby_handler) |
-| Discord | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/discord_handler) |
-| Docker Hub | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/dockerhub_handler) |
-| DocumentDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/documentdb_handler) |
-| Dremio | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/dremio_handler) |
-| Apache Druid | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/druid_handler) |
-| DuckDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/duckdb_handler) |
-| Amazon DynamoDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/dynamodb_handler) |
-| EdgelessDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/edgelessdb_handler) |
-| Email | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/email_handler) |
-| Empress | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/empress_handler) |
-| Eventbrite | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/eventbrite_handler) |
-| EventStoreDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/eventstoredb_handler) |
-| FaunaDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/faunadb_handler) |
-| Firebird | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/firebird_handler) |
-| FLAML | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/flaml_handler) |
-| Frappe | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/frappe_handler) |
-| GitLab | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/gitlab_handler) |
-| Google Analytics | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_analytics_handler) |
-| Google Books | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_books_handler) |
-| Google Calendar | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_calendar_handler) |
-| Google Content Shopping | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_content_shopping_handler) |
-| Google Fit | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_fit_handler) |
-| Google Gemini | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_gemini_handler) |
-| Google Search | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/google_search_handler) |
-| HackerNews | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/hackernews_handler) |
-| SAP HANA | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/hana_handler) |
-| Hive | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/hive_handler) |
-| HSQLDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/hsqldb_handler) |
-| HubSpot | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/hubspot_handler) |
-| Apache Ignite | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/ignite_handler) |
-| Apache Impala | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/impala_handler) |
-| InfluxDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/influxdb_handler) |
-| IBM Informix | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/informix_handler) |
-| Ingres | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/ingres_handler) |
-| InStatus | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/instatus_handler) |
-| Intercom | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/intercom_handler) |
-| Jira | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/jira_handler) |
-| Kinetica | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/kinetica_handler) |
-| LanceDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/lancedb_handler) |
-| LangChain (embeddings) | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/langchain_embedding_handler) |
-| LeonardoAI | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/leonardoai_handler) |
-| LibSQL | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/libsql_handler) |
-| Lightdash | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/lightdash_handler) |
-| LightFM | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/lightfm_handler) |
-| Lindorm | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/lindorm_handler) |
-| LiteLLM | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/litellm_handler) |
-| Luma | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/luma_handler) |
-| Materialize | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/materialize_handler) |
-| MatrixOne | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/matrixone_handler) |
-| MaxDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/maxdb_handler) |
-| MediaWiki | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/mediawiki_handler) |
-| Mendeley | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/mendeley_handler) |
-| Merlion | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/merlion_handler) |
-| MLflow | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/mlflow_handler) |
-| MonetDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/monetdb_handler) |
-| MonkeyLearn | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/monkeylearn_handler) |
-| Microsoft Teams | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/ms_teams_handler) |
-| NewsAPI | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/newsapi_handler) |
-| Notion | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/notion_handler) |
-| npm | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/npm_handler) |
-| NuoDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/nuo_jdbc_handler) |
-| Oceanbase | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/oceanbase_handler) |
-| Oil Prices | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/oilpriceapi_handler) |
-| OpenBB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/openbb_handler) |
-| OpenGauss | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/opengauss_handler) |
-| OpenStreetMap | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/openstreetmap_handler) |
-| Oracle | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/oracle_handler) |
-| OrioleDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/orioledb_handler) |
-| PaLM | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/palm_handler) |
-| PayPal | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/paypal_handler) |
-| Phoenix | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/phoenix_handler) |
-| Pinot | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/pinot_handler) |
-| Pirate Weather | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/pirateweather_handler) |
-| Plaid | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/plaid_handler) |
-| PlanetScale | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/planetscale_handler) |
-| Popularity Recommender | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/popularity_recommender_handler) |
-| Portkey | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/portkey_handler) |
-| PyCaret | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/pycaret_handler) |
-| PyPI | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/pypi_handler) |
-| QuestDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/questdb_handler) |
-| Quickbooks | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/quickbooks_handler) |
-| Ray Serve | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/ray_serve_handler) |
-| Reddit | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/reddit_handler) |
-| Replicate | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/replicate_handler) |
-| Rocket Chat | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/rocket_chat_handler) |
-| Rockset | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/rockset_handler) |
-| SAP ERP | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sap_erp_handler) |
-| Scylla | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/scylla_handler) |
-| Sendinblue | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sendinblue_handler) |
-| Sentence Transformers | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sentence_transformers_handler) |
-| Microsoft SharePoint | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sharepoint_handler) |
-| Google Sheets | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sheets_handler) |
-| Shopify | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/shopify_handler) |
-| SingleStore | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/singlestore_handler) |
-| Solace | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/solace_handler) |
-| Solr | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/solr_handler) |
-| Spacy | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/spacy_handler) |
-| SAP SQL Anywhere | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sqlany_handler) |
-| SQLite | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sqlite_handler) |
-| SqreamDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/sqreamdb_handler) |
-| StablityAI | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/stabilityai_handler) |
-| StarRocks | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/starrocks_handler) |
-| Strapi | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/strapi_handler) |
-| Strava | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/strava_handler) |
-| Stripe | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/stripe_handler) |
-| Supabase | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/supabase_handler) |
-| SurrealDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/surrealdb_handler) |
-| Symbl | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/symbl_handler) |
-| TDEngine | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/tdengine_handler) |
-| Teradata | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/teradata_handler) |
-| TiDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/tidb_handler) |
-| TimescaleDB | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/timescaledb_handler) |
-| TPOT | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/tpot_handler) |
-| Trino | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/trino_handler) |
-| Trip Advisor | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/tripadvisor_handler) |
-| Twilio | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/twilio_handler) |
-| Vertica | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/vertica_handler) |
-| Vitess | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/vitess_handler) |
-| Webz | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/webz_handler) |
-| WhatsApp | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/whatsapp_handler) |
-| Writer | AI | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/writer_handler) |
-| Xata | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/xata_handler) |
-| Yugabyte | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/yugabyte_handler) |
-| ZipcodeBase | DATA | [Link](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/zipcodebase_handler) |
diff --git a/docs/minds.mdx b/docs/minds.mdx
deleted file mode 100644
index 520880685d8..00000000000
--- a/docs/minds.mdx
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Minds - Data Driven AI Agents
-sidebarTitle: Introduction
-icon: "house"
----
-
-Minds are advanced AI systems designed to answer questions across connected data sources, providing comprehensive insights while reducing the time and effort needed for manual data analysis.
-
-
-
-
-
-Minds function similarly to **large language models (LLMs) but go beyond** by answering queries using any connected data. This is achieved through:
-
-* **parametric search** to retrieve the most relevant data.
-* **semantic search** to understand context and generate meaningful responses.
-* **AI/ML models** to analyze data and deliver precise answers.
-
-With Minds, one can seamlessly integrate AI-powered enterprise knowledge into applications. By creating a Mind, connecting data sources, and making queries via Minds' OpenAI-compatible APIs, applications gain expert-like intelligence, orchestrating across multiple knowledge sources to provide well-reasoned answers.
diff --git a/docs/minds/authentication.mdx b/docs/minds/authentication.mdx
deleted file mode 100644
index d6621a3a759..00000000000
--- a/docs/minds/authentication.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: Authentication
-sidebarTitle: Authentication
-icon: "lock"
----
-
-Authenticate your requests to access the endpoints in the Minds Cloud. You can view and manage your API keys in the [Minds Dashboard](https://mdb.ai/apiKeys).
-
-Here's how to add the Minds API key to the request header using cURL or Minds SDK, which you can install by running `pip install minds_sdk`.
-
-
- ```bash cURL
- curl --request X \
- --url 'https://mdb.ai/...' \
- --header 'Authorization: Bearer MINDS_API_KEY'
- ...
- ```
-
- ```python Python
- from minds.client import Client
-
- client = Client("MINDS_API_KEY")
- ```
-
-
-Always keep your API keys safe and revoke it if you suspect it has been compromised.
diff --git a/docs/minds/data_sources.mdx b/docs/minds/data_sources.mdx
deleted file mode 100644
index 2d7c4ececbb..00000000000
--- a/docs/minds/data_sources.mdx
+++ /dev/null
@@ -1,541 +0,0 @@
----
-title: Supported Data Sources
-sidebarTitle: Supported Data Sources
-icon: "database"
----
-
-Below is a selection of available data sources along with the required and optional connection parameters.
-
-## Amazon DynamoDB
-
-Connect Amazon DynamoDB providing the following connection parameters:
-
-```python
-dynamodb_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='dynamodb',
- connection_data={
- 'aws_access_key_id': 'ASIAW...XGTQ5',
- 'aws_secret_access_key': 'oOo2KYKAjd/jbu...AUAbx',
- 'aws_session_token': 'IQoJb3...xwaNwvQ=',
- 'region_name': 'us-east-2'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `aws_access_key_id`: The AWS access key that identifies the user or IAM role.
-* `aws_secret_access_key`: The AWS secret access key that identifies the user or IAM role.
-* `region_name`: The AWS region to connect to.
-
-Optional connection parameters include the following:
-
-* `aws_session_token`: The AWS session token that identifies the user or IAM role. This becomes necessary when using temporary security credentials.
-
-## Amazon Redshift
-
-Connect Amazon Redshift providing the following connection parameters:
-
-```python
-redshift_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='redshift',
- connection_data={
- 'host': 'samples.mindsdb.com',
- 'port': 5439,
- 'database': 'sample',
- 'user': 'admin',
- 'password': 'rXYZ92zXabcfdBXhMnrj6GTXYvcs8XXz'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `host`: The host name or IP address of the Redshift cluster.
-* `port`: The port to use when connecting with the Redshift cluster.
-* `database`: The database name to use when connecting with the Redshift cluster.
-* `user`: The username to authenticate the user with the Redshift cluster.
-* `password`: The password to authenticate the user with the Redshift cluster.
-
-Optional connection parameters include the following:
-
-* `schema`: The database schema to use. Defaults to `public`.
-* `sslmode`: The SSL mode for the connection.
-
-## Amazon S3
-
-Connect Amazon S3 providing the following connection parameters:
-
-```python
-s3_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='s3',
- connection_data={
- 'aws_access_key_id': 'ASIAW...XGTQ5',
- 'aws_secret_access_key': 'oOo2KYKAjd/jbu...AUAbx',
- 'aws_session_token': 'IQoJb3...xwaNwvQ=',
- 'bucket': 'my-bucket'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-In the context of Amazon S3, the `tables` refer to the files available in the connected bucket(s). This can be a list of file names or file paths. For example, `tables=['file1.csv', 'folder/file2.csv']`.
-Additionally, a special table called `files` is available that lists all the files along with their content in the connected bucket(s).
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `aws_access_key_id`: The AWS access key that identifies the user or IAM role.
-* `aws_secret_access_key`: The AWS secret access key that identifies the user or IAM role.
-
-Optional connection parameters include the following:
-
-* `aws_session_token`: The AWS session token that identifies the user or IAM role. This becomes necessary when using temporary security credentials.
-* `bucket`: The name of the Amazon S3 bucket. If not provided, all available buckets can be queried, however, this can affect performance, especially when listing all of the available objects.
-
-## ClickHouse
-
-Connect ClickHouse providing the following connection parameters:
-
-```python
-clickhouse_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='clickhouse',
- connection_data={
- 'user': 'default',
- 'password': '3ZgXtMqAGxyzp4ZYuRndiXY8tXurptTx',
- 'host': 'samples.mindsdb.com',
- 'port': 8123,
- 'database': 'default',
- 'protocol': 'http'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `host`: The hostname or IP address of the ClickHouse server.
-* `port`: The TCP/IP port of the ClickHouse server.
-* `user`: The username used to authenticate with the ClickHouse server.
-* `password`: The password to authenticate the user with the ClickHouse server.
-* `database`: The database name to use when connecting with the ClickHouse server. Defaults to `default`.
-
-Optional connection parameters include the following:
-
-* `protocol`: It is an optional parameter. Its supported values are `native`, `http` and `https`. Defaults to `native`.
-
-## Databricks
-
-Connect Databricks providing the following connection parameters:
-
-```python
-databricks_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='databricks',
- connection_data={
- 'server_hostname': 'xyz-24x23abc-46x7.cloud.databricks.com',
- 'http_path': '/sql/1.0/warehouses/123zx7f456e789a7',
- 'access_token': 'dxyz9fa1234b6b12b1xyzc2e12345ebc9876',
- 'catalog': 'mindsdb',
- 'schema': 'default'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `server_hostname`: The server hostname for the cluster or SQL warehouse.
-* `http_path`: The HTTP path of the cluster or SQL warehouse.
-* `access_token`: A Databricks personal access token for the workspace.
-
-Refer to the instructions [[1]](https://docs.databricks.com/en/integrations/compute-details.html) and [[2]](https://docs.databricks.com/en/dev-tools/python-sql-connector.html#authentication) to find the connection parameters mentioned above for your compute resource.
-
-Optional connection parameters include the following:
-
-* `session_configuration`: Additional (key, value) pairs to set as Spark session configuration parameters. This should be provided as a JSON string.
-* `http_headers`: Additional (key, value) pairs to set in HTTP headers on every RPC request the client makes. This should be provided as a JSON string.
-* `catalog`: The catalog to use for the connection.
-* `schema`: The schema (database) to use for the connection.
-
-## Elasticsearch
-
-Connect Elasticsearch providing the following connection parameters:
-
-```python
-elasticsearch_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='elasticsearch',
- connection_data={
- 'cloud_id': 'a12345b...gxM2IwMDY4ZDM0',
- 'hosts': 'https://1234x419719b45479d4821c1234f8804.us-central1.gcp.cloud.es.io:443',
- 'api_key': 'ckXYZ2x...X3haZUhuZx==',
- 'user': 'elastic',
- 'password': 'XYi0XYoZxLhrXmwXYZt12M7g'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-The connection parameters include the following:
-
-* `cloud_id`: The Cloud ID provided with the ElasticSearch deployment. Required only when `hosts` is not provided.
-* `hosts`: The ElasticSearch endpoint provided with the ElasticSearch deployment. Required only when `cloud_id` is not provided.
-* `api_key`: The API key that you generated for the ElasticSearch deployment. Required only when `user` and `password` are not provided.
-* `user` and `password`: The user and password used to authenticate. Required only when `api_key` is not provided.
-
-## Google BigQuery
-
-Connect Google BigQuery providing the following connection parameters:
-
-```python
-bigquery_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='bigquery',
- connection_data={
- 'project_id': 'my-project-12345',
- 'dataset': 'my_dataset',
- 'service_account_json': {
- 'type': 'service_account',
- 'project_id': 'my-project-12345',
- 'private_key_id': '03b20...364e609d1',
- 'private_key': '-----BEGIN PRIVATE KEY-----\xyz\n-----END PRIVATE KEY-----\n',
- 'client_email': 'mindsdb-app@expanded-pride-394015.iam.gserviceaccount.com',
- 'client_id': '1234...8123',
- 'auth_uri': 'https://accounts.google.com/o/oauth2/auth',
- 'token_uri': 'https://oauth2.googleapis.com/token',
- 'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs',
- 'client_x509_cert_url': 'https://www.googleapis.com/robot/v1/metadata/x509/mindsdb-app%40expanded-pride-394015.iam.gserviceaccount.com',
- 'universe_domain': 'googleapis.com'
- }
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `project_id`: The globally unique identifier for your project in Google Cloud where BigQuery is located.
-* `dataset`: The default dataset to connect to.
-* `service_account_json`: It stores the content of the service account keys file used to autheticate the user.
-
-## MariaDB
-
-Connect MariaDB providing the following connection parameters:
-
-```python
-mariadb_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='mariadb',
- connection_data={
- 'user': 'user',
- 'password': 'password',
- 'host': 'samples.mindsdb.com',
- 'port': 3307,
- 'database': 'test_data'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `user`: The username for the MariaDB database.
-* `password`: The password for the MariaDB database.
-* `host`: The hostname, IP address, or URL of the MariaDB server.
-* `port`: The port number for connecting to the MariaDB server.
-* `database`: The name of the MariaDB database to connect to.
-
-Alternatively, you can define the `url` parameter to specify a connection to MariaDB Server using a URI-like string. You can also use `mysql://` as the protocol prefix.
-
-## Microsoft OneDrive
-
-Before establishing a connection to Microsoft OneDrive, a few prerequisites steps are required:
-
-- Navigate to the [Azure Portal](https://portal.azure.com/#home) and sign in with your Microsoft account.
-- Locate the **Microsoft Entra ID** service and click on it.
-- Click on **App registrations** and then click on **New registration**.
-- Enter a name for your application and select the `Accounts in this organizational directory only` option for the **Supported account types** field.
-- Keep the **Redirect URI** field empty and click on **Register**.
-- Click on **API permissions** and then click on **Add a permission**.
-- Select **Microsoft Graph** and then click on **Delegated permissions**.
-- Search for the `Files.Read` permission and select it.
-- Click on **Add permissions**.
-- Request an administrator to grant consent for the above permissions. If you are the administrator, click on **Grant admin consent for [your organization]** and then click on **Yes**.
-- Copy the **Application (client) ID** and record it as the `client_id` parameter, and copy the **Directory (tenant) ID** and record it as the `tenant_id` parameter.
-- Click on **Certificates & secrets** and then click on **New client secret**.
-- Enter a description for your client secret and select an expiration period.
-- Click on **Add** and copy the generated client secret and record it as the `client_secret` parameter.
-- Click on **Authentication** and then click on **Add a platform**.
-- Select **Web** and enter `https://mdb.ai/verify-auth` in the **Redirect URIs** field.
-
-Now, connect Microsoft OneDrive providing the following connection parameters:
-
-```python
-ms_onedrive_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='one_drive',
- connection_data={
- 'client_id': '12345678-90ab-cdef-1234-567890abcdef',
- 'client_secret': 'abcd1234efgh5678ijkl9012mnop3456qrst7890uvwx',
- 'tenant_id': 'abcdef12-3456-7890-abcd-ef1234567890'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-In the context of Microsoft OneDrive, the `tables` refer to the files available in the connected account. This can be a list of file names or file paths. For example, `tables=['file1.csv', 'folder/file2.csv']`.
-Additionally, a special table called `files` is available that lists all the files along with their content in the connected account.
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `client_id`: The client ID of the registered application.
-* `client_secret`: The client secret of the registered application.
-* `tenant_id`: The tenant ID of the registered application.
-
-## Microsoft SQL Server
-
-Connect Microsoft SQL Server providing the following connection parameters:
-
-```python
-mssql_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='mssql',
- connection_data={
- 'host': 'samples.mindsdb.com',
- 'port': 1433,
- 'user': 'sa',
- 'password': '#eXY1RbcUkJXyy_L',
- 'database': 'master'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `user`: The username for the Microsoft SQL Server.
-* `password`: The password for the Microsoft SQL Server.
-* `host` The hostname, IP address, or URL of the Microsoft SQL Server.
-* `database` The name of the Microsoft SQL Server database to connect to.
-
-Optional connection parameters include the following:
-
-* `port`: The port number for connecting to the Microsoft SQL Server. Defaults to `1433`.
-* `server`: The server name to connect to. Typically only used with named instances or Azure SQL Database.
-
-## MongoDB
-
-Connect MongoDB providing the following connection parameters:
-
-```python
-mongodb_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='mongodb',
- connection_data={
- 'host': 'mongodb+srv://user:password@demo-data-mdb.trzfwvb.mongodb.net/',
- 'database': 'public'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Use the following parameters to establish the connection:
-
-* `host`: The connection string of the MongoDB server that includes user (`user`), password (`password`), host and port (`demo-data-mdb.trzfwvb.mongodb.net`).
-* `database`: The name of the database.
-
-Alternatively, the following set of connection parameters can be used:
-
-* `username`: The username associated with the database.
-* `password`: The password to authenticate your access.
-* `host`: The host of the MongoDB server.
-* `port`: The port through which TCP/IP connection is to be made.
-* `database`: The database name to be connected.
-
-## MySQL
-
-Connect MySQL providing the following connection parameters:
-
-```python
-mysql_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='mysql',
- connection_data={
- 'user': 'user',
- 'password': 'MindsXYZ123',
- 'host': 'samples.mindsdb.com',
- 'port': 3306,
- 'database': 'public'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `user`: The username for the MySQL database.
-* `password`: The password for the MySQL database.
-* `host`: The hostname, IP address, or URL of the MySQL server.
-* `port`: The port number for connecting to the MySQL server.
-* `database`: The name of the MySQL database to connect to.
-
-Alternatively, you can define the `url` parameter to specify a connection to MySQL Server using a URI-like string.
-
-## PostgreSQL
-
-Connect PostgreSQL providing the following connection parameters:
-
-```python
-postgres_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='postgres',
- connection_data={
- 'user': 'demo_user',
- 'password': 'demo_password',
- 'host': 'samples.mindsdb.com',
- 'port': 5432,
- 'database': 'demo',
- 'schema': 'demo_data'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that the above connection parameters connect to the [sample database provided by MindsDB](/minds/sample_data_sources).
-
-Required connection parameters include the following:
-
-* `user`: The username for the PostgreSQL database.
-* `password`: The password for the PostgreSQL database.
-* `host`: The hostname, IP address, or URL of the PostgreSQL server.
-* `port`: The port number for connecting to the PostgreSQL server.
-* `database`: The name of the PostgreSQL database to connect to.
-
-Optional connection parameters include the following:
-
-* `schema`: The database schema to use. Defaults to `public`.
-* `sslmode`: The SSL mode for the connection.
-
-## Snowflake
-
-Connect Snowflake providing the following connection parameters:
-
-```python
-snowflake_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='snowflake',
- connection_data={
- 'account': 'abcxyzw-yz12345',
- 'user': 'USER',
- 'password': 'x1Y2z3f3i4r',
- 'database': 'SNOWFLAKE_SAMPLE_DATA',
- 'schema': 'SAMPLES'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `account`: The Snowflake account identifier. [This guide](https://docs.snowflake.com/en/user-guide/admin-account-identifier) will help you find your account identifier.
-* `user`: The username for the Snowflake account.
-* `password`: The password for the Snowflake account.
-* `database`: The name of the Snowflake database to connect to.
-* `warehouse`: The Snowflake warehouse to use for running queries.
-
-Optional connection parameters include the following:
-
-* `schema`: The database schema to use within the Snowflake database. Defaults to `PUBLIC`.
-* `role`: The Snowflake role to use.
-
-## Teradata
-
-Connect Teradata providing the following connection parameters:
-
-```python
-teradata_config = DatabaseConfig(
- name='datasource_name',
- description='',
- engine='teradata',
- connection_data={
- 'host': '192.168.0.41',
- 'user': 'USER',
- 'password': 'x1Y2z3f3i4r',
- 'database': 'sample_db'
- },
- # Optionally, you can provide the list of tables to be accessed by the Mind. If not provided, the Mind accesses all available tables.
- tables=['', '', ...]
-)
-```
-
-Note that sample parameter values are provided here for reference, and you should replace them with your connection parameters.
-
-Required connection parameters include the following:
-
-* `host`: The hostname, IP address, or URL of the Teradata server.
-* `user`: The username for the Teradata database.
-* `password`: The password for the Teradata database.
-
-Optional connection parameters include the following:
-
-* `database`: The name of the Teradata database to connect to. Defaults to the user’s default database.
diff --git a/docs/minds/minds_ips.mdx b/docs/minds/minds_ips.mdx
deleted file mode 100644
index d293148d72c..00000000000
--- a/docs/minds/minds_ips.mdx
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: IP Addresses of Minds
-sidebarTitle: IP Addresses of Minds
-icon: "globe"
----
-
-If you want to connect to Minds from your system, you may be required to whitelist the static IPs of Minds listed below.
-
-```
-34.198.10.117
-3.219.91.24
-```
diff --git a/docs/minds/minds_overview.mdx b/docs/minds/minds_overview.mdx
deleted file mode 100644
index ae748a25cc9..00000000000
--- a/docs/minds/minds_overview.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Inside Minds
-sidebarTitle: Inside Minds
-icon: "network-wired"
----
-
-Minds are advanced AI systems designed to answer questions across connected data sources, providing comprehensive insights while reducing the time and effort needed for manual data analysis.
-
-Minds function similarly to **large language models (LLMs) but go beyond** by answering queries using any connected data. This is achieved through:
-
-* **parametric search** to retrieve the most relevant data.
-* **semantic search** to understand context and generate meaningful responses.
-* **AI/ML models** to analyze data and deliver precise answers.
-
-With Minds, one can seamlessly integrate AI-powered enterprise knowledge into applications. By creating a Mind, connecting data sources, and making queries via Minds' OpenAI-compatible APIs, applications gain expert-like intelligence, orchestrating across multiple knowledge sources to provide well-reasoned answers.
-
-[Learn more about Minds here](https://mindsdb.com/minds).
-
-### System Architecture
-
-Minds are composed of several key components:
-
-* **large language model (LLM)**, which processes queries and determines the best approach to retrieving relevant data from connected data sources.
-* **federated query engine (MindsDB)**, which is our open-source engine that enables Minds to connect and unify data from multiple sources.
-* **orchestration tools**, which implement guardrails to refine LLM behavior.
-* **reasoning and decision-making tools**, which identify the most relevant data and construct an accurate response.
-
-
-
-
-
-### How It Works
-
-Here is an overview of how Minds operate, including the key steps for setting up and using them effectively.
-
-* **Datasources**
-
-Connect one or more of the [supported data sources](/minds/data_sources) to Minds Cloud.
-
-Minds access the connected data sources in real time to ensure up-to-date responses.
-
-To improve the answer quality, describe each data source to guide Minds in selecting the best information for each query. [Learn more about best practices for data descriptions](/minds/quickstart_best_practices).
-
-* **Minds**
-
-Create a Mind and connect one or more data sources to it.
-
-Configure a system prompt to customize Minds' behavior and response generation to improve the answer quality. [Learn more about best practices for system prompts](/minds/quickstart_best_practices).
-
-* **Chat**
-
-Chat with Minds to ask questions over the connected data and get comprehensive answers.
-
-The process followed by Minds is shown to users via Minds' thoughts and includes the following:
-
-1. The LLM processes the query, determining the relevant data sources and the best retrieval method.
-2. MindsDB fetches the required data from the connected sources.
-3. The LLM synthesizes an answer based on the retrieved data.
-4. A final evaluation step checks if the response is complete. If the answer is sufficient, it is sent to the user. If not, the process repeats until an optimal response is generated.
-
-* **Environments**
-
-Access Minds via [Minds Cloud](https://mdb.ai/) or integrate Minds into applications and workflows via [API endpoints](/minds/rest_api/overview) or [Python SDK](/minds/python_sdk/overview).
-
-**Follow the [Minds quickstart demo](/minds/quickstart) to try it out.**
diff --git a/docs/minds/python_sdk/assistants_api.mdx b/docs/minds/python_sdk/assistants_api.mdx
deleted file mode 100644
index a9de3dad1cc..00000000000
--- a/docs/minds/python_sdk/assistants_api.mdx
+++ /dev/null
@@ -1,171 +0,0 @@
----
-title: Assistants API
-sidebarTitle: Assistants API
----
-
-Once the Mind is created, you can chat with the Mind using the OpenAI-compatible Assistants API. Therefore to follow this code, if you haven’t already, install the OpenAI SDK by running `pip install openai`, and use the Minds API key and name of the Mind you created.
-
-The following code lets you have conversations with the Mind, create threads, messages, and runs.
-
-```python
-from openai import OpenAI
-
-your_minds_api_key =
-mind_name =
-
-# point the Openai SDK to the Minds Cloud
-client = OpenAI(
- api_key=your_minds_api_key,
- base_url='https://mdb.ai/'
-)
-
-# print the message before making the API request
-print('Answering the question may take up to 30 seconds...')
-
-thread = client.beta.threads.create()
-
-message = client.beta.threads.messages.create(
- thread_id=thread.id,
- role="user",
- content="How many 2-bedroom houses are on the market?"
-)
-
-# run the message on the mind that you created
-run = client.beta.threads.runs.create_and_poll(
- thread_id=thread.id,
- assistant_id=mind_name
-)
-
-if run.status == 'completed':
- messages = client.beta.threads.messages.list(
- thread_id=thread.id
- )
- print(messages.data[1].role + ': ' + messages.data[1].content[0].text.value)
- print(messages.data[0].role + ': ' + messages.data[0].content[0].text.value)
-else:
- print(run.status)
-
-client.beta.threads.delete(thread.id)
-```
-
-Here is the output:
-
-```
-Answering the question may take up to 30 seconds...
-user: How many 2-bedroom houses are on the market?
-assistant: There are 99 two-bedroom houses that were once on the market according to the data in the database.
-```
-
-### Stream Mind's Thoughts
-
-This feature enables you to stream the thoughts of the Mind, which includes all the steps the Mind takes to answer the question.
-
-```python
-from openai import OpenAI
-
-your_minds_api_key =
-mind_name =
-
-# point the Openai SDK to the Minds Cloud
-client = OpenAI(
- api_key=your_minds_api_key,
- base_url='https://mdb.ai/'
-)
-
-# create an EventHandler class to define how to handle the events in the response stream
-from typing_extensions import override
-from openai import AssistantEventHandler
-
-class EventHandler(AssistantEventHandler):
- @override
- def on_text_created(self, text) -> None:
- print(f"\nassistant > ", end="", flush=True)
-
- @override
- def on_text_delta(self, delta, snapshot):
- print(delta.value, end="", flush=True)
-
- def on_tool_call_created(self, tool_call):
- print(f"\nassistant > {tool_call.type}\n", flush=True)
-
- def on_tool_call_delta(self, delta, snapshot):
- if delta.type == 'code_interpreter':
- if delta.code_interpreter.input:
- print(delta.code_interpreter.input, end="", flush=True)
- if delta.code_interpreter.outputs:
- print(f"\n\noutput >", flush=True)
- for output in delta.code_interpreter.outputs:
- if output.type == "logs":
- print(f"\n{output.logs}", flush=True)
-
-# create a conversation thread
-thread = client.beta.threads.create()
-
-# chat with the Mind you created
-while True:
- user_input = input("Enter your message (type 'exit' to quit): ")
- if user_input.lower() == 'exit':
- break
-
- print('Answering the question may take up to 30 seconds...')
-
- message = client.beta.threads.messages.create(
- thread_id=thread.id,
- role='user',
- content=user_input
- )
-
- # stream the response
- with client.beta.threads.runs.stream(
- thread_id=thread.id,
- assistant_id=mind.name,
- event_handler=EventHandler(),
- ) as stream:
- stream.until_done()
-
-client.beta.threads.delete(thread.id)
-```
-
-Here is the output:
-
-```
-Answering the question may take up to 30 seconds...
-
-assistant > I understand your request. I'm working on a detailed response for you.Thought: Do I need to use a tool? Yes
-Action: sql_db_list_tables
-Action Input: ""unique_data_source_name.house_salesTo determine how many three-bedroom houses were sold in 2008, I need to examine the schema of the `house_sales` table to identify the relevant columns for bedrooms and sale date.
-
-Action: sql_db_schema
-Action Input: unique_data_source_name.house_salesTable named `house_sales`
-
-/* Sample with first 3 rows from table unique_data_source_name.house_sales:
-saledate ma type bedrooms created_at
-2007-09-30 441854 house 2 2007-02-02 15:41:51.922127
-2007-12-31 441854 house 2 2007-02-23 22:36:08.540248
-2008-03-31 441854 house 2 2007-02-25 19:23:52.585358
-*/
-Column data types: `saledate` : `date`, `ma` : `integer`, `type` : `text`, `bedrooms` : `integer`, `created_at` : `timestamp without time zone`
-To find out how many three-bedroom houses were sold in 2008, I will query the `house_sales` table using the `bedrooms` and `saledate` columns.
-
-Let's proceed with the query to get the count of three-bedroom houses sold in 2008.
-
-Action: mindsdb_sql_parser_tool
-Action Input:
-```sql
-SELECT COUNT(*)
-FROM unique_data_source_name.house_sales
-WHERE bedrooms = 3
-AND saledate::DATE BETWEEN '2008-01-01' AND '2008-12-31'
-```valid query: SELECT count(*) FROM unique_data_source_name.house_sales WHERE bedrooms = 3 AND CAST(saledate AS DATE) BETWEEN '2008-01-01' AND '2008-12-31'To find the number of three-bedroom houses sold in 2008, I will execute the validated query.
-
-Action: sql_db_query
-Action Input:
-```sql
-SELECT COUNT(*)
-FROM unique_data_source_name.house_sales
-WHERE bedrooms = 3
-AND saledate::DATE BETWEEN '2008-01-01' AND '2008-12-31'
-```Output columns: 'count'
-Result: 8
-The number of three-bedroom houses sold in 2008 was 8.
-```
diff --git a/docs/minds/python_sdk/completions_api.mdx b/docs/minds/python_sdk/completions_api.mdx
deleted file mode 100644
index 95cfc523c57..00000000000
--- a/docs/minds/python_sdk/completions_api.mdx
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: Completions API
-sidebarTitle: Completions API
----
-
-Once the Mind is created, you can chat with the Mind using the OpenAI-compatible Completions API. Therefore to follow this code, if you haven’t already, install the OpenAI SDK by running `pip install openai`, and use the Minds API key and name of the Mind you created.
-
-The following code lets you chat with your Mind.
-
-```python
-from openai import OpenAI
-
-your_minds_api_key =
-mind_name =
-
-# point the Openai SDK to the Minds Cloud
-client = OpenAI(
- api_key=your_minds_api_key,
- base_url='https://mdb.ai/'
-)
-
-# print the message before making the API request
-print('Answering the question may take up to 30 seconds...')
-
-# chat with the Mind you created
-completion = client.chat.completions.create(
- model=mind_name,
- messages=[
- {'role': 'user', 'content': 'How many three-bedroom houses were sold in 2008?'}
- ],
- stream=False
-)
-
-print(completion.choices[0].message.content)
-```
-
-Alternatively, continue using the Minds SDK to access the OpenAI-compatible Completions API by calling the `completion` function on the `mind` object.
-
-```python
-print(mind.completion('How many three-bedroom houses were sold in 2008?', stream=False))
-```
-
-Here is the output:
-
-```
-There were 8 three-bedroom houses sold in 2008.
-```
-
-### Stream Mind's Thoughts
-
-This feature enables you to stream the thoughts of the Mind, which includes all the steps the Mind takes to answer the question.
-
-```python
-from openai import OpenAI
-
-your_minds_api_key =
-mind_name =
-
-# point the Openai SDK to the Minds Cloud
-client = OpenAI(
- api_key=your_minds_api_key,
- base_url='https://mdb.ai/'
-)
-
-# print the message before making the API request
-print('Answering the question may take up to 30 seconds...')
-
-# chat with the Mind you created
-completion = client.chat.completions.create(
- model=mind_name,
- messages=[
- {'role': 'user', 'content': 'How many three-bedroom houses were sold in 2008?'}
- ],
- stream=True
-)
-
-# print output in the form of chunks
-for chunk in completion:
- print(chunk.choices[0].delta.content)
- print()
-```
-
-Alternatively, continue using the Minds SDK to access the OpenAI-compatible Completions API by calling the `completion` function on the `mind` object.
-
-```python
-for chunk in mind.completion('How many three-bedroom houses were sold in 2008?', stream=True):
- print(chunk.content)
-```
-
-Here is the output:
-
-```
-Answering the question may take up to 30 seconds...
-I understand your request. I'm working on a detailed response for you.
-
-content='Thought: I need to check the schema of the `house_sales` table to understand the structure and identify the relevant columns for querying the number of three-bedroom houses sold in 2008.\n\nAction: sql_db_schema714\nAction Input: mind_d315ac7e-8c53-467c-a378-0e20274cf0ee_datasource_03c058391f7c4716970edfea20c6f097.house_sales'
-
-content='Table named `house_sales`\n\n/* Sample with first 3 rows from table `mind_d315ac7e-8c53-467c-a378-0e20274cf0ee_datasource_03c058391f7c4716970edfea20c6f097`.house_sales:\nsaledate\tma\ttype\tbedrooms\tcreated_at\n2007-09-30\t441854\thouse\t2\t2007-02-02 15:41:51.922127\n2007-12-31\t441854\thouse\t2\t2007-02-23 22:36:08.540248\n2008-03-31\t441854\thouse\t2\t2007-02-25 19:23:52.585358\n*/\nColumn data types: `saledate` : `date`,\t`ma` : `integer`,\t`type` : `text`,\t`bedrooms` : `integer`,\t`created_at` : `timestamp without time zone`\n'
-
-content="To determine the number of three-bedroom houses sold in 2008, I need to query the `house_sales` table using the `bedrooms` and `saledate` columns. Specifically, I will filter for records where `bedrooms` is 3 and the `saledate` falls within the year 2008.\n\nFirst, I will ensure the SQL query is correct using the MindsDB SQL parser tool.\n\nAction: mindsdb_sql_parser_tool714\nAction Input: SELECT COUNT(*) FROM house_sales WHERE bedrooms = 3 AND saledate BETWEEN '2008-01-01' AND '2008-12-31'"
-
-content="valid query: SELECT count(*) FROM house_sales WHERE bedrooms = 3 AND saledate BETWEEN '2008-01-01' AND '2008-12-31'"
-
-content="The SQL query has been validated. Now, I will execute the query to find out how many three-bedroom houses were sold in 2008.\n\nAction: sql_db_query714\nAction Input: SELECT COUNT(*) FROM house_sales WHERE bedrooms = 3 AND saledate BETWEEN '2008-01-01' AND '2008-12-31'"
-
-content="Output columns: 'count'\nResult:\n8"
-
-In 2008, a total of 8 three-bedroom houses were sold.
-```
diff --git a/docs/minds/python_sdk/mind_setup.mdx b/docs/minds/python_sdk/mind_setup.mdx
deleted file mode 100644
index 3d0a8b45d24..00000000000
--- a/docs/minds/python_sdk/mind_setup.mdx
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: Mind Setup
-sidebarTitle: Mind Setup
----
-
-Create a free account at [Minds Cloud](https://mdb.ai/) and use the Minds API key to create and chat with Minds via Python SDK.
-
-In the below sample code, we connect to our sample database ([see full details here](/minds/sample_data)) and create a Mind. As a **prerequisite**, install the latest version of Minds SDK by running `pip install minds_sdk`.
-
-Alternatively, you can create a Mind via [Minds Cloud](https://mdb.ai/) and use the code provided in the *API* tab to interact with the Mind via Python SDK.
-
-```python
-from minds.client import Client
-from minds.datasources import DatabaseConfig
-
-client = Client("MINDS_API_KEY")
-
-postgres_config = DatabaseConfig(
- name='unique_data_source_name',
- description='House sales data',
- engine='postgres',
- connection_data={
- 'user': 'demo_user',
- 'password': 'demo_password',
- 'host': 'samples.mindsdb.com',
- 'port': '5432',
- 'database': 'demo',
- 'schema': 'demo_data'
- },
- tables=['house_sales']
-)
-
-datasource = client.datasources.create(postgres_config, update=True)
-
-mind = client.minds.create(
- name='unique_mind_name',
- datasources=[datasource],
- prompt_template='answer questions in a helpful way using the available data',
- update=True
- )
-
-print(f"{mind.name} was created successfully. You can now use this Mind using the OpenAI-compatible API, see docs for next steps.")
-```
-
-Remember to replace `MINDS_API_KEY` with your [Minds API key available here](https://mdb.ai/).
-
-Note that the `update=True` parameter of the `create` functions is used to update a data source or a Mind if it already exists. Alternatively, you can use the `replace=True` parameter when creating a Mind to replace an existing Mind with the new one, if one already exists.
-
-The following arguments are used to create a Data Source:
-
-- `name` is the unique name of the data source.
-- `description` is the description of the data source that helps the Mind decide which data source to use for answering certain questions.
-- `engine` is the engine of the data source to be connected. [See all supported data sources here](/minds/data_sources).
-- `connection_data` stores the connection parameters that allow Minds to access the data source. [See all supported data sources here](/minds/data_sources).
-- `tables` is an optional parameter that lists specific table(s) to be accessed by the Mind. Note that if it is not provided, then the Mind accesses the entire database.
-
-*Note that Minds do not store or copy your data. Instead, Minds poll data from the connected data sources using the provided connection parameters whenever required, so all changes to your data are reflected in Minds upon querying the data.*
-
-The following arguments are used to create a Mind:
-
-- `name` is the unique name of the Mind.
-- `datasources` is a list of configurations for data sources, such as databases, you can connect to your Mind. [See all supported data sources here](/minds/data_sources).
-
-**Now that you created the Mind, let's start the conversation with your data!**
-
-- [Completions API](/minds/python_sdk/completions_api) – suits for simple query-response interactions, yet is stateless.
-- [Assistants API](/minds/python_sdk/assistants_api) – for context persistence and advanced features like dynamic data retrieval or code execution.
diff --git a/docs/minds/python_sdk/overview.mdx b/docs/minds/python_sdk/overview.mdx
deleted file mode 100644
index cf9b1f6a574..00000000000
--- a/docs/minds/python_sdk/overview.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Minds Python SDK
-sidebarTitle: Overview
-icon: "rectangle-code"
----
-
-Minds provide Python SDK, enabling interaction with Minds via Python code.
-
-Follow these steps to get started:
-
-
-
- Go to [Minds Cloud](https://mdb.ai/register) to create an account.
-
-
- Go to the [API Keys tab](https://mdb.ai/apiKeys) to get an API key.
-
-
- Follow [this tutorial](/minds/python_sdk/mind_setup) to get started.
-
-
diff --git a/docs/minds/quickstart.mdx b/docs/minds/quickstart.mdx
deleted file mode 100644
index 33286a2b1be..00000000000
--- a/docs/minds/quickstart.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: Get Started with Demo Mind
-sidebarTitle: Quickstart
-icon: "play"
----
-
-Minds are advanced AI systems that let you ask questions across connected data sources.
-
-Begin your journey by signing up for your [free Minds Cloud account](https://mdb.ai/) and familiarizing yourself with the available features.
-
-* **Create an account**
-
- Sign up for a [free account on Minds Cloud](https://mdb.ai/).
-
-* **Dashboard overview**
-
- View and manage your Minds in the **Minds** tab. Check out the connected data sources in the **Datasources** tab. Find the API key needed to interact with Minds via the Python SDK or API endpoints in the **API Keys** tab. Access our documentation to learn more about Minds.
-
-
-
-
-
-* **Upgrade options**
-
- If you’d like to upgrade to the enterprise version, click the *Upgrade to enterprise* button and fill out the form - our sales team will reach out to you shortly.
-
-### Explore the Sales Data Expert Demo Mind
-
-Dive into the Sales Manager Demo Mind to see AI in action. Here, you'll preview a demo dataset and interact with an engaging playground that allows you to ask insightful questions about customer details and call summaries.
-
-* **Preview the demo data**
-
- Go to the **Datasources** tab and click on `Sales_Data_Expert_Demo_Data` to preview the available data.
-
-
-
-
-
-* **Chat with the Mind**
-
- Go to the **Minds** tab and click on `Sales_Data_Expert_Demo_Mind` to enter the demo Mind. You are now in the playground where you can ask questions about the demo data, which includes customer details and call summaries.
-
-
-
-
-
- The free Minds Cloud account comes with 1M tokens that you can use to ask questions over your data. If you’d like to upgrade to the enterprise version, click the *Upgrade to enterprise* button and fill out the form - our sales team will reach out to you shortly.
-
-Follow the next section to create your own Mind.
diff --git a/docs/minds/quickstart_best_practices.mdx b/docs/minds/quickstart_best_practices.mdx
deleted file mode 100644
index d953f1cdadb..00000000000
--- a/docs/minds/quickstart_best_practices.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: Best Practices
-sidebarTitle: Best Practices
-icon: "compass"
----
-
-Customize and enhance Minds by providing descriptions for data sources and prompt instructions.
-
-### Data Source Description
-
-When connecting a data source, providing a **clear and detailed description** is crucial. A well-crafted description helps the Mind select the most relevant data source when answering questions.
-
-
-
-
-
-Here is what can be included in the description of the data source:
-
-* Type of data stored – for example, customer details, sales records, product inventory, etc.
-* Purpose of the data – what the data is primarily used for; for example, tracking customer orders, analyzing employee performance, etc.
-* Common queries – typical use cases or questions the data source is designed to answer.
-* Access limitations – any restrictions on data usage; for example, confidential information, role-based access, etc.
-* Data structure insights – whether it is structured or unstructured data.
-* Update frequency – how often the data is refreshed; for example, real-time, daily, weekly, etc.
-
-### System Prompt
-
-When creating a Mind, the **system prompt is optional**, but it can significantly enhance functionality by defining behavior, response format, and personality.
-
-
-
-
-
-Here is what can be included in the system prompt:
-
-* Tone and personality – specify the tone of responses, such as professional, friendly, concise, detailed, etc.
-* Response formatting – specify the preferred response format, such as tables, JSON, plain text, etc.
-* Data interpretation rules – guidelines for handling calculations, summaries, etc.
-* Context awareness – define how the Mind should handle follow-up questions, retain context, etc.
-* Error handling – specify how to respond to unclear queries, missing data, etc.
-
-By including the description for data sources and the system prompt, the Mind can provide more accurate, structured, and user-friendly responses while maintaining security and clarity.
diff --git a/docs/minds/quickstart_custom_mind.mdx b/docs/minds/quickstart_custom_mind.mdx
deleted file mode 100644
index e1fc3bea028..00000000000
--- a/docs/minds/quickstart_custom_mind.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Build your Mind
-sidebarTitle: Custom Mind Setup
-icon: "gear"
----
-
-This guide walks you through connecting your data and creating a Mind that can answer questions using your data.
-
-## Step 1. Connect your data
-
-Navigate to the **Datasources** tab and click the **New datasource** button.
-
-
-
-
-
-Select one of the [supported data sources](/minds/data_sources).
-
-
-
-
-
-Enter the connection parameters for your selected data source and click the `Connect` button.
-
-
-
-
-
-The `Name your datasource` and `Description` fields are required for all data source types. The `Name your datasource` field stores the name of your data connection, while the `Description` field stores the description of your data. Note that the `Description` field can contain verbose instructions on what data is stored and how to use it. [Learn more about best practices for data descriptions](/minds/quickstart_best_practices).
-
-## Step 2. Create a Mind
-
-Navigate to the **Minds** tab and click the **New Mind** button.
-
-
-
-
-
-Enter a name for your Mind in the `Mind name` field and select one of the connected data sources. Note that upon checking the data source, you can limit the connected tables by clicking the `Select tables` button.
-
-
-
-
-
-Now click the `Create` button to complete the creation of the Mind.
-
-Note that in the *Settings* tab, you can add a system prompt to provide further instructions or specific personality to a Mind. [Learn more about best practices for system prompts]_practices).
-
-## Step 3. Chat with the Mind
-
-When you enter a Mind, you'll see the chat interface where you can interact with the Mind and observe its thought process as it works through your queries.
-
-
-
-
-
-The chat interface is divided into three sections:
-
-1. The left pane displays conversation threads that you can revisit anytime.
-2. The center pane iprovides the main chat window for interacting with the Mind.
-3. The right pane contains four tabs:
- - The Thoughts tab displays thoughts of the Mind, including its reasoning and decision-making steps, as it works through your requests.
- - The Code tab provides a quickstart Python code for integrating the Mind into your applications.
- - The Data tab lists connected data sources. Note that you can connect multiple data sources to a Mind.
- - The Settings tab displays key configurations, including name and prompt instructions.
diff --git a/docs/minds/rest_api/add_data_to_mind.mdx b/docs/minds/rest_api/add_data_to_mind.mdx
deleted file mode 100644
index bde296456d3..00000000000
--- a/docs/minds/rest_api/add_data_to_mind.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Add Data to Mind
-sidebarTitle: Add Data to Mind
----
-
-This API endpoint adds a data source to a specific Mind using the `POST` method.
-
-### Body
-
-
-
-The name of the data source to be added to the Mind. Use [this endpoint](/minds/rest_api/create_datasource) to create data sources.
-
-
-
-
-
-Set this value to `true` to check the connection to the data source.
-
-
-
-### Response
-
-
-
-Indicates whether the data source was successfully added to the Mind.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-The name of the Mind to which the data source will be added.
-
-
-
-
-
-```shell Shell
-curl --request POST \
- --url 'https://mdb.ai/api/projects/mindsdb/minds/mind_name_new/datasources' \
- --header 'Content-Type: application/json' \
- --header 'Authorization: Bearer MINDS_API_KEY' \
- --data '{
- "name": "datasource_name",
- "check_connection": true
- }'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-mind.add_datasource(postgres_config)
-```
-
-
-
-
-
-```json Response
-{
- "success": true
-}
-```
-
-
diff --git a/docs/minds/rest_api/chat.mdx b/docs/minds/rest_api/chat.mdx
deleted file mode 100644
index 732af40b7d3..00000000000
--- a/docs/minds/rest_api/chat.mdx
+++ /dev/null
@@ -1,195 +0,0 @@
----
-title: Chat Completions
-sidebarTitle: Chat Completions
----
-
-This API endpoint creates a model response for the given chat conversation using the `POST` method.
-
-### Body
-
-
-
-A list of messages comprising the conversation so far.
-
-
-
-
-
-Name of the Mind that you created.
-
-
-
-
-
-If set, Minds' thoughts will be streamed before the final response.
-
-
-
-
-
-This setting ranges from -2.0 to 2.0. Positive values make the model less likely to repeat phrases it has already used.
-
-
-
-
-
-This parameter sets the maximum number of tokens that can be generated in the chat completion.
-
-
-
-
-
-This parameter controls the randomness of the output with values ranging from 0 to 2. A higher value increases randomness in the output, while a lower value, like 0.1, results in more focused and deterministic output.
-
-
-
-
-
-This setting allows you to specify a list of tools that the model can call, currently limited to functions.
-
-
-
-### Response
-
-
-Unique identifier for the completion.
-
-
-
-Type of the returned object (e.g., "chat.completion").
-
-
-
-Timestamp for when the completion was created.
-
-
-
-Name of the model that generated the response.
-
-
-
-An array of response choices. Each choice includes an index and the assistant's message.
-
-
-
-Token usage statistics for the prompt and response.
-
-
-
-Optional fingerprint of the backend system.
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-None.
-
-
-
-```shell Shell
-curl https://mdb.ai/chat/completions \
--H "Content-Type: application/json" \
--H "Authorization: Bearer $MINDS_API_KEY" \
--d '{
- "model": "",
- "messages": [
- {
- "role": "system",
- "content": "You are a helpful assistant."
- },
- {
- "role": "user",
- "content": "Can you summarize the data you have access to?"
- }
- ],
- "stream": false
-}'
-```
-
-```python Python
-from openai import OpenAI
-client = OpenAI(
- api_key="MINDS_API_KEY",
- base_url="https://mdb.ai"
-)
-
-completion = client.chat.completions.create(
- model="",
- messages=[
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": "Can you summarize the data you have access to?"}
- ],
- stream=False
-)
-
-print(completion.choices[0].message)
-
-# if stream=True, then print chunks, as below
-# for chunk in completion:
-# print(chunk.choices[0].delta)
-```
-
-```js Node
-import OpenAI from "openai";
-
-const openai = new OpenAI(
- apiKey="MINDS_API_KEY",
- baseURL="https://mdb.ai"
-);
-
-async function main() {
- const completion = await openai.chat.completions.create({
- messages: [{ role: "system", content: "You are a helpful assistant." }],
- model: "",
- stream: false,
- });
-
- console.log(completion.choices[0]);
-
- // if stream: true, then print chunks, as below
- // for await (const chunk of completion) {
- // console.log(chunk.choices[0].delta.content);
- }
-}
-
-main();
-```
-
-
-
-
-
-```json Response
-{
- "id": "chatcmpl-123",
- "object": "chat.completion",
- "created": 1702685778,
- "model": "",
- "choices": [
- {
- "index": 0,
- "message": {
- "role": "assistant",
- "content": "I have access to sales data, customer info, and website analytics. Let me know if you need details!"
- }
- }
- ],
- "usage": {
- "prompt_tokens": 9,
- "completion_tokens": 9,
- "total_tokens": 18
- },
- "system_fingerprint": null
-}
-```
-
-
diff --git a/docs/minds/rest_api/create_datasource.mdx b/docs/minds/rest_api/create_datasource.mdx
deleted file mode 100644
index d753b387420..00000000000
--- a/docs/minds/rest_api/create_datasource.mdx
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: Create Data Source
-sidebarTitle: Create Data Source
----
-
-This API endpoint creates a Datasource using the `POST` method.
-
-### Body
-
-
-
-Provide a unique name for the Datasource.
-
-
-
-
-
-Provide a description for the Datasource, which is used by the Mind to decide the relevant datasources for each question.
-
-
-
-
-
-Provide a datasource engine. [See available engines here](/minds/data_sources).
-
-
-
-
-
-Provide connection parameters for the selected engine. [See available engines and connection parameters here](/minds/data_sources).
-
-
-
-
-
-This is an optional parameter that lets you specify tables that can be accessed by the Mind.
-
-
-
-### Response
-
-
-
-HTTP status code indicating success. `200 OK` confirms the Datasource was created.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-None.
-
-
-
-```shell Shell
-curl --request POST \
- --url 'https://mdb.ai/api/datasources' \
- --header 'Content-Type: application/json' \
- --header 'Authorization: Bearer MINDS_API_KEY' \
- --data '{
- "name": "datasource_name",
- "engine": "postgres",
- "connection_data": {
- "user": "demo_user",
- "password": "demo_password",
- "host": "samples.mindsdb.com",
- "port": "5432",
- "database": "demo",
- "schema": "demo_data"
- },
- "tables": ["house_sales"],
- "description": "House sales data"
- }'
-```
-
-```python Python
-from minds.client import Client
-from minds.datasources import DatabaseConfig
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-postgres_config = DatabaseConfig(
- name='my_datasource',
- description='',
- engine='postgres',
- connection_data={
- 'user': 'demo_user',
- 'password': 'demo_password',
- 'host': 'samples.mindsdb.com',
- 'port': 5432,
- 'database': 'demo',
- 'schema': 'demo_data'
- },
- tables=['', '']
-)
-
-datasource = client.datasources.create(postgres_config)
-```
-
-
-
-
-
-```json Response
-200 OK
-```
-
-
diff --git a/docs/minds/rest_api/create_message.mdx b/docs/minds/rest_api/create_message.mdx
deleted file mode 100644
index f1d4d5ac793..00000000000
--- a/docs/minds/rest_api/create_message.mdx
+++ /dev/null
@@ -1,204 +0,0 @@
----
-title: Create Message
-sidebarTitle: Create Message
----
-
-This API endpoint creates a Message in a Thread using the `POST` method.
-
-### Body
-
-
-
-Role used to send a Message (e.g., "user" or "assistant").
-
-
-
-
-
-A Message to be posted to a Thread.
-
-
-
-### Response
-
-
-
-Unique identifier for the created message.
-
-
-
-
-
-ID of the assistant, if applicable.
-
-
-
-
-
-Any attachments associated with the message.
-
-
-
-
-
-Timestamp when the message was completed.
-
-
-
-
-
-Content of the message, including text and annotations.
-
-
-
-
-
-Timestamp when the message was created.
-
-
-
-
-
-Timestamp when the message became incomplete, if applicable.
-
-
-
-
-
-Details on why the message was incomplete.
-
-
-
-
-
-Additional metadata about the message.
-
-
-
-
-
-Type of the object.
-
-
-
-
-
-The role that generated the message.
-
-
-
-
-
-Run ID associated with the message.
-
-
-
-
-
-Status of the message.
-
-
-
-
-
-ID of the thread the message belongs to.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-Id of the Thread to post the message to.
-
-
-
-
-
-```shell Shell
-curl -X POST "https://mdb.ai/threads/mdb_thread_cfa0fac64cd94faab3ae269d768c0cb0/messages" \
- -H "Authorization: Bearer MINDS_API_KEY" \
- -H "Content-Type: application/json" \
- -d '{
- "role": "user",
- "content": "What data do you have access to?"
- }'
-```
-
-```python Python
-from openai import OpenAI
-client = OpenAI(
- api_key='MINDS_API_KEY',
- base_url='https://mdb.ai/'
-)
-
-thread_message = client.beta.threads.messages.create(
- "thread_abc123",
- role="user",
- content="What is AI?",
-)
-print(thread_message)
-```
-
-```js Node
-import OpenAI from "openai";
-
-const openai = new OpenAI(
- api_key='MINDS_API_KEY',
- baseURL='https://mdb.ai/'
-);
-
-async function main() {
- const threadMessages = await openai.beta.threads.messages.create(
- "thread_abc123",
- { role: "user", content: "What data do you have access to?" }
- );
-
- console.log(threadMessages);
-}
-
-main();
-```
-
-
-
-
-
-```json Response
-{
- "id": "mdb_msg_7a74bc341b194af1ab8228e57a85d462",
- "assistant_id": null,
- "attachments": null,
- "completed_at": null,
- "content": [
- {
- "text": {
- "annotations": [],
- "value": "What data do you have access to?"
- },
- "type": "text"
- }
- ],
- "created_at": 1718885284.3509543,
- "incomplete_at": null,
- "incomplete_details": null,
- "metadata": null,
- "object": null,
- "role": "user",
- "run_id": null,
- "status": null,
- "thread_id": "mdb_thread_cfa0fac64cd94faab3ae269d768c0cb0"
-}
-```
-
-
diff --git a/docs/minds/rest_api/create_mind.mdx b/docs/minds/rest_api/create_mind.mdx
deleted file mode 100644
index 8865ba411bf..00000000000
--- a/docs/minds/rest_api/create_mind.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Create Mind
-sidebarTitle: Create Mind
----
-
-This API endpoint creates a Mind using the `POST` method.
-
-### Body
-
-
-
-A unique name for the Mind.
-
-
-
-
-
-A list of data sources to be connected to the Mind. Each element can be:
-- A string specifying a data source name.
-- An object with `name` storing the data source name and an array of `tables` storing the table names.
-
-Use the [data sources endpoint](/minds/rest_api/create_datasource) to create datasources.
-
-
-
-### Response
-
-
-
-HTTP status code indicating the success of the operation. `200 OK` means the Mind was created successfully.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-None.
-
-
-
-```shell Shell
-curl --request POST \
- --url 'https://mdb.ai/api/projects/mindsdb/minds' \
- --header 'Content-Type: application/json' \
- --header 'Authorization: Bearer MINDS_API_KEY' \
- --data '{
- "name": "mind_name",
- "datasources": [
- "datasource_with_all_its_tables",
- {"name": "datasource_with_selected_tables", "tables": ["table_name", ...]}
- ]
- }'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-mind = client.minds.create(name='mind_name')
-```
-
-
-
-
-
-```json Response
-200 OK
-```
-
-
diff --git a/docs/minds/rest_api/create_run.mdx b/docs/minds/rest_api/create_run.mdx
deleted file mode 100644
index f030b328a82..00000000000
--- a/docs/minds/rest_api/create_run.mdx
+++ /dev/null
@@ -1,228 +0,0 @@
----
-title: Create Run
-sidebarTitle: Create Run
----
-
-This API endpoint creates a Run on a specific Thread using the `POST` method.
-
-### Body
-
-
-
-ID of the Assistant (Mind) that will be used to run the Thread.
-
-
-
-
-
-Stream Mind's thoughts by setting this parameter to true.
-
-
-
-### Response
-
-
-Unique identifier for the run.
-
-
-
-ID of the Assistant associated with the run.
-
-
-
-Timestamp when the run was cancelled.
-
-
-
-Timestamp when the run was completed.
-
-
-
-Timestamp when the run was created.
-
-
-
-Expiration time for the run.
-
-
-
-Timestamp when the run failed.
-
-
-
-Details about why the run was incomplete, if applicable.
-
-
-
-Instructions sent to the Assistant.
-
-
-
-Details about the last error, if any.
-
-
-
-Maximum number of tokens for the completion.
-
-
-
-Maximum number of tokens for the prompt.
-
-
-
-Additional metadata for the run.
-
-
-
-Model name used for the run.
-
-
-
-Type of the returned object (e.g., "thread.run").
-
-
-
-Actions required before proceeding.
-
-
-
-Format of the response.
-
-
-
-Timestamp when the run started.
-
-
-
-Current status of the run (e.g., "queued", "in_progress").
-
-
-
-ID of the thread associated with the run.
-
-
-
-Chosen tool for the run.
-
-
-
-List of tools used during the run.
-
-
-
-Strategy used to truncate input.
-
-
-
-Usage statistics for the run.
-
-
-
-Sampling temperature for randomness.
-
-
-
-Top-p sampling parameter.
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-ID of the Thread to run.
-
-
-
-
-
-```shell Shell
-curl -X POST "https://mdb.ai/threads/mdb_thread_4d3f3805c95f4c1a9d77d32cbdfbe3d9/runs" \
- -H "Authorization: Bearer MINDS_API_KEY" \
- -H "Content-Type: application/json" \
- -d '{
- "assistant_id": "",
- "stream": true
- }'
-```
-
-```python Python
-from openai import OpenAI
-client = OpenAI(
- api_key='MINDS_API_KEY',
- base_url='https://mdb.ai/'
-)
-
-run = client.beta.threads.runs.create(
- thread_id="thread_abc123",
- assistant_id=""
-)
-
-print(run)
-```
-
-```js Node
-import OpenAI from "openai";
-
-const openai = new OpenAI(
- api_key='MINDS_API_KEY',
- baseURL='https://mdb.ai/'
-);
-
-async function main() {
- const run = await openai.beta.threads.runs.create(
- "thread_abc123",
- { assistant_id: "" }
- );
-
- console.log(run);
-}
-
-main();
-```
-
-
-
-
-
-```json Response
-{
- "id": "mdb_run_8b425f3bf0a04ca584ad11106d37330c",
- "assistant_id": "mdb_asst_cfde04f34a5e47548b705fbf091e06bc",
- "cancelled_at": null,
- "completed_at": null,
- "created_at": 1718885800,
- "expires_at": null,
- "failed_at": null,
- "incomplete_details": null,
- "instructions": "",
- "last_error": null,
- "max_completion_tokens": null,
- "max_prompt_tokens": null,
- "metadata": null,
- "model": "",
- "object": "thread.run",
- "required_action": null,
- "response_format": null,
- "started_at": null,
- "status": "queued",
- "thread_id": "mdb_thread_cfa0fac64cd94faab3ae269d768c0cb0",
- "tool_choice": null,
- "tools": [],
- "truncation_strategy": null,
- "usage": null,
- "temperature": null,
- "top_p": null
-}
-```
-
-
diff --git a/docs/minds/rest_api/create_thread.mdx b/docs/minds/rest_api/create_thread.mdx
deleted file mode 100644
index d2a536cc120..00000000000
--- a/docs/minds/rest_api/create_thread.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: Create Threads
-sidebarTitle: Create Threads
----
-
-This API endpoint creates a Thread to contain Messages using the `POST` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-Unique identifier for the thread.
-
-
-
-
-
-Timestamp of when the thread was created.
-
-
-
-
-
-Optional metadata associated with the thread.
-
-
-
-
-
-The type of the object returned, which is `"thread"`.
-
-
-
-
-
-Information about any associated tool resources.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-None.
-
-
-
-```shell Shell
-curl -X POST "https://mdb.ai/threads" \
- -H "Authorization: Bearer MINDS_API_KEY"
-```
-
-```python Python
-from openai import OpenAI
-client = OpenAI(
- api_key='MINDS_API_KEY',
- base_url='https://mdb.ai/'
-)
-
-thread = client.beta.threads.create()
-print(thread)
-```
-
-```js Node
-import OpenAI from "openai";
-
-const openai = new OpenAI(
- api_key='MINDS_API_KEY',
- baseURL='https://mdb.ai/'
-);
-
-async function main() {
- const emptyThread = await openai.beta.threads.create();
- console.log(emptyThread);
-}
-
-main();
-```
-
-
-
-
-
-```json Response
-{
- "id": "mdb_thread_d79c95547e5f4501a32df6f492ad5be9",
- "created_at": 1718884196,
- "metadata": null,
- "object": "thread",
- "tool_resources": null
-}
-```
-
-
diff --git a/docs/minds/rest_api/delete_datasource.mdx b/docs/minds/rest_api/delete_datasource.mdx
deleted file mode 100644
index fbe932b5199..00000000000
--- a/docs/minds/rest_api/delete_datasource.mdx
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: Delete Data Source
-sidebarTitle: Delete Data Source
----
-
-This API endpoint deletes a specific Datasource using the `DELETE` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-HTTP status code indicating success. `200 OK` confirms the Datasource was deleted.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-The name of the Datasource you want to delete.
-
-
-
-
-
-```shell Shell
-curl --request DELETE \
- --url https://mdb.ai/api/datasources/datasource_name \
- --header 'Authorization: Bearer MINDS_API_KEY'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-client.datasources.drop('datasource_name')
-```
-
-
-
-
-
-```json Response
-200 OK
-```
-
-
diff --git a/docs/minds/rest_api/delete_mind.mdx b/docs/minds/rest_api/delete_mind.mdx
deleted file mode 100644
index a19fd143995..00000000000
--- a/docs/minds/rest_api/delete_mind.mdx
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: Delete Mind
-sidebarTitle: Delete Mind
----
-
-This API endpoint deletes a specific Mind using the `DELETE` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-HTTP status code indicating success. `200 OK` confirms the Mind was deleted.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-The name of the Mind you want to delete.
-
-
-
-
-
-```shell Shell
-curl --request DELETE \
- --url 'https://mdb.ai/api/projects/mindsdb/minds/mind_name' \
- --header 'Authorization: Bearer MINDS_API_KEY'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-client.minds.drop('mind_name')
-```
-
-
-
-
-
-```json Response
-200 OK
-```
-
-
diff --git a/docs/minds/rest_api/delete_thread.mdx b/docs/minds/rest_api/delete_thread.mdx
deleted file mode 100644
index 5306c72b03d..00000000000
--- a/docs/minds/rest_api/delete_thread.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: Delete Threads
-sidebarTitle: Delete Threads
----
-
-This API endpoint deletes a Thread and all associated Messages using the `DELETE` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-Unique identifier for the deleted thread.
-
-
-
-
-
-Indicates whether the thread was successfully deleted.
-
-
-
-
-
-The type of the returned object, which will be `"thread.deleted"`.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-Id of the Thread to be deleted.
-
-
-
-
-
-```shell Shell
-curl -X DELETE "https://mdb.ai/threads/mdb_thread_d79c95547e5f4501a32df6f492ad5be9" \
- -H "Authorization: Bearer MINDS_API_KEY"
-```
-
-```python Python
-from openai import OpenAI
-client = OpenAI(
- api_key='MINDS_API_KEY',
- base_url='https://mdb.ai/'
-)
-
-response = client.beta.threads.delete("thread_abc123")
-print(response)
-```
-
-```js Node
-import OpenAI from "openai";
-
-const openai = new OpenAI(
- api_key='MINDS_API_KEY',
- baseURL='https://mdb.ai/'
-);
-
-async function main() {
- const response = await openai.beta.threads.del("thread_abc123");
- console.log(response);
-}
-
-main();
-```
-
-
-
-
-
-```json Response
-{
- "id": "mdb_thread_d79c95547e5f4501a32df6f492ad5be9",
- "deleted": true,
- "object": "thread.deleted"
-}
-```
-
-
diff --git a/docs/minds/rest_api/get_datasource.mdx b/docs/minds/rest_api/get_datasource.mdx
deleted file mode 100644
index 857851325cc..00000000000
--- a/docs/minds/rest_api/get_datasource.mdx
+++ /dev/null
@@ -1,113 +0,0 @@
----
-title: Get Data Source
-sidebarTitle: Get Data Source
----
-
-This API endpoint retrieves details about a specific Datasource using the `GET` method.
-
-### Body
-
-
-
-Set this value to `true` to check the connection to the data source.
-
-
-
-### Response
-
-
-
-Details for connecting to the data source including host, port, user, password, etc.
-
-
-
-
-
-The status of the connection test, if `check_connection=true`. Includes success flag and error message if applicable.
-
-
-
-
-
-Optional description of the datasource.
-
-
-
-
-
-The engine type of the datasource (e.g., postgres).
-
-
-
-
-
-The unique name of the datasource.
-
-
-
-
-
-List of tables that are accessible from this datasource.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-The name of the Datasource you want to retrieve.
-
-
-
-
-
-```shell Shell
-curl --request GET \
- --url 'https://mdb.ai/api/datasources/datasource_name?check_connection=true' \
- --header 'Authorization: Bearer MINDS_API_KEY'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-datasource = client.datasources.get('datasource_name')
-```
-
-
-
-
-
-```json Response
-{
- "connection_data": {
- "database": "demo",
- "host": "samples.mindsdb.com",
- "password": "demo_password",
- "port": "5432",
- "schema": "demo_data",
- "user": "demo_user"
- },
- "connection_status": {
- "error_message": null,
- "success": true
- },
- "description": "House sales data",
- "engine": "postgres",
- "name": "my_datasource",
- "tables": ["house_sales"]
-}
-```
-
-
diff --git a/docs/minds/rest_api/get_mind.mdx b/docs/minds/rest_api/get_mind.mdx
deleted file mode 100644
index 6668bd0627f..00000000000
--- a/docs/minds/rest_api/get_mind.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: Get Mind
-sidebarTitle: Get Mind
----
-
-This API endpoint retrieves details about a specific Mind using the `GET` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-Timestamp of when the Mind was created.
-
-
-
-
-
-List of data sources connected to the Mind.
-
-
-
-
-
-The name of the model associated with the Mind.
-
-
-
-
-
-The unique name of the Mind.
-
-
-
-
-
-Optional parameters used when configuring the Mind.
-
-
-
-
-
-The provider used for the Mind (e.g., openai).
-
-
-
-
-
-Timestamp of the last update to the Mind.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-The name of the Mind you want to retrieve details for.
-
-
-
-
-
-```shell Shell
-curl --request GET \
- --url 'https://mdb.ai/api/projects/mindsdb/minds/mind_name' \
- --header 'Authorization: Bearer MINDS_API_KEY'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-mind = client.minds.get('mind_name')
-```
-
-
-
-
-
-```json Response
-{
- "created_at": "Thu, 12 Sep 2024 12:37:16 GMT",
- "datasources": [],
- "model_name": "gpt-4o",
- "name": "mind_name",
- "parameters": null,
- "provider": "openai",
- "updated_at": "Thu, 12 Sep 2024 12:37:16 GMT"
-}
-```
-
-
diff --git a/docs/minds/rest_api/list_datasources.mdx b/docs/minds/rest_api/list_datasources.mdx
deleted file mode 100644
index 871514967dc..00000000000
--- a/docs/minds/rest_api/list_datasources.mdx
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: List Data Sources
-sidebarTitle: List Data Sources
----
-
-This API endpoint lists all connected Datasources using the `GET` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-Details for connecting to the data source including host, port, user, password, etc.
-
-
-
-
-
-Optional description of the datasource.
-
-
-
-
-
-The engine type of the datasource (e.g., postgres).
-
-
-
-
-
-The unique name of the datasource.
-
-
-
-
-
-List of tables that are accessible from this datasource.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-None.
-
-
-
-```shell Shell
-curl --request GET \
- --url 'https://mdb.ai/api/datasources' \
- --header 'Authorization: Bearer MINDS_API_KEY'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-client.datasources.list()
-```
-
-
-
-
-
-```json Response
-[
- {
- "connection_data": {
- "database": "demo",
- "host": "samples.mindsdb.com",
- "password": "demo_password",
- "port": "5432",
- "schema": "demo_data",
- "user": "demo_user"
- },
- "description": "House sales data",
- "engine": "postgres",
- "name": "my_datasource",
- "tables": ["house_sales"]
- }
-]
-```
-
-
diff --git a/docs/minds/rest_api/list_messages.mdx b/docs/minds/rest_api/list_messages.mdx
deleted file mode 100644
index 847f2727a8b..00000000000
--- a/docs/minds/rest_api/list_messages.mdx
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: List Messages
-sidebarTitle: List Messages
----
-
-This API endpoint retrieves all Messages from a Thread using the `GET` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-An array of message objects stored in the thread.
-
-
-
-
-
-Type of the returned object, usually `"list"`.
-
-
-
-
-
-ID of the first message in the returned list.
-
-
-
-
-
-ID of the last message in the returned list.
-
-
-
-
-
-Indicates whether more messages are available beyond the current list.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-Id of the Thread that stores messages.
-
-
-
-
-
-```shell Shell
-curl -X GET "https://mdb.ai/threads/mdb_thread_cfa0fac64cd94faab3ae269d768c0cb0/messages" \
- -H "Authorization: Bearer MINDS_API_KEY"
-```
-
-```python Python
-from openai import OpenAI
-client = OpenAI(
- api_key='MINDS_API_KEY',
- base_url='https://mdb.ai/'
-)
-
-thread_messages = client.beta.threads.messages.list("thread_abc123")
-print(thread_messages.data)
-```
-
-```js Node
-import OpenAI from "openai";
-
-const openai = new OpenAI(
- api_key='MINDS_API_KEY',
- baseURL='https://mdb.ai/'
-);
-
-async function main() {
- const threadMessages = await openai.beta.threads.messages.list(
- "thread_abc123"
- );
-
- console.log(threadMessages.data);
-}
-
-main();
-```
-
-
-
-
-
-```json Response
-{
- "data": [
- {
- "id": "mdb_msg_7a74bc341b194af1ab8228e57a85d462",
- "assistant_id": null,
- "attachments": null,
- "completed_at": null,
- "content": [
- {
- "text": {
- "annotations": [],
- "value": "What data do you have access to?"
- },
- "type": "text"
- }
- ],
- "created_at": 1718885284.349052,
- "incomplete_at": null,
- "incomplete_details": null,
- "metadata": null,
- "object": "thread.message",
- "role": "user",
- "run_id": null,
- "status": "completed",
- "thread_id": "mdb_thread_cfa0fac64cd94faab3ae269d768c0cb0"
- }
- ],
- "object": "list",
- "first_id": "mdb_msg_7a74bc341b194af1ab8228e57a85d462",
- "last_id": "mdb_msg_7a74bc341b194af1ab8228e57a85d462",
- "has_more": false
-}
-```
-
-
diff --git a/docs/minds/rest_api/list_minds.mdx b/docs/minds/rest_api/list_minds.mdx
deleted file mode 100644
index d5904f42f3a..00000000000
--- a/docs/minds/rest_api/list_minds.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: List Minds
-sidebarTitle: List Minds
----
-
-This API endpoint lists all created Minds using the `GET` method.
-
-### Body
-
-None.
-
-### Response
-
-
-
-Timestamp of when the Mind was created.
-
-
-
-
-
-List of data sources connected to the Mind.
-
-
-
-
-
-The name of the model associated with the Mind.
-
-
-
-
-
-The unique name of the Mind.
-
-
-
-
-
-Optional parameters used when configuring the Mind.
-
-
-
-
-
-The provider used for the Mind (e.g., openai).
-
-
-
-
-
-Timestamp of the last update to the Mind.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-None.
-
-
-
-```shell Shell
-curl --request GET \
- --url 'https://mdb.ai/api/projects/mindsdb/minds' \
- --header 'Authorization: Bearer MINDS_API_KEY'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-client.minds.list()
-```
-
-
-
-
-
-```json Response
-[
- {
- "created_at": "Wed, 07 Aug 2024 10:50:31 GMT",
- "datasources": [
- "datasource_name"
- ],
- "model_name": "gpt-4o",
- "name": "mind_name",
- "parameters": {},
- "provider": "openai",
- "updated_at": "Wed, 07 Aug 2024 16:43:21 GMT"
- }
-]
-```
-
-
diff --git a/docs/minds/rest_api/overview.mdx b/docs/minds/rest_api/overview.mdx
deleted file mode 100644
index c339a9b5063..00000000000
--- a/docs/minds/rest_api/overview.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Minds REST APIs
-sidebarTitle: Overview
-icon: "rectangle-code"
----
-
-Minds provide REST APIs, enabling interaction with Minds via API endpoints.
-
-Follow these steps to get started:
-
-
-
- Go to [Minds Cloud](https://mdb.ai/register) to create an account.
-
-
- Go to the [API Keys tab](https://mdb.ai/apiKeys) to get an API key.
-
-
- Follow [this tutorial](/minds/rest_api/create_mind) to create a Mind.
-
-
diff --git a/docs/minds/rest_api/overview_assistants.mdx b/docs/minds/rest_api/overview_assistants.mdx
deleted file mode 100644
index 6dbe03c16a1..00000000000
--- a/docs/minds/rest_api/overview_assistants.mdx
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Minds as Assistants
-sidebarTitle: Minds as Assistants
----
-
-Assistants enable Minds to engage in conversational interactions, keeping track of the conversational context. This contrasts with the [Chat Completions endpoint](/minds/rest_api/chat), which handles one-time requests without *remembering* past interactions.
-
-Here’s how to use **Minds as Assistants**:
-
-1. [Create a conversation Thread](/minds/rest_api/create_thread) and save the Thread ID.
-2. [Create a Message](/minds/rest_api/create_message) assigning it to the Thread. This is a question sent to the Mind.
-3. [List Messages](/minds/rest_api/list_messages) assigned to the Thread to ensure your message has been sent.
-4. [Create a Run](/minds/rest_api/create_run) assigning it to the Thread and providing the name of the [Mind created with this endpoint](/minds/rest_api/create_mind), and save the Run ID.
-5. [Retrieve a Run](/minds/rest_api/retrieve_run) assigned to the Thread to check the status of the Run. The status should read complete.
-6. [List Messages](/minds/rest_api/list_messages) assigned to the Thread that should contain the response from the Mind.
diff --git a/docs/minds/rest_api/retrieve_run.mdx b/docs/minds/rest_api/retrieve_run.mdx
deleted file mode 100644
index 07ecf494f1b..00000000000
--- a/docs/minds/rest_api/retrieve_run.mdx
+++ /dev/null
@@ -1,208 +0,0 @@
----
-title: Retrieve Mind
-sidebarTitle: Retrieve Mind
----
-
-This API endpoint retrieves a Run using the `GET` method.
-
-### Body
-
-None.
-
-### Response
-
-
-Unique identifier for the run.
-
-
-
-ID of the Assistant associated with the run.
-
-
-
-Timestamp when the run was cancelled.
-
-
-
-Timestamp when the run was completed.
-
-
-
-Timestamp when the run was created.
-
-
-
-Expiration time for the run.
-
-
-
-Timestamp when the run failed.
-
-
-
-Details about why the run was incomplete, if applicable.
-
-
-
-Instructions sent to the Assistant.
-
-
-
-Details about the last error, if any.
-
-
-
-Maximum number of tokens for the completion.
-
-
-
-Maximum number of tokens for the prompt.
-
-
-
-Additional metadata for the run.
-
-
-
-Model name used for the run.
-
-
-
-Type of the returned object (e.g., "thread.run").
-
-
-
-Actions required before proceeding.
-
-
-
-Format of the response.
-
-
-
-Timestamp when the run started.
-
-
-
-Current status of the run (e.g., "queued", "in_progress").
-
-
-
-ID of the thread associated with the run.
-
-
-
-Chosen tool for the run.
-
-
-
-List of tools used during the run.
-
-
-
-Strategy used to truncate input.
-
-
-
-Usage statistics for the run.
-
-
-
-Sampling temperature for randomness.
-
-
-
-Top-p sampling parameter.
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-ID of a Thread to be listed.
-
-
-
-ID of a Run to be listed.
-
-
-
-
-```shell Shell
-curl -X GET "https://mdb.ai/threads/mdb_thread_cfa0fac64cd94faab3ae269d768c0cb0/runs/mdb_run_8b425f3bf0a04ca584ad11106d37330c" \
- -H "Authorization: Bearer MINDS_API_KEY" \
- -H "Content-Type: application/json"
-```
-
-```python Python
-from openai import OpenAI
-client = OpenAI(
- api_key='MINDS_API_KEY',
- base_url='https://mdb.ai/'
-)
-
-runs = client.beta.threads.runs.list("thread_abc123")
-print(runs)
-```
-
-```js Node
-import OpenAI from "openai";
-
-const openai = new OpenAI(
- api_key='MINDS_API_KEY',
- baseURL='https://mdb.ai/'
-);
-
-async function main() {
- const runs = await openai.beta.threads.runs.list("thread_abc123");
- console.log(runs);
-}
-
-main();
-```
-
-
-
-
-
-```json Response
-{
- "id": "mdb_run_8b425f3bf0a04ca584ad11106d37330c",
- "assistant_id": "mdb_asst_cfde04f34a5e47548b705fbf091e06bc",
- "cancelled_at": null,
- "completed_at": null,
- "created_at": 1718885800,
- "expires_at": null,
- "failed_at": null,
- "incomplete_details": null,
- "instructions": "",
- "last_error": null,
- "max_completion_tokens": null,
- "max_prompt_tokens": null,
- "metadata": null,
- "model": "",
- "object": "thread.run",
- "required_action": null,
- "response_format": null,
- "started_at": null,
- "status": "queued",
- "thread_id": "mdb_thread_cfa0fac64cd94faab3ae269d768c0cb0",
- "tool_choice": null,
- "tools": [],
- "truncation_strategy": null,
- "usage": null,
- "temperature": null,
- "top_p": null
-}
-```
-
-
diff --git a/docs/minds/rest_api/update_datasource.mdx b/docs/minds/rest_api/update_datasource.mdx
deleted file mode 100644
index 121ca2432cf..00000000000
--- a/docs/minds/rest_api/update_datasource.mdx
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: Update Data Source
-sidebarTitle: Update Data Source
----
-
-This API endpoint updates the Datasource's description and/or connection parameters and/or list of tables using the `PATCH` method.
-
-### Body
-
-
-
-Provide a new description for the Datasource, which is used by the Mind to decide the relevant datasources for each question.
-
-
-
-
-
-Provide the updated connection parameters for the selected engine. [See available engines and connection parameters here](/minds/data_sources).
-
-
-
-
-
-This is an optional parameter that lets you specify tables that can be accessed by the Mind.
-
-
-
-### Response
-
-
-
-HTTP status code indicating success. `200 OK` confirms the Datasource was updated.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-The name of the Datasource you want to update.
-
-
-
-
-
-```shell Shell
-curl --request PATCH \
- --url 'https://mdb.ai/api/datasources/datasource_name' \
- --header 'Content-Type: application/json' \
- --header 'Authorization: Bearer MINDS_API_KEY' \
- --data '{
- "connection_data": {
- "user": "demo_user",
- "password": "demo_password",
- "host": "samples.mindsdb.com",
- "port": "5432",
- "database": "demo",
- "schema": "demo_data"
- },
- "tables": ["sales_data"],
- "description": "Sales data"
- }'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-# the create function updates the datasource
-# provided that postgres_config's name is one of the existing datasources
-datasource = client.datasources.create(postgres_config)
-```
-
-
-
-
-
-```json Response
-200 OK
-```
-
-
diff --git a/docs/minds/rest_api/update_mind.mdx b/docs/minds/rest_api/update_mind.mdx
deleted file mode 100644
index cab65e5414e..00000000000
--- a/docs/minds/rest_api/update_mind.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Update Mind
-sidebarTitle: Update Mind
----
-
-This API endpoint updates the Mind name and/or the connected data sources using the `PATCH` method.
-
-### Body
-
-
-
-Provide a new name for the Mind.
-
-
-
-
-
-Provide an updated list of data sources to be connected to the Mind. Use [this endpoint](/minds/rest_api/create_datasource) to create data sources.
-
-
-
-### Response
-
-
-
-HTTP status code indicating success. `200 OK` confirms the Mind was updated.
-
-
-
-### Authorization
-
-A valid API key must be passed in the `Authorization` header:
-
-```
-Authorization: Bearer MINDS_API_KEY
-```
-
-Generate your [API key here](https://mdb.ai/apiKeys).
-
-### Path Parameters
-
-
-
-The name of the Mind you want to update.
-
-
-
-
-
-```shell Shell
-curl --request PATCH \
- --url 'https://mdb.ai/api/projects/mindsdb/minds/mind_name' \
- --header 'Content-Type: application/json' \
- --header 'Authorization: Bearer MINDS_API_KEY' \
- --data '{
- "name": "mind_name_new",
- "datasources": ["datasource_name"]
- }'
-```
-
-```python Python
-from minds.client import Client
-
-client = Client("MINDS_API_KEY", "https://mdb.ai/")
-
-mind.update(
- name='mind_name', # this is required
- datasources=[new_datasource_config] # this will replace the existing datasources list
-)
-```
-
-
-
-
-
-```json Response
-200 OK
-```
-
-
diff --git a/docs/minds/sample_data.mdx b/docs/minds/sample_data.mdx
deleted file mode 100644
index bf96d090b7a..00000000000
--- a/docs/minds/sample_data.mdx
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: Sample Data
-sidebarTitle: Sample Data
-icon: "table"
----
-
-MindsDB provides a read-only PostgreSQL database pre-loaded with various datasets to help you test and explore the capabilities of Minds. These datasets are curated to cover a wide range of scenarios and use cases, allowing you to experiment with different data types and analysis techniques.
-
-Our publicly accessible PostgreSQL database is designed for testing and playground purposes. By using these datasets, you can quickly get started with Minds, understand how it works, and see how it can be applied to real-world problems.
-
-## Connection
-
-To connect to our read-only PostgreSQL database and access the example datasets, use the following connection parameters:
-
-```python
-demo_config = DatabaseConfig(
- description='House Sales Data',
- type='postgres',
- connection_args={
- 'user': 'demo_user',
- 'password': 'demo_password',
- 'host': 'samples.mindsdb.com',
- 'port': '5432',
- 'database': 'demo',
- 'schema': 'demo_data'
- },
- tables=['house_sales']
-)
-```
-
-Below is the list of all avaiable datasets as tables.
-
-## Data Tables
-
-### `fraud_detection`
-
-| step | type | amount | nameOrig | oldbalanceOrg | newbalanceOrig | nameDest | oldbalanceDest | newbalanceDest | isFraud | isFlaggedFraud |
-| ---- | -------- | ------- | ----------- | ------------- | -------------- | ----------- | -------------- | -------------- | ------- | -------------- |
-| 1 | PAYMENT | 9839.64 | C1231006815 | 170136.0 | 160296.36 | M1979787155 | 0.0 | 0.0 | 0 | 0 |
-| 1 | PAYMENT | 1864.28 | C1666544295 | 21249.0 | 19384.72 | M2044282225 | 0.0 | 0.0 | 0 | 0 |
-| 1 | TRANSFER | 181.0 | C1305486145 | 181.0 | 0.0 | C553264065 | 0.0 | 0.0 | 1 | 0 |
-
-To learn more about this dataset, please visit [this link](https://www.kaggle.com/datasets/ealaxi/paysim1).
-
-### **customer\_churn**
-
-| RowNumber | CustomerId | Surname | CreditScore | Geography | Gender | Age | Tenure | Balance | NumOfProducts | HasCrCard | IsActiveMember | EstimatedSalary | Exited |
-| --------- | ---------- | -------- | ----------- | --------- | ------ | --- | ------ | -------- | ------------- | --------- | -------------- | --------------- | ------ |
-| 1 | 15634602 | Hargrave | 619 | France | Female | 42 | 2 | 0 | 1 | 1 | 1 | 101348.88 | 1 |
-| 2 | 15647311 | Hill | 608 | Spain | Female | 41 | 1 | 83807.86 | 1 | 0 | 1 | 112542.58 | 0 |
-| 3 | 15619304 | Onio | 502 | France | Female | 42 | 8 | 159660.8 | 3 | 1 | 0 | 113931.57 | 1 |
-
-To learn more about this dataset, please visit [this link](https://www.kaggle.com/datasets/shantanudhakadd/bank-customer-churn-prediction).
-
-### `customer_support_chat`
-
-| flags | instruction | category | intent | response |
-| ----- | ----------------------------------------------------- | -------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| B | question about cancelling order Order Number | ORDER | cancel\_order | I've understood you have a question regarding canceling order Order Number, and I'm here to provide you with the information you need. Please go ahead and ask your question. |
-| BQZ | i have a question about cancelling order Order Number | ORDER | cancel\_order | I've been informed that you have a question about canceling order Order Number. I'm here to assist you! Let me know your question and I'll provide the guidance you need. |
-
-To learn more about this dataset, please visit [this link](https://huggingface.co/datasets/bitext/Bitext-customer-support-llm-chatbot-training-dataset).
-
-### `bank_customer_transactions`
-
-| Customer ID | Name | Surname | Gender | Birthdate | Transaction Amount | Date | Merchant Name | Category |
-| ----------- | -------- | --------- | ------ | ---------- | ------------------ | ---------- | ---------------------- | -------- |
-| 752858 | Sean | Rodriguez | F | 2002-10-20 | 35.47 | 2023-04-03 | Smith-Russell | Cosmetic |
-| 26381 | Michelle | Phelps | | 1985-10-24 | 2552.72 | 2023-07-17 | Peck, Spence and Young | Travel |
-| 305449 | Jacob | Williams | M | 1981-10-25 | 115.97 | 2023-09-20 | Steele Inc | Clothing |
-
-To learn more about this dataset, please visit [this link](https://www.kaggle.com/datasets/bkcoban/customer-transactions).
-
-### `telecom_customer_churn`
-
-| age | gender | security\_no | region\_category | membership\_category | joining\_date | joined\_through\_referral | referral\_id | preferred\_offer\_types | medium\_of\_operation | internet\_option | last\_visit\_time | days\_since\_last\_login | avg\_time\_spent | avg\_transaction\_value | avg\_frequency\_login\_days | points\_in\_wallet | used\_special\_discount | offer\_application\_preference | past\_complaint | complaint\_status | feedback | churn\_risk\_score |
-| --- | ------ | ------------ | ---------------- | -------------------- | ------------- | ------------------------- | ------------ | ----------------------- | --------------------- | ---------------- | ----------------- | ------------------------ | ---------------- | ----------------------- | --------------------------- | ------------------ | ----------------------- | ------------------------------ | --------------- | ------------------- | ------------------------ | ------------------ |
-| 18 | F | XW0DQ7H | Village | Platinum Membership | 17-08-2017 | No | xxxxxxxx | Gift Vouchers/Coupons | ? | Wi-Fi | 16:08:02 | 17 | 300.63 | 53005.25 | 17 | 781.75 | Yes | Yes | No | Not Applicable | Products always in Stock | 0 |
-| 32 | F | 5K0N3X1 | City | Premium Membership | 28-08-2017 | ? | CID21329 | Gift Vouchers/Coupons | Desktop | Mobile\_Data | 12:38:13 | 16 | 306.34 | 12838.38 | 10 | | Yes | No | Yes | Solved | Quality Customer Care | 0 |
-| 44 | F | 1F2TCL3 | Town | No Membership | 11-11-2016 | Yes | CID12313 | Gift Vouchers/Coupons | Desktop | Wi-Fi | 22:53:21 | 14 | 516.16 | 21027 | 22 | 500.69 | No | Yes | Yes | Solved in Follow-up | Poor Website | 1 |
-
-To learn more about this dataset, please visit [this link](https://huggingface.co/datasets/d0r1h/customer_churn).
-
-### `house_sales`
-
-| saledate | ma | type | bedrooms | created\_at |
-| ---------- | ------ | ----- | -------- | -------------------------- |
-| 2007-09-30 | 441854 | house | 2 | 2007-02-02 15:41:51.922127 |
-| 2007-12-31 | 441854 | house | 2 | 2007-02-23 22:36:08.540248 |
-| 2008-03-31 | 441854 | house | 2 | 2007-02-25 19:23:52.585358 |
-
-To learn more about this dataset, please visit [this link](https://www.kaggle.com/datasets/htagholdings/property-sales).
diff --git a/docs/mindsdb-handlers.mdx b/docs/mindsdb-handlers.mdx
deleted file mode 100644
index 0d9a1aaac36..00000000000
--- a/docs/mindsdb-handlers.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: Handlers
-sidebarTitle: Handlers
----
-
-## What are Handlers?
-
-At the heart of the MindsDB philosophy lies the belief that predictive insights are best leveraged when produced as close as possible to the data layer. Usually, this *data layer* is a SQL-compatible database, but it could also be a non-SQL database, data stream, or any other tool that interacts with data stored somewhere else.
-
-The above description fits an enormous set of tools used across the software industry. The complexity increases further by bringing Machine Learning into the equation, as the set of popular ML tools is similarly huge. We aim to support most technology stacks, requiring a simple integration procedure so that anyone can easily contribute the necessary *glue* to enable any predictive system for usage within data layers.
-
-This motivates the concept of *handlers*, which is an abstraction for the two types of entities mentioned above: *data layers* and *ML frameworks*. Handlers are meant to enforce a common and sufficient set of behaviors that all MindsDB-compatible entities should support. By creating a handler, the target system is effectively integrated into the wider MindsDB ecosystem.
-
-## Types of Handlers
-
-### Data Handlers
-
-Data handlers act as a bridge to any database. You use data handlers to connect data sources, including databases and applications, using [the CREATE DATABASE command](/sql/create/databases/). So you can reach data from any database that has its handler implemented within MindsDB.
-
-
-Go ahead and implement a handler for the database of your choice! Here you'll find instructions on how to implement a data handler.
-
-
-### Machine Learning (ML) Handlers
-
-ML handlers act as a bridge to any ML framework. You use ML handlers to create ML engines using [the CREATE ML_ENGINE command](/sql/create/ml-engine/). So you can expose ML models from any supported ML engine as an AI table.
-
-
-Go ahead and implement a handler for the ML library or framework of your choice! Here you'll find instructions on how to implement an ML handler.
-
-
-## Handlers in the MindsDB Repository
-
-The source code for integrations is located in the main MindsDB repository under the [/integrations](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations) directory.
-
-```
-integrations # Contains handlers' source codes
-├─ handlers/ # Each handler has its own handler directory
-│ ├─ mysql_handler/ # MySQL integration code
-│ ├─ openai_handler/ # OpenAI integration code
-│ ├─ .../ # Other handlers
-├─ handlers_client/ # Handler clients directory
-│ ├─ db_client/
-│ ├─ ml_client/
-├─ libs/ # Handler libraries directory
-│ ├─ base.py # Each handler class inherits from one of the base classes
-└─ utilities # Handler utility directory
-│ ├─ install.py # Script that installs all handler dependencies
-```
-
-## Structure of a Handler
-
-In technical terms, a handler is a self-contained Python package having everything required for MindsDB to interact with it. It includes aspects like dependencies, unit tests, and continuous integration logic. It is up to the author to determine the nature of the package, for example, closed or open source, version control, and more. Although, we encourage opening pull requests to expand the default set of supported tools.
-
-The entry point for a data handler is a class definition that should inherit directly from the [mindsdb.integrations.libs.base.DatabaseHandler](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/libs/base.py#L102) class and thus indirectly from the [mindsdb.integrations.libs.base.BaseHandler](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/libs/base.py#L8) class, which defines all the methods that must be overwritten in order to achieve a functional implementation.
-
-And the entry point for an ML handler is a class definition that should inherit from the [mindsdb.integrations.libs.base.BaseMLEngine](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/libs/base.py#L122) class, which defines all the methods that must be overwritten in order to achieve a functional implementation.
-
-
-All other details of the handler's structure are not enforced, so the author can decide on its design.
-
-
-## Things to Remember
-
-Here are a few points to keep in mind while implementing a handler.
-
-### Handlers Inherit from Base Classes
-
-Inherit from the [`DatabaseHandler`](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/libs/base.py#L102) class when adding a new data handler. For more info, visit our [doc page here](/contribute/data-handlers/).
-
-Inherit from the [`BaseMLEngine`](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/libs/base.py#L122) class when adding a new ML handler. For more info, visit our [doc page here](/contribute/ml-handlers/).
-
-### Parsing SQL
-
-Whenever you want to parse a string that contains SQL, we strongly recommend using the `mindsdb_sql` package. It provides a parser that fully supports the MindsDB SQL dialect and partially the standard SQL dialect. There is also a *render* feature to map other dialects into the already supported ones.
-
-### Formatting Output
-
-In the case of data handlers, the data-returning methods (`native_query()`, `query()`, `get_tables()`, `get_columns()`) should return one of the response classes from [mindsdb.integrations.libs.response](https://github.com/mindsdb/mindsdb/blob/main/mindsdb/integrations/libs/response.py)
-
-And in the case of ML handlers, output wrapping is automatically done by an intermediate wrapper, the `BaseMLEngineExec` class, so the contributor wouldn't need to worry about it.
-
-
-**Next Steps**
-
-Below are the links to help you explore further.
-
-
-
- Here is how to build a data handler.
- Here is how to build an app handler.
- Here is how to build an ML handler.
-
-
-
-
diff --git a/docs/mindsdb_sql/agents/chatbot.mdx b/docs/mindsdb_sql/agents/chatbot.mdx
deleted file mode 100644
index 83669b36235..00000000000
--- a/docs/mindsdb_sql/agents/chatbot.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
----
-title: Chatbot
-sidebarTitle: Chatbot
----
-
-Within MindsDB, chatbots are [agents](/mindsdb_sql/agents/agent) connected to a chat interface.
-
-Creating a chatbot requires either an [AI agent](/mindsdb_sql/agents/agent) or an LLM, and a connection to a chat app, like [Slack](/integrations/app-integrations/slack) or [MS Teams](/integrations/app-integrations/microsoft-teams).
-
-
-
-
-
-## `CREATE CHATBOT` Syntax
-
-Here is how to create a chatbot that integrates an AI Agent and can be connected to a chat interface.
-
-```sql
-CREATE CHATBOT my_chatbot
-USING
- database = 'my_slack', -- created with CREATE DATABASE my_slack
- agent = 'my_agent', -- created with CREATE AGENT my_agent
- is_running = true; -- default is true
-```
-
-It creates a chatbot that users can interact with via the configured chat interface.
-
-View all chatbots with this command.
-
-```sql
-SHOW CHATBOTS;
-```
-
-### `database`
-
-In MindsDB, the [`CREATE DATABASE` command](/mindsdb_sql/sql/create/database) is used to connect data integrations including databases and applications such as chat interfaces.
-
-The `database` parameter stores the name of the chat interface connected to MindsDB with the [`CREATE DATABASE` command](/mindsdb_sql/sql/create/database), such as [Slack](/integrations/app-integrations/slack) or [MS Teams](/integrations/app-integrations/microsoft-teams).
-
-### `agent`
-
-The `agent` parameter stores the name of the agent created in MindsDB with the [`CREATE AGENT` command](/mindsdb_sql/agents/agent).
-
-Alternatively, user can use the `model` parameter, instead of `agent`, to connect an LLM created in MindsDB with the [`CREATE MODEL` command](/mindsdb_sql/sql/create/model).
-
-### `is_running`
-
-The `is_running` parameter defines whether the chatbot is going to be available right after its creation (`true`) or not (`false`).
-
-If it is set to `false`, users can enable it with this command.
-
-```sql
-UPDATE CHATBOT my_chatbot
-SET
- is_running = true;
-```
-
-
-Here are some tips for using the Slack integration:
-
-1. If you want to use Slack in the [`CREATE CHATBOT`](/agents/chatbot) syntax, use [this method of connecting Slack to MindsDB](/integrations/app-integrations/slack#method-1-chatbot-responds-in-direct-messages-to-a-slack-app).
-
-2. If you want to connect the chatbot to multiple Slack channels, open your Slack application and add the App/Bot to one or more channels:
- - Go to the channel where you want to use the bot.
- - Right-click on the channel and select *View Channel Details*.
- - Select *Integrations*.
- - Click on *Add an App*.
-
-
-## `DROP CHATBOT` Syntax
-
-Here is how to delete a chatbot:
-
-```sql
-DROP CHATBOT my_chatbot;
-```
-
-## Example
-
-Following the example from [here](/agents/agent#example), let's create a chatbot utilizing the already created agent.
-
-Start by connecting a chat app to MindsDB:
-
-* Follow [this instruction](/integrations/app-integrations/slack) to connect Slack to MindsDB.
-* Follow [this instruction](/integrations/app-integrations/microsoft-teams) to connect MS Teams to MindsDB.
-
-Next, create a chatbot.
-
-```sql
-CREATE CHATBOT text_to_sql_chatbot
-USING
- database = 'my_slack', -- this must be created with CREATE DATABASE
- agent = 'text_to_sql_agent', -- this must be created with CREATE AGENT
- is_running = true;
-```
-
-
-Follow [this tutorial](/use-cases/ai_agents/build_ai_agents) to build your own chatbot.
-
diff --git a/docs/mindsdb_sql/knowledge-bases.mdx b/docs/mindsdb_sql/knowledge-bases.mdx
deleted file mode 100644
index 24db0f76774..00000000000
--- a/docs/mindsdb_sql/knowledge-bases.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: Knowledge Base
-sidebarTitle: Knowledge Bases
----
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/mindsdb_sql/sql/api/describe.mdx b/docs/mindsdb_sql/sql/api/describe.mdx
deleted file mode 100644
index 226a9a35c5d..00000000000
--- a/docs/mindsdb_sql/sql/api/describe.mdx
+++ /dev/null
@@ -1,258 +0,0 @@
----
-title: Describe a Model
-sidebarTitle: Describe a Model
----
-
-## Description
-
-The `DESCRIBE` statement is used to display the attributes of an existing model.
-
-The available options to describe a model depend on the underlying engine.
-
-## Syntax
-
-Here is how to retrieve general information on the model:
-
-```sql
-DESCRIBE model_name;
-```
-
-Or:
-
-```sql
-DESCRIBE MODEL model_name;
-```
-
-This command is similar to the below command:
-
-```sql
-SELECT *
-FROM models
-WHERE name = 'model_name';
-```
-
-One difference between these two commands is that `DESCRIBE` outputs an additional column that stores all available options to describe a model, depending on the underlying engine.
-
-## Examples
-
-### NLP Models
-
-MindsDB offers NLP models that utilize either Hugging Face or OpenAI engines. Let's see how to describe such models.
-
-```sql
-DESCRIBE [MODEL] sentiment_classifier;
-```
-
-On execution we get:
-
-```sql
-+---------------------+----------------------+--------+---------+--------+---------+----------+----------+-----------+---------------+-----------------+--------+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+
-| tables | NAME | ENGINE | PROJECT | ACTIVE | VERSION | STATUS | ACCURACY | PREDICT | UPDATE_STATUS | MINDSDB_VERSION | ERROR | SELECT_DATA_QUERY | TRAINING_OPTIONS | TAG |
-+---------------------+----------------------+--------+---------+--------+---------+----------+----------+-----------+---------------+-----------------+--------+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+
-| ["args","metadata"] | sentiment_classifier | openai | mindsdb | true | 1 | complete | [NULL] | sentiment | up_to_date | 23.1.3.2 | [NULL] | [NULL] | {'target': 'sentiment', 'using': {'prompt_template': 'describe the sentiment of the reviews\n strictly as "positive", "neutral", or "negative".\n "I love the product":positive\n "It is a scam":negative\n "{{review}}.":'}} | [NULL] |
-+---------------------+----------------------+--------+---------+--------+---------+----------+----------+-----------+---------------+-----------------+--------+-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+
-```
-
-The `tables` output column lists all available options to describe a model.
-
-
-
-
-```sql
-DESCRIBE [MODEL] sentiment_classifier.args;
-```
-
-The above command returns the following output columns:
-
-
-
-
-
Name
-
Description
-
-
-
-
-
key
-
It stores parameters, such as `prompt_template` and `target`.
-
-
-
value
-
It stores parameter values.
-
-
-
-
-
-
-
-```sql
-DESCRIBE [MODEL] sentiment_classifier.metadata;
-```
-
-The above command returns the following output columns:
-
-
-
-
-
Name
-
Description
-
-
-
-
-
key
-
It stores metadata parameters.
-
-
-
value
-
It stores parameter values.
-
-
-
-
-
-
-
-### Nixtla Models
-
-MindsDB integrates Nixtla engines, such as StatsForecast, NeuralForecast, and HierarchicalForecast. Let's see how to describe models based on Nixtla engines.
-
-```sql
-DESCRIBE [MODEL] quarterly_expenditure_forecaster;
-```
-
-On execution we get:
-
-```sql
-+-----------------------------+----------------------------------+---------------+---------+--------+---------+----------+----------+-------------+---------------+-----------------+--------+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+--------+
-| tables | NAME | ENGINE | PROJECT | ACTIVE | VERSION | STATUS | ACCURACY | PREDICT | UPDATE_STATUS | MINDSDB_VERSION | ERROR | SELECT_DATA_QUERY | TRAINING_OPTIONS | TAG |
-+-----------------------------+----------------------------------+---------------+---------+--------+---------+----------+----------+-------------+---------------+-----------------+--------+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+--------+
-| ["info","features","model"] | quarterly_expenditure_forecaster | statsforecast | mindsdb | true | 1 | complete | [NULL] | expenditure | up_to_date | 23.4.4.0 | [NULL] | SELECT * FROM historical_expenditures | {'target': 'expenditure', 'using': {}, 'timeseries_settings': {'is_timeseries': True, 'order_by': 'month', 'horizon': 3, 'group_by': ['category']}} | [NULL] |
-+-----------------------------+----------------------------------+---------------+---------+--------+---------+----------+----------+-------------+---------------+-----------------+--------+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+--------+
-```
-
-The `tables` output column lists all available options to describe a model.
-
-
-
-
-```sql
-DESCRIBE [MODEL] quarterly_expenditure_forecaster.info;
-```
-
-The above command returns the following output columns:
-
-
-
-
-
Name
-
Description
-
-
-
-
-
accuracies
-
It lists the chosen model name and its accuracy score.
-
-
-
outputs
-
The target column.
-
-
-
inputs
-
All the feature columns.
-
-
-
-
-
-
-
-```sql
-DESCRIBE [MODEL] quarterly_expenditure_forecaster.features;
-```
-
-The above command returns the following output columns:
-
-
-
-
-
Name
-
Description
-
-
-
-
-
ds
-
It defines intervals between records. For example, here, we've got monthly expenditure records.
-
-
-
y
-
It stores the target column.
-
-
-
unique_id
-
It stores columns listed in the `GROUP BY` clause. It defines the column(s) in the dataset by which you can split it into multiple time series that track the same process or value for different entities or groups.
-
-
-
-
-
-
-
-```sql
-DESCRIBE [MODEL] quarterly_expenditure_forecaster.model;
-```
-
-The above command returns the following output columns:
-
-
-
-
-
Name
-
Description
-
-
-
-
-
model_name
-
It is the chosen model name.
-
-
-
frequency
-
It is the frequency
-
-
-
season_length
-
It indicates how many measurements until the next *season* occurs. For example, a time series with monthly measurements and a season length of 12 means that, every 12 months, a new *season* occurs. It can have a very strong effect on the final model’s performance.
-
-
-
hierarchy
-
It defines whether HierarchicalForecast is used (`true`) or not (`false`).
-
-
-
-
-
-
-
-### Other Models
-
-Models that utlize LangChain or are brought to MindsDB via MLflow can be described as follows:
-
-```sql
-DESCRIBE [MODEL] other_model;
-```
-
-The above command returs `["info"]` in its first output column.
-
-```sql
-DESCRIBE [MODEL] other_model.info;
-```
-
-The above command lists basic model information.
-
-
-If you need more information on how to `DESCRIBE [MODEL]` or understand the results, feel free to ask us on the [community Slack workspace](https://mindsdb.com/joincommunity).
-
diff --git a/docs/mindsdb_sql/sql/api/evaluate.mdx b/docs/mindsdb_sql/sql/api/evaluate.mdx
deleted file mode 100644
index c226481442f..00000000000
--- a/docs/mindsdb_sql/sql/api/evaluate.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Evaluate Predictions from ML Models
-sidebarTitle: Evaluate Predictions
----
-
-## Description
-
-The `EVALUATE` statement evaluates predictions based on [available metrics](https://scikit-learn.org/stable/modules/model_evaluation.html).
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-EVALUATE metric_name
-FROM (SELECT real_value AS actual,
- predicted_value AS prediction
- FROM table_name);
-```
-
-Where:
-
-| Name | Description |
-| ----------------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| `metric_name` | It is the name of the metric to be evaluated chosen from [here](https://scikit-learn.org/stable/modules/model_evaluation.html). |
-| `real_value` | It is the real value that will be compared with the predicted value. |
-| `predicted_value` | It is the value predicted by the model. |
-| `table_name` | It is the table that stores corresponding real and predicted values. |
-
-## Example
-
-This example calculates the mean absolute error.
-
-```sql
-EVALUATE mean_absolute_error
-FROM (SELECT column_name_that_stores_real_value AS actual,
- column_name_that_stores_predicted_value AS prediction
- FROM table);
-```
diff --git a/docs/mindsdb_sql/sql/api/finetune.mdx b/docs/mindsdb_sql/sql/api/finetune.mdx
deleted file mode 100644
index 0d1858d0d5a..00000000000
--- a/docs/mindsdb_sql/sql/api/finetune.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: Finetune a Model
-sidebarTitle: Finetune a Model
----
-
-## Description
-
-The `FINETUNE` statement lets you retrain a model with additional training data.
-
-
-
-
-
-Imagine you have a model that was trained with a certain dataset. Now there is more training data available and you wish to retrain this model with a new dataset. The `FINETUNE` statement lets you partially retrain the model, so it takes less time and resources than the [`RETRAIN`](/sql/api/retrain) statement. In the machine learning literature, this is also referred to as *fine-tuning* a model.
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-FINETUNE [MODEL] project_name.model_name
-FROM [integration_name | project_name]
- (SELECT column_name, ...
- FROM [integration_name. | project_name.]table_name
- [WHERE incremental_column > LAST])
-[USING
- key = value,
- ...];
-```
-
-Where:
-
-| Expressions | Description |
-| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
-| `project_name` | Name of the project where the model resides. |
-| `model_name` | Name of the model to be retrained. |
-| `integration_name` | Name of the integration created using the [`CREATE DATABASE`](/sql/create/database) statement or file upload. |
-| `(SELECT column_name, ... FROM table_name)` | Selecting additional data to be used for retraining. |
-| `WHERE incremental_column > LAST` | Selecting only newly added data to be used to finetune the model. Learn more about the [`LAST` keyword here](/mindsdb_sql/sql/create/jobs#last). |
-| `USING key = value` | Optional. The `USING` clause lets you pass multiple parameters to the `FINETUNE` statement. |
-
-
-**Model Versions**
-
-Every time the model is finetuned or retrained, its new version is created with an incremented version number. Unless overridden, the most recent version becomes active when training completes.
-
-You can query for all model versions like this:
-
-```sql
-SELECT *
-FROM project_name.models;
-```
-
-For more information on managing model versions, check out our docs [here](/sql/api/manage-models-versions).
-
-
-
-While the model is being generated and trained, it is not active. The model becomes active only after it completes generating and training.
-
-
-## Examples
-### Example 1: [OpenAI Model Fine-Tuning](/finetune/openai)
-### Example 2: [Regression Model Fine-Tuning](/finetune/regression)
-### Example 3: [Classification Model Fine-Tuning](/finetune/classification)
diff --git a/docs/mindsdb_sql/sql/api/join.mdx b/docs/mindsdb_sql/sql/api/join.mdx
deleted file mode 100644
index 0a642fd193c..00000000000
--- a/docs/mindsdb_sql/sql/api/join.mdx
+++ /dev/null
@@ -1,144 +0,0 @@
----
-title: Join Models with Tables
-sidebarTitle: Join Models with Tables
----
-
-## Description
-
-The `JOIN` clause combines rows from the database table and the model table on a column defined in its implementation. It is used to make batch predictions, as shown in the examples.
-
-## Syntax
-
-Here is the syntax that lets you join multiple data tables with multiple models to get all predictions at once.
-
-```sql
-SELECT d1.column_name,
- d2.column_name,
- m1.column_name,
- m2.column_name,
- ...
-FROM integration_name.table_name_1 [AS] d1
-[JOIN integration_name.table_name_2 [AS] d2 ON ...]
-[JOIN ...]
-JOIN project_name.model_name_1 [AS] m1
-[JOIN project_name.model_name_2 [AS] m2]
-[JOIN ...]
-[ON d1.input_data = m1.expected_argument];
-```
-
-Where:
-
-| Name | Description |
-| ----------------------------------- | ----------------------------------------------------------------------------- |
-| `integration_name.table_name_1` | Name of the data source table used as input for making predictions. |
-| `integration_name.table_name_2` | Optionally, you can join arbitrary number of data source tables. |
-| `project_name.model_name_1` | Name of the model table used to make predictions. |
-| `project_name.model_name_2` | Optionally, you can join arbitrary number of models. |
-
-### Mapping input data to model arguments
-
-If the input data contains a column named `question` and the model requires an argument named `input`, you can map these columns, as explained below.
-
-We have a model that expects to receive `input`:
-
-```sql
-CREATE MODEL model_name
-PREDICT answer
-USING
- engine = 'openai',
- prompt_template = 'provide answers to an input from a user: {{input}}';
-```
-
-We have an input data table that has the following columns:
-
-```sql
-+----+-------------------------------------------+
-| id | question |
-+----+-------------------------------------------+
-| 1 | How many planets are in the solar system? |
-| 2 | How many stars are in the solar system? |
-+----+-------------------------------------------+
-```
-
-Now if you want to get answers to these questions using the model, you need to join the input data table with the model and map the `question` column onto the `input` argument.
-
-```sql
-SELECT *
-FROM input_table AS d
-JOIN model_name AS m
-ON d.question = m.input;
-```
-
-## Example 1
-
-Let's join the `home_rentals` table with the `home_rentals_model` model using this statement:
-
-```sql
-SELECT t.rental_price AS real_price,
- m.rental_price AS predicted_price,
- t.number_of_rooms, t.number_of_bathrooms,
- t.sqft, t.location, t.days_on_market
-FROM example_db.demo_data.home_rentals AS t
-JOIN mindsdb.home_rentals_model AS m
-LIMIT 20;
-```
-
-On execution, we get:
-
-```sql
-+------------+-----------------+-----------------+---------------------+------+----------+----------------+
-| real_price | predicted_price | number_of_rooms | number_of_bathrooms | sqft | location | days_on_market |
-+------------+-----------------+-----------------+---------------------+------+----------+----------------+
-| 3901 | 3886 | 2 | 1 | 917 | great | 13 |
-| 2042 | 2007 | 0 | 1 | 194 | great | 10 |
-| 1871 | 1865 | 1 | 1 | 543 | poor | 18 |
-| 3026 | 3020 | 2 | 1 | 503 | good | 10 |
-| 4774 | 4748 | 3 | 2 | 1066 | good | 13 |
-| 4382 | 4388 | 3 | 2 | 816 | poor | 25 |
-| 2269 | 2272 | 0 | 1 | 461 | great | 6 |
-| 2284 | 2272 | 1 | 1 | 333 | great | 6 |
-| 5420 | 5437 | 3 | 2 | 1124 | great | 9 |
-| 5016 | 4998 | 3 | 2 | 1204 | good | 7 |
-| 1421 | 1427 | 0 | 1 | 538 | poor | 43 |
-| 3476 | 3466 | 2 | 1 | 890 | good | 6 |
-| 5271 | 5255 | 3 | 2 | 975 | great | 6 |
-| 3001 | 2993 | 2 | 1 | 564 | good | 13 |
-| 4682 | 4692 | 3 | 2 | 953 | good | 10 |
-| 1783 | 1738 | 1 | 1 | 493 | poor | 24 |
-| 1548 | 1543 | 1 | 1 | 601 | poor | 47 |
-| 1492 | 1491 | 0 | 1 | 191 | good | 12 |
-| 2431 | 2419 | 0 | 1 | 511 | great | 1 |
-| 4237 | 4257 | 3 | 2 | 916 | poor | 36 |
-+------------+-----------------+-----------------+---------------------+------+----------+----------------+
-```
-
-## Example 2
-
-Let's query a time series model using this statement:
-
-```sql
-SELECT m.saledate as date,
- m.ma AS forecast
-FROM mindsdb.house_sales_model AS m
-JOIN example_db.demo_data.house_sales AS t
-WHERE t.saledate > LATEST
-AND t.type = 'house'
-LIMIT 4;
-```
-
-On execution, we get:
-
-```sql
-+----------+------------------+
-|date |forecast |
-+----------+------------------+
-|2019-12-31|517506.31349071994|
-|2019-12-31|627822.6592658638 |
-|2019-12-31|953426.9545788583 |
-|2019-12-31|767252.4205039773 |
-+----------+------------------+
-```
-
-
-Follow [this doc page](/generative-ai-tables#working-with-generative-ai-tables) to see examples of joining multiple data table with multiple models.
-
diff --git a/docs/mindsdb_sql/sql/api/manage-models-versions.mdx b/docs/mindsdb_sql/sql/api/manage-models-versions.mdx
deleted file mode 100644
index e2fb63135c0..00000000000
--- a/docs/mindsdb_sql/sql/api/manage-models-versions.mdx
+++ /dev/null
@@ -1,104 +0,0 @@
----
-title: Manage Model Versions
-sidebarTitle: Manage Model Versions
----
-
-## Creating a Model
-
-To create a model, use the [`CREATE MODEL`](/sql/create/model/) statement.
-
-```sql
-CREATE MODEL mindsdb.home_rentals
-FROM example_db
- (SELECT * FROM demo_data.home_rentals)
-PREDICT rental_price
-USING engine = 'my_ml_engine',
- tag = 'my model';
-```
-
-Now, your model has one version. You can verify by querying the `models` table.
-
-```sql
-DESCRIBE MODEL home_rentals;
-```
-
-On execution, we get:
-
-```sql
-+------------+------------+-------+------+-------+--------+--------+------------+-------------+---------------+------+------------------------------------+---------------------------------------+----------------------+---------------------+------+--------------------------+-------------+
-|NAME |ENGINE |PROJECT|ACTIVE|VERSION|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY |TRAINING_OPTIONS |CURRENT_TRAINING_PHASE|TOTAL_TRAINING_PHASES|TAG |CREATED_AT |TRAINING_TIME|
-+------------+------------+-------+------+-------+--------+--------+------------+-------------+---------------+------+------------------------------------+---------------------------------------+----------------------+---------------------+------+--------------------------+-------------+
-|home_rentals|my_ml_engine|mindsdb|true |1 |complete|0.999 |rental_price|up_to_date |22.11.3.2 |[NULL]|SELECT * FROM demo_data.home_rentals|{'target': 'rental_price', 'using': {}}|5 |5 |[NULL]|2024-02-07 16:01:04.990958|19.946 |
-+------------+------------+-------+------+-------+--------+--------+------------+-------------+---------------+------+------------------------------------+---------------------------------------+----------------------+---------------------+------+--------------------------+-------------+
-```
-
-## Retraining a Model
-
-To retrain a model, use the [`RETRAIN`](/sql/api/retrain/) statement.
-
-```sql
-RETRAIN mindsdb.home_rentals;
-```
-
-Let's query for the model versions again.
-
-```sql
-DESCRIBE MODEL home_rentals;
-```
-
-On execution, we get:
-
-```sql
-+------------+------------+-------+------+-------+--------+--------+------------+-------------+---------------+------+------------------------------------+---------------------------------------+----------------------+---------------------+------+--------------------------+-------------+
-|NAME |ENGINE |PROJECT|ACTIVE|VERSION|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY |TRAINING_OPTIONS |CURRENT_TRAINING_PHASE|TOTAL_TRAINING_PHASES|TAG |CREATED_AT |TRAINING_TIME|
-+------------+------------+-------+------+-------+--------+--------+------------+-------------+---------------+------+------------------------------------+---------------------------------------+----------------------+---------------------+------+--------------------------+-------------+
-|home_rentals|my_ml_engine|mindsdb|true |1 |complete|0.999 |rental_price|up_to_date |22.11.3.2 |[NULL]|SELECT * FROM demo_data.home_rentals|{'target': 'rental_price', 'using': {}}|5 |5 |[NULL]|2024-02-07 16:01:04.990958|19.946 |
-|home_rentals|my_ml_engine|mindsdb|true |2 |complete|0.999 |rental_price|up_to_date |22.11.3.2 |[NULL]|SELECT * FROM demo_data.home_rentals|{'target': 'rental_price', 'using': {}}|5 |5 |[NULL]|2024-02-07 17:01:04.990958|21.923 |
-+------------+------------+-------+------+-------+--------+--------+------------+-------------+---------------+------+------------------------------------+---------------------------------------+----------------------+---------------------+------+--------------------------+-------------+
-```
-
-## Using Active Model Version
-
-To use the currently active model version, run this query:
-
-```sql
-SELECT *
-FROM mindsdb.home_rentals AS p
-JOIN example_db.demo_data.home_rentals AS d;
-```
-
-## Using Specific Model Version
-
-To use a specific model version, even if it is set to inactive, run this query:
-
-```sql
-SELECT *
-FROM mindsdb.home_rentals.1 AS p
-JOIN example_db.demo_data.home_rentals AS d;
-```
-
-## Setting Model Version as Active
-
-To set a specific model version as active, run the below statement:
-
-```sql
-SET model_active = home_rentals.1;
-```
-
-## Deleting Specific Model Version
-
-To delete a specific model version, run the below statement:
-
-```sql
-DROP MODEL home_rentals.2
-```
-
-Please note that you cannot delete the version that is active.
-
-## Deleting All Model Versions
-
-To delete all models version, run the `DROP MODEL` statement:
-
-```sql
-DROP MODEL mindsdb.home_rentals;
-```
diff --git a/docs/mindsdb_sql/sql/api/retrain.mdx b/docs/mindsdb_sql/sql/api/retrain.mdx
deleted file mode 100644
index 7576206a182..00000000000
--- a/docs/mindsdb_sql/sql/api/retrain.mdx
+++ /dev/null
@@ -1,184 +0,0 @@
----
-title: Retrain a Model
-sidebarTitle: Retrain a Model
----
-
-## Description
-
-The `RETRAIN` statement is used to retrain the already trained predictors with the new data. The predictor is updated to leverage the new data in optimizing its predictive capabilities.
-
-Retraining takes at least as much time as the training process of the predictor did because now the dataset used to retrain has new or updated data in addition to the *old* data.
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-RETRAIN [MODEL] project_name.predictor_name
-[FROM [integration_name | project_name]
- (SELECT column_name, ...
- FROM [integration_name. | project_name.]table_name)
-PREDICT target_name
-USING engine = 'engine_name',
- tag = 'tag_name',
- active = 0/1];
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (0.058 sec)
-```
-
-Where:
-
-| Expressions | Description |
-| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `project_name` | Name of the project where the model resides. |
-| `predictor_name` | Name of the model to be retrained. |
-| `integration_name` | Optional. Name of the integration created using the [`CREATE DATABASE`](/sql/create/database/) statement or [file upload](/sql/create/file/). |
-| `(SELECT column_name, ... FROM table_name)` | Optional. Selecting data to be used for training and validation. |
-| `target_column` | Optional. Column to be predicted. |
-| `engine_name` | You can optionally provide an ML engine, based on which the model is retrained. |
-| `tag_name` | You can optionally provide a tag that is visible in the `training_options` column of the `mindsdb.models` table. |
-| `active` | Optional. Setting it to `0` causes the retrained version to be inactive. And setting it to `1` causes the retrained version to be active. |
-
-
- **Model Versions**
- Every time the model is retrained, its new version is created with the incremented version number.
-
- You can query for all model versions like this:
-
- ```sql
- SELECT *
- FROM project_name.models;
- ```
-
- For more information on managing model versions, check out our [docs here](/sql/api/manage-models-versions/).
-
-
-## When to `RETRAIN` the Model?
-
-It is advised to `RETRAIN` the predictor whenever the `update_status` column value from the `mindsdb.models` table is set to `available`.
-
-Here is when the `update_status` column value is set to `available`:
-
-- When the new version of MindsDB is available that causes the predictor to become obsolete.
-- When the new data is available in the table that was used to train the predictor.
-
-To find out whether you need to retrain your model, query the `mindsdb.models` table and look for the `update_status` column.
-
-Here are the possible values of the `update_status` column:
-
-| Name | Description |
-| ------------- | ------------------------------------------------------------------------------------ |
-| `available` | It indicates that the model should be updated. |
-| `updating` | It indicates that the retraining process of the model takes place. |
-| `up_to_date` | It indicates that your model is up to date and does not need to be retrained. |
-
-Let's run the query.
-
-```sql
-SELECT name, update_status
-FROM mindsdb.models
-WHERE name = 'predictor_name';
-```
-
-On execution, we get:
-
-```sql
-+------------------+---------------+
-| name | update_status |
-+------------------+---------------+
-| predictor_name | up_to_date |
-+------------------+---------------+
-```
-
-Where:
-
-| Name | Description |
-| ------------------ | ------------------------------------------------------------ |
-| `predictor_name` | Name of the model to be retrained. |
-| `update_status` | Column informing whether the model needs to be retrained. |
-
-Alternatively, use the `DESCRIBE` command as below:
-
-```sql
-DESCRIBE MODEL predictor_name;
-```
-
-## Example
-
-Let's look at an example using the `home_rentals_model` model.
-
-First, we check the status of the predictor.
-
-```sql
-SELECT name, update_status
-FROM mindsdb.models
-WHERE name = 'home_rentals_model';
-```
-
-On execution, we get:
-
-```sql
-+--------------------+---------------+
-| name | update_status |
-+--------------------+---------------+
-| home_rentals_model | available |
-+--------------------+---------------+
-```
-
-Alternatively, use the `DESCRIBE` command as below:
-
-```sql
-DESCRIBE MODEL home_rentals_model;
-```
-
-The `available` value of the `update_status` column informs us that we should retrain the model.
-
-```sql
-RETRAIN mindsdb.home_rentals_model;
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (0.058 sec)
-```
-
-Now, let's check the status again.
-
-```sql
-SELECT name, update_status
-FROM mindsdb.models
-WHERE name = 'home_rentals_model';
-```
-
-On execution, we get:
-
-```sql
-+--------------------+---------------+
-| name | update_status |
-+--------------------+---------------+
-| home_rentals_model | updating |
-+--------------------+---------------+
-```
-
-And after the retraining process is completed:
-
-```sql
-SELECT name, update_status
-FROM mindsdb.models
-WHERE name = 'home_rentals_model';
-```
-
-On execution, we get:
-
-```sql
-+--------------------+---------------+
-| name | update_status |
-+--------------------+---------------+
-| home_rentals_model | up_to_date |
-+--------------------+---------------+
-```
diff --git a/docs/mindsdb_sql/sql/create/ml-engine.mdx b/docs/mindsdb_sql/sql/create/ml-engine.mdx
deleted file mode 100644
index ece54f7916e..00000000000
--- a/docs/mindsdb_sql/sql/create/ml-engine.mdx
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: Configure an ML Engine
-sidebarTitle: Configure an ML Engine
----
-
-MindsDB integrates with numerous AI and ML frameworks that are made available via the AI/ML engines. The AI/ML engines are used to create models based on the particular AI/ML framework.
-
-## Description
-
-The `CREATE ML_ENGINE` command creates an ML engine that uses one of the available AI/ML handlers.
-
-## Syntax
-
-Before creating an AI/ML engine, make sure that the AI/ML handler of your interest is available by querying for the ML handlers.
-
-```sql
-SELECT *
-FROM information_schema.handlers;
--- or
-SHOW HANDLERS;
-```
-
-
-If you can’t find the AI/ML handler of your interest, you can contribute by [building a new AI/ML handler](/contribute/ml-handlers).
-
-Please note that in the process of contributing new AI.ML engines, ML engines and/or their tests will only run correctly if all dependencies listed in the `requirements.txt` file are installed beforehand.
-
-
-If you find the AI/ML handler of your interest, then you can create an AI/ML engine using this command:
-
-```sql
-CREATE ML_ENGINE [IF NOT EXISTS] ml_engine_name
-FROM handler_name
-[USING argument_key = argument_value];
-```
-
-Please replace `ml_engine_name`, `handler_name`, and optionally, `argument_key` and `argument_value` with the real values.
-
-
-Please do not use the same `ml_engine_name` as the `handler_name` to avoid issue while dropping the ML engine.
-
-
-To verify that your AI/ML engine was successfully created, run the command below:
-
-```sql
-SELECT *
-FROM information_schema.ml_engines;
--- or
-SHOW ML_ENGINES;
-```
-
-If you want to drop an ML engine, run the command below:
-
-```sql
-DROP ML_ENGINE ml_engine_name;
-```
-
-## Example
-
-Let's check what AI/ML handlers are currently available:
-
-```sql
-SHOW HANDLERS;
-```
-
-On execution, we get:
-
-```sql
-+-------------------+--------------------+-------------------------------------------------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------+----------------+-----------------------------------------------------------------------------+
-| NAME | TITLE | DESCRIPTION | VERSION | CONNECTION_ARGS | IMPORT_SUCCESS | IMPORT_ERROR |
-+-------------------+--------------------+-------------------------------------------------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------+----------------+-----------------------------------------------------------------------------+
-| "ray_serve" | "RayServe" | "MindsDB handler for Ray Serve" | "0.0.1" | "[NULL]" | "true" | "[NULL]" |
-| "autosklearn" | "Auto-Sklearn" | "MindsDB handler for Auto-Sklearn" | "0.0.2" | "[NULL]" | "false" | "No module named 'autosklearn'" |
-| "mlflow" | "MLFlow" | "MindsDB handler for MLflow" | "0.0.2" | "[NULL]" | "false" | "No module named 'mlflow'" |
-| "openai" | "OpenAI" | "MindsDB handler for OpenAI" | "0.0.1" | "[NULL]" | "true" | "[NULL]" |
-| "merlion" | "Merlion" | "MindsDB handler for Merlion" | "0.0.1" | "[NULL]" | "false" | "object.__init__() takes exactly one argument (the instance to initialize)" |
-| "byom" | "BYOM" | "MindsDB handler for BYOM" | "0.0.1" | "{'code': {'type': 'path', 'description': 'The path to model code'}, 'modules': {'type': 'path', 'description': 'The path to model requirements'}}" | "true" | "[NULL]" |
-| "huggingface_api" | "Hugging Face API" | "MindsDB handler for Auto-Sklearn" | "0.0.2" | "[NULL]" | "false" | "No module named 'hugging_py_face'" |
-| "huggingface" | "Hugging Face" | "MindsDB handler for Higging Face" | "0.0.1" | "[NULL]" | "true" | "[NULL]" |
-| "TPOT" | "Tpot" | "MindsDB handler for TPOT " | "0.0.2" | "[NULL]" | "false" | "No module named 'tpot'" |
-| "langchain" | "LangChain" | "MindsDB handler for LangChain" | "0.0.1" | "[NULL]" | "true" | "[NULL]" |
-| "autokeras" | "Autokeras" | "MindsDB handler for Autokeras AutoML" | "0.0.1" | "[NULL]" | "false" | "No module named 'autokeras'" |
-+-------------------+--------------------+-------------------------------------------------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------+----------------+-----------------------------------------------------------------------------+
-```
-
-Here we create an AI/ML engine using the OpenAI handler and providing an OpenAI API key in the `USING` clause.
-
-```sql
-CREATE ML_ENGINE my_openai_engine
-FROM openai
-USING
- openai_api_key = '';
-```
-
-On execution, we get:
-
-```sql
-Query successfully completed
-```
-
-Now let's verify that our ML engine exists.
-
-```sql
-SHOW ML_ENGINES;
-```
-
-On execution, we get:
-
-```sql
-+-------------------+------------+------------------------------------------------------+
-|NAME |HANDLER |CONNECTION_DATA |
-+-------------------+------------+------------------------------------------------------+
-|huggingface |huggingface |{"key":["password"],"value":[""]} |
-|openai |openai |{"key":["password"],"value":[""]} |
-|my_openai_engine |openai |{"key":["openai_api_key","password"],"value":["",""]} |
-+-------------------+------------+------------------------------------------------------+
-```
-
-Please note that the `USING` clause is optional, as it depends on the AI/ML handler whether it requires some arguments or not. Here, we created an OpenAI engine and provided own API key.
-
-After creating your ML engine, you can create a model like this:
-
-```sql
-CREATE MODEL my_model
-PREDICT answer
-USING
- engine = 'my_openai_engine',
- prompt_template = 'ask a question to a model'
-```
-
-The `USING` clause specifies the ML engine to be used for creating a new model.
diff --git a/docs/mindsdb_sql/sql/create/model.mdx b/docs/mindsdb_sql/sql/create/model.mdx
deleted file mode 100644
index a68ed13da10..00000000000
--- a/docs/mindsdb_sql/sql/create/model.mdx
+++ /dev/null
@@ -1,285 +0,0 @@
----
-title: Create, Train, and Deploy a Model
-sidebarTitle: Create, Train, and Deploy a Model
----
-
-## Description
-
-The `CREATE MODEL` statement creates and trains a machine learning (ML) model.
-
-
- Please note that the `CREATE PREDICTOR` statement is equivalent to the `CREATE MODEL` statement.
- We are transitioning to the `CREATE MODEL` statement, but the `CREATE PREDICTOR` statement still works.
-
-
-## Syntax
-
-### Overview
-
-Here is the full syntax:
-
-```sql
-CREATE [OR REPLACE] MODEL [IF NOT EXISTS] project_name.predictor_name
-
-[FROM [integration_name | project_name]
- (SELECT [sequential_column,] [partition_column,] column_name, ...
- FROM [integration_name. | project_name.]table_name
- [JOIN model_name])]
-
-PREDICT target_column
-
-[ORDER BY sequential_column]
-[GROUP BY partition_column]
-[WINDOW int]
-[HORIZON int]
-
-[USING engine = 'engine_name',
- tag = 'tag_name',
- ...];
-```
-
-Where:
-
-| Expressions | Description |
-| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
-| `project_name` | Name of the project where the model is created. By default, the `mindsdb` project is used. |
-| `predictor_name` | Name of the model to be created. |
-| `integration_name` | Name of the integration created using the [`CREATE DATABASE`](/sql/create/database/) statement or [file upload](/sql/create/file/). |
-| `(SELECT column_name, ... FROM table_name)` | Selecting data to be used for training and validation. |
-| `target_column` | Column to be predicted. |
-| `ORDER BY sequential_column` | Used in time series models. The column by which time series is ordered. It can be a date or anything that defines the sequence of events. |
-| `GROUP BY partition_column` | Used in time series models. It is optional. The column by which rows that make a partition are grouped. For example, if you want to forecast the inventory for all items in the store, you can partition the data by `product_id`, so each distinct `product_id` has its own time series. |
-| `WINDOW int` | Used in time series models. The number of rows to look back at when making a prediction. It comes after the rows are ordered by the column defined in `ORDER BY` and split into groups by the column(s) defined in `GROUP BY`. The `WINDOW 10` syntax could be interpreted as "Always use the previous 10 rows". |
-| `HORIZON int` | Used in time series models. It is optional. It defines the number of future predictions (it is 1 by default). |
-| `engine_name` | You can provide an ML engine, based on which the model is created. |
-| `tag_name` | You can optionally provide a tag that is visible in the `training_options` column of the `mindsdb.models` table. |
-
-### Regression Models
-
-Here is the syntax for regression models:
-
-```sql
-CREATE MODEL project_name.predictor_name
-FROM integration_name
- (SELECT column_name, ... FROM table_name)
-PREDICT target_column
-[USING engine = 'engine_name',
- tag = 'tag_name'];
-```
-
-
-Please note that the `FROM` clause is mandatory here.
-
-
-The `target_column` that will be predicted is a numerical value. The prediction values are not limited to a defined set of values, but can be any number from the given range of numbers.
-
-### Classification Models
-
-Here is the syntax for classification models:
-
-```sql
-CREATE MODEL project_name.predictor_name
-FROM integration_name
- (SELECT column_name, ... FROM table_name)
-PREDICT target_column
-[USING engine = 'engine_name',
- tag = 'tag_name'];
-```
-
-
-Please note that the `FROM` clause is mandatory here.
-
-
-The `target_column` that will be predicted is a string value. The prediction values are limited to a defined set of values, such as `Yes` and `No`.
-
-### Time Series Models
-
-Here is the syntax for time series models:
-
-```sql
-CREATE MODEL project_name.predictor_name
-FROM integration_name
- (SELECT sequential_column, partition_column,
- other_column, target_column
- FROM table_name)
-PREDICT target_column
-
-ORDER BY sequential_column
-[GROUP BY partition_column]
-
-WINDOW int
-[HORIZON int]
-
-[USING engine = 'engine_name',
- tag = 'tag_name'];
-```
-
-
-Please note that the `FROM` clause is mandatory here.
-
-
-Due to the nature of time series forecasting, you need to use the [`JOIN`](/sql/api/join) statement and join the data table with the model table to get predictions.
-
-### NLP Models
-
-Here is the syntax for using external models within MindsDB:
-
-```sql
-CREATE MODEL project_name.model_name
-PREDICT PRED
-USING
- engine = 'engine_name',
- task = 'task_name',
- model_name = 'hub_model_name',
- input_column = 'input_column_name',
- labels = ['label1', 'label2'];
-```
-
-
-Please note that you don't need to define the `FROM` clause here. Instead, the `input_column` is defined in the `USING` clause.
-
-
-It allows you to bring an external model, for example, from the Hugging Face model hub, and use it within MindsDB.
-
-### Large Language Models (LLM)
-
-MindsDB integrates with [numerous LLM providers listed here](/integrations/ai-overview#large-language-models).
-
-Commonly, LLMs support the `prompt_template` parameter that stores the message/instruction to the model.
-
-```sql
-CREATE MODEL project_name.model_name
-PREDICT answer
-USING
- engine = 'llm_engine_name',
- prompt_template = 'answer users questions in a helpful way: {{questions}}';
-```
-
-The `prompt_template` parameter instructs the model what output should be generated. It can include variables enclosed in double curly braces, which will be replaced with data values upon joining the model with the input data.
-
-## Example
-
-### Regression Models
-
-Here is an example for regression models that uses data from a database:
-
-```sql
-CREATE MODEL mindsdb.home_rentals_model
-FROM example_db
- (SELECT * FROM demo_data.home_rentals)
-PREDICT rental_price
-USING engine = 'engine_name',
- tag = 'my home rentals model';
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-Visit our [tutorial on regression models](/sql/tutorials/home-rentals/) to see the full example.
-
-### Classification Models
-
-Here is an example for classification models that uses data from a file:
-
-```sql
-CREATE MODEL mindsdb.customer_churn_predictor
-FROM files
- (SELECT * FROM churn)
-PREDICT Churn
-USING engine = 'engine_name',
- tag = 'my customers model';
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-Visit our [tutorial on classification models](/sql/tutorials/customer-churn/) to see the full example.
-
-### Time Series Models
-
-Here is an example for time series models that uses data from a file:
-
-```sql
-CREATE MODEL mindsdb.house_sales_predictor
-FROM files
- (SELECT * FROM house_sales)
-PREDICT MA
-ORDER BY saledate
-GROUP BY bedrooms
--- the target column to be predicted stores one row per quarter
-WINDOW 8 -- using data from the last two years to make forecasts (last 8 rows)
-HORIZON 4; -- making forecasts for the next year (next 4 rows)
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-Visit our [tutorial on time series models](/sql/tutorials/house-sales-forecasting/) to see the full example.
-
-### NLP Models
-
-Here is an example for the Hugging Face model:
-
-```sql
-CREATE MODEL mindsdb.spam_classifier
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'mrm8488/bert-tiny-finetuned-sms-spam-detection',
- input_column = 'text_spammy',
- labels = ['ham', 'spam'];
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-### Large Language Models (LLM)
-
-Here is an example using the OpenAI engine:
-
-```sql
-CREATE MODEL sentiment_classifier
-PREDICT sentiment
-USING
- engine = 'openai_engine',
- prompt_template = 'analyze customer reviews and assign sentiment as positive or negative or neutral: {{review}}';
-```
-
-Note that the `prompt_template` parameter stores instructions that the model will follow to generate output.
-
-Visit our [page no how to bring Hugging Face models into MindsDB](/custom-model/huggingface/) for more details.
-
-
-
-
- **Checking Model Status**
-
- After you run the `CREATE MODEL` statement, you can check the status of the training process by querying the `mindsdb.models` table.
-
- ```sql
- DESCRIBE predictor_name;
- ```
-
- On execution, we get:
-
- ```sql
- +---------------+-----------------------------------+----------------------------------------+-----------------------+-------------+---------------+-----+-----------------+----------------+
- |name |status |accuracy |predict |update_status|mindsdb_version|error|select_data_query|training_options|
- +---------------+-----------------------------------+----------------------------------------+-----------------------+-------------+---------------+-----+-----------------+----------------+
- |predictor_name |generating or training or complete |number depending on the accuracy metric |column_to_be_predicted |up_to_date |22.7.5.0 | | | |
- +---------------+-----------------------------------+----------------------------------------+-----------------------+-------------+---------------+-----+-----------------+----------------+
- ```
-
diff --git a/docs/mindsdb_sql/sql/drop/ml-engine.mdx b/docs/mindsdb_sql/sql/drop/ml-engine.mdx
deleted file mode 100644
index 738252ad5ca..00000000000
--- a/docs/mindsdb_sql/sql/drop/ml-engine.mdx
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Remove an ML Engine
-sidebarTitle: Remove an ML Engine
----
-
-## Description
-
-The `DROP ML_ENGINE` statement deletes the ML engine.
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-DROP ML_ENGINE [IF EXISTS] ml_engine_name;
-```
-
-On execution, we get:
-
-```sql
-Query successfully completed
-```
\ No newline at end of file
diff --git a/docs/mindsdb_sql/sql/drop/model.mdx b/docs/mindsdb_sql/sql/drop/model.mdx
deleted file mode 100644
index 045dde9933c..00000000000
--- a/docs/mindsdb_sql/sql/drop/model.mdx
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: Remove a Model
-sidebarTitle: Remove a Model
----
-
-## Description
-
-The `DROP MODEL` statement deletes the model table.
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-DROP MODEL [IF EXISTS] predictor_name;
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (0.058 sec)
-```
-
-Where:
-
-| Name | Description |
-| ------------------ | -------------------------------- |
-| `predictor_name` | Name of the model to be deleted. |
-
-## Example
-
-Let's list all the available predictor tables.
-
-```sql
-SHOW MODELS;
-```
-
-On execution, we get:
-
-```sql
-+---------------------+
-| name |
-+---------------------+
-| other_model |
-| home_rentals_model |
-+---------------------+
-```
-
-Now we delete the `home_rentals_model` table.
-
-```sql
-DROP MODEL home_rentals_model;
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (0.058 sec)
-```
-
-We can check if the deletion was successful by querying the `mindsdb.models`
-table again.
-
-```sql
-SHOW MODELS;
-```
-
-On execution, we get:
-
-```sql
-+---------------------+
-| name |
-+---------------------+
-| other_model |
-+---------------------+
-```
diff --git a/docs/mindsdb_sql/sql/get-batch-predictions.mdx b/docs/mindsdb_sql/sql/get-batch-predictions.mdx
deleted file mode 100644
index 921510d217c..00000000000
--- a/docs/mindsdb_sql/sql/get-batch-predictions.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Get Batch Predictions
-sidebarTitle: Get Batch Predictions
----
-
-## Description
-
-The `SELECT` statement fetches predictions from the model table. The data is returned on the fly and the result set is not persisted.
-
-But there are ways to save predictions data! You can save your predictions as a view using the [`CREATE VIEW`](/sql/create/view/) statement. Please note that a view is a saved query and does not store data like a table. Another way is to create a table using the [`CREATE TABLE`](/sql/create/table/) statement or insert your predictions into an existing table using the [`INSERT INTO`](/sql/api/insert/) statement.
-
-## Syntax
-
-Here is the syntax for making batch predictions by joining one or more data source tables with one or more model tables:
-
-```sql
-SELECT t1.column, t2.column, m1.target, m2.target
-FROM integration_name.table_name1 AS t1
-JOIN integration_name.table_name2 AS t2 ON t1.column = t2.column
-JOIN ...
-JOIN mindsdb.model_name1 AS m1
-JOIN mindsdb.model_name2 AS m2
-JOIN ...
-[ON t1.input_data = m1.expected_argument]
-WHERE m1.parameter = 'value'
-AND m2.parameter = 'value';
-```
-
-Where:
-
-* There are the data tables that provide input to the models: `integration_name.table_name1`, `integration_name.table_name2`.
-* These are the AI tables: `mindsdb.model_name1`, `mindsdb.model_name2`.
-
-Note that you can provide input to the models from the data tables and also in the `WHERE` clause.
-
-
-When querying for predictions, you can specify the `partition_size` parameter to split data into partitions and run prediction on different workers. Note that the [ML task queue](/setup/custom-config#overview-of-config-parameters) needs to be enabled to use this parameter.
-
-To use the `partition_size` parameter, provide it in the `USING` clause, specifying the partition size, like this:
-
-```
-...
-USING partition_size=100
-```
-
-
-
-Follow [this doc page](/generative-ai-tables) to learn more about AI Tables.
-
-
-## Example
-
-Let's make bulk predictions to predict the `rental_price` value using the `home_rentals_model` model joined with the data source table.
-
-```sql
-SELECT t.sqft, t.location, t.neighborhood, t.days_on_market, t.rental_price AS real_price,
- m.rental_price AS predicted_rental_price
-FROM example_db.demo_data.home_rentals AS t
-JOIN mindsdb.home_rentals_model AS m
-LIMIT 5;
-```
-
-On execution, we get:
-
-```sql
-+-------+----------+-----------------+----------------+--------------+-----------------------------+
-| sqft | location | neighborhood | days_on_market | real_price | predicted_rental_price |
-+-------+----------+-----------------+----------------+--------------+-----------------------------+
-| 917 | great | berkeley_hills | 13 | 3901 | 3886 |
-| 194 | great | berkeley_hills | 10 | 2042 | 2007 |
-| 543 | poor | westbrae | 18 | 1871 | 1865 |
-| 503 | good | downtown | 10 | 3026 | 3020 |
-| 1066 | good | thowsand_oaks | 13 | 4774 | 4748 |
-+-------+----------+-----------------+----------------+--------------+-----------------------------+
-```
-
-
-Follow [this doc page](/generative-ai-tables#working-with-generative-ai-tables) to see examples of joining multiple data table with multiple models.
-
diff --git a/docs/mindsdb_sql/sql/get-single-prediction.mdx b/docs/mindsdb_sql/sql/get-single-prediction.mdx
deleted file mode 100644
index ac69f5e4fb6..00000000000
--- a/docs/mindsdb_sql/sql/get-single-prediction.mdx
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: Get a Single Prediction
-sidebarTitle: Get a Single Prediction
----
-
-## Description
-
-The `SELECT` statement fetches predictions from the model table. The data is returned on the fly and the result set is not persisted.
-
-But there are ways to save predictions data! You can save your predictions as a view using the [`CREATE VIEW`](/sql/create/view/) statement. Please note that a view is a saved query and does not store data like a table. Another way is to create a table using the [`CREATE TABLE`](/sql/create/table/) statement or insert your predictions into an existing table using the [`INSERT INTO`](/sql/api/insert/) statement.
-
-## Syntax
-
-Here is the syntax for fetching a single prediction from the model table:
-
-```sql
-SELECT target_name, target_name_explain
-FROM mindsdb.predictor_name
-WHERE column_name = value
-AND column_name = value;
-```
-
-
- **Grammar Matters**
-
- Here are some points to keep in mind while writing queries in MindsDB:
- 1. The `column_name = value` pairs may be joined by `AND` or `OR` keywords.
- 2. Do not use any quotations for numerical values.
- 3. Use single quotes for strings.
- 4. The tables and column names are case sensitive.
-
-
-On execution, we get:
-
-```sql
-+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| target_name | target_name_explain |
-+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| predicted_value | {"predicted_value": 4394, "confidence": 0.99, "anomaly": null, "truth": null, "confidence_lower_bound": 4313, "confidence_upper_bound": 4475} |
-+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Where:
-
-| Name | Description |
-| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `target_name` | Name of the column to be predicted. |
-| `target_name_explain` | Object of the JSON type that contains the `predicted_value` and additional information such as `confidence`, `anomaly`, `truth`, `confidence_lower_bound`, `confidence_upper_bound`. |
-| `predictor_name` | Name of the model used to make the prediction. |
-| `WHERE column_name = value AND ...` | `WHERE` clause used to pass the data values for which the prediction is made.|
-
-## Example
-
-Let's predict the `rental_price` value using the `home_rentals_model` model for the property having `sqft=823`, `location='good'`, `neighborhood='downtown'`, and `days_on_market=10`.
-
-```sql
-SELECT sqft, location, neighborhood, days_on_market, rental_price, rental_price_explain
-FROM mindsdb.home_rentals_model1
-WHERE sqft=823
-AND location='good'
-AND neighborhood='downtown'
-AND days_on_market=10;
-```
-
-On execution, we get:
-
-```sql
-+-------+----------+--------------+----------------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| sqft | location | neighborhood | days_on_market | rental_price | rental_price_explain |
-+-------+----------+--------------+----------------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| 823 | good | downtown | 10 | 4394 | {"predicted_value": 4394, "confidence": 0.99, "anomaly": null, "truth": null, "confidence_lower_bound": 4313, "confidence_upper_bound": 4475} |
-+-------+----------+--------------+----------------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-```
diff --git a/docs/mindsdb_sql/sql/list-ml-handlers.mdx b/docs/mindsdb_sql/sql/list-ml-handlers.mdx
deleted file mode 100644
index 830d860be74..00000000000
--- a/docs/mindsdb_sql/sql/list-ml-handlers.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: List ML Handlers
-sidebarTitle: List ML Handlers
----
-
-## Description
-
-The `SHOW HANDLERS` command lists all available handlers. The `WHERE` clause filter handlers by the type (data or ML).
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-SHOW HANDLERS
-WHERE type = 'ml';
-```
diff --git a/docs/mindsdb_sql/sql/show-ml-engines.mdx b/docs/mindsdb_sql/sql/show-ml-engines.mdx
deleted file mode 100644
index bc740ba17d5..00000000000
--- a/docs/mindsdb_sql/sql/show-ml-engines.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: List ML Engines
-sidebarTitle: List ML Engines
----
-
-## Description
-
-The `SHOW ML_ENGINES` statement lists all created ML engines that can be used to create models.
-
-## Syntax
-
-Here is how to list all created ML engines:
-
-```sql
-SHOW ML_ENGINES;
-```
diff --git a/docs/mindsdb_sql/sql/show-models.mdx b/docs/mindsdb_sql/sql/show-models.mdx
deleted file mode 100644
index 94f4ef3f0d2..00000000000
--- a/docs/mindsdb_sql/sql/show-models.mdx
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: List Models
-sidebarTitle: List Models
----
-
-## Description
-
-The `SHOW MODELS` statement lists all models created in MindsDB.
-
-## Syntax
-
-Here is how to list all models:
-
-```sql
-SHOW MODELS;
-```
-
-Alternatively, you can query the `models` table.
-
-```sql
-SELECT * FROM project_name.models;
-```
diff --git a/docs/mindsdb_sql/syntax.mdx b/docs/mindsdb_sql/syntax.mdx
deleted file mode 100644
index 89f888ab29e..00000000000
--- a/docs/mindsdb_sql/syntax.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: MindsDB SQL Syntax
-sidebarTitle: MindsDB SQL Syntax
----
-
-In general, MindsDB SQL attempts to follow the syntax conventions of MySQL and PostgreSQL. The following
-sections describe some common conventions of MindsDB SQL.
-
-## Notation
-
-We adopt the following notation to describe our commands:
-
-- Reserved words are capitalized. For example: SELECT
-- Square brackets `[]` indicate optional clauses
-- Curly brackets `{}` indicate logical or choices with the options separated by `|`. For examples `{x | y | z}`
-- Red denotes required clauses, choices, or identifiers. For readability, statements enclosed in red square or curly
-brackets are black.
-- Square brackets with a separator followed by three ellipses denote repetition of the previous item, separated by the
-separator. For example, `identifier [, ...]` denotes a comma separated list of identifiers.
-
-
- Parentheses `()` are reserved characters of the MindsDB SQL and are not part of the notation. Where present
- parentheses are required unless explicitly wrapped in square brackets.
-
-
-## Single/Double Quotes & Backticks
-
-Identifiers (databases, tables, and column names) with special characters or reserved words must be enclosed with
-backticks "`":
-
-```sql
-SELECT * FROM `select` WHERE `select`.id > 100;
-
-SELECT * FROM `select-DATABASE` WHERE `select-DATABASE`.id > 100;
-```
-
-String values are represented by single and double quotes:
-
-```sql
-SELECT * FROM table_name WHERE table_name.column_name = 'string';
-SELECT * FROM table_name WHERE table_name.column_name = "string";
-```
-
-## Parentheses
-
-SQL statements can be nested with parentheses:
-
-```sql
-SELECT * FROM (SELECT * FROM table_name WHERE table_name.column_name = 'string') ;
-
-```
diff --git a/docs/rest/agents/create-agent.mdx b/docs/rest/agents/create-agent.mdx
deleted file mode 100644
index 19db5a308df..00000000000
--- a/docs/rest/agents/create-agent.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Create an Agent
-openapi: "POST /api/projects/{projectName}/agents"
-sidebarTitle: Create an Agent
----
diff --git a/docs/rest/agents/create-chatbot.mdx b/docs/rest/agents/create-chatbot.mdx
deleted file mode 100644
index cd18d1c30f3..00000000000
--- a/docs/rest/agents/create-chatbot.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Create a Chatbot
-openapi: "POST /api/projects/{projectName}/chatbots"
-sidebarTitle: Create a Chatbot
----
diff --git a/docs/rest/agents/create-skill.mdx b/docs/rest/agents/create-skill.mdx
deleted file mode 100644
index 6771293fff8..00000000000
--- a/docs/rest/agents/create-skill.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Create a Skill
-openapi: "POST /api/projects/{projectName}/skills"
-sidebarTitle: Create a Skill
----
diff --git a/docs/rest/agents/delete-agent.mdx b/docs/rest/agents/delete-agent.mdx
deleted file mode 100644
index a55a4c1c573..00000000000
--- a/docs/rest/agents/delete-agent.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Delete an Agent
-openapi: "DELETE /api/projects/{projectName}/agents/{agentName}"
-sidebarTitle: Delete an Agent
----
diff --git a/docs/rest/agents/delete-chatbot.mdx b/docs/rest/agents/delete-chatbot.mdx
deleted file mode 100644
index 9100a8ed515..00000000000
--- a/docs/rest/agents/delete-chatbot.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Delete a Chatbot
-openapi: "DELETE /api/projects/{projectName}/chatbots/{chatbotName}"
-sidebarTitle: Delete a Chatbot
----
diff --git a/docs/rest/agents/delete-skill.mdx b/docs/rest/agents/delete-skill.mdx
deleted file mode 100644
index 7cdeb98def3..00000000000
--- a/docs/rest/agents/delete-skill.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Delete a Skill
-openapi: "DELETE /api/projects/{projectName}/skills/{skillName}"
-sidebarTitle: Delete a Skill
----
diff --git a/docs/rest/agents/get-agent.mdx b/docs/rest/agents/get-agent.mdx
deleted file mode 100644
index 8822aaaefb9..00000000000
--- a/docs/rest/agents/get-agent.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Get an Agent
-openapi: "GET /api/projects/{projectName}/agents/{agentName}"
-sidebarTitle: Get an Agent
----
diff --git a/docs/rest/agents/get-chatbot.mdx b/docs/rest/agents/get-chatbot.mdx
deleted file mode 100644
index a39fcf7c806..00000000000
--- a/docs/rest/agents/get-chatbot.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Get a Chatbot
-openapi: "GET /api/projects/{projectName}/chatbots/{chatbotName}"
-sidebarTitle: Get a Chatbot
----
diff --git a/docs/rest/agents/get-skill.mdx b/docs/rest/agents/get-skill.mdx
deleted file mode 100644
index ea613922f45..00000000000
--- a/docs/rest/agents/get-skill.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Get a Skill
-openapi: "GET /api/projects/{projectName}/skills/{skillName}"
-sidebarTitle: Get a Skill
----
diff --git a/docs/rest/agents/list-agents.mdx b/docs/rest/agents/list-agents.mdx
deleted file mode 100644
index 4795a351ce7..00000000000
--- a/docs/rest/agents/list-agents.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: List All Agents
-openapi: "GET /api/projects/{projectName}/agents"
-sidebarTitle: List All Agents
----
diff --git a/docs/rest/agents/list-chatbots.mdx b/docs/rest/agents/list-chatbots.mdx
deleted file mode 100644
index 5ceec12c1ba..00000000000
--- a/docs/rest/agents/list-chatbots.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: List All Chatbots
-openapi: "GET /api/projects/{projectName}/chatbots"
-sidebarTitle: List All Chatbots
----
diff --git a/docs/rest/agents/list-skills.mdx b/docs/rest/agents/list-skills.mdx
deleted file mode 100644
index ed5e7fa8dc1..00000000000
--- a/docs/rest/agents/list-skills.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: List All Skills
-openapi: "GET /api/projects/{projectName}/skills"
-sidebarTitle: List All Skills
----
diff --git a/docs/rest/agents/query-agent.mdx b/docs/rest/agents/query-agent.mdx
deleted file mode 100644
index 3e10ca6b9df..00000000000
--- a/docs/rest/agents/query-agent.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Query an Agent
-openapi: "POST /api/projects/{projectName}/agents/{agentName}/completions"
-sidebarTitle: Query an Agent
----
diff --git a/docs/rest/agents/update-agent.mdx b/docs/rest/agents/update-agent.mdx
deleted file mode 100644
index c7c199d6fd0..00000000000
--- a/docs/rest/agents/update-agent.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Update an Agent
-openapi: "PUT /api/projects/{projectName}/agents/{agentName}"
-sidebarTitle: Update an Agent
----
diff --git a/docs/rest/agents/update-chatbot.mdx b/docs/rest/agents/update-chatbot.mdx
deleted file mode 100644
index 728bf4f08f7..00000000000
--- a/docs/rest/agents/update-chatbot.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Update a Chatbot
-openapi: "PUT /api/projects/{projectName}/chatbots/{chatbotName}"
-sidebarTitle: Update a Chatbot
----
diff --git a/docs/rest/agents/update-skill.mdx b/docs/rest/agents/update-skill.mdx
deleted file mode 100644
index 7f97ccc0b0f..00000000000
--- a/docs/rest/agents/update-skill.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Update a Skill
-openapi: "PUT /api/projects/{projectName}/skills/{skillName}"
-sidebarTitle: Update a Skill
----
diff --git a/docs/rest/ml_engines/create.mdx b/docs/rest/ml_engines/create.mdx
deleted file mode 100644
index 1958f034863..00000000000
--- a/docs/rest/ml_engines/create.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Configure an ML Engine
-sidebarTitle: Configure an ML Engine
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/ml_engines/delete.mdx b/docs/rest/ml_engines/delete.mdx
deleted file mode 100644
index 6accb0ed5bc..00000000000
--- a/docs/rest/ml_engines/delete.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Remove an ML Engine
-sidebarTitle: Remove an ML Engine
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/ml_engines/list.mdx b/docs/rest/ml_engines/list.mdx
deleted file mode 100644
index 6f1c67d4843..00000000000
--- a/docs/rest/ml_engines/list.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: List ML Engines
-sidebarTitle: List ML Engines
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/models/delete-model.mdx b/docs/rest/models/delete-model.mdx
deleted file mode 100644
index 4242532184b..00000000000
--- a/docs/rest/models/delete-model.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Remove a Model
-openapi: "DELETE /api/projects/{projectName}/models/{modelName}"
-sidebarTitle: Remove a Model
----
-
-
-
-The REST API endpoints can be used with MindsDB running locally at http://127.0.0.1:47334/api.
-
-
diff --git a/docs/rest/models/describe-model.mdx b/docs/rest/models/describe-model.mdx
deleted file mode 100644
index f35ac854c64..00000000000
--- a/docs/rest/models/describe-model.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Describe a Model
-openapi: "GET /api/projects/{projectName}/models/{modelName}/describe"
-sidebarTitle: Describe a Model
----
-
-
-
-```json Response
-[
- {
- "accuracies": {
- "r2_score": 0.999
- },
- "column_importances": {
- "days_on_market": 0.116,
- "location": 0.054,
- "neighborhood": 0.0,
- "number_of_bathrooms": 0.009,
- "number_of_rooms": 0.297,
- "sqft": 1.037
- },
- "inputs": [
- "number_of_rooms",
- "number_of_bathrooms",
- "sqft",
- "location",
- "days_on_market",
- "neighborhood"
- ],
- "model": "encoders --> dtype_dict --> dependency_dict --> model --> problem_definition --> identifiers --> imputers --> accuracy_functions",
- "outputs": [
- "rental_price"
- ]
- }
-]
-```
-
-
-
-
-
-The REST API endpoints can be used with MindsDB running locally at http://127.0.0.1:47334/api.
-
-
\ No newline at end of file
diff --git a/docs/rest/models/finetune.mdx b/docs/rest/models/finetune.mdx
deleted file mode 100644
index c7ed427d13a..00000000000
--- a/docs/rest/models/finetune.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Finetune a Model
-sidebarTitle: Finetune a Model
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/models/list-model.mdx b/docs/rest/models/list-model.mdx
deleted file mode 100644
index a885f43a304..00000000000
--- a/docs/rest/models/list-model.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Get a Model
-openapi: "GET /api/projects/{projectName}/models/{modelName}"
-sidebarTitle: Get a Model
----
-
-
-
-The REST API endpoints can be used with MindsDB running locally at http://127.0.0.1:47334/api.
-
-
\ No newline at end of file
diff --git a/docs/rest/models/list-models.mdx b/docs/rest/models/list-models.mdx
deleted file mode 100644
index 49c5ab77163..00000000000
--- a/docs/rest/models/list-models.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: List Models
-openapi: "GET /api/projects/{projectName}/models"
-sidebarTitle: List Models
----
-
-
-
-The REST API endpoints can be used with MindsDB running locally at http://127.0.0.1:47334/api.
-
-
\ No newline at end of file
diff --git a/docs/rest/models/manage-model-versions.mdx b/docs/rest/models/manage-model-versions.mdx
deleted file mode 100644
index 1c3679f9b29..00000000000
--- a/docs/rest/models/manage-model-versions.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Manage Model Versions
-sidebarTitle: Manage Model Versions
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/models/query-model-joined-with-data.mdx b/docs/rest/models/query-model-joined-with-data.mdx
deleted file mode 100644
index 9cf24552022..00000000000
--- a/docs/rest/models/query-model-joined-with-data.mdx
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: Get Batch Predictions
-openapi: "POST /api/projects/{projectName}/models/{modelName}/predict"
-sidebarTitle: Get Batch Predictions
----
-
-
-There are two ways to get batch predictions:
-
-1. Join the model with data tables and use the [query endpoint](/rest/sql) to query for batch predictions.
-2. **Query the model using this endpoint and provide data to be used by the model in the request.**
-
-
-
-
-```python Request
-import requests
-url = 'http://127.0.0.1:47334/api/projects/mindsdb/models/home_rentals_model/predict'
-
-data = [{'number_of_rooms': 2,
- 'number_of_bathrooms': 1,
- 'sqft': 917,
- 'location': 'great',
- 'days_on_market': 13,
- 'neighborhood': 'berkeley_hills',
- 'rental_price': 3901,
- 'created_at': '2024-02-24 02:28:21.746167'},
- {'number_of_rooms': 0,
- 'number_of_bathrooms': 1,
- 'sqft': 194,
- 'location': 'great',
- 'days_on_market': 10,
- 'neighborhood': 'berkeley_hills',
- 'rental_price': 2042,
- 'created_at': '2024-02-19 06:10:59.693052'},
- {'number_of_rooms': 1,
- 'number_of_bathrooms': 1,
- 'sqft': 543,
- 'location': 'poor',
- 'days_on_market': 18,
- 'neighborhood': 'westbrae',
- 'rental_price': 1871,
- 'created_at': '2024-02-12 07:53:45.914146'}]
-
-r = requests.post(url, json={'data': data})
-print(r.json())
-```
-
-```json Response
-[
- {
- "__mindsdb_row_id": null,
- "days_on_market": null,
- "location": null,
- "neighborhood": null,
- "number_of_bathrooms": null,
- "number_of_rooms": null,
- "rental_price": 2847,
- "rental_price_anomaly": null,
- "rental_price_confidence": 0.99,
- "rental_price_explain": "{\"predicted_value\": 2847, \"confidence\": 0.99, \"anomaly\": null, \"truth\": null, \"confidence_lower_bound\": 2730, \"confidence_upper_bound\": 2964}",
- "rental_price_max": 2964,
- "rental_price_min": 2730,
- "rental_price_original": null,
- "select_data_query": null,
- "sqft": 823,
- "when_data": null
- }
-]
-```
-
-
-
-
-
-The REST API endpoints can be used with MindsDB running locally at http://127.0.0.1:47334/api.
-
-
\ No newline at end of file
diff --git a/docs/rest/models/query-model.mdx b/docs/rest/models/query-model.mdx
deleted file mode 100644
index c4d5bff405d..00000000000
--- a/docs/rest/models/query-model.mdx
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: Get a Single Prediction
-openapi: "POST /api/projects/{projectName}/models/{modelName}/predict"
-sidebarTitle: Get a Single Prediction
----
-
-
-
-```json Request
-curl --request POST \
- --url http://127.0.0.1:47334/api/projects/mindsdb/models/home_rentals_model/predict \
- --header 'Content-Type: application/json' \
- --data '{
- "data": [
- {
- "sqft": "823",
- "location": "good",
- "neighborhood": "downtown",
- "days_on_market": "10"
- }
- ]
- }'
-```
-
-```json Response
-[
- {
- "__mindsdb_row_id": null,
- "days_on_market": null,
- "location": null,
- "neighborhood": null,
- "number_of_bathrooms": null,
- "number_of_rooms": null,
- "rental_price": 2847,
- "rental_price_anomaly": null,
- "rental_price_confidence": 0.99,
- "rental_price_explain": "{\"predicted_value\": 2847, \"confidence\": 0.99, \"anomaly\": null, \"truth\": null, \"confidence_lower_bound\": 2730, \"confidence_upper_bound\": 2964}",
- "rental_price_max": 2964,
- "rental_price_min": 2730,
- "rental_price_original": null,
- "select_data_query": null,
- "sqft": 823,
- "when_data": null
- }
-]
-```
-
-
-
-
-
-The REST API endpoints can be used with MindsDB running locally at http://127.0.0.1:47334/api.
-
-
-
-
-
-Note that `data` sent in the request is specific to the model. For instance, the `home_rentals_model` has been trained on data that includes details of rental properties, and we want to predict the `rental_price` value for a specific property that matches `data` passed in the request.
-
-
diff --git a/docs/rest/models/retrain.mdx b/docs/rest/models/retrain.mdx
deleted file mode 100644
index 03c69b33ec1..00000000000
--- a/docs/rest/models/retrain.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Retrain a Model
-sidebarTitle: Retrain a Model
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/models/train-model.mdx b/docs/rest/models/train-model.mdx
deleted file mode 100644
index eb39b7f7b4e..00000000000
--- a/docs/rest/models/train-model.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Create, Train, and Deploy a Model
-openapi: "POST /api/projects/{projectName}/models"
-sidebarTitle: Create, Train, and Deploy a Model
----
-
-
-
-The REST API endpoints can be used with MindsDB running locally at http://127.0.0.1:47334/api.
-
-
\ No newline at end of file
diff --git a/docs/rest/projects/create.mdx b/docs/rest/projects/create.mdx
deleted file mode 100644
index b0258db6b75..00000000000
--- a/docs/rest/projects/create.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Create a Project
-sidebarTitle: Create a Project
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/projects/drop.mdx b/docs/rest/projects/drop.mdx
deleted file mode 100644
index 27679bf32d2..00000000000
--- a/docs/rest/projects/drop.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Remove a Project
-sidebarTitle: Remove a Project
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/tables/delete.mdx b/docs/rest/tables/delete.mdx
deleted file mode 100644
index a77271267f1..00000000000
--- a/docs/rest/tables/delete.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Delete From a Table
-sidebarTitle: Delete From a Table
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/tables/insert.mdx b/docs/rest/tables/insert.mdx
deleted file mode 100644
index 4b73611773d..00000000000
--- a/docs/rest/tables/insert.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Insert Into a Table
-sidebarTitle: Insert Into a Table
----
-
-
-This feature is in progress.
-
diff --git a/docs/rest/tables/update.mdx b/docs/rest/tables/update.mdx
deleted file mode 100644
index 04f8486ca08..00000000000
--- a/docs/rest/tables/update.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Update a Table
-sidebarTitle: Update a Table
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/community-sdk.mdx b/docs/sdks/community-sdk.mdx
deleted file mode 100644
index 05e6aab337e..00000000000
--- a/docs/sdks/community-sdk.mdx
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Community SDK
-sidebarTitle: Community SDKs
----
-
-List of community SDKs for the MindsDB are listed below:
-
-- MindsDB Java SDK
- - [GitHub](https://github.com/md-abid-hussain/mindsdb-java-sdk)
- - [Documentation](https://mindsdb-java-sdk.hashnode.space/docs)
- - [Maven](https://central.sonatype.com/artifact/io.github.md-abid-hussain/mindsdb-java-sdk)
- - [Javadoc](https://md-abid-hussain.github.io/mindsdb-java-sdk/)
diff --git a/docs/sdks/javascript/batchQuery.mdx b/docs/sdks/javascript/batchQuery.mdx
deleted file mode 100644
index 0a150c04c2c..00000000000
--- a/docs/sdks/javascript/batchQuery.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: Get Batch Predictions
-sidebarTitle: Get Batch Predictions
----
-
-## Description
-
-The `batchQuery()` function fetches batch predictions from the model by joining it with the data table.
-
-## Syntax
-
-Here is the syntax:
-
-```
-await model_name.batchQuery(batchQueryOptions);
-```
-
-
-Here are some useful links:
-- [training options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_trainingOptions.TrainingOptions.html),
-- [query options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_queryOptions.QueryOptions.html),
-- [batch query options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_queryOptions.BatchQueryOptions.html).
-
diff --git a/docs/sdks/javascript/create_job.mdx b/docs/sdks/javascript/create_job.mdx
deleted file mode 100644
index d80a2bd57f1..00000000000
--- a/docs/sdks/javascript/create_job.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Create a Job
-sidebarTitle: Create a Job
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/create_ml_engine.mdx b/docs/sdks/javascript/create_ml_engine.mdx
deleted file mode 100644
index 1958f034863..00000000000
--- a/docs/sdks/javascript/create_ml_engine.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Configure an ML Engine
-sidebarTitle: Configure an ML Engine
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/create_model.mdx b/docs/sdks/javascript/create_model.mdx
deleted file mode 100644
index 5995666491d..00000000000
--- a/docs/sdks/javascript/create_model.mdx
+++ /dev/null
@@ -1,184 +0,0 @@
----
-title: Create, Train, and Deploy a Model
-sidebarTitle: Create, Train, and Deploy a Model
----
-
-Training a model requires various parameters, depending on the model type. Here we present examples of regression, time series, and OpenAI models.
-
-
-Here are some useful links:
-- [training options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_trainingOptions.TrainingOptions.html),
-- [query options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_queryOptions.QueryOptions.html),
-- [batch query options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_queryOptions.BatchQueryOptions.html).
-
-
-#### Regression Model
-
-Let's look at an example of how to create and train a simple regression model, and then, use it for making predictions.
-
-```
-// Defining training options
-const regressionTrainingOptions = {
- select: 'SELECT * FROM demo_data.home_rentals',
- integration: 'example_db'
-};
-
-try {
-
- // Creating and training a model
- // The returned promise resolves when the model is created, NOT when training is actually complete
- let homeRentalPriceModel = await MindsDB.Models.trainModel(
- 'home_rentals_model',
- 'rental_price',
- 'mindsdb',
- regressionTrainingOptions);
-
- console.log('created a model');
-
- // Waiting for the training to be complete
- while (homeRentalPriceModel.status !== 'complete' && homeRentalPriceModel.status !== 'error') {
- homeRentalPriceModel = await MindsDB.Models.getModel('home_rentals_model', 'mindsdb');
- }
-
- // Checking model's status
- console.log('Model status: ' + homeRentalPriceModel.status);
-
- // Defining query options
- const queryOptions = {
- where: [
- 'sqft = 823',
- 'location = "good"',
- 'neighborhood = "downtown"',
- 'days_on_market = 10'
- ]
- }
-
- // Querying for a single prediction
- const rentalPricePrediction = await homeRentalPriceModel.query(queryOptions);
- console.log('Predicted value:');
- console.log(rentalPricePrediction.value);
- console.log('Prediction insights:');
- console.log(rentalPricePrediction.explain);
- console.log('Input data:');
- console.log(rentalPricePrediction.data);
-
-} catch (error) {
- // Something went wrong training or querying
- console.log(error);
-}
-```
-
-#### Time Series Model
-
-As time series models require more parameters, let's go over an example of how to create and train a time series model, and then, use it for making batch predictions.
-
-```
-// Defining training options
-const timeSeriesTrainingOptions = {
- integration: 'example_db',
- select: 'SELECT * FROM demo_data.house_sales',
- orderBy: 'saledate',
- groupBy: 'bedrooms',
- window: 8,
- horizon: 4
-}
-
-try {
-
- // Creating and training a model
- let houseSalesForecastModel = await MindsDB.Models.trainModel(
- 'house_sales_model',
- 'ma',
- 'mindsdb',
- timeSeriesTrainingOptions);
-
- console.log('created a model');
-
- // Waiting for the training to be complete
- while (houseSalesForecastModel.status !== 'complete' && houseSalesForecastModel.status !== 'error') {
- houseSalesForecastModel = await MindsDB.Models.getModel('house_sales_model', 'mindsdb');
- }
-
- // Checking model's status
- console.log('Model status: ' + houseSalesForecastModel.status);
-
- // Describing a model
- const modelDescription = await houseSalesForecastModel.describe();
- console.log('Model description:');
- console.log(modelDescription);
-
- // Defining query options
- const queryOptions = {
- // Join model to this data source
- join: 'example_db.demo_data.house_sales',
- // When using batch queries, the 't' alias is used for the joined data source ('t' is short for training/test)
- // The 'm' alias is used for the trained model to be queried
- where: ['t.saledate > LATEST', 't.bedrooms = 2'],
- limit: 4
- }
-
- // Querying for batch predictions
- const rentalPriceForecasts = await houseSalesForecastModel.batchQuery(queryOptions);
- console.log('Batch predictions:');
- rentalPriceForecasts.forEach(f => {
- console.log(f.value);
- console.log(f.explain);
- console.log(f.data);
- })
-
-} catch (error) {
- // Something went wrong training or predicting.
- console.log(error);
-}
-```
-
-#### OpenAI Model
-
-Here is how to create and deploy an OpenAI model from JavaScript code:
-
-```
-// Defining training options
-const trainingOptions = {
- using: {engine: 'openai', prompt_template: 'describe the sentiment of the reviews strictly as "positive", "neutral", or "negative". "I love the product":positive "It is a scam":negative "{{review}}.":'}
-};
-
-try {
-
- // Creating and training a model
- let openai_js = await MindsDB.Models.trainModel(
- 'openai_js',
- 'sentiment',
- 'mindsdb',
- trainingOptions);
-
- console.log('created a model');
-
- // Waiting for the training to be complete
- while (openai_js.status !== 'complete' && openai_js.status !== 'error') {
- openai_js = await MindsDB.Models.getModel('openai_js', 'mindsdb');
- }
-
- // Checking model's status
- console.log('Model status: ' + openai_js.status);
-
- // Defining query options
- const queryOptions = {
- where: [
- 'review = \'It is ok.\''
- ]
- }
-
- // Querying for a single prediction
- openai_js = await openai_js.query(queryOptions);
- console.log('Predicted value:');
- console.log(openai_js.value);
- console.log('Prediction insights:');
- console.log(openai_js.explain);
- console.log('Input data:');
- console.log(openai_js.data);
-
-} catch (error) {
- // Something went wrong training or querying
- console.log(error);
-}
-```
diff --git a/docs/sdks/javascript/create_project.mdx b/docs/sdks/javascript/create_project.mdx
deleted file mode 100644
index b0258db6b75..00000000000
--- a/docs/sdks/javascript/create_project.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Create a Project
-sidebarTitle: Create a Project
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/delete_file.mdx b/docs/sdks/javascript/delete_file.mdx
deleted file mode 100644
index aa8c96ab56c..00000000000
--- a/docs/sdks/javascript/delete_file.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Remove a File
-sidebarTitle: Remove a File
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/describe.mdx b/docs/sdks/javascript/describe.mdx
deleted file mode 100644
index 6e6db33b932..00000000000
--- a/docs/sdks/javascript/describe.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Describe a Model
-sidebarTitle: Describe a Model
----
-
-## Description
-
-The `describe()` function provides information about the models.
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-const modelDescription = await model_name.describe();
-```
diff --git a/docs/sdks/javascript/drop_job.mdx b/docs/sdks/javascript/drop_job.mdx
deleted file mode 100644
index afb0585a4dc..00000000000
--- a/docs/sdks/javascript/drop_job.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Remove a Job
-sidebarTitle: Remove a Job
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/drop_ml_engine.mdx b/docs/sdks/javascript/drop_ml_engine.mdx
deleted file mode 100644
index 6accb0ed5bc..00000000000
--- a/docs/sdks/javascript/drop_ml_engine.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Remove an ML Engine
-sidebarTitle: Remove an ML Engine
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/drop_model.mdx b/docs/sdks/javascript/drop_model.mdx
deleted file mode 100644
index 163a0cf1e57..00000000000
--- a/docs/sdks/javascript/drop_model.mdx
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Remove a Model
-sidebarTitle: Remove a Model
----
-
-## Description
-
-The `delete` function removes a model from MindsDB.
-
-## Syntax
-
-Here is how to get an existing database and remove it:
-
-```
-model = MindsDB.Models.trainModel(...)
-
-model.delete()
-```
diff --git a/docs/sdks/javascript/drop_project.mdx b/docs/sdks/javascript/drop_project.mdx
deleted file mode 100644
index 27679bf32d2..00000000000
--- a/docs/sdks/javascript/drop_project.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Remove a Project
-sidebarTitle: Remove a Project
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/finetune.mdx b/docs/sdks/javascript/finetune.mdx
deleted file mode 100644
index dbdef1a2ee9..00000000000
--- a/docs/sdks/javascript/finetune.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Finetune a Model
-sidebarTitle: Finetune a Model
----
-
-## Description
-
-The `finetune()` fuction lets us finetune the model with specific data.
-
-## Syntax
-
-Here is how you can finetune, or adjust, a model:
-
-```
-// Getting a model
-const homeRentalPriceModel = await MindsDB.Models.getModel('home_rentals_model', 'mindsdb');
-console.log('got a model');
-
-// Defining data used to finetune a model
-const adjustSelect = 'SELECT * FROM demo_data.home_rentals WHERE days_on_market >= 10';
-//const params = { 'key' : 'value' }
-
-try {
-
- // Finetuning/adjusting a model with the specified dataset
- await homeRentalPriceModel.finetune({
- integration: 'example_db',
- select: adjustSelect
- //using: params
- });
- console.log('finetuned a model');
-
-} catch (error) {
- // Something went wrong adjusting
- console.log(error);
-}
-```
-
-You can find full adjust options [here](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_trainingOptions.AdjustOptions.html).
diff --git a/docs/sdks/javascript/get_status.mdx b/docs/sdks/javascript/get_status.mdx
deleted file mode 100644
index b67fcd87452..00000000000
--- a/docs/sdks/javascript/get_status.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Get Status of a Model
-sidebarTitle: Get Status of a Model
----
-
-## Description
-
-The `status` property of the model stores its status, such as `generating`, `training`, or `complete`.
-
-## Syntax
-
-Here is the syntax:
-
-```sql
-model_name.status
-```
diff --git a/docs/sdks/javascript/list_ml_engines.mdx b/docs/sdks/javascript/list_ml_engines.mdx
deleted file mode 100644
index 6f1c67d4843..00000000000
--- a/docs/sdks/javascript/list_ml_engines.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: List ML Engines
-sidebarTitle: List ML Engines
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/list_ml_handlers.mdx b/docs/sdks/javascript/list_ml_handlers.mdx
deleted file mode 100644
index 5f9662c6bff..00000000000
--- a/docs/sdks/javascript/list_ml_handlers.mdx
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: List ML Handlers
-sidebarTitle: List ML Handlers
----
-
-Here is how you can fetch all available ML handlers directly from JavaScript code:
-
-```
-const query = 'SHOW HANDLERS WHERE type = \‘ml\'’;
-result = await MindsDB.SQL.runQuery(query);
-console.log(result);
-```
diff --git a/docs/sdks/javascript/list_models.mdx b/docs/sdks/javascript/list_models.mdx
deleted file mode 100644
index a6c9680b03a..00000000000
--- a/docs/sdks/javascript/list_models.mdx
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: List Models
-sidebarTitle: List Models
----
-
-You can list models using the below code.
-
-```
-const query = 'SHOW MODELS’;
-result = await MindsDB.SQL.runQuery(query);
-console.log(result);
-```
diff --git a/docs/sdks/javascript/manage-model-versions.mdx b/docs/sdks/javascript/manage-model-versions.mdx
deleted file mode 100644
index 1c3679f9b29..00000000000
--- a/docs/sdks/javascript/manage-model-versions.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Manage Model Versions
-sidebarTitle: Manage Model Versions
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/query.mdx b/docs/sdks/javascript/query.mdx
deleted file mode 100644
index d8b58d65930..00000000000
--- a/docs/sdks/javascript/query.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: Get a Single Prediction
-sidebarTitle: Get a Single Prediction
----
-
-## Description
-
-The `query()` function fetches a single prediction from the model.
-
-## Syntax
-
-Here is the syntax:
-
-```
-await model_name.query(queryOptions);
-```
-
-
-Here are some useful links:
-- [training options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_trainingOptions.TrainingOptions.html),
-- [query options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_queryOptions.QueryOptions.html),
-- [batch query options](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_queryOptions.BatchQueryOptions.html).
-
diff --git a/docs/sdks/javascript/query_jobs.mdx b/docs/sdks/javascript/query_jobs.mdx
deleted file mode 100644
index cc363143824..00000000000
--- a/docs/sdks/javascript/query_jobs.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Query Jobs
-sidebarTitle: Query Jobs
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/javascript/retrain.mdx b/docs/sdks/javascript/retrain.mdx
deleted file mode 100644
index d43160f1c84..00000000000
--- a/docs/sdks/javascript/retrain.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: Retrain a Model
-sidebarTitle: Retrain a Model
----
-
-## Description
-
-The `retrain()` fuction lets us retrain the model, for example, when there is a new version of MindsDB available.
-
-## Syntax
-
-Here is how to get an existing model and retrain it if its update status is `available`.
-
-```
-// Getting an existing model
-const homeRentalPriceModel = await MindsDB.Models.getModel('home_rentals_model', 'mindsdb');
-
-// Checking the status and retraining a model if required
-if (homeRentalPriceModel.updateStatus === 'available') {
- try {
-
- // For custom retraining: homerentalPriceModel.retrain('example_db', trainingOptions);
- await homeRentalPriceModel.retrain();
- console.log('retrained a model');
-
- } catch (error) {
- // Something went wrong with retraining
- console.log(error);
- }
-}
-```
-
-You can find full training options [here](https://mindsdb.github.io/mindsdb-js-sdk/interfaces/models_trainingOptions.TrainingOptions.html).
diff --git a/docs/sdks/javascript/upload_file.mdx b/docs/sdks/javascript/upload_file.mdx
deleted file mode 100644
index 26d881ec4fe..00000000000
--- a/docs/sdks/javascript/upload_file.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Upload a File
-sidebarTitle: Upload a File
----
-
-
-This feature is in progress.
-
diff --git a/docs/sdks/overview.mdx b/docs/sdks/overview.mdx
deleted file mode 100644
index 47cd7cb097d..00000000000
--- a/docs/sdks/overview.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: SDKs
-sidebarTitle: Overview
-icon: "rectangle-code"
----
-
-MindsDB provides SDKs for Python, and JavaScript, enabling incorporation of AI building blocks into these development environments.
-
-This section introduces custom syntax provided by MindsDB to bring data and AI together inside Python, and JavaScript development environments.
-
-Follow these steps to get started:
-
-
-
- For Python, [install the package](/sdks/python/installation).
- For JavaScript, [install the package](/sdks/javascript/installation).
-
-
- Connect a data source in [Python](/sdks/python/create_database) and [JavaScript](/sdks/javascript/create_database).
- Explore all available [data sources here](/integrations/data-overview).
-
-
- Configure an AI engine in [Python](/sdks/python/create_ml_engine) and [JavaScript](/sdks/javascript/create_ml_engine).
- Explore all available [AI engines here](/integrations/ai-overview).
-
-
- Create and deploy an AI/ML model in [Python](/sdks/python/create_model) and [JavaScript](/sdks/javascript/create_model).
-
-
- Query for predictions in [Python](/sdks/python/get-batch-predictions) and [JavaScript](/sdks/javascript/batchQuery).
-
-
- Automate tasks by scheduling docs in [Python](/sdks/python/create_job) and [JavaScript](/sdks/javascript/create_job).
-
-
diff --git a/docs/sdks/python/create_ml_engine.mdx b/docs/sdks/python/create_ml_engine.mdx
deleted file mode 100644
index e8b686c0f1d..00000000000
--- a/docs/sdks/python/create_ml_engine.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Configure an ML Engine
-sidebarTitle: Configure an ML Engine
----
-
-Here is how you can create an ML engine directly from Python code:
-
-```
-server.ml_engines.create(
- 'ml_engine_name',
- 'ml_engine_handler',
- connection_data={'_api_key': '111'}
- )
-```
diff --git a/docs/sdks/python/create_model.mdx b/docs/sdks/python/create_model.mdx
deleted file mode 100644
index 8889d1c5e29..00000000000
--- a/docs/sdks/python/create_model.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Create, Train, and Deploy a Model
-sidebarTitle: Create, Train, and Deploy a Model
----
-
-## Description
-
-The `models.get()` and `models.create()` methods enable you to get an existing model or create and deploy a new model.
-
-## Syntax
-
-Use the `models.get()` method to get an existing model:
-
-```python
-my_model = project.models.get('my_model')
-```
-
-Or, the `create()` method to create and train a new model:
-
-```python
-my_model = project.models.create (
- name = 'my_model',
- predict = 'target',
- query = my_table
-)
-```
-
-Please note that in the case of LLM models, the parameters can be stored in `options`. Here is the syntax to create an OpenAI model:
-
-```python
-sentiment_classifier = project.models.create (
- name='sentiment_classifier',
- engine='openai', # alternatively: engine=server.ml_engines.openai
- predict='sentiment',
- options={
- 'prompt_template':'answer this question: {{questions}}',
- 'model_name':'gpt4'
- }
-)
-```
-
-Alternatively, you can skip `options` and define parameters as arguments.
-
-```python
-sentiment_classifier = project.models.create (
- name='sentiment_classifier',
- engine='openai', # alternatively: engine=server.ml_engines.openai
- predict='sentiment',
- prompt_template='answer this question: {{questions}}',
- model_name='gpt4'
-)
-```
-
-And in the case of time-series model, the additional options are stored in `timeseries_options`. Here is the syntax to create a time-series model:
-
-```sql
-ts_model = project.models.create (
- name='time_series_model',
- predict='target',
- query=my_table,
- timeseries_options={
- 'order': 'order_date',
- 'group': 'category',
- 'window': 30,
- 'horizon': 4
- }
-)
-```
diff --git a/docs/sdks/python/describe.mdx b/docs/sdks/python/describe.mdx
deleted file mode 100644
index e03a302bc89..00000000000
--- a/docs/sdks/python/describe.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Describe a Model
-sidebarTitle: Describe a Model
----
-
-## Description
-
-The `describe()` function returns information about a model.
-
-## Syntax
-
-Use the `describe()` method to get information about a model:
-
-```python
-model_name.describe()
-```
diff --git a/docs/sdks/python/drop_ml_engine.mdx b/docs/sdks/python/drop_ml_engine.mdx
deleted file mode 100644
index 8f256dc1f51..00000000000
--- a/docs/sdks/python/drop_ml_engine.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Remove an ML Engine
-sidebarTitle: Remove an ML Engine
----
-
-Here is how you can remove one of the ML engines directly from Python code:
-
-```
-server.ml_engines.drop('ml_engine_name')
-```
diff --git a/docs/sdks/python/drop_model.mdx b/docs/sdks/python/drop_model.mdx
deleted file mode 100644
index baee4930fc1..00000000000
--- a/docs/sdks/python/drop_model.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Remove a Model
-sidebarTitle: Remove a Model
----
-
-## Description
-
-The `drop_model()` function removes a model from MindsDB.
-
-## Syntax
-
-Use the `drop_model()` method to remove a model:
-
-```python
-# option 1
-project.drop_model('my_model')
-
-# option 2
-server.models.drop('my_model')
-```
diff --git a/docs/sdks/python/finetune.mdx b/docs/sdks/python/finetune.mdx
deleted file mode 100644
index dd3d0a747ad..00000000000
--- a/docs/sdks/python/finetune.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Finetune a Model
-sidebarTitle: Finetune a Model
----
-
-## Description
-
-The `finetune()` function finetunes a model with specified data.
-
-## Syntax
-
-Use the `finetune()` method to finetune a model with specific data:
-
-```python
-model_name.finetune(data_table)
-```
diff --git a/docs/sdks/python/get-batch-predictions.mdx b/docs/sdks/python/get-batch-predictions.mdx
deleted file mode 100644
index ecc5c3e8726..00000000000
--- a/docs/sdks/python/get-batch-predictions.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: Get Batch Predictions
-sidebarTitle: Get Batch Predictions
----
-
-## Description
-
-The `predict()` function fetches predictions from the model table.
-
-## Syntax
-
-Use the `predict()` method to make batch predictions by passing the data table as its argument:
-
-```python
-my_model.predict(my_table.limit(10))
-```
-
-
-When querying for predictions, you can specify the `partition_size` parameter to split data into partitions and run prediction on different workers. Note that the [ML task queue](/setup/custom-config#overview-of-config-parameters) needs to be enabled to use this parameter.
-
-To use the `partition_size` parameter, provide the below argument to the `predict` function, specifying the partition size, like this:
-
-```
-my_model.predict(df, params={'partition_size': 2})
-```
-
diff --git a/docs/sdks/python/get-single-prediction.mdx b/docs/sdks/python/get-single-prediction.mdx
deleted file mode 100644
index 3646eea5461..00000000000
--- a/docs/sdks/python/get-single-prediction.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Get a Single Prediction
-sidebarTitle: Get a Single Prediction
----
-
-## Description
-
-The `predict()` function fetches predictions from the model table.
-
-## Syntax
-
-Use the `predict()` method to make a single prediction by passing the specific values as its argument:
-
-```python
-my_model.predict({"text": 'any text'})
-```
diff --git a/docs/sdks/python/get_status.mdx b/docs/sdks/python/get_status.mdx
deleted file mode 100644
index c2dabbab9d3..00000000000
--- a/docs/sdks/python/get_status.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Get Status of a Model
-sidebarTitle: Get Status of a Model
----
-
-## Description
-
-The `get_status()` function lets you fetch the current status of the model, for example, to see if the model completed its training phase.
-
-## Syntax
-
-Use the `get_status()` method to check the training status of the model:
-
-```python
-my_model.get_status()
-```
diff --git a/docs/sdks/python/list_ml_engines.mdx b/docs/sdks/python/list_ml_engines.mdx
deleted file mode 100644
index 9758a054310..00000000000
--- a/docs/sdks/python/list_ml_engines.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: List ML Engines
-sidebarTitle: List ML Engines
----
-
-Here is how you can fetch all available ML engines directly from Python code:
-
-```
-server.ml_engines.list()
-```
diff --git a/docs/sdks/python/list_ml_handlers.mdx b/docs/sdks/python/list_ml_handlers.mdx
deleted file mode 100644
index 5ae16f985e3..00000000000
--- a/docs/sdks/python/list_ml_handlers.mdx
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: List ML Handlers
-sidebarTitle: List ML Handlers
----
-
-Here is how you can fetch all available ML handlers directly from Python code:
-
-```
-mindsdb = server.get_project('mindsdb')
-ml_handlers = mindsdb.query('SHOW HANDLERS WHERE type = \'ml\'')
-print(ml_handlers.fetch())
-```
diff --git a/docs/sdks/python/list_models.mdx b/docs/sdks/python/list_models.mdx
deleted file mode 100644
index 71f07c2b7e3..00000000000
--- a/docs/sdks/python/list_models.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: List Models
-sidebarTitle: List Models
----
-
-## Description
-
-The `list_models()` function lists all models available in a defined project.
-
-## Syntax
-
-Use the `list_models()` method to list all models contained in the project:
-
-```python
-project.list_models()
-```
diff --git a/docs/sdks/python/manage-model-versions.mdx b/docs/sdks/python/manage-model-versions.mdx
deleted file mode 100644
index 531fc33f3cf..00000000000
--- a/docs/sdks/python/manage-model-versions.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Manage Model Versions
-sidebarTitle: Manage Model Versions
----
-
-Below are the functions that let you work with multiple version of a model.
-
-Use the `list_versions()` method to view all available version of a model:
-
-```python
-model_name.list_versions()
-```
-
-Use the `get_version()` method to use a specific version of a model:
-
-```python
-model_name.get_version(9)
-```
-
-Use the `set_active()` method to set a specific version of a model as active:
-
-```python
-model_name.set_active(9)
-```
-
-Use the `drop_model_version()` method to remove a specific version of a model:
-
-```python
-project.drop_model_version('my_model', 3)
-```
-
-Please note that the model version should be deactivated before it is removed.
diff --git a/docs/sdks/python/refresh_model.mdx b/docs/sdks/python/refresh_model.mdx
deleted file mode 100644
index e4de8bd536c..00000000000
--- a/docs/sdks/python/refresh_model.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Refresh a Model
-sidebarTitle: Refresh a Model
----
-
-## Description
-
-The `refresh()` function synchronizes the model with MindsDB.
-
-## Syntax
-
-Use the `refresh()` method to refresh model's data from the MindsDB server:
-
-```python
-model_name.refresh()
-```
diff --git a/docs/sdks/python/retrain.mdx b/docs/sdks/python/retrain.mdx
deleted file mode 100644
index 63bac278bff..00000000000
--- a/docs/sdks/python/retrain.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Retrain a Model
-sidebarTitle: Retrain a Model
----
-
-## Description
-
-The `retrain()` function retrains the model, for example, if new version of MindsDB is available.
-
-## Syntax
-
-Use the `retrain()` method to retrain a model:
-
-```python
-model_name.retrain()
-```
diff --git a/docs/setup/community-deploys-mindsdb.mdx b/docs/setup/community-deploys-mindsdb.mdx
deleted file mode 100644
index 29b6376dac2..00000000000
--- a/docs/setup/community-deploys-mindsdb.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Deploying MindsDB in any cloud
-sidebarTitle: Other clouds
----
-
-Check out the articles and video guides created by our community:
-
-- Article on [Deploying MindsDB on Linode](https://dev.to/rutamhere/deploying-mindsdb-on-linode-jh8)
- by [Rutam Prita Mishra](https://twitter.com/RutamHere)
-
-- Article on [Deploying MindsDB on Scaleway Cloud](https://dev.to/rutamhere/deploying-mindsdb-on-scaleway-cloud-4kc6)
- by [Rutam Prita Mishra](https://community.ops.io/rutamhere)
-
-- Article on [Deploying MindsDB on Oracle Cloud](https://community.ops.io/rutamhere/deploying-mindsdb-on-oracle-cloud-164d)
- by [Rutam Prita Mishra](https://community.ops.io/rutamhere)
-
-- Article on [Deploying MindsDB on a Digital Ocean Droplet](https://dev.to/heyrutam/deploying-mindsdb-on-a-digital-ocean-droplet-31ed)
- by [Rutam Prita Mishra](https://community.ops.io/rutamhere)
-
-- Article on [Deploying MindsDB on a Vultr Cloud Instance](https://community.ops.io/rutamhere/deploying-mindsdb-on-a-vultr-cloud-instance-40bm)
- by [Rutam Prita Mishra](https://community.ops.io/rutamhere)
-
-- Article on [Deploying MindsDB on Civo Compute](https://community.ops.io/rutamhere/deploying-mindsdb-on-civo-compute-2kgo)
- by [Rutam Prita Mishra](https://community.ops.io/rutamhere)
-
-- Article on [Deploying MindsDB on Google Cloud Platform](https://community.ops.io/rutamhere/deploying-mindsdb-on-google-cloud-platform-41h9)
- by [Rutam Prita Mishra](https://community.ops.io/rutamhere)
-
-- Video guide on [How to deploy MindsDB on your local machine (Docker, PIP)](https://youtu.be/dIbs27Jg1FY)
- by [Munyoudoum Pav](https://github.com/munyoudoum)
-
-- Video guide on [Setting Up Docker for MindsDB](https://www.youtube.com/watch?v=dadY-cUpUm0&feature=youtu.be)
- by [Alissa Troiano](https://github.com/alissatroiano)
-
-- Video guide on [Deploying an instance of MindsDB on Google Cloud Platform](https://www.youtube.com/watch?v=OrW-8ciNGng)
- by [Syed Zubeen](https://github.com/syedzubeen)
-
-- Video guide on [Deploy MindsDB on the Google Cloud Platform](https://www.youtube.com/watch?v=WLdb7UNi4bk)
- by [Alissa Troiano](https://github.com/alissatroiano)
diff --git a/docs/sitemaps/contribute.mdx b/docs/sitemaps/contribute.mdx
deleted file mode 100644
index d4407f79ec3..00000000000
--- a/docs/sitemaps/contribute.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: Contributors - Sitemap
----
-
-https://docs.mindsdb.com/contribute/contribute
-https://docs.mindsdb.com/contribute/issues
-https://docs.mindsdb.com/contribute/issue-labels
-https://docs.mindsdb.com/contribute/install
-https://docs.mindsdb.com/contribute/python-coding-standards
-https://docs.mindsdb.com/contribute/data-handlers
-https://docs.mindsdb.com/contribute/ml-handlers
-https://docs.mindsdb.com/contribute/app-handlers
-https://docs.mindsdb.com/contribute/integrations-readme
-https://docs.mindsdb.com/contribute/tutorials
-https://docs.mindsdb.com/contribute/docs
-https://docs.mindsdb.com/contribute/docs-rules
-https://docs.mindsdb.com/contribute/community
diff --git a/docs/sitemaps/faq.mdx b/docs/sitemaps/faq.mdx
deleted file mode 100644
index 10227f7976e..00000000000
--- a/docs/sitemaps/faq.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: FAQs - Sitemap
----
-
-https://docs.mindsdb.com/faqs/benefits
-https://docs.mindsdb.com/faqs/persist-predictions
-https://docs.mindsdb.com/faqs/mindsdb-with-php
-https://docs.mindsdb.com/faqs/disposable-email-doman-and-openai
-https://docs.mindsdb.com/faqs/missing-required-cpu-features
diff --git a/docs/sitemaps/get_started_documentation.mdx b/docs/sitemaps/get_started_documentation.mdx
deleted file mode 100644
index 0d3c939c953..00000000000
--- a/docs/sitemaps/get_started_documentation.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Get Started Documentation - Sitemap
----
-
-Get Started:
-https://docs.mindsdb.com/what-is-mindsdb
-https://docs.mindsdb.com/quickstart-tutorial
-https://docs.mindsdb.com/minds-demo
-
-Installation:
-https://docs.mindsdb.com/setup/self-hosted/docker
-https://docs.mindsdb.com/setup/self-hosted/docker-desktop
-https://docs.mindsdb.com/setup/cloud/aws-marketplace
-
-Configuration:
-https://docs.mindsdb.com/setup/custom-config
-https://docs.mindsdb.com/setup/environment-vars
-
-Features:
-https://docs.mindsdb.com/features/model-management
-https://docs.mindsdb.com/features/ai-integrations
-https://docs.mindsdb.com/features/data-integrations
-https://docs.mindsdb.com/features/automation
-
-Learn more:
-https://docs.mindsdb.com/sql/table-structure
-https://docs.mindsdb.com/sql/project
-https://docs.mindsdb.com/generative-ai-tables
-https://docs.mindsdb.com/mindsdb-gui
-https://docs.mindsdb.com/model-types
-https://docs.mindsdb.com/mindsdb-handlers
-
-Data Preparation:
-https://docs.mindsdb.com/sql/feature-eng
-https://docs.mindsdb.com/sql/feature-importance
-
\ No newline at end of file
diff --git a/docs/sitemaps/integrations.mdx b/docs/sitemaps/integrations.mdx
deleted file mode 100644
index 0cf08717227..00000000000
--- a/docs/sitemaps/integrations.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: MindsDB Integrations - Sitemap
----
-
-Integrations:
-https://docs.mindsdb.com/integrations/integrations
-https://docs.mindsdb.com/integrations/support
-
-Databases / Applications / Vector Stores Integrations:
-https://docs.mindsdb.com/integrations/data-overview
-https://docs.mindsdb.com/integrations/sample-database
-
-AI/ML Frameowrks and LLMs Integrations:
-https://docs.mindsdb.com/integrations/ai-overview
diff --git a/docs/sitemaps/rest_api.mdx b/docs/sitemaps/rest_api.mdx
deleted file mode 100644
index 6cca1b94863..00000000000
--- a/docs/sitemaps/rest_api.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: MindsDB REST API - Sitemap
----
-
-
-REST API:
-https://docs.mindsdb.com/rest/overview
-
-OpenAPI Specification:
-https://github.com/mindsdb/mindsdb/blob/main/docs/openapi.yml
diff --git a/docs/sitemaps/sdks.mdx b/docs/sitemaps/sdks.mdx
deleted file mode 100644
index d8b2fa53333..00000000000
--- a/docs/sitemaps/sdks.mdx
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: MindsDB SDKs (Python, JavaScript) - Sitemap
----
-
-Available SDKs:
-Python SDK, JavaScript SDK
-
-Overview:
-https://docs.mindsdb.com/sdks/overview
-
-Python SDK:
-https://docs.mindsdb.com/sdks/python/overview
-Connect:
-https://docs.mindsdb.com/sdks/python/installation
-https://docs.mindsdb.com/sdks/python/connect
-Data Sources:
-https://docs.mindsdb.com/sdks/python/list_data_handlers
-https://docs.mindsdb.com/sdks/python/create_database
-https://docs.mindsdb.com/sdks/python/drop_database
-https://docs.mindsdb.com/sdks/python/list_databases
-AI/ML Engines:
-https://docs.mindsdb.com/sdks/python/list_ml_handlers
-https://docs.mindsdb.com/sdks/python/create_ml_engine
-https://docs.mindsdb.com/sdks/python/drop_ml_engine
-https://docs.mindsdb.com/sdks/python/list_ml_engines
-Projects:
-https://docs.mindsdb.com/sdks/python/create_project
-https://docs.mindsdb.com/sdks/python/drop_project
-https://docs.mindsdb.com/sdks/python/list_projects
-https://docs.mindsdb.com/sdks/python/query_projects
-Models:
-https://docs.mindsdb.com/sdks/python/create_model
-https://docs.mindsdb.com/sdks/python/drop_model
-https://docs.mindsdb.com/sdks/python/list_models
-https://docs.mindsdb.com/sdks/python/describe
-https://docs.mindsdb.com/sdks/python/get_status
-https://docs.mindsdb.com/sdks/python/refresh_model
-https://docs.mindsdb.com/sdks/python/retrain
-https://docs.mindsdb.com/sdks/python/finetune
-https://docs.mindsdb.com/sdks/python/manage-model-versions
-Predictions:
-https://docs.mindsdb.com/sdks/python/get-single-prediction
-https://docs.mindsdb.com/sdks/python/get-batch-predictions
-Tables, Views, and Files:
-https://docs.mindsdb.com/sdks/python/create_table
-https://docs.mindsdb.com/sdks/python/delete_table
-https://docs.mindsdb.com/sdks/python/query_table
-https://docs.mindsdb.com/sdks/python/native_queries
-https://docs.mindsdb.com/sdks/python/update_table
-https://docs.mindsdb.com/sdks/python/insert_into_table
-https://docs.mindsdb.com/sdks/python/join_on
-https://docs.mindsdb.com/sdks/python/delete_from
-https://docs.mindsdb.com/sdks/python/create_view
-https://docs.mindsdb.com/sdks/python/drop_view
-https://docs.mindsdb.com/sdks/python/query_view
-https://docs.mindsdb.com/sdks/python/list_views
-https://docs.mindsdb.com/sdks/python/upload_file
-https://docs.mindsdb.com/sdks/python/delete_file
-https://docs.mindsdb.com/sdks/python/query_files
-Jobs:
-https://docs.mindsdb.com/sdks/python/create_job
-https://docs.mindsdb.com/sdks/python/drop_job
-https://docs.mindsdb.com/sdks/python/list_jobs
-https://docs.mindsdb.com/sdks/python/refresh_job
-https://docs.mindsdb.com/sdks/python/get_history
-AI Agents:
-https://docs.mindsdb.com/sdks/python/agents
-https://docs.mindsdb.com/sdks/python/agents_skills
-https://docs.mindsdb.com/sdks/python/agents_knowledge_bases
-
-JavaScript SDK:
-https://docs.mindsdb.com/sdks/javascript/overview
-Connect:
-https://docs.mindsdb.com/sdks/javascript/installation
-https://docs.mindsdb.com/sdks/javascript/connect
-Data Sources:
-https://docs.mindsdb.com/sdks/javascript/list_data_handlers
-https://docs.mindsdb.com/sdks/javascript/create_database
-https://docs.mindsdb.com/sdks/javascript/get_database
-https://docs.mindsdb.com/sdks/javascript/drop_database
-https://docs.mindsdb.com/sdks/javascript/list_databases
-AI/ML Engines:
-https://docs.mindsdb.com/sdks/javascript/list_ml_handlers
-https://docs.mindsdb.com/sdks/javascript/create_ml_engine
-https://docs.mindsdb.com/sdks/javascript/drop_ml_engine
-https://docs.mindsdb.com/sdks/javascript/list_ml_engines
-Projects:
-https://docs.mindsdb.com/sdks/javascript/create_project
-https://docs.mindsdb.com/sdks/javascript/drop_project
-https://docs.mindsdb.com/sdks/javascript/list_projects
-Models:
-https://docs.mindsdb.com/sdks/javascript/create_model
-https://docs.mindsdb.com/sdks/javascript/drop_model
-https://docs.mindsdb.com/sdks/javascript/list_models
-https://docs.mindsdb.com/sdks/javascript/describe
-https://docs.mindsdb.com/sdks/javascript/get_status
-https://docs.mindsdb.com/sdks/javascript/retrain
-https://docs.mindsdb.com/sdks/javascript/finetune
-https://docs.mindsdb.com/sdks/javascript/manage-model-versions
-Predictions:
-https://docs.mindsdb.com/sdks/javascript/query
-https://docs.mindsdb.com/sdks/javascript/batchQuery
-Tables, Views, and Files:
-https://docs.mindsdb.com/sdks/javascript/create_table
-https://docs.mindsdb.com/sdks/javascript/delete_table
-https://docs.mindsdb.com/sdks/javascript/query_table
-https://docs.mindsdb.com/sdks/javascript/native_queries
-https://docs.mindsdb.com/sdks/javascript/update_table
-https://docs.mindsdb.com/sdks/javascript/insert_into_table
-https://docs.mindsdb.com/sdks/javascript/join_on
-https://docs.mindsdb.com/sdks/javascript/delete_from
-https://docs.mindsdb.com/sdks/javascript/create_view
-https://docs.mindsdb.com/sdks/javascript/drop_view
-https://docs.mindsdb.com/sdks/javascript/query_view
-https://docs.mindsdb.com/sdks/javascript/list_views
-https://docs.mindsdb.com/sdks/javascript/upload_file
-https://docs.mindsdb.com/sdks/javascript/delete_file
-https://docs.mindsdb.com/sdks/javascript/query_files
-Jobs:
-https://docs.mindsdb.com/sdks/javascript/create_job
-https://docs.mindsdb.com/sdks/javascript/drop_job
-https://docs.mindsdb.com/sdks/javascript/query_jobs
diff --git a/docs/sitemaps/sql_api.mdx b/docs/sitemaps/sql_api.mdx
deleted file mode 100644
index fb297d5fa89..00000000000
--- a/docs/sitemaps/sql_api.mdx
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: MindsDB SQL API - Sitemap
----
-
-SQL API:
-https://docs.mindsdb.com/mindsdb_sql/overview
-https://docs.mindsdb.com/mindsdb_sql/syntax
-
-Connect:
-https://docs.mindsdb.com/mindsdb_sql/connect/mindsdb_editor
-https://docs.mindsdb.com/mindsdb_sql/connect/postgres-client
-https://docs.mindsdb.com/mindsdb_sql/connect/mysql-client
-https://docs.mindsdb.com/mindsdb_sql/connect/dbeaver
-https://docs.mindsdb.com/mindsdb_sql/connect/connect-mariadb-skysql
-https://docs.mindsdb.com/mindsdb_sql/connect/sql-alchemy
-https://docs.mindsdb.com/mindsdb_sql/connect/deepnote
-https://docs.mindsdb.com/mindsdb_sql/connect/metabase
-https://docs.mindsdb.com/mindsdb_sql/connect/tableau
-https://docs.mindsdb.com/mindsdb_sql/connect/jupysql
-https://docs.mindsdb.com/mindsdb_sql/connect/grafana
-
-Data Sources:
-https://docs.mindsdb.com/mindsdb_sql/sql/list-data-handlers
-https://docs.mindsdb.com/mindsdb_sql/sql/create/database
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/database
-https://docs.mindsdb.com/mindsdb_sql/sql/show-databases
-https://docs.mindsdb.com/mindsdb_sql/sql/api/use
-
-AI/ML Engines:
-https://docs.mindsdb.com/mindsdb_sql/sql/list-ml-handlers
-https://docs.mindsdb.com/mindsdb_sql/sql/create/ml-engine
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/ml-engine
-https://docs.mindsdb.com/mindsdb_sql/sql/show-ml-engines
-
-Projects:
-https://docs.mindsdb.com/mindsdb_sql/sql/create/project
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/project
-https://docs.mindsdb.com/mindsdb_sql/sql/list-projects
-https://docs.mindsdb.com/mindsdb_sql/sql/use/project
-
-Models:
-https://docs.mindsdb.com/mindsdb_sql/sql/create/model
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/model
-https://docs.mindsdb.com/mindsdb_sql/sql/show-models
-https://docs.mindsdb.com/mindsdb_sql/sql/api/describe
-https://docs.mindsdb.com/mindsdb_sql/sql/api/retrain
-https://docs.mindsdb.com/mindsdb_sql/sql/api/finetune
-https://docs.mindsdb.com/mindsdb_sql/sql/api/manage-models-versions
-
-Predictions:
-https://docs.mindsdb.com/mindsdb_sql/sql/get-single-prediction
-https://docs.mindsdb.com/mindsdb_sql/sql/get-batch-predictions
-https://docs.mindsdb.com/mindsdb_sql/sql/api/join
-https://docs.mindsdb.com/mindsdb_sql/sql/api/evaluate
-
-Tables, Views, and Files:
-https://docs.mindsdb.com/mindsdb_sql/sql/create/table
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/table
-https://docs.mindsdb.com/mindsdb_sql/sql/api/select
-https://docs.mindsdb.com/mindsdb_sql/sql/native-queries
-https://docs.mindsdb.com/mindsdb_sql/sql/api/update
-https://docs.mindsdb.com/mindsdb_sql/sql/api/insert
-https://docs.mindsdb.com/mindsdb_sql/sql/api/join-on
-https://docs.mindsdb.com/mindsdb_sql/sql/api/delete
-https://docs.mindsdb.com/mindsdb_sql/sql/create/view
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/view
-https://docs.mindsdb.com/mindsdb_sql/sql/api/select-view
-https://docs.mindsdb.com/mindsdb_sql/sql/create/file
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/file
-https://docs.mindsdb.com/mindsdb_sql/sql/api/select-files
-
-Jobs:
-https://docs.mindsdb.com/mindsdb_sql/sql/create/jobs
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/jobs
-https://docs.mindsdb.com/mindsdb_sql/sql/query-jobs
-
-Triggers:
-https://docs.mindsdb.com/mindsdb_sql/sql/create/trigger
-https://docs.mindsdb.com/mindsdb_sql/sql/drop/trigger
-https://docs.mindsdb.com/mindsdb_sql/sql/query-triggers
-
-AI Agents:
-https://docs.mindsdb.com/mindsdb_sql/agents/agent
-https://docs.mindsdb.com/mindsdb_sql/agents/chatbot
-https://docs.mindsdb.com/mindsdb_sql/agents/knowledge-bases
-
-Functions:
-https://docs.mindsdb.com/mindsdb_sql/functions/custom_functions
-https://docs.mindsdb.com/mindsdb_sql/functions/llm_function
-
-Standard SQL Support:
-https://docs.mindsdb.com/mindsdb_sql/sql_support/cte
-https://docs.mindsdb.com/mindsdb_sql/sql_support/case-when
-https://docs.mindsdb.com/mindsdb_sql/sql_support/aggregate-functions
-https://docs.mindsdb.com/mindsdb_sql/sql_support/window-functions
diff --git a/docs/sitemaps/use_cases.mdx b/docs/sitemaps/use_cases.mdx
deleted file mode 100644
index 771cca4429f..00000000000
--- a/docs/sitemaps/use_cases.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: MindsDB Use Cases - Sitemap
----
-
-Use Cases:
-https://docs.mindsdb.com/use-cases/overview
-
-Automated Fine-Tuning:
-https://docs.mindsdb.com/use-cases/automated_finetuning/overview
-https://docs.mindsdb.com/use-cases/automated_finetuning/openai
-https://docs.mindsdb.com/use-cases/automated_finetuning/classification
-https://docs.mindsdb.com/use-cases/automated_finetuning/regression
-
-AI Agents:
-https://docs.mindsdb.com/use-cases/ai_agents/overview
-https://docs.mindsdb.com/use-cases/ai_agents/build_ai_agents
-
-AI-Powered Data Retrieval:
-https://docs.mindsdb.com/use-cases/ai-powered_data_retrieval/overview
-https://docs.mindsdb.com/use-cases/ai-powered_data_retrieval/embedding-model
-https://docs.mindsdb.com/use-cases/ai-powered_data_retrieval/recommenders
-
-Data Enrichment:
-https://docs.mindsdb.com/use-cases/data_enrichment/overview
-https://docs.mindsdb.com/use-cases/data_enrichment/image-generator
-https://docs.mindsdb.com/use-cases/data_enrichment/json-from-text
-https://docs.mindsdb.com/use-cases/data_enrichment/text-summarization-inside-mysql-with-openai
-https://docs.mindsdb.com/use-cases/data_enrichment/text-summarization-inside-mongodb-with-openai
-https://docs.mindsdb.com/use-cases/data_enrichment/sentiment-analysis-inside-mysql-with-openai
-https://docs.mindsdb.com/use-cases/data_enrichment/sentiment-analysis-inside-mongodb-with-openai
-https://docs.mindsdb.com/use-cases/data_enrichment/question-answering-inside-mysql-with-openai
-https://docs.mindsdb.com/use-cases/data_enrichment/question-answering-inside-mongodb-with-openai
-https://docs.mindsdb.com/use-cases/data_enrichment/text-sentiment-hf
-https://docs.mindsdb.com/use-cases/data_enrichment/hugging-face-examples
-https://docs.mindsdb.com/use-cases/data_enrichment/hugging-face-inference-api-examples
-
-Predictive Analytics:
-https://docs.mindsdb.com/use-cases/predictive_analytics/overview
-https://docs.mindsdb.com/use-cases/predictive_analytics/house-sales-forecasting
-https://docs.mindsdb.com/use-cases/predictive_analytics/eeg-forecasting
-
-In-Database Machine Learning:
-https://docs.mindsdb.com/use-cases/in-database_ml/overview
-https://docs.mindsdb.com/use-cases/in-database_ml/customer-churn
-https://docs.mindsdb.com/use-cases/in-database_ml/home-rentals
-
-AI Workflow Automation:
-https://docs.mindsdb.com/use-cases/ai_workflow_automation/overview
-https://docs.mindsdb.com/use-cases/ai_workflow_automation/slack-chatbot
-https://docs.mindsdb.com/use-cases/ai_workflow_automation/twitter-chatbot
-https://docs.mindsdb.com/use-cases/ai_workflow_automation/twilio-chatbot
-https://docs.mindsdb.com/use-cases/ai_workflow_automation/customer-reviews-notifications
-https://docs.mindsdb.com/use-cases/ai_workflow_automation/real-time-trading-forecasts
diff --git a/docs/sql/data-insights.mdx b/docs/sql/data-insights.mdx
deleted file mode 100644
index a2c52bc48d9..00000000000
--- a/docs/sql/data-insights.mdx
+++ /dev/null
@@ -1,130 +0,0 @@
----
-title: Data Insights
-sidebarTitle: Data Insights
----
-
-Data Insights is a data visualization feature of the MindsDB editor.
-
-It lets you explore the queried data by initially displaying and analyzing a
-subset of the first ten rows. You can choose to analyze a full dataset by
-clicking the `Full Data Analysis` button. The analysis presents the distribution
-of your data aggregated by column.
-
-
-
-
-
-The data used here comes from one of our tutorials. For details, click
-[here](/sql/tutorials/home-rentals/).
-
-Before you see the Data Insights pane, you must run a `SELECT` query on your
-dataset. Let's have a look at the available features.
-
-## Features
-
-### Distribution of Data per Column
-
-When opening the Data Insights pane, you see the distribution of data of each
-output dataset column. Initially, the visualization and analysis of the first
-ten rows is shown, as below.
-
-
-
-
-
-There is one histogram per column that depicts the column name, data types of
-the distribution, and the distribution itself.
-
-### `Potential Bias` Flag
-
-To see the `Potential Bias` flag, enter a full-screen mode of the Data Insights
-pane.
-
-
-
-
-
-Here, the `location` column exhibits potential bias, as there are more `great`
-column values than `good` or `poor` column values. Such cases are typically
-flagged. However, it does not necessarily mean that there is a problem with the
-dataset.
-
-The `Potential Bias` flag is used when data does not distribute normally or
-uniformly, likely over-representing or under-representing some values. This may
-be normal, hence, bias is only potential.
-
-### `Missing Values` Flag
-
-To see the `Missing Values` flag, enter a full-screen mode of the Data Insights
-pane.
-
-This flag indicates the proportion of missing values in a column. Columns with a
-high percentage of missing values are not useful for modeling purposes. Hence,
-it is recommended to pay attention to the `Missing Values` flag and try to
-mitigate it whenever possible, as it indicates the degrading quality of your
-data.
-
-### Hovering Over the Histogram
-
-When hovering over the histogram, you get the information on a particular column
-value and how many of such values are present in a column. The format is
-`(column_value, count)`.
-
-
-
-
-
-It is helpful to determine the exact data value counts from the histograms.
-
-## Full Data Analysis
-
-Let's do a full data analysis step by step.
-
-First, we need to query data for analysis in the MindsDB editor. Please
-note that you need to query your dataset without using a `LIMIT` keyword to be
-able to perform a complete data analysis.
-
-```sql
-SELECT *
-FROM example_db.demo_data.home_rentals;
-```
-
-On execution, we get:
-
-```sql
-+---------------+-------------------+----+--------+--------------+--------------+------------+
-|number_of_rooms|number_of_bathrooms|sqft|location|days_on_market|neighborhood |rental_price|
-+---------------+-------------------+----+--------+--------------+--------------+------------+
-|2 |1 |917 |great |13 |berkeley_hills|3901 |
-|0 |1 |194 |great |10 |berkeley_hills|2042 |
-|1 |1 |543 |poor |18 |westbrae |1871 |
-|2 |1 |503 |good |10 |downtown |3026 |
-|3 |2 |1066|good |13 |thowsand_oaks |4774 |
-+---------------+-------------------+----+--------+--------------+--------------+------------+
-```
-
-Now, open the Data Insights pane by clicking the `Data Insights` button to the
-right of the output table. Initially, it shows the analysis of the first ten
-rows of the output table.
-
-
-
-
-
-To perform a complete analysis of your data, you can either go to a full-screen
-mode or stay in a pane mode and click on the `Full Data Analysis` button. Below
-is the complete data analysis.
-
-
-
-
-
-Also, whenever your dataset changes, you can click on the
-`Refresh Data Analysis` button to update the data visualization and analysis.
-
-## What's Next?
-
-Want to do more exploratory data analysis in MindsDB? We’re collecting feedback
-to develop even more data visualization features. Let us know what you'd like to
-see as part of Data Insights.
-
diff --git a/docs/sql/feature-eng.mdx b/docs/sql/feature-eng.mdx
deleted file mode 100644
index 714ea1878a7..00000000000
--- a/docs/sql/feature-eng.mdx
+++ /dev/null
@@ -1,620 +0,0 @@
----
-title: Feature Engineering in MindsDB
-sidebarTitle: Feature Engineering
----
-
-The more data you have, the more accurate predictions you get.
-
-We recommend you provide the predictor with as many historical data rows and data columns as possible to make your predictions even more accurate. The examples presented here prove this hypothesis.
-
-If you want to follow the examples, install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-
-## Prerequisites
-
-The base table is available in the `example_db` integration in the MindsDB Editor. In order to be able to use it, you must first create a database like this:
-
-```sql
-CREATE DATABASE example_db
-WITH ENGINE = "postgres",
-PARAMETERS = {
- "user": "demo_user",
- "password": "demo_password",
- "host": "samples.mindsdb.com",
- "port": "5432",
- "database": "demo"
-};
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-Once that's done, you can run the following commands with us.
-
-## Example: Adding More Data Columns
-
-### Introduction
-
-Here, we'll create several predictors using the same table, increasing the number of data columns with each step.
-
-We start with the base table and create a predictor based on it. Then we add two columns to our base table and again create a predictor based on the enhanced table. At last, we add another two columns and create a predictor.
-
-By comparing the accuracies of the predictors, we'll find that more data results in more accurate predictions.
-
-Let's get started.
-
-### Let's Run the Codes
-
-Here, we go through the codes for the base table and enhanced base tables simultaneously.
-
-#### Data Setup
-
-Let's prepare and verify the data. Here, we create the views and query them to ensure the input for the predictors is in order.
-
-
-
-
- Let's start by querying the data from the `example_db.demo_data.used_car_price` table, which is our base table.
-
- ```sql
- SELECT *
- FROM example_db.demo_data.used_car_price
- LIMIT 5;
- ```
-
- On execution, we get:
-
- ```sql
- +-----+----+-----+------------+-------+--------+---+----+----------+
- |model|year|price|transmission|mileage|fueltype|tax|mpg |enginesize|
- +-----+----+-----+------------+-------+--------+---+----+----------+
- | A1 |2017|12500|Manual |15735 |Petrol |150|55.4|1.4 |
- | A6 |2016|16500|Automatic |36203 |Diesel |20 |64.2|2 |
- | A1 |2016|11000|Manual |29946 |Petrol |30 |55.4|1.4 |
- | A4 |2017|16800|Automatic |25952 |Diesel |145|67.3|2 |
- | A3 |2019|17300|Manual |1998 |Petrol |145|49.6|1 |
- +-----+----+-----+------------+-------+--------+---+----+----------+
- ```
-
- Where:
-
-
-
-
-
Name
-
Description
-
-
-
-
-
model
-
Model of the car.
-
-
-
year
-
Year of production.
-
-
-
price
-
Price of the car.
-
-
-
transmission
-
Transmission (Manual, or Automatic, or Semi-Auto).
-
-
-
mileage
-
Mileage of the car.
-
-
-
fueltype
-
Fuel type of the car.
-
-
-
tax
-
Tax.
-
-
-
mpg
-
Miles per gallon.
-
-
-
enginesize
-
Engine size of the car.
-
-
-
-
-
-
-
-
-
- Let's create a view based on the `example_db.demo_data.used_car_price` table, and add two more columns. Please note that we replace the `mpg` column with the `kml` column.
-
- The added columns are:
- - the `kml` column, calculated from the `mpg` column using the formula like in the query below, stands for `kilometers per liter`,
- - the `years_old` column, calculated by subtracting car's year from the current date, stands for car's age.
-
- ```sql
- CREATE VIEW used_car_price_plus_2_columns (
- SELECT * FROM example_db (
- SELECT
- model,
- year,
- price,
- transmission,
- mileage,
- fueltype,
- tax,
- enginesize,
- ROUND(CAST((mpg / 2.3521458) AS numeric), 1) AS kml, -- mpg (miles per galon) is replaced with kml (kilometers per liter)
- (date_part('year', CURRENT_DATE)-year) AS years_old -- age of a car
- FROM demo_data.used_car_price
- )
- );
- ```
-
- On execution, we get:
-
- ```sql
- Query OK, 0 rows affected (x.xxx sec)
- ```
-
- Let's query the newly created view.
-
- ```sql
- SELECT *
- FROM mindsdb.used_car_price_plus_2_columns
- LIMIT 5;
- ```
-
- On execution, we get:
-
- ```sql
- +-----+----+-----+------------+-------+--------+---+----+----------+----+---------+
- |model|year|price|transmission|mileage|fueltype|tax|mpg |enginesize|kml |years_old|
- +-----+----+-----+------------+-------+--------+---+----+----------+----+---------+
- | A1 |2017|12500|Manual |15735 |Petrol |150|55.4|1.4 |23.6|5 |
- | A6 |2016|16500|Automatic |36203 |Diesel |20 |64.2|2 |27.3|6 |
- | A1 |2016|11000|Manual |29946 |Petrol |30 |55.4|1.4 |23.6|6 |
- | A4 |2017|16800|Automatic |25952 |Diesel |145|67.3|2 |28.6|5 |
- | A3 |2019|17300|Manual |1998 |Petrol |145|49.6|1 |21.1|3 |
- +-----+----+-----+------------+-------+--------+---+----+----------+----+---------+
- ```
-
-
-
- Let's create a view based on the `example_db.demo_data.used_car_price` table, and add four more columns. Please note that we replace the `mpg` column with the `kml` column.
-
- The added columns are:
- - the `kml` column, calculated from the `mpg` column using the formula like in the query below, stands for `kilometers per liter`,
- - the `years_old` column, calculated by subtracting car's year from the current date, stands for car's age,
- - the `units_to_sell` column, calculated using the `OVER` and `PARTITION BY` clauses, indicates how many units of a certain car model are sold in a year,
- - the `tax_div_price` column, calculated by dividing the `tax` column by the `price` column.
-
- ```sql
- CREATE VIEW used_car_price_plus_another_2_columns (
- SELECT * FROM example_db (
- SELECT
- model,
- year,
- price,
- transmission,
- mileage,
- fueltype,
- tax,
- enginesize,
- ROUND(CAST((mpg / 2.3521458) AS numeric), 1) AS kml, -- mpg (miles per galon) is replaced with kml (kilometers per liter)
- (date_part('year', CURRENT_DATE)-year) AS years_old, -- age of a car
- COUNT(*) OVER (PARTITION BY model, year) AS units_to_sell, -- how many units of a certain model are sold in a year
- ROUND((CAST(tax AS decimal) / price), 3) AS tax_div_price -- value of tax divided by price of a car
- FROM demo_data.used_car_price
- )
- );
- ```
-
- On execution, we get:
-
- ```sql
- Query OK, 0 rows affected (x.xxx sec)
- ```
-
- Let's query the newly created view.
-
- ```sql
- SELECT *
- FROM mindsdb.used_car_price_plus_another_2_columns
- LIMIT 5;
- ```
-
- On execution, we get:
-
- ```sql
- +-----+----+-----+------------+-------+--------+---+----+----------+----+---------+-------------+-------------+
- |model|year|price|transmission|mileage|fueltype|tax|mpg |enginesize|kml |years_old|units_to_sell|tax_div_price|
- +-----+----+-----+------------+-------+--------+---+----+----------+----+---------+-------------+-------------+
- | A1 |2010|9990 |Automatic |38000 |Petrol |125|53.3|1.4 |22.7|12 |1 |0.013 |
- | A1 |2011|6995 |Manual |65000 |Petrol |125|53.3|1.4 |22.7|11 |5 |0.018 |
- | A1 |2011|6295 |Manual |107000 |Petrol |125|53.3|1.4 |22.7|11 |5 |0.020 |
- | A1 |2011|4250 |Manual |116000 |Diesel |20 |70.6|1.6 |30.0|11 |5 |0.005 |
- | A1 |2011|6475 |Manual |45000 |Diesel |0 |70.6|1.6 |30.0|11 |5 |0.000 |
- +-----+----+-----+------------+-------+--------+---+----+----------+----+---------+-------------+-------------+
- ```
-
-
-
-
- **Dropping a View** If you want to drop a view, run the command `DROP VIEW view_name;`.
-
-
-#### Creating Predictors
-
-Now, we create models based on the `example_db.demo_data.used_car_price` table and its extensions.
-
-
-
-
- ```sql
- CREATE MODEL mindsdb.price_predictor
- FROM example_db
- (SELECT * FROM demo_data.used_car_price)
- PREDICT price;
- ```
-
- On execution, we get:
-
- ```sql
- Query OK, 0 rows affected (x.xxx sec)
- ```
-
-
-
- ```sql
-
- CREATE MODEL mindsdb.price_predictor_plus_2_columns
- FROM mindsdb
- (SELECT * FROM used_car_price_plus_2_columns)
- PREDICT price;
- ```
-
- On execution, we get:
-
- ```sql
- Query OK, 0 rows affected (x.xxx sec)
- ```
-
-
-
- ```sql
- CREATE MODEL mindsdb.price_predictor_plus_another_2_columns
- FROM mindsdb
- (SELECT * FROM used_car_price_plus_another_2_columns)
- PREDICT price;
- ```
-
- On execution, we get:
-
- ```sql
- Query OK, 0 rows affected (x.xxx sec)
- ```
-
-
-
-
- **Dropping a Predictor** If you want to drop a predictor, run the command `DROP MODEL predictor_name;`.
-
-
-#### Predictor Status
-
-Finally, let's check the predictor status whose value is `generating` at first, then `training`, and at last, `complete`.
-
-
-
-
- ```sql
- DESCRIBE price_predictor;
- ```
-
- On execution, we get:
-
- ```sql
- +---------------+--------+--------+---------+-------------+---------------+------+--------------------------------------+----------------+
- |name |status |accuracy|predict |update_status|mindsdb_version|error |select_data_query |training_options|
- +---------------+--------+--------+---------+-------------+---------------+------+--------------------------------------+----------------+
- |price_predictor|complete|0.963 |price |up_to_date |22.10.2.1 |[NULL]|SELECT * FROM demo_data.used_car_price| |
- +---------------+--------+--------+---------+-------------+---------------+------+--------------------------------------+----------------+
- ```
-
-
-
- ```sql
- DESCRIBE price_predictor_plus_2_columns;
- ```
-
- On execution, we get:
-
- ```sql
- +------------------------------+--------+--------+---------+-------------+---------------+------+-------------------------------------------+----------------+
- |name |status |accuracy|predict |update_status|mindsdb_version|error |select_data_query |training_options|
- +------------------------------+--------+--------+---------+-------------+---------------+------+-------------------------------------------+----------------+
- |price_predictor_plus_2_columns|complete|0.965 |price |up_to_date |22.10.2.1 |[NULL]|SELECT * FROM used_car_price_plus_2_columns| |
- +------------------------------+--------+--------+---------+-------------+---------------+------+-------------------------------------------+----------------+
- ```
-
-
-
- ```sql
- DESCRIBE price_predictor_plus_another_2_columns;
- ```
-
- On execution, we get:
-
- ```sql
- +--------------------------------------+--------+--------+---------+-------------+---------------+------+---------------------------------------------------+----------------+
- |name |status |accuracy|predict |update_status|mindsdb_version|error |select_data_query |training_options|
- +--------------------------------------+--------+--------+---------+-------------+---------------+------+---------------------------------------------------+----------------+
- |price_predictor_plus_another_2_columns|complete|0.982 |price |up_to_date |22.10.2.1 |[NULL]|SELECT * FROM used_car_price_plus_another_2_columns| |
- +--------------------------------------+--------+--------+---------+-------------+---------------+------+---------------------------------------------------+----------------+
- ```
-
-
-
-### Accuracy Comparison
-
-Once the training process of all three predictors completes, we see the accuracy values.
-
-* For the base table, we get an accuracy value of `0.963`.
-* For the base table with two more data columns, we get an accuracy value of `0.965`. The accuracy value increased, as expected.
-* For the base table with four more data columns, we get an accuracy value of `0.982`. The accuracy value increased again, as expected.
-
-### True vs Predicted Price Comparison
-
-Let's compare how close the predicted price values are to the true price.
-
-```sql
-+-------+-------+---------------+-----------+-----------+--------------+----------------+----------------+---------------+
-| model | year | transmission | fueltype | mileage | true_price | pred_price_1 | pred_price_2 | pred_price_3 |
-+-------+-------+---------------+-----------+-----------+--------------+----------------+----------------+---------------+
-| A1 | 2017 | Manual | Petrol | 7620 | 14440 | 17268 | 17020 | 14278 |
-| A6 | 2016 | Automatic | Diesel | 20335 | 18982 | 17226 | 17935 | 19016 |
-| A3 | 2018 | Semi-Auto | Diesel | 9058 | 19900 | 25641 | 23008 | 21286 |
-+-------+-------+---------------+-----------+-----------+--------------+----------------+----------------+---------------+
-```
-
-The prices predicted by the third predictor, having the highest accuracy value, are the closest to the true price, as expected.
-
-## Example: Joining Data Tables
-
-### Introduction
-
-We start by creating a predictor from the `car_sales` table. Then, we add more data by joining the `car_sales` and `car_info` tables. We create a predictor based on the `car_sales_info` view.
-
-Let's get started.
-
-### Let's Run the Codes
-
-Here, we go through the codes using partial tables and the full table after joining the data.
-
-#### Data Setup
-
-Here is the `car_sales` table:
-
-```sql
-SELECT *
-FROM example_db.demo_data.car_sales
-LIMIT 5;
-```
-
-On execution, we get:
-
-```sql
-+-----+----+-----+------------+-------+--------+---+
-|model|year|price|transmission|mileage|fueltype|tax|
-+-----+----+-----+------------+-------+--------+---+
-| A1 |2017|12500|Manual |15735 |Petrol |150|
-| A6 |2016|16500|Automatic |36203 |Diesel |20 |
-| A1 |2016|11000|Manual |29946 |Petrol |30 |
-| A4 |2017|16800|Automatic |25952 |Diesel |145|
-| A3 |2019|17300|Manual |1998 |Petrol |145|
-+-----+----+-----+------------+-------+--------+---+
-```
-
-Where:
-
-| Name | Description |
-|----------------|-------------------------------------------------------------|
-| `model` | Model of the car. |
-| `year` | Year of production. |
-| `price` | Price of the car. |
-| `transmission` | Transmission (`Manual`, or `Automatic`, or `Semi-Auto`). |
-| `mileage` | Mileage of the car. |
-| `fueltype` | Fuel type of the car. |
-| `tax` | Tax. |
-
-And here is the `car_info` table:
-
-```sql
-SELECT *
-FROM example_db.demo_data.car_info
-LIMIT 5;
-```
-
-On execution, we get:
-
-```sql
-+-----+----+------------+---------+-----+----------+
-|model|year|transmission|fueltype |mpg |enginesize|
-+-----+----+------------+---------+-----+----------+
-| A1 |2010|Automatic |Petrol |53.3 |1.4 |
-| A1 |2011|Manual |Diesel |70.6 |1.6 |
-| A1 |2011|Manual |Petrol |53.3 |1.4 |
-| A1 |2012|Automatic |Petrol |50.6 |1.4 |
-| A1 |2012|Manual |Diesel |72.95|1.7 |
-+-----+----+------------+---------+-----+----------+
-```
-
-Where:
-
-| Name | Description |
-|----------------|-------------------------------------------------------------|
-| `model` | Model of the car. |
-| `year` | Year of production. |
-| `transmission` | Transmission (`Manual`, or `Automatic`, or `Semi-Auto`). |
-| `fueltype` | Fuel type of the car. |
-| `mpg` | Miles per gallon. |
-| `enginesize` | Engine size of the car. |
-
-Let's join the `car_sales` and `car_info` tables on the `model`, `year`, `transmission`, and `fueltype` columns.
-
-```sql
-SELECT * FROM example_db
-(
- SELECT s.*, i.mpg, i.enginesize
- FROM demo_data.car_sales s
- JOIN demo_data.car_info i
- ON s.model=i.model
- AND s.year=i.year
- AND s.transmission=i.transmission
- AND s.fueltype=i.fueltype
-)
-LIMIT 5;
-```
-
-
- **Nested `SELECT` Statements** Please note that we use the nested `SELECT` statement in order to trigger native query at the MindsDB Cloud Editor. Here, the `example_db` database is a PostgreSQL database, so we trigger PostgreSQL-native syntax.
-
-
-On execution, we get:
-
-```sql
-+-----+----+-----+------------+-------+--------+---+----+----------+
-|model|year|price|transmission|mileage|fueltype|tax|mpg |enginesize|
-+-----+----+-----+------------+-------+--------+---+----+----------+
-| A1 |2010|9990 |Automatic |38000 |Petrol |125|53.3|1.4 |
-| A1 |2011|4250 |Manual |116000 |Diesel |20 |70.6|1.6 |
-| A1 |2011|6475 |Manual |45000 |Diesel |0 |70.6|1.6 |
-| A1 |2011|6295 |Manual |107000 |Petrol |125|53.3|1.4 |
-| A1 |2011|7495 |Manual |60700 |Petrol |125|53.3|1.4 |
-+-----+----+-----+------------+-------+--------+---+----+----------+
-```
-
-Now, we create a view based on the `JOIN` query:
-
-```sql
-CREATE VIEW car_sales_info
-(
- SELECT * FROM example_db
- (
- SELECT s.*, i.mpg, i.enginesize
- FROM demo_data.car_sales s
- JOIN demo_data.car_info i
- ON s.model=i.model
- AND s.year=i.year
- AND s.transmission=i.transmission
- AND s.fueltype=i.fueltype
- )
-);
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-Let's verify the view by selecting from it.
-
-```sql
-SELECT *
-FROM mindsdb.car_sales_info
-LIMIT 5;
-```
-
-On execution, we get:
-
-```sql
-+-----+----+-----+------------+-------+--------+---+----+----------+
-|model|year|price|transmission|mileage|fueltype|tax|mpg |enginesize|
-+-----+----+-----+------------+-------+--------+---+----+----------+
-| A1 |2010|9990 |Automatic |38000 |Petrol |125|53.3|1.4 |
-| A1 |2011|4250 |Manual |116000 |Diesel |20 |70.6|1.6 |
-| A1 |2011|6475 |Manual |45000 |Diesel |0 |70.6|1.6 |
-| A1 |2011|6295 |Manual |107000 |Petrol |125|53.3|1.4 |
-| A1 |2011|7495 |Manual |60700 |Petrol |125|53.3|1.4 |
-+-----+----+-----+------------+-------+--------+---+----+----------+
-```
-
-#### Creating Predictors
-
-Let's create a predictor with the `car_sales` table as input data.
-
-```sql
-CREATE MODEL mindsdb.price_predictor_car_sales
-FROM example_db
- (SELECT * FROM demo_data.car_sales)
-PREDICT price;
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-Now, let's create a predictor for the table that is a `JOIN` between the `car_sales` and `car_info` tables.
-
-```sql
-CREATE MODEL mindsdb.price_predictor_car_sales_info
-FROM mindsdb
- (SELECT * FROM car_sales_info)
-PREDICT price;
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-#### Predictor Status
-
-Next, we check the status of both predictors.
-
-We start with the predictor based on the partial table.
-
-```sql
-DESCRIBE price_predictor_car_sales;
-```
-
-On execution, we get:
-
-```sql
-+-------------------------+--------+--------+---------+-------------+---------------+------+---------------------------------+----------------+
-|name |status |accuracy|predict |update_status|mindsdb_version|error |select_data_query |training_options|
-+-------------------------+--------+--------+---------+-------------+---------------+------+---------------------------------+----------------+
-|price_predictor_car_sales|complete|0.912 |price |up_to_date |22.10.2.1 |[NULL]|SELECT * FROM demo_data.car_sales| |
-+-------------------------+--------+--------+---------+-------------+---------------+------+---------------------------------+----------------+
-```
-
-And now, for the predictor based on the full table.
-
-```sql
-DESCRIBE price_predictor_car_sales_info;
-```
-
-On execution, we get:
-
-```sql
-+------------------------------+--------+--------+---------+-------------+---------------+------+----------------------------+----------------+
-|name |status |accuracy|predict |update_status|mindsdb_version|error |select_data_query |training_options|
-+------------------------------+--------+--------+---------+-------------+---------------+------+----------------------------+----------------+
-|price_predictor_car_sales_info|complete|0.912 |price |up_to_date |22.10.2.1 |[NULL]|SELECT * FROM car_sales_info| |
-+------------------------------+--------+--------+---------+-------------+---------------+------+----------------------------+----------------+
-```
-
-### Accuracy Comparison
-
-The accuracy values are 0.912 for both the predictors. The predictor already learns how the combination of `model+year+transmission+fueltype` affects the price, so joining more data columns doesn't play a role in this particular example.
diff --git a/docs/tutorials/images/sentiment-analysis-on-french-tweets/batch.png b/docs/tutorials/images/sentiment-analysis-on-french-tweets/batch.png
deleted file mode 100644
index 553affc3221..00000000000
Binary files a/docs/tutorials/images/sentiment-analysis-on-french-tweets/batch.png and /dev/null differ
diff --git a/docs/tutorials/images/sentiment-analysis-on-french-tweets/createmysqldb.png b/docs/tutorials/images/sentiment-analysis-on-french-tweets/createmysqldb.png
deleted file mode 100644
index b6f4db4978a..00000000000
Binary files a/docs/tutorials/images/sentiment-analysis-on-french-tweets/createmysqldb.png and /dev/null differ
diff --git a/docs/tutorials/images/sentiment-analysis-on-french-tweets/query.png b/docs/tutorials/images/sentiment-analysis-on-french-tweets/query.png
deleted file mode 100644
index 1c93bd41139..00000000000
Binary files a/docs/tutorials/images/sentiment-analysis-on-french-tweets/query.png and /dev/null differ
diff --git a/docs/tutorials/images/sentiment-analysis-on-french-tweets/querythemodel.png b/docs/tutorials/images/sentiment-analysis-on-french-tweets/querythemodel.png
deleted file mode 100644
index 8b125158349..00000000000
Binary files a/docs/tutorials/images/sentiment-analysis-on-french-tweets/querythemodel.png and /dev/null differ
diff --git a/docs/tutorials/images/sentiment-analysis-on-french-tweets/railwaydetails.png b/docs/tutorials/images/sentiment-analysis-on-french-tweets/railwaydetails.png
deleted file mode 100644
index 690fb5202a5..00000000000
Binary files a/docs/tutorials/images/sentiment-analysis-on-french-tweets/railwaydetails.png and /dev/null differ
diff --git a/docs/tutorials/sentiment-analysis-intercom-data-airbyte.mdx b/docs/tutorials/sentiment-analysis-intercom-data-airbyte.mdx
deleted file mode 100644
index 0e384886cea..00000000000
--- a/docs/tutorials/sentiment-analysis-intercom-data-airbyte.mdx
+++ /dev/null
@@ -1,107 +0,0 @@
----
-Augmenting Intercom Chats with GPT for Sentiment Analysis
----
-
-## Introduction
-
-In this tutorial, we'll analyze sentiment of Intercom conversations. We'll use Airbyte to extract data from Intercom and store it into a Google BigQuery database. Then, we'll make this data available to MindsDB, create and deploy a GPT model within MindsDB, and join both data and a model to predict the sentiment values to be further analyzed in business analytics tools.
-
-## Data Setup
-
-We use Airbyte to pull data from Intercom and load it into a Google BigQuery database.
-
-You can try [Airbyte Cloud](https://airbyte.com/airbyte-cloud) or use the [Airbyte Open Source](https://github.com/airbytehq/airbyte) version.
-
-Follow [this video](https://www.youtube.com/watch?v=9ejCUKC9K7U) or [this detailed tutorial]() to learn how to pull conversation data from Intercom and load it into a Google BigQuery database using Airbyte and visualize it using Metabase analytics.
-
-## Connecting a Database
-
-Now you can connect the Google BigQuery database that stores the Intercom data to MindsDB.
-
-```sql
-CREATE DATABASE bqdataset
-WITH
- engine = "bigquery",
- parameters = {
- "project_id": "bgtest-1111",
- "dataset": "mydataset",
- "service_account_keys": "/tmp/keys.json"
- };
-```
-
-Follow [this instruction](https://docs.mindsdb.com/data-integrations/google-bigquery) to connect your database to MindsDB.
-
-## Creating a model
-
-Let's create a GPT model that we'll use to predict sentiment of Intercom conversations.
-
-
-Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-
-```sql
-CREATE MODEL sentiment_classifier_model
-PREDICT sentiment
-USING
- engine = 'openai_engine',
- model_name = 'text-davinci-003',
- prompt_template = 'describe the user sentiment from the following conversation STRICTLY as positive or neutral or negative.\n###\n{{full_conversation}} \n###\nSentiment [positive/neutral/negative]:';
-```
-
-Here is how we can check its status:
-
-```sql
-DESCRIBE sentiment_classifier_model;
-```
-
-Once the status is complete, we can proceeed to make predictions.
-
-## Making batch predictions
-
-Now we join our data table (joined_conversations) that stores Intercom conversations with the model (sentiment_classifier_model) created in MindsDB. That's how we can make batch predictions for all conversations at once.
-
-```sql
-SELECT
- joined_conversations.conversation_id,
- -- joined_conversations.full_conversation,
- sentiments.sentiment
-
-FROM
-
- -- data table that stores conversations
- (
- -- using native bigquery syntax
- SELECT * FROM bqdataset (
- SELECT
- conversation_id,
- STRING_AGG(p.body, "\n" ORDER BY p.created_at ASC LIMIT 15) AS full_conversation,
- FROM conversation_parts p
- WHERE
- JSON_VALUE(p.author, '$.type') = 'user'
- GROUP BY conversation_id LIMIT 10
- )
- ) AS joined_conversations
-
-JOIN
-
- -- model that analyzes sentiment
- sentiment_classifier_model AS sentiments;
-```
-
-Run it in the MindsDB editor to find out the output.
-
-## What's Next?
-
-Want to learn more about MindsDB? Check out these resources:
-
-- [MindsDB](https://mindsdb.com/)
-- [MindsDB Documentation](https://docs.mindsdb.com/)
-- [Slack](https://mindsdb.com/joincommunity)
-- [GitHub](https://github.com/mindsdb/mindsdb/)
diff --git a/docs/use-cases/ai-powered_data_retrieval/overview.mdx b/docs/use-cases/ai-powered_data_retrieval/overview.mdx
deleted file mode 100644
index 0c7a6f9712c..00000000000
--- a/docs/use-cases/ai-powered_data_retrieval/overview.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: AI-Powered Data Retrieval
-sidebarTitle: Overview
----
-
-MindsDB facilitates AI-powered search of data in the form of documents, websites, or databases. You can search and retrieve data easily using AI models. Also, you can create recommendation systems based on historical data.
-
-
-
-
-
-This section covers the following use cases:
-
- - Semantic search
- - Embeddings models
- - Recommenders
-
-
-
-
-Available tutorials:
-
-
-
-
-
-
-
diff --git a/docs/use-cases/ai-powered_data_retrieval/recommenders.mdx b/docs/use-cases/ai-powered_data_retrieval/recommenders.mdx
deleted file mode 100644
index c0544d6104d..00000000000
--- a/docs/use-cases/ai-powered_data_retrieval/recommenders.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Recommender Models
-sidebarTitle: Recommender Models
----
-
-Currently, there are two recommender models available in MindsDB.
-
-Check out examples here:
-
-- [Popularity Recommender](/integrations/ai-engines/popularity-recommender),
-- [LightFM](/integrations/ai-engines/lightfm).
diff --git a/docs/use-cases/ai_agents/build_ai_agents.mdx b/docs/use-cases/ai_agents/build_ai_agents.mdx
deleted file mode 100644
index e5cc7a71b3f..00000000000
--- a/docs/use-cases/ai_agents/build_ai_agents.mdx
+++ /dev/null
@@ -1,158 +0,0 @@
----
-title: Build an AI Agent with MindsDB
-sidebarTitle: Build an AI Agent
----
-
-MindsDB provides a custom syntax to build AI agents that comprises an AI model augmented with users' data access. AI agents can be connected to a chat interface, like Slack or MS Teams, to create chatbots.
-
-See details following [this link for Agents](/mindsdb_sql/agents/agent) and [this link for Chatbots](/mindsdb_sql/agents/chatbot).
-
-## Step-by-Step Tutorial
-
-This tutorial demonstrates how to build AI agents with MindsDB using MindsDB SQL editor. This can be also accomplished with [APIs](/rest/agents/create-agent) and [Python SDK](/sdks/python/agents).
-
-Let's list all the steps required to build an AI agent.
-
-
-
- Create a conversational model using the [LangChain integration](/integrations/ai-engines/langchain).
-
-
- Create one or more skills to be assigned to an agent.
- *Note that skills store data to be passed to an agent, so it is required to connect users' data to MindsDB before creating skills.*
-
-
- Create an AI agent providing the conversational model and the set of skills.
-
-
- Optionally, connect an agent to a chat interface to create a chatbot.
-
-
-
-The following sections walk you through the process of building an AI agent.
-
-## Step 1. Create a conversational model
-
-Use the `CREATE MODEL` statement below to create a conversational model. If required, adjust the parameters and prompts to fit your use case.
-
-```sql
-CREATE MODEL conversational_model
-PREDICT answer
-USING
- engine = 'langchain',
- openai_api_key = 'YOUR_OPENAI_API_KEY_HERE',
- model_name = 'gpt-4',
- mode = 'conversational',
- user_column = 'question' ,
- assistant_column = 'answer',
- max_tokens = 100,
- temperature = 0,
- verbose = True,
- prompt_template = 'Answer the user input in a helpful way';
-```
-
-Ensure that the model status reads `complete` using this command:
-
-```sql
-DESCRIBE conversational_model;
-```
-
-Learn more about [models created with LangChain](/integrations/ai-engines/langchain).
-
-## Step 2. Create skills
-
-A skill is essentially users' data fed to the model, so the model can answer questions over users' data.
-
-First, connect your database to MindsDB. Here the sample database is used.
-
-```sql
-CREATE DATABASE datasource
-WITH ENGINE = "postgres",
-PARAMETERS = {
- "user": "demo_user",
- "password": "demo_password",
- "host": "samples.mindsdb.com",
- "port": "5432",
- "database": "demo",
- "schema": "demo_data"
-};
-```
-
-Create a skill using the connected data.
-
-```sql
-CREATE SKILL text2sql_skill
-USING
- type = 'text2sql',
- database = 'datasource', -- connect your database with CREATE DATABASE and pass its name here
- tables = ['car_sales'], -- list table(s) to be made accessible by an agent
- description = 'this is car sales data';
-```
-
-Note that there are two types of skills: text-to-SQL and knowledge bases. Learn more about [skills here](/mindsdb_sql/agents/agent#create-skills).
-
-Verify that the skill has been created successully using this command:
-
-```sql
-SHOW SKILLS;
-```
-
-## Step 3. Create an AI agent
-
-Now that both the conversational model and the skill are ready, let's create an AI agent.
-
-```sql
-CREATE AGENT ai_agent
-USING
- model = 'conversational_model',
- skills = ['text2sql_skill'];
-```
-
-Verify that the agent has been created successully using this command:
-
-```sql
-SHOW AGENTS;
-```
-
-At this point, you can query an agent to ask questions over the data.
-
-```sql
-SELECT question, answer
-FROM ai_agent
-WHERE question = 'how many cars were sold in 2016?';
-```
-
-## Step 4. Create a chatbot
-
-Optionally, you can create a chatbot by connecitng an AI agent to a chat interface.
-
-First connect a chat interface to MindsDB. Here the Slack connection is made.
-
-```sql
-CREATE DATABASE mindsdb_slack
-WITH
- ENGINE = 'slack',
- PARAMETERS = {
- "token": "xoxb-xxx",
- "app_token": "xapp-xxx"
- };
-```
-
-Follow the instructions on how to [connect Slack to MindsDB](/integrations/app-integrations/slack#method-1-chatbot-responds-in-direct-messages-to-a-slack-app) for this use case.
-
-Now create a chatbot providing the AI agent and the Slack connection.
-
-```sql
-CREATE CHATBOT ai_chatbot
-USING
- database = 'mindsdb_slack', -- connect a chat interface with CREATE DATABASE
- agent = 'ai_agent'; -- create an agent with with CREATE AGENT
-```
-
-Verify that the chatbot is running using this command:
-
-```sql
-SHOW CHATBOTS;
-```
-
-Now you can go ahead and chat with the AI agent via Slack.
diff --git a/docs/use-cases/ai_agents/chatbots_agents.mdx b/docs/use-cases/ai_agents/chatbots_agents.mdx
deleted file mode 100644
index 76f65149ca3..00000000000
--- a/docs/use-cases/ai_agents/chatbots_agents.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Agents and Chatbots
-sidebarTitle: Agents and Chatbots
----
-
-MindsDB provides a custom syntax to create an agent that comprises an AI model and data used to customize this model. Agents are connected with a chat interface to create chatbots.
-
-See details following [this link for Agents](/mindsdb_sql/agents/agent) and [this link for Chatbots](/mindsdb_sql/agents/chatbot).
diff --git a/docs/use-cases/ai_agents/create-chatbot-kb.mdx b/docs/use-cases/ai_agents/create-chatbot-kb.mdx
deleted file mode 100644
index 5ddb68b64f9..00000000000
--- a/docs/use-cases/ai_agents/create-chatbot-kb.mdx
+++ /dev/null
@@ -1,142 +0,0 @@
----
-title: Build a Chatbot with a Knowledge Base
-sidebarTitle: Chatbot with a Knowledge Base
----
-
-MindsDB provides the `CREATE CHATBOT` statement that lets you customize your chatbot with an AI model and a data source of your choice. Follow this tutorial to learn build a chatbot with a knowledge base.
-
-The `CREATE CHATBOT` statement requires the following components:
-
-1. **Chat app**: A connection to a chat app, such as [Slack](/integrations/app-integrations/slack#method-1-chatbot-responds-in-direct-messages-to-a-slack-app) or [MS Teams](/integrations/app-integrations/microsoft-teams).
-
-2. **AI agent**: An AI agent that comes with an AI model trained with the provided training data. Learn more about [AI agents here](/agents/agent).
-
-
-Learn more about [chatbots here](/agents/chatbot).
-
-
-Let's go over getting all the components ready.
-
-## Chatbot Components
-
-### Chat App
-
-Use the `CREATE DATABASE` statement to connect the chat app to MindsDB.
-
-
-If you want to use Slack, follow [this link](/integrations/app-integrations/slack#method-1-chatbot-responds-in-direct-messages-to-a-slack-app) to setup a Slack app, generate required tokens, and connect it to MindsDB.
-
-If you want to use MS Teams, follow [this link](/integrations/app-integrations/microsoft-teams) to generate required tokens and connect it to MindsDB.
-
-
-### AI Agent
-
-Start by creating and deploying the model.
-
-
-If you haven't created a LangChain engine, use the `CREATE ML_ENGINE` statement, as explained [here](/integrations/ai-engines/langchain#ai-engine).
-
-
-```sql
-CREATE MODEL my_model
-PREDICT answer
-USING
- engine = 'langchain',
- input_column = 'question',
- openai_api_key = 'your-model-api-key', -- choose one of OpenAI (openai_api_key) or Anthropic (anthropic_api_key)
- model_name='gpt-4', -- optional model name from OpenAI or Anthropic
- mode = 'conversational',
- user_column = 'question' ,
- assistant_column = 'answer',
- max_tokens=100,
- temperature=0,
- verbose=True,
- prompt_template='Answer the user input in a helpful way';
-```
-
-Here is the command to check its status:
-
-```sql
-DESCRIBE my_model;
-```
-
-The status should read `complete` before proceeding.
-
-Next step is to create one or more skills for an AI agent. Here we create a knowledge base and assign it as a skill.
-
-In this example, let's create an embedding model (you can choose one from OpenAI, Hugging Face, or LangChain) for the knowledge base.
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-
-CREATE MODEL embedding_model
-PREDICT embeddings
-USING
- engine = 'openai_engine',
- mode='embedding',
- model_name='text-embedding-ada-002',
- question_column = 'content';
-```
-
-Now let's create a knowledge base that uses this embedding model and the default storage vector database (that is, ChromaDB).
-
-```sql
-CREATE KNOWLEDGE BASE my_knowledge_base
-USING
- model = embedding_model;
-```
-
-This is how you can insert data into the knowledge base and select it.
-
-```sql
-INSERT INTO my_knowledge_base (content)
-VALUES ('I drink tea.');
-
-SELECT * FROM my_knowledge_base;
-```
-
-Use this knowledge base to create a skill for an agent:
-
-```sql
-CREATE SKILL kb_skill
-USING
- type = 'knowledge_base',
- source = 'my_knowledge_base', -- this must be created with CREATE KNOWLEDGE BASE
- description = 'My data'; -- data description to help the agent know when to use the knowledge base
-```
-
-This skill enables a model to answer questions about data from the knowledge base.
-
-Now let's create an AI agent using the above model and skill.
-
-```sql
-CREATE AGENT support_agent
-USING
-model = my_model, -- this was created with CREATE MODEL
-skills = ['kb_skill']; -- this was created with CREATE SKILL
-```
-
-## Create Chatbot
-
-Once all the components are ready, let's proceed to creating the chatbot.
-
-```sql
-CREATE CHATBOT my_chatbot
-USING
- database = 'chat_app', -- this parameters stores a connection to a chat app, like Slack or MS Teams
- agent = 'support_agent', -- this parameter stores an agent name, which was create with CREATE AGENT
- is_running = true; -- this parameter is optional and set to true by default, meaning that the chatbot is running
-```
-
-The `database` parameter stores connection to a chat app. And the `agent` parameter stores an AI agent created by passing a model and training data.
-
-You can query all chatbot using this query:
-
-```sql
-SELECT * FROM chatbots;
-```
-
-Now you can go to Slack or MS Teams and chat with the chatbot created with MindsDB.
diff --git a/docs/use-cases/ai_agents/create-chatbot.mdx b/docs/use-cases/ai_agents/create-chatbot.mdx
deleted file mode 100644
index c73e661c78b..00000000000
--- a/docs/use-cases/ai_agents/create-chatbot.mdx
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: Build a Chatbot with a Text2SQL Skill
-sidebarTitle: Chatbot with a Text2SQL Skill
----
-
-MindsDB provides the `CREATE CHATBOT` statement that lets you customize your chatbot with an AI model and a data source of your choice. Follow this tutorial to learn build a chatbot with a Text2SQL skill.
-
-The `CREATE CHATBOT` statement requires the following components:
-
-1. **Chat app**: A connection to a chat app, such as [Slack](/integrations/app-integrations/slack#method-1-chatbot-responds-in-direct-messages-to-a-slack-app) or [MS Teams](/integrations/app-integrations/microsoft-teams).
-
-2. **AI agent**: An AI agent that comes with an AI model trained with the provided training data. Learn more about [AI agents here](/agents/agent).
-
-
-Learn more about [chatbots here](/agents/chatbot).
-
-
-Let's go over getting all the components ready.
-
-## Chatbot Components
-
-### Chat App
-
-Use the `CREATE DATABASE` statement to connect the chat app to MindsDB.
-
-
-If you want to use Slack, follow [this link](/integrations/app-integrations/slack#method-1-chatbot-responds-in-direct-messages-to-a-slack-app) to setup a Slack app, generate required tokens, and connect it to MindsDB.
-
-If you want to use MS Teams, follow [this link](/integrations/app-integrations/microsoft-teams) to generate required tokens and connect it to MindsDB.
-
-
-### AI Agent
-
-Start by creating and deploying the model.
-
-
-If you haven't created a LangChain engine, use the `CREATE ML_ENGINE` statement, as explained [here](/integrations/ai-engines/langchain#ai-engine).
-
-
-```sql
-CREATE MODEL my_model
-PREDICT answer
-USING
- engine = 'langchain',
- input_column = 'question',
- openai_api_key = 'your-model-api-key', -- choose one of OpenAI (openai_api_key) or Anthropic (anthropic_api_key)
- model_name='gpt-4', -- optional model name from OpenAI or Anthropic
- mode = 'conversational',
- user_column = 'question' ,
- assistant_column = 'answer',
- max_tokens=100,
- temperature=0,
- verbose=True,
- prompt_template='Answer the user input in a helpful way';
-```
-
-Here is the command to check its status:
-
-```sql
-DESCRIBE my_model;
-```
-
-The status should read `complete` before proceeding.
-
-Next step is to create one or more skills for an AI agent. Here we create a Text2SQL skill.
-
-```sql
-CREATE SKILL text_to_sql_skill
-USING
- type = 'text2sql',
- database = 'example_db', -- this is a data source that must be connected to MindsDB with CREATE DATABASE statement
- tables = ['sales_data'], -- this table comes from the connected example_db data source
- description = "Sales data that includes stores, sold products, and other sale details";
-```
-
-This skill enables a model to answer questions about data from the `sales_data` table.
-
-Now let's create an AI agent using the above model and skill.
-
-```sql
-CREATE AGENT support_agent
-USING
-model = 'my_model', -- this was created with CREATE MODEL
-skills = ['text_to_sql_skill']; -- this was created with CREATE SKILL
-```
-
-## Create Chatbot
-
-Once all the components are ready, let's proceed to creating the chatbot.
-
-```sql
-CREATE CHATBOT my_chatbot
-USING
- database = 'chat_app', -- this parameters stores a connection to a chat app, like Slack or MS Teams
- agent = 'support_agent', -- this parameter stores an agent name, which was create with CREATE AGENT
- is_running = true; -- this parameter is optional and set to true by default, meaning that the chatbot is running
-```
-
-The `database` parameter stores connection to a chat app. And the `agent` parameter stores an AI agent created by passing a model and training data.
-
-You can query all chatbot using this query:
-
-```sql
-SELECT * FROM chatbots;
-```
-
-Now you can go to Slack or MS Teams and chat with the chatbot created with MindsDB.
diff --git a/docs/use-cases/ai_agents/llm-chatbot-ui.mdx b/docs/use-cases/ai_agents/llm-chatbot-ui.mdx
deleted file mode 100644
index 5dc5d0d563e..00000000000
--- a/docs/use-cases/ai_agents/llm-chatbot-ui.mdx
+++ /dev/null
@@ -1,128 +0,0 @@
----
-title: Build a No-Code Chatbot with MindsDB
-sidebarTitle: Chatbot Interface
----
-
-MindsDB enables you to build a chatbot, train it using your data, and integrate it into a chat application. All of this can be achieved through a user-friendly interface that doesn't require coding.
-
-This guide will walk you through the process of building and training a chatbot using MindsDB's LLM UI.
-
-## Getting Started
-
-To access the LLM UI, click on the robot icon on the left menu. You'll see a welcome screen.
-
-
-
-
-
-Click on *Create AI Agent* to start.
-
-There are three tabs that ask for information to build your chatbot:
-
-1. In the *Settings* tab, under *Model*, you can choose engine, model, and provide an API key. And, under *Data*, you can provide a URL to be used for training the chatbot.
-2. In the *Prompt* tab, you can set *Temperature* and *Max tokens* parameters, and provide *Prompt template* message to the model. Once you completed up to this point, you can chat with your bot.
-3. In the *Publish* tab, you can publish your chatbot to a chat application like Slack.
-
-Let's go over all the tabs in detail.
-
-## Settings
-
-In the *Settings* tab, you can provide information about engine and model that you want to use.
-
-
-Currently, we offer OpenAI models that require you to provide an API key.
-
-
-Optionally you can provide data in form of a URL to be used for training the chatbot.
-
-Click *Save* to create, train, and deploy the chatbot.
-
-
-
-
-
-On completion, you'll see the `Model saved` message as below.
-
-
-
-
-
-## Prompt
-
-In the *Prompt* tab, you can set up a prompt message to give general directions to the chatbot. You can also define the `temperature` and `max_tokens` values that affect responses.
-
-
-
-
-
-Low `temperature` values indicate that the model takes fewer risks and completions are more accurate and deterministic. On the other hand, high `temperature` values result in more diverse completions. And `max_tokens` value should be as close to the expected response size as possible.
-
-Now we are ready to talk with the chatbot.
-
-The right half of the screen is a chat interface where you can submit messages and receive replies.
-
-
-
-
-
-Now you can tweak the prompt parameters and test the responses.
-
-## Publish
-
-You can integrate this chatbot into chat applications.
-
-
-Currently, we support the Slack app.
-
-
-In the *Publish* tab, click on the *Connect* button.
-
-
-
-
-
-Publishing the chatbot to Slack requires two tokens: `Bot User OAuth Token` and `App-Level Token`.
-
-### Slack App Setup
-
-Follow the instructions below to set up the Slack app and generate required tokens.
-
- 1. Follow [this link](https://api.slack.com/apps) and sign in with your Slack account.
- 2. Create a new app `From scratch` or select an existing app.
- - Please note that the following instructions support apps created `From scratch`.
- - For apps created `From an app manifest`, please follow the [Slack docs here](https://api.slack.com/reference/manifests).
- 3. Go to *Basic Information* under *Settings*.
- - Under *App-Level Tokens*, click on *Generate Token and Scopes*.
- - Name the token `socket` and add the `connections:write` scope.
- - **Copy and save the `xapp-...` token - you'll need it to publish the chatbot.**
- 4. Go to *Socket Mode* under *Settings* and toggle the button to *Enable Socket Mode*.
- 5. Go to *OAuth & Permissions* under *Features*.
- - Add the following *Bot Token Scopes*:
- - channels:history
- - channels:read
- - chat:write
- - groups:read
- - im:history
- - im:read
- - im:write
- - mpim:read
- - users.profile:read
- - In the *OAuth Tokens for Your Workspace* section, click on *Install to Workspace* and then *Allow*.
- - **Copy and save the `xoxb-...` token - you'll need it to publish the chatbot.**
- 6. Go to *App Home* under *Features* and click on the checkbox to *Allow users to send Slash commands and messages from the messages tab*.
- 7. Go to *Event Subscriptions* under *Features*.
- - Toggle the button to *Enable Events*.
- - Under *Subscribe to bot events*, click on *Add Bot User Event* and add `message.im`.
- - Click on *Save Changes*.
-
-Use tokens generated in points 3 and 5 to publish the chatbot to Slack.
-
-
-
-
-
-Now you can talk with the chatbot on Slack by directly messaging the app you created and configured with the above steps.
-
-
-
-
diff --git a/docs/use-cases/ai_agents/overview.mdx b/docs/use-cases/ai_agents/overview.mdx
deleted file mode 100644
index 03666f339e3..00000000000
--- a/docs/use-cases/ai_agents/overview.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: AI Agents
-sidebarTitle: Overview
----
-
-AI Agents are an extension of large language models (LLMs). They can access external tools, such as search engines, via API calls, overcoming some common shortcomings of LLMs, such as lack of access to internal business data. With MindsDB, you can customize and deploy [AI agents](/mindsdb_sql/agents/agent).
-
-
-
-
-
-This section covers the following use cases:
-
- - Knowledge bases
- - Skills
- - Agents
- - Chatbots
-
-
-
-
-Available tutorials:
-
-
-
-
-
-
-
-
diff --git a/docs/use-cases/ai_workflow_automation/ai_workflow.mdx b/docs/use-cases/ai_workflow_automation/ai_workflow.mdx
deleted file mode 100644
index 7acf1cbf5a1..00000000000
--- a/docs/use-cases/ai_workflow_automation/ai_workflow.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: AI Workflow
-sidebarTitle: AI Workflow
----
-
-AI Workflow, as defined by MindsDB, comprises steps that include fetching data from a user-defined data source, deploying a production-ready AI model, and, if required, training it with data. Subsequently, the model generates predictions or forecasts, which can be stored in an application or another data source.
-
-MindsDB integrates numerous data sources, applications, and AI frameworks. You can choose from a wide variety of integrations and create your custom AI Workflow, following the steps outlined in the **AI Workflow** documentation section.
-
-## How to Create and Automate AI Workflows with MindsDB
-
-Follow the steps below that guide you through the process of creating and automating your custom AI Workflow.
-
-
-Please note that each step has its dedicated chapter in the **AI Workflow** documentation section.
-
-
-### Step 1. Getting Started
-
-MindsDB offers five development environments:
-
-- SQL
-- Python
-- JavaScript
-- REST API
-
-Choose the one that fits your requirements. Each dev environment enables you to interact with MindsDB using our custom syntax.
-
-### Step 2. Integrate Data Sources
-
-MindsDB integrates numerous data sources, including databases, data warehouses, applications, and more.
-
-
-Follow [this link](/integrations/data-sources-overview) for a full overview of data sources available at MindsDB.
-
-
-You can create a connection between your data source and MindsDB using the `CREATE DATABASE` statement in SQL or the corresponding one for other dev environments.
-
-Once the connection is established, you can access your data directly from MinsdDB and use it for training AI models or making predictions, as you'll see in the following steps.
-
-### Step 3. Create AI Engines
-
-MindsDB integrates numerous AI frameworks. Before you can create an AI model, it is required to create an ML engine based on the AI framework of your choice. Oftentimes, the creation of an ML engine requires users to provide parameters such as API keys.
-
-
-Follow [this link](/integrations/ml-engines-overview) for a full overview of AI engines available at MindsDB.
-
-
-You can create an ML engine using the `CREATE ML_ENGINE` statement in SQL, or corresponding one for other dev environments.
-
-Once the ML engine is created successfully, you can proceed to create an AI model, as shown in the following steps.
-
-### Step 4. Create Projects
-
-In MindsDB, all objects (including models, views, jobs, etc.) are stored within projects. You can use the default `mindsdb` project or create your own to store use-case-specific objects in different projects.
-
-You can create projects using the `CREATE PROJECT` statement in SQL, or corresponding one for other dev environments.
-
-Please note that this step is optional, as you can use the default `mindsdb` project.
-
-### Step 5. Deploy and Use Models
-
-MindsDB enables you to not only create, train, and deploy models using a single SQL statement but also describe, retrain, and finetune models. This section stores all commands related to working with models within MindsDB.
-
-You can create models using the `CREATE MODEL` statement in SQL, or corresponding one for other dev environments. After that, you can utilize a wide range of features that enable you to get relevant data about models and also update models regularly to improve performance and accuracy.
-
-Once the model is ready, you can make predictions with a single SQL statement.
-
-### Step 6. Get Predictions
-
-In MindsDB, you can get batch predictions by simply joining the model, also called an [AI Table](/generative-ai-tables), with the input data table. Alternatively, you can query the model for a single prediction, providing the input data in the `WHERE` clause.
-
-Once you get the predictions or, in the case of time-series models, forecasts, you can save them into a data source or feed them into an application. The next step outlines how you can work with tables, views, and files in MindsDB to fulfill the requirements of your use case.
-
-### Step 7. Tables, Views, and Files
-
-MindsDB enables you to create views, upload files, and work with tables from the connected data sources. All these objects can be used to store the data and predictions.
-
-### Step 8. Automate Workflows
-
-Finally, MindsDB facilitates AI automation by providing the Jobs feature. Jobs enable you to schedule and automate the execution of all commands described in the previous seven steps.
-
-Here is a good AI automation example:
-
-- You've got trading data coming from the [Binance]() integration and is updated every one minute.
-- You create an AI model that is trained using data from Binance to forecast the open price value for a specific trading pair (e.g. BTC/USDT).
-- You connect a [Slack]() workspace to MindsDB and send real-time forecasts as Slack notifications.
-- You automate this process by creating a job that does the following:
- - The job retrains an AI model with the latest data to ensure the best performance and accuracy.
- - Next, the job queries the AI model joined with the Binance data to get the latest real-time forecasts, and subsequently, inserts them to the Slack workspace.
-
-There you go! You just automated real-time trading data forecasts as Slack notifications.
-
-
-Are you ready to try it out? Follow the [Real-Time Trading Alerts](https://mindsdb.com/blog/automate-ai-workflows-with-mindsdb-real-time-trading-alerts) tutorial to see AI Workflow automation using Jobs in action.
-
diff --git a/docs/use-cases/ai_workflow_automation/customer-reviews-notifications.mdx b/docs/use-cases/ai_workflow_automation/customer-reviews-notifications.mdx
deleted file mode 100644
index f8480ebcfd1..00000000000
--- a/docs/use-cases/ai_workflow_automation/customer-reviews-notifications.mdx
+++ /dev/null
@@ -1,216 +0,0 @@
----
-title: Automate notifications about incoming customer reviews
-sidebarTitle: Customer Reviews Notifications
----
-
-This tutorial presents how to chain OpenAI models within MindsDB to analyze text sentiment and generate responses, which will be sent in the form of Slack notifications.
-
-## Data setup
-
-Connect your database to MindsDB.
-
-```sql
-CREATE DATABASE local_postgres
-WITH ENGINE = 'postgres',
-PARAMETERS = {
- "host": "4.tcp.eu.ngrok.io",
- "port": 12888,
- "database": "postgres",
- "user": "postgres",
- "password": "password"
- };
-```
-
-Query the input data table.
-
-```sql
-SELECT *
-FROM local_postgres.demo.amazon_reviews;
-```
-
-```sql
-+----------------------------+-----------------------------+------------------------+
-| created_at | product_name | review |
-+----------------------------+-----------------------------+------------------------+
-| 2023-11-08 17:23:21.028485 | Power Adapter | It is a great product. |
-| 2023-11-08 17:23:21.028485 | Bluetooth and Wi-Fi Speaker | It is ok. |
-| 2023-11-08 17:23:21.028485 | Kindle eReader | It doesn’t work. |
-+----------------------------+-----------------------------+------------------------+
-```
-
-## Model 1 setup
-
-Configure an AI engine, providing the OpenAI API key.
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'sk-xxx';
-```
-
-Deploy a model using this AI engine.
-
-```sql
-CREATE MODEL sentiment_classifier
-PREDICT sentiment
-USING
- engine = 'openai_engine',
- model_name = 'gpt-4',
- prompt_template = 'describe the sentiment of the reviews
- strictly as "positive", "neutral", or "negative".
- "I love the product":positive
- "It is a scam":negative
- "{{review}}.":';
-```
-
-Check its status.
-
-```sql
-DESCRIBE sentiment_classifier;
-```
-
-## Predictions from Model 1
-
-You can make a single predictions, providing input to the mode in the `WHERE` clause.
-
-```sql
-SELECT review, sentiment
-FROM sentiment_classifier
-WHERE review = 'It is ok.';
-```
-
-Or, make batch predictions, joining the data table with the model.
-
-```sql
-SELECT input.review, output.sentiment
-FROM local_postgres.demo.amazon_reviews AS input
-JOIN sentiment_classifier AS output;
-```
-
-## Automation
-
-The alert system will send notification to Slack. Here is how to [connect Slack to MindsDB](/integrations/app-integrations/slack#method-2-chatbot-responds-on-a-defined-slack-channel).
-
-```sql
-CREATE DATABASE customer_reviews_slack_app
-WITH
-ENGINE = 'slack',
-PARAMETERS = {
- "token": "xoxb-xxx"
-};
-```
-
-Send a test message to test the connection.
-
-```sql
-INSERT INTO customer_reviews_slack_app.messages (channel_id, text)
-VALUES("customer-reviews-channel-id", "Testing Slack connection");
-```
-
-[Create a job](/mindsdb_sql/sql/create/jobs) to send notification every time a negative review is received.
-
-```sql
-CREATE JOB customer_reviews_notifications (
-
- INSERT INTO customer_reviews_slack_app.messages (channel_id, text)
- SELECT "customer-reviews-channel-id" as channel_id,
- concat('Product: ', input.product_name, chr(10), 'Received negative review at: ', input.created_at, chr(10), 'Review: ', input.review) as text
- FROM local_postgres.demo.amazon_reviews AS input
- JOIN sentiment_classifier AS output
- WHERE input.created_at > LAST
- AND output.sentiment = 'negative'
-)
-EVERY 1 minute;
-```
-
-These commands are used to monitor the job.
-
-```sql
-SHOW JOBS WHERE name = 'customer_reviews_notifications';
-
-SELECT * FROM mindsdb.jobs WHERE name = 'customer_reviews_notifications';
-
-SELECT * FROM log.jobs_history WHERE project = 'mindsdb' AND name = 'customer_reviews_notifications';
-```
-
-Use this command to disable the job.
-
-```sql
-DROP JOB customer_reviews_notifications;
-```
-
-## Model 2 setup
-
-Deploy a model using the AI engine created earlier.
-
-```sql
-CREATE MODEL response_model
-PREDICT response
-USING
- engine = 'openai_engine',
- model_name = 'gpt-4',
- prompt_template = 'briefly respond to the customer review: {{review}}';
-```
-
-Check its status.
-
-```sql
-DESCRIBE response_model;
-```
-
-## Predictions from Model 2
-
-You can make a single predictions, providing input to the mode in the `WHERE` clause.
-
-```sql
-SELECT review, response
-FROM response_model
-WHERE review = 'It is ok.';
-```
-
-Or, make batch predictions, joining the data table with the model.
-
-```sql
-SELECT input.review, output.response
-FROM local_postgres.demo.amazon_reviews AS input
-JOIN response_model AS output;
-```
-
-## Automation and Chaining Models 1 & 2
-
-[Create a job](/mindsdb_sql/sql/create/jobs) to send notification, including a sample response, every time a positive review is received.
-
-```sql
-CREATE JOB customer_reviews_and_responses_notifications (
-
- INSERT INTO customer_reviews_slack_app.messages (channel_id, text)
- SELECT "customer-reviews-channel-id" as channel_id,
- concat('---------', chr(10),
- 'Product: ', input.product_name, chr(10),
- 'Received ', input.sentiment, ' review at: ', input.created_at, chr(10),
- 'Review: ', input.review, chr(10),
- 'Sample response: ', output.response) as text
- FROM (SELECT inp.created_at AS created_at, inp.product_name AS product_name, inp.review AS review, outp.sentiment AS sentiment
- FROM local_postgres.demo.amazon_reviews AS inp
- JOIN sentiment_classifier AS outp
- WHERE inp.created_at > LAST) AS input --'2023-10-03 16:50:00' AND inp.created_at > "{{PREVIOUS_START_DATETIME}}"
- JOIN response_model AS output
- WHERE input.sentiment = 'positive';
-)
-EVERY 1 minute;
-```
-
-These commands are used to monitor the job.
-
-```sql
-SELECT * FROM mindsdb.jobs WHERE name = 'customer_reviews_and_responses_notifications';
-
-SELECT * FROM log.jobs_history WHERE project = 'mindsdb' AND name = 'customer_reviews_and_responses_notifications';
-```
-
-Use this command to disable the job.
-
-```sql
-DROP JOB customer_reviews_and_responses_notifications;
-```
diff --git a/docs/use-cases/ai_workflow_automation/overview.mdx b/docs/use-cases/ai_workflow_automation/overview.mdx
deleted file mode 100644
index 5fcec9d9ff4..00000000000
--- a/docs/use-cases/ai_workflow_automation/overview.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: AI Workflow Automation
-sidebarTitle: Overview
----
-
-With MindsDB, you can create, customize, and automate AI workflows that comprise of connecting a [data source](/integrations/data-overview), deploying an [AI/ML model](/integrations/ai-overview), and streaming predictions and forecast into your application. Use [jobs](/mindsdb_sql/sql/create/jobs) and [triggers](/mindsdb_sql/sql/create/trigger) to create custom automation.
-
-
-
-
-
-This section covers the following use cases:
-
- - Chatbot automation with jobs
- - Alert systems
-
-
-
-
-Available tutorials:
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/use-cases/ai_workflow_automation/slack-chatbot.mdx b/docs/use-cases/ai_workflow_automation/slack-chatbot.mdx
deleted file mode 100644
index b508b583384..00000000000
--- a/docs/use-cases/ai_workflow_automation/slack-chatbot.mdx
+++ /dev/null
@@ -1,269 +0,0 @@
----
-title: Build a Slack Chatbot with MindsDB and OpenAI
-sidebarTitle: Slack Chatbot
----
-
-The objective of this tutorial is to create an AI-powered personalized chatbot by utilizing the MindsDB's Slack connector, and combining it with OpenAI's GPT-4 Model.
-
-To illustrate practically, we will create a Slack bot - **@Whiz_Fizz** - which will reply to the user's queries with proper context and with a unique persona while responding. It is a weird magician 🪄 and a Space Science Expert! Let's see how it responds.
-
-
-
-
-
-
-Before jumping more into it. Let's first see how to create a bot and connect it to our Slack Workspace.
-
-## Getting Started
-
-- Install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop)
-- [Create a Slack Account](https://slack.com/get-started#/createnew) and follow [this instruction](/integrations/app-integrations/slack) to connect Slack to MindsDB.
-- Go to your MindsDB Editor
-
-## Usage
-
-This query will create a database called `mindsdb_slack` that comes with the `channels` table.
-
-```sql
-CREATE DATABASE mindsdb_slack
-WITH
- ENGINE = 'slack',
- PARAMETERS = {
- "token": "xoxb-..."
- };
-```
-
-Here is how to retrieve the 10 messages after specific timestamp:
-
-```sql
-SELECT *
-FROM mindsdb_slack.messages
-WHERE channel_id = ""
-AND created_at > '2023-07-25 00:13:07' -- created_at stores the timestamp when the message was created
-LIMIT 10;
-```
-
-You can also retrieve messages in alphabetical order:
-
-```sql
-SELECT *
-FROM mindsdb_slack.messages
-WHERE channel_id = ""
-ORDER BY text ASC
-LIMIT 5;
-```
-
-By default, it retrieves by the order the messages were sent, unless specified as ascending/descending.
-
-Here is how to post messages:
-
-```sql
-INSERT INTO mindsdb_slack.messages (channel_id, text)
-VALUES
- ("", "Hey MindsDB, Thanks to you! Now I can respond to my Slack messages through SQL Queries. 🚀 "),
- ("", "It's never been that easy to build ML apps using MindsDB!");
-```
-
-Whoops! Sent it by mistake? No worries! Use this to delete a specific message:
-
-```sql
-DELETE FROM mindsdb_slack.messages
-WHERE channel_id = "" AND ts = "1688863707.197229";
-```
-
-Now, let's roll up our sleeves and start building the GPT-4 Model together.
-
-### 1. Crafting the GPT-4 Model:
-
-_Generating a [Machine Learning model](https://docs.mindsdb.com/nlp/nlp-mindsdb-openai) with MindsDB feels like taking a thrilling elevator ride in Burj Khalifa (You don't realize, that you made it)!_
-
-Here `gpt_model` represents our GPT-4 Model.
-
-
-Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-
-```sql
-CREATE MODEL mindsdb.gpt_model
-PREDICT response
-USING
-engine = 'openai_engine',
-max_tokens = 300,
-model_name = 'gpt-4',
-prompt_template = 'From input message: {{text}}\
-write a short response to the user in the following format:\
-Hi, I am an automated bot here to help you, Can you please elaborate the issue which you are facing! ✨🚀 ';
-```
-
-The critical attribute here is `prompt_template` where we tell the GPT model how to respond to the questions asked by the user.
-
-Let's see how it works:
-
-```sql
-SELECT
- text, response
-FROM mindsdb.gpt_model
-WHERE text = 'Hi, can you please explain me more about MindsDB?';
-```
-
-
-
-
-
-### 2. Feeding Personality into Our Model
-
-Alright, so the old model's replies were *good*. But hey, we can use some prompt template tricks to make it respond the way we want. Let's do some Prompt Engineering.
-
-Now, let's make a model called `whizfizz_model` with a prompt template that gives GPT a wild personality that eludes a playful and magical aura. Imagine scientific knowledge with whimsical storytelling to create a unique and enchanting experience. We'll call him **WhizFizz**:
-
-```sql
-CREATE MODEL mindsdb.whizfizz_model
-PREDICT response
-USING
-engine = 'openai_engine',
-max_tokens = 300,
-model_name = 'gpt-4',
-prompt_template = 'From input message: {{text}}\
-write a short response in less than 40 words to some user in the following format:\
-Hi there, WhizFizz here!
-
-
-
-You see the difference! Now, I'm getting excited, let's try again.
-
-```sql
-SELECT
- text, response
-FROM mindsdb.whizfizz_model
-WHERE text = 'if a time-traveling astronaut had a dance-off with a black hole, what mind-bending moves would they showcase, and how would gravity groove to the rhythm?!';
-```
-
-
-
-
-
-### 3. Let's Connect our GPT Model to Slack!
-
-The `messages` table can be used to search for `channels`, `messages`, and `timestamps`, as well as to post messages into Slack conversations. These functionalities can also be done by using Slack API or Webhooks.
-
-Let's query the user's question and see how our GPT model responds to it, by joining the model with the `messages` table:
-
-```sql
-SELECT
- t.channel_id as channel_id,
- t.text as input_text,
- r.response as output_text
-FROM mindsdb_slack.messages as t
-JOIN mindsdb.whizfizz_model as r
-WHERE t.channel_id = ""
-LIMIT 3;
-```
-
-### 4. Posting Messages using SQL
-
-We want to respond to the user's questions by posting the output of our newly created **WhizFizz** Model. Let's post the message by querying and joining the user's questions to our model:
-
-```sql
-INSERT INTO mindsdb_slack.messages(channel_id, text)
- SELECT
- t.channel_id as channel_id,
- r.response as text
- FROM mindsdb_slack.messages as t
- JOIN mindsdb.whizfizz_model as r
- WHERE t.channel_id = ""
- LIMIT 3;
-```
-
-Works like a charm!!
-
-
-
-
-
-### 5. Let's automate this
-
-We will `CREATE JOB` to schedule periodical execution of SQL statements. The job will execute every hour and do the following:
- 1. Check for new messages using the [`LAST` keyword](/mindsdb_sql/sql/create/jobs#last).
- 2. Generate an appropriate response with the `whizfizz_model` model.
- 3. Insert the response into the channel.
-
-Let's do it in single SQL statement:
-
-```sql
-CREATE JOB mindsdb.gpt4_slack_job AS (
-
- -- insert into channels the output of joining model and new responses
- INSERT INTO mindsdb_slack.messages(channel_id, text)
- SELECT
- t.channel_id as channel_id,
- r.response as text
- FROM mindsdb_slack.messages as t
- JOIN mindsdb.whizfizz_model as r
- WHERE t.channel_id = ""
- AND t.created_at > LAST
- AND t.user = 'user_id' -- to avoid the bot replying to its own messages, include users to which bot should reply
- --AND t.user != 'bot_id' -- alternatively, to avoid the bot replying to its own messages, exclude the user id of the bot
-)
-EVERY hour;
-```
-
-The `LAST` keyword is used to ensure the query fetches only the newly added messages. Learn more [here](/mindsdb_sql/sql/create/jobs#last).
-
-That sums up the tutorial! Here it will continually check for new messages posted in the channel and will respond to all newly added messages providing responses generated by OpenAI's GPT model in the style of WhizFizz.
-
-To check the `jobs` and `jobs_history`, we can use the following:
-
-```sql
-SHOW JOBS WHERE name = 'gpt4_slack_job';
-
-SELECT * FROM mindsdb.jobs WHERE name = 'gpt4_slack_job';
-
-SELECT * FROM log.jobs_history WHERE project = 'mindsdb' AND name = 'gpt4_slack_job';
-```
-
-To stop the scheduled job, we can use the following:
-
-```sql
-DROP JOB gpt4_slack_job;
-```
-
-
-Alternatively, you can create a trigger on Slack, instead of scheduling a job. This way, every time new messages are posted, the trigger executes.
-
-```sql
-CREATE TRIGGER slack_trigger ON mindsdb_slack.messages (
-
- INSERT INTO mindsdb_slack.messages(channel_id, text)
- SELECT t.channel_id as channel_id, a.sentiment as text,
- FROM data_table t
- JOIN model_table as a
- WHERE t.channel_id = ''
- AND t.user != 'bot_id' -- exclude bot
-);
-```
-
-
-
-**What's next?**
-
-Check out [How to Generate Images using OpenAI with MindsDB](/sql/tutorials/image-generator) to see another interesting use case of OpenAI integration.
-
diff --git a/docs/use-cases/ai_workflow_automation/twilio-chatbot.mdx b/docs/use-cases/ai_workflow_automation/twilio-chatbot.mdx
deleted file mode 100644
index ad273d968ec..00000000000
--- a/docs/use-cases/ai_workflow_automation/twilio-chatbot.mdx
+++ /dev/null
@@ -1,167 +0,0 @@
----
-title: Build a Twilio Chatbot with MindsDB and OpenAI
-sidebarTitle: Twilio Chatbot
----
-
-In this tutorial, we'll use MindsDB's integration with Twilio and the custom Jobs feature to implement a chatbot that will reply to text messages. The replies will include a text response generated by OpenAI's GPT-4 model and an image response generated by the OpenAI's DallE 3 model.
-
-
-
-
-
-Read along to follow the tutorial.
-
-## Step 1. Create OpenAI models with a bit of personality
-
-In order to create an AI model, you’ll need an [OpenAI account](https://openai.com/) and an [API key](https://platform.openai.com/account/api-keys). You’ll also need a MindsDB installation - you can find an open-source version [here](https://github.com/mindsdb/mindsdb).
-
-Then go to your MindsDB SQL Editor and enter the following commands to create AI models:
-
-**1. Model to generate a text response:**
-
- Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
- ```sql
- CREATE ML_ENGINE openai_engine
- FROM openai
- USING
- openai_api_key = 'sk-xxx';
- ```
-
- Now you can create a model:
-
- ```sql
- CREATE MODEL twilio_bot_model
- PREDICT answer
- USING
- engine = 'openai_engine',
- max_tokens = 500,
- prompt_template = 'Pretend you are a mashup of Bill Murray and Taylor Swift. Provide a short description of an image using the style of Bill Murray and Taylor Swift that answers users questions: {{body}}';
- ```
-
- The `CREATE MODEL` command creates and deploys the model within MindsDB. Here we use the OpenAI GPT-3.5 Turbo model to generate text responses to users’ questions. The `prompt_template` message sets the personality of the bot - here, it is a mashup of Bill Murray and Taylor Swift.
-
- Please note that the `prompt_template` message contains the `{{body}}` variable, which will be replaced by the body of the received message upon joining the model with the table that stores messages.
-
- Let’s test it:
-
- ```sql
- SELECT body, answer
- FROM twilio_bot_model
- WHERE body = 'hey, can you draw a cat in the moon?';
- ```
-
- Here is a sample reply:
-
-
-
-
-
-**2. Model to generate an image response:**
-
- We’ll use the OpenAI DallE 3 model to generate images as part of the responses.
-
- ```sql
- CREATE MODEL twilio_bot_image_model
- PREDICT img_url
- USING
- engine = 'openai_engine',
- mode = 'image',
- model_name = 'dall-e-3',
- prompt_template = 'Make a photorealistic image. Here is the description: {{answer}}, 4k, digital painting';
- ```
-
- The `CREATE MODEL` command creates and deploys the model within MindsDB. Here we use the OpenAI DallE 3 model to generate images based on the Billor Swift’s text response. The `prompt_template` message contains the `{{answer}}` variable. This variable is replaced by the prediction of the previous model upon chaining the two models.
-
- Let’s test it:
-
- ```sql
- SELECT textresponse.body, textresponse.answer, imageresponse.img_url
- FROM (SELECT body, answer
- FROM twilio_bot_model
- WHERE body = 'hey, can you draw a cat in the moon?') AS textresponse
- JOIN twilio_bot_image_model AS imageresponse;
- ```
-
- Here is a sample reply:
-
-
-
-
-
- The DallE 3 model provides a link to the generated image.
-
-
-
-
-
-## Step 2. Set up your Twilio account and connect it to MindsDB
-
-You can set up a Twilio account [here](https://twilio.com/try-twilio), and then you get a virtual phone number in the console. This virtual number will be the one that sends a text to your personal number.
-
-Save the account string identifier (SID), auth token, and virtual phone number.
-
-Use this command to connect the Twilio account to MindsDB:
-
-```sql
-CREATE DATABASE twilio
-WITH
-ENGINE = 'twilio',
-PARAMETERS = {
- "account_sid":"todo",
- "auth_token":"todo"
-};
-```
-
-Check out [this usage guide](https://github.com/mindsdb/mindsdb/tree/main/mindsdb/integrations/handlers/twilio_handler#example-usage) to learn how to query and insert Twilio messages from MindsDB.
-
-## Step 3. Automate the Twilio bot with MindsDB
-
-We use the custom Jobs feature to schedule query execution.
-
-```sql
-CREATE JOB twilio_bot_images_job (
-
- INSERT INTO twilio.messages (to_number, from_number, body, media_url)
- SELECT outputtext.to_number AS to_number,
- outputtext.from_number AS from_number,
- outputtext.answer AS body,
- outputimage.img_url AS media_url
- FROM (
- SELECT input.from_number AS to_number,
- input.to_number AS from_number,
- output.answer AS answer
- FROM twilio.messages AS input
- JOIN twilio_bot_model AS output
- WHERE input.sent_at > LAST AND input.msg_status = 'received'
- ) AS outputtext
- JOIN twilio_bot_image_model AS outputimage
-)
-EVERY 2 minutes;
-```
-
-You can create a job using the `CREATE JOB` statement. Within parenthesis, provide all statements to be executed by the job. Finally, schedule a job - here it’ll run once every two minutes.
-
-This job inserts replies to Twilio messages into the `messages` table. We provide the `SELECT` statement as an argument to the `INSERT` statement. Note that the inner `SELECT` statement uses one model to generate a text response (aliased as `outputtext`). Then, the output is joined with another model that generates an image (aliased as `outputimage`) based on the text response generated by the first model.
-
-You can monitor this job with the following commands:
-
-```sql
-SHOW JOBS WHERE name='twilio_bot_images_job';
-
-SELECT * FROM jobs
-WHERE name='twilio_bot_images_job';
-
-SELECT * FROM log.jobs_history
-WHERE project = 'mindsdb' AND name='twilio_bot_images_job';
-```
-
-Here is a sample reply:
-
-
-
-
-
-
-Follow [this tutorial](https://mindsdb.com/blog/build-your-own-midjourney-in-sql) to create a Twitter chatbot.
-
diff --git a/docs/use-cases/ai_workflow_automation/twitter-chatbot.mdx b/docs/use-cases/ai_workflow_automation/twitter-chatbot.mdx
deleted file mode 100644
index 85bf09be271..00000000000
--- a/docs/use-cases/ai_workflow_automation/twitter-chatbot.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: Building a Twitter Chatbot with MindsDB and OpenAI
-sidebarTitle: Twitter Chatbot
----
-
-In this tutorial, we'll build a custom Twitter chatbot that replies to tweets with the help of the OpenAI GPT-4 model. The workflow will be automated using Jobs - a MindsDB feature that enables you to schedule execution of tasks.
-
-## Deploy a GPT-4 model
-
-Please note that using OpenAI models require OpenAI API key. Therefore, before creating a model, you need to configure an engine by providing your OpenAI API key as below. See [docs](/integrations/ai-engines/openai).
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-Let's create a basic model to respond to tweets.
-
-```sql
-CREATE MODEL gpt_model
-PREDICT response
-USING
- engine = 'openai_engine',
- model_name = 'gpt-4',
- prompt_template ='respond to {{text}} by {{author_username}}';
-```
-
-We can test the model by providing input data in the `WHERE` clause as below:
-
-```sql
-SELECT response
-FROM gpt_model
-WHERE author_username = "mindsdb"
-AND text = "why is gravity so different on the sun?";
-```
-
-Now let's add personality to our chatbot by modifying the `prompt_template` message:
-
-```sql
-CREATE MODEL snoopstein_model
-PREDICT response
-USING
- engine = 'openai_engine',
- max_tokens = 300,
- temperature = 0.75,
- model_name = 'gpt-4',
- prompt_template = '
-
-You are a twitter bot, your name is Snoop Stein (@snoop_stein), and you are helping people with their questions, you are smart and hilarious at the same time.
-
-From input message: {{text}}
-
-by from_user: {{author_username}}
-
-In less than 200 characters, write a Twitter response to {{author_username}} in the following format:\
-
-Dear @, '2023-04-04 11:50:00';
-```
-
-And here is how to write tweets, providing a tweet id to reply to:
-
-```sql
-INSERT INTO my_twitter.tweets (in_reply_to_tweet_id, text)
-VALUES (, 'Congratulations on the new release!');
-```
-
-## Automate replies to tweets
-
-Now we put together all job components and automate the process.
-
-```sql
-CREATE JOB twitter_chatbot (
-
- INSERT INTO my_twitter.tweets (
-
- SELECT d.id AS in_reply_to_tweet_id,
- m.response AS text
- FROM my_twitter.tweets AS d
- JOIN snoopstein_model AS m
- WHERE d.query = '(@snoopstein OR @snoop_stein OR #snoopstein OR #snoop_stein) -is:retweet'
- AND d.id > LAST
- )
-)
-EVERY minute;
-```
-
-This job is executed every minute. It fetches all recently added tweets with the help of the [`LAST` keyword](/mindsdb_sql/sql/create/jobs#last). Then, it prepares and posts the replies.
-
-Here are some useful commands to monitor the job:
-
-```sql
-SHOW JOBS WHERE name = 'twitter_chatbot';
-
-SELECT * FROM jobs
-WHERE name = 'twitter_chatbot';
-
-SELECT * FROM log.jobs_history
-WHERE project = 'mindsdb' AND name = 'twitter_chatbot';
-```
diff --git a/docs/use-cases/ai_workflow_automation/twitterbot-mariadb-enterprise-server-skysql.mdx b/docs/use-cases/ai_workflow_automation/twitterbot-mariadb-enterprise-server-skysql.mdx
deleted file mode 100644
index ea1e969ca3a..00000000000
--- a/docs/use-cases/ai_workflow_automation/twitterbot-mariadb-enterprise-server-skysql.mdx
+++ /dev/null
@@ -1,405 +0,0 @@
----
-title: Building a Twitter Chatbot with MindsDB and OpenAI
-sidebarTitle: Twitter Chatbot
----
-
-_Author: [Pieter Humphrey](https://www.twitter.com/pieterhumphrey), MariaDB_
-
-Want to use generative AI to automate your customer or user interactions? This tutorial shows you step-by-step how to build an interactive Twitter Bot using ChatGPT, MindsDB and MariaDB Enterprise Server in roughly 30-60 minutes. You can follow along with this [tutorial on YouTube](https://www.youtube.com/watch?v=uqn3MLCUhYU) as well.
-
-
-## What you’ll build
-
-You’ll build a system that scans for targeted content to respond to, and uses ChatGPT to reply from a specific bot account live on Twitter like you see here:
-
-
-
-
-
-## Tutorial Architecture
-
-You’ll use [MindsDB](https://docs.mindsdb.com/what-is-mindsdb) to construct the bot and interact with LLMs like OpenAI’s ChatGPT, while indexing and storing accumulated tweet data in a [MariaDB relational database](https://skysql.cloud/mindsdb-docs). In the diagram below, the teal colored database represents data in MariaDB. The gray/light blue colored database represents data stored in MindsDB. What you build can then be embedded into your application with one of MindsDB SDKs, and/or called from the [MindsDB REST API](https://docs.mindsdb.com/rest/sql).
-
-
-
-
-
-But wait, isn’t MindsDB a database, you might rightly ask? MindsDB manages AI models and automates workflows connecting AI models with enterprise databases. MindsDB is an AI Database rather than a traditional database. Therefore, if your model necessitates considerable input or yields a substantial output volume, or if you're seeking the data reliability assurances provided by a relational database, it's advisable to allocate that data storage to a different platform. Ultimately, MindsDB focuses on streamlining the processes of linking your data, training models and deploying AI models rather than being a comprehensive storage solution.
-
-
-## Tutorial Prerequisites
-
-You’ll need three things to get started:
-
-
-1. A [MindsDB account](https://docs.mindsdb.com/quickstart).
-2. A [MariaDB SkySQL account](https://skysql.cloud/mindsdb-docs).
-3. A Twitter [developer account](https://developer.twitter.com/en/docs/twitter-api/getting-started/getting-access-to-the-twitter-api). You’ll need your [own API keys /access tokens](https://www.youtube.com/watch?v=qVe7PeC0sUQ) to input parameters like these below into your MindsDB console to build the bot job later in the tutorial.
-
-```
- "consumer_key": "your twitter App API key",
- "consumer_secret": "your twitter App API key secret",
- "bearer_token": "your twitter App bearer TOKEN",
- "access_token": "your twitter App Access Token",
- "access_token_secret": "your twitter App Access Token Secret"
-```
-
-When you are done getting your API keys / tokens for Twitter, you should also have a live Twitter bot profile with a name of your choosing, handle, etc. You don’t need to go as far as creating a profile image and profile background etc. like this tutorial did for fun - that’s up to you.
-
-
-### Data Setup
-
-This example uses live data sourced directly from the Twitter API via the [MindsDB Twitter integration](https://mindsdb.com/integrations/twitter), as opposed to an existing data set, CSV file, or other export of some pre-existing database. Accumulated Twitter data will be stored in a Maria DB Enterprise Server Columnstore database deployed on SkySQL, which is designed for operational analytic workloads.
-
-
-### Creating the MariaDB Enterprise Server database
-
-MariaDB ColumnStore extends MariaDB Enterprise Server database with distributed, columnar storage and a massively parallel processing (MPP) shared nothing architecture, transforming it into a standalone or distributed data warehouse for ad hoc SQL queries and advanced analytics – without the need to create indexes. It’s a great place to store live Twitter data. Login to SkySQL, and choose “launch a cloud database in SkySQL”. Then assign these choices, accepting other defaults:
-
-
-
-
-
-
-**> Technology, topology : Enterprise Server** > **ColumnStore Data Warehouse**
-
-**> Cloud Provider:** Choose as you wish from the available options. Google Cloud works great. We recommend choosing a nearby region to you, for performance reasons.
-
-**> Instance, Storage, Nodes:** Choose the **Sky 4x16** (4 vCPU, 16GB) instance, which is more than sufficient for learning purposes. SkySQL gives you a free credit to work with but make sure to turn off the instance if you aren’t using it so you don’t waste it.
-
-**> Service Attributes:** Give it a name of your choosing. The tutorial code will reflect the name: **analyticsdb**.
-
-**> Security:** Click the radio box to ‘**Allow access to the service from specific IPs**’, and then check the box for adding your current IP. Later, we’ll also add the MindsDB cloud IP addresses.
-
-**> Launch Service**: Lastly, click “**Launch Service**” to create, and wait a few minutes.
-
-
-### Creating the MariaDB Enterprise Server schema
-
-Now let’s create the schema to hold data from Twitter’s API calls from MindsDB, that will help us identify, track and reply to the right tweets.
-
-In the SkySQL Console left-hand navigation pane, click **Workspace**> **Query Editor**. Copy and paste the SQL code (below the screenshot) into the editor and click the run button as shown below, which will produce the two tables in the schema browser, `chatbot_input `and `chatbot_output`.
-
-
-
-
-
-SQL to execute:
-
-```sql
-CREATE DATABASE chatbotdb;
-USE chatbotdb;
-SET sql_mode='ANSI_QUOTES';
-CREATE TABLE chatbot_input (
- id text CHARACTER SET utf8mb4,
- created_at text CHARACTER SET utf8mb4,
- "text" text CHARACTER SET utf8mb4,
- edit_history_tweet_ids text CHARACTER SET utf8mb4,
- author_id text CHARACTER SET utf8mb4,
- author_name text CHARACTER SET utf8mb4,
- author_username text CHARACTER SET utf8mb4,
- conversation_id text CHARACTER SET utf8mb4,
- in_reply_to_user_id text CHARACTER SET utf8mb4,
- in_reply_to_user_name text CHARACTER SET utf8mb4,
- in_reply_to_user_username text CHARACTER SET utf8mb4,
- in_reply_to_tweet_id text CHARACTER SET utf8mb4,
- in_retweeted_to_tweet_id text CHARACTER SET utf8mb4,
- in_quote_to_tweet_id text CHARACTER SET utf8mb4
- );
- CREATE TABLE chatbot_output (
- id text CHARACTER SET utf8mb4,
- created_at text CHARACTER SET utf8mb4,
- "text" text CHARACTER SET utf8mb4,
- edit_history_tweet_ids text CHARACTER SET utf8mb4,
- author_id text CHARACTER SET utf8mb4,
- author_name text CHARACTER SET utf8mb4,
- author_username text CHARACTER SET utf8mb4,
- conversation_id text CHARACTER SET utf8mb4,
- in_reply_to_user_id text CHARACTER SET utf8mb4,
- in_reply_to_user_name text CHARACTER SET utf8mb4,
- in_reply_to_user_username text CHARACTER SET utf8mb4,
- in_reply_to_tweet_id text CHARACTER SET utf8mb4,
- in_retweeted_to_tweet_id text CHARACTER SET utf8mb4,
- in_quote_to_tweet_id text CHARACTER SET utf8mb4
- );
-```
-
-This will create the `chatbot_input `and `chatbot_output `tables.
-
-
-## [](https://docs.mindsdb.com/contribute/tutorials#understanding-the-data)Understanding the Data
-
-Tweets have a long list of fields in the Twitter API and object model; if you look at their [API documentation](https://developer.twitter.com/en/docs/twitter-api/data-dictionary/object-model/tweet) you’ll see this tutorial is using a subset. Of course, the datatypes and field titles are most clearly visible in the SQL script above. You’ll also see them and their values in the MindsDB console (pictured below) as you do testing, develop and execute queries. This will help you target the content you want ChatGPT (another supported LLM) to respond to from Twitter.
-
-
-
-
-
-
-## MindsDB Connections Setup
-
-
-### MindsDB Cloud and MariaDB Enterprise Server
-
-Ok, a little more infrastructure setup to do before we roll up our sleeves and get into the use-case related code. We’ll handle network security first, and then connect MindsDB and MariaDB in the MindsDB SQL Editor.
-
-
-#### Security
-
-Let’s add the MindsDB Cloud IP addresses to the network allowlist on SkySQL. To get the IPs, click on the **add > new datasource** button in the MindsDB console, and search/choose MariaDB. You’ll see the IP addresses in question on the resulting screen.
-
-
-
-
-
-
-Copy/paste these IPs Into a temporary text document and then add them with the /32 CIDR notation to the SkySQL > **settings**> **secure access** panel as shown below:
-
-
-
-
-
-
-If you’re developing on a laptop, MariaDB SkySQL will automatically prompt you to update the allowlist for new IP addresses as you travel, ensuring that your laptop IP can communicate to the query editor, regardless of your location.
-
-
-#### Declaring a MariaDB Enterprise Server Data Source in MindsDB
-
-The easiest way to work with the MariaDB Enterprise Server is its DBaaS cloud service, SkySQL. In the MindsDB SQL editor, click **add > new datasource** button, and search/choose MariaDB SkySQL. This will open a new query window, and generate a MindsDB SQL template for making the MindsDB <-> MariaDB connection:
-
-```sql
-CREATE DATABASE skysql --- display name for database.
-WITH ENGINE = 'mariadb',
-PARAMETERS = {
- "user":" ", --- Username associated with database
- "password":" ", --- Password to authenticate your access
- "host":" ", --- Host to server IP Address or hostname
- "port": "5001", --- Port through which TCPIP connection is to be made
- "ssl": True/False, --- optional, the 'ssl' parameter value indicates whether SSL is enabled ('True') or disabled ('False')
- "ssl-ca": { "path": " " }, --- Optional, SSL Certificate Authority
- "database":" " --- Database name to be connected
-};
-```
-
-Give the MindsDB SQL query tab a title like ‘TwitterBot’.
-
-You can find the values to fill in this template in the SkySQL console. To get the values that are specific for your Maria DB Columnstore database instance, simply click
-
-**Dashboard > Connect** as shown below:
-
-
-[Accessing SkySQL Connect Dialog](https://github.com/mindsdb/mindsdb/blob/main/docs/assets/tutorials/twitter_chatbot/mariadb-sky-connect.gif)
-
-
-**About SSL**: We recommend setting SSL to false for development and testing purposes. For production systems, it should be enabled. You can learn more about these settings in the MindsDB [documentation for connecting to MariaDB](https://docs.mindsdb.com/connect/connect-mariadb-skysql).
-
-**About Port**: Note that the default generated port of 5001 should be overridden with the values in the connect dialogue.
-
-**About Database**: if you followed the steps in this tutorial, it would be named [chatbotdb ](https://docs.mindsdb.com/sql/create/model)- this is the name of the MariaDB ColumnStore database you created with the SQL above.
-
-(analyticsdb is the SkySQL service name).
-
-Then, execute the completed SQL template in the MindsDB SQL editor by highlighting the SQL to execute, and clicking **Run** as shown below:
-
-(Note that values have been left unmodified in the screenshot).
-
-
-
-
-
-
-You’ll notice a DB connection icon now on the left hand nav for MindsDB Demo cloud (mariadb_db in the above screenshot).
-
-
-### MindsDB Cloud and Twitter
-
-Click the **add > new datasource** button in the MindsDB console, and search/choose Twitter.
-
-
-
-
-
-
-[Fill in the template](https://docs.mindsdb.com/app-integrations/twitter) with your Twitter API keys/tokens. Then, in the MindsDB SQL editor, select the SQL, and execute it by clicking **Run**.
-
-```sql
---- After you fill all the mandatory fields run the query with the top button or shift + enter.
-
-CREATE DATABASE my_twitter_bot
-With
-ENGINE = 'twitter',
-PARAMETERS = {
- "bearer_token": " ", --- Twitter bearer TOKEN
- 'consumer_key': " ", --- Twitter consumer key *optional.
- 'consumer_secret': " ", --- Twitter consumer secret *optional.
- 'access_token':" ", --- Twitter access token *optional.
- 'access_token_secret':" " --- Twitter access secret token *optional.
-};
-```
-
-Nice job, you’re done with the setup! 🙌
-
-
-## [](https://docs.mindsdb.com/contribute/tutorials#training-a-predictor)Deploying a Model
-
-
-### Step 1: Creating and Deploying a Model
-
-Here you use the [CREATE MODEL](https://docs.mindsdb.com/sql/create/model) command to create a predictor - for example’s sake, the ‘[Snoopstein](https://twitter.com/snoop_stein)’ model bot. Replace the snoopstein_model with your TwitterBot name, and come up with your [own prompt template](https://www.businessinsider.com/how-to-use-get-better-chatgpt-ai-prompt-guide) that makes sense for your scenario.
-
-
-Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-
-```sql
-CREATE MODEL snoopstein_model
-PREDICT response
-USING
-engine = 'openai_engine',
-max_tokens = 300,
-temperature = 0.75,
-model_name = 'gpt-4', -- you can also use 'text-davinci-003' or 'gpt-3.5-turbo'
-prompt_template = '
-Your are a twitter bot, your name is Snoop Stein (@snoop_stein), and you are helping people with their questions, you are smart and hilarious at the same time.
-From input message: {{text}}\
-by from_user: {{author_username}}\
-In less than 200 characters, write a Twitter response to {{author_username}} in the following format:\
-Dear @, '2023-04-04 11:50:00'
-)
----- Job 2. Input snoop_stein tweets to MariaDB chatbot_output table
-INSERT INTO skysql.chatbot_output (
-SELECT * FROM my_twitter_bot.tweets
-WHERE query = 'from:snoop_stein'
-AND created_at >'2023-04-04 11:50:00'
-);
----- Job 3. Filter tweets needing reply into view
-CREATE VIEW to_reply_to (
-SELECT * FROM skysql.chatbot_input
-WHERE conversation_id not in (select r.conversation_id from skysql.chatbot_output as r)
-);
----- Job 4. Join View with model and prepare replies
-CREATE VIEW to_tweet (
-SELECT * FROM to_reply_to
-JOIN snoopstein_model
-LIMIT 1
-);
-```
-
-Once you’ve posted some Tweets to match the criteria, let’s make sure it’s working before creating the job. Write and then select each separate SQL statement below one at a time, then execute each by clicking **Run** to ensure data is present.
-
-```sql
-select * from skysql.chatbot_input;
-select * from skysql.chatbot_output;
-select * from to_reply_to;
-select * from to_tweet;
-```
-
-### Bringing it all together into a job
-
-Jobs in MindsDB are similar to cron jobs in UNIX and Linux, running at regularly scheduled intervals. Write and then select the SQL below, and then execute it by clicking **Run**.
-
-```sql
-CREATE JOB chatbot_job (
- -- Part 1
- INSERT INTO skysql.chatbot_input(
- SELECT *
- FROM my_twitter_bot.tweets
- WHERE
- query = '(@snoopstein OR @snoop_stein OR #snoopstein OR #snoop_stein) -is:retweet -from:snoop_stein'
- AND created_at > '2023-04-04 11:50:00'
- AND created_at > "{{PREVIOUS_START_DATETIME}}"
- );
- -- Part 2
- INSERT INTO skysql.chatbot_output (
- SELECT *
- FROM my_twitter_bot.tweets
- WHERE
- query = 'from:snoop_stein'
- AND created_at > '2023-04-04 11:50:00'
- AND created_at > "{{PREVIOUS_START_DATETIME}}"
- );
- -- Part 3
- INSERT INTO my_twitter_bot.tweets (
- SELECT
- id as in_reply_to_tweet_id,
- response as text
- FROM to_tweet
- )
-) EVERY minute;
-```
-
-Job frequency at scheduled intervals of < 1 day requires a MindsDB [subscription](https://mindsdb.com/pricing), as the demo cloud allows a minimum job frequency of 1 day without one.
-
-
-## What’s Next?
-
-Use the MindsDB [JavaScript SDK](https://docs.mindsdb.com/sdk/javascript-sdk) or the [Python SDK](https://docs.mindsdb.com/sdk/python-sdk) to embed what you’ve built in this tutorial into your application code.
-
-While this simple example uses Twitter, MindsDB will soon support Slack and perhaps one day, Discord. Combined with the ability to [FINETUNE](https://docs.mindsdb.com/sql/api/finetune) existing, trained LLM models with your own data inside a relational database, a future where you can train chatbots to reason about data and/or content you provide doesn’t seem far off. Imagine a support bot that understands your digital assets and knowledge!
-
-Explore more about how MariaDB Enterprise Server, MariaDB Columnstore, MaxScale Database proxy, and Xpand Distributed SQL can help your projects at [The MariaDB developer hub](https://mariadb.com/developers/), or get in touch with MariaDB experts on our [slack](https://mariadb-community.slack.com/).
-
-
-Check out [another Twitter Chatbot tutorial](/sql/tutorials/twitter-chatbot) that offers an alternative way to simplify the process of fetching tweets with the `LAST` keyword.
-
-Want to talk to SnoopStein? Post a tweet with `@snoop_stein` and wait for the reply.
-
diff --git a/docs/use-cases/automated_finetuning/data.csv b/docs/use-cases/automated_finetuning/data.csv
deleted file mode 100644
index 196864a24e5..00000000000
--- a/docs/use-cases/automated_finetuning/data.csv
+++ /dev/null
@@ -1,85 +0,0 @@
-prompt,completion
-What is the SQL syntax to connect a database to MindsDB?,"CREATE DATABASE datasource_name
-[WITH] [ENGINE [=] engine_name] [,]
-[PARAMETERS [=] {
- ""key"": ""value"",
- ...
-}];
-"
-What is the SQL command to connect to the demo postgres database for MindsDB learning hub examples?,"CREATE DATABASE example_db
-WITH
-ENGINE = ""postgres"",
-PARAMETERS = {
- ""user"": ""demo_user"",
- ""password"": ""demo_password"",
- ""host"": ""samples.mindsdb.com"",
- ""port"": ""5432"",
- ""database"": ""demo""
-};
-"
-What is the SQL command to create a home rentals MindsDB machine learning model?,"CREATE MODEL
- mindsdb.home_rentals_model
-FROM example_db
- (SELECT * FROM demo_data.home_rentals)
-PREDICT rental_price;
-"
-What is the SQL syntax to create a MindsDB machine learning model?,"CREATE MODEL project_name.predictor_name
-
-[FROM integration_name
- (SELECT [sequential_column,] [partition_column,] column_name, ...
- FROM table_name)]
-
-PREDICT target_column
-
-[ORDER BY sequential_column]
-[GROUP BY partition_column]
-[WINDOW int]
-[HORIZON int]
-
-[USING engine = 'engine_name',
- tag = 'tag_name'];
-"
-What is the SQL syntax to check status of a MindsDB machine learning model?,"SELECT *
-FROM mindsdb.models
-WHERE name=model_name;
-"
-What is the SQL command to predict rental price from synthetic home rentals data with a MindsDB machine learning model?,"SELECT rental_price,
- rental_price_explain
-FROM mindsdb.home_rentals_model
-WHERE sqft = 823
-AND location='good'
-AND neighborhood='downtown'
-AND days_on_market=10;
-"
-What is the SQL syntax to predict from synthetic data with a MindsDB machine learning model?,"SELECT target_name, target_name_explain
-FROM mindsdb.predictor_name
-WHERE column_name = value
-AND column_name = value;
-"
-What is the SQL syntax to join input data with predictions from a MindsDB machine learning model?,"SELECT t.column_name, p.column_name, ...
-FROM integration_name.table_name [AS] t
-JOIN project_name.model_name [AS] p;
-"
-What is the SQL command to join home rentals input data with rental price predictions from a MindsDB machine learning model?,"SELECT t.rental_price as real_price,
-m.rental_price as predicted_price,
-t.number_of_rooms, t.number_of_bathrooms, t.sqft, t.location, t.days_on_market
-FROM example_db.demo_data.home_rentals as t
-JOIN mindsdb.home_rentals_model as m limit 100;
-"
-What is the SQL syntax to retrain a MindsDB machine learning model?,"RETRAIN project_name.predictor_name
-[FROM integration_name
- (SELECT column_name, ... FROM table_name)
-PREDICT target_name
-USING engine = 'engine_name',
- tag = 'tag_name',
- active = 0/1];
-"
-What is the SQL syntax to adjust a MindsDB machine learning model?,"ADJUST project_name.predictor_name
-[FROM integration_name
- (SELECT column_name, ... FROM table_name)
-USING key = value];
-"
-What is the SQL command to check status of a MindsDB home rentals machine learning model?,"SELECT *
-FROM mindsdb.models
-WHERE name='home_rentals_model';
-"
diff --git a/docs/use-cases/automated_finetuning/openai.mdx b/docs/use-cases/automated_finetuning/openai.mdx
deleted file mode 100644
index 090a7a1bd01..00000000000
--- a/docs/use-cases/automated_finetuning/openai.mdx
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: Fine-Tune the OpenAI Model
-sidebarTitle: OpenAI
----
-
-In this example we are going to **teach an OpenAI model, how to write MindsDB AI SQL queries**
-
-All OpenAI models belong to the group of Large Language Models (LLMs). By definition, these are pre-trained on large amounts of data. However, it is possible to fine-tune these models with a task-specific dataset for a defined use case.
-
-
-OpenAI supports fine-tuning of some of its models [listed here](https://platform.openai.com/docs/guides/fine-tuning). And with MindsDB, you can easily fine-tune an OpenAI model making it more applicable to your specific use case.
-
-
-Let's create a model to answer questions about MindsDB's custom SQL syntax.
-
-First, create an OpenAI engine, passing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-Then, create a model using this engine:
-
-```sql
-CREATE MODEL openai_davinci
-PREDICT completion
-USING
- engine = 'openai_engine',
- model_name = 'davinci-002',
- prompt_template = 'Return a valid SQL string for the following question about MindsDB in-database machine learning: {{prompt}}';
-```
-
-You can check model status with this command:
-
-```sql
-DESCRIBE openai_davinci;
-```
-
-Once the status is complete, we can query for predictions:
-
-```sql
-SELECT prompt, completion
-FROM openai_davinci as m
-WHERE prompt = 'What is the SQL syntax to join input data with predictions from a MindsDB machine learning model?'
-USING max_tokens=400;
-```
-
-On execution, we get:
-
-```sql
-+---------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| prompt | completion |
-+---------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| What is the SQL syntax to join input data with predictions from a MindsDB machine learning model? | The SQL syntax is: SELECT * FROM input_data INNER JOIN predictions ON input_data.id = predictions.id |
-+---------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-```
-
-If you followed one of the MindsDB tutorials before, you'll see that the syntax provided by the model is not exactly as expected.
-
-Now, we'll fine-tune our model using a table that stores details about MindsDB's custom SQL syntax.
-
-
-Upload [this data file](https://github.com/mindsdb/mindsdb/blob/main/docs/use-cases/automated_finetuning/data.csv) to MindsDB and use it to finetune the model.
-
-
-This is how you can fine-tune an OpenAI model:
-
-```sql
-FINETUNE openai_davinci
-FROM files
- (SELECT prompt, completion FROM openai_learninghub_ft);
-```
-
-The [`FINETUNE`](/sql/api/finetune) command creates a new version of the `openai_davinci` model. You can query all available versions as below:
-
-```sql
-SELECT *
-FROM models
-WHERE name = 'openai_davinci';
-```
-
-
-While the model is being generated and trained, it is not active. The model becomes active only after it completes generating and training.
-
-
-Once the new version status is complete and active, we can query the model again, expecting a more accurate output.
-
-```sql
-SELECT prompt, completion
-FROM openai_davinci as m
-WHERE prompt = 'What is the SQL syntax to join input data with predictions from a MindsDB machine learning model?'
-USING max_tokens=400;
-```
-
-On execution, we get:
-
-```sql
-+---------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| prompt | completion |
-+---------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| What is the SQL syntax to join input data with predictions from a MindsDB machine learning model? | SELECT * FROM mindsdb.models.my_model JOIN mindsdb.input_data_name; |
-+---------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-```
-
-
-If you have dynamic data that gets updated regularly, you can set up an automated fine-tuning as below.
-
-Note that the data source must contain an incremental column, such as timestamp or integer, so MindsDB can pick up only the recently added data with the help of the [`LAST` keyword](/mindsdb_sql/sql/create/jobs#last).
-
-Here is how to create and schedule a job to fine-tune the model periodically.
-
-```sql
-CREATE JOB automated_finetuning (
-
- FINETUNE openai_davinci
- FROM mindsdb
- (SELECT *
- FROM files.openai_learninghub_ft
- WHERE timestamp > LAST)
-)
-EVERY 1 day
-IF (
- SELECT *
- FROM files.openai_learninghub_ft
- WHERE timestamp > LAST
-);
-```
-
-Now your model will be fine-tuned with newly added data every day or every time there is new data available.
-
diff --git a/docs/use-cases/automated_finetuning/overview.mdx b/docs/use-cases/automated_finetuning/overview.mdx
deleted file mode 100644
index e230f313a5c..00000000000
--- a/docs/use-cases/automated_finetuning/overview.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Automated Fine-Tuning
-sidebarTitle: Overview
----
-
-Real-world use cases often deal with dynamic data that is updated regularly. MindsDB enables you to automate [fine-tuning](/mindsdb_sql/sql/api/finetune) of AI models to keep them up-to-date and as accurate as possible. You can set up [jobs](/mindsdb_sql/sql/create/jobs) that will trigger fine-tuning of AI models every time new data arrives.
-
-
-
-
-
-This section covers the following use cases:
-
- - Fine-tuning of Large Language models
- - Fine-tuning of AutoML models
-
-
-
-
-Available tutorials:
-
-
-
-
-
-
-
-
diff --git a/docs/use-cases/data_enrichment/hugging-face-examples.mdx b/docs/use-cases/data_enrichment/hugging-face-examples.mdx
deleted file mode 100644
index 9554aaaa11f..00000000000
--- a/docs/use-cases/data_enrichment/hugging-face-examples.mdx
+++ /dev/null
@@ -1,939 +0,0 @@
----
-title: Usage Examples of Hugging Face Models
-sidebarTitle: Hugging Face Models
----
-
-This document presents various use cases of Hugging Face models from MindsDB.
-
-## Spam Classifier
-
-Here is an example of a binary classification. The model determines whether a text string is spam or not.
-
-```sql
-CREATE MODEL mindsdb.spam_classifier
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'mrm8488/bert-tiny-finetuned-sms-spam-detection',
- input_column = 'text_spammy',
- labels = ['ham', 'spam'];
-```
-
-Before querying for predictions, we should verify the status of the `spam_classifier` model.
-
-```sql
-DESCRIBE spam_classifier;
-```
-
-On execution, we get:
-
-```sql
-+---------------+-------+--------+--------+-------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT|UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+---------------+-------+--------+--------+-------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|spam_classifier|mindsdb|complete|[NULL] |PRED |up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'PRED', 'using': {'engine': 'huggingface', 'task': 'text-classification', 'model_name': 'mrm8488/bert-tiny-finetuned-sms-spam-detection', 'input_column': 'text_spammy', 'labels': ['ham', 'spam']}}|
-+---------------+-------+--------+--------+-------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_spammy AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.spam_classifier AS h;
-```
-
-On execution, we get:
-
-```sql
-+----+---------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|PRED|PRED_explain |input_text |
-+----+---------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|spam|{'spam': 0.9051626920700073, 'ham': 0.09483727067708969} |Free entry in 2 a wkly comp to win FA Cup final tkts 21st May 2005. Text FA to 87121 to receive entry question(std txt rate)T&C's apply 08452810075over18's |
-|ham |{'ham': 0.9380123615264893, 'spam': 0.061987683176994324}|Nah I don't think he goes to usf, he lives around here though |
-|spam|{'spam': 0.9064534902572632, 'ham': 0.09354648739099503} |WINNER!! As a valued network customer you have been selected to receive a £900 prize reward! To claim call 09061701461. Claim code KL341. Valid 12 hours only. |
-+----+---------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-## Sentiment Classifier
-
-Here is an example of a multi-value classification. The model determines the sentiment of a text string, where possible values are `negative`, `neutral`, and `positive`.
-
-```sql
-CREATE MODEL mindsdb.sentiment_classifier
-PREDICT sentiment
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'cardiffnlp/twitter-roberta-base-sentiment',
- input_column = 'text_short',
- labels = ['negative', 'neutral', 'positive'];
-```
-
-Before querying for predictions, we should verify the status of the `sentiment_classifier` model.
-
-```sql
-DESCRIBE sentiment_classifier;
-```
-
-On execution, we get:
-
-```sql
-+--------------------+-------+--------+--------+---------+-------------+---------------+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+--------------------+-------+--------+--------+---------+-------------+---------------+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|sentiment_classifier|mindsdb|complete|[NULL] |sentiment|up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'sentiment', 'using': {'engine': 'huggingface', 'task': 'text-classification', 'model_name': 'cardiffnlp/twitter-roberta-base-sentiment', 'input_column': 'text_short', 'labels': ['negative', 'neutral', 'positive']}}|
-+--------------------+-------+--------+--------+---------+-------------+---------------+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_short AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.sentiment_classifier AS h;
-```
-
-On execution, we get:
-
-```sql
-+---------+----------------------------------------------------------------------------------------------------+-------------------+
-|sentiment|sentiment_explain |input_text |
-+---------+----------------------------------------------------------------------------------------------------+-------------------+
-|negative |{'negative': 0.9679920077323914, 'neutral': 0.02736542373895645, 'positive': 0.0046426113694906235} |I hate tacos |
-|positive |{'positive': 0.7607280015945435, 'neutral': 0.2332666665315628, 'negative': 0.006005281116813421} |I want to dance |
-|positive |{'positive': 0.9835041761398315, 'neutral': 0.014900505542755127, 'negative': 0.0015953202964738011}|Baking is the best |
-+---------+----------------------------------------------------------------------------------------------------+-------------------+
-```
-
-## Zero-Shot Classifier
-
-Here is an example of a zero-shot classification. The model determines to which of the defined categories a text string belongs.
-
-```sql
-CREATE MODEL mindsdb.zero_shot_tcd
-PREDICT topic
-USING
- engine = 'huggingface',
- task = 'zero-shot-classification',
- model_name = 'facebook/bart-large-mnli',
- input_column = 'text_short',
- candidate_labels = ['travel', 'cooking', 'dancing'];
-```
-
-Before querying for predictions, we should verify the status of the `zero_shot_tcd` model.
-
-```sql
-DESCRIBE zero_shot_tcd;
-```
-
-On execution, we get:
-
-```sql
-+-------------+-------+--------+--------+--------+-------------+---------------+------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+-------------+-------+--------+--------+--------+-------------+---------------+------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|zero_shot_tcd|mindsdb|complete|[NULL] |topic |up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'topic', 'using': {'engine': 'huggingface', 'task': 'zero-shot-classification', 'model_name': 'facebook/bart-large-mnli', 'input_column': 'text_short', 'candidate_labels': ['travel', 'cooking', 'dancing']}}|
-+-------------+-------+--------+--------+--------+-------------+---------------+------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_short AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.zero_shot_tcd AS h;
-```
-
-On execution, we get:
-
-```sql
-+-------+--------------------------------------------------------------------------------------------------+-------------------+
-|topic |topic_explain |input_text |
-+-------+--------------------------------------------------------------------------------------------------+-------------------+
-|cooking|{'cooking': 0.7530364990234375, 'travel': 0.1607145369052887, 'dancing': 0.08624900877475739} |I hate tacos |
-|dancing|{'dancing': 0.9746809601783752, 'travel': 0.015539299696683884, 'cooking': 0.009779711253941059} |I want to dance |
-|cooking|{'cooking': 0.9936348795890808, 'travel': 0.0034196735359728336, 'dancing': 0.0029454431496560574}|Baking is the best |
-+-------+--------------------------------------------------------------------------------------------------+-------------------+
-```
-
-## Translation
-
-Here is an example of a translation. The model gets an input string in English and translates it into French.
-
-```sql
-CREATE MODEL mindsdb.translator_en_fr
-PREDICT translated
-USING
- engine = 'huggingface',
- task = 'translation',
- model_name = 't5-base',
- input_column = 'text_short',
- lang_input = 'en',
- lang_output = 'fr';
-```
-
-Before querying for predictions, we should verify the status of the `translator_en_fr` model.
-
-```sql
-DESCRIBE translator_en_fr;
-```
-
-On execution, we get:
-
-```sql
-+----------------+-------+--------+--------+----------+-------------+---------------+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+----------------+-------+--------+--------+----------+-------------+---------------+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|translator_en_fr|mindsdb|complete|[NULL] |translated|up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'translated', 'using': {'engine': 'huggingface', 'task': 'translation', 'model_name': 't5-base', 'input_column': 'text_short', 'lang_input': 'en', 'lang_output': 'fr'}}|
-+----------------+-------+--------+--------+----------+-------------+---------------+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_short AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.translator_en_fr AS h;
-```
-
-On execution, we get:
-
-```sql
-+-------------------------------+-------------------+
-|translated |input_text |
-+-------------------------------+-------------------+
-|Je déteste les tacos |I hate tacos |
-|Je veux danser |I want to dance |
-|La boulangerie est la meilleure|Baking is the best |
-+-------------------------------+-------------------+
-```
-
-## Summarization
-
-Here is an example of input text summarization.
-
-```sql
-CREATE MODEL mindsdb.summarizer_10_20
-PREDICT text_summary
-USING
- engine = 'huggingface',
- task = 'summarization',
- model_name = 'sshleifer/distilbart-cnn-12-6',
- input_column = 'text_long',
- min_output_length = 10,
- max_output_length = 20;
-```
-
-Before querying for predictions, we should verify the status of the `summarizer_10_20` model.
-
-```sql
-DESCRIBE summarizer_10_20;
-```
-
-On execution, we get:
-
-```sql
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|summarizer_10_20|mindsdb|complete|[NULL] |text_summary|up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'text_summary', 'using': {'engine': 'huggingface', 'task': 'summarization', 'model_name': 'sshleifer/distilbart-cnn-12-6', 'input_column': 'text_long', 'min_output_length': 10, 'max_output_length': 20}}|
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_long AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.summarizer_10_20 AS h;
-```
-
-On execution, we get:
-
-```sql
-+--------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|text_summary |input_text |
-+--------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|A taco is a traditional Mexican food consisting of a small hand-sized corn- or |A taco is a traditional Mexican food consisting of a small hand-sized corn- or wheat-based tortilla topped with a filling. The tortilla is then folded around the filling and eaten by hand. A taco can be made with a variety of fillings, including beef, pork, chicken, seafood, beans, vegetables, and cheese, allowing for great versatility and variety. |
-|Dance is a performing art form consisting of sequences of movement, either improvised or purposefully selected|Dance is a performing art form consisting of sequences of movement, either improvised or purposefully selected. This movement has aesthetic and often symbolic value.[nb 1] Dance can be categorized and described by its choreography, by its repertoire of movements, or by its historical period or place of origin. |
-|Baking is a method of preparing food that uses dry heat, typically in an oven |Baking is a method of preparing food that uses dry heat, typically in an oven, but can also be done in hot ashes, or on hot stones. The most common baked item is bread but many other types of foods can be baked. Heat is gradually transferred from the surface of cakes, cookies, and pieces of bread to their center. As heat travels through, it transforms batters and doughs into baked goods and more with a firm dry crust and a softer center. Baking can be combined with grilling to produce a hybrid barbecue variant by using both methods simultaneously, or one after the other. Baking is related to barbecuing because the concept of the masonry oven is similar to that of a smoke pit.|
-+--------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-## Fill Mask
-
-Here is an example of a masked language modeling task.
-
-```sql
-CREATE MODEL mindsdb.fill_mask
-PREDICT text_filled
-USING
- engine = 'huggingface',
- task = 'fill-mask',
- model_name = 'bert-base-uncased',
- input_column = 'text';
-```
-
-Before querying for predictions, we should verify the status of the `fill_mask` model.
-
-```sql
-DESCRIBE fill_mask;
-```
-
-On execution, we get:
-
-```sql
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+--------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+--------------------------------------------------------------------------------------------------------------------+
-|fill_mask |mindsdb|complete|[NULL] |text_filled |up_to_date |23.3.5.0 |[NULL]|[NULL] |{'target': 'text_filled', 'using': {'task': 'fill-mask', 'model_name': 'bert-base-uncased', 'input_column': 'text'}}|
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+--------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text AS input_text
-FROM demo.texts AS t
-JOIN mindsdb.fill_mask AS h;
-```
-
-On execution, we get:
-
-```sql
-+-------------------------+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|text_filled |input_text |text_filled_explain |
-+-------------------------+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|the food was great! |The [MASK] was great! |{'the food was great!': 0.16309359669685364, 'the party was great!': 0.06305009871721268, 'the fun was great!': 0.04633583873510361, 'the show was great!': 0.043319422751665115, 'the music was great!': 0.02990395948290825} |
-|the weather is good today|The weather is [MASK] today|{'the weather is good today': 0.22563229501247406, 'the weather is warm today': 0.07954009622335434, 'the weather is fine today': 0.047255873680114746, 'the weather is better today': 0.034303560853004456, 'the weather is mild today': 0.03092862293124199}|
-+-------------------------+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-## Hugging Face + MindsDB Models Library
-
-### Text Classification
-
-#### Spam
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_spam
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'mariagrandury/roberta-base-finetuned-sms-spam-detection',
- input_column = 'text',
- labels = ['spam', 'ham'];
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_spam;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_spam
-WHERE text = 'I like you. I love you.';
-```
-
-On execution, we get:
-
-```sql
-+----+--------------------------------------------------------+-----------------------+
-|PRED|PRED_explain |text |
-+----+--------------------------------------------------------+-----------------------+
-|spam|{"ham":0.00020051795581821352,"spam":0.9997995495796204}|I like you. I love you.|
-+----+--------------------------------------------------------+-----------------------+
-```
-
-#### Sentiment
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_sentiment
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'cardiffnlp/twitter-roberta-base-sentiment',
- input_column = 'text',
- labels = ['neg', 'neu', 'pos'];
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_sentiment;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_sentiment
-WHERE text = 'I like you. I love you.';
-```
-
-On execution, we get:
-
-```sql
-+----+--------------------------------------------------------------------------------+-----------------------+
-|PRED|PRED_explain |text |
-+----+--------------------------------------------------------------------------------+-----------------------+
-|pos |{"neg":0.003046575468033552,"neu":0.021965451538562775,"pos":0.9749879240989685}|I like you. I love you.|
-+----+--------------------------------------------------------------------------------+-----------------------+
-```
-
-#### Sentiment (Finance)
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_sentiment_finance
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'ProsusAI/finbert',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_sentiment_finance;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_sentiment_finance
-WHERE text = 'Stocks rallied and the British pound gained.';
-```
-
-On execution, we get:
-
-```sql
-+--------+-------------------------------------------------------------------------------------------+--------------------------------------------+
-|PRED |PRED_explain |text |
-+--------+-------------------------------------------------------------------------------------------+--------------------------------------------+
-|positive|{"negative":0.0344734713435173,"neutral":0.06716493517160416,"positive":0.8983616232872009}|Stocks rallied and the British pound gained.|
-+--------+-------------------------------------------------------------------------------------------+--------------------------------------------+
-```
-
-#### Emotions (6)
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_emotions_6
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'j-hartmann/emotion-english-distilroberta-base',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_emotions_6;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_emotions_6
-WHERE text = 'Oh Happy Day';
-```
-
-On execution, we get:
-
-```sql
-+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+
-|PRED|PRED_explain |text |
-+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+
-|joy |{"anger":0.0028446922078728676,"disgust":0.0009613594156689942,"fear":0.0007112706662155688,"joy":0.7692911624908447,"neutral":0.037753619253635406,"sadness":0.015293814241886139,"surprise":0.17314413189888}|Oh Happy Day|
-+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+
-```
-
-#### Toxicity
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_toxicity
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'SkolkovoInstitute/roberta_toxicity_classifier',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_toxicity;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_toxicity
-WHERE text = 'I like you. I love you.';
-```
-
-On execution, we get:
-
-```sql
-+-------+-------------------------------------------------------------+-----------------------+
-|PRED |PRED_explain |text |
-+-------+-------------------------------------------------------------+-----------------------+
-|neutral|{"neutral":0.9999547004699707,"toxic":0.00004535282641882077}|I like you. I love you.|
-+-------+-------------------------------------------------------------+-----------------------+
-```
-
-#### ESG (6)
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_esg_6
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'yiyanghkust/finbert-esg',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_esg_6;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT * FROM mindsdb.hf_esg_6
-WHERE text = 'Rhonda has been volunteering for several years for a variety of charitable community programs.';
-```
-
-On execution, we get:
-
-```sql
-+------+---------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
-|PRED |PRED_explain |text |
-+------+---------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
-|Social|{"Environmental":0.0034267122391611338,"Governance":0.004729956854134798,"None":0.001239194767549634,"Social":0.9906041026115417}|Rhonda has been volunteering for several years for a variety of charitable community programs.|
-+------+---------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
-```
-
-#### ESG (26)
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_esg_26
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'yiyanghkust/finbert-esg',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_esg_26;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_esg_26
-WHERE text = 'We believe it is essential to establish validated conflict-free sources of 3TG within the Democratic Republic of the Congo (the “DRC”) and adjoining countries (together, with the DRC, the “Covered Countries”), so that these minerals can be procured in a way that contributes to economic growth and development in the region. To aid in this effort, we have established a conflict minerals policy and an internal team to implement the policy.';
-```
-
-On execution, we get:
-
-```sql
-+------+-----------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|PRED |PRED_explain |text |
-+------+-----------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|Social|{"Environmental":0.2031959593296051,"Governance":0.08251894265413284,"None":0.050893042236566544,"Social":0.6633920073509216}|We believe it is essential to establish validated conflict-free sources of 3TG within the Democratic Republic of the Congo (the “DRC”) and adjoining countries (together, with the DRC, the “Covered Countries”), so that these minerals can be procured in a way that contributes to economic growth and development in the region. To aid in this effort, we have established a conflict minerals policy and an internal team to implement the policy.|
-+------+-----------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-#### Hate Speech
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_hate
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'Hate-speech-CNERG/bert-base-uncased-hatexplain',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_hate;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_hate
-WHERE text = 'I like you. I love you.';
-```
-
-On execution, we get:
-
-```sql
-+------+-----------------------------------------------------------------------------------------------+-----------------------+
-|PRED |PRED_explain |text |
-+------+-----------------------------------------------------------------------------------------------+-----------------------+
-|normal|{"hate speech":0.03551718592643738,"normal":0.7747423648834229,"offensive":0.18974047899246216}|I like you. I love you.|
-+------+-----------------------------------------------------------------------------------------------+-----------------------+
-```
-
-#### Crypto Buy Signals
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_crypto
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'ElKulako/cryptobert',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_crypto;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_crypto
-WHERE text = 'BTC is killing it right now';
-```
-
-On execution, we get:
-
-```sql
-+-------+------------------------------------------------------------------------------------------+---------------------------+
-|PRED |PRED_explain |text |
-+-------+------------------------------------------------------------------------------------------+---------------------------+
-|Bullish|{"Bearish":0.0002816587220877409,"Bullish":0.559426486492157,"Neutral":0.4402918517589569}|BTC is killing it right now|
-+-------+------------------------------------------------------------------------------------------+---------------------------+
-```
-
-#### US Political Party
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_us_party
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'm-newhauser/distilbert-political-tweets',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_us_party;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_us_party
-WHERE text = 'This pandemic has shown us clearly the vulgarity of our healthcare system. Highest costs in the world, yet not enough nurses or doctors. Many millions are uninsured, while insurance company profits soar. The struggle continues. Healthcare is a human right. Medicare for all.';
-```
-
-On execution, we get:
-
-```sql
-+--------+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|PRED |PRED_explain |text |
-+--------+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|Democrat|{"Democrat":0.9999973773956299,"Republican":0.00000261212517216336}|This pandemic has shown us clearly the vulgarity of our healthcare system. Highest costs in the world, yet not enough nurses or doctors. Many millions are uninsured, while insurance company profits soar. The struggle continues. Healthcare is a human right. Medicare for all.|
-+--------+-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-#### Question Detection
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_question
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'shahrukhx01/bert-mini-finetune-question-detection',
- input_column = 'text',
- labels = ['question', 'query'];
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_question;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_question
-WHERE text = 'Where can I buy electronics in London';
-```
-
-On execution, we get:
-
-```sql
-+-----+--------------------------------------------------------------+-------------------------------------+
-|PRED |PRED_explain |text |
-+-----+--------------------------------------------------------------+-------------------------------------+
-|query|{"query":0.9997773766517639,"question":0.00022261829872149974}|Where can I buy electronics in London|
-+-----+--------------------------------------------------------------+-------------------------------------+
-```
-
-#### Industry
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_industry
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'text-classification',
- model_name = 'sampathkethineedi/industry-classification',
- input_column = 'text';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_industry;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_industry
-WHERE text = 'Low latency is one of our best cloud features';
-```
-
-On execution, we get:
-
-```sql
-+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
-|PRED |PRED_explain |text |
-+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
-|Systems Software|{"Advertising":0.000006795735771447653,"Aerospace & Defense":0.00001537964453746099,"Apparel Retail":5.350161131900677e-7,"Apparel, Accessories & Luxury Goods":0.000002604161181807285,"Application Software":0.009111878462135792,"Asset Management & Custody Banks":0.00003155150625389069,"Auto Parts & Equipment":0.000015504940165556036,"Biotechnology":6.533917940032552e-8,"Building Products":7.348538133555849e-8,"Casinos & Gaming":0.000013775999832432717,"Commodity Chemicals":0.0000010432338513055583,"Communications Equipment":0.000019887389498762786,"Construction & Engineering":0.000001826199536480999,"Construction Machinery & Heavy Trucks":0.000009827364920056425,"Consumer Finance":0.0000018292046206624946,"Data Processing & Outsourced Services":0.0000010666744856280275,"Diversified Metals & Mining":0.000006960767223063158,"Diversified Support Services":0.000016824227714096196,"Electric Utilities":0.000003896044290740974,"Electrical Components & Equipment":0.000001626394464437908,"Electronic Equipment & Instruments":0.00003863943129545078,"Environmental & Facilities Services":0.000736175337806344,"Gold":0.00002220332135038916,"Health Care Equipment":4.6927588925882446e-8,"Health Care Facilities":7.432880124724761e-7,"Health Care Services":6.929263918209472e-7,"Health Care Supplies":2.1007431882935634e-7,"Health Care Technology":0.000003907185146090342,"Homebuilding":3.903339234057057e-7,"Hotels, Resorts & Cruise Lines":6.0527639789143e-7,"Human Resource & Employment Services":5.48697983049351e-7,"IT Consulting & Other Services":0.0000723653138265945,"Industrial Machinery":7.230253231682582e-7,"Integrated Telecommunication Services":2.8266379104024963e-7,"Interactive Media & Services":0.00003454017496551387,"Internet & Direct Marketing Retail":0.000003871373337460682,"Internet Services & Infrastructure":0.0007196652004495263,"Investment Banking & Brokerage":0.0000040634336073708255,"Leisure Products":0.000002158361439796863,"Life Sciences Tools & Services":0.000002861268058040878,"Movies & Entertainment":0.000007286199888767442,"Oil & Gas Equipment & Services":0.000004376991455501411,"Oil & Gas Exploration & Production":0.000005569149834627751,"Oil & Gas Refining & Marketing":0.000012647416951949708,"Oil & Gas Storage & Transportation":0.000005852583853993565,"Packaged Foods & Meats":0.0000011130315442642313,"Personal Products":0.00000970239307207521,"Pharmaceuticals":0.0000037546726616710657,"Property & Casualty Insurance":0.000006116194072092185,"Real Estate Operating Companies":0.00001882187461887952,"Regional Banks":0.0000011669454806906288,"Research & Consulting Services":0.000024276219846797176,"Restaurants":8.598511840318679e-7,"Semiconductors":0.0000021006283077440457,"Specialty Chemicals":0.000004160017397225602,"Specialty Stores":2.644004553076229e-7,"Steel":0.0000013566890402216814,"Systems Software":0.9889177083969116,"Technology Distributors":0.00001339179198112106,"Technology Hardware, Storage & Peripherals":0.00004790363891515881,"Thrifts & Mortgage Finance":3.924862141957419e-7,"Trading Companies & Distributors":0.0000035233156268077437}|Low latency is one of our best cloud features|
-+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
-```
-
-### Zero-Shot Classification
-
-#### Bart
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_zs_bart
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'zero-shot-classification',
- model_name = 'facebook/bart-large-mnli',
- input_column = 'text',
- candidate_labels = ['Books', 'Household', 'Clothing & Accessories', 'Electronics'];
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_zs_bart;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_zs_bart
-WHERE text = 'Paper Plane Design Framed Wall Hanging Motivational Office Decor Art Prints';
-```
-
-On execution, we get:
-
-```sql
-+---------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
-|PRED |PRED_explain |text |
-+---------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
-|Household|{"Books":0.1876104772090912,"Clothing & Accessories":0.08688066899776459,"Electronics":0.14785148203372955,"Household":0.5776574015617371}|Paper Plane Design Framed Wall Hanging Motivational Office Decor Art Prints|
-+---------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
-```
-
-### Translation
-
-#### English to French (T5)
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_t5_en_fr
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'translation',
- model_name = 't5-base',
- input_column = 'text',
- lang_input = 'en',
- lang_output = 'fr';
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_t5_en_fr;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_t5_en_fr
-WHERE text = 'The monkey is on the branch';
-```
-
-On execution, we get:
-
-```sql
-+---------------------------+---------------------------+
-|PRED |text |
-+---------------------------+---------------------------+
-|Le singe est sur la branche|The monkey is on the branch|
-+---------------------------+---------------------------+
-```
-
-### Summarization
-
-#### Bart
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_bart_sum_20
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'summarization',
- model_name = 'sshleifer/distilbart-cnn-12-6',
- input_column = 'text',
- min_output_length = 5,
- max_output_length = 20;
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_bart_sum_20;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_bart_sum_20
-WHERE text = 'The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct.';
-```
-
-On execution, we get:
-
-```sql
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|PRED |text |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|The tower is 324 metres (1,063 ft) tall, about the same|The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct.|
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-#### Google Pegasus
-
-Let's create a model.
-
-```sql
-CREATE MODEL mindsdb.hf_peg_sum_20
-PREDICT PRED
-USING
- engine = 'huggingface',
- task = 'summarization',
- model_name = 'google/pegasus-xsum',
- input_column = 'text',
- min_output_length = 5,
- max_output_length = 20;
-```
-
-And check its status.
-
-```sql
-DESCRIBE hf_peg_sum_20;
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT *
-FROM mindsdb.hf_peg_sum_20
-WHERE text = 'The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct.';
-```
-
-On execution, we get:
-
-```sql
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|PRED |text |
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|The Eiffel Tower is a landmark in Paris, France.|The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct.|
-+------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
diff --git a/docs/use-cases/data_enrichment/hugging-face-inference-api-examples.mdx b/docs/use-cases/data_enrichment/hugging-face-inference-api-examples.mdx
deleted file mode 100644
index f088fec300f..00000000000
--- a/docs/use-cases/data_enrichment/hugging-face-inference-api-examples.mdx
+++ /dev/null
@@ -1,254 +0,0 @@
----
-title: Usage Examples of Hugging Face Models Through Inference API
-sidebarTitle: Hugging Face Inference API
----
-
-This document presents various use cases of Hugging Face models through Inference API from MindsDB.
-
-## Spam Classifier
-
-Here is an example of a binary classification. The model determines whether a text string is spam or not.
-
-```sql
-CREATE MODEL mindsdb.spam_classifier
-PREDICT PRED
-USING
- engine = 'hf_inference_api',
- task = 'text-classification',
- column = 'text_spammy';
-```
-
-Before querying for predictions, we should verify the status of the `spam_classifier` model.
-
-```sql
-DESCRIBE spam_classifier;
-```
-
-On execution, we get:
-
-```sql
-+---------------+-------+--------+--------+-------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT|UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+---------------+-------+--------+--------+-------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|spam_classifier|mindsdb|complete|[NULL] |PRED |up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'PRED', 'using': {'engine': 'huggingface', 'task': 'text-classification', 'model_name': 'mrm8488/bert-tiny-finetuned-sms-spam-detection', 'input_column': 'text_spammy', 'labels': ['ham', 'spam']}}|
-+---------------+-------+--------+--------+-------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_spammy AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.spam_classifier AS h;
-```
-
-On execution, we get:
-
-```sql
-+----+---------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|PRED|PRED_explain |input_text |
-+----+---------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|spam|{'spam': 0.9051626920700073, 'ham': 0.09483727067708969} |Free entry in 2 a wkly comp to win FA Cup final tkts 21st May 2005. Text FA to 87121 to receive entry question(std txt rate)T&C's apply 08452810075over18's |
-|ham |{'ham': 0.9380123615264893, 'spam': 0.061987683176994324}|Nah I don't think he goes to usf, he lives around here though |
-|spam|{'spam': 0.9064534902572632, 'ham': 0.09354648739099503} |WINNER!! As a valued network customer you have been selected to receive a £900 prize reward! To claim call 09061701461. Claim code KL341. Valid 12 hours only. |
-+----+---------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-## Sentiment Classifier
-
-Here is an example of a multi-value classification. The model determines the sentiment of a text string, where possible values are `negative`, `neutral`, and `positive`.
-
-```sql
-CREATE MODEL mindsdb.sentiment_classifier
-PREDICT sentiment
-USING
- engine = 'hf_inference_api',
- task = 'text-classification',
- column = 'text_short',
- labels = ['negative', 'neutral', 'positive'];
-```
-
-Before querying for predictions, we should verify the status of the `sentiment_classifier` model.
-
-```sql
-DESCRIBE sentiment_classifier;
-```
-
-On execution, we get:
-
-```sql
-+--------------------+-------+--------+--------+---------+-------------+---------------+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+--------------------+-------+--------+--------+---------+-------------+---------------+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|sentiment_classifier|mindsdb|complete|[NULL] |sentiment|up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'sentiment', 'using': {'engine': 'huggingface', 'task': 'text-classification', 'model_name': 'cardiffnlp/twitter-roberta-base-sentiment', 'input_column': 'text_short', 'labels': ['negative', 'neutral', 'positive']}}|
-+--------------------+-------+--------+--------+---------+-------------+---------------+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_short AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.sentiment_classifier AS h;
-```
-
-On execution, we get:
-
-```sql
-+---------+----------------------------------------------------------------------------------------------------+-------------------+
-|sentiment|sentiment_explain |input_text |
-+---------+----------------------------------------------------------------------------------------------------+-------------------+
-|negative |{'negative': 0.9679920077323914, 'neutral': 0.02736542373895645, 'positive': 0.0046426113694906235} |I hate tacos |
-|positive |{'positive': 0.7607280015945435, 'neutral': 0.2332666665315628, 'negative': 0.006005281116813421} |I want to dance |
-|positive |{'positive': 0.9835041761398315, 'neutral': 0.014900505542755127, 'negative': 0.0015953202964738011}|Baking is the best |
-+---------+----------------------------------------------------------------------------------------------------+-------------------+
-```
-
-## Zero-Shot Classifier
-
-Here is an example of a zero-shot classification. The model determines to which of the defined categories a text string belongs.
-
-```sql
-CREATE MODEL mindsdb.zero_shot_tcd
-PREDICT topic
-USING
- engine = 'hf_inference_api',
- task = 'zero-shot-classification',
- candidate_labels = ['travel', 'cooking', 'dancing'],
- column = 'text_short';
-```
-
-Before querying for predictions, we should verify the status of the `zero_shot_tcd` model.
-
-```sql
-DESCRIBE zero_shot_tcd;
-```
-
-On execution, we get:
-
-```sql
-+-------------+-------+--------+--------+--------+-------------+---------------+------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+-------------+-------+--------+--------+--------+-------------+---------------+------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|zero_shot_tcd|mindsdb|complete|[NULL] |topic |up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'topic', 'using': {'engine': 'huggingface', 'task': 'zero-shot-classification', 'model_name': 'facebook/bart-large-mnli', 'input_column': 'text_short', 'candidate_labels': ['travel', 'cooking', 'dancing']}}|
-+-------------+-------+--------+--------+--------+-------------+---------------+------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_short AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.zero_shot_tcd AS h;
-```
-
-On execution, we get:
-
-```sql
-+-------+--------------------------------------------------------------------------------------------------+-------------------+
-|topic |topic_explain |input_text |
-+-------+--------------------------------------------------------------------------------------------------+-------------------+
-|cooking|{'cooking': 0.7530364990234375, 'travel': 0.1607145369052887, 'dancing': 0.08624900877475739} |I hate tacos |
-|dancing|{'dancing': 0.9746809601783752, 'travel': 0.015539299696683884, 'cooking': 0.009779711253941059} |I want to dance |
-|cooking|{'cooking': 0.9936348795890808, 'travel': 0.0034196735359728336, 'dancing': 0.0029454431496560574}|Baking is the best |
-+-------+--------------------------------------------------------------------------------------------------+-------------------+
-```
-
-## Summarization
-
-Here is an example of input text summarization.
-
-```sql
-CREATE MODEL mindsdb.summarizer_10_20
-PREDICT text_summary
-USING
- engine = 'hf_inference_api',
- task = 'summarization',
- column = 'text_long',
- min_output_length = 10,
- max_output_length = 20;
-```
-
-Before querying for predictions, we should verify the status of the `summarizer_10_20` model.
-
-```sql
-DESCRIBE summarizer_10_20;
-```
-
-On execution, we get:
-
-```sql
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|summarizer_10_20|mindsdb|complete|[NULL] |text_summary|up_to_date |22.10.2.1 |[NULL]|[NULL] |{'target': 'text_summary', 'using': {'engine': 'huggingface', 'task': 'summarization', 'model_name': 'sshleifer/distilbart-cnn-12-6', 'input_column': 'text_long', 'min_output_length': 10, 'max_output_length': 20}}|
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text_long AS input_text
-FROM example_db.demo_data.hf_test AS t
-JOIN mindsdb.summarizer_10_20 AS h;
-```
-
-On execution, we get:
-
-```sql
-+--------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|text_summary |input_text |
-+--------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|A taco is a traditional Mexican food consisting of a small hand-sized corn- or |A taco is a traditional Mexican food consisting of a small hand-sized corn- or wheat-based tortilla topped with a filling. The tortilla is then folded around the filling and eaten by hand. A taco can be made with a variety of fillings, including beef, pork, chicken, seafood, beans, vegetables, and cheese, allowing for great versatility and variety. |
-|Dance is a performing art form consisting of sequences of movement, either improvised or purposefully selected|Dance is a performing art form consisting of sequences of movement, either improvised or purposefully selected. This movement has aesthetic and often symbolic value.[nb 1] Dance can be categorized and described by its choreography, by its repertoire of movements, or by its historical period or place of origin. |
-|Baking is a method of preparing food that uses dry heat, typically in an oven |Baking is a method of preparing food that uses dry heat, typically in an oven, but can also be done in hot ashes, or on hot stones. The most common baked item is bread but many other types of foods can be baked. Heat is gradually transferred from the surface of cakes, cookies, and pieces of bread to their center. As heat travels through, it transforms batters and doughs into baked goods and more with a firm dry crust and a softer center. Baking can be combined with grilling to produce a hybrid barbecue variant by using both methods simultaneously, or one after the other. Baking is related to barbecuing because the concept of the masonry oven is similar to that of a smoke pit.|
-+--------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-## Fill Mask
-
-Here is an example of a masked language modeling task.
-
-```sql
-CREATE MODEL mindsdb.fill_mask
-PREDICT text_filled
-USING
- engine = 'hf_inference_api',
- task = 'fill-mask',
- column = 'text';
-```
-
-Before querying for predictions, we should verify the status of the `fill_mask` model.
-
-```sql
-DESCRIBE fill_mask;
-```
-
-On execution, we get:
-
-```sql
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+--------------------------------------------------------------------------------------------------------------------+
-|NAME |PROJECT|STATUS |ACCURACY|PREDICT |UPDATE_STATUS|MINDSDB_VERSION|ERROR |SELECT_DATA_QUERY|TRAINING_OPTIONS |
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+--------------------------------------------------------------------------------------------------------------------+
-|fill_mask |mindsdb|complete|[NULL] |text_filled |up_to_date |23.3.5.0 |[NULL]|[NULL] |{'target': 'text_filled', 'using': {'task': 'fill-mask', 'model_name': 'bert-base-uncased', 'input_column': 'text'}}|
-+----------------+-------+--------+--------+------------+-------------+---------------+------+-----------------+--------------------------------------------------------------------------------------------------------------------+
-```
-
-Once the status is `complete`, we can query for predictions.
-
-```sql
-SELECT h.*, t.text AS input_text
-FROM demo.texts AS t
-JOIN mindsdb.fill_mask AS h;
-```
-
-On execution, we get:
-
-```sql
-+-------------------------+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|text_filled |input_text |text_filled_explain |
-+-------------------------+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|the food was great! |The [MASK] was great! |{'the food was great!': 0.16309359669685364, 'the party was great!': 0.06305009871721268, 'the fun was great!': 0.04633583873510361, 'the show was great!': 0.043319422751665115, 'the music was great!': 0.02990395948290825} |
-|the weather is good today|The weather is [MASK] today|{'the weather is good today': 0.22563229501247406, 'the weather is warm today': 0.07954009622335434, 'the weather is fine today': 0.047255873680114746, 'the weather is better today': 0.034303560853004456, 'the weather is mild today': 0.03092862293124199}|
-+-------------------------+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
diff --git a/docs/use-cases/data_enrichment/image-generator.mdx b/docs/use-cases/data_enrichment/image-generator.mdx
deleted file mode 100644
index 147e2959913..00000000000
--- a/docs/use-cases/data_enrichment/image-generator.mdx
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: Generating Images with OpenAI
-sidebarTitle: Image Generator
----
-
-In this tutorial, we'll generate images with the help of AI.
-
-
-You can build a Twitter chatbot that converts text prompts into images. Follow [this blog post](https://mindsdb.com/blog/tutorial-how-to-add-ai-image-generation-to-your-own-app) to see the total workflow.
-
-
-## Creating a Model
-
-Let's create an OpenAI model. Follow [this instruction](/integrations/ai-engines/openai#setup) to set up the OpenAI integration in MindsDB.
-
-
-Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-
-```sql
-CREATE MODEL mindsdb.dalle
-PREDICT img_url
-USING
- engine = 'openai_engine',
- mode = 'image',
- prompt_template = '{{text}}, 8K | highly detailed realistic 3d oil painting style cyberpunk by MAD DOG JONES combined with Van Gogh | cinematic lighting | happy colors';
-```
-
-This model connects to the OpenAI’s DALL-E engine for generating images. The `{{text}}` variable present in the `prompt_template` parameter is replaced with the user's input.
-
-## Generating Images
-
-Now that the model is ready, we can generate some images.
-
-```sql
-SELECT text, img_url
-FROM mindsdb.dalle
-WHERE text = 'a cute robot helping a little kid build a better world';
-```
-
-On execution, we get:
-
-```sql
-+--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| text | img_url |
-+--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| a cute robot helping a little kid build a better world | https://oaidalleapiprodscus.blob.core.windows.net/private/org-1QXk2w4H0OhDrF2Hd4QV5K2c/user-piMc91jPmVdhttPLHl2y50E7/img-p5NROyoV5ysWWUY91xhQUZdg.png?st=2023-05-29T16%3A45%3A02Z&se=2023-05-29T18%3A45%3A02Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2023-05-29T10%3A29%3A15Z&ske=2023-05-30T10%3A29%3A15Z&sks=b&skv=2021-08-06&sig=vUI9vedjWtA7L0J3V0/4c05Wzh1Kf2/zyl%2BN1yfK6rU%3D |
-+--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-The model provides a link to the generated image.
-
-
-
-
-
-Let's try another prompt.
-
-```sql
-SELECT text, img_url
-FROM mindsdb.dalle
-WHERE text = 'design of a happy tree house';
-```
-
-On execution, we get:
-
-```sql
-+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| text | img_url |
-+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| design of a happy tree house | https://oaidalleapiprodscus.blob.core.windows.net/private/org-1QXk2w4H0OhDrF2Hd4QV5K2c/user-piMc91jPmVdhttPLHl2y50E7/img-O1GPmdmuoRXFTGdUjahOf1Ws.png?st=2023-05-29T16%3A50%3A34Z&se=2023-05-29T18%3A50%3A34Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2023-05-29T17%3A03%3A23Z&ske=2023-05-30T17%3A03%3A23Z&sks=b&skv=2021-08-06&sig=9vY%2Bqr/0CrzqqdM4uYEa/XwYXMBn67RBodhzsg%2Bs9ag%3D |
-+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Here is the generated image:
-
-
-
-
-
-
-Check out how to implement a Twitter chatbot that answers by generating images. Follow [this link](https://mindsdb.com/blog/tutorial-how-to-add-ai-image-generation-to-your-own-app) to learn more.
-
diff --git a/docs/use-cases/data_enrichment/json-from-text.mdx b/docs/use-cases/data_enrichment/json-from-text.mdx
deleted file mode 100644
index f7d00f73924..00000000000
--- a/docs/use-cases/data_enrichment/json-from-text.mdx
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: Extract JSON from Text
-sidebarTitle: Extract JSON
----
-
-## Extract JSON Values from JSON Data
-
-The `json_extract()` function extracts values from the JSON data passed as its argument.
-
-To show how it works, we use the [home rentals example](/sql/tutorials/home-rentals). The model returns the predicted value and the explanation of the prediction in the form of JSON data.
-
-```sql
-SELECT rental_price, rental_price_explain
-FROM mindsdb.home_rentals_model
-WHERE sqft = 823
-AND location='good'
-AND neighborhood='downtown'
-AND days_on_market=10;
-```
-
-On execution, we get:
-
-```sql
-+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| rental_price | rental_price_explain |
-+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-| 1580 | {"predicted_value": 1580, "confidence": 0.99, "anomaly": null, "truth": null, "confidence_lower_bound": 1490, "confidence_upper_bound": 1670} |
-+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
-```
-
-Now, if we want to see the `confidence` value only, we can use the `json_extract()` function as below.
-
-```sql
-SELECT rental_price, json_extract(rental_price_explain, '$.confidence') AS confidence
-FROM mindsdb.home_rentals_model
-WHERE sqft = 823
-AND location='good'
-AND neighborhood='downtown'
-AND days_on_market=10;
-```
-
-On execution, we get:
-
-```sql
-+--------------+------------+
-| rental_price | confidence |
-+--------------+------------+
-| 1580 | 0.99 |
-+--------------+------------+
-```
-
-## Extract JSON from Text Data
-
-In this example, we use the OpenAI model to extract data in a predefined JSON format from the input text data.
-
-
-**Default Model**
-
-When you create an OpenAI model in MindsDB, it uses the `gpt-3.5-turbo` model by default. But you can use the `gpt-4` model as well by passing it to the `model-name` parameter.
-
-
-Let's create an OpenAI model.
-
-
-
- Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
- ```sql
- CREATE ML_ENGINE openai_engine
- FROM openai
- USING
- openai_api_key = 'your-openai-api-key';
- ```
- ```sql
- CREATE MODEL mindsdb.nlp_model
- PREDICT json
- USING
- engine = 'openai_engine',
- json_struct = {
- 'rental_price': 'rental price',
- 'location': 'location',
- 'nob': 'number of bathrooms'
- },
- prompt_template = '{{sentence}}';
- ```
-
-
-
-We pass three parameters as follows:
-
-1. The `engine` parameter ensures we use the OpenAI engine.
-2. The `json_struct` parameter stores a predefined JSON structure used for the output.
-3. The `prompt_template` parameter contains the instruction passed to the model that may include variables such as `{{sentence}}`.
-
-Now we can query the model, passing the input text stored in the `sentence` column.
-
-
-
- ```sql
- SELECT json
- FROM mindsdb.nlp_model
- WHERE sentence = 'Amazing 3 bedroom apartment located at the heart of Manhattan, has one full bathrooms and one toilet room for just 3000 a month.';
- ```
-
- On execution, we get:
-
- ```sql
- +----------------------------------------------------------+
- | json |
- +----------------------------------------------------------+
- | {"location":"Manhattan","nob":"1","rental_price":"3000"} |
- +----------------------------------------------------------+
- ```
-
-
diff --git a/docs/use-cases/data_enrichment/overview.mdx b/docs/use-cases/data_enrichment/overview.mdx
deleted file mode 100644
index 4b2c3d99b72..00000000000
--- a/docs/use-cases/data_enrichment/overview.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Data Enrichment
-sidebarTitle: Overview
----
-
-With MindsDB, you can easily enrich your data with AI-generated content. Process natural language, analyze text, create images, and more with various [AI/ML models](/integrations/ai-overview) accessible through MindsDB.
-
-
-
-
-
-This section covers the following use cases:
-
- - Natural Language Processing (NLP)
- - Content generation
- - QA-driven data enrichment
- - Sentiment analysis
- - Text summarization
-
-
-
-
-Available tutorials:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/use-cases/data_enrichment/question-answering-inside-mongodb-with-openai.mdx b/docs/use-cases/data_enrichment/question-answering-inside-mongodb-with-openai.mdx
deleted file mode 100644
index 3464588b1d5..00000000000
--- a/docs/use-cases/data_enrichment/question-answering-inside-mongodb-with-openai.mdx
+++ /dev/null
@@ -1,175 +0,0 @@
----
-title: Question Answering with MindsDB and OpenAI using MQL
-sidebarTitle: Question Answering using MQL
----
-
-## Introduction
-
-In this blog post, we present how to create OpenAI models within MindsDB. In this example, we ask a question to a model and get an answer. The input data is taken from our sample MongoDB database.
-
-## Prerequisites
-
-To follow along, install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-
-## How to Connect MindsDB to a Database
-
-We use a collection from our MongoDB public demo database, so let’s start by connecting MindsDB to it.
-
-You can use [Mongo Compass](/connect/mongo-compass) or [Mongo Shell](/connect/mongo-shell) to connect our sample database like this:
-
-```bash
-test> use mindsdb
-mindsdb> db.databases.insertOne({
- 'name': 'mongo_demo_db',
- 'engine': 'mongodb',
- 'connection_args': {
- "host": "mongodb+srv://user:MindsDBUser123!@demo-data-mdb.trzfwvb.mongodb.net/",
- "database": "public"
- }
- })
-```
-
-## Tutorial
-
-In this tutorial, we create a predictive model to answer questions in a specified domain.
-
-Now that we've connected our database to MindsDB, let’s query the data to be used in the example:
-
-```bash
-mindsdb> use mongo_demo_db
-mongo_demo_db> db.questions.find({}).limit(3)
-```
-
-Here is the output:
-
-```bash
-{
- _id: '63d01350bbca62e9c77732c0',
- article_title: 'Alessandro_Volta',
- question: 'Was Volta an Italian physicist?',
- true_answer: 'yes'
-}
-{
- _id: '63d01350bbca62e9c77732c1',
- article_title: 'Alessandro_Volta',
- question: 'Is Volta buried in the city of Pittsburgh?',
- true_answer: 'no'
-}
-{
- _id: '63d01350bbca62e9c77732c2',
- article_title: 'Alessandro_Volta',
- question: 'Did Volta have a passion for the study of electricity?',
- true_answer: 'yes'
-}
-```
-
-Let's create a model collection to answer all questions from the input dataset:
-
-
-Note that you need to create an OpenAI engine first before deploying the OpenAI model within MindsDB.
-
-Here is how to create this engine:
-
-```bash
-mongo_demo_db> use mindsdb
-mindsdb> db.ml_engines.insertOne(
- {
- "name": "openai_engine",
- "handler": "openai",
- "params": {
- "openai_api_key": "your-openai-api-key"
- }
- })
-```
-
-
-```bash
-mongo_demo_db> use mindsdb
-mindsdb> db.models.insertOne({
- name: 'question_answering',
- predict: 'answer',
- training_options: {
- engine: 'openai_engine',
- prompt_template: 'answer the question of text:{{question}} about text:{{article_title}}'
- }
- })
-```
-
-In practice, the `insertOne` method triggers MindsDB to generate an AI collection called `question_answering` that uses the OpenAI integration to predict a field named `answer`. The model is created inside the default `mindsdb` project. In MindsDB, projects are a natural way to keep artifacts, such as models or views, separate according to what predictive task they solve. You can learn more about MindsDB projects [here](/sql/project).
-
-The `training_options` key specifies the parameters that this handler requires.
-
-- The `engine` parameter defines that we use the `openai` engine.
-- The `prompt_template` parameter conveys the structure of a message that is to be completed with additional text generated by the model.
-
-
-Follow [this instruction](/integrations/ai-engines/openai#setup) to set up the OpenAI integration in MindsDB.
-
-
-Once the `insertOne` method has started execution, we can check the status of the creation process with the following query:
-
-```bash
-mindsdb> db.models.find({
- 'name': 'question_answering'
- })
-```
-
-It may take a while to register as complete depending on the internet connection. Once the creation is complete, the behavior is the same as with any other AI collection – you can query it either by specifying synthetic data in the actual query:
-
-```bash
-mindsdb> db.question_answering.find({
- question: 'Was Abraham Lincoln the sixteenth President of the United States?',
- article_title: 'Abraham_Lincoln'
- })
-```
-
-Here is the output data:
-
-```bash
-{
- answer: 'Yes, Abraham Lincoln was the sixteenth President of the United States.',
- question: 'Was Abraham Lincoln the sixteenth President of the United States?',
- article_title: 'Abraham_Lincoln'
-}
-```
-
-Or by joining with a collection for batch predictions:
-
-```bash
-mindsdb> db.question_answering.find(
- {
- 'collection': 'mongo_demo_db.questions'
- },
- {
- 'question_answering.answer': 'answer',
- 'questions.question': 'question',
- 'questions.article_title': 'article_title'
- }
- ).limit(3)
-```
-
-Here is the output data:
-
-```bash
-{
- answer: 'Yes, Volta was an Italian physicist.',
- question: 'Was Volta an Italian physicist?',
- article_title: 'Alessandro_Volta'
-}
-{
- answer: 'No, Volta is not buried in the city of Pittsburgh.',
- question: 'Is Volta buried in the city of Pittsburgh?',
- article_title: 'Alessandro_Volta'
-}
-{
- answer: 'Yes, Volta had a passion for the study of electricity. He was fascinated by the',
- question: 'Did Volta have a passion for the study of electricity?',
- article_title: 'Alessandro_Volta'
-}
-```
-
-The `questions` collection is used to make batch predictions. Upon joining the `question_answering` model with the `questions` collection, the model uses all values from the `article_title` and `question` fields.
-
-
-Check out [this blog post on time series forecasting with Nixtla and MindsDB using MongoDB-QL](https://mindsdb.com/blog/time-series-forecasting-with-nixtla-and-mindsdb-using-mongodb-query-language).
-
diff --git a/docs/use-cases/data_enrichment/question-answering-inside-mysql-with-openai.mdx b/docs/use-cases/data_enrichment/question-answering-inside-mysql-with-openai.mdx
deleted file mode 100644
index 14753c72b03..00000000000
--- a/docs/use-cases/data_enrichment/question-answering-inside-mysql-with-openai.mdx
+++ /dev/null
@@ -1,159 +0,0 @@
----
-title: Question Answering with MindsDB and OpenAI using SQL
-sidebarTitle: Question Answering using SQL
----
-
-## Introduction
-
-In this blog post, we present how to create OpenAI models within MindsDB. In this example, we ask a question to a model and get an answer. The input data is taken from our sample MySQL database.
-
-## Prerequisites
-
-To follow along, install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-
-## Tutorial
-
-In this tutorial, we create a predictive model to answer questions in a specified domain.
-
-We use a table from our MySQL public demo database, so let's start by connecting MindsDB to it:
-
-```sql
-CREATE DATABASE mysql_demo_db
-WITH ENGINE = 'mysql',
-PARAMETERS = {
- "user": "user",
- "password": "MindsDBUser123!",
- "host": "samples.mindsdb.com",
- "port": "3306",
- "database": "public"
-};
-```
-
-Now that we've connected our database to MindsDB, let's query the data to be used in the example:
-
-```sql
-SELECT *
-FROM mysql_demo_db.questions
-LIMIT 3;
-```
-
-Here is the output:
-
-```sql
-+------------------+--------------------------------------------------------+-------------+
-| article_title | question | true_answer |
-+------------------+--------------------------------------------------------+-------------+
-| Alessandro_Volta | Was Volta an Italian physicist? | yes |
-| Alessandro_Volta | Is Volta buried in the city of Pittsburgh? | no |
-| Alessandro_Volta | Did Volta have a passion for the study of electricity? | yes |
-+------------------+--------------------------------------------------------+-------------+
-```
-
-Let's create a model table to answer all questions from the input dataset:
-
-
-Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-
-```sql
-CREATE MODEL question_answering_model
-PREDICT answer
-USING
- engine = 'openai_engine',
- prompt_template = 'answer the question of text:{{question}} about text:{{article_title}}';
-```
-
-In practice, the `CREATE MODEL` statement triggers MindsDB to generate an AI table called `question_answering_model` that uses the OpenAI integration to predict a column named `answer`. The model lives inside the default `mindsdb` project. In MindsDB, projects are a natural way to keep artifacts, such as models or views, separate according to what predictive task they solve. You can learn more about MindsDB projects [here](/sql/project).
-
-The `USING` clause specifies the parameters that this handler requires.
-
-- The `engine` parameter defines that we use the `openai` engine.
-- The `prompt_template` parameter conveys the structure of a message that is to be completed with additional text generated by the model.
-
-
-Follow [this instruction](/integrations/ai-engines/openai#setup) to set up the OpenAI integration in MindsDB.
-
-
-Once the `CREATE MODEL` statement has started execution, we can check the status of the creation process with the following query:
-
-```sql
-DESCRIBE question_answering_model;
-```
-
-It may take a while to register as complete depending on the internet connection. Once the creation is complete, the behavior is the same as with any other AI table – you can query it either by specifying synthetic data in the actual query:
-
-```sql
-SELECT article_title, question, answer
-FROM question_answering_model
-WHERE question = 'Was Abraham Lincoln the sixteenth President of the United States?'
-AND article_title = 'Abraham_Lincoln';
-```
-
-Here is the output data:
-
-```sql
-+------------------+-------------------------------------------------------------------+------------------------------------------------------------------------+
-| article_title | question | answer |
-+------------------+-------------------------------------------------------------------+------------------------------------------------------------------------+
-| Abraham_Lincoln | Was Abraham Lincoln the sixteenth President of the United States? | Yes, Abraham Lincoln was the sixteenth President of the United States. |
-+------------------+-------------------------------------------------------------------+------------------------------------------------------------------------+
-```
-
-Or by joining with another table for batch predictions:
-
-```sql
-SELECT input.article_title, input.question, output.answer
-FROM mysql_demo_db.questions AS input
-JOIN question_answering_model AS output
-LIMIT 3;
-```
-
-Here is the output data:
-
-```sql
-+------------------+--------------------------------------------------------+--------------------------------------------------------+
-| article_title | question | answer |
-+------------------+--------------------------------------------------------+--------------------------------------------------------+
-| Alessandro_Volta | Was Volta an Italian physicist? | Yes, Volta was an Italian physicist. |
-| Alessandro_Volta | Is Volta buried in the city of Pittsburgh? | No, Volta is not buried in the city of Pittsburgh. |
-| Alessandro_Volta | Did Volta have a passion for the study of electricity? | Yes, Volta had a passion for the study of electricity. |
-+------------------+--------------------------------------------------------+--------------------------------------------------------+
-```
-
-The `questions` table is used to make batch predictions. Upon joining the `question_answering_model` model with the `questions` table, the model uses all values from the `article_title` and `question` columns.
-
-## Leverage the NLP Capabilities with MindsDB
-
-By integrating databases and OpenAI using MindsDB, developers can easily extract insights from text data with just a few SQL commands. These powerful natural language processing (NLP) models are capable of answering questions with or without context and completing general prompts.
-
-Furthermore, these models are powered by large pre-trained language models from OpenAI, so there is no need for manual development work. Ultimately, this provides developers with an easy way to incorporate powerful NLP capabilities into their applications while saving time and resources compared to traditional ML development pipelines and methods. All in all, MindsDB makes it possible for developers to harness the power of OpenAI efficiently!
-
-MindsDB is now the fastest-growing open-source applied machine-learning platform in the world. Its community continues to contribute to more than 70 data-source and ML-framework integrations. Stay tuned for the upcoming features - including more control over the interface parameters and fine-tuning models directly from MindsDB!
-
-Experiment with OpenAI models within MindsDB and unlock the ML capability over your data in minutes.
-
-Finally, if MindsDB's vision to democratize ML sounds exciting, head to our [community Slack](https://mindsdb.com/joincommunity), where you can get help and find people to chat about using other available data sources, ML frameworks, or writing a handler to bring your own!
-
-Follow our introduction to MindsDB's OpenAI integration [here](https://mindsdb.com/blog/extract-insights-from-text-inside-databases-using-openai-gpt3-and-mindsdb-integration). Also, we've got a variety of tutorials that use MySQL and MongoDB:
-
-- [Sentiment Analysis in MySQL](/nlp/sentiment-analysis-inside-mysql-with-openai)
-- [Text Summarization in MySQL](/nlp/text-summarization-inside-mysql-with-openai)
-- [Sentiment Analysis in MongoDB](/nlp/sentiment-analysis-inside-mongodb-with-openai)
-- [Question Answering in MongoDB](/nlp/question-answering-inside-mongodb-with-openai)
-- [Text Summarization in MongoDB](/nlp/text-summarization-inside-mongodb-with-openai)
-
-## What's Next?
-
-Have fun while trying it out yourself!
-
-- Bookmark [MindsDB repository on GitHub](https://github.com/mindsdb/mindsdb).
-- Engage with the MindsDB community on [Slack](https://mindsdb.com/joincommunity) or [GitHub](https://github.com/mindsdb/mindsdb/discussions) to ask questions and share your ideas and thoughts.
-
-If this tutorial was helpful, please give us a GitHub star [here](https://github.com/mindsdb/mindsdb).
diff --git a/docs/use-cases/data_enrichment/sentiment-analysis-inside-mongodb-with-openai.mdx b/docs/use-cases/data_enrichment/sentiment-analysis-inside-mongodb-with-openai.mdx
deleted file mode 100644
index 6d9c126ab46..00000000000
--- a/docs/use-cases/data_enrichment/sentiment-analysis-inside-mongodb-with-openai.mdx
+++ /dev/null
@@ -1,166 +0,0 @@
----
-title: Sentiment Analysis with MindsDB and OpenAI using MQL
-sidebarTitle: Sentiment Analysis using MQL
----
-
-## Introduction
-
-In this blog post, we present how to create OpenAI models within MindsDB. This example is a sentiment analysis where we infer emotions behind a text. The input data is taken from our sample MongoDB database.
-
-## Prerequisites
-
-To follow along, install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-
-## How to Connect MindsDB to a Database
-
-We use a collection from our MongoDB public demo database, so let’s start by connecting MindsDB to it.
-
-You can use [Mongo Compass](/connect/mongo-compass) or [Mongo Shell](/connect/mongo-shell) to connect our sample database like this:
-
-```bash
-test> use mindsdb
-mindsdb> db.databases.insertOne({
- 'name': 'mongo_demo_db',
- 'engine': 'mongodb',
- 'connection_args': {
- "host": "mongodb+srv://user:MindsDBUser123!@demo-data-mdb.trzfwvb.mongodb.net/",
- "database": "public"
- }
- })
-```
-
-## Tutorial
-
-In this tutorial, we create a predictive model to infer emotions behind a text, a task also known as sentiment analysis.
-
-Now that we've connected our database to MindsDB, let’s query the data to be used in the example:
-
-```bash
-mindsdb> use mongo_demo_db
-mongo_demo_db> db.amazon_reviews.find({}).limit(3)
-```
-
-Here is the output:
-
-```bash
-{
- _id: '63d013b5bbca62e9c7774b1d',
- product_name: 'All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta',
- review: 'Late gift for my grandson. He is very happy with it. Easy for him (9yo ).'
-}
-{
- _id: '63d013b5bbca62e9c7774b1e',
- product_name: 'All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta',
- review: "I'm not super thrilled with the proprietary OS on this unit, but it does work okay and does what I need it to do. Appearance is very nice, price is very good and I can't complain too much - just wish it were easier (or at least more obvious) to port new apps onto it. For now, it helps me see things that are too small on my phone while I'm traveling. I'm a happy buyer."
-}
-{
- _id: '63d013b5bbca62e9c7774b1f',
- product_name: 'All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta',
- review: 'I purchased this Kindle Fire HD 8 was purchased for use by 5 and 8 yer old grandchildren. They basically use it to play Amazon games that you download.'
-}
-```
-
-Let's create a model collection to identify sentiment for all reviews:
-
-
-Note that you need to create an OpenAI engine first before deploying the OpenAI model within MindsDB.
-
-Here is how to create this engine:
-
-```bash
-mongo_demo_db> use mindsdb
-mindsdb> db.ml_engines.insertOne(
- {
- "name": "openai_engine",
- "handler": "openai",
- "params": {
- "openai_api_key": "your-openai-api-key"
- }
- })
-```
-
-
-```bash
-mongo_demo_db> use mindsdb
-mindsdb> db.models.insertOne({
- name: 'sentiment_classifier',
- predict: 'sentiment',
- training_options: {
- engine: 'openai_engine',
- prompt_template: 'describe the sentiment of the reviews strictly as "positive", "neutral", or "negative". "I love the product":positive "It is a scam":negative "{{review}}.":'
- }
- })
-```
-
-In practice, the `insertOne` method triggers MindsDB to generate an AI collection called `sentiment_classifier` that uses the OpenAI integration to predict a field named `sentiment`. The model is created inside the default `mindsdb` project. In MindsDB, projects are a natural way to keep artifacts, such as models or views, separate according to what predictive task they solve. You can learn more about MindsDB projects [here](/sql/project).
-
-The `training_options` key specifies the parameters that this handler requires.
-
-- The `engine` parameter defines that we use the `openai` engine.
-- The `prompt_template` parameter conveys the structure of a message that is to be completed with additional text generated by the model.
-
-
-Follow [this instruction](/integrations/ai-engines/openai#setup) to set up the OpenAI integration in MindsDB.
-
-
-Once the `insertOne` method has started execution, we can check the status of the creation process with the following query:
-
-```bash
-mindsdb> db.models.find({
- 'name': 'sentiment_classifier'
- })
-```
-
-It may take a while to register as complete depending on the internet connection. Once the creation is complete, the behavior is the same as with any other AI collection – you can query it either by specifying synthetic data in the actual query:
-
-```bash
-mindsdb> db.sentiment_classifier.find({
- review: 'It is ok.'
- })
-```
-
-Here is the output data:
-
-```bash
-{
- sentiment: 'neutral',
- review: 'It is ok.'
-}
-```
-
-Or by joining with a collection for batch predictions:
-
-```bash
-mindsdb> db.sentiment_classifier.find(
- {
- 'collection': 'mongo_demo_db.amazon_reviews'
- },
- {
- 'sentiment_classifier.sentiment': 'sentiment',
- 'amazon_reviews.review': 'review'
- }
- ).limit(3)
-```
-
-Here is the output data:
-
-```bash
-{
- sentiment: 'positive',
- review: 'Late gift for my grandson. He is very happy with it. Easy for him (9yo ).'
-}
-{
- sentiment: 'positive',
- review: "I'm not super thrilled with the proprietary OS on this unit, but it does work okay and does what I need it to do. Appearance is very nice, price is very good and I can't complain too much - just wish it were easier (or at least more obvious) to port new apps onto it. For now, it helps me see things that are too small on my phone while I'm traveling. I'm a happy buyer."
-}
-{
- sentiment: 'positive',
- review: 'I purchased this Kindle Fire HD 8 was purchased for use by 5 and 8 yer old grandchildren. They basically use it to play Amazon games that you download.'
-}
-```
-
-The `amazon_reviews` collection is used to make batch predictions. Upon joining the `sentiment_classifier` model with the `amazon_reviews` collection, the model uses all values from the `review` field.
-
-
-Check out [this blog post on time series forecasting with Nixtla and MindsDB using MongoDB-QL](https://mindsdb.com/blog/time-series-forecasting-with-nixtla-and-mindsdb-using-mongodb-query-language).
-
diff --git a/docs/use-cases/data_enrichment/sentiment-analysis-inside-mysql-with-openai.mdx b/docs/use-cases/data_enrichment/sentiment-analysis-inside-mysql-with-openai.mdx
deleted file mode 100644
index c809102f94a..00000000000
--- a/docs/use-cases/data_enrichment/sentiment-analysis-inside-mysql-with-openai.mdx
+++ /dev/null
@@ -1,162 +0,0 @@
----
-title: Sentiment Analysis with MindsDB and OpenAI using SQL
-sidebarTitle: Sentiment Analysis using SQL
----
-
-## Introduction
-
-In this blog post, we present how to create OpenAI models within MindsDB. This example is a sentiment analysis where we infer emotions behind a text. The input data is taken from our sample MySQL database.
-
-## Prerequisites
-
-To follow along, install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-
-## Tutorial
-
-In this tutorial, we create a predictive model to infer emotions behind a text, a task also known as sentiment analysis.
-
-We use a table from our MySQL public demo database, so let's start by connecting MindsDB to it:
-
-```sql
-CREATE DATABASE mysql_demo_db
-WITH ENGINE = 'mysql',
-PARAMETERS = {
- "user": "user",
- "password": "MindsDBUser123!",
- "host": "samples.mindsdb.com",
- "port": "3306",
- "database": "public"
-};
-```
-
-Now that we've connected our database to MindsDB, let's query the data to be used in the example:
-
-```sql
-SELECT *
-FROM mysql_demo_db.amazon_reviews
-LIMIT 3;
-```
-
-Here is the output:
-
-```sql
-+-----------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| product_name | review |
-+-----------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-| All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta | Late gift for my grandson. He is very happy with it. Easy for him (9yo ). |
-| All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta | I'm not super thrilled with the proprietary OS on this unit, but it does work okay and does what I n |
-| All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta | I purchased this Kindle Fire HD 8 was purchased for use by 5 and 8 yer old grandchildren. They basic |
-+-----------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
-```
-
-Let's create a model table to identify sentiment for all reviews:
-
-
-Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-
-```sql
-CREATE MODEL sentiment_classifier_model
-PREDICT sentiment
-USING
- engine = 'openai_engine',
- prompt_template = 'describe the sentiment of the reviews
- strictly as "positive", "neutral", or "negative".
- "I love the product":positive
- "It is a scam":negative
- "{{review}}.":';
-```
-
-In practice, the `CREATE MODEL` statement triggers MindsDB to generate an AI table called `sentiment_classifier_model` that uses the OpenAI integration to predict a column named `sentiment`. The model lives inside the default `mindsdb` project. In MindsDB, projects are a natural way to keep artifacts, such as models or views, separate according to what predictive task they solve. You can learn more about MindsDB projects [here](/sql/project).
-
-The `USING` clause specifies the parameters that this handler requires.
-
-- The `engine` parameter defines that we use the `openai` engine.
-- The `prompt_template` parameter conveys the structure of a message that is to be completed with additional text generated by the model.
-
-
-Follow [this instruction](/integrations/ai-engines/openai#setup) to set up the OpenAI integration in MindsDB.
-
-
-Once the `CREATE MODEL` statement has started execution, we can check the status of the creation process with the following query:
-
-```sql
-DESCRIBE sentiment_classifier_model;
-```
-
-It may take a while to register as complete depending on the internet connection. Once the creation is complete, the behavior is the same as with any other AI table – you can query it either by specifying synthetic data in the actual query:
-
-```sql
-SELECT review, sentiment
-FROM sentiment_classifier_model
-WHERE review = 'It is ok.';
-```
-
-Here is the output data:
-
-```sql
-+-----------+-----------+
-| review | sentiment |
-+-----------+-----------+
-| It is ok. | neutral |
-+-----------+-----------+
-```
-
-Or by joining with another table for batch predictions:
-
-```sql
-SELECT input.review, output.sentiment
-FROM mysql_demo_db.amazon_reviews AS input
-JOIN sentiment_classifier_model AS output
-LIMIT 3;
-```
-
-Here is the output data:
-
-```sql
-+------------------------------------------------------------------------------------------------------+-----------+
-| review | sentiment |
-+------------------------------------------------------------------------------------------------------+-----------+
-| Late gift for my grandson. He is very happy with it. Easy for him (9yo ). | positive |
-| I'm not super thrilled with the proprietary OS on this unit, but it does work okay and does what I n | positive |
-| I purchased this Kindle Fire HD 8 was purchased for use by 5 and 8 yer old grandchildren. They basic | positive |
-+------------------------------------------------------------------------------------------------------+-----------+
-```
-
-The `amazon_reviews` table is used to make batch predictions. Upon joining the `sentiment_classifier_model` model with the `amazon_reviews` table, the model uses all values from the `review` column.
-
-## Leverage the NLP Capabilities with MindsDB
-
-By integrating databases and OpenAI using MindsDB, developers can easily extract insights from text data with just a few SQL commands. These powerful natural language processing (NLP) models are capable of answering questions with or without context and completing general prompts.
-
-Furthermore, these models are powered by large pre-trained language models from OpenAI, so there is no need for manual development work. Ultimately, this provides developers with an easy way to incorporate powerful NLP capabilities into their applications while saving time and resources compared to traditional ML development pipelines and methods. All in all, MindsDB makes it possible for developers to harness the power of OpenAI efficiently!
-
-MindsDB is now the fastest-growing open-source applied machine-learning platform in the world. Its community continues to contribute to more than 70 data-source and ML-framework integrations. Stay tuned for the upcoming features - including more control over the interface parameters and fine-tuning models directly from MindsDB!
-
-Experiment with OpenAI models within MindsDB and unlock the ML capability over your data in minutes.
-
-Finally, if MindsDB's vision to democratize ML sounds exciting, head to our [community Slack](https://mindsdb.com/joincommunity), where you can get help and find people to chat about using other available data sources, ML frameworks, or writing a handler to bring your own!
-
-Follow our introduction to MindsDB's OpenAI integration [here](https://mindsdb.com/blog/extract-insights-from-text-inside-databases-using-openai-gpt3-and-mindsdb-integration). Also, we've got a variety of tutorials that use MySQL and MongoDB:
-
-- [Question Answering in MySQL](/nlp/question-answering-inside-mysql-with-openai)
-- [Text Summarization in MySQL](/nlp/text-summarization-inside-mysql-with-openai)
-- [Sentiment Analysis in MongoDB](/nlp/sentiment-analysis-inside-mongodb-with-openai)
-- [Question Answering in MongoDB](/nlp/question-answering-inside-mongodb-with-openai)
-- [Text Summarization in MongoDB](/nlp/text-summarization-inside-mongodb-with-openai)
-
-## What's Next?
-
-Have fun while trying it out yourself!
-
-- Bookmark [MindsDB repository on GitHub](https://github.com/mindsdb/mindsdb).
-- Engage with the MindsDB community on [Slack](https://mindsdb.com/joincommunity) or [GitHub](https://github.com/mindsdb/mindsdb/discussions) to ask questions and share your ideas and thoughts.
-
-If this tutorial was helpful, please give us a GitHub star [here](https://github.com/mindsdb/mindsdb).
diff --git a/docs/use-cases/data_enrichment/text-sentiment-hf.mdx b/docs/use-cases/data_enrichment/text-sentiment-hf.mdx
deleted file mode 100644
index ff9939c88c3..00000000000
--- a/docs/use-cases/data_enrichment/text-sentiment-hf.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: Predict Text Sentiment with Hugging Face and MindsDB
-sidebarTitle: Text Sentiment with Hugging Face
----
-
-In this tutorial, we'll use a model from the Hugging Faсe hub to predict text sentiment.
-
-## Connect a database
-
-We start by connecting a demo database using the `CREATE DATABASE` statement.
-
-```sql
-CREATE DATABASE example_db
-WITH ENGINE = "postgres",
-PARAMETERS = {
- "user": "demo_user",
- "password": "demo_password",
- "host": "samples.mindsdb.com",
- "port": "5432",
- "database": "demo",
- "schema": "demo_data"
- };
-```
-
-Let’s preview the `user_comments` table.
-
-```sql
-SELECT *
-FROM example_db.user_comments;
-```
-
-## Create a Hugging Face model
-
-Our Hugging Face integration automatically manages downloading and deploying of pre-trained transformers from Hugging Face's hub. For example, we can download a transformer which has been trained to classify the sentiment of text.
-
-```sql
-CREATE MODEL sentiment_classifier
-PREDICT sentiment
-USING
- engine='huggingface',
- model_name= 'cardiffnlp/twitter-roberta-base-sentiment',
- task='text-classification',
- input_column = 'comment',
- labels=['negative','neutral','positive'];
-```
-
-To create a model in MindsDB, we use the `CREATE MODEL` statement. Next, we define the target column using the `PREDICT` clause. Finally, we specify all required parameters in the `USING` clause.
-
-Once the above query is executed, we can check the status of the creation process:
-
-```sql
-DESCRIBE sentiment_classifier;
-```
-
-## Make predictions
-
-Once the status is complete, the behavior is the same as with any other AI table you can query it and provide input data in the `WHERE` clause, like this:
-
-```sql
-SELECT * FROM sentiment_classifier
-WHERE comment='It is really easy to do NLP with MindsDB';
-```
-
-The above query should predict the comment as ‘positive’.
-
-We can also make batch predictions by joining the input data table with the model, like this:
-
-```sql
-SELECT input.comment, model.sentiment
-FROM example_db.user_comments AS input
-JOIN sentiment_classifier AS model;
-```
diff --git a/docs/use-cases/data_enrichment/text-summarization-inside-mongodb-with-openai.mdx b/docs/use-cases/data_enrichment/text-summarization-inside-mongodb-with-openai.mdx
deleted file mode 100644
index cb10cb45fc3..00000000000
--- a/docs/use-cases/data_enrichment/text-summarization-inside-mongodb-with-openai.mdx
+++ /dev/null
@@ -1,166 +0,0 @@
----
-title: Text Summarization with MindsDB and OpenAI using MQL
-sidebarTitle: Text Summarization using MQL
----
-
-## Introduction
-
-In this blog post, we present how to create OpenAI models within MindsDB. In this example, we ask a model to provide a summary of a text. The input data is taken from our sample MongoDB database.
-
-## Prerequisites
-
-To follow along, install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-
-## How to Connect MindsDB to a Database
-
-We use a collection from our MongoDB public demo database, so let’s start by connecting MindsDB to it.
-
-You can use [Mongo Compass](/connect/mongo-compass) or [Mongo Shell](/connect/mongo-shell) to connect our sample database like this:
-
-```bash
-test> use mindsdb
-mindsdb> db.databases.insertOne({
- 'name': 'mongo_demo_db',
- 'engine': 'mongodb',
- 'connection_args': {
- "host": "mongodb+srv://user:MindsDBUser123!@demo-data-mdb.trzfwvb.mongodb.net/",
- "database": "public"
- }
- })
-```
-
-## Tutorial
-
-In this tutorial, we create a predictive model to summarize an article.
-
-Now that we've connected our database to MindsDB, let’s query the data to be used in the example:
-
-```bash
-mindsdb> use mongo_demo_db
-mongo_demo_db> db.articles.find({}).limit(3)
-```
-
-Here is the output:
-
-```bash
-{
- _id: '63d01398bbca62e9c7774ab8',
- article: "Video footage has emerged of a law enforcement officer…",
- highlights: 'The 53-second video features…"
-}
-{
- _id: '63d01398bbca62e9c7774ab9',
- article: "A new restaurant is offering a five-course…",
- highlights: "The Curious Canine Kitchen is…"
-}
-{
- _id: '63d01398bbca62e9c7774aba',
- article: 'Mother-of-two Anna Tilley survived after spending four days…',
- highlights: 'Experts have warned hospitals not using standard treatment…'
-}
-```
-
-Let's create a model collection to summarize all articles from the input dataset:
-
-
-Note that you need to create an OpenAI engine first before deploying the OpenAI model within MindsDB.
-
-Here is how to create this engine:
-
-```bash
-mongo_demo_db> use mindsdb
-mindsdb> db.ml_engines.insertOne(
- {
- "name": "openai_engine",
- "handler": "openai",
- "params": {
- "openai_api_key": "your-openai-api-key"
- }
- })
-```
-
-
-```bash
-mongo_demo_db> use mindsdb
-mindsdb> db.models.insertOne({
- name: 'text_summarization',
- predict: 'highlights',
- training_options: {
- engine: 'openai_engine',
- prompt_template: 'provide an informative summary of the text text:{{article}} using full sentences'
- }
- })
-```
-
-In practice, the `insertOne` method triggers MindsDB to generate an AI collection called `text_summarization` that uses the OpenAI integration to predict a field named `highlights`. The model is created inside the default `mindsdb` project. In MindsDB, projects are a natural way to keep artifacts, such as models or views, separate according to what predictive task they solve. You can learn more about MindsDB projects [here](/sql/project).
-
-The `training_options` key specifies the parameters that this handler requires.
-
-- The `engine` parameter defines that we use the `openai` engine.
-- The `prompt_template` parameter conveys the structure of a message that is to be completed with additional text generated by the model.
-
-
-Follow [this instruction](/integrations/ai-engines/openai#setup) to set up the OpenAI integration in MindsDB.
-
-
-Once the `insertOne` method has started execution, we can check the status of the creation process with the following query:
-
-```bash
-mindsdb> db.models.find({
- 'name': 'text_summarization'
- })
-```
-
-It may take a while to register as complete depending on the internet connection. Once the creation is complete, the behavior is the same as with any other AI collection – you can query it either by specifying synthetic data in the actual query:
-
-```bash
-mindsdb> db.text_summarization.find({
- article: "Apple's Watch hits stores this Friday when customers and employees alike will be able to pre-order the timepiece. And boss Tim Cook is rewarding his staff by offering them a 50 per cent discount on the device."
- })
-```
-
-Here is the output data:
-
-```bash
-{
- highlights: "Apple's Watch hits stores this Friday, and employees will be able to pre-order the",
- article: "Apple's Watch hits stores this Friday when customers and employees alike will be able to pre-order the timepiece. And boss Tim Cook is rewarding his staff by offering them a 50 per cent discount on the device."
-}
-```
-
-Or by joining with a collection for batch predictions:
-
-```bash
-mindsdb> db.text_summarization.find(
- {
- 'collection': 'mongo_demo_db.articles'
- },
- {
- 'text_summarization.highlights': 'highlights',
- 'articles.article': 'article'
- }
- ).limit(3)
-```
-
-Here is the output data:
-
-```bash
-{
- highlights: 'A video has emerged of a law enforcement officer grabbing a cell phone from a woman who was',
- article: "Video footage has emerged of a law enforcement officer..."
-}
-{
- highlights: 'A new restaurant in London is offering a five-course drink-paired menu for dogs',
- article: "A new restaurant is offering a five-course..."
-}
-{
- highlights: "Sepsis is a potentially life-threatening condition that occurs when the body's response to an",
- article: 'Mother-of-two Anna Tilley survived after spending four days...'
-}
-```
-
-The `articles` collection is used to make batch predictions. Upon joining the `text_summarization` model with the `articles` collection, the model uses all values from the `article` field.
-
-
-Check out [this blog post on time series forecasting with Nixtla and MindsDB using MongoDB-QL](https://mindsdb.com/blog/time-series-forecasting-with-nixtla-and-mindsdb-using-mongodb-query-language).
-
diff --git a/docs/use-cases/data_enrichment/text-summarization-inside-mysql-with-openai.mdx b/docs/use-cases/data_enrichment/text-summarization-inside-mysql-with-openai.mdx
deleted file mode 100644
index 405335fb37f..00000000000
--- a/docs/use-cases/data_enrichment/text-summarization-inside-mysql-with-openai.mdx
+++ /dev/null
@@ -1,160 +0,0 @@
----
-title: Text Summarization with MindsDB and OpenAI using SQL
-sidebarTitle: Text Summarization using SQL
----
-
-## Introduction
-
-In this blog post, we present how to create OpenAI models within MindsDB. In this example, we ask a model to provide a summary of a text. The input data is taken from our sample MySQL database.
-
-## Prerequisites
-
-To follow along, install MindsDB locally via [Docker](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
-
-## Tutorial
-
-In this tutorial, we create a predictive model to summarize an article.
-
-We use a table from our MySQL public demo database, so let's start by connecting MindsDB to it:
-
-```sql
-CREATE DATABASE mysql_demo_db
-WITH ENGINE = 'mysql',
-PARAMETERS = {
- "user": "user",
- "password": "MindsDBUser123!",
- "host": "samples.mindsdb.com",
- "port": "3306",
- "database": "public"
-};
-```
-
-Now that we've connected our database to MindsDB, let's query the data to be used in the example:
-
-```sql
-SELECT *
-FROM mysql_demo_db.articles
-LIMIT 3;
-```
-
-Here is the output:
-
-```sql
-+----------------------------------------------------------------+--------------------------------------------------------------+
-| article | highlights |
-+----------------------------------------------------------------+--------------------------------------------------------------+
-| Video footage has emerged of a law enforcement officer… | The 53-second video features… |
-| A new restaurant is offering a five-course drink-paired menu… | The Curious Canine Kitchen is… |
-| Mother-of-two Anna Tilley survived after spending four days… | Experts have warned hospitals not using standard treatment… |
-+----------------------------------------------------------------+--------------------------------------------------------------+
-```
-
-Let's create a model table to summarize all articles from the input dataset:
-
-
-Before creating an OpenAI model, please create an engine, providing your OpenAI API key:
-
-```sql
-CREATE ML_ENGINE openai_engine
-FROM openai
-USING
- openai_api_key = 'your-openai-api-key';
-```
-
-
-```sql
-CREATE MODEL text_summarization_model
-PREDICT highlights
-USING
- engine = 'openai_engine',
- prompt_template = 'provide an informative summary of the text text:{{article}} using full sentences';
-```
-
-In practice, the `CREATE MODEL` statement triggers MindsDB to generate an AI table called `text_summarization_model` that uses the OpenAI integration to predict a column named `highlights`. The model lives inside the default `mindsdb` project. In MindsDB, projects are a natural way to keep artifacts, such as models or views, separate according to what predictive task they solve. You can learn more about MindsDB projects [here](/sql/project).
-
-The `USING` clause specifies the parameters that this handler requires.
-
-- The `engine` parameter defines that we use the `openai` engine.
-- The `prompt_template` parameter conveys the structure of a message that is to be completed with additional text generated by the model.
-
-
-Follow [this instruction](/integrations/ai-engines/openai#setup) to set up the OpenAI integration in MindsDB.
-
-
-Once the `CREATE MODEL` statement has started execution, we can check the status of the creation process with the following query:
-
-```sql
-DESCRIBE text_summarization_model;
-```
-
-It may take a while to register as complete depending on the internet connection. Once the creation is complete, the behavior is the same as with any other AI table – you can query it either by specifying synthetic data in the actual query:
-
-```sql
-SELECT article, highlights
-FROM text_summarization_model
-WHERE article = "Apple's Watch hits stores this Friday when customers and employees
- alike will be able to pre-order the timepiece. And boss Tim Cook is
- rewarding his staff by offering them a 50 per cent discount on the device.";
-```
-
-Here is the output data:
-
-```sql
-+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------+
-| article | highlights |
-+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------+
-| Apple's Watch hits stores this Friday when customers and employees alike will be able to pre-order the timepiece. And boss Tim Cook is rewarding his staff by offering them a 50 per cent discount on the device. | Apple's Watch hits stores this Friday, and employees will be able to pre-order the |
-+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------+
-```
-
-Or by joining with another table for batch predictions:
-
-```sql
-SELECT input.article, output.highlights
-FROM mysql_demo_db.articles AS input
-JOIN text_summarization_model AS output
-LIMIT 3;
-```
-
-Here is the output data:
-
-```sql
-+----------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| article | highlights |
-+----------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| Video footage has emerged of a law enforcement officer… | A video has emerged of a law enforcement officer grabbing a cell phone from a woman who was |
-| A new restaurant is offering a five-course drink-paired menu… | A new restaurant in London is offering a five-course drink-paired menu for dogs |
-| Mother-of-two Anna Tilley survived after spending four days… | Sepsis is a potentially life-threatening condition that occurs when the body's response to an |
-+----------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-```
-
-The `articles` table is used to make batch predictions. Upon joining the `text_summarization_model` model with the `articles` table, the model uses all values from the `article` column.
-
-## Leverage the NLP Capabilities with MindsDB
-
-By integrating databases and OpenAI using MindsDB, developers can easily extract insights from text data with just a few SQL commands. These powerful natural language processing (NLP) models are capable of answering questions with or without context and completing general prompts.
-
-Furthermore, these models are powered by large pre-trained language models from OpenAI, so there is no need for manual development work. Ultimately, this provides developers with an easy way to incorporate powerful NLP capabilities into their applications while saving time and resources compared to traditional ML development pipelines and methods. All in all, MindsDB makes it possible for developers to harness the power of OpenAI efficiently!
-
-MindsDB is now the fastest-growing open-source applied machine-learning platform in the world. Its community continues to contribute to more than 70 data-source and ML-framework integrations. Stay tuned for the upcoming features - including more control over the interface parameters and fine-tuning models directly from MindsDB!
-
-Experiment with OpenAI models within MindsDB and unlock the ML capability over your data in minutes.
-
-Finally, if MindsDB's vision to democratize ML sounds exciting, head to our [community Slack](https://mindsdb.com/joincommunity), where you can get help and find people to chat about using other available data sources, ML frameworks, or writing a handler to bring your own!
-
-Follow our introduction to MindsDB's OpenAI integration [here](https://mindsdb.com/blog/extract-insights-from-text-inside-databases-using-openai-gpt3-and-mindsdb-integration). Also, we've got a variety of tutorials that use MySQL and MongoDB:
-
-- [Sentiment Analysis in MySQL](/nlp/sentiment-analysis-inside-mysql-with-openai)
-- [Question Answering in MySQL](/nlp/question-answering-inside-mysql-with-openai)
-- [Sentiment Analysis in MongoDB](/nlp/sentiment-analysis-inside-mongodb-with-openai)
-- [Question Answering in MongoDB](/nlp/question-answering-inside-mongodb-with-openai)
-- [Text Summarization in MongoDB](/nlp/text-summarization-inside-mongodb-with-openai)
-
-## What's Next?
-
-Have fun while trying it out yourself!
-
-- Bookmark [MindsDB repository on GitHub](https://github.com/mindsdb/mindsdb).
-- Engage with the MindsDB community on [Slack](https://mindsdb.com/joincommunity) or [GitHub](https://github.com/mindsdb/mindsdb/discussions) to ask questions and share your ideas and thoughts.
-
-If this tutorial was helpful, please give us a GitHub star [here](https://github.com/mindsdb/mindsdb).
diff --git a/docs/use-cases/in-database_ml/ai-tables.mdx b/docs/use-cases/in-database_ml/ai-tables.mdx
deleted file mode 100644
index e970aed9beb..00000000000
--- a/docs/use-cases/in-database_ml/ai-tables.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: AI Tables
-sidebarTitle: AI Tables
----
-
-Let’s consider the following `income_table` table that stores the `income` and
-`debt` values.
-
-```sql
-SELECT income, debt
-FROM income_table;
-```
-
-On execution, we get:
-
-```sql
-+------+-----+
-|income|debt |
-+------+-----+
-|60000 |20000|
-|80000 |25100|
-|100000|30040|
-|120000|36010|
-+------+-----+
-```
-
-A simple visualization of the data present in the `income_table` table is as
-follows:
-
-
-
-Querying the income table to get the `debt` value for a particular `income`
-value results in the following:
-
-```sql
-SELECT income, debt
-FROM income_table
-WHERE income = 80000;
-```
-
-On execution, we get:
-
-```sql
-+------+-----+
-|income|debt |
-+------+-----+
-|80000 |25100|
-+------+-----+
-```
-
-And here is what we get:
-
-
-
-But what happens when querying the table for an `income` value that is not
-present there?
-
-```sql
-SELECT income, debt
-FROM income_table
-WHERE income = 90000;
-```
-
-On execution, we get:
-
-```sql
-Empty set (0.00 sec)
-```
-
-When the `WHERE` clause condition is not fulfilled for any of the rows, no
-value is returned.
-
-
-
-When a table doesn’t have an exact match, the query returns an empty set or null
-value. This is where the AI Tables come into play!
-
-Let’s create a `debt_model` model that allows us to approximate the `debt` value
-for any `income` value. We train the `debt_model` model using the data from the
-`income_table` table.
-
-```sql
-CREATE MODEL mindsdb.debt_model
-FROM income_table
-PREDICT debt;
-```
-
-On execution, we get:
-
-```sql
-Query OK, 0 rows affected (x.xxx sec)
-```
-
-MindsDB provides the [`CREATE MODEL`](/sql/create/model/)
-statement. On execution of this statement, the predictive model works in the
-background, automatically creating a vector representation of the data that can
-be visualized as follows:
-
-
-
-Please note that `debt_model` is our AI Table.
-
-Let’s now look for the `debt` value of some random `income` value. To get the
-approximated `debt` value, we query the `mindsdb.debt_model` model instead
-of the `income_table` table.
-
-```sql
-SELECT income, debt
-FROM mindsdb.debt_model
-WHERE income = 90000;
-```
-
-On execution, we get:
-
-```sql
-+------+-----+
-|income|debt |
-+------+-----+
-|90000 |27820|
-+------+-----+
-```
-
-And here is how it looks:
-
-
diff --git a/docs/use-cases/in-database_ml/byom.mdx b/docs/use-cases/in-database_ml/byom.mdx
deleted file mode 100644
index afb2240544d..00000000000
--- a/docs/use-cases/in-database_ml/byom.mdx
+++ /dev/null
@@ -1,712 +0,0 @@
-# Bring Your Own Model
-
-## Introduction
-
-MindsDB allows you to integrate your own machine learning models into it.
-
-In order to do this your model will require some sort of API wrapper, for now we have two API specifications we support: [MLflow](https://www.mlflow.org) and [Ray Serve](https://docs.ray.io/en/latest/serve/index.html).
-
-The former supports importing already trained models and predicting with them from mindsdb. The later supports both training and predicting with external models.
-
-In order to use custom models there are three mandatory arguments one must past inside the `USING` statement:
-- `url.predict`, this is the url to call for getting predictions from your model
-- `format`, this can be either `mlflow` or `ray_serve`
-- `dtype_dict`, this is a JSON specifying all columns expected by their models, and their respective data types. The mapping supports Pandas data types.
-
-There's an additional optional argument if you want to train the model via MindsDB (only for Ray Serve):
-- `url.train`, which is the endpoint that will be called to train your model
-
-* * *
-
-## 1. Ray Serve
-
-### 1.1 Simple example - Logistic regression
-
-Ray serve is a simple high-throughput service that can wrap over your own ml models. In this example, we will train and predict with an external scikit-learn model. First, let's look at the actual model wrapped inside a class that complies with the above requirements:
-
-```python
-import ray
-from fastapi import Request, FastAPI
-from ray import serve
-import time
-import pandas as pd
-import json
-from sklearn.linear_model import LogisticRegression
-
-
-app = FastAPI()
-ray.init()
-serve.start(detached=True)
-
-
-async def parse_req(request: Request):
- data = await request.json()
- target = data.get('target', None)
- di = json.loads(data['df'])
- df = pd.DataFrame(di)
- return df, target
-
-
-@serve.deployment(route_prefix="/my_model")
-@serve.ingress(app)
-class MyModel:
- @app.post("/train")
- async def train(self, request: Request):
- df, target = await parse_req(request)
- feature_cols = list(set(list(df.columns)) - set([target]))
- self.feature_cols = feature_cols
- X = df.loc[:, self.feature_cols]
- Y = list(df[target])
- self.model = LogisticRegression()
- self.model.fit(X, Y)
- return {'status': 'ok'}
-
- @app.post("/predict")
- async def predict(self, request: Request):
- df, _ = await parse_req(request)
- X = df.loc[:, self.feature_cols]
- predictions = self.model.predict(X)
- pred_dict = {'prediction': [float(x) for x in predictions]}
- return pred_dict
-
-
-MyModel.deploy()
-
-while True:
- time.sleep(1)
-```
-
-The important bits here are having train and predict endpoints.
-
-The `train` endpoint accept two parameters in the JSON sent via POST:
-- `df` -- a serialized dictionary that can be converted into a pandas dataframe
-- `target` -- the name of the target column
-
-The `predict` endpoint needs only one parameter:
-- `df` -- a serialized dictionary that can be converted into a pandas dataframe
-
-
-The training endpoints must return a JSON that contains the keys `status` set to `ok`. The predict endpoint must return a dictionary containing the `prediction` key, storing the predictions. Additional keys can be returned for confidence and confidence intervals.
-
-Once you start this RayServe-wrapped model you can train it using a query like this one:
-
-```sql
-CREATE MODEL mindsdb.byom_ray_serve
-FROM mydb (
- SELECT number_of_rooms, initial_price, rental_price
- FROM test_data.home_rentals
-)
-PREDICT number_of_rooms
-USING
-url.train = 'http://127.0.0.1:8000/my_model/train',
-url.predict = 'http://127.0.0.1:8000/my_model/predict',
-dtype_dict={"number_of_rooms": "categorical", "initial_price": "integer", "rental_price": "integer"},
-format='ray_server';
-```
-
-And you can query predictions as usual, either by conditioning on a subset of input colums:
-
-```sql
-SELECT * FROM byom_ray_serve WHERE initial_price=3000 AND rental_price=3000;
-```
-
-Or by `JOINING` to do batch predictions:
-
-```sql
-SELECT tb.number_of_rooms, t.rental_price FROM mydb.test_data.home_rentals AS t JOIN mindsdb.byom_ray_serve AS tb WHERE t.rental_price > 5300;
-```
-
-*Please note that, if your model is behind a reverse proxy (e.g. nginx) you might have to increase the maximum limit for POST requests in order to receive the training data. MindsDB itself can send as much as you'd like and has been stress-tested with over a billion rows.*
-
-### 1.2. Example - Keras NLP model
-
-For this example, we will consider a natural language processing (NLP) [task](https://www.kaggle.com/c/nlp-getting-started) where we want to train a neural network with [Keras](https://keras.io) to detect if a tweet is related to a natural disaster (fires, earthquakes, etc.). Please download this dataset to follow the example.
-
-The code for the model here is a bit more complex than in section 1.1, but the same rules apply: we create a Ray Server based service that wraps around a [Kaggle NLP Model](https://www.kaggle.com/shahules/basic-eda-cleaning-and-glove) which can be trained and then used for predictions:
-
-```python
-import re
-import time
-import json
-import string
-import requests
-from collections import Counter, defaultdict
-
-import ray
-from ray import serve
-
-import gensim
-import numpy as np
-import pandas as pd
-from tqdm import tqdm
-from nltk.util import ngrams
-from nltk.corpus import stopwords
-from nltk.tokenize import word_tokenize
-from fastapi import Request, FastAPI
-from sklearn.model_selection import train_test_split
-from sklearn.feature_extraction.text import CountVectorizer
-
-from tensorflow.keras.preprocessing.text import Tokenizer
-from tensorflow.keras.preprocessing.sequence import pad_sequences
-from tensorflow.keras.models import Sequential
-from tensorflow.keras.layers import Embedding, LSTM, Dense, SpatialDropout1D
-from tensorflow.keras.initializers import Constant
-from tensorflow.keras.optimizers import Adam
-
-app = FastAPI()
-stop = set(stopwords.words('english'))
-
-
-async def parse_req(request: Request):
- data = await request.json()
- target = data.get('target', None)
- di = json.loads(data['df'])
- df = pd.DataFrame(di)
- return df, target
-
-
-@serve.deployment(route_prefix="/nlp_kaggle_model")
-@serve.ingress(app)
-class Model:
- MAX_LEN = 100
- GLOVE_DIM = 50
- EPOCHS = 10
-
- def __init__(self):
- self.model = None
-
- @app.post("/train")
- async def train(self, request: Request):
- df, target = await parse_req(request)
-
- target_arr = df.pop(target).values
- df = self.preprocess_df(df)
- train_corpus = self.create_corpus(df)
-
- self.embedding_dict = {}
- with open('./glove.6B.50d.txt', 'r') as f:
- for line in f:
- values = line.split()
- word = values[0]
- vectors = np.asarray(values[1:], 'float32')
- self.embedding_dict[word] = vectors
- f.close()
-
- self.tokenizer_obj = Tokenizer()
- self.tokenizer_obj.fit_on_texts(train_corpus)
-
- sequences = self.tokenizer_obj.texts_to_sequences(train_corpus)
- tweet_pad = pad_sequences(sequences, maxlen=self.__class__.MAX_LEN, truncating='post', padding='post')
- df = tweet_pad[:df.shape[0]]
-
- word_index = self.tokenizer_obj.word_index
- num_words = len(word_index) + 1
- embedding_matrix = np.zeros((num_words, self.__class__.GLOVE_DIM))
-
- for word, i in tqdm(word_index.items()):
- if i > num_words:
- continue
-
- emb_vec = self.embedding_dict.get(word)
- if emb_vec is not None:
- embedding_matrix[i] = emb_vec
-
- self.model = Sequential()
- embedding = Embedding(num_words,
- self.__class__.GLOVE_DIM,
- embeddings_initializer=Constant(embedding_matrix),
- input_length=self.__class__.MAX_LEN,
- trainable=False)
- self.model.add(embedding)
- self.model.add(SpatialDropout1D(0.2))
- self.model.add(LSTM(64, dropout=0.2, recurrent_dropout=0.2))
- self.model.add(Dense(1, activation='sigmoid'))
-
- optimzer = Adam(learning_rate=1e-5)
- self.model.compile(loss='binary_crossentropy', optimizer=optimzer, metrics=['accuracy'])
-
- X_train, X_test, y_train, y_test = train_test_split(df, target_arr, test_size=0.15)
- self.model.fit(X_train, y_train, batch_size=4, epochs=self.__class__.EPOCHS, validation_data=(X_test, y_test), verbose=2)
-
- return {'status': 'ok'}
-
- @app.post("/predict")
- async def predict(self, request: Request):
- df, _ = await parse_req(request)
-
- df = self.preprocess_df(df)
- test_corpus = self.create_corpus(df)
-
- sequences = self.tokenizer_obj.texts_to_sequences(test_corpus)
- tweet_pad = pad_sequences(sequences, maxlen=self.__class__.MAX_LEN, truncating='post', padding='post')
- df = tweet_pad[:df.shape[0]]
-
- y_pre = self.model.predict(df)
- y_pre = np.round(y_pre).astype(int).flatten().tolist()
- sub = pd.DataFrame({'target': y_pre})
-
- pred_dict = {'prediction': [float(x) for x in sub['target'].values]}
- return pred_dict
-
- def preprocess_df(self, df):
- df = df[['text']]
- df['text'] = df['text'].apply(lambda x: self.remove_URL(x))
- df['text'] = df['text'].apply(lambda x: self.remove_html(x))
- df['text'] = df['text'].apply(lambda x: self.remove_emoji(x))
- df['text'] = df['text'].apply(lambda x: self.remove_punct(x))
- return df
-
- def remove_URL(self, text):
- url = re.compile(r'https?://\S+|www\.\S+')
- return url.sub(r'', text)
-
- def remove_html(self, text):
- html = re.compile(r'<.*?>')
- return html.sub(r'', text)
-
- def remove_punct(self, text):
- table = str.maketrans('', '', string.punctuation)
- return text.translate(table)
-
- def remove_emoji(self, text):
- emoji_pattern = re.compile("["
- u"\U0001F600-\U0001F64F" # emoticons
- u"\U0001F300-\U0001F5FF" # symbols & pictographs
- u"\U0001F680-\U0001F6FF" # transport & map symbols
- u"\U0001F1E0-\U0001F1FF" # flags (iOS)
- u"\U00002702-\U000027B0"
- u"\U000024C2-\U0001F251"
- "]+", flags=re.UNICODE)
- return emoji_pattern.sub(r'', text)
-
- def create_corpus(self, df):
- corpus = []
- for tweet in tqdm(df['text']):
- words = [word.lower() for word in word_tokenize(tweet) if ((word.isalpha() == 1) & (word not in stop))]
- corpus.append(words)
- return corpus
-
-
-if __name__ == '__main__':
-
- ray.init()
- serve.start(detached=True)
-
- Model.deploy()
-
- while True:
- time.sleep(1)
-```
-
-We need access to the training data, so we'll create a table called `nlp_kaggle_train` to load the [dataset](https://www.kaggle.com/c/nlp-getting-started) that the original model uses.
-
-And ingest it into a table with the following schema:
-
-```sql
-id INT,
-keyword VARCHAR(255),
-location VARCHAR(255),
-text VARCHAR(5000),
-target INT
-```
-
-*Note: specifics of the schema and how to ingest the csv will vary depending on your database.*
-
-Next, we can register and train the above custom model using the following query:
-
-```sql
-CREATE MODEL mindsdb.byom_ray_serve_nlp
-FROM maria (
- SELECT text, target
- FROM test.nlp_kaggle_train
-) PREDICT target
-USING
-url.train = 'http://127.0.0.1:8000/nlp_kaggle_model/train',
-url.predict = 'http://127.0.0.1:8000/nlp_kaggle_model/predict',
-dtype_dict={"text": "rich_text", "target": "integer"},
-format='ray_server';
-```
-
-Training will take a while given that this model is a neural network rather than a simple logistic regression. You can check its status with the query `SELECT * FROM mindsdb.predictors WHERE name = 'byom_ray_serve_nlp';`, much like you'd do with a "normal" MindsDB predictor.
-
-Once the predictor's status becomes `trained` we can query it for predictions as usual:
-
-```sql
-SELECT * FROM mindsdb.byom_ray_serve_nlp WHERE text='The tsunami is coming, seek high ground';
-```
-
-Which would, hopefully, output `1`. Alternatively, we can try out this tweet to expect `0` as an output:
-
-```sql
-SELECT * FROM mindsdb.byom_ray_serve_nlp WHERE text='This is lovely dear friend';
-```
-
-If your results do not match this example, it could help to train the model for a longer amount of epochs.
-
-* * *
-
-## 2. MLFlow
-
-### 2.1 Simple example - Logistic Regression
-
-MLFlow is a tool that you can use to train and serve models, among other features like organizing experiments, tracking metrics, etc.
-
-Given there is no way to train an MLflow-wrapped model using its API, you will have to train your models outside of MindsDB by pulling your data manually (i.e. with a script), ideally using a MLflow run or experiment.
-
-The first step would be to create a script where you train a model and save it using one of the saving methods that MLflow exposes. For this example, we will use the model in this [simple tutorial](https://github.com/mlflow/mlflow#saving-and-serving-models) where the method is `mlflow.sklearn.log_model` ([here](https://github.com/mlflow/mlflow/blob/9781af9c0898827bf616a8f159168477a69036dd/examples/sklearn_logistic_regression/train.py#L15)), given that the model is built with scikit-learn.
-
-Once trained, you need to make sure the model is served and listening for input in a URL of your choice (note, this can mean your model can run on a different machine than the one executing MindsDB). Let's assume this URL to be `http://localhost:5000/invocations` for now.
-
-This means you would execute the following command in your terminal, from the directory where the model was stored:
-
-`mlflow models serve --model-uri runs://model`
-
-With `` given in the output of the command `python train.py` used for actually training the model.
-
-Next, we're going to bring this model into MindsDB:
-
-```sql
-CREATE MODEL mindsdb.byom_mlflow
-PREDICT `1` -- `1` is the target column name
-USING
-url.predict='http://localhost:5000/invocations',
-format='mlflow',
-data_dtype={"0": "integer", "1": "integer"}
-```
-
-We can now run predictions as usual, by using the `WHERE` statement or joining on a data table with an appropriate schema:
-
-```sql
-SELECT `1` FROM byom_mlflow WHERE `0`=2;
-```
-
-
-## 2.2. Advanced example - Keras NLP model
-
-Same use case as in section 1.2, be sure to download the dataset to reproduce the steps here. In this case, we will take a look at the best practices when your model needs custom data preprocessing code (which, realistically, will be fairly common).
-
-The key difference is that we now need to use the `mlflow.pyfunc` module to both 1) save the model using `mlflow.pyfunc.save_model` and 2) subclass `mlflow.pyfunc.PythonModel` to wrap the model in an MLflow-compatible way that will enable our custom inference logic to be called.
-
-### Saving the model
-
-In the same script where you train the model (which you can find in the final section of 2.2) there should be a call at the end where you actually use mlflow to save every produced artifact:
-
-```python
-mlflow.pyfunc.save_model(
- path="nlp_kaggle",
- python_model=Model(),
- conda_env=conda_env,
- artifacts=artifacts
-)
-```
-
-Here, `artifacts` will be a dictionary with all expected produced outputs when running the training phase. In this case, we want both a model and a tokenizer to preprocess the input text. On the other hand, `conda_env` specifies the environment under which your model should be executed once served in a self-contained conda environment, so it should include all required packages and dependencies. For this example, they look like this:
-
-```python
-# these will be accessible inside the Model() wrapper
-artifacts = {
- 'model': model_path,
- 'tokenizer_path': tokenizer_path,
-}
-
-# specs for environment that will be created when serving the model
-conda_env = {
- 'name': 'nlp_keras_env',
- 'channels': ['defaults'],
- 'dependencies': [
- 'python=3.10',
- 'pip',
- {
- 'pip': [
- 'mlflow',
- 'tensorflow',
- 'cloudpickle',
- 'nltk',
- 'pandas',
- 'numpy',
- 'scikit-learn',
- 'tqdm',
- ],
- },
- ],
-}
-```
-
-Finally, to actually store the model you need to provide the wrapper class that will 1) load all produced artifacts into an accessible "context" and 2) implement all required inference logic:
-
-```python
-class Model(mlflow.pyfunc.PythonModel):
- def load_context(self, context):
- # we use paths in the context to load everything
- self.model_path = context.artifacts['model']
- self.model = load_model(self.model_path)
- with open(context.artifacts['tokenizer_path'], 'rb') as f:
- self.tokenizer = pickle.load(f)
-
- def predict(self, context, model_input):
- # preprocess input, tokenize, pad, and call the model
- df = preprocess_df(model_input)
- corpus = create_corpus(df)
- sequences = self.tokenizer.texts_to_sequences(corpus)
- tweet_pad = pad_sequences(sequences,
- maxlen=MAX_LEN,
- truncating='post',
- padding='post')
- df = tweet_pad[:df.shape[0]]
-
- y_pre = self.model.predict(df)
- y_pre = np.round(y_pre).astype(int).flatten().tolist()
-
- return list(y_pre)
-```
-
-As you can see, here we are loading multiple artifacts and using them to guarantee the input data will be in the same format that was used when training. Ideally, you would abstract this even further into a single `preprocess` method that is called both at training time and inference time.
-
-Finally, serving is simple. Go to the directory where you called the above script, and execute `mlflow models serve --model-uri ./nlp_kaggle`.
-
-At this point, the rest is essentially the same as in the previous example. You can link the MLflow model with these SQL statements:
-
-```sql
-CREATE MODEL mindsdb.byom_mlflow_nlp
-PREDICT `target`
-USING
- url.predict='http://localhost:5000/invocations',
- format='mlflow',
- dtype_dict={"text": "rich text", "target": "binary"};
-```
-
-To get predictions, you can directly pass input data using the `WHERE` clause:
-
-```sql
-SELECT target
-FROM mindsdb.byom_mlflow_nlp
-WHERE text='The tsunami is coming, seek high ground';
-```
-
-Or you can `JOIN` with a data table. For this, you should ensure the table actually exists and that the database it belongs to has been connected to your MindsDB instance. For more details, refer to the same steps in the Ray Serve example (section 1.2).
-
-```sql
-SELECT
- ta.text,
- tb.target as predicted
-FROM db_byom.test.nlp_kaggle_test as ta
-JOIN mindsdb.byom_mlflow_nlp as tb;
-```
-
-### Full Script
-
-Finally, for reference, here's the full script that trains and saves the model. The model is exactly the same as in section 1.2, so it may seem familiar.
-
-```python
-import re
-import pickle
-import string
-
-import mlflow.pyfunc
-
-import nltk
-import tqdm
-import sklearn
-import tensorflow
-import cloudpickle
-import numpy as np
-import pandas as pd
-from nltk.corpus import stopwords
-from nltk.tokenize import word_tokenize
-from sklearn.model_selection import train_test_split
-from tensorflow.keras.initializers import Constant
-from tensorflow.keras.layers import Embedding, LSTM, Dense, SpatialDropout1D
-from tensorflow.keras.models import Sequential
-from tensorflow.keras.optimizers import Adam
-from tensorflow.keras.preprocessing.sequence import pad_sequences
-from tensorflow.keras.preprocessing.text import Tokenizer
-from tensorflow.keras.models import load_model
-
-
-stop = set(stopwords.words('english'))
-
-MAX_LEN = 100
-GLOVE_DIM = 50
-EPOCHS = 10
-
-
-def preprocess_df(df):
- df = df[['text']]
- funcs = [remove_URL, remove_html, remove_emoji, remove_punct]
- for fn in funcs:
- df['text'] = df['text'].apply(lambda x: fn(x))
- return df
-
-
-def remove_URL(text):
- url = re.compile(r'https?://\S+|www\.\S+')
- return url.sub(r'', text)
-
-
-def remove_html(text):
- html = re.compile(r'<.*?>')
- return html.sub(r'', text)
-
-
-def remove_punct(text):
- table = str.maketrans('', '', string.punctuation)
- return text.translate(table)
-
-
-def remove_emoji(text):
- emoji_pattern = re.compile("["
- u"\U0001F600-\U0001F64F" # emoticons
- u"\U0001F300-\U0001F5FF" # symbols & pictographs
- u"\U0001F680-\U0001F6FF" # transport & map symbols
- u"\U0001F1E0-\U0001F1FF" # flags (iOS)
- u"\U00002702-\U000027B0"
- u"\U000024C2-\U0001F251"
- "]+", flags=re.UNICODE)
- return emoji_pattern.sub(r'', text)
-
-
-def create_corpus(df):
- corpus = []
- for tweet in tqdm.tqdm(df['text']):
- words = [word.lower() for word in word_tokenize(tweet) if ((word.isalpha() == 1) & (word not in stop))]
- corpus.append(words)
- return corpus
-
-
-class Model(mlflow.pyfunc.PythonModel):
-
- def load_context(self, context):
-
- self.model_path = context.artifacts['model']
- with open(context.artifacts['tokenizer_path'], 'rb') as f:
- self.tokenizer = pickle.load(f)
- self.model = load_model(self.model_path)
-
- def predict(self, context, model_input):
-
- df = preprocess_df(model_input)
- corpus = create_corpus(df)
- sequences = self.tokenizer.texts_to_sequences(corpus)
- tweet_pad = pad_sequences(sequences, maxlen=MAX_LEN, truncating='post', padding='post')
- df = tweet_pad[:df.shape[0]]
-
- y_pre = self.model.predict(df)
- y_pre = np.round(y_pre).astype(int).flatten().tolist()
-
- return list(y_pre)
-
-
-if __name__ == '__main__':
- train_model = True
-
- model_path = './'
- tokenizer_path = './tokenizer.pkl'
- run_name = 'test_run'
- mlflow_pyfunc_model_path = "nlp_kaggle"
- mlflow.set_tracking_uri("sqlite:///mlflow.db")
-
- if train_model:
-
- # preprocess data
- df = pd.read_csv('./train.csv')
- target = df[['target']]
- target_arr = target.values
- df = preprocess_df(df)
- train_corpus = create_corpus(df)
-
- # load embeddings
- embedding_dict = {}
- with open('./glove.6B.50d.txt', 'r') as f:
- for line in f:
- values = line.split()
- word = values[0]
- vectors = np.asarray(values[1:], 'float32')
- embedding_dict[word] = vectors
- f.close()
-
- # generate and save tokenizer
- tokenizer_obj = Tokenizer()
- tokenizer_obj.fit_on_texts(train_corpus)
-
- with open(tokenizer_path, 'wb') as f:
- pickle.dump(tokenizer_obj, f)
-
- # tokenize and pad
- sequences = tokenizer_obj.texts_to_sequences(train_corpus)
- tweet_pad = pad_sequences(sequences, maxlen=MAX_LEN, truncating='post', padding='post')
- df = tweet_pad[:df.shape[0]]
-
- word_index = tokenizer_obj.word_index
- num_words = len(word_index) + 1
- embedding_matrix = np.zeros((num_words, GLOVE_DIM))
-
- # fill embedding matrix
- for word, i in tqdm.tqdm(word_index.items()):
- if i > num_words:
- continue
-
- emb_vec = embedding_dict.get(word)
- if emb_vec is not None:
- embedding_matrix[i] = emb_vec
-
- X_train, X_test, y_train, y_test = train_test_split(df, target_arr, test_size=0.15)
-
- # generate model
- model = Sequential()
- embedding = Embedding(num_words,
- GLOVE_DIM,
- embeddings_initializer=Constant(embedding_matrix),
- input_length=MAX_LEN,
- trainable=False)
- model.add(embedding)
- model.add(SpatialDropout1D(0.2))
- model.add(LSTM(64, dropout=0.2, recurrent_dropout=0.2))
- model.add(Dense(1, activation='sigmoid'))
-
- optimzer = Adam(learning_rate=1e-5)
- model.compile(loss='binary_crossentropy', optimizer=optimzer, metrics=['accuracy'])
-
- # train and save
- model.fit(X_train, y_train, batch_size=4, epochs=EPOCHS, validation_data=(X_test, y_test), verbose=2)
- model.save(model_path)
-
- # save in mlflow format
- artifacts = {
- 'model': model_path,
- 'tokenizer_path': tokenizer_path,
- }
-
- conda_env = {
- 'channels': ['defaults'],
- 'dependencies': [
- 'python=3.9',
- 'pip',
- {
- 'pip': [
- 'mlflow',
- 'tensorflow=={}'.format(tensorflow.__version__),
- 'cloudpickle=={}'.format(cloudpickle.__version__),
- 'nltk=={}'.format(nltk.__version__),
- 'pandas=={}'.format(pd.__version__),
- 'numpy=={}'.format(np.__version__),
- 'scikit-learn=={}'.format(sklearn.__version__),
- 'tqdm=={}'.format(tqdm.__version__)
- ],
- },
- ],
- 'name': 'nlp_keras_env'
- }
-
- # Save and register the MLflow Model
- with mlflow.start_run(run_name=run_name) as run:
- mlflow.pyfunc.save_model(
- path=mlflow_pyfunc_model_path,
- python_model=Model(),
- conda_env=conda_env,
- artifacts=artifacts)
-
- result = mlflow.register_model(
- f"runs:/{run.info.run_id}/{mlflow_pyfunc_model_path}",
- f"{mlflow_pyfunc_model_path}"
- )
-```
diff --git a/docs/use-cases/in-database_ml/overview.mdx b/docs/use-cases/in-database_ml/overview.mdx
deleted file mode 100644
index 4ba02b6bdd4..00000000000
--- a/docs/use-cases/in-database_ml/overview.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: In-Database Machine Learning
-sidebarTitle: Overview
----
-
-MindsDB brings AI/ML into your database. This mitigates the need for creating and maintaining data pipelines. Access various [AI/ML models](/integrations/ai-overview) directly from your [data source](/integrations/data-overview).
-
-
-
-
-
-This section covers the following use cases:
-
- - Automated classification models
- - Automated regression models
- - Bring Your Own Model (BYOM) to MindsDB
-
-
-
-
-Available tutorials:
-
-
-
-
-
-
-
-
diff --git a/docs/use-cases/mcp_api/cursor.mdx b/docs/use-cases/mcp_api/cursor.mdx
deleted file mode 100644
index 51c97fbc1e2..00000000000
--- a/docs/use-cases/mcp_api/cursor.mdx
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: Usage with Cursor
-sidebarTitle: Usage with Cursor
----
-
-This tutorial walks you through the usage of MindsDB MCP API with [Cursor](https://www.cursor.com/).
-
-## Tutorial
-
-1. Open Cursor, go to the Cursor Settings, open the MCP tab, and click on *Add new global MCP server*. Alternatively, go to the Cursor settings -> Features -> MCP Servers.
-
-
-
-
-
-2. Add the below content to the `mcp.json` file. Ensure that [MindsDB is running locally with its HTTP API enabled](/use-cases/mcp_api/mindsdb_mcp_server).
-
-```yml
-{
- "mcpServers": {
- "mindsdb": {
- "url": "http://127.0.0.1:47334/mcp/sse"
- }
- }
-}
-```
-
-3. Ensure that MindsDB is listed as an MCP server.
-
-
-
-
-
-4. Open the Cursor chat window and select the Agent mode from the dropdown.
-
-
-
-
-
-5. Ask questions over your data. *Note that you need to approve each call of the MCP server’s tools by clicking on Run tool.*
-
-
-
-
-
-6. The agent provides an answer with helpful suggestions of follow-up information that can be extracted from the available data.
-
-
-
-
diff --git a/docs/use-cases/mcp_api/mindsdb_mcp_server.mdx b/docs/use-cases/mcp_api/mindsdb_mcp_server.mdx
deleted file mode 100644
index 4081ca804e0..00000000000
--- a/docs/use-cases/mcp_api/mindsdb_mcp_server.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Starting MindsDB's MCP API
-sidebarTitle: MindsDB's MCP API
----
-
-This sections provides instructions on how to start MindsDB with its MCP API enabled.
-
-## Enable MindsDB as an MCP Server
-
-1. Install MindsDB locally via [Docker](https://docs.mindsdb.com/setup/self-hosted/docker) or [Docker Desktop](https://docs.mindsdb.com/setup/self-hosted/docker-desktop).
-
-2. The MCP API is enabled by default, as part of the HTTP API, at path `/mcp/`.
-
-
-To enable the HTTP API explicitly, you can use the [`MINDSDB_APIS` environment variable](/setup/environment-vars#mindsdb-apis):
-
-```bash
-export MINDSDB_APIS='http,mysql'
-```
-
-Or, specify it when starting MindsDB:
-
-```bash
-python -m mindsdb --api http,mysql
-```
-
-
-If this is your first time using MindsDB, make sure to [connect your data source](/mindsdb_sql/sql/create/database) and/or [upload files](/mindsdb_sql/sql/create/file), so that you can ask questions over your data as shown in the following steps.
-
-To get you started quickly, use our sample dataset that stores the sales manager data.
-
-```sql
-CREATE DATABASE sales_manager_data
-WITH ENGINE = "postgres",
-PARAMETERS = {
- "user": "demo_user",
- "password": "demo_password",
- "host": "samples.mindsdb.com",
- "port": "5432",
- "database": "sales_manager_data"
-};
-```
-
-
-3. MindsDB's MCP server is available at `localhost:47334/mcp/sse`.
diff --git a/docs/use-cases/mcp_api/overview.mdx b/docs/use-cases/mcp_api/overview.mdx
deleted file mode 100644
index 6d099575b6a..00000000000
--- a/docs/use-cases/mcp_api/overview.mdx
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: MindsDB's MCP API
-sidebarTitle: Overview
----
-
-**MindsDB** is an MCP server that enables your MCP applications to answer questions over large-scale federated data—spanning databases, data warehouses, and SaaS applications.
-
-
-
-
-
-
-Learn more about [MindsDB's MCP API here](/mcp/overview).
-
-
-This section covers the following use cases:
-
-- Starting MindsDB's MCP API
-- MindsDB MCP Server with Cursor
diff --git a/docs/use-cases/predictive_analytics/overview.mdx b/docs/use-cases/predictive_analytics/overview.mdx
deleted file mode 100644
index 7e210a07769..00000000000
--- a/docs/use-cases/predictive_analytics/overview.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Predictive Analytics
-sidebarTitle: Overview
----
-
-MindsDB enables seamless time-series forecasting so you can look into the future and get predictions based on historical data. You can also use historical data to detect anomalies, for example, in quality control systems.
-
-