pythonadvanced

Haystack Question Answering Pipeline

Build a document retrieval and Q&A pipeline using Haystack 2.0 with OpenAI backend.

python
from haystack import Pipeline, Document
from haystack.components.embedders import OpenAITextEmbedder, OpenAIDocumentEmbedder
from haystack.components.retrievers.in_memory import InMemoryEmbeddingRetriever
from haystack.components.builders import ChatPromptBuilder
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.document_stores.in_memory import InMemoryDocumentStore

store = InMemoryDocumentStore()
doc_embedder = OpenAIDocumentEmbedder()

docs = [Document(content='Python is great for data science.'), Document(content='FastAPI builds performant APIs.')]
doc_embedder.warm_up()
embedded_docs = doc_embedder.run(documents=docs)
store.write_documents(embedded_docs['documents'])

p = Pipeline()
p.add_component('embedder', OpenAITextEmbedder())
p.add_component('retriever', InMemoryEmbeddingRetriever(document_store=store))
p.connect('embedder.embedding', 'retriever.query_embedding')

result = p.run({'embedder': {'text': 'What tools exist for APIs?'}})
for doc in result['retriever']['documents']:
    print(doc.content)

Use Cases

  • enterprise RAG
  • document retrieval
  • knowledge search

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.