Skip to content

Commit

Permalink
Merge pull request #51 from AlexCHEN-Engineer/alex_dev
Browse files Browse the repository at this point in the history
Add the initial docker file
  • Loading branch information
Cambio ML authored Sep 13, 2023
2 parents 5c29f28 + 19641f1 commit ff3ec5e
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 0 deletions.
14 changes: 14 additions & 0 deletions docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Overview
In this folder, we create the different dockerfiles for using pykoi.

1. `pykoi-cpu`: The base image for the cpu-based usage.
2. `pykoi-cpu-custom`: When you run this docker image, try to modify the `app.py` and mount it when running the docker container.

To run a docker container, we can use the following command:
```bash
docker run -dp 5000:5000 -v $(pwd)/app.py:/app/app.py \
--name alex_test \
pykoi/pykoi-cpu:app
```

Note that we need to keep the exposed port as 5000 (default value) to make the server work.
13 changes: 13 additions & 0 deletions docker/pykoi-cpu-custom/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM pykoi/pykoi-cpu:base

# set the working directory in the container
WORKDIR /app

# copy the content
COPY . /app

# Expose the port on which the app will be running
EXPOSE 5000

# For dev
CMD ["python", "app.py"]
33 changes: 33 additions & 0 deletions docker/pykoi-cpu-custom/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
"""Demo for the chatbot application using OpenAI endpoint."""
import pykoi

##########################################################
# Creating an OpenAI model (requires an OpenAI API key) #
##########################################################
# enter openai api key here
api_key = "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"

# Creating an OpenAI model
model = pykoi.ModelFactory.create_model(
model_source="openai",
api_key=api_key)

#####################################
# Creating a chatbot with the model #
#####################################
database = pykoi.QuestionAnswerDatabase(debug=True)
chatbot = pykoi.Chatbot(model=model, feedback="vote")
# chatbot = pykoi.Chatbot(model=model, feedback="rank")
dashboard = pykoi.Dashboard(database=database)

###########################################################
# Starting the application and add chatbot as a component #
###########################################################
# Create the application
# app = pykoi.Application(debug=False, share=True)
app = pykoi.Application(
debug=False,
share=True)
app.add_component(chatbot)
app.add_component(dashboard)
app.run()
27 changes: 27 additions & 0 deletions docker/pykoi-cpu/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
FROM python:3.10
LABEL maintainer="Pykio Team"
LABEL repository="Pykoi"

ENV DEBIAN_FRONTEND=noninteractive

RUN apt update && \
apt install -y bash \
build-essential \
git \
git-lfs \
curl \
ca-certificates \
libsndfile1-dev

# make sure to use venv
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

# pre-install the heavy dependencies (these can later be overridden by the deps from setup.py)
# follow the instructions here: https://cloud.google.com/tpu/docs/run-in-container#train_a_jax_model_in_a_docker_container
RUN python -m pip install --no-cache-dir --upgrade pip && \
python -m pip install --upgrade --no-cache-dir \
pykoi

CMD ["/bin/bash"]

31 changes: 31 additions & 0 deletions docker/pykoi-gpu/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM python:3.10
LABEL maintainer="Pykio Team"
LABEL repository="Pykoi"

ENV DEBIAN_FRONTEND=noninteractive

RUN apt update && \
apt install -y bash \
build-essential \
git \
git-lfs \
curl \
ca-certificates \
libsndfile1-dev \
libgl1

# make sure to use venv
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

# pre-install the heavy dependencies (these can later be overridden by the deps from setup.py)
RUN python3 -m pip install --no-cache-dir --upgrade pip && \
python3 -m pip install --no-cache-dir \
torch \
torchvision \
torchaudio && \
python3 -m pip install --no-cache-dir \
pykoi

CMD ["/bin/bash"]

0 comments on commit ff3ec5e

Please sign in to comment.