haive.agents.rag.fusion.agent¶

RAG Fusion Agents.

from typing import Any Implementation of RAG Fusion with reciprocal rank fusion for enhanced retrieval. Based on the architecture pattern from rag-architectures-flows.md.

Classes¶

FusionResult

Results from reciprocal rank fusion.

MultiQueryRetrievalAgent

Agent that uses a callable node for multi-query retrieval - proper Pydantic approach.

QueryVariationsFusion

Enhanced query variations for fusion.

RAGFusionAgent

Complete RAG Fusion agent with query expansion and RRF.

ReciprocalRankFusionAgent

Agent that performs reciprocal rank fusion on multiple retrieval results.

Functions¶

create_multi_query_retrieval_callable(documents[, ...])

Create a callable function for multi-query retrieval that can be used as a graph node.

create_rag_fusion_agent(documents[, llm_config, ...])

Create a RAG Fusion agent.

get_rag_fusion_io_schema()

Get I/O schema for RAG Fusion agents.

Module Contents¶

class haive.agents.rag.fusion.agent.FusionResult(/, **data)¶

Bases: pydantic.BaseModel

Results from reciprocal rank fusion.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

class haive.agents.rag.fusion.agent.MultiQueryRetrievalAgent¶

Bases: haive.agents.base.agent.Agent

Agent that uses a callable node for multi-query retrieval - proper Pydantic approach.

build_graph()¶

Build multi-query retrieval graph with callable node using Pydantic fields.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

class haive.agents.rag.fusion.agent.QueryVariationsFusion(/, **data)¶

Bases: pydantic.BaseModel

Enhanced query variations for fusion.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

class haive.agents.rag.fusion.agent.RAGFusionAgent¶

Bases: haive.agents.multi.base.SequentialAgent

Complete RAG Fusion agent with query expansion and RRF.

classmethod from_documents(documents, llm_config=None, embedding_model=None, num_variations=3, k_parameter=60.0, **kwargs)¶

Create RAG Fusion agent from documents.

Parameters:
  • documents (list[langchain_core.documents.Document]) – Documents to index

  • llm_config (haive.core.models.llm.base.LLMConfig | None) – LLM configuration

  • embedding_model (str | None) – Embedding model for retrieval

  • num_variations (int) – Number of query variations to generate

  • k_parameter (float) – RRF k parameter

  • **kwargs – Additional arguments

Returns:

RAGFusionAgent instance

class haive.agents.rag.fusion.agent.ReciprocalRankFusionAgent¶

Bases: haive.agents.base.agent.Agent

Agent that performs reciprocal rank fusion on multiple retrieval results.

build_graph()¶

Build RRF fusion graph.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

haive.agents.rag.fusion.agent.create_multi_query_retrieval_callable(documents, embedding_model=None, max_docs_per_query=10)¶

Create a callable function for multi-query retrieval that can be used as a graph node.

Parameters:
  • documents (list[langchain_core.documents.Document])

  • embedding_model (str | None)

  • max_docs_per_query (int)

haive.agents.rag.fusion.agent.create_rag_fusion_agent(documents, llm_config=None, fusion_type='standard', **kwargs)¶

Create a RAG Fusion agent.

Parameters:
  • documents (list[langchain_core.documents.Document]) – Documents for retrieval

  • llm_config (haive.core.models.llm.base.LLMConfig | None) – LLM configuration

  • fusion_type (str) – Type of fusion (“standard”, “aggressive”, “conservative”)

  • **kwargs – Additional arguments

Returns:

Configured RAG Fusion agent

Return type:

RAGFusionAgent

haive.agents.rag.fusion.agent.get_rag_fusion_io_schema()¶

Get I/O schema for RAG Fusion agents.

Return type:

dict[str, list[str]]