Skip to main content

An AI assistant powered by Llama models

Project description

Llama Assistant

Llama Assistant

Local AI Assistant That Respects Your Privacy! 🔒

Website: llama-assistant.nrl.ai

Llama Assistant

Python Llama 3 DeepSeek License Version Stars Forks Issues Downloads Downloads

Llama Assistant - Local AI Assistant That Respects Your Privacy! 🔒 | Product Hunt

AI-powered assistant to help you with your daily tasks, powered by Llama 3.2. It can recognize your voice, process natural language, and perform various actions based on your commands: summarizing text, rephrasing sentences, answering questions, writing emails, and more.

This assistant can run offline on your local machine, and it respects your privacy by not sending any data to external servers.

Screenshot

https://github.com/user-attachments/assets/af2c544b-6d46-4c44-87d8-9a051ba213db

Settings

Supported Models

TODO

  • 🖼️ Support multimodal model: moondream2.
  • 🗣️ Add wake word detection: "Hey Llama!".
  • 🛠️ Custom models: Add support for custom models.
  • 📚 Support 5 other text models.
  • 🖼️ Support 5 other multimodal models.
  • ⚡ Streaming support for response.
  • 🎙️ Add offline STT support: WhisperCPP.
  • 🧠 Knowledge database: LlamaIndex
  • ⌖ Screen Spot: Screen capture and analyze with OCR
  • 🔌 Plugin system for extensibility.
  • 📰 News and weather updates.
  • 📧 Email integration with Gmail and Outlook.
  • 📝 Note-taking and task management.
  • 🎵 Music player and podcast integration.
  • 🤖 Workflow with multiple agents.
  • 🌐 Multi-language support: English, Spanish, French, German, etc.
  • 📦 Package for Windows, Linux, and macOS.
  • 🔄 Automated tests and CI/CD pipeline.

Features

  • 🎙️ Voice recognition for hands-free interaction.
  • 💬 Natural language processing with Llama 3.2.
  • 🖼️ Image analysis capabilities (TODO).
  • ⚡ Global hotkey for quick access (Cmd+Shift+Space on macOS).
  • 🎨 Customizable UI with adjustable transparency.
  • ⚙️ Custom Actions: Create, edit, hide, and reorder action buttons with custom prompts. Learn more

Note: This project is a work in progress, and new features are being added regularly.

Technologies Used

  • Python
  • Llama
  • SpeechRecognition
  • yt

Installation

Recommended Python Version: 3.10.

Install PortAudio:

Install `PortAudio`_. This is required by the `PyAudio`_ library to stream audio from your computer's microphone. PyAudio depends on PortAudio for cross-platform compatibility, and is installed differently depending on the platform.
  • For Mac OS X, you can use Homebrew_::

    brew install portaudio
    

    Note: if you encounter an error when running pip install that indicates it can't find portaudio.h, try running pip install with the following flags::

    pip install --global-option='build_ext' \
        --global-option='-I/usr/local/include' \
        --global-option='-L/usr/local/lib' \
        pyaudio
    
  • For Debian / Ubuntu Linux::

    apt-get install portaudio19-dev python3-all-dev
    
  • Windows may work without having to install PortAudio explicitly (it will get installed with PyAudio).

For more details, see the PyAudio installation_ page.

.. _PyAudio: https://people.csail.mit.edu/hubert/pyaudio/ .. _PortAudio: http://www.portaudio.com/ .. _PyAudio installation: https://people.csail.mit.edu/hubert/pyaudio/#downloads .. _Homebrew: http://brew.sh

On Windows: Installing the MinGW-w64 toolchain

- Download and install with instructions from [here](https://code.visualstudio.com/docs/cpp/config-mingw). - Direct download link: [MinGW-w64](https://github.com/msys2/msys2-installer/releases/download/2024-01-13/msys2-x86_64-20240113.exe).

Install from PyPI:

pip install pyaudio
pip install git+https://github.com/stlukey/whispercpp.py
pip install llama-assistant

Or install from source:

  1. Clone the repository:
git clone https://github.com/nrl-ai/llama-assistant.git
cd llama-assistant
  1. Install the required dependencies and install the package:
pip install pyaudio
pip install git+https://github.com/stlukey/whispercpp.py
pip install -r requirements.txt
pip install .

Speed Hack for Apple Silicon (M1, M2, M3) users: 🔥🔥🔥

  • Install Xcode:
# check the path of your xcode install
xcode-select -p

# xcode installed returns
# /Applications/Xcode-beta.app/Contents/Developer

# if xcode is missing then install it... it takes ages;
xcode-select --install
  • Build llama-cpp-python with METAL support:
pip uninstall llama-cpp-python -y
CMAKE_ARGS="-DGGML_METAL=on" pip install -U llama-cpp-python --no-cache-dir

# You should now have llama-cpp-python v0.1.62 or higher installed
# llama-cpp-python         0.1.68

Usage

Run the assistant using the following command:

llama-assistant

# Or with a
python -m llama_assistant.main

Use the global hotkey (default: Cmd+Shift+Space) to quickly access the assistant from anywhere on your system.

Configuration

The assistant's settings can be customized by editing the settings.json file located in your home directory: ~/llama_assistant/settings.json.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the GPLv3 License - see the LICENSE file for details.

Acknowledgements

Star History

Star History Chart

Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llama_assistant-0.1.44.tar.gz (7.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llama_assistant-0.1.44-py3-none-any.whl (483.0 kB view details)

Uploaded Python 3

File details

Details for the file llama_assistant-0.1.44.tar.gz.

File metadata

  • Download URL: llama_assistant-0.1.44.tar.gz
  • Upload date:
  • Size: 7.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llama_assistant-0.1.44.tar.gz
Algorithm Hash digest
SHA256 36ffdfec34fa13d2457570bf8bbb1d4796c2866320e9214c7f33054f63c4f179
MD5 a39a94f9a5854fc5059044b1570add01
BLAKE2b-256 ccf2f5a1ddebf277d3e426e094afa805a5b06b1f23076c7e07234be046feda58

See more details on using hashes here.

Provenance

The following attestation bundles were made for llama_assistant-0.1.44.tar.gz:

Publisher: publish-to-pypi.yml on nrl-ai/llama-assistant

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llama_assistant-0.1.44-py3-none-any.whl.

File metadata

File hashes

Hashes for llama_assistant-0.1.44-py3-none-any.whl
Algorithm Hash digest
SHA256 d819ffaa05cb4f88aa3f6545c3755ce5e3a4f1854135f2e519264bd4f3524821
MD5 f167866569676842d46215168a1a814f
BLAKE2b-256 cfdfd06062e390efafa79e7bfdbc705042f6da782c604182442ab5b2a3fb8e54

See more details on using hashes here.

Provenance

The following attestation bundles were made for llama_assistant-0.1.44-py3-none-any.whl:

Publisher: publish-to-pypi.yml on nrl-ai/llama-assistant

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page