Give complete solution with code for the below project stepwise in docker and docker compose (Automate everything) As a user, I should be able to access APIs associated with any model (Please tell me how it is done in solution):

Project:
AI Toolchain is a collection of tools for quickly building and deploying machine learning models for various use cases. Currently, the toolchain includes a text translation model, and more models may be added in the future. It abstracts the dirty details of how a model works similar to Huggingface and gives a clean API that you can orchestrate at aenter code here BFF level.

Features to be implemented
Abstract the layer of deployment for AI Tools. Anyone should be easily add a new model to the stack without thinking about deployments. We should be able to deploy AI Tools in such a way where each model (every model can be packaged as a container) should be independently scalable. As a user, I should be able to access APIs associated with any model.

Product Set Up
https://github.com/Samagra-Development/ai-tools#setup

Github Information:
ReadME:
AI Toolchain
AI Toolchain is a collection of tools for quickly building and deploying machine learning models for various use cases. Currently, the toolchain includes a text translation model, and more models may be added in the future.

How to Run
To deploy all models, simply execute the deploy.sh script located in the root folder. This script calls the deployment files of each model. Note that the toolchain may switch to using Docker in the future for deployment.

To create a new model class, use the template_batch_model.py file as a starting point. Your new model class should implement the method mentioned in the template file.

To create a new request class, use the template_model_request.py file as a starting point. This class is used to map the incoming request to the data needed by the model.

To add your new model and request to the API, modify the repository dictionary in api.py.

Repository
The repository is structured as follows

Setup
To set up the AI Toolchain environment, follow these steps:

python3 -m venv venv
source venv/bin/activate
pip install poetry
poetry install
quart --app api --debug run
Poetry Fixes
poetry lock --no-update
Contributing
Contributions to AI Toolchain are welcome! To contribute, please follow these guidelines:

Fork the repository and create a new branch for your feature or bug fix.
Write tests for your changes.
Submit a pull request describing your changes and why they are needed.
Thank you for considering contributing to AI Toolchain!

Files:
.github/workflows
Lower case repo name for GH Packages
2 months ago
benchmarks
Fix add test
3 weeks ago
flake8
Fix: module/folder names
2 months ago
src
Merge pull request #100 from rishav-eulb/rishav-eulb-patch-2
last week
.flake8
Fixes: #29
2 months ago
.gitignore
Initial Commit
2 months ago
.gitpod.Dockerfile
Included installation of Git
last week
.gitpod.yml
Corrected .gitpod.yml
last week
Dockerfile
Added Gitpod
last week
README.md
docs: readme updated
last month
api.py
Moved restart and watch functions to separate file
last week
contribution.md
Corrected Gitpod button
last week
deploy.sh
deploy.sh_error
last month
docker-compose.yml
Added Gitpod
last week
poetry.lock
Feat: Reload debug server on changes to src folder
last week
prometheus.yml
add prometheus.yml
2 weeks ago
pyproject.toml
Feat: Reload debug server on changes to src folder
last week
repository_data.json
Feat: Azure translation
3 weeks ago
sample.env
Fix: Add sample env
2 months ago
template_batch_model.py
added repo structure and translation model
2 months ago
template_model_request.py
added repo structure and translation model
2 months ago
test.py
Fix add test
3 weeks ago
watch_folder.py
Moved resta

Dockercompose file:
version: '3'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8000:8000"
    restart: always
    environment:
      - PYTHONUNBUFFERED=1
      - PYTHONDONTWRITEBYTECODE=1
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - AUTH_HEADER=${AUTH_HEADER}
      - AUTH_HEADER_KEY=${AUTH_HEADER_KEY}
  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
  gitpod:
    image: gitpod/workspace-full
    ports:
      - "8888:8888"
    volumes:
      - ./workspace:/workspace