mirror of
https://github.com/deepset-ai/haystack.git
synced 2026-01-06 20:17:14 +00:00
Add Reader/Retriever validations in Finder (#113)
This commit is contained in:
parent
3c7da55ac0
commit
a7d2a52759
@ -18,6 +18,8 @@ class Finder:
|
||||
def __init__(self, reader, retriever):
|
||||
self.retriever = retriever
|
||||
self.reader = reader
|
||||
if self.reader is None and self.retriever is None:
|
||||
raise AttributeError("Finder: self.reader and self.retriever can not be both None")
|
||||
|
||||
def get_answers(self, question: str, top_k_reader: int = 1, top_k_retriever: int = 10, filters: dict = None):
|
||||
"""
|
||||
@ -31,6 +33,9 @@ class Finder:
|
||||
:return:
|
||||
"""
|
||||
|
||||
if self.retriever is None or self.reader is None:
|
||||
raise AttributeError("Finder.get_answers_via_similar_questions requires self.retriever AND self.reader")
|
||||
|
||||
# 1) Apply retriever(with optional filters) to get fast candidate documents
|
||||
documents = self.retriever.retrieve(question, filters=filters, top_k=top_k_retriever)
|
||||
|
||||
@ -42,6 +47,7 @@ class Finder:
|
||||
# 2) Apply reader to get granular answer(s)
|
||||
len_chars = sum([len(d.text) for d in documents])
|
||||
logger.info(f"Reader is looking for detailed answer in {len_chars} chars ...")
|
||||
|
||||
results = self.reader.predict(question=question,
|
||||
documents=documents,
|
||||
top_k=top_k_reader)
|
||||
@ -66,6 +72,9 @@ class Finder:
|
||||
:return:
|
||||
"""
|
||||
|
||||
if self.retriever is None:
|
||||
raise AttributeError("Finder.get_answers_via_similar_questions requires self.retriever")
|
||||
|
||||
results = {"question": question, "answers": []}
|
||||
|
||||
# 1) Optional: reduce the search space via document tags
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user