Git Product home page Git Product logo

auto_llama's Introduction

AutoLLaMa

Supercharge your local LLM with AutoLLaMa!

This project is a union off different concepts/ideas to improve the capabilities of LLMs. It is build to be a library, that can be used to get started with any LLM related project.

ℹ️ NOTE: Maybe you also found my text_generation_webui_auto_llama repository on GitHub. This is NOT an extension of auto-llama for oobabooga/text-generation-webui!

⚠️ WARNING: This project is still in early development! Things (like restructuring the whole project) may change without any notice!

Introduction

AutoLLaMa itself is just a set classes to ensure interoperability between different libraries and projects. Additionally this repository contains some baseimplementation of often needed tools, like RAG (auto_llama_memory) and function calling (auto_llama_agents)

The following packages are part of this repository:

  • auto_llama: The core of the project. It provides classes to implement an LLM, a generic Chat class and some more
    • text: Text processing tools
    • audio: Audio processing tools
  • auto_llama_agents: A function calling system, with solutions for deciding which Agent to call depending on the conversation
  • auto_llama_memory: A long term memory solution for generic data and conversations

Every package is designed to be used independently of all other packages (except auto_llama).

Install

At the moment it is not possible to install AutoLLaMa using pip. You can either install the prebuild wheels from GitHub or install it directly from source.

In order to make the package light weight there are optional dependencies defined separately for each package/submodule. You cann install them separately.

Example:

pip install auto-llama[agents.code]
pip install auto-llama[extras.text]

Prebuild wheel

There are prebuild wheels of this package available on the GitHub releases. They can be installed as follows:

pip install auto-llama --index-url https://github.com/lufixSch/auto_llama/releases/download/latest/

If you just want a specific version replace latest with the version you are interested in.

From source

  1. Clone the repository
  2. pip install . in the root directory of the repository

In order to make the package light weight there are optional dependencies defined separately for each package. You cann install them separately.

Development

Install the package in editable mode

pip install -e .[<optional_dependencies>]

Ideas

Here are some ideas for additional features, that I'm working on or plan to work on:

  • Improve logging interface
    • Add logging base class
    • Allow submodules to log as the Agent from which they where called
  • Improve Memory
    • Fetch more information than necessary and filter with similarity to improve accuracy
    • Optionally pass source(s) on Memory.save
    • Save original (unprocessed) data Optional
    • Retrieve window of data around the matching segment
    • add sliding window paragraphing instead of splitting
  • Text loader
    • ImageTextLoader -> Get text from image
    • PdfTextLoader -> Get text from PDF (maybe try to get equations in some way)
  • More Agents
  • Improve Chat class
    • Multi user chat
    • Improve Chat memory interface
      • Load/Save chat from/to database (possibly Embeddings DB)
  • Rework selectors to allow multiple agents to be used
    • Multi Agent selector
    • Generate multiple objectives from one input
    • Run multiple agents with their corresponding objective
  • Add trigger (e.g. interface for external sources to trigger an LLM response or agent)
  • Rework with multithreading
  • Add time aware memory (No Idea how to do this!)
    • Idea: Fetch x recent memory's and y memory's (time independent) and mark them as recent/general
    • add time tracking to chat messages
  • Add custom prompt templates
  • Add image/multimodal memory (Supported by txtai out of the box)
  • Speach
    • Add TTS
      • Realtime/Stream TTS
      • cuqoi-ai TTS
      • vocoder or similar
      • voice clone
    • Add transcription (realtime transscript)
      • Realtime/Stream Transscript

Contributing

You can contribute to the project by submitting a pull request or by opening an issue for bugs or feature requests. I'm always open for new ideas 😃

auto_llama's People

Contributors

lufixsch avatar

Stargazers

 avatar Ryder Wishart avatar Jim Fung avatar  avatar

Watchers

Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.