diff --git a/documentation/.vuepress/config.js b/documentation/.vuepress/config.js
index 2e2d5b9..c060b28 100755
--- a/documentation/.vuepress/config.js
+++ b/documentation/.vuepress/config.js
@@ -94,6 +94,35 @@ module.exports = {
],
},
+ // Custom algorithms
+ {
+ title: "Custom algorithms",
+ path: "/customAlgorithms/",
+ collapsable: false,
+ initialOpenGroupIndex: -1,
+ children: [
+ {
+ title: "How to use algorithms",
+ path: "/customAlgorithms/howToUseAlgorithms.md",
+ },
+ {
+ title: "Integrated algorithms",
+ path: "/customAlgorithms/integratedAlgorithms.md",
+ },
+ {
+ title: "Algo-providers",
+ path: "/customAlgorithms/algoProviders/",
+ children: [
+ "/customAlgorithms/algoProviders/easyAlgoProvider.md",
+ "/customAlgorithms/algoProviders/algoProviderTemplates.md",
+ "/customAlgorithms/algoProviders/customImplementation.md",
+ "/customAlgorithms/algoProviders/implementInBackend.md",
+ "/customAlgorithms/algoProviders/addingAlgoProviders.md",
+ ],
+ },
+ ],
+ },
+
// Dashboard
{
title: "Dashboard",
@@ -130,16 +159,6 @@ module.exports = {
path: "/dashboard/layouts/",
collapsable: true,
},
- {
- title: "Custom algorithms",
- path: "/dashboard/algoProviders/",
- collapsable: true,
- children: [
- "/dashboard/algoProviders/algoProviders.md",
- "/dashboard/algoProviders/implementInBackend.md",
- "/dashboard/algoProviders/integratedAlgorithms.md",
- ],
- },
{
title: "Data export",
path: "/dashboard/dataExport/",
diff --git a/documentation/.vuepress/public/install/addBlock.svg b/documentation/.vuepress/public/install/addBlock.svg
new file mode 100644
index 0000000..4f98688
--- /dev/null
+++ b/documentation/.vuepress/public/install/addBlock.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/documentation/.vuepress/public/install/gears.svg b/documentation/.vuepress/public/install/gears.svg
new file mode 100644
index 0000000..a96371d
--- /dev/null
+++ b/documentation/.vuepress/public/install/gears.svg
@@ -0,0 +1,50 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/documentation/.vuepress/public/install/heartFile.svg b/documentation/.vuepress/public/install/heartFile.svg
new file mode 100644
index 0000000..c7a8449
--- /dev/null
+++ b/documentation/.vuepress/public/install/heartFile.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/documentation/.vuepress/public/install/terminal.svg b/documentation/.vuepress/public/install/terminal.svg
new file mode 100644
index 0000000..5beeb40
--- /dev/null
+++ b/documentation/.vuepress/public/install/terminal.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/documentation/customAlgorithms/README.md b/documentation/customAlgorithms/README.md
new file mode 100644
index 0000000..4ea913f
--- /dev/null
+++ b/documentation/customAlgorithms/README.md
@@ -0,0 +1,31 @@
+# Adding custom algorithms to DebiAI
+
+Projects have their own specific needs and sometimes the algorithms that are available in DebiAI are not enough. That's why DebiAI allows you to add your own algorithms.
+
+Adding an algorithm to DebiAI allows you to use it with the data directly from the dashboard and analyze the results like any other project data.
+
+Different kinds of algorithms can be added to DebiAI, ranging from data quality to metrics calculation, from data transformation using machine learning models to anomaly detection.
+
+**Learn more:**
+
+
\ No newline at end of file
diff --git a/documentation/customAlgorithms/algoProviders/README.md b/documentation/customAlgorithms/algoProviders/README.md
new file mode 100644
index 0000000..1771981
--- /dev/null
+++ b/documentation/customAlgorithms/algoProviders/README.md
@@ -0,0 +1,87 @@
+# DebiAI Algo-providers
+
+An Algo-provider is a service that can respond to the algorithms requests of DebiAI. DebiAI will interact with your Algo-provider in two ways:
+
+- For getting the list of available algorithms
+- For running an algorithm and getting the results
+
+## Creating an Algo-provider
+
+We offer different ways to create an Algo-provider:
+
+
+
+## Algorithms description
+
+You will need to describe your algorithm in a Json format and then create the implementation of your algorithm. After that, DebiAI will be able to understand your algorithm and run it.
+
+Here is, for example, the description of a simple moving average algorithm:
+
+```json
+{
+ "id": "moving_average",
+ "name": "Moving average",
+ "description": "Calculate the moving average of a data.",
+ "tags": ["calculations"],
+ "author": "DebiAI",
+ "version": "1.0.0",
+ "inputs": [
+ {
+ "name": "data",
+ "description": "The data to calculate the moving average on.",
+ "type": "array",
+ "arrayType": "number",
+ "lengthMin": 1,
+ "lengthMax": 100000
+ },
+ {
+ "name": "periods",
+ "description": "The number of periods to calculate the moving average on.",
+ "type": "number",
+ "default": 3,
+ "min": 1,
+ "max": 100
+ }
+ ],
+ "outputs": [
+ {
+ "name": "moving_average",
+ "description": "The moving average of the data. Same length as the data",
+ "type": "array",
+ "arrayType": "number"
+ }
+ ]
+}
+```
+
+As you can see, the input and output of the algorithm are described. This description is used by DebiAI to understand how to run the algorithm and how to display it in the dashboard and what kind of data it needs.
+
+To learn more about the algorithms descriptions, you can read the [Algorithm description documentation](https://github.com/debiai/algo-provider-python-template/blob/main/algo-api/README.md).
diff --git a/documentation/customAlgorithms/algoProviders/addingAlgoProviders.md b/documentation/customAlgorithms/algoProviders/addingAlgoProviders.md
new file mode 100644
index 0000000..6f42195
--- /dev/null
+++ b/documentation/customAlgorithms/algoProviders/addingAlgoProviders.md
@@ -0,0 +1,126 @@
+# Adding Algo-providers to DebiAI
+
+Once you have created and deployed your Algo-provider, you can add it to DebiAI. We offer multiple ways to do so:
+
+
+
+## With DebiAI-gui
+
+If you are using the [DebiAI-gui Python package](../../introduction/gettingStarted/installation/README.md#debiai-gui-python-package) to run DebiAI, you can add Algo-providers directly as parameters:
+
+```bash
+debiai-gui start -ap http://localhost:4000 http://localhost:8000
+```
+
+Once you have created and deployed your Algo-provider, you can add it to DebiAI.
+
+## From the dashboard
+
+You can add your Algo-provider directly from the dashboard. To do so, go to the Algo-providers page from the menu:
+
+
+
+And click on the "Add a new Algo-provider" button:
+
+
+
+You will need to provide the URL of your Algo-provider. This URL should be the root URL of your Algo-provider, for example: `https://my-algo-provider.com/`.
+
+
+
+Once you have added your Algo-provider, you will be able to use the algorithms it provides in the Algorithms tab of the analysis dashboard:
+
+
+
+## Connecting via Environment Variables
+
+For deployments, you can define environment variables to specify provider URLs.
+
+### Example:
+
+```bash
+export DEBIAI_ALGO_PROVIDER_MyAlgoProvider1=http://localhost:3000/
+export DEBIAI_ALGO_PROVIDER_MyAlgoProvider2=http://localhost:3010/
+```
+
+With Docker:
+
+```bash
+docker run -p 3000:3000 \
+ -e DEBIAI_ALGO_PROVIDER_MyAlgoProvider1=http://localhost:3000/ \
+ -e DEBIAI_ALGO_PROVIDER_MyAlgoProvider2=http://localhost:3010/ \
+ debiai/app
+```
+
+With Docker Compose:
+
+```yaml
+version: "3.8"
+services:
+ debiai:
+ image: "debiai/app"
+ ports:
+ - "3000:3000"
+ environment:
+ - DEBIAI_ALGO_PROVIDER_MyAlgoProvider1=http://localhost:3000/
+ - DEBIAI_ALGO_PROVIDER_MyAlgoProvider2=http://localhost:3010/
+```
+
+For a full list fo environment variables, check the [config.env](https://github.com/debiai/DebiAI/blob/main/debiaiServer/config/config.env) file.
+
+## Connecting via Configuration File
+
+You can also configure providers in config.ini:
+Example `(debiai/debiaiServer/config/config.ini)`:
+
+```ini
+[ALGO_PROVIDERS]
+MyAlgoProvider1 = http://localhost:3000/
+MyAlgoProvider2 = http://localhost:3010/
+```
+
+After editing, restart DebiAI (or rebuild the Docker image if using containers).
+
+::: tip Configuration priority order:
+
+1. DebiAI-gui python module parameters
+2. Environment variables
+3. Configuration file settings.
+ :::
+
+If the Algo-provider is accessible and follows the API, DebiAI will list the algorithms in the dashboard analysis page.
+
+::: warning
+**DebiAI must be able to access your Algo-provider.**
+
+- If running locally, use `localhost` as the URL.
+- If hosted externally, use the **public IP address**.
+- When using **Docker**, you may need to use the public IP or `--network host` to access a provider deployed on `localhost`.
+ More details: [Docker documentation](https://docs.docker.com/network/host/).
+ :::
diff --git a/documentation/customAlgorithms/algoProviders/algoProviderTemplates.md b/documentation/customAlgorithms/algoProviders/algoProviderTemplates.md
new file mode 100644
index 0000000..6baa053
--- /dev/null
+++ b/documentation/customAlgorithms/algoProviders/algoProviderTemplates.md
@@ -0,0 +1,11 @@
+# Algo-provider templates
+
+To help you create custom algo-providers, we have created rest api service templates. You can use it as a starting point for your own Algo-provider.
+
+- Python: [Algo-provider Python template](https://github.com/debiai/algo-provider-python-template).
+
+:::tip
+Using the [algo-provider Python module](./easyAlgoProvider.md) is the easiest and recommended way to create an Algo-provider for DebiAI if you are using Python. Use the Python template if you want to go further with your Algo-provider.
+:::
+
+After creating your Algo-provider, you can add it to DebiAI by providing the URL of your provider. [Learn more on how to add Algo-providers to DebiAI.](./addingAlgoProviders.md#adding-algo-providers-to-debiai)
diff --git a/documentation/customAlgorithms/algoProviders/customImplementation.md b/documentation/customAlgorithms/algoProviders/customImplementation.md
new file mode 100644
index 0000000..7ca5d80
--- /dev/null
+++ b/documentation/customAlgorithms/algoProviders/customImplementation.md
@@ -0,0 +1,18 @@
+# Algo-provider from scratch
+
+An Algo-provider can be made in **any language**, can use **any kind algorithms** and can be hosted on **any platform** as long at the DebiAI algo-provider's API is respected.
+
+## The API
+
+The Algo-providers API as been described with OpenAPI 3.0.
+
+- [Algo-providers API Swagger documentation](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/debiai/algo-provider-python-template/main/algo-api/OpenAPI/Algo_OpenAPI_V0.yaml)
+- [Alg-providers API yaml file](https://github.com/debiai/algo-provider-python-template/blob/main/algo-api/OpenAPI/Algo_OpenAPI_V0.yaml).
+
+## Getting started
+
+If you want to create an Algo-provider in another language, you just need to respect the [Algo-providers API](#the-api).
+
+You need help creating your Algo-provider? [Create an issue](https://github.com/debiai/debiai/issues) and we will help you.
+
+After creating your Algo-provider, you can add it to DebiAI by providing the URL of your provider. [Learn more on how to add Algo-providers to DebiAI.](./addingAlgoProviders.md#adding-algo-providers-to-debiai)
diff --git a/documentation/customAlgorithms/algoProviders/easyAlgoProvider.md b/documentation/customAlgorithms/algoProviders/easyAlgoProvider.md
new file mode 100644
index 0000000..94db28e
--- /dev/null
+++ b/documentation/customAlgorithms/algoProviders/easyAlgoProvider.md
@@ -0,0 +1,62 @@
+# Algo-provider python module
+
+The [Algo-provider Python module](https://github.com/debiai/easy-algo-provider) starts a Fast API server that provides a REST API to interact with DebiAI. This is the easiest way to create an Algo-provider for DebiAI.
+
+## Getting started
+
+Install the module with pip:
+
+```bash
+pip install algo-provider
+```
+
+Then, create a Python file with the following content:
+
+```python
+# First define your algorithm following a strict docstring format
+def my_algo1(input1: int, input2: int) -> int:
+ """
+ This is a simple algorithm that adds two numbers together.
+
+ Parameters:
+ input1 (int): The first number to add.
+ input2 (int): The second number to add.
+
+ Returns:
+ int: The sum of the two numbers.
+ """
+ return input1 + input2
+
+# Then create an AlgoProvider object and add your algorithm to it
+from algo_provider import AlgoProvider
+provider = AlgoProvider()
+provider.add_algo(my_algo1)
+
+# Finally, start the server
+provider.start_server()
+```
+
+Run the Python file and your algorithm is now available through the Algo-provider API!
+
+
+
+The content of the docstring will be used to generate Algo descriptions in the DebiAI interface, and the function will be called with the parameters provided by the user. The return value will be sent back to the user and displayed in the DebiAI interface.
+
+## Parameters
+
+You can specify the following parameters when adding an algorithm:
+
+```python
+provider.add_algo(
+ my_algo_3,
+ author="DebiAI",
+ version="1.0.0",
+ creation_date="2024-01-01",
+ update_date="2024-01-01",
+ tags=["Math", "Addition"],
+)
+```
+
+[Algo-provider Python module GitHub page](https://github.com/debiai/easy-algo-provider)
+
+After creating your Algo-provider, you can add it to DebiAI by providing the URL of your provider. [Learn more on how to add Algo-providers to DebiAI.](./addingAlgoProviders.md#adding-algo-providers-to-debiai)
diff --git a/documentation/customAlgorithms/algoProviders/easyAlgoProviderResults.png b/documentation/customAlgorithms/algoProviders/easyAlgoProviderResults.png
new file mode 100644
index 0000000..6790cd7
Binary files /dev/null and b/documentation/customAlgorithms/algoProviders/easyAlgoProviderResults.png differ
diff --git a/documentation/dashboard/algoProviders/implementInBackend.md b/documentation/customAlgorithms/algoProviders/implementInBackend.md
similarity index 89%
rename from documentation/dashboard/algoProviders/implementInBackend.md
rename to documentation/customAlgorithms/algoProviders/implementInBackend.md
index 89d0b4c..a5c6c60 100644
--- a/documentation/dashboard/algoProviders/implementInBackend.md
+++ b/documentation/customAlgorithms/algoProviders/implementInBackend.md
@@ -1,6 +1,6 @@
-# Algorithm in the backend
+# Modify DebiAI to add your own algorithms
-You can insert Python code directly in the DebiAI backend. This is useful if you want to use an algorithm that you have created in Python, but you don't want to host it yourself.
+You can insert Python code directly in the DebiAI backend. This is useful if you want to use an algorithm that you have created in Python, but you don't want to host it yourself, or if you want to contribute to the list of integrated algorithms of DebiAI.
DebiAI will run your Python code when you will run the algorithm from the dashboard. Your python code must respect the a format that is described [here](https://github.com/debiai/algo-provider-python-template/blob/main/algo-api/README.md#response)
diff --git a/documentation/dashboard/algoProviders/algo_providers_menu_1.png b/documentation/customAlgorithms/algo_providers_menu_1.png
similarity index 100%
rename from documentation/dashboard/algoProviders/algo_providers_menu_1.png
rename to documentation/customAlgorithms/algo_providers_menu_1.png
diff --git a/documentation/dashboard/algoProviders/algo_providers_menu_2.png b/documentation/customAlgorithms/algo_providers_menu_2.png
similarity index 100%
rename from documentation/dashboard/algoProviders/algo_providers_menu_2.png
rename to documentation/customAlgorithms/algo_providers_menu_2.png
diff --git a/documentation/dashboard/algoProviders/algo_providers_menu_3.png b/documentation/customAlgorithms/algo_providers_menu_3.png
similarity index 100%
rename from documentation/dashboard/algoProviders/algo_providers_menu_3.png
rename to documentation/customAlgorithms/algo_providers_menu_3.png
diff --git a/documentation/dashboard/algoProviders/algo_providers_menu_4.png b/documentation/customAlgorithms/algo_providers_menu_4.png
similarity index 100%
rename from documentation/dashboard/algoProviders/algo_providers_menu_4.png
rename to documentation/customAlgorithms/algo_providers_menu_4.png
diff --git a/documentation/dashboard/algoProviders/algo_providers_menu_5.png b/documentation/customAlgorithms/algo_providers_menu_5.png
similarity index 100%
rename from documentation/dashboard/algoProviders/algo_providers_menu_5.png
rename to documentation/customAlgorithms/algo_providers_menu_5.png
diff --git a/documentation/dashboard/algoProviders/algo_providers_menu_6.png b/documentation/customAlgorithms/algo_providers_menu_6.png
similarity index 100%
rename from documentation/dashboard/algoProviders/algo_providers_menu_6.png
rename to documentation/customAlgorithms/algo_providers_menu_6.png
diff --git a/documentation/customAlgorithms/howToUseAlgorithms.md b/documentation/customAlgorithms/howToUseAlgorithms.md
new file mode 100644
index 0000000..b9957ad
--- /dev/null
+++ b/documentation/customAlgorithms/howToUseAlgorithms.md
@@ -0,0 +1,35 @@
+# How to use an algorithm from the dashboard
+
+DebiAI allows you to use algorithms (integrated or custom) directly from the dashboard. This is useful if you want to analyze your data with a specific algorithm.
+
+Go to the Algo-providers page from the menu:
+
+
+
+
+
+You will see the list of available algorithms:
+
+
+
+Click on the algorithm you want to use. You will see the description of the algorithm and the inputs it needs:
+
+
+
+Fill the inputs and click on the "Run" button:
+
+
+
+The algorithm will be run and the results will be available in the "Experiments" tab:
+
+In the "Experiments" tab, you can see the results of the algorithm and you can add them to the analysis dashboard data as a new column:
+
+
+
+Once the results are added to the analysis dashboard, you can analyze them like any other data.
+
+Learn more about:
+- [The different integrated algorithms in DebiAI](./integratedAlgorithms.md).
+- [How to add your own algorithms to DebiAI](./algoProviders/).
+- [How to analyze data in DebiAI](../dashboard/)
+
diff --git a/documentation/customAlgorithms/integratedAlgorithms.md b/documentation/customAlgorithms/integratedAlgorithms.md
new file mode 100644
index 0000000..5517be5
--- /dev/null
+++ b/documentation/customAlgorithms/integratedAlgorithms.md
@@ -0,0 +1,12 @@
+# DebiAI integrated Algorithms
+
+DebiAI comes with a set of integrated algorithms that you can use right away.
+If you want to add your own algorithms, check the [Custom algorithms documentation](./README.md). If you want to check the the code of the integrated algorithms, you can find it [here](https://github.com/debiai/debiai/tree/main/debiaiServer/modules/algoProviders/integratedAlgoProvider/algorithms). If you are interested in a specific algorithm, [let us know](https://github.com/debiai/debiai/issues).
+
+## Classification Metric
+
+Calculates the classification error according to the ground truth and the predictions. Useful to evaluate the performance of a classification model. It basically calculates the number of misclassified samples. Finally, the algorithms returns a list of booleans that indicates True if the sample is misclassified and False otherwise.
+
+## Regression Metric
+
+Calculates the regression error according to the ground truth, the predictions and a ceil value. Useful to evaluate the performance of a regression model. It basically calculates the absolute difference between the ground truth and the predictions. Finally, the algorithms returns a list of booleans that indicates True if the error is above the ceil value.
diff --git a/documentation/dashboard/algoProviders/menu.png b/documentation/customAlgorithms/menu.png
similarity index 100%
rename from documentation/dashboard/algoProviders/menu.png
rename to documentation/customAlgorithms/menu.png
diff --git a/documentation/dashboard/README.md b/documentation/dashboard/README.md
index 72c39b4..2822cc5 100644
--- a/documentation/dashboard/README.md
+++ b/documentation/dashboard/README.md
@@ -107,7 +107,7 @@ Besides the widgets, the dashboard has several features that allow you to intera
- [Saving a layout](./layouts/). You can save your current dashboard layout to be able to load it later.
-- [Custom algorithms](./algoProviders/). You can create your own algorithms, use them with the data in the dashboard to generate new analyzable columns.
+- [Custom algorithms](../customAlgorithms/). You can create your own algorithms, use them with the data in the dashboard to generate new analyzable columns.
- [Exporting data](./dataExport/). You can export your data to other tools for annotation or further analysis purposes.
diff --git a/documentation/dashboard/algoProviders/README.md b/documentation/dashboard/algoProviders/README.md
deleted file mode 100644
index 4c5a6bf..0000000
--- a/documentation/dashboard/algoProviders/README.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# Algo-providers, adding custom algorithms to DebiAI
-
-From the DebiAI analysis dashboard and with the analyzed data, you can use some algorithms that can generate metrics. Those generated results can be added as a new column into the analysis dashboard data and be used with the widgets like any other column.
-
-## How to use one algorithm
-
-Go to the Algo-providers page from the menu:
-
-
-
-
-
-You will see the list of available algorithms:
-
-
-
-Click on the algorithm you want to use. You will see the description of the algorithm and the inputs it needs:
-
-
-
-Fill the inputs and click on the "Run" button:
-
-
-
-The algorithm will be run and the results will be available in the "Experiments" tab:
-
-In the "Experiments" tab, you can see the results of the algorithm and you can add them to the analysis dashboard data as a new column:
-
-
-
-## Integrated algorithms
-
-DebiAI comes with a set of algorithms that can be used with the data in the dashboard. You can find the list of available algorithms in the [Integrated algorithms documentation](./integratedAlgorithms.md).
-
-## Custom algorithms
-
-DebiAI allows you to implement your own algorithms. This can be useful if you want to use one that is not available in DebiAI or that is specific to your use case.
-
-### Algorithms description
-
-You will need to describe your algorithm in a Json format and then create the implementation of your algorithm. After that, DebiAI will be able to understand your algorithm and run it.
-
-Here is, for example, the description of a simple moving average algorithm:
-
-```json
-{
- "id": "moving_average",
- "name": "Moving average",
- "description": "Calculate the moving average of a data.",
- "tags": ["calculations"],
- "author": "DebiAI",
- "version": "1.0.0",
- "inputs": [
- {
- "name": "data",
- "description": "The data to calculate the moving average on.",
- "type": "array",
- "arrayType": "number",
- "lengthMin": 1,
- "lengthMax": 100000
- },
- {
- "name": "periods",
- "description": "The number of periods to calculate the moving average on.",
- "type": "number",
- "default": 3,
- "min": 1,
- "max": 100
- }
- ],
- "outputs": [
- {
- "name": "moving_average",
- "description": "The moving average of the data. Same length as the data",
- "type": "array",
- "arrayType": "number"
- }
- ]
-}
-```
-
-As you can see, the input and output of the algorithm are described. This description is used by DebiAI to understand how to run the algorithm and how to display it in the dashboard and what kind of data it needs.
-
-To learn more about the algorithms descriptions, you can read the [Algorithm description documentation](https://github.com/debiai/algo-provider-python-template/blob/main/algo-api/README.md).
-
-### Add your own algorithm
-
-You can add your own algorithms to DebiAI in two ways:
-
-- [Algo-provider Python module](https://github.com/debiai/easy-algo-provider). This is the easiest way to add your own algorithms to DebiAI. You just have to define a Python function that implements your algorithm and the library will take care of the rest.
-
-- [Creating an Algo-provider service](./algoProviders.md). An algo-provider is a simple Web service that provides one or more algorithms. You can create your own algo-provider with any programming language, host it and provide the URL to DebiAI.
-
-- [Inserting Python code in DebiAI](./implementInBackend.md). You can insert Python code directly in the DebiAI backend. This is useful if you want to use an algorithm that you have created in Python, but you don't want to host it yourself.
-
-We are currently working on a way to add algorithms directly from the dashboard, [let us know](https://github.com/debiai/debiai/issues) if you are interested in this or any other feature.
diff --git a/documentation/dashboard/algoProviders/algoProviders.md b/documentation/dashboard/algoProviders/algoProviders.md
deleted file mode 100644
index 4e4929f..0000000
--- a/documentation/dashboard/algoProviders/algoProviders.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Creating an Algo-provider
-
-An algo provider is a service that you have to create that can respond to the algorithms requests of DebiAI. This service can be made in **any language**, can use **any kind algorithms** and can be hosted on **any platform** as long at the DebiAI algo-provider's API is respected.
-
-DebiAI will interact with your algo provider in two ways:
-
-- For getting the list of available algorithms
-- For running an algorithm and getting the results
-
-The [algo-provider Python module](https://github.com/debiai/easy-algo-provider) starts a Fast API server that provides a REST API to interact with DebiAI. This is the easiest way to create an algo provider for DebiAI.
-
-## The API
-
-The Algo-providers API as been described with OpenAPI 3.0.
-
-- [Algo-providers API Swagger documentation](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/debiai/algo-provider-python-template/main/algo-api/OpenAPI/Algo_OpenAPI_V0.yaml)
-- [Alg-providers API yaml file](https://github.com/debiai/algo-provider-python-template/blob/main/algo-api/OpenAPI/Algo_OpenAPI_V0.yaml).
-
-## Getting started
-
-To help you create your first algo provider, we have created an [Algo-provider Python template](https://github.com/debiai/algo-provider-python-template). You can use it as a starting point for your own algo provider.
-
-If you want to create an algo provider in another language, you just need to respect the [Algo-providers API](#the-api).
-
-You need help creating your algo provider? [Create an issue](https://github.com/debiai/debiai/issues) and we will help you.
-
-## Adding your algo provider to DebiAI
-
-Once you have created and deployed your algo provider, you can add it to DebiAI.
-
-To do so, go to the Algo-providers page from the menu:
-
-
-
-And click on the "Add a new algo provider" button:
-
-
-
-You will need to provide the URL of your algo provider. This URL should be the root URL of your algo provider, for example: `https://my-algo-provider.com/`.
-
-
-
-Once you have added your algo provider, you will be able to use the algorithms it provides in the Algorithms tab of the analysis dashboard:
-
-
diff --git a/documentation/dashboard/algoProviders/integratedAlgorithms.md b/documentation/dashboard/algoProviders/integratedAlgorithms.md
deleted file mode 100644
index 2b31fe3..0000000
--- a/documentation/dashboard/algoProviders/integratedAlgorithms.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# DebiAI integrated Algorithms
-
-DebiAI comes with a set of integrated algorithms that you can use right away. If you want to add your own algorithms, check the [Custom algorithms documentation](./README.md).
-
-If you want to check the the code of the integrated algorithms, you can find it [here](https://github.com/debiai/debiai/tree/main/debiaiServer/modules/algoProviders/integratedAlgoProvider/algorithms).
-
-If you are interested in a specific algorithm, [let us know](https://github.com/debiai/debiai/issues).
-
-## List of integrated algorithms
-
-- **Classification Metric**, Calculates the classification error according to the ground truth and the predictions. Useful to evaluate the performance of a classification model. It basically calculates the number of misclassified samples. Finally, the algorithms returns a list of booleans that indicates True if the sample is misclassified and False otherwise.
-
-- **Regression Metric**, Calculates the regression error according to the ground truth, the predictions and a ceil value. Useful to evaluate the performance of a regression model. It basically calculates the absolute difference between the ground truth and the predictions. Finally, the algorithms returns a list of booleans that indicates True if the error is above the ceil value.
diff --git a/documentation/dataInsertion/dataProviders/quickStart.md b/documentation/dataInsertion/dataProviders/quickStart.md
index 66484b8..78816e0 100644
--- a/documentation/dataInsertion/dataProviders/quickStart.md
+++ b/documentation/dataInsertion/dataProviders/quickStart.md
@@ -9,29 +9,29 @@ There are multiple ways to create a DebiAI Data Provider:
title: 'Python module',
description: 'Create a Data Provider from a single Python file',
imageLink: '/install/python.svg',
- elementIdDestination: '_1-debiai-data-provider-python-module-recommended',
+ elementIdDestination: 'debiai-data-provider-python-module-recommended',
tag: 'Recommended'
},
{
title: 'Service templates',
description: 'Generate a Data Provider using a pre-built template',
imageLink: '/install/template.svg',
- elementIdDestination: '_2-data-provider-templates'
+ elementIdDestination: 'data-provider-templates'
},
{
title: 'Custom implementation',
description: 'Build a Data Provider from scratch',
imageLink: '/install/build.svg',
- elementIdDestination: '_3-custom-data-provider-implementation'
+ elementIdDestination: 'custom-data-provider-implementation'
}
]"
/>
-### 1. DebiAI Data Provider Python Module (Recommended)
+### DebiAI Data Provider Python Module (Recommended)
The simplest way to create a Data Provider is by using the [DebiAI Data Provider Python module](https://github.com/debiai/easy-data-provider). This module allows you to define access methods and event handlers within a single Python class.
-### 2. Data Provider Templates
+### Data Provider Templates
To streamline Data Provider creation, we offer **quick-start templates**. Currently, templates are available for:
@@ -39,7 +39,7 @@ To streamline Data Provider creation, we offer **quick-start templates**. Curren
Want support for another language? [Let us know](https://github.com/debiai/data-provider-nodejs-template/issues/new).
-### 3. Custom Data Provider Implementation
+### Custom Data Provider Implementation
You can build your own Data Provider as long as it follows the [DebiAI Data Provider API](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/debiai/data-provider-nodejs-template/main/data-provider-API.yaml).
@@ -48,39 +48,46 @@ You can build your own Data Provider as long as it follows the [DebiAI Data Prov
After creating your Data Provider, you must configure DebiAI to access it:
-::: warning
-**DebiAI must be able to access your Data Provider.**
+---
-- If running locally, use `localhost` as the URL.
-- If hosted externally, use the **public IP address**.
-- When using **Docker**, you may need to use the public IP or `--network host` to access a provider deployed on `localhost`.
- More details: [Docker documentation](https://docs.docker.com/network/host/).
- :::
+### With DebiAI-gui
----
+If you are using the [DebiAI-gui Python package](../../introduction/gettingStarted/installation/README.md#debiai-gui-python-package) to run DebiAI, you can add Data-providers directly as parameters:
+
+```bash
+debiai-gui start -dp http://localhost:4000 http://localhost:8000
+```
-### 1. Connecting via the Dashboard
+DebiAI will automatically connect to the specified Data Providers.
+
+### Connecting via the Dashboard
You can add a Data Provider through the **DebiAI dashboard**:
@@ -97,9 +104,7 @@ You can add a Data Provider through the **DebiAI dashboard**:
**Dashboard-added providers are not persistent.** Restarting DebiAI will remove them. Use **environment variables** or a **configuration file** for persistence.
:::
----
-
-### 2. Connecting via Environment Variables
+### Connecting via Environment Variables
For deployments, you can define environment variables to specify provider URLs.
@@ -133,9 +138,9 @@ services:
- DEBIAI_WEB_DATA_PROVIDER_MyDataProvider2=http://localhost:3010/
```
-For a full list fo environment variables, check the [docker-compose-build.yml](https://github.com/debiai/debiai/blob/main/docker-compose-build.yml) file.
+For a full list fo environment variables, check the [config.env](https://github.com/debiai/DebiAI/blob/main/debiaiServer/config/config.env) file.
-### 3. Connecting via Configuration File
+### Connecting via Configuration File
You can also configure providers in config.ini:
Example `(debiai/debiaiServer/config/config.ini)`:
@@ -148,8 +153,20 @@ MyDataProvider2 = http://localhost:3010/
After editing, restart DebiAI (or rebuild the Docker image if using containers).
-::: tip Priority Order:
-Environment variables override the configuration file settings.
-:::
+::: tip Configuration priority order:
+
+1. DebiAI-gui python module parameters
+2. Environment variables
+3. Configuration file settings.
+ :::
If the provider is accessible and follows the API, DebiAI will list the projects in the dashboard.
+
+::: warning
+**DebiAI must be able to access your Data Provider.**
+
+- If running locally, use `localhost` as the URL.
+- If hosted externally, use the **public IP address**.
+- When using **Docker**, you may need to use the public IP or `--network host` to access a provider deployed on `localhost`.
+ More details: [Docker documentation](https://docs.docker.com/network/host/).
+ :::
diff --git a/documentation/introduction/gettingStarted/installation/README.md b/documentation/introduction/gettingStarted/installation/README.md
index 0d12d0e..afaa872 100644
--- a/documentation/introduction/gettingStarted/installation/README.md
+++ b/documentation/introduction/gettingStarted/installation/README.md
@@ -71,13 +71,20 @@ DebiAI needs a place to store the data, on startup it will ask you to provide a
Debiai will then be available on [http://localhost:3000/](http://localhost:3000/)
-**Parameters**
+### Parameters
```bash
+# Specify the the configuration folder path:
+debiai-gui start --data-folder debiai-data
+
# Start DebiAI on a different port:
debiai-gui start --port 4000
+# Prevent the web browser from opening automatically:
+debiai-gui start --no-browser
+
# Display help:
debiai-gui --help
+debiai-gui start --help
```
## Official Docker image