Skip to content

Commit 064319c

Browse files
committed
Merge remote-tracking branch 'gray101/master' into osx-signing
2 parents e03beb3 + c5c77d2 commit 064319c

File tree

217 files changed

+36104
-1731
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

217 files changed

+36104
-1731
lines changed

.env

+7-1
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,10 @@ MODELS_PATH=/models
6666
### Python backends GRPC max workers
6767
### Default number of workers for GRPC Python backends.
6868
### This actually controls wether a backend can process multiple requests or not.
69-
# PYTHON_GRPC_MAX_WORKERS=1
69+
# PYTHON_GRPC_MAX_WORKERS=1
70+
71+
### Define the number of parallel LLAMA.cpp workers (Defaults to 1)
72+
# LLAMACPP_PARALLEL=1
73+
74+
### Enable to run parallel requests
75+
# PARALLEL_REQUESTS=true

.github/workflows/image.yml

+103-99
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ concurrency:
1414
cancel-in-progress: true
1515

1616
jobs:
17-
docker:
17+
image-build:
1818
strategy:
1919
matrix:
2020
include:
@@ -24,133 +24,104 @@ jobs:
2424
tag-latest: 'auto'
2525
tag-suffix: ''
2626
ffmpeg: ''
27+
image-type: 'extras'
28+
runs-on: 'arc-runner-set'
2729
- build-type: ''
2830
platforms: 'linux/amd64'
2931
tag-latest: 'false'
3032
tag-suffix: '-ffmpeg'
3133
ffmpeg: 'true'
32-
33-
runs-on: ubuntu-latest
34-
steps:
35-
- name: Checkout
36-
uses: actions/checkout@v4
37-
- name: Release space from worker
38-
run: |
39-
echo "Listing top largest packages"
40-
pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
41-
head -n 30 <<< "${pkgs}"
42-
echo
43-
df -h
44-
echo
45-
sudo apt-get remove -y '^llvm-.*|^libllvm.*' || true
46-
sudo apt-get remove --auto-remove android-sdk-platform-tools || true
47-
sudo apt-get purge --auto-remove android-sdk-platform-tools || true
48-
sudo rm -rf /usr/local/lib/android
49-
sudo apt-get remove -y '^dotnet-.*|^aspnetcore-.*' || true
50-
sudo rm -rf /usr/share/dotnet
51-
sudo apt-get remove -y '^mono-.*' || true
52-
sudo apt-get remove -y '^ghc-.*' || true
53-
sudo apt-get remove -y '.*jdk.*|.*jre.*' || true
54-
sudo apt-get remove -y 'php.*' || true
55-
sudo apt-get remove -y hhvm powershell firefox monodoc-manual msbuild || true
56-
sudo apt-get remove -y '^google-.*' || true
57-
sudo apt-get remove -y azure-cli || true
58-
sudo apt-get remove -y '^mongo.*-.*|^postgresql-.*|^mysql-.*|^mssql-.*' || true
59-
sudo apt-get remove -y '^gfortran-.*' || true
60-
sudo apt-get remove -y microsoft-edge-stable || true
61-
sudo apt-get remove -y firefox || true
62-
sudo apt-get remove -y powershell || true
63-
sudo apt-get remove -y r-base-core || true
64-
sudo apt-get autoremove -y
65-
sudo apt-get clean
66-
echo
67-
echo "Listing top largest packages"
68-
pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
69-
head -n 30 <<< "${pkgs}"
70-
echo
71-
sudo rm -rfv build || true
72-
df -h
73-
- name: Docker meta
74-
id: meta
75-
uses: docker/metadata-action@v5
76-
with:
77-
images: quay.io/go-skynet/local-ai
78-
tags: |
79-
type=ref,event=branch
80-
type=semver,pattern={{raw}}
81-
type=sha
82-
flavor: |
83-
latest=${{ matrix.tag-latest }}
84-
suffix=${{ matrix.tag-suffix }}
85-
86-
- name: Set up QEMU
87-
uses: docker/setup-qemu-action@master
88-
with:
89-
platforms: all
90-
91-
- name: Set up Docker Buildx
92-
id: buildx
93-
uses: docker/setup-buildx-action@master
94-
95-
- name: Login to DockerHub
96-
if: github.event_name != 'pull_request'
97-
uses: docker/login-action@v3
98-
with:
99-
registry: quay.io
100-
username: ${{ secrets.LOCALAI_REGISTRY_USERNAME }}
101-
password: ${{ secrets.LOCALAI_REGISTRY_PASSWORD }}
102-
103-
- name: Build and push
104-
uses: docker/build-push-action@v5
105-
with:
106-
builder: ${{ steps.buildx.outputs.name }}
107-
build-args: |
108-
BUILD_TYPE=${{ matrix.build-type }}
109-
CUDA_MAJOR_VERSION=${{ matrix.cuda-major-version }}
110-
CUDA_MINOR_VERSION=${{ matrix.cuda-minor-version }}
111-
FFMPEG=${{ matrix.ffmpeg }}
112-
context: .
113-
file: ./Dockerfile
114-
platforms: ${{ matrix.platforms }}
115-
push: ${{ github.event_name != 'pull_request' }}
116-
tags: ${{ steps.meta.outputs.tags }}
117-
labels: ${{ steps.meta.outputs.labels }}
118-
119-
120-
docker-gpu:
121-
strategy:
122-
matrix:
123-
include:
34+
image-type: 'extras'
35+
runs-on: 'arc-runner-set'
12436
- build-type: 'cublas'
12537
cuda-major-version: 11
12638
cuda-minor-version: 7
12739
platforms: 'linux/amd64'
12840
tag-latest: 'false'
12941
tag-suffix: '-cublas-cuda11'
13042
ffmpeg: ''
43+
image-type: 'extras'
44+
runs-on: 'arc-runner-set'
13145
- build-type: 'cublas'
13246
cuda-major-version: 12
13347
cuda-minor-version: 1
13448
platforms: 'linux/amd64'
13549
tag-latest: 'false'
13650
tag-suffix: '-cublas-cuda12'
13751
ffmpeg: ''
52+
image-type: 'extras'
53+
runs-on: 'arc-runner-set'
13854
- build-type: 'cublas'
13955
cuda-major-version: 11
14056
cuda-minor-version: 7
14157
platforms: 'linux/amd64'
14258
tag-latest: 'false'
14359
tag-suffix: '-cublas-cuda11-ffmpeg'
14460
ffmpeg: 'true'
61+
image-type: 'extras'
62+
runs-on: 'arc-runner-set'
14563
- build-type: 'cublas'
14664
cuda-major-version: 12
14765
cuda-minor-version: 1
14866
platforms: 'linux/amd64'
14967
tag-latest: 'false'
15068
tag-suffix: '-cublas-cuda12-ffmpeg'
15169
ffmpeg: 'true'
70+
image-type: 'extras'
71+
runs-on: 'arc-runner-set'
72+
- build-type: ''
73+
#platforms: 'linux/amd64,linux/arm64'
74+
platforms: 'linux/amd64'
75+
tag-latest: 'auto'
76+
tag-suffix: ''
77+
ffmpeg: ''
78+
image-type: 'extras'
79+
runs-on: 'arc-runner-set'
80+
- build-type: ''
81+
platforms: 'linux/amd64'
82+
tag-latest: 'false'
83+
tag-suffix: '-ffmpeg-core'
84+
ffmpeg: 'true'
85+
image-type: 'core'
86+
runs-on: 'ubuntu-latest'
87+
- build-type: 'cublas'
88+
cuda-major-version: 11
89+
cuda-minor-version: 7
90+
platforms: 'linux/amd64'
91+
tag-latest: 'false'
92+
tag-suffix: '-cublas-cuda11-core'
93+
ffmpeg: ''
94+
image-type: 'core'
95+
runs-on: 'ubuntu-latest'
96+
- build-type: 'cublas'
97+
cuda-major-version: 12
98+
cuda-minor-version: 1
99+
platforms: 'linux/amd64'
100+
tag-latest: 'false'
101+
tag-suffix: '-cublas-cuda12-core'
102+
ffmpeg: ''
103+
image-type: 'core'
104+
runs-on: 'ubuntu-latest'
105+
- build-type: 'cublas'
106+
cuda-major-version: 11
107+
cuda-minor-version: 7
108+
platforms: 'linux/amd64'
109+
tag-latest: 'false'
110+
tag-suffix: '-cublas-cuda11-ffmpeg-core'
111+
ffmpeg: 'true'
112+
image-type: 'core'
113+
runs-on: 'ubuntu-latest'
114+
- build-type: 'cublas'
115+
cuda-major-version: 12
116+
cuda-minor-version: 1
117+
platforms: 'linux/amd64'
118+
tag-latest: 'false'
119+
tag-suffix: '-cublas-cuda12-ffmpeg-core'
120+
ffmpeg: 'true'
121+
image-type: 'core'
122+
runs-on: 'ubuntu-latest'
152123

