Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion index.toml
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ notebook = "48_Conversational_RAG.ipynb"
aliases = []
completion_time = "20 min"
created_at = 2025-12-30
dependencies = ["haystack-experimental>=0.16.0", "datasets"]
dependencies = ["haystack-experimental==0.19.0.post1", "datasets"]
featured = true

[[tutorial]]
Expand Down
16 changes: 9 additions & 7 deletions tutorials/48_Conversational_RAG.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"- **Level**: Advanced\n",
"- **Time to complete**: 20 minutes\n",
"- **Components Used**: [`Agent`](https://docs.haystack.deepset.ai/docs/agent), [`ChatPromptBuilder`](https://docs.haystack.deepset.ai/docs/chatpromptbuilder), [`InMemoryBM25Retriever`](https://docs.haystack.deepset.ai/docs/inmemorybm25retriever) [`OpenAIChatGenerator`](https://docs.haystack.deepset.ai/docs/openaichatgenerator)\n",
"- **Experimental Components Used**: [`ChatMessageStore`](https://docs.haystack.deepset.ai/reference/experimental-chatmessage-store-api), [`ChatMessageRetriever`](https://docs.haystack.deepset.ai/reference/experimental-retrievers-api#chatmessageretriever), [`ChatMessageWriter`](https://docs.haystack.deepset.ai/reference/experimental-writers-api)\n",
"- **Archived Components Used**: [`InMemoryChatMessageStore`](https://github.com/deepset-ai/haystack-experimental/blob/v0.19.0/haystack_experimental/chat_message_stores/in_memory.py), [`ChatMessageRetriever`](https://github.com/deepset-ai/haystack-experimental/blob/v0.19.0/haystack_experimental/components/retrievers/chat_message_retriever.py), [`ChatMessageWriter`](https://github.com/deepset-ai/haystack-experimental/blob/v0.19.0/haystack_experimental/components/writers/chat_message_writer.py)\n",
"- **Prerequisites**: You need an [OpenAI API Key](https://platform.openai.com/api-keys)\n",
"- **Goal**: After completing this tutorial, you'll have learned how to incorporate a conversational history into a RAG pipeline to enable multi-turn conversations grounded in documents.\n",
"\n",
Expand All @@ -22,9 +22,11 @@
"\n",
"**Why is this useful?** By incorporating conversational memory, a RAG system can remember earlier parts of a conversation. This allows users to ask natural follow-up questions without restating context, while the pipeline continues to retrieve relevant information and generate accurate responses based on the full conversation history.\n",
"\n",
"> 🧪 **Beta Feature Notice**:\n",
"> ⚠️ **Archived Feature Notice**:\n",
">\n",
"> The **ChatMessageStore** feature is currently in **beta**, available in the [haystack-experimental](https://github.com/deepset-ai/haystack-experimental) repository. We'd love your feedback, join the conversation in [this GitHub discussion](https://github.com/deepset-ai/haystack-experimental/discussions/420) and help us shape this feature!"
"> The **ChatMessageStore** components used here live in the [haystack-experimental](https://github.com/deepset-ai/haystack-experimental) package, which is now **archived and no longer maintained**. They were not adopted into Haystack core. This tutorial pins the final release, `haystack-experimental==0.19.0.post1`, which stays installable from PyPI but is only tested against the version of Haystack that was current in February 2026.\n",
">\n",
"> If you are building something new, prefer keeping chat history in your own application state, or use a [memory store](https://docs.haystack.deepset.ai/docs/mem0memorystore) for persistence across sessions."
]
},
{
Expand All @@ -35,7 +37,7 @@
"source": [
"## Installation\n",
"\n",
"Install Haystack, `haystack-experimental` and `datasets` with pip:"
"Install Haystack, the final `haystack-experimental` release and `datasets` with pip:"
]
},
{
Expand All @@ -48,7 +50,7 @@
"source": [
"%%bash\n",
"\n",
"pip install -q haystack-ai \"haystack-experimental>=0.15.0\" datasets"
"pip install -q haystack-ai \"haystack-experimental==0.19.0.post1\" datasets"
]
},
{
Expand Down Expand Up @@ -108,7 +110,7 @@
"\n",
"Conversation history is stored as `ChatMessage` objects in an `InMemoryChatMessageStore`. The `ChatMessageRetriever` reads past messages from the store, while the `ChatMessageWriter` appends new messages after each interaction. Together, these components allow the pipeline to persist and reuse chat history across multiple turns.\n",
"\n",
"Import these components from the [haystack-experimental](https://github.com/deepset-ai/haystack-experimental) package:"
"Import these components from the archived [haystack-experimental](https://github.com/deepset-ai/haystack-experimental) package:"
]
},
{
Expand Down Expand Up @@ -473,7 +475,7 @@
"- delete_messages\n",
"- delete_all_messages\n",
"\n",
"For more information check out our ChatMessageStore docs at https://docs.haystack.deepset.ai/reference/experimental-chatmessage-store-api"
"For more information check out the `InMemoryChatMessageStore` source at https://github.com/deepset-ai/haystack-experimental/blob/v0.19.0/haystack_experimental/chat_message_stores/in_memory.py"
]
},
{
Expand Down
2 changes: 0 additions & 2 deletions tutorials/guide_evaluation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@
"\n",
"For a comprehensive evaluation, make sure to evaluate specific steps in the pipeline (e.g., retrieval or generation) and the performance of the entire pipeline. To get inspiration on evaluating your pipeline, have a look at 🧑🏼‍🍳 [Cookbook: Prompt Optimization with DSPy](https://github.com/deepset-ai/haystack-cookbook/blob/main/notebooks/prompt_optimization_with_dspy.ipynb), which explains the details of prompt optimization and evaluation, or read 📚 [Article: RAG Evaluation with Prometheus 2](https://haystack.deepset.ai/blog/rag-evaluation-with-prometheus-2), which explores using open LMs to evaluate with custom metrics.\n",
"\n",
"If you're looking for a straightforward and efficient solution for RAG, consider using `EvaluationHarness`, introduced with Haystack 2.3 through [`haystack-experimental`](https://github.com/deepset-ai/haystack-experimental/tree/main). You can learn more by running the example 💻 [Notebook: Evaluating RAG Pipelines with EvaluationHarness](https://github.com/deepset-ai/haystack-experimental/blob/main/examples/rag_eval_harness.ipynb).\n",
"\n",
"## 5. Running Evaluation\n",
"\n",
"The objective of running evaluations is to measure your pipeline's performance and detect any regressions. To track progress, it is essential to establish baseline metrics using off-the-shelf approaches such as BM25 for keyword retrieval or \"sentence-transformers\" models for embeddings. Then, continue evaluating your pipeline with various parameters: adjust the `top_k` value, experiment with different embedding models, tweak the `temperature`, and benchmark the results to identify what works best for your use case. If labeled data is needed for evaluation, you can use datasets that include ground-truth documents and answers. Such datasets are available on [Hugging Face datasets](https://huggingface.co/datasets) or in the [haystack-evaluation](https://github.com/deepset-ai/haystack-evaluation/tree/main/datasets) repository.\n",
Expand Down
Loading