Jiva Framework was born out of the need to run autonomous goal-based agents that could run with Open Source LLMs like Llama, Gemma, Mistral and Phi locally on your machine using Ollama. This eliminates the cost concern that we would otherwise have when running against closed source proprietary models - specially when running autonomously. You could easily tweak it to act as your AutoLlama or AutoGemma to autonomously complete basic tasks.
Does your machine not have a GPU powerful enough to run LLMs locally? No problem! You can still run with proprietary LLMs like OpenAi by simply tweaking Jiva's config.json
file.
Jiva depends on Qdrant for long term memory and uses Ollama to run open source LLMs locally on your machine. If you would rather like to use a more powerful LLM like gpt-4o
, then you do not need Ollama.
-
Clone the repository:
git clone https://github.com/KarmaloopAI/Jiva.git cd Jiva
-
Docker Compose Build
docker compose build
-
Run Jiva with Ollama
If you are running with Ollama - use the below command to first bring up Qdrant and Ollama and then run Jiva
docker-compose up -d qdrant ollama && docker-compose run jiva
You will need to change the config.json
to use OpenAI
-
Clone the repository:
git clone https://github.com/KarmaloopAI/Jiva.git cd Jiva
-
Change the
config.json
configuration to set the LLM provider as OpenAI and your favourite GPT model"llm": { "provider": "openai", "api_key": "<YOUR OPENAI API KEY>", "model": "gpt-4o", "max_retries": 3, "timeout": 90 },
-
Docker Compose Build
docker compose build
-
Run Jiva
In this case, we will skip running the
ollama
servicedocker-compose up -d qdrant && docker-compose run jiva
-
Clone the repository:
git clone https://github.com/KarmaloopAI/Jiva.git cd Jiva
-
Install the required dependencies:
pip install -r requirements.txt
-
Set up Ollama and Qdrant:
- Follow the Ollama installation guide
- Follow the Qdrant installation guide
-
Configure the Jiva Framework:
- Copy
config.example.json
toconfig.json
- Adjust the settings in
config.json
to match your environment and preferences
- Copy
To start the Jiva agent, run:
python main.py
Jiva Framework is an innovative open-source project aimed at creating an AI agent that experiences time, forms memories, and operates based on ethical principles. This framework provides a unique approach to AI development, incorporating concepts such as cyclical time perception, ethical decision-making, and continuous learning.
- Temporal Awareness: Jiva operates on a day/night cycle, allowing for a more human-like perception of time.
- Memory Systems: Utilizes both short-term and long-term memory, powered by vector databases for efficient storage and retrieval.
- Ethical Framework: Incorporates ethical principles into decision-making processes, ensuring responsible AI behavior.
- Task Management: Autonomously generates, prioritizes, and executes tasks to achieve given goals.
- Adaptive Learning: Engages in cyclical learning and refinement of knowledge through regular "sleep" cycles. There is more to come on this, see below.
- Sensor Integration: Modular design allows for easy integration of various input sensors. Supports only human-input as of now.
- Action Management: Actions registry is meant to continually grow and become richer as development continues.
A key goal of the project is to allow for the agent to sleep and fine-tune its underlying LLModel by consolidating its thoughts and actions throughout the day.
For detailed documentation on the Jiva Framework's architecture, components, and usage, please refer to the Wiki (to-be-done).
We welcome contributions to the Jiva Framework! Please see our Contributing Guidelines for more information on how to get involved.
This project is licensed under the MIT License - see the LICENSE file for details.
- The Jiva Framework is inspired by ethical principles and modern AI research.
- Special thanks to the open-source communities behind Ollama and Qdrant.
You can reach out to me via LinkedIn here - Abi Chatterjee
For questions, suggestions, or discussions about the Jiva Framework, please open an issue.
⭐ If you find Jiva Framework interesting or useful, please consider giving it a star on GitHub! ⭐