# Ollama Slixmpp Bot with OMEMO
A basic echo-bot built with slixmpp and slixmpp-omemo that relays your messages to a locally running ollama server with end to end encryption.
## Dependancies
- [ollama 0.1.14](https://ollama.com/download/linux)
- [LLM](https://ollama.com/library)
- [llama3](https://ollama.com/library/llama3)
## Installation
```bash
git clone --bare https://github.com/m6freeman/ollama_slixmpp_omemo_bot
cd ollama_slixmpp_omemo_bot.git; git worktree add main; cd main
python -m venv .venv; ./.venv/bin/activate
pip install -r requirements.txt
# There is a httpx dependancy conflict. These should be installed in this order.
pip install ollama; pip install ollama-python
```
## Usage
First Terminal instance
```bash
ollama serve
```
Second Terminal instance
```bash
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python python ./src/ollama_slixmpp_omemo_bot/main.py
# Enter JID: service-account@example-server.im
# Enter Password:
```
With OMEMO and Blind Trust enabled, message service-account@example-server.im from another account.
Recommended and tested clients:
- Conversations
- Profanity
- You may need to manually trust their fingerprint
Typically when MissingOwnKeys exception raises, starting a new omemo session and manually trusting the fingerprint tends to resolve the issue.
## Credit
[Slixmpp OMEMO plugin | Copyright (C) 2010 Nathanael C. Fritz | Copyright (C) 2019 Maxime “pep” Buquet ](https://codeberg.org/sxavier/slixmpp-omemo/src/branch/main/examples/echo_client.py)