gitmyhub

UltraRAG

Python ★ 5.6k updated 4h ago

A Low-Code MCP Framework for Building Complex and Innovative RAG Pipelines

UltraRAG is a Python framework for building RAG (Retrieval-Augmented Generation) systems. RAG is a technique where an AI language model is given access to a collection of documents or other data, and when you ask it a question, it searches that collection first and uses what it finds to write a more accurate answer. It is commonly used to build document Q&A tools, customer service systems, and research assistants that draw on specific knowledge bases rather than relying only on general training data.

The framework is built around an architecture called MCP (Model Context Protocol), which splits the pipeline into independent, swappable components called servers: one for searching the knowledge base, one for generating responses, one for managing documents, and so on. Developers connect these components together using YAML configuration files rather than writing all the wiring code themselves. This is what the project means by low-code: complex logic like iterating over search results, branching on conditions, or looping until the answer meets a threshold can be expressed in a few dozen lines of configuration instead of hundreds of lines of Python.

The framework includes a visual interface that functions as an IDE: you can drag components onto a canvas to design a pipeline and edit the YAML that represents it, with both views staying in sync. The same pipeline can be published as an interactive chat interface with a single command, which is useful for demos and prototypes.

UltraRAG also ships with a built-in benchmarking system so researchers can compare different retrieval or generation strategies against the same datasets without rebuilding evaluation code from scratch for each experiment. Installation is available from source using the uv package manager or via Docker.

The project is a collaboration between Tsinghua University's NLP lab, Northeastern University, and the open-source AI group OpenBMB.