153-
runs-on: arc-runner-set
124+
runs-on: ${{ matrix.runs-on }}
154125
steps:
155126
- name: Force Install GIT latest
156127
run: |
@@ -162,7 +133,42 @@ jobs:
162133
&& sudo apt-get install -y git
163134
- name: Checkout
164135
uses: actions/checkout@v4
165-
136+
# - name: Release space from worker
137+
# run: |
138+
# echo "Listing top largest packages"
139+
# pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
140+
# head -n 30 <<< "${pkgs}"
141+
# echo
142+
# df -h
143+
# echo
144+
# sudo apt-get remove -y '^llvm-.*|^libllvm.*' || true
145+
# sudo apt-get remove --auto-remove android-sdk-platform-tools || true
146+
# sudo apt-get purge --auto-remove android-sdk-platform-tools || true
147+
# sudo rm -rf /usr/local/lib/android
148+
# sudo apt-get remove -y '^dotnet-.*|^aspnetcore-.*' || true
149+
# sudo rm -rf /usr/share/dotnet
150+
# sudo apt-get remove -y '^mono-.*' || true
151+
# sudo apt-get remove -y '^ghc-.*' || true
152+
# sudo apt-get remove -y '.*jdk.*|.*jre.*' || true
153+
# sudo apt-get remove -y 'php.*' || true
154+
# sudo apt-get remove -y hhvm powershell firefox monodoc-manual msbuild || true
155+
# sudo apt-get remove -y '^google-.*' || true
156+
# sudo apt-get remove -y azure-cli || true
157+
# sudo apt-get remove -y '^mongo.*-.*|^postgresql-.*|^mysql-.*|^mssql-.*' || true
158+
# sudo apt-get remove -y '^gfortran-.*' || true
159+
# sudo apt-get remove -y microsoft-edge-stable || true
160+
# sudo apt-get remove -y firefox || true
161+
# sudo apt-get remove -y powershell || true
162+
# sudo apt-get remove -y r-base-core || true
163+
# sudo apt-get autoremove -y
164+
# sudo apt-get clean
165+
# echo
166+
# echo "Listing top largest packages"
167+
# pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr)
168+
# head -n 30 <<< "${pkgs}"
169+
# echo
170+
# sudo rm -rfv build || true
171+
# df -h
166172
- name: Docker meta
167173
id: meta
168174
uses: docker/metadata-action@v5
@@ -192,6 +198,7 @@ jobs:
192198
registry: quay.io
193199
username: ${{ secrets.LOCALAI_REGISTRY_USERNAME }}
194200
password: ${{ secrets.LOCALAI_REGISTRY_PASSWORD }}
201+
195202
- name: Build and push
196203
uses: docker/build-push-action@v5
197204
with:
@@ -201,13 +208,10 @@ jobs:
201208
CUDA_MAJOR_VERSION=${{ matrix.cuda-major-version }}
202209
CUDA_MINOR_VERSION=${{ matrix.cuda-minor-version }}
203210
FFMPEG=${{ matrix.ffmpeg }}
211+
IMAGE_TYPE=${{ matrix.image-type }}
204212
context: .
205213
file: ./Dockerfile
206214
platforms: ${{ matrix.platforms }}
207215
push: ${{ github.event_name != 'pull_request' }}
208216
tags: ${{ steps.meta.outputs.tags }}
209217
labels: ${{ steps.meta.outputs.labels }}
210-
- name: Release space from worker ♻
211-
if: always()
212-
run: |
213-
docker system prune -f -a --volumes || true

