diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..a2bb3a4 --- /dev/null +++ b/docker/README.md @@ -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. \ No newline at end of file diff --git a/docker/pykoi-cpu-custom/Dockerfile b/docker/pykoi-cpu-custom/Dockerfile new file mode 100644 index 0000000..f4431fa --- /dev/null +++ b/docker/pykoi-cpu-custom/Dockerfile @@ -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"] diff --git a/docker/pykoi-cpu-custom/app.py b/docker/pykoi-cpu-custom/app.py new file mode 100644 index 0000000..6f46654 --- /dev/null +++ b/docker/pykoi-cpu-custom/app.py @@ -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() diff --git a/docker/pykoi-cpu/Dockerfile b/docker/pykoi-cpu/Dockerfile new file mode 100644 index 0000000..6dfed62 --- /dev/null +++ b/docker/pykoi-cpu/Dockerfile @@ -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"] + diff --git a/docker/pykoi-gpu/Dockerfile b/docker/pykoi-gpu/Dockerfile new file mode 100644 index 0000000..8e07f3c --- /dev/null +++ b/docker/pykoi-gpu/Dockerfile @@ -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"] +