feat: switch default docker image to rust based (#175)

* chore: change rust docker image to default

* update README for rust core

* improve doc

* Update README.md

* update

* Update README.md
support-coreml
Meng Zhang 2023-05-31 16:27:55 -07:00 committed by GitHub
parent bd5fd0592a
commit 5aa2370e19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 41 deletions

View File

@ -79,7 +79,7 @@ jobs:
- name: Generate image name - name: Generate image name
run: | run: |
echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}/rust" >>${GITHUB_ENV} echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV}
- uses: int128/docker-build-cache-config-action@v1 - uses: int128/docker-build-cache-config-action@v1
id: cache id: cache
@ -97,9 +97,17 @@ jobs:
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: | tags: |
ghcr.io/${{ env.IMAGE_NAME }}:latest ghcr.io/${{ env.IMAGE_NAME }}:latest
${{ env.IMAGE_NAME }}:latest
cache-from: ${{ steps.cache.outputs.cache-from }} cache-from: ${{ steps.cache.outputs.cache-from }}
cache-to: ${{ steps.cache.outputs.cache-to }} cache-to: ${{ steps.cache.outputs.cache-to }}
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: tabbyml/tabby
release-binary: release-binary:
needs: tests needs: tests
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}

View File

@ -33,8 +33,8 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \
FROM ghcr.io/opennmt/ctranslate2:3.14.0-ubuntu20.04-cuda11.2 FROM ghcr.io/opennmt/ctranslate2:3.14.0-ubuntu20.04-cuda11.2
ENV TABBY_ROOT=/opt/tabby COPY --from=builder /opt/tabby /opt/tabby
COPY --from=builder $TABBY_ROOT $TABBY_ROOT ENV TABBY_ROOT=/data
ENTRYPOINT ["/opt/tabby/bin/tabby"] ENTRYPOINT ["/opt/tabby/bin/tabby"]

View File

@ -36,56 +36,36 @@ Self-hosted AI coding assistant. An opensource / on-prem alternative to GitHub C
### Docker ### Docker
**NOTE**: Tabby requires [Pascal or newer](https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/) NVIDIA GPU. We recommend adding the following aliases to your `.bashrc` or `.zshrc` file:
Before running Tabby, ensure the installation of the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html). ```shell
We suggest using NVIDIA drivers that are compatible with CUDA version 11.8 or higher. # Save aliases to bashrc / zshrc
```bash alias tabby="docker run -u $(id -u) -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby"
# Create data dir and grant owner to 1000 (Tabby run as uid 1000 in container)
mkdir -p data/hf_cache && chown -R 1000 data
docker run \ # Alias for GPU (requires NVIDIA Container Toolkit)
--gpus all \ alias tabby-gpu="docker run --gpus all -u $(id -u) -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby"
-it --rm \
-v "/$(pwd)/data:/data" \
-v "/$(pwd)/data/hf_cache:/home/app/.cache/huggingface" \
-p 5000:5000 \
-e MODEL_NAME=TabbyML/J-350M \
-e MODEL_BACKEND=triton \
--name=tabby \
tabbyml/tabby
``` ```
You can then query the server using `/v1/completions` endpoint: After adding these aliases, you can use the `tabby` command as usual. Here are some examples of its usage:
```bash
curl -X POST http://localhost:5000/v1/completions -H 'Content-Type: application/json' --data '{ ```shell
"prompt": "def binarySearch(arr, left, right, x):\n mid = (left +" # Usage
}' tabby --help
# Download model
tabby download --model TabbyML/J-350M
# Serve the model
tabby serve --model TabbyML/J-350M
``` ```
We also provides an interactive playground in admin panel [localhost:5000/_admin](http://localhost:5000/_admin)
### Skypilot
See [deployment/skypilot/README.md](./deployment/skypilot/README.md)
## Getting Started: Client ## Getting Started: Client
We offer multiple methods to connect to Tabby Server, including using OpenAPI and editor extensions. We offer multiple methods to connect to Tabby Server, including using OpenAPI and editor extensions.
### API ### API
Tabby has opened a FastAPI server at [localhost:5000](https://localhost:5000), which includes an OpenAPI documentation of the HTTP API. The same API documentation is also hosted at https://tabbyml.github.io/tabby Tabby has opened a FastAPI server at [localhost:8080](https://localhost:8080), which includes an OpenAPI documentation of the HTTP API. The same API documentation is also hosted at https://tabbyml.github.io/tabby
### Editor Extensions ### Editor Extensions
* [VSCode Extension](./clients/vscode) Install from the [marketplace](https://marketplace.visualstudio.com/items?itemName=TabbyML.vscode-tabby), or [open-vsx.org](https://open-vsx.org/extension/TabbyML/vscode-tabby) * [VSCode Extension](./clients/vscode) Install from the [marketplace](https://marketplace.visualstudio.com/items?itemName=TabbyML.vscode-tabby), or [open-vsx.org](https://open-vsx.org/extension/TabbyML/vscode-tabby)
* [VIM Extension](./clients/vim) * [VIM Extension](./clients/vim)
## Development
Go to `development` directory.
```bash
make dev
```
or
```bash
make dev-triton # Turn on triton backend (for cuda env developers)
```