Saltar al contenido principal

AgenticSingleRetriever

Retriever
DashAI.back.models.RAG.retrievers.composite.AgenticSingleRetriever

Iteratively deepens a single child's retrieval under LLM supervision.

Round 1 delegates to the child with no size override (its own configuration drives). After each round but the last, the pool is judged; an insufficient verdict's top_k becomes the next delegation's retrieval-size hint, clamped to the remaining budget, with a progress guarantee that turns a zero-progress request into the smallest one that can add a chunk.

A composite child interprets that hint under its own contract. The default hybrid child keeps its configured budget and may therefore fill the pool before the first judgement; raise max_chunks or choose a child that honours the hint when deeper rounds are required.

Parameters​

enable_retrieve_then_expand : boolean, default=False
Widen each retrieved chunk with its neighbouring chunks before the chunks are returned as the retriever's context.
expand_window : integer, default=3
Total number of chunks in the expanded window, the retrieved one included. Odd values are centred exactly on the retrieved chunk; even values keep the extra chunk after it. Windows never leave the document, and overlapping windows merge into one concatenated chunk.
children : array, default=[{'component': 'ParallelRetriever', 'params': {'children': [{'component': 'BM25Retriever', 'params': {'b': 0.75, 'delta': 0.0, 'k1': 1.5, 'similarity_function': 'cosine', 'top_k': 5, 'vectorizer': {'component': 'BagOfWordsConverter', 'params': {'analyzer': 'word', 'custom_stop_words': None, 'drop_source_columns': False, 'lower_bound_ngrams': 1, 'lowercase': True, 'max_df': 1.0, 'max_features': None, 'min_df': 0.0, 'stop_words': None, 'strip_accents': None, 'upper_bound_ngrams': 1}}}}, {'component': 'DenseEmbeddingRetriever', 'params': {'embedding_model': {'component': 'ParaphraseMultilingualMiniLML12V2Embedding', 'params': {'batch_size': 32, 'device': 'CPU', 'normalize': True, 'overflow_strategy': 'truncate'}}, 'similarity_metric': 'cosine', 'top_k': 5}}], 'merge_strategy': 'round_robin'}}]
The single child retriever that is delegated to. The retriever is blind to its identity: the prompt never names it. Defaults to the default hybrid retriever; you can change it.
max_chunks : integer, default=10
Maximum number of chunks the accumulated pool may hold.
max_iters : integer, default=3
Maximum number of retrieval rounds. The final round is not judged, so there are at most this many minus one LLM calls.
function_call_max_trials : integer, default=3
Maximum number of function-calling evaluation attempts, including the first. When the verdict is unusable or has no valid operation left, the evaluation is retried until this limit is reached.
prompt : object
The prompt used to judge whether the retrieved chunks suffice.
llm_model : object
The language model that judges retrieval sufficiency. Defaults to the default RAG function-calling LLM; you can change it.

Methods​

retrieve(self, query: 'str', **kwargs: 'Any') -> 'Tuple[List[Chunk], Dict[str, Any]]'

Defined on AgenticSingleRetriever

Retrieve by delegating to the child and iteratively deepening.

Parameters

query : str
The search query string.
**kwargs
Unused; delegation sizes come from the LLM verdicts.

Returns

Tuple[List[Chunk], Dict[str, Any]]
The final pool (at most max_chunks chunks) and this retriever's trace node, whose children holds every delegated child node and whose rounds holds one summary per retrieval round.

score_chunks(self, chunk_ids: 'List[int]', query: 'str') -> 'List[Tuple[int, float]]'

Defined on AgenticSingleRetriever

Score chunks by delegating to the single child.

Parameters

chunk_ids : List[int]
List of chunk IDs to score.
query : str
The search query string.

Returns

List[Tuple[int, float]]
A list of (chunk_id, distance) tuples from the child.

add(self, child: DashAI.back.models.RAG.retrievers.base_retriever.BaseRetriever) -> None

Defined on CompositeRetriever

