forked from open-webui/open-webui
		
	Merge pull request #1495 from cheahjs/feat/parallelize-docker-build
feat: parallelize docker build
This commit is contained in:
		
						commit
						a85e93f1f9
					
				
					 2 changed files with 352 additions and 55 deletions
				
			
		
							
								
								
									
										341
									
								
								.github/workflows/docker-build.yaml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										341
									
								
								.github/workflows/docker-build.yaml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,5 @@ | |||
| name: Create and publish Docker images with specific build args | ||||
| 
 | ||||
| # Configures this workflow to run every time a change is pushed to the branch called `release`. | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|   push: | ||||
|  | @ -10,30 +9,39 @@ on: | |||
|     tags: | ||||
|       - v* | ||||
| 
 | ||||
| # Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. | ||||
| env: | ||||
|   REGISTRY: ghcr.io | ||||
|   IMAGE_NAME: ${{ github.repository }} | ||||
|   FULL_IMAGE_NAME: ghcr.io/${{ github.repository }} | ||||
| 
 | ||||
| # There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. | ||||
| jobs: | ||||
|   build-and-push-image: | ||||
|   build-main-image: | ||||
|     runs-on: ubuntu-latest | ||||
|     # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. | ||||
|     permissions: | ||||
|       contents: read | ||||
|       packages: write | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         platform: | ||||
|           - linux/amd64 | ||||
|           - linux/arm64 | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Prepare | ||||
|         run: | | ||||
|           platform=${{ matrix.platform }} | ||||
|           echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV | ||||
| 
 | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v4 | ||||
|       # Required for multi architecture build | ||||
| 
 | ||||
|       - name: Set up QEMU | ||||
|         uses: docker/setup-qemu-action@v3 | ||||
|       # Required for multi architecture build | ||||
| 
 | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v3 | ||||
|       # Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here. | ||||
| 
 | ||||
|       - name: Log in to the Container registry | ||||
|         uses: docker/login-action@v3 | ||||
|         with: | ||||
|  | @ -42,10 +50,10 @@ jobs: | |||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Extract metadata for Docker images (default latest tag) | ||||
|         id: meta-latest | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||||
|           images: ${{ env.FULL_IMAGE_NAME }} | ||||
|           tags: | | ||||
|             type=ref,event=branch | ||||
|             type=ref,event=tag | ||||
|  | @ -55,31 +63,320 @@ jobs: | |||
|           flavor: | | ||||
|             latest=${{ github.ref == 'refs/heads/main' }} | ||||
| 
 | ||||
|       - name: Build and push Docker image (latest) | ||||
|       - name: Build Docker image (latest) | ||||
|         uses: docker/build-push-action@v5 | ||||
|         id: build | ||||
|         with: | ||||
|           context: . | ||||
|           push: true | ||||
|           platforms: linux/amd64,linux/arm64 | ||||
|           tags: ${{ steps.meta-latest.outputs.tags }} | ||||
|           labels: ${{ steps.meta-latest.outputs.labels }} | ||||
|           platforms: ${{ matrix.platform }} | ||||
|           labels: ${{ steps.meta.outputs.labels }} | ||||
|           outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true | ||||
|           cache-from: type=gha | ||||
|           cache-to: type=gha,mode=max | ||||
| 
 | ||||
|       - name: Build and push Docker image with CUDA | ||||
|       - name: Export digest | ||||
|         run: | | ||||
|           mkdir -p /tmp/digests | ||||
|           digest="${{ steps.build.outputs.digest }}" | ||||
|           touch "/tmp/digests/${digest#sha256:}" | ||||
| 
 | ||||
