From ba98818210e7b6cec2186dc123f84cd2efe24a8d Mon Sep 17 00:00:00 2001 From: Laura Gutierrez Funderburk Date: Thu, 16 Nov 2023 15:47:06 -0800 Subject: [PATCH] add diagram to data structures notebook --- ch3/jupyter-notebooks/data_classes.ipynb | 4 +++- .../images/data-structures.png | Bin 0 -> 40884 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 ch3/jupyter-notebooks/images/data-structures.png diff --git a/ch3/jupyter-notebooks/data_classes.ipynb b/ch3/jupyter-notebooks/data_classes.ipynb index 13f91d8..3d65062 100644 --- a/ch3/jupyter-notebooks/data_classes.ipynb +++ b/ch3/jupyter-notebooks/data_classes.ipynb @@ -6,7 +6,7 @@ "source": [ "# Building blocks in Haystack: Data classes \n", "\n", - "With Haystack, we can leverage the following built-in data classes: \n", + "When building data pipelines, a core component involved is the use of data structures. With data structures, we can store, manipulate and manage data through code. Having a solid foundation for data structures is key to ease NLP pipeline development, particularly when an LLM is involved. With Haystack, we can leverage the following built-in data classes: \n", "\n", "* Haystack Documents data class \n", "\n", @@ -16,6 +16,8 @@ "\n", "* Haystack StreaminhChunk data class \n", "\n", + "![](./images/data-structures.png)\n", + "\n", "Each of these classes act as data structures that can be used to store and process data. We can use these classes to store data in a standardized format, and then use the Haystack API to process the data through data pipelines.\n", "\n", "In the next section, we will provide examples of each." diff --git a/ch3/jupyter-notebooks/images/data-structures.png b/ch3/jupyter-notebooks/images/data-structures.png new file mode 100644 index 0000000000000000000000000000000000000000..39cc83362449184b1177f789502e1bea349b11c9 GIT binary patch literal 40884 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