Skip to main content
In many practical scenarios, you may want to use multiple different Retriever or Generation modules in the same Pipeline to perform different logical tasks, such as hybrid retrieval or multi-agent systems. In fact, this only requires setting different parameters for the same module. For this reason, UltraRAG provides a simple and flexible mechanism — By configuring different aliases for the same Server module, module reuse and independent calling can be achieved.

Usage Example

Step 1: Configure Alias Server

In pipeline.yaml, you can define multiple aliases for the same path under the servers field:
examples/hybrid_search.yaml
In this example, both dense and bm25 point to the same module path servers/retriever, but will be built and called as two independent Server instances.

Step 2: Call Separately in Pipeline

In the Pipeline definition section, you can use their aliases just like calling different modules:
examples/hybrid_search.yaml
In this way, UltraRAG automatically distinguishes these two instances at runtime: Each alias corresponds to independent parameter files, runtime context, and cache space, thereby achieving multi-module parallel and non-interfering calls.