From c14201dc0f7c544232e5f894726f8ca4d92424f7 Mon Sep 17 00:00:00 2001 From: Niek van der Maas Date: Wed, 12 Apr 2023 11:53:39 +0200 Subject: [PATCH 1/4] Add Dockerfile + build workflow --- .github/workflows/publish.yaml | 31 ++++++++++++++++++++++++++++++- Dockerfile | 10 ++++++++++ README.md | 8 ++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 92b6e5bd56..16a6012f9f 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -28,4 +28,33 @@ jobs: # if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@release/v1 with: - password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file + password: ${{ secrets.PYPI_API_TOKEN }} + + docker: + name: Build and push Docker image + runs-on: ubuntu-latest + needs: build-n-publish + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v4 + with: + push: true # push to registry + pull: true # always fetch the latest base images + platforms: linux/amd64,linux/arm64 # build for both amd64 and arm64 + tags: ghcr.io/abetlen/llama-cpp-python:latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..b500a0bd60 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3-buster + +# We need to set the host to 0.0.0.0 to allow outside access +ENV HOST 0.0.0.0 + +# Install the package +RUN pip install llama-cpp-python[server] + +# Run the server +CMD python3 -m llama_cpp.server \ No newline at end of file diff --git a/README.md b/README.md index 2c8c0a56ca..81ad7234d6 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,14 @@ python3 -m llama_cpp.server Navigate to [http://localhost:8000/docs](http://localhost:8000/docs) to see the OpenAPI documentation. +## Docker image + +A Docker image is available on [GHCR](https://ghcr.io/abetlen/llama-cpp-python). To run the server: + +```bash +docker run --rm -it -p8000:8000 -v /path/to/models:/models -eMODEL=/models/ggml-vicuna-7b-4bit.bin ghcr.io/abetlen/llama-cpp-python:latest +``` + ## Low-level API The low-level API is a direct `ctypes` binding to the C API provided by `llama.cpp`. From 9ce8146231d77e9aceb8a0f2c0f2721755640eed Mon Sep 17 00:00:00 2001 From: Niek van der Maas Date: Wed, 12 Apr 2023 11:56:16 +0200 Subject: [PATCH 2/4] More generic model name --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 81ad7234d6..bcb25e3124 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ Navigate to [http://localhost:8000/docs](http://localhost:8000/docs) to see the A Docker image is available on [GHCR](https://ghcr.io/abetlen/llama-cpp-python). To run the server: ```bash -docker run --rm -it -p8000:8000 -v /path/to/models:/models -eMODEL=/models/ggml-vicuna-7b-4bit.bin ghcr.io/abetlen/llama-cpp-python:latest +docker run --rm -it -p8000:8000 -v /path/to/models:/models -eMODEL=/models/ggml-model-name.bin ghcr.io/abetlen/llama-cpp-python:latest ``` ## Low-level API From 59b37bbbd2fb2a69788c5de6bd103439befbc845 Mon Sep 17 00:00:00 2001 From: Niek van der Maas Date: Sat, 15 Apr 2023 20:24:46 +0200 Subject: [PATCH 3/4] Support openblas --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b500a0bd60..5bd28b7924 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM python:3-buster ENV HOST 0.0.0.0 # Install the package -RUN pip install llama-cpp-python[server] +RUN apt update && apt install -y libopenblas-dev && LLAMA_OPENBLAS=1 pip install llama-cpp-python[server] # Run the server CMD python3 -m llama_cpp.server \ No newline at end of file From 8476b325f127d66477424f6767c3330fa520728e Mon Sep 17 00:00:00 2001 From: Niek van der Maas Date: Mon, 24 Apr 2023 09:54:38 +0200 Subject: [PATCH 4/4] Change to bullseye --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5bd28b7924..ade4ac93eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3-buster +FROM python:3-bullseye # We need to set the host to 0.0.0.0 to allow outside access ENV HOST 0.0.0.0