Haystack 0.3.0 adds Dense Passage Retrieval, pipeline evaluation, PDF/DOCX indexing, ONNXRuntime support, and a file-upload REST endpoint.
$ git clone --branch 0.3.0 https://github.com/deepset-ai/haystack.git # already have the repo? check out this version: $ git checkout 0.3.0
from haystack.retriever.dense import DensePassageRetriever
retriever = DensePassageRetriever(
document_store=document_store,
embedding_model="dpr-bert-base-nq",
do_lower_case=True,
use_gpu=True
)
results = retriever.retrieve(query="What is cosine similarity?") top_k affects accuracy.document_store.add_eval_data("../data/nq/nq_dev_subset_v2.json")
retriever.eval(top_k=10)
reader.eval(document_store=document_store, device=device)
finder.eval(top_k_retriever=10, top_k_reader=10) from haystack.indexing.file_converters.pdf import PDFToTextConverter
converter = PDFToTextConverter(
remove_header_footer=True,
remove_numeric_tables=True,
valid_languages=["de", "en"]
)
pages = converter.extract_pages(file_path="report.pdf") - ›Adds
DensePassageRetrieverclass withembedding_model,do_lower_case, anduse_gpuarguments, enabling dual-encoder BERT-based retrieval that outperforms token-overlap methods when query and passage vocabulary differ. - ›Adds eval() methods to
retriever,reader, andfinder(via finder.eval(top_k_retriever=..., top_k_reader=...)) for end-to-end pipeline evaluation of recall, precision, and speed. - ›Adds document_store.add_eval_data() to load evaluation datasets (e.g. NQ-format JSON) directly into a DocumentStore for retriever and reader benchmarking.
- ›Adds
PDFToTextConverter(fromhaystack.indexing.file_converters.pdf) withremove_header_footer,remove_numeric_tables, andvalid_languagesarguments, plusDocxToTextConverter(fromhaystack.indexing.file_converters.docx), both exposing extract_pages(file_path=...) for ingesting PDF and DOCX documents. - ›Adds
BaseConverterclass with shared cleaning functions (header/footer removal, numeric table stripping) as a foundation for file-format-specific converters.
+8 moreshow less
- ›Adds ONNXRuntime support to the Reader, enabling CPU-optimised inference without GPU.
- ›Adds a REST API endpoint to upload files for indexing.
- ›Adds
EMBEDDING_MODEL_FORMATconfiguration key to the REST API config. - ›Adds a dummy retriever for benchmarking reader-only pipeline configurations.
- ›Adds tag-based filtering to
InMemoryDocumentStore. - ›Adds embedding query support to
InMemoryDocumentStore. - ›Adds custom port configuration to
ElasticsearchDocumentStore. - ›Makes the FAQ question field in DocumentStores customizable.
- !The
gpuinitialisation argument onDensePassageRetrieverandEmbeddingRetrieveris renamed touse_gpu; existing code passinggpu=Truewill break.