# 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:
Python module
Create an Algo-provider from a single Python function
Algo-provider templates
Generate an Algo-provider using a pre-built template
Custom implementation
Build an Algo-provider from scratch
Good for contributorsModify the DebiAI backend
Add your algorithm next to the integrated algorithms
# Add your Algo-provider to DebiAI
Once you have created 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.
# 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:
{
"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 (opens new window).