Module docs2answers
Docs2Answers
class Docs2Answers(BaseComponent)
This Node is used to convert retrieved documents into predicted answers format.
It is useful for situations where you are calling a Retriever only pipeline via REST API. This ensures that your output is in a compatible format.
Arguments:
progress_bar
: Whether to show a progress bar
Module join_docs
JoinDocuments
class JoinDocuments(JoinNode)
A node to join documents outputted by multiple retriever nodes.
The node allows multiple join modes:
- concatenate: combine the documents from multiple nodes. Any duplicate documents are discarded. The score is only determined by the last node that outputs the document.
- merge: merge scores of documents from multiple nodes. Optionally, each input score can be given a different
weight
& atop_k
limit can be set. This mode can also be used for "reranking" retrieved documents. - reciprocal_rank_fusion: combines the documents based on their rank in multiple nodes.
JoinDocuments.__init__
def __init__(join_mode: str = "concatenate",
weights: Optional[List[float]] = None,
top_k_join: Optional[int] = None,
sort_by_score: bool = True)
Arguments:
join_mode
:concatenate
to combine documents from multiple retrieversmerge
to aggregate scores of individual documents,reciprocal_rank_fusion
to apply rank based scoring.weights
: A node-wise list(length of list must be equal to the number of input nodes) of weights for adjusting document scores when using themerge
join_mode. By default, equal weight is given to each retriever score. This param is not compatible with theconcatenate
join_mode.top_k_join
: Limit documents to top_k based on the resulting scores of the join.sort_by_score
: Whether to sort the incoming documents by their score. Set this to True if all your Documents are coming withscore
values. Set to False if any of the Documents come from sources where thescore
is set toNone
, likeTfidfRetriever
on Elasticsearch.
Module join_answers
JoinAnswers
class JoinAnswers(JoinNode)
A node to join Answer
s produced by multiple Reader
nodes.
JoinAnswers.__init__
def __init__(join_mode: str = "concatenate",
weights: Optional[List[float]] = None,
top_k_join: Optional[int] = None,
sort_by_score: bool = True)
Arguments:
join_mode
:"concatenate"
to combine documents from multipleReader
s."merge"
to aggregate scores of individualAnswer
s.weights
: A node-wise list (length of list must be equal to the number of input nodes) of weights for adjustingAnswer
scores when using the"merge"
join_mode. By default, equal weight is assigned to eachReader
score. This parameter is not compatible with the"concatenate"
join_mode.top_k_join
: LimitAnswer
s to top_k based on the resulting scored of the join.sort_by_score
: Whether to sort the incoming answers by their score. Set this to True if your Answers are coming from a Reader or TableReader. Set to False if any Answers come from a Generator since this assigns None as a score to each.
Module route_documents
RouteDocuments
class RouteDocuments(BaseComponent)
A node to split a list of Document
s by content_type
or by the values of a metadata field and route them to
different nodes.
RouteDocuments.__init__
def __init__(split_by: str = "content_type",
metadata_values: Optional[List[str]] = None)
Arguments:
split_by
: Field to split the documents by, either"content_type"
or a metadata field name. If this parameter is set to"content_type"
, the list ofDocument
s will be split into a list containing onlyDocument
s of type"text"
(will be routed to"output_1"
) and a list containing onlyDocument
s of type"table"
(will be routed to"output_2"
). If this parameter is set to a metadata field name, you need to specify the parametermetadata_values
as well.metadata_values
: If the parametersplit_by
is set to a metadata field name, you need to provide a list of values to group theDocument
s to.Document
s whose metadata field is equal to the first value of the provided list will be routed to"output_1"
,Document
s whose metadata field is equal to the second value of the provided list will be routed to"output_2"
, etc.