Add a child retriever.

close(self) -> 'None'

Defined on AgenticRetriever

Release the evaluation LLM and nested agentic children.

Returns

None
Nothing.

expand_retrieved_chunks(self, chunks: List[DashAI.back.models.RAG.documents.chunk.Chunk], window_size: int) -> List[DashAI.back.models.RAG.documents.chunk.Chunk]

Defined on BaseRetriever

Expand chunks into centred windows and merge overlapping windows.

get_children(self) -> List[DashAI.back.models.RAG.retrievers.base_retriever.BaseRetriever]

Defined on CompositeRetriever

Return a copy of the children list.

get_credential(self, name: str)

Defined on ConfigObject

Resolve a registered credential component by name.

Parameters

name : str
Credential component class name (e.g. "HuggingFaceCredential").

Returns

BaseCredential
An instance of the requested credential component.

get_id(self) -> int | None

Defined on BaseRetriever

Return the database ID of this retriever, or None.

get_metadata(cls) -> Dict[str, Any]

Defined on BaseRetriever

Return the UI metadata shared by every retriever.

Returns

Dict[str, Any]
Dictionary with the icon shown for the retriever in the frontend and, when declared, its representation template and the category the retriever pickers group it under.

get_representation(cls) -> DashAI.back.core.utils.MultilingualString | None

Defined on BaseRetriever

Return the retriever's representation template, if any.

Returns

MultilingualString | None
The template with {param} / {nested.param} placeholders, or None when the frontend should fall back to the component description.

get_schema(cls) -> dict

Defined on ConfigObject

Generates the component related Json Schema.

Returns

dict
Dictionary representing the Json Schema of the component.

get_schema_summary(self) -> DashAI.back.models.RAG.retrievers.retrieval_contracts.SchemaSummary

Defined on BaseRetriever

Return a recursive, JSON-serializable summary of this retriever.

Returns

SchemaSummary
{"class": ..., "params": ...} plus children when present.

get_schema_summary_parameters(cls) -> Dict[str, str]

Defined on BaseRetriever

Return a copy of the summary parameter mapping for the frontend.

init_model(self) -> None

Defined on BaseRetriever

Called by the factory after inject_infra().

inject_infra(self, env_RAG_path: str | os.PathLike, chunks: Dict[int, Dict[int, DashAI.back.models.RAG.documents.chunk.Chunk]], persistence: Any, documents: Optional[Dict[int, DashAI.back.models.RAG.documents.source_document.SourceDocument]] = None) -> None

Defined on BaseRetriever

Inject runtime infrastructure after schema validation.

load(self, filename: str = '') -> None

Defined on BaseRetriever

Restore the retriever's state from disk.

merge_expanded_chunks(self, chunks: List[DashAI.back.models.RAG.documents.chunk.Chunk]) -> List[DashAI.back.models.RAG.documents.chunk.Chunk]

Defined on BaseRetriever

Merge overlapping expanded units without widening plain chunks.

remove(self, child: DashAI.back.models.RAG.retrievers.base_retriever.BaseRetriever) -> None

Defined on CompositeRetriever

Remove a child retriever.

save(self, filename: str = '') -> None

Defined on BaseRetriever

Persist the retriever's state to disk.

set_id(self, id: int) -> None

Defined on BaseRetriever

Assign a database ID to this retriever.

set_trace_params(self, params: Dict[str, Any]) -> None

Defined on BaseRetriever

Store a JSON-serializable snapshot of this retriever's configuration.

Parameters

params : Dict[str, Any]
Raw construction parameters captured by the factory before any nested component reference is consumed. A deep copy is stored so later mutations of the original mapping cannot affect trace rendering.

validate_and_transform(self, raw_data: dict) -> dict

Defined on ConfigObject

It takes the data given by the user to initialize the model and returns it with all the objects that the model needs to work.

Parameters

raw_data : dict
A dictionary with the data provided by the user to initialize the model.

Returns

dict
A validated dictionary with the necessary objects.