57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
# miniAGI
|
|
|
|
From the [LocalAI](https://localai.io) author, miniAGI. 100% Local AI assistant.
|
|
|
|
Note: this is a fun project, not a serious one. Be warned!
|
|
|
|
## What is miniAGI?
|
|
|
|
It is a dead simple experiment to show how to tie the various LocalAI functionalities to create a virtual assistant that can do tasks. It is simple on purpose, trying to be minimalistic and easy to understand and customize.
|
|
|
|
## Quick start
|
|
|
|
No frills, just run docker-compose and start chatting with your virtual assistant:
|
|
|
|
```bash
|
|
docker-compose run --build -i --rm miniagi
|
|
```
|
|
|
|
### Test it!
|
|
|
|
Ask it to:
|
|
|
|
- "Can you create the agenda for tomorrow?"
|
|
-> and watch it search through memories to get your agenda!
|
|
- "How are you?"
|
|
-> and watch it engaging into dialogues with long-term memory
|
|
|
|
### How it works?
|
|
|
|
miniAGI uses `LocalAI` and OpenAI functions.
|
|
|
|
The approach is the following:
|
|
- Decide based on the conversation history if we need to take an action by using functions.It uses the LLM to detect the intent from the conversation.
|
|
- if we need to take an action (e.g. "remember something from the conversation" ) or generate complex tasks ( executing a chain of functions to achieve a goal)
|
|
|
|
Under the hood:
|
|
|
|
- LocalAI converts functions to llama.cpp BNF grammars
|
|
|
|
## Roadmap
|
|
|
|
- [x] 100% Local, with Local AI. NO API KEYS NEEDED!
|
|
- [x] Create a simple virtual assistant
|
|
- [x] Make the virtual assistant do functions like store long-term memory and autonomously search between them when needed
|
|
- [] Create the assistant avatar with Stable Diffusion
|
|
- [] Give it a voice (push to talk or wakeword)
|
|
- [] Get voice input
|
|
- [] Make a REST API (OpenAI compliant?) so can be plugged by e.g. a third party service
|
|
- [] Take a system prompt so can act with a "character" (e.g. "answer in rick and morty style")
|
|
|
|
## Development
|
|
|
|
Run docker-compose with main.py checked-out:
|
|
|
|
```bash
|
|
docker-compose run -v main.py:/app/main.py -i --rm miniagi
|
|
``` |