Package Details: local-ai 2.12.4-1

Git Clone URL: https://aur.archlinux.org/local-ai.git (read-only, click to copy)
Package Base: local-ai
Description: Free, Open Source OpenAI alternative. Self-hosted, community-driven and local-first (with OPENBlas CPU optimizations)
Upstream URL: https://github.com/mudler/LocalAI
Licenses: MIT
Conflicts: local-ai
Provides: local-ai
Submitter: robertfoster
Maintainer: robertfoster
Last Packager: robertfoster
Votes: 2
Popularity: 0.084648
First Submitted: 2023-11-02 18:27 (UTC)
Last Updated: 2024-04-11 23:09 (UTC)

Dependencies (18)

Required by (0)

Sources (5)

Latest Comments

z3n commented on 2024-04-13 13:04 (UTC)

with latest update 2.14.2 i always get an error trying to build tinydream

# github.com/go-skynet/LocalAI/backend/go/image/tinydream
/usr/lib/go/pkg/tool/linux_amd64/link: running /opt/rocm/llvm/bin/clang++ failed: exit status 1
ld.lld: error: undefined symbol: __kmpc_global_thread_num

dreieck commented on 2024-03-27 09:59 (UTC)

Ahoj,

can you please not have ccache as a mandatory make dependency?

You can have it optional (check if it is present and then enable).

Also, there is the ccache option a user can locally set in /etc/makepkg.conf to control ccache.

Regards!

dreieck commented on 2024-03-26 08:04 (UTC) (edited on 2024-03-26 08:24 (UTC) by dreieck)

In prepare(), if you really cannot move the submodule downloads into the source array, please change

make get-sources -j8

to

make get-sources -j1

Depending on the internet connection, -j8 is prone to fail with git clones (for me it does) (and sometimes leading to a damaged build directory which needs to be erased before re-try, meaning all downloads need to be start at zero again, with the same prone to failure, effectively making it impossible to finish prepare()):

==> Starting prepare()...
[...]
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
error: 6274 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
make: *** [Makefile:238: sources/whisper.cpp] Error 128
make: *** Waiting for unfinished jobs....
error: 6108 bytes of body are still expectediB | 163.00 KiB/s
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
make: *** [Makefile:206: sources/gpt4all] Error 128
[...]
make: *** [Makefile:198: sources/go-piper] Error 1
==> ERROR: A failure occurred in prepare().

dreieck commented on 2024-03-26 08:04 (UTC) (edited on 2024-03-26 08:04 (UTC) by dreieck)

Regarding git submodules, is it possible to follow Arch Linux guide on git submodules and download them via the source array and then only reference them in prepare()?

I.e. download the followint already via the source array?:

==> Starting prepare()...
git clone --recurse-submodules https://github.com/go-skynet/go-llama.cpp sources/go-llama-ggml
git clone --recurse-submodules https://github.com/nomic-ai/gpt4all sources/gpt4all
Cloning into 'sources/go-llama-ggml'...
git clone --recurse-submodules https://github.com/mudler/go-piper sources/go-piper
Cloning into 'sources/gpt4all'...
git clone --recurse-submodules https://github.com/donomii/go-rwkv.cpp sources/go-rwkv
git clone https://github.com/ggerganov/whisper.cpp.git sources/whisper.cpp
git clone --recurse-submodules https://github.com/go-skynet/go-bert.cpp sources/go-bert
Cloning into 'sources/go-rwkv'...
Cloning into 'sources/whisper.cpp'...
Cloning into 'sources/go-piper'...
Cloning into 'sources/go-bert'...
git clone --recurse-submodules https://github.com/mudler/go-stable-diffusion sources/go-stable-diffusion
git clone --recurse-submodules https://github.com/M0Rf30/go-tiny-dream sources/go-tiny-dream
Cloning into 'sources/go-stable-diffusion'...
Cloning into 'sources/go-tiny-dream'...
[...]
Submodule 'ncnn' (https://github.com/Tencent/ncnn) registered for path 'ncnn'
Submodule 'tiny-dream' (https://github.com/symisc/tiny-dream) registered for path 'tiny-dream'
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-tiny-dream/ncnn'...
[...]
Submodule 'espeak' (https://github.com/rhasspy/espeak-ng) registered for path 'espeak'
Submodule 'piper' (https://github.com/rhasspy/piper) registered for path 'piper'
Submodule 'piper-phonemize' (https://github.com/rhasspy/piper-phonemize) registered for path 'piper-phonemize'
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-piper/espeak'...
[...]
Submodule 'bert.cpp' (https://github.com/skeskinen/bert.cpp) registered for path 'bert.cpp'
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-bert/bert.cpp'...
[...]
Submodule 'llama.cpp' (https://github.com/ggerganov/llama.cpp) registered for path 'llama.cpp'
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-llama-ggml/llama.cpp'...
[...]
Submodule path 'bert.cpp': checked out '848366fc0718ba11d477ad56ea8a43fbcf104d9c'
Submodule 'ggml' (https://github.com/ggerganov/ggml.git) registered for path 'bert.cpp/ggml'
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-bert/bert.cpp/ggml'...
[...]
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-piper/piper'...
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-llama-ggml/llama.cpp'...
[...]
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-tiny-dream/tiny-dream'...
[...]
Cloning into '/tmp/makepkg/build/local-ai/src/LocalAI-2.10.1/sources/go-tiny-dream/ncnn'...
[...]

This would also solve problems when the download fails and the sometimes the whole build directory needs to be deleted to be able to resume build (meaning also the already downloaded stuff also needs to be re-downloaded).

Regards and thanks for maintaining!

dreieck commented on 2024-03-26 07:33 (UTC) (edited on 2024-03-26 08:11 (UTC) by dreieck)

Here in the AUR are local-ai and local-ai-git.
The former is the release variant, the latter the -git-variant, of the same code.

But their "base" names differ (local-ai vs. localai).

Can you, both maintainers of the two packages, decide on a common package name and unify the naming, i.e. naming both localai and localai-git OR local-ai and local-ai-git?

Regards!