.github/workflows/test.yml

+19-25
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ concurrency:
1414
cancel-in-progress: true
1515

1616
jobs:
17-
ubuntu-latest:
17+
tests-linux:
1818
runs-on: ubuntu-latest
1919
strategy:
2020
matrix:
@@ -67,41 +67,35 @@ jobs:
6767
run: |
6868
sudo apt-get update
6969
sudo apt-get install build-essential ffmpeg
70-
70+
curl https://repo.anaconda.com/pkgs/misc/gpgkeys/anaconda.asc | gpg --dearmor > conda.gpg && \
71+
sudo install -o root -g root -m 644 conda.gpg /usr/share/keyrings/conda-archive-keyring.gpg && \
72+
gpg --keyring /usr/share/keyrings/conda-archive-keyring.gpg --no-default-keyring --fingerprint 34161F5BF5EB1D4BFBBB8F0A8AEB4F8B29D82806 && \
73+
sudo /bin/bash -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/conda-archive-keyring.gpg] https://repo.anaconda.com/pkgs/misc/debrepo/conda stable main" > /etc/apt/sources.list.d/conda.list' && \
74+
sudo /bin/bash -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/conda-archive-keyring.gpg] https://repo.anaconda.com/pkgs/misc/debrepo/conda stable main" | tee -a /etc/apt/sources.list.d/conda.list' && \
75+
sudo apt-get update && \
76+
sudo apt-get install -y conda
7177
sudo apt-get install -y ca-certificates cmake curl patch
7278
sudo apt-get install -y libopencv-dev && sudo ln -s /usr/include/opencv4/opencv2 /usr/include/opencv2
73-
sudo pip install -r extra/requirements.txt
74-
79+
80+
sudo rm -rfv /usr/bin/conda || true
81+
PATH=$PATH:/opt/conda/bin make -C backend/python/sentencetransformers
7582
76-
# Pre-build stable diffusion before we install a newever version of abseil (not compatible with stablediffusion-ncn)
77-
GO_TAGS="tts stablediffusion" GRPC_BACKENDS=backend-assets/grpc/stablediffusion make build
78-
79-
sudo mkdir /build && sudo chmod -R 777 /build && cd /build && \
80-
curl -L "https://github.com/gabime/spdlog/archive/refs/tags/v1.11.0.tar.gz" | \
81-
tar -xzvf - && \
82-
mkdir -p "spdlog-1.11.0/build" && \
83-
cd "spdlog-1.11.0/build" && \
84-
cmake .. && \
85-
make -j8 && \
86-
sudo cmake --install . --prefix /usr && mkdir -p "lib/Linux-$(uname -m)" && \
87-
cd /build && \
88-
mkdir -p "lib/Linux-$(uname -m)/piper_phonemize" && \
89-
curl -L "https://github.com/rhasspy/piper-phonemize/releases/download/v1.0.0/libpiper_phonemize-amd64.tar.gz" | \
90-
tar -C "lib/Linux-$(uname -m)/piper_phonemize" -xzvf - && ls -liah /build/lib/Linux-$(uname -m)/piper_phonemize/ && \
91-
sudo cp -rfv /build/lib/Linux-$(uname -m)/piper_phonemize/lib/. /usr/lib/ && \
92-
sudo ln -s /usr/lib/libpiper_phonemize.so /usr/lib/libpiper_phonemize.so.1 && \
93-
sudo cp -rfv /build/lib/Linux-$(uname -m)/piper_phonemize/include/. /usr/include/
83+
# Pre-build piper before we start tests in order to have shared libraries in place
84+
make sources/go-piper && \
85+
GO_TAGS="tts" make -C sources/go-piper piper.o && \
86+
sudo cp -rfv sources/go-piper/piper/build/pi/lib/. /usr/lib/ && \
87+
# Pre-build stable diffusion before we install a newer version of abseil (not compatible with stablediffusion-ncn)
88+
GO_TAGS="stablediffusion tts" GRPC_BACKENDS=backend-assets/grpc/stablediffusion make build
9489
9590
git clone --recurse-submodules -b v1.58.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc && \
9691
cd grpc && mkdir -p cmake/build && cd cmake/build && cmake -DgRPC_INSTALL=ON \
9792
-DgRPC_BUILD_TESTS=OFF \
9893
../.. && sudo make -j12 install
99-
10094
- name: Test
10195
run: |
102-
ESPEAK_DATA="/build/lib/Linux-$(uname -m)/piper_phonemize/lib/espeak-ng-data" GO_TAGS="tts stablediffusion" make test
96+
GO_TAGS="stablediffusion tts" make test
10397
104-
macOS-latest:
98+
tests-apple:
10599
runs-on: macOS-latest
106100
strategy:
107101
matrix:

.gitignore

+1-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
# go-llama build artifacts
2-
go-llama
3-
go-llama-stable
4-
/gpt4all
5-
go-stable-diffusion
6-
go-piper
7-
/go-bert
8-
go-ggllm
9-
/piper
2+
/sources/
103
__pycache__/
114
*.a
125
get-sources

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "docs/themes/hugo-theme-relearn"]
2+
path = docs/themes/hugo-theme-relearn
3+
url = https://github.com/McShelby/hugo-theme-relearn.git

0 commit comments

Comments
 (0)