/raggenie

RAGGENIE: An open-source, low-code platform to build custom Retrieval-Augmented Generation (RAG) Copilets with your own data. Simplify AI development with ease!

Primary LanguagePythonMIT LicenseMIT

RAGGENIE Logo

RAGGENIE

What is RAGGENIE

RAGGENIE is a low-code RAG builder designed to make it easy to build your own conversational AI applications. RAGGENIE out of the box pluggins where you can connect to multiple data sources and create a conversational AI on top of that, along with integrating it with pre-built agents for actions.

The project is in its early stages, and we are working on adding more capabilities soon.

โ€ข Open-source tool: Since there is some community interest in this project and we can't build all the plugins ourselves, we decided to release it under the MIT license, giving the community full freedom.

โ€ข Current focus: We are currently focused on making it easy to build RAG Application. Going forward we will be focusing on maintaince and monitoring of the RAG system as well cosidering how to help these applications to take from pilots to production.

RAGGENIE Demo

  1. Demo with database - Demo with database
  2. Demo with website data - Demo with website data

๐ŸŒŽ Communities

Join our communities for product updates, support, and to stay connected with the latest from RAGGENIE!

๐Ÿ“ Architecture

picture of Architecture flow

๐Ÿ”ฎ Supported LLM Inferences

Raggenie supports inference APIs to different LLM providers to run your model. The are the inference APIs currently supported by us:

๐Ÿ—ƒ๏ธ Data Sources

These connectors will help you connect your data to RAG. It can handle structured or unstructured data, enabling the RAG to answer questions from these sources.

  • Structured Datasources(airtable):
    You can use raggenie to connect to your data sources to analyse it or to intergrate it to your application. Raggenie generates queries to execute on your data sources and provides the results. Current integrations are:

  • Document based sources(default):
    These sources allows you to load documents such as text documents or Word documents to create an AI chat application that can interact with this data. Current integrations are:

๐Ÿ’กCapabilities

you can have more functionalities from RAGGENIE than just as a chatbot by defining its capabilities. They can be used to do tasks such as booking a meeting, checking a calendar, or completing a form from the chat.

Capabilities of the chatbot are defined by the user at the time of configuration. You can setup parameters required for each capability.

  • RAGGENIE can make sure that all the parameters are obtained for executing the capability.
  • RAGGENIE uses intent extraction to decide which of its defined capabilities should be used.
  • Capabilities can be used to trigger different actions.

๐Ÿค– Agents/Actions

RAGGENIE can do actions to accomplish tasks with user queries. These can be setup along with capabilities to make RAGGENIE more than just a coversation bot. Currently supported actions are.

  • Fetch data from a database
  • Insert data into database

๐Ÿ–ผ๏ธ UI Plugin

This component will help you embed the chat widget into your UI with JavaScript. So that you can embeed this as a chat bot to your website or portal

๐Ÿ› ๏ธ Getting Started

You can use RAGGENIE to create your own conversational chat feature for your application either by integrating it as a chatbot or by embedding it into your application. You can also use it to create different chatbots for different internal teams by tuning each chatbot for different tasks and using different knowledge base for different usecases.

How to run Video

Setting up RAGGENIE

๐Ÿ“„ Documentation

Comprehensive documentation is available to help you get the most out of RAGGENIE. The full documentation for RAGGENIE can be found here

๐Ÿ“ฆ Installation and running

Raggenie Backend

  • Installing dependencies

    • Using requirements.txt

      To install the required dependencies with pip, run:

      pip install -r requirements.txt
    • Using Poetry

      First, install Poetry:

      curl -sSL https://install.python-poetry.org | python3 -

      Then, to install the dependencies, run:

      poetry install
  • Running RAGGENIE backend

    To run RAGGENIE in API mode, specify the config file to use by running the following command:

    python main.py --config ./config.yaml llm

    Below is a sample configuration for the vector database setup in config.yaml:

    vector_db:
      name: "chroma"
      params:
        path: "./vector_db"
        embeddings:
          provider: "chroma_default"

This configuration ensures that the RAGGENIE system connects to the chroma vector database and uses the default embeddings provided by Chroma.

Raggenie Frontend

  • Move into the ui folder.

    cd ./ui
    
  • Install dependencies

    npm install
  • Running RAGGENIE Frontend

    • To run RAGGENIE frontend, create a .env file and add the URL to backend as env variables

      VITE_BACKEND_URL=${BACKEND_URL}
    • To start the server, run

      npm run dev

for more details visit frontend readme

โ›”๏ธ Troubleshooting

If you encounter an error while running Python, please check the following

๐Ÿšง Feature Pipeline

These are the planned features and improvements that are in the pipeline for future releases.

  • REST API Requests for actions
  • Web hooks for actions

๐Ÿ“œ License

RagGenie is licensed under the MIT License, which is a permissive open-source license that allows you to freely use, modify, and distribute the software with very few restrictions.

๐Ÿค Contributing

Contributions are welcome! Please check the outstanding issues and feel free to open a pull request. For more information, please check out the contribution guidelines.