Compare commits

..

No commits in common. "ef4b04b30bf7fc1edcf9efc59830e82f524a39c2" and "70cf49d0a2317769d883ae882c146efbb915f5c0" have entirely different histories.

3 changed files with 10 additions and 13 deletions

View File

@ -1,7 +1,4 @@
FROM python:3.11-slim AS project_env FROM python:3.11-slim as project_env
# Install curl
RUN apt-get update && apt-get install -y curl
# Set the working directory in the container # Set the working directory in the container
WORKDIR /app WORKDIR /app

View File

@ -1,6 +1,6 @@
# Basic Price Prediction Node # Basic Price Prediction Node
This repository provides an example [Allora network](https://docs.allora.network/) worker node, designed to offer price predictions. The primary objective is to demonstrate the use of a basic inference model running within a dedicated container, showcasing its integration with the Allora network infrastructure to contribute valuable inferences. This repository provides an example Allora network worker node, designed to offer price predictions. The primary objective is to demonstrate the use of a basic inference model running within a dedicated container, showcasing its integration with the Allora network infrastructure to contribute valuable inferences.
## Components ## Components
@ -26,25 +26,25 @@ A complete working example is provided in the `docker-compose.yml` file.
Here are the currently accepted configurations: Here are the currently accepted configurations:
- TOKEN - TOKEN
Must be one in ('ETH','SOL','BTC','BNB','ARB'). Must be one in ['ETH','SOL','BTC','BNB','ARB'].
Note: if you are using `Binance` as the data provider, any token could be used. Note: if you are using `Binance` as the data provider, any token could be used.
If you are using Coingecko, you should add its `coin_id` in the [token_map here](https://github.com/allora-network/basic-coin-prediction-node/blob/main/updater.py#L107). Find [more info here](https://docs.coingecko.com/reference/simple-price) and the [list here](https://docs.google.com/spreadsheets/d/1wTTuxXt8n9q7C4NDXqQpI3wpKu1_5bGVmP9Xz0XGSyU/edit?usp=sharing). If you are using Coingecko, you should add its `coin_id` in the [token_map here](https://github.com/allora-network/basic-coin-prediction-node/blob/main/updater.py#L107). Find [more info here](https://docs.coingecko.com/reference/simple-price) and the [list here](https://docs.google.com/spreadsheets/d/1wTTuxXt8n9q7C4NDXqQpI3wpKu1_5bGVmP9Xz0XGSyU/edit?usp=sharing).
- TRAINING_DAYS - TRAINING_DAYS
Must be an `int` >= 1. Must be an `int` >= 1.
Represents how many days of historical data to use. Represents how many days of historical data to use.
- TIMEFRAME - TIMEFRAME
This should be in this form: `10min`, `1h`, `1d`, `1m`, etc. This should be in this form: `10m`, `1h`, `1d`, etc.
Note: For Coingecko, Data granularity (candle's body) is automatic - [see here](https://docs.coingecko.com/reference/coins-id-ohlc). To avoid downsampling, it is recommanded to use with Coingecko: Note: For Coingecko, Data granularity (candle's body) is automatic - [see here](https://docs.coingecko.com/reference/coins-id-ohlc). To avoid downsampling, it is recommanded to use with Coingecko:
- TIMEFRAME >= 30m if TRAINING_DAYS <= 2 - TIMEFRAME >= 30m if TRAINING_DAYS <= 2
- TIMEFRAME >= 4h if TRAINING_DAYS <= 30 - TIMEFRAME >= 4h if TRAINING_DAYS <= 30
- TIMEFRAME >= 4d if TRAINING_DAYS >= 31 - TIMEFRAME >= 4d if TRAINING_DAYS >= 31
- MODEL - MODEL
Must be one in ('LinearRegression','SVR','KernelRidge','BayesianRidge'). Must be one in ['LinearRegression','SVR','KernelRidge','BayesianRidge'].
You can easily add support for any other models by [adding it here](https://github.com/allora-network/basic-coin-prediction-node/blob/main/model.py#L133). You can easily add support for any other models by [adding it here](https://github.com/allora-network/basic-coin-prediction-node/blob/main/model.py#L133).
- REGION - REGION
Used for the Binance API. This should be in this form: `US`, `EU`, etc. Must be `EU` or `US` - it is used for the Binance API.
- DATA_PROVIDER - DATA_PROVIDER
Must be `binance` or `coingecko`. Feel free to add support for other data providers to personalize your model! Must be `Binance` or `Coingecko`. Feel free to add support for other data providers to personalize your model!
- CG_API_KEY - CG_API_KEY
This is your `Coingecko` API key, if you've set `DATA_PROVIDER=coingecko`. This is your `Coingecko` API key, if you've set `DATA_PROVIDER=coingecko`.

View File

@ -1,6 +1,6 @@
services: services:
inference: inference:
container_name: inference container_name: inference-basic-eth-pred
env_file: env_file:
- .env - .env
build: . build: .
@ -8,7 +8,7 @@ services:
ports: ports:
- "8000:8000" - "8000:8000"
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://inference:8000/inference/${TOKEN}"] test: ["CMD", "curl", "-f", "http://localhost:8000/inference/${TOKEN}"]
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 12 retries: 12
@ -16,7 +16,7 @@ services:
- ./inference-data:/app/data - ./inference-data:/app/data
updater: updater:
container_name: updater container_name: updater-basic-eth-pred
build: . build: .
environment: environment:
- INFERENCE_API_ADDRESS=http://inference:8000 - INFERENCE_API_ADDRESS=http://inference:8000