aboutsummarylogtreecommitdiffstats
path: root/localai.service
blob: b60a4e74551c5d71dc0c9490bc762593e7dd173e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[Unit]
Description=LocalAI server

# "%C" Cache directory root: /var/cache (system) or "$XDG_CACHE_HOME" (user)
# "%E" Configuration directory root: /etc/ (system) or "$XDG_CONFIG_HOME" (user)
# "%S" State directory root: /var/lib (system) or $XDG_STATE_HOME (user)
# "%T" Directory for temporary files: /tmp or the path "$TMPDIR", "$TEMP" or "$TMP"
# "%N" Full unit name	Same as "%n", but with the type suffix removed

[Service]
User=localai
Group=localai
Type=exec
WorkingDirectory=%S/%N
Restart=on-failure
# PrivateTmp=yes

# default environment and local env
EnvironmentFile=%E/%N/%N.conf
EnvironmentFile=-%S/%N/.env

# start server
ExecStart=/usr/bin/localai run \
  --audio-path="%T/%N/audio" \
  --backend-assets-path="%S/%N" \
  --config-path="%S/%N" \
  --external-grpc-backends=bark:%S/%N/backend-assets/grpc/python/bark/run.sh,coqui:%S/%N/backend-assets/grpc/python/coqui/run.sh,diffusers:%S/%N/backend-assets/grpc/python/diffusers/run.sh,parler-tts:%S/%N/backend-assets/grpc/python/parler-tts/run.sh,rerankers:%S/%N/backend-assets/grpc/python/rerankers/run.sh,sentencetransformers:%S/%N/backend-assets/grpc/python/sentencetransformers/run.sh,transformers:%S/%N/backend-assets/grpc/python/transformers/run.sh,transformers-musicgen:%S/%N/backend-assets/grpc/python/transformers-musicgen/run.sh \
  --image-path="%T/%N/images" \
  --localai-config-dir="%S/%N/config" \
  --models-path="%S/%N/models" \
  --upload-path="%T/%N/upload"

# create virtualenvs for python backends, recreate if localai is newer than venv
# disabled python backends: autogptq exllama exllama2 mamba openvoice petals vall-e-x vllm
ExecStartPost=bash -c 'sleep 3;\
for i in bark coqui diffusers parler-tts rerankers \
    sentencetransformers transformers transformers-musicgen; do \
  bedir="%S/%N/backend-assets/grpc/python/$i"; \
  if test /usr/bin/localai -nt $bedir/venv; then rm -r $bedir/venv; fi; \
  if test ! -d $bedir/venv; then \
    echo "re/creating $bedir"; \
    %S/%N/backend-assets/grpc/python/$i/install.sh; \
  fi; \
done'

# make some time for virtualenvs to be installed
TimeoutStartSec=180

[Install]
WantedBy=default.target