2023-04-19 17:03:12 +00:00
< h1 align = "center" >
< br >
< img height = "300" src = "https://user-images.githubusercontent.com/2420543/233147843-88697415-6dbf-4368-a862-ab217f9f7342.jpeg" > < br >
LocalAI
< br >
< / h1 >
2023-03-20 20:30:55 +00:00
2023-04-24 16:10:58 +00:00
[![tests ](https://github.com/go-skynet/LocalAI/actions/workflows/test.yml/badge.svg )](https://github.com/go-skynet/LocalAI/actions/workflows/test.yml) [![build container images ](https://github.com/go-skynet/LocalAI/actions/workflows/image.yml/badge.svg )](https://github.com/go-skynet/LocalAI/actions/workflows/image.yml)
[![ ](https://dcbadge.vercel.app/api/server/uJAeKSAGDy?style=flat-square&theme=default-inverted )](https://discord.gg/uJAeKSAGDy)
2023-05-29 21:09:19 +00:00
**LocalAI** is a drop-in replacement REST API that’ s compatible with OpenAI API specifications for local inferencing. It allows you to run LLMs (and not only) locally or on-prem with consumer grade hardware, supporting multiple model families that are compatible with the ggml format. Does not require GPU.
2023-05-19 17:33:53 +00:00
2023-05-29 21:09:19 +00:00
For a list of the supported model families, please see [the model compatibility table ](https://localai.io/model-compatibility/index.html#model-compatibility-table ).
2023-05-19 17:33:53 +00:00
In a nutshell:
2023-04-11 22:04:15 +00:00
2023-05-18 13:59:03 +00:00
- Local, OpenAI drop-in alternative REST API. You own your data.
2023-05-29 21:09:19 +00:00
- NO GPU required. NO Internet access is required either. Optional, GPU Acceleration is available in `llama.cpp` -compatible LLMs. [See building instructions ](https://localai.io/basics/build/index.html ).
2023-05-16 17:32:53 +00:00
- Supports multiple models, Audio transcription, Text generation with GPTs, Image generation with stable diffusion (experimental)
2023-04-19 15:10:29 +00:00
- Once loaded the first time, it keep models loaded in memory for faster inference
2023-05-14 16:08:42 +00:00
- Doesn't shell-out, but uses C++ bindings for a faster inference and better performance.
2023-03-30 16:46:11 +00:00
2023-05-29 21:09:19 +00:00
LocalAI was created by [Ettore Di Giacinto ](https://github.com/mudler/ ) and is a community-driven project, focused on making the AI accessible to anyone. Any contribution, feedback and PR is welcome!
2023-04-27 08:39:01 +00:00
2023-05-29 21:13:42 +00:00
| [ChatGPT OSS alternative ](https://github.com/go-skynet/LocalAI/tree/master/examples/chatbot-ui ) | [Image generation ](https://localai.io/api-endpoints/index.html#image-generation ) |
2023-05-29 21:09:19 +00:00
|------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| ![Screenshot from 2023-04-26 23-59-55 ](https://user-images.githubusercontent.com/2420543/234715439-98d12e03-d3ce-4f94-ab54-2b256808e05e.png ) | ![b6441997879 ](https://github.com/go-skynet/LocalAI/assets/2420543/d50af51c-51b7-4f39-b6c2-bf04c403894c ) |
2023-05-19 17:33:53 +00:00
2023-05-14 16:08:42 +00:00
2023-05-31 23:04:07 +00:00
See the [Getting started ](https://localai.io/basics/getting_started/index.html ) and [examples ](https://github.com/go-skynet/LocalAI/tree/master/examples/ ) sections to learn how to use LocalAI. For a list of curated models check out the [model gallery ](https://localai.io/models/ ).
2023-05-14 16:08:42 +00:00
2023-05-06 17:15:22 +00:00
## News
2023-05-03 13:51:54 +00:00
2023-05-29 21:09:19 +00:00
- 29-05-2023: LocalAI now has a website, [https://localai.io ](https://localai.io )! check the news in the [dedicated section ](https://localai.io/basics/news/index.html )!
2023-05-03 13:51:54 +00:00
2023-05-29 21:09:19 +00:00
For latest news, follow also on Twitter [@LocalAI_API ](https://twitter.com/LocalAI_API ) and [@mudler_it ](https://twitter.com/mudler_it )
2023-05-06 17:15:22 +00:00
## Contribute and help
To help the project you can:
- Upvote the [Reddit post ](https://www.reddit.com/r/selfhosted/comments/12w4p2f/localai_openai_compatible_api_to_run_llm_models/ ) about LocalAI.
2023-04-27 15:17:03 +00:00
- [Hacker news post ](https://news.ycombinator.com/item?id=35726934 ) - help us out by voting if you like this project.
2023-05-06 17:15:22 +00:00
- If you have technological skills and want to contribute to development, have a look at the open issues. If you are new you can have a look at the [good-first-issue ](https://github.com/go-skynet/LocalAI/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 ) and [help-wanted ](https://github.com/go-skynet/LocalAI/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22 ) labels.
- If you don't have technological skills you can still help improving documentation or add examples or share your user-stories with our community, any help and contribution is welcome!
2023-04-27 13:39:48 +00:00
2023-04-12 23:13:14 +00:00
## Usage
2023-05-29 21:09:19 +00:00
Check out the [Getting started ](https://localai.io/basics/getting_started/index.html ) section. Here below you will find generic, quick instructions to get ready and use LocalAI.
2023-04-19 16:43:10 +00:00
2023-05-29 21:09:19 +00:00
The easiest way to run LocalAI is by using `docker-compose` (to build locally, see [building LocalAI ](https://localai.io/basics/build/index.html )):
2023-04-12 23:13:14 +00:00
```bash
2023-04-19 16:43:10 +00:00
git clone https://github.com/go-skynet/LocalAI
cd LocalAI
2023-04-12 23:13:14 +00:00
2023-04-27 04:18:18 +00:00
# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>
2023-04-12 23:13:14 +00:00
# copy your models to models/
cp your-model.bin models/
2023-04-15 23:39:07 +00:00
# (optional) Edit the .env file to set things like context size and threads
# vim .env
2023-04-12 23:13:14 +00:00
# start with docker-compose
2023-05-16 17:32:53 +00:00
docker-compose up -d --pull always
# or you can build the images with:
# docker-compose up -d --build
2023-04-12 23:13:14 +00:00
# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"your-model.bin","object":"model"}]}
2023-04-19 15:10:29 +00:00
2023-04-12 23:13:14 +00:00
curl http://localhost:8080/v1/completions -H "Content-Type: application/json" -d '{
"model": "your-model.bin",
"prompt": "A long time ago in a galaxy far, far away",
"temperature": 0.7
}'
```
2023-04-24 21:42:03 +00:00
### Example: Use GPT4ALL-J model
< details >
```bash
# Clone LocalAI
git clone https://github.com/go-skynet/LocalAI
cd LocalAI
2023-04-27 04:18:18 +00:00
# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>
2023-04-24 21:42:03 +00:00
# Download gpt4all-j to models/
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j
# Use a template from the examples
cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/
# (optional) Edit the .env file to set things like context size and threads
# vim .env
# start with docker-compose
2023-05-16 17:32:53 +00:00
docker-compose up -d --pull always
# or you can build the images with:
# docker-compose up -d --build
2023-04-24 21:42:03 +00:00
# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"ggml-gpt4all-j","object":"model"}]}
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "ggml-gpt4all-j",
"messages": [{"role": "user", "content": "How are you?"}],
"temperature": 0.9
}'
# {"model":"ggml-gpt4all-j","choices":[{"message":{"role":"assistant","content":"I'm doing well, thanks. How about you?"}}]}
```
< / details >
2023-05-03 13:51:54 +00:00
### Build locally
< details >
In order to build the `LocalAI` container image locally you can use `docker` :
```
# build the image
2023-05-29 21:09:19 +00:00
docker build -t localai .
docker run localai
2023-05-03 13:51:54 +00:00
```
Or you can build the binary with `make` :
```
make build
```
< / details >
2023-05-29 21:09:19 +00:00
See the [build section ](https://localai.io/basics/build/index.html ) in our documentation for detailed instructions.
2023-04-27 08:39:01 +00:00
### Run LocalAI in Kubernetes
2023-05-29 21:09:19 +00:00
LocalAI can be installed inside Kubernetes with helm. See [installation instructions ](https://localai.io/basics/getting_started/index.html#run-localai-in-kubernetes ).
2023-04-27 08:42:50 +00:00
2023-05-29 21:09:19 +00:00
## Supported API endpoints
2023-05-19 17:33:53 +00:00
2023-05-29 21:09:19 +00:00
See the [list of the supported API endpoints ](https://localai.io/api-endpoints/index.html ) and how to configure image generation and audio transcription.
2023-05-19 17:33:53 +00:00
2023-04-24 16:10:58 +00:00
## Frequently asked questions
2023-05-29 21:09:19 +00:00
See [the FAQ ](https://localai.io/faq/index.html ) section for a list of common questions.
2023-04-24 16:10:58 +00:00
2023-04-27 04:18:18 +00:00
## Projects already using LocalAI to run local models
Feel free to open up a PR to get your project listed!
- [Kairos ](https://github.com/kairos-io/kairos )
- [k8sgpt ](https://github.com/k8sgpt-ai/k8sgpt#running-local-models )
2023-05-10 12:05:44 +00:00
- [Spark ](https://github.com/cedriking/spark )
2023-05-24 09:39:56 +00:00
- [autogpt4all ](https://github.com/aorumbayev/autogpt4all )
2023-05-25 16:18:02 +00:00
- [Mods ](https://github.com/charmbracelet/mods )
2023-05-30 16:29:28 +00:00
- [Flowise ](https://github.com/FlowiseAI/Flowise )
2023-04-24 16:10:58 +00:00
2023-04-05 20:04:35 +00:00
## Short-term roadmap
2023-04-19 16:43:10 +00:00
- [x] Mimic OpenAI API (https://github.com/go-skynet/LocalAI/issues/10)
2023-04-24 16:10:58 +00:00
- [ ] Binary releases (https://github.com/go-skynet/LocalAI/issues/6)
2023-04-27 08:39:01 +00:00
- [ ] Upstream our golang bindings to llama.cpp (https://github.com/ggerganov/llama.cpp/issues/351) and [gpt4all ](https://github.com/go-skynet/LocalAI/issues/85 )
2023-04-11 22:02:47 +00:00
- [x] Multi-model support
2023-04-27 08:39:01 +00:00
- [x] Have a webUI!
- [x] Allow configuration of defaults for models.
2023-05-14 09:12:29 +00:00
- [x] Support for embeddings
- [x] Support for audio transcription with https://github.com/ggerganov/whisper.cpp
- [ ] GPU/CUDA support ( https://github.com/go-skynet/LocalAI/issues/69 )
2023-04-27 13:39:48 +00:00
- [ ] Enable automatic downloading of models from a curated gallery, with only free-licensed models, directly from the webui.
2023-04-05 20:04:35 +00:00
2023-04-27 08:39:01 +00:00
## Star history
2023-04-27 04:18:18 +00:00
[![LocalAI Star history Chart ](https://api.star-history.com/svg?repos=go-skynet/LocalAI&type=Date )](https://star-history.com/#go-skynet/LocalAI& Date)
2023-03-30 16:46:11 +00:00
## License
2023-05-29 21:09:19 +00:00
LocalAI is a community-driven project created by [Ettore Di Giacinto ](https://github.com/mudler/ ).
2023-04-27 08:39:01 +00:00
2023-03-30 16:46:11 +00:00
MIT
2023-05-29 21:09:19 +00:00
## Author
2023-05-03 09:45:22 +00:00
2023-05-29 21:09:19 +00:00
Ettore Di Giacinto and others
2023-05-03 09:45:22 +00:00
2023-03-30 16:46:11 +00:00
## Acknowledgements
2023-05-16 17:32:53 +00:00
LocalAI couldn't have been built without the help of great software already available from the community. Thank you!
2023-03-30 16:46:11 +00:00
- [llama.cpp ](https://github.com/ggerganov/llama.cpp )
- https://github.com/tatsu-lab/stanford_alpaca
- https://github.com/cornelk/llama-go for the initial ideas
2023-05-16 17:32:53 +00:00
- https://github.com/antimatter15/alpaca.cpp
- https://github.com/EdVince/Stable-Diffusion-NCNN
- https://github.com/ggerganov/whisper.cpp
- https://github.com/saharNooby/rwkv.cpp
2023-04-28 08:54:39 +00:00
## Contributors
< a href = "https://github.com/go-skynet/LocalAI/graphs/contributors" >
< img src = "https://contrib.rocks/image?repo=go-skynet/LocalAI" / >
< / a >