Skip to content

Commit ba5fdac

Browse files
julian-rischclaude
andauthored
chore: pin archived haystack-experimental, drop stale reference (#478)
`haystack-experimental` is archived; `0.19.0.post1` is its final release and the `ChatMessageStore` components were not adopted into Haystack core. Tutorial 48 genuinely needs those components, so pin the final release rather than removing the tutorial. Replace the beta notice with an archived notice and repoint the component links from the API reference pages (being removed) to the tagged source. guide_evaluation recommended `EvaluationHarness`, discontinued in haystack-experimental 0.7.0, and linked an example notebook that no longer exists. Drop the recommendation. Tutorial 47 needed no changes — #475 already removed its experimental references. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 3ccae42 commit ba5fdac

3 files changed

Lines changed: 10 additions & 10 deletions

File tree

index.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ notebook = "48_Conversational_RAG.ipynb"
246246
aliases = []
247247
completion_time = "20 min"
248248
created_at = 2025-12-30
249-
dependencies = ["haystack-experimental>=0.16.0", "datasets"]
249+
dependencies = ["haystack-experimental==0.19.0.post1", "datasets"]
250250
featured = true
251251

252252
[[tutorial]]

tutorials/48_Conversational_RAG.ipynb

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"- **Level**: Advanced\n",
1212
"- **Time to complete**: 20 minutes\n",
1313
"- **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",
14-
"- **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",
14+
"- **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",
1515
"- **Prerequisites**: You need an [OpenAI API Key](https://platform.openai.com/api-keys)\n",
1616
"- **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",
1717
"\n",
@@ -22,9 +22,11 @@
2222
"\n",
2323
"**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",
2424
"\n",
25-
"> 🧪 **Beta Feature Notice**:\n",
25+
"> ⚠️ **Archived Feature Notice**:\n",
2626
">\n",
27-
"> 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!"
27+
"> 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",
28+
">\n",
29+
"> 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."
2830
]
2931
},
3032
{
@@ -35,7 +37,7 @@
3537
"source": [
3638
"## Installation\n",
3739
"\n",
38-
"Install Haystack, `haystack-experimental` and `datasets` with pip:"
40+
"Install Haystack, the final `haystack-experimental` release and `datasets` with pip:"
3941
]
4042
},
4143
{
@@ -48,7 +50,7 @@
4850
"source": [
4951
"%%bash\n",
5052
"\n",
51-
"pip install -q haystack-ai \"haystack-experimental>=0.15.0\" datasets"
53+
"pip install -q haystack-ai \"haystack-experimental==0.19.0.post1\" datasets"
5254
]
5355
},
5456
{
@@ -108,7 +110,7 @@
108110
"\n",
109111
"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",
110112
"\n",
111-
"Import these components from the [haystack-experimental](https://github.com/deepset-ai/haystack-experimental) package:"
113+
"Import these components from the archived [haystack-experimental](https://github.com/deepset-ai/haystack-experimental) package:"
112114
]
113115
},
114116
{
@@ -473,7 +475,7 @@
473475
"- delete_messages\n",
474476
"- delete_all_messages\n",
475477
"\n",
476-
"For more information check out our ChatMessageStore docs at https://docs.haystack.deepset.ai/reference/experimental-chatmessage-store-api"
478+
"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"
477479
]
478480
},
479481
{

tutorials/guide_evaluation.ipynb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@
6868
"\n",
6969
"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",
7070
"\n",
71-
"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",
72-
"\n",
7371
"## 5. Running Evaluation\n",
7472
"\n",
7573
"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",

0 commit comments

Comments
 (0)