|       - name: Upload digest | ||||
|         uses: actions/upload-artifact@v4 | ||||
|         with: | ||||
|           name: digests-main-${{ env.PLATFORM_PAIR }} | ||||
|           path: /tmp/digests/* | ||||
|           if-no-files-found: error | ||||
|           retention-days: 1 | ||||
| 
 | ||||
|   build-cuda-image: | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       contents: read | ||||
|       packages: write | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         platform: | ||||
|           - linux/amd64 | ||||
|           - linux/arm64 | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Prepare | ||||
|         run: | | ||||
|           platform=${{ matrix.platform }} | ||||
|           echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV | ||||
| 
 | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v4 | ||||
| 
 | ||||
|       - name: Set up QEMU | ||||
|         uses: docker/setup-qemu-action@v3 | ||||
| 
 | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v3 | ||||
| 
 | ||||
|       - name: Log in to the Container registry | ||||
|         uses: docker/login-action@v3 | ||||
|         with: | ||||
|           registry: ${{ env.REGISTRY }} | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Extract metadata for Docker images (default latest tag) | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ${{ env.FULL_IMAGE_NAME }} | ||||
|           tags: | | ||||
|             type=ref,event=branch | ||||
|             type=ref,event=tag | ||||
|             type=sha,prefix=git- | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}}.{{minor}} | ||||
|             type=raw,enable=${{ github.ref == 'refs/heads/main' }},prefix=,suffix=,value=cuda | ||||
|           flavor: | | ||||
|             latest=${{ github.ref == 'refs/heads/main' }} | ||||
|             suffix=-cuda,onlatest=true | ||||
| 
 | ||||
|       - name: Build Docker image (cuda) | ||||
|         uses: docker/build-push-action@v5 | ||||
|         if: github.ref == 'refs/heads/main' | ||||
|         id: build | ||||
|         with: | ||||
|           context: . | ||||
|           push: true | ||||
|           platforms: linux/amd64,linux/arm64 | ||||
|           tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:cuda | ||||
|           platforms: ${{ matrix.platform }} | ||||
|           labels: ${{ steps.meta.outputs.labels }} | ||||
|           outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true | ||||
|           cache-from: type=gha | ||||
|           cache-to: type=gha,mode=max | ||||
|           build-args: USE_CUDA=true | ||||
| 
 | ||||
|       - name: Build and push Docker image with Ollama | ||||
|       - name: Export digest | ||||
|         run: | | ||||
|           mkdir -p /tmp/digests | ||||
|           digest="${{ steps.build.outputs.digest }}" | ||||
|           touch "/tmp/digests/${digest#sha256:}" | ||||
| 
 | ||||
|       - name: Upload digest | ||||
|         uses: actions/upload-artifact@v4 | ||||
|         with: | ||||
|           name: digests-cuda-${{ env.PLATFORM_PAIR }} | ||||
|           path: /tmp/digests/* | ||||
|           if-no-files-found: error | ||||
|           retention-days: 1 | ||||
| 
 | ||||
|   build-ollama-image: | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       contents: read | ||||
|       packages: write | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         platform: | ||||
|           - linux/amd64 | ||||
|           - linux/arm64 | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Prepare | ||||
|         run: | | ||||
|           platform=${{ matrix.platform }} | ||||
|           echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV | ||||
| 
 | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v4 | ||||
| 
 | ||||
|       - name: Set up QEMU | ||||
|         uses: docker/setup-qemu-action@v3 | ||||
| 
 | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v3 | ||||
| 
 | ||||
|       - name: Log in to the Container registry | ||||
|         uses: docker/login-action@v3 | ||||
|         with: | ||||
|           registry: ${{ env.REGISTRY }} | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Extract metadata for Docker images (ollama tag) | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ${{ env.FULL_IMAGE_NAME }} | ||||
|           tags: | | ||||
|             type=ref,event=branch | ||||
|             type=ref,event=tag | ||||
|             type=sha,prefix=git- | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}}.{{minor}} | ||||
|             type=raw,enable=${{ github.ref == 'refs/heads/main' }},prefix=,suffix=,value=ollama | ||||
|           flavor: | | ||||
|             latest=${{ github.ref == 'refs/heads/main' }} | ||||
|             suffix=-ollama,onlatest=true | ||||
| 
 | ||||
|       - name: Build Docker image (ollama) | ||||
|         uses: docker/build-push-action@v5 | ||||
|         if: github.ref == 'refs/heads/main' | ||||
|         id: build | ||||
|         with: | ||||
|           context: . | ||||
|           push: true | ||||
|           platforms: linux/amd64,linux/arm64 | ||||
|           tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:ollama | ||||
|           platforms: ${{ matrix.platform }} | ||||
|           labels: ${{ steps.meta.outputs.labels }} | ||||
|           outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true | ||||
|           cache-from: type=gha | ||||
|           cache-to: type=gha,mode=max | ||||
|           build-args: USE_OLLAMA=true | ||||
| 
 | ||||
|       - name: Export digest | ||||
|         run: | | ||||
|           mkdir -p /tmp/digests | ||||
|           digest="${{ steps.build.outputs.digest }}" | ||||
|           touch "/tmp/digests/${digest#sha256:}" | ||||
| 
 | ||||
|       - name: Upload digest | ||||
|         uses: actions/upload-artifact@v4 | ||||
|         with: | ||||
|           name: digests-ollama-${{ env.PLATFORM_PAIR }} | ||||
|           path: /tmp/digests/* | ||||
|           if-no-files-found: error | ||||
|           retention-days: 1 | ||||
| 
 | ||||
|   merge-main-images: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [ build-main-image ] | ||||
|     steps: | ||||
|       - name: Download digests | ||||
|         uses: actions/download-artifact@v4 | ||||
|         with: | ||||
|           pattern: digests-main-* | ||||
|           path: /tmp/digests | ||||
|           merge-multiple: true | ||||
| 
 | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v3 | ||||
| 
 | ||||
|       - name: Log in to the Container registry | ||||
|         uses: docker/login-action@v3 | ||||
|         with: | ||||
|           registry: ${{ env.REGISTRY }} | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Extract metadata for Docker images (default latest tag) | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ${{ env.FULL_IMAGE_NAME }} | ||||
|           tags: | | ||||
|             type=ref,event=branch | ||||
|             type=ref,event=tag | ||||
|             type=sha,prefix=git- | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}}.{{minor}} | ||||
|           flavor: | | ||||
|             latest=${{ github.ref == 'refs/heads/main' }} | ||||
| 
 | ||||
|       - name: Create manifest list and push | ||||
|         working-directory: /tmp/digests | ||||
|         run: | | ||||
|           docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ | ||||
|             $(printf '${{ env.FULL_IMAGE_NAME }}@sha256:%s ' *) | ||||
| 
 | ||||
|       - name: Inspect image | ||||
|         run: | | ||||
|           docker buildx imagetools inspect ${{ env.FULL_IMAGE_NAME }}:${{ steps.meta.outputs.version }} | ||||
| 
 | ||||
| 
 | ||||
|   merge-cuda-images: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [ build-cuda-image ] | ||||
|     steps: | ||||
|       - name: Download digests | ||||
|         uses: actions/download-artifact@v4 | ||||
|         with: | ||||
|           pattern: digests-cuda-* | ||||
|           path: /tmp/digests | ||||
|           merge-multiple: true | ||||
| 
 | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v3 | ||||
| 
 | ||||
|       - name: Log in to the Container registry | ||||
|         uses: docker/login-action@v3 | ||||
|         with: | ||||
|           registry: ${{ env.REGISTRY }} | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Extract metadata for Docker images (default latest tag) | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ${{ env.FULL_IMAGE_NAME }} | ||||
|           tags: | | ||||
|             type=ref,event=branch | ||||
|             type=ref,event=tag | ||||
|             type=sha,prefix=git- | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}}.{{minor}} | ||||
|           flavor: | | ||||
|             latest=${{ github.ref == 'refs/heads/main' }} | ||||
|             suffix=-cuda,onlatest=true | ||||
| 
 | ||||
|       - name: Create manifest list and push | ||||
|         working-directory: /tmp/digests | ||||
|         run: | | ||||
|           docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ | ||||
|             $(printf '${{ env.FULL_IMAGE_NAME }}@sha256:%s ' *) | ||||
| 
 | ||||
|       - name: Inspect image | ||||
|         run: | | ||||
|           docker buildx imagetools inspect ${{ env.FULL_IMAGE_NAME }}:${{ steps.meta.outputs.version }} | ||||
| 
 | ||||
|   merge-ollama-images: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [ build-ollama-image ] | ||||
|     steps: | ||||
|       - name: Download digests | ||||
|         uses: actions/download-artifact@v4 | ||||
|         with: | ||||
|           pattern: digests-ollama-* | ||||
|           path: /tmp/digests | ||||
|           merge-multiple: true | ||||
| 
 | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v3 | ||||
| 
 | ||||
|       - name: Log in to the Container registry | ||||
|         uses: docker/login-action@v3 | ||||
|         with: | ||||
|           registry: ${{ env.REGISTRY }} | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Extract metadata for Docker images (default ollama tag) | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ${{ env.FULL_IMAGE_NAME }} | ||||
|           tags: | | ||||
|             type=ref,event=branch | ||||
|             type=ref,event=tag | ||||
|             type=sha,prefix=git- | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}}.{{minor}} | ||||
|           flavor: | | ||||
|             latest=${{ github.ref == 'refs/heads/main' }} | ||||
|             suffix=-ollama,onlatest=true | ||||
| 
 | ||||
|       - name: Create manifest list and push | ||||
|         working-directory: /tmp/digests | ||||
|         run: | | ||||
|           docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ | ||||
|             $(printf '${{ env.FULL_IMAGE_NAME }}@sha256:%s ' *) | ||||
| 
 | ||||
|       - name: Inspect image | ||||
|         run: | | ||||
|           docker buildx imagetools inspect ${{ env.FULL_IMAGE_NAME }}:${{ steps.meta.outputs.version }} | ||||
|  |  | |||
							
								
								
									
										66
									
								
								Dockerfile
									
										
									
									
									
								
							
							
						
						
									
										66
									
								
								Dockerfile
									
										
									
									
									
								
							|  | @ -12,7 +12,7 @@ ARG USE_CUDA_VER=cu121 | |||
| ARG USE_EMBEDDING_MODEL=all-MiniLM-L6-v2 | ||||
| 
 | ||||
| ######## WebUI frontend ######## | ||||
| FROM node:21-alpine3.19 as build | ||||
| FROM --platform=$BUILDPLATFORM node:21-alpine3.19 as build | ||||
| 
 | ||||
| WORKDIR /app | ||||
| 
 | ||||
|  | @ -67,43 +67,43 @@ ENV RAG_EMBEDDING_MODEL="$USE_EMBEDDING_MODEL_DOCKER" \ | |||
| #### Other models ########################################################## | ||||
| 
 | ||||
| WORKDIR /app/backend | ||||
| 
 | ||||
| RUN if [ "$USE_OLLAMA" = "true" ]; then \ | ||||
|         apt-get update && \ | ||||
|         # Install pandoc and netcat | ||||
|         apt-get install -y --no-install-recommends pandoc netcat-openbsd && \ | ||||
|         # for RAG OCR | ||||
|         apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && \ | ||||
|         # install helper tools | ||||
|         apt-get install -y --no-install-recommends curl && \ | ||||
|         # install ollama | ||||
|         curl -fsSL https://ollama.com/install.sh | sh && \ | ||||
|         # cleanup | ||||
|         rm -rf /var/lib/apt/lists/*; \ | ||||
|     else \ | ||||
|         apt-get update && \ | ||||
|         # Install pandoc and netcat | ||||
|         apt-get install -y --no-install-recommends pandoc netcat-openbsd && \ | ||||
|         # for RAG OCR | ||||
|         apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && \ | ||||
|         # cleanup | ||||
|         rm -rf /var/lib/apt/lists/*; \ | ||||
|     fi | ||||
| 
 | ||||
| # install python dependencies | ||||
| COPY ./backend/requirements.txt ./requirements.txt | ||||
| 
 | ||||
| RUN if [ "$USE_CUDA" = "true" ]; then \ | ||||
|     # If you use CUDA the whisper and embedding modell will be downloaded on first use | ||||
|     pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/$USE_CUDA_DOCKER_VER --no-cache-dir && \ | ||||
|     pip3 install -r requirements.txt --no-cache-dir && \ | ||||
|     python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])" && \ | ||||
|     python -c "import os; from chromadb.utils import embedding_functions; sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name=os.environ['RAG_EMBEDDING_MODEL'], device='cpu')"; \ | ||||
|         # If you use CUDA the whisper and embedding model will be downloaded on first use | ||||
|         pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/$USE_CUDA_DOCKER_VER --no-cache-dir && \ | ||||
|         pip3 install -r requirements.txt --no-cache-dir && \ | ||||
|         python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])" && \ | ||||
|         python -c "import os; from chromadb.utils import embedding_functions; sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name=os.environ['RAG_EMBEDDING_MODEL'], device='cpu')"; \ | ||||
|     else \ | ||||
|     pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir && \ | ||||
|     pip3 install -r requirements.txt --no-cache-dir && \ | ||||
|     python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])" && \ | ||||
|     python -c "import os; from chromadb.utils import embedding_functions; sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name=os.environ['RAG_EMBEDDING_MODEL'], device='cpu')"; \ | ||||
|     fi | ||||
| 
 | ||||
| 
 | ||||
| RUN if [ "$USE_OLLAMA" = "true" ]; then \ | ||||
|     apt-get update && \ | ||||
|     # Install pandoc and netcat | ||||
|     apt-get install -y --no-install-recommends pandoc netcat-openbsd && \ | ||||
|     # for RAG OCR | ||||
|     apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && \ | ||||
|     # install helper tools | ||||
|     apt-get install -y --no-install-recommends curl && \ | ||||
|     # install ollama | ||||
|     curl -fsSL https://ollama.com/install.sh | sh && \ | ||||
|     # cleanup | ||||
|     rm -rf /var/lib/apt/lists/*; \ | ||||
|     else \ | ||||
|     apt-get update && \ | ||||
|     # Install pandoc and netcat | ||||
|     apt-get install -y --no-install-recommends pandoc netcat-openbsd && \ | ||||
|     # for RAG OCR | ||||
|     apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && \ | ||||
|     # cleanup | ||||
|     rm -rf /var/lib/apt/lists/*; \ | ||||
|         pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir && \ | ||||
|         pip3 install -r requirements.txt --no-cache-dir && \ | ||||
|         python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])" && \ | ||||
|         python -c "import os; from chromadb.utils import embedding_functions; sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name=os.environ['RAG_EMBEDDING_MODEL'], device='cpu')"; \ | ||||
|     fi | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek