Repository: deepset-ai/haystack
Pull request: YAML versioning
**Proposed changes**:
- Make YAML files get the same version as Haystack when saved with `save_to_yaml()` 
- Throw a warning in `load_from_yaml()` in case of mismatch (no error will be thrown)
- Update tests and test pipeline YAMLs to comply

**Status (please check what you already did)**:
- [X] First draft (up for discussions & feedback)
- [X] Final code
- [X] Added tests
- [X] Updated documentation

Closes #2042 

Problem statement:
Make version of pipeline config/YAML configurable
**Is your feature request related to a problem? Please describe.**
If we call `pipeline.save_to_yaml()` a YAML is stored having a version attribute that takes the fixed value `0.8`.
If I get the purpose of the version attribute correctly, this should be made configurable as it depicts the version of the pipeline config.

**Describe the solution you'd like**
- add `version` param to `save_to_yaml`
- set default value of `version` to `1.0`

Hints from issue discussion:
Versioning of the YAML files right now is just a stub. 

We also met with this topic in #2020 and informally with @tholor decided to postpone this issue a bit, until we decide which versioning structure we want for the YAML files. There are still some open questions, for example: the YAML version should match Haystack version, or not? Should the version number be stored into the YAML itself or in the filename, or either? etc...

I suggest adding this issue in the "Refinement" list and gather some more ideas before proceeding with any implementation.

Commit message: Update Documentation & Code Style

Patch to review:
diff --git a/.github/utils/generate_json_schema.py b/.github/utils/generate_json_schema.py
index a15b64e874..9f21b55e30 100644
--- a/.github/utils/generate_json_schema.py
+++ b/.github/utils/generate_json_schema.py
@@ -4,6 +4,7 @@
 from pathlib import Path
 from typing import Any, Dict, Optional, Set, Tuple
 
+from haystack import __version__
 import haystack.document_stores
 import haystack.nodes
 import pydantic.schema
@@ -15,8 +16,8 @@
 from pydantic.typing import is_callable_type
 from pydantic.utils import lenient_issubclass
 
-schema_version = "0.7"
-filename = f"haystack-pipeline.{schema_version}.schema.json"
+schema_version = __version__
+filename = f"haystack-pipeline-{schema_version}.schema.json"
 destination_path = Path(__file__).parent.parent.parent / "json-schemas" / filename
 
 
diff --git a/docs/_src/api/api/pipelines.md b/docs/_src/api/api/pipelines.md
index b68750be81..f67d77a666 100644
--- a/docs/_src/api/api/pipelines.md
+++ b/docs/_src/api/api/pipelines.md
@@ -55,7 +55,7 @@ Here's a sample configuration:
 
     ```python
     |   {
-    |       "version": "0.9",
+    |       "version": "1.0",
     |       "components": [
     |           {  # define all the building-blocks for Pipeline
     |               "name": "MyReader",  # custom-name for the component; helpful for visualization & debugging
@@ -110,7 +110,7 @@ be passed.
 Here's a sample configuration:
 
     ```yaml
-    |   version: '0.9'
+    |   version: '1.0'
     |
     |    components:    # define all the building-blocks for Pipeline
     |    - name: MyReader       # custom-name for the component; helpful for visualization & debugging
@@ -137,6 +137,9 @@ Here's a sample configuration:
     |        inputs: [MyESRetriever]
     ```
 
+Note that, in case of a mismatch in version between Haystack and the YAML, a warning will be thrown.
+If the pipeline loads correctly regardless, save again the pipeline using `Pipeline.save_to_yaml()` to remove the warning.
+
 **Arguments**:
 
 - `path`: path of the YAML file.
@@ -605,6 +608,10 @@ Here's a sample configuration:
     |        inputs: [MyESRetriever]
     ```
 
+
+Note that, in case of a mismatch in version between Haystack and the YAML, a warning will be thrown.
+If the pipeline loads correctly regardless, save again the pipeline using `RayPipeline.save_to_yaml()` to remove the warning.
+
 **Arguments**:
 
 - `path`: path of the YAML file.
diff --git a/docs/_src/api/openapi/openapi.json b/docs/_src/api/openapi/openapi.json
index af6d9ce457..f5fcee5b74 100644
--- a/docs/_src/api/openapi/openapi.json
+++ b/docs/_src/api/openapi/openapi.json
@@ -278,7 +278,7 @@
                     "file-upload"
                 ],
                 "summary": "Upload File",
-                "description": "You can use this endpoint to upload a file for indexing\n(see [http://localhost:3000/guides/rest-api#indexing-documents-in-the-haystack-rest-api-document-store]).",
+                "description": "You can use this endpoint to upload a file for indexing\n(see https://haystack.deepset.ai/guides/rest-api#indexing-documents-in-the-haystack-rest-api-document-store).",
                 "operationId": "upload_file_file_upload_post",
                 "requestBody": {
                     "content": {
diff --git a/haystack/pipelines/base.py b/haystack/pipelines/base.py
index 760883d9b8..f5d7f5cb9b 100644
--- a/haystack/pipelines/base.py
+++ b/haystack/pipelines/base.py
@@ -29,6 +29,7 @@
     ray = None  # type: ignore
     serve = None  # type: ignore
 
+from haystack import __version__
 from haystack.schema import EvaluationResult, MultiLabel, Document
 from haystack.nodes.base import BaseComponent
 from haystack.document_stores.base import BaseDocumentStore
@@ -81,7 +82,7 @@ def load_from_config(
 
             ```python
             |   {
-            |       "version": "0.9",
+            |       "version": "1.0",
             |       "components": [
             |           {  # define all the building-blocks for Pipeline
             |               "name": "MyReader",  # custom-name for the component; helpful for visualization & debugging
@@ -146,7 +147,7 @@ def load_from_yaml(cls, path: Path, pipeline_name: Optional[str] = None, overwri
         Here's a sample configuration:
 
             ```yaml
-            |   version: '0.9'
+            |   version: '1.0'
             |
             |    components:    # define all the building-blocks for Pipeline
             |    - name: MyReader       # custom-name for the component; helpful for visualization & debugging
@@ -173,6 +174,9 @@ def load_from_yaml(cls, path: Path, pipeline_name: Optional[str] = None, overwri
             |        inputs: [MyESRetriever]
             ```
 
+        Note that, in case of a mismatch in version between Haystack and the YAML, a warning will be thrown.
+        If the pipeline loads correctly regardless, save again the pipeline using `Pipeline.save_to_yaml()` to remove the warning.
+
         :param path: path of the YAML file.
         :param pipeline_name: if the YAML contains multiple pipelines, the pipeline_name to load must be set.
         :param overwrite_with_env_variables: Overwrite the YAML configuration with environment variables. For example,
@@ -182,6 +186,12 @@ def load_from_yaml(cls, path: Path, pipeline_name: Optional[str] = None, overwri
         """
 
         pipeline_config = cls._read_pipeline_config_from_yaml(path)
+        if pipeline_config["version"] != __version__:
+            logger.warning(
+                f"YAML version ({pipeline_config['version']}) does not match with Haystack version ({__version__}). "
+                "Issues may occurr during loading. "
+                "To fix this warning, save again this pipeline with the current Haystack version using Pipeline.save_to_yaml()"
+            )
         return cls.load_from_config(
             pipeline_config=pipeline_config,
             pipeline_name=pipeline_name,
@@ -1037,7 +1047,11 @@ def get_config(self, return_defaults: bool = False) -> dict:
             # create the Pipeline definition with how the Component are connected
             pipelines[pipeline_name]["nodes"].append({"name": node, "inputs": list(self.graph.predecessors(node))})
 
-        config = {"components": list(components.values()), "pipelines": list(pipelines.values()), "version": "0.8"}
+        config = {
+            "components": list(components.values()),
+            "pipelines": list(pipelines.values()),
+            "version": __version__,
+        }
         return config
 
     def _format_document_answer(self, document_or_answer: dict):
@@ -1290,6 +1304,10 @@ def load_from_yaml(
             |        inputs: [MyESRetriever]
             ```
 
+
+        Note that, in case of a mismatch in version between Haystack and the YAML, a warning will be thrown.
+        If the pipeline loads correctly regardless, save again the pipeline using `RayPipeline.save_to_yaml()` to remove the warning.
+
         :param path: path of the YAML file.
         :param pipeline_name: if the YAML contains multiple pipelines, the pipeline_name to load must be set.
         :param overwrite_with_env_variables: Overwrite the YAML configuration with environment variables. For example,
@@ -1299,6 +1317,12 @@ def load_from_yaml(
         :param address: The IP address for the Ray cluster. If set to None, a local Ray instance is started.
         """
         pipeline_config = cls._read_pipeline_config_from_yaml(path)
+        if pipeline_config["version"] != __version__:
+            logger.warning(
+                f"YAML version ({pipeline_config['version']}) does not match with Haystack version ({__version__}). "
+                "Issues may occurr during loading. "
+                "To fix this warning, save again this pipeline with the current Haystack version using Pipeline.save_to_yaml()"
+            )
         return RayPipeline.load_from_config(
             pipeline_config=pipeline_config,
             pipeline_name=pipeline_name,
diff --git a/json-schemas/haystack-pipeline-1.1.0.schema.json b/json-schemas/haystack-pipeline-1.1.0.schema.json
new file mode 100644
index 0000000000..6352802fc4
--- /dev/null
+++ b/json-schemas/haystack-pipeline-1.1.0.schema.json
@@ -0,0 +1,2590 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema",
+  "$id": "https://haystack.deepset.ai/json-schemas/haystack-pipeline-1.1.0.schema.json",
+  "title": "Haystack Pipeline",
+  "description": "Haystack Pipeline YAML file describing the nodes of the pipelines. For more info read the docs at: https://haystack.deepset.ai/components/pipelines#yaml-file-definitions",
+  "type": "object",
+  "properties": {
+    "version": {
+      "title": "Version",
+      "description": "Version of the Haystack Pipeline file.",
+      "type": "string",
+      "const": "1.1.0"
+    },
+    "components": {
+      "title": "Components",
+      "description": "Component nodes and their configurations, to later be used in the pipelines section. Define here all the building blocks for the pipelines.",
+      "type": "array",
+      "items": {
+        "anyOf": [
+          {
+            "$ref": "#/definitions/AzureConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/CrawlerComponent"
+          },
+          {
+            "$ref": "#/definitions/DensePassageRetrieverComponent"
+          },
+          {
+            "$ref": "#/definitions/Docs2AnswersComponent"
+          },
+          {
+            "$ref": "#/definitions/DocxToTextConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/ElasticsearchFilterOnlyRetrieverComponent"
+          },
+          {
+            "$ref": "#/definitions/ElasticsearchRetrieverComponent"
+          },
+          {
+            "$ref": "#/definitions/EmbeddingRetrieverComponent"
+          },
+          {
+            "$ref": "#/definitions/EntityExtractorComponent"
+          },
+          {
+            "$ref": "#/definitions/EvalAnswersComponent"
+          },
+          {
+            "$ref": "#/definitions/EvalDocumentsComponent"
+          },
+          {
+            "$ref": "#/definitions/FARMReaderComponent"
+          },
+          {
+            "$ref": "#/definitions/FileTypeClassifierComponent"
+          },
+          {
+            "$ref": "#/definitions/ImageToTextConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/JoinDocumentsComponent"
+          },
+          {
+            "$ref": "#/definitions/MarkdownConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/PDFToTextConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/PDFToTextOCRConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/ParsrConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/PreProcessorComponent"
+          },
+          {
+            "$ref": "#/definitions/QuestionGeneratorComponent"
+          },
+          {
+            "$ref": "#/definitions/RAGeneratorComponent"
+          },
+          {
+            "$ref": "#/definitions/RCIReaderComponent"
+          },
+          {
+            "$ref": "#/definitions/SentenceTransformersRankerComponent"
+          },
+          {
+            "$ref": "#/definitions/Seq2SeqGeneratorComponent"
+          },
+          {
+            "$ref": "#/definitions/SklearnQueryClassifierComponent"
+          },
+          {
+            "$ref": "#/definitions/TableReaderComponent"
+          },
+          {
+            "$ref": "#/definitions/TableTextRetrieverComponent"
+          },
+          {
+            "$ref": "#/definitions/Text2SparqlRetrieverComponent"
+          },
+          {
+            "$ref": "#/definitions/TextConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/TfidfRetrieverComponent"
+          },
+          {
+            "$ref": "#/definitions/TikaConverterComponent"
+          },
+          {
+            "$ref": "#/definitions/TransformersDocumentClassifierComponent"
+          },
+          {
+            "$ref": "#/definitions/TransformersQueryClassifierComponent"
+          },
+          {
+            "$ref": "#/definitions/TransformersReaderComponent"
+          },
+          {
+            "$ref": "#/definitions/TransformersSummarizerComponent"
+          },
+          {
+            "$ref": "#/definitions/TransformersTranslatorComponent"
+          }
+        ]
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "pipelines": {
+      "title": "Pipelines",
+      "description": "Multiple pipelines can be defined using the components from the same YAML file.",
+      "type": "array",
+      "items": {
+        "type": "object",
+        "properties": {
+          "name": {
+            "title": "Name",
+            "description": "Name of the pipeline.",
+            "type": "string"
+          },
+          "nodes": {
+            "title": "Nodes",
+            "description": "Nodes to be used by this particular pipeline",
+            "type": "array",
+            "items": {
+              "type": "object",
+              "properties": {
+                "name": {
+                  "title": "Name",
+                  "description": "The name of this particular node in the pipeline. This should be one of the names from the components defined in the same file.",
+                  "type": "string"
+                },
+                "inputs": {
+                  "title": "Inputs",
+                  "description": "Input parameters for this node.",
+                  "type": "array",
+                  "items": {
+                    "type": "string"
+                  }
+                }
+              },
+              "additionalProperties": false
+            },
+            "required": [
+              "name",
+              "nodes"
+            ],
+            "additionalProperties": false
+          }
+        },
+        "additionalProperties": false
+      }
+    }
+  },
+  "required": [
+    "version",
+    "components",
+    "pipelines"
+  ],
+  "additionalProperties": false,
+  "definitions": {
+    "AzureConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "AzureConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "endpoint": {
+              "title": "Endpoint",
+              "type": "string"
+            },
+            "credential_key": {
+              "title": "Credential Key",
+              "type": "string"
+            },
+            "model_id": {
+              "title": "Model Id",
+              "default": "prebuilt-document",
+              "type": "string"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "save_json": {
+              "title": "Save Json",
+              "default": false,
+              "type": "boolean"
+            },
+            "preceding_context_len": {
+              "title": "Preceding Context Len",
+              "default": 3,
+              "type": "integer"
+            },
+            "following_context_len": {
+              "title": "Following Context Len",
+              "default": 3,
+              "type": "integer"
+            },
+            "merge_multiple_column_headers": {
+              "title": "Merge Multiple Column Headers",
+              "default": true,
+              "type": "boolean"
+            }
+          },
+          "required": [
+            "endpoint",
+            "credential_key"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "CrawlerComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "Crawler"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "output_dir": {
+              "title": "Output Dir",
+              "type": "string"
+            },
+            "urls": {
+              "title": "Urls",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "crawler_depth": {
+              "title": "Crawler Depth",
+              "default": 1,
+              "type": "integer"
+            },
+            "filter_urls": {
+              "title": "Filter Urls",
+              "type": "array",
+              "items": {}
+            },
+            "overwrite_existing_files": {
+              "title": "Overwrite Existing Files",
+              "default": true
+            }
+          },
+          "required": [
+            "output_dir"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "DensePassageRetrieverComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "DensePassageRetriever"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "document_store": {
+              "title": "Document Store",
+              "type": "string"
+            },
+            "query_embedding_model": {
+              "title": "Query Embedding Model",
+              "default": "facebook/dpr-question_encoder-single-nq-base",
+              "anyOf": [
+                {
+                  "type": "string",
+                  "format": "path"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            },
+            "passage_embedding_model": {
+              "title": "Passage Embedding Model",
+              "default": "facebook/dpr-ctx_encoder-single-nq-base",
+              "anyOf": [
+                {
+                  "type": "string",
+                  "format": "path"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "max_seq_len_query": {
+              "title": "Max Seq Len Query",
+              "default": 64,
+              "type": "integer"
+            },
+            "max_seq_len_passage": {
+              "title": "Max Seq Len Passage",
+              "default": 256,
+              "type": "integer"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "batch_size": {
+              "title": "Batch Size",
+              "default": 16,
+              "type": "integer"
+            },
+            "embed_title": {
+              "title": "Embed Title",
+              "default": true,
+              "type": "boolean"
+            },
+            "use_fast_tokenizers": {
+              "title": "Use Fast Tokenizers",
+              "default": true,
+              "type": "boolean"
+            },
+            "infer_tokenizer_classes": {
+              "title": "Infer Tokenizer Classes",
+              "default": false,
+              "type": "boolean"
+            },
+            "similarity_function": {
+              "title": "Similarity Function",
+              "default": "dot_product",
+              "type": "string"
+            },
+            "global_loss_buffer_size": {
+              "title": "Global Loss Buffer Size",
+              "default": 150000,
+              "type": "integer"
+            },
+            "progress_bar": {
+              "title": "Progress Bar",
+              "default": true,
+              "type": "boolean"
+            },
+            "devices": {
+              "title": "Devices",
+              "type": "array",
+              "items": {
+                "anyOf": [
+                  {
+                    "type": "integer"
+                  },
+                  {
+                    "type": "string"
+                  },
+                  {
+                    "type": "string"
+                  }
+                ]
+              }
+            },
+            "use_auth_token": {
+              "title": "Use Auth Token",
+              "anyOf": [
+                {
+                  "type": "boolean"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            }
+          },
+          "required": [
+            "document_store"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "Docs2AnswersComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "Docs2Answers"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {},
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "DocxToTextConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "DocxToTextConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "remove_numeric_tables": {
+              "title": "Remove Numeric Tables",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "ElasticsearchFilterOnlyRetrieverComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "ElasticsearchFilterOnlyRetriever"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "document_store": {
+              "title": "Document Store",
+              "type": "string"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "custom_query": {
+              "title": "Custom Query",
+              "type": "string"
+            }
+          },
+          "required": [
+            "document_store"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "ElasticsearchRetrieverComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "ElasticsearchRetriever"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "document_store": {
+              "title": "Document Store",
+              "type": "string"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "custom_query": {
+              "title": "Custom Query",
+              "type": "string"
+            }
+          },
+          "required": [
+            "document_store"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "EmbeddingRetrieverComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "EmbeddingRetriever"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "document_store": {
+              "title": "Document Store",
+              "type": "string"
+            },
+            "embedding_model": {
+              "title": "Embedding Model",
+              "type": "string"
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "batch_size": {
+              "title": "Batch Size",
+              "default": 32,
+              "type": "integer"
+            },
+            "max_seq_len": {
+              "title": "Max Seq Len",
+              "default": 512,
+              "type": "integer"
+            },
+            "model_format": {
+              "title": "Model Format",
+              "default": "farm",
+              "type": "string"
+            },
+            "pooling_strategy": {
+              "title": "Pooling Strategy",
+              "default": "reduce_mean",
+              "type": "string"
+            },
+            "emb_extraction_layer": {
+              "title": "Emb Extraction Layer",
+              "default": -1,
+              "type": "integer"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "progress_bar": {
+              "title": "Progress Bar",
+              "default": true,
+              "type": "boolean"
+            },
+            "devices": {
+              "title": "Devices",
+              "type": "array",
+              "items": {
+                "anyOf": [
+                  {
+                    "type": "integer"
+                  },
+                  {
+                    "type": "string"
+                  },
+                  {
+                    "type": "string"
+                  }
+                ]
+              }
+            },
+            "use_auth_token": {
+              "title": "Use Auth Token",
+              "anyOf": [
+                {
+                  "type": "boolean"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            }
+          },
+          "required": [
+            "document_store",
+            "embedding_model"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "EntityExtractorComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "EntityExtractor"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "dslim/bert-base-NER",
+              "type": "string"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "EvalAnswersComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "EvalAnswers"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "skip_incorrect_retrieval": {
+              "title": "Skip Incorrect Retrieval",
+              "default": true,
+              "type": "boolean"
+            },
+            "open_domain": {
+              "title": "Open Domain",
+              "default": true,
+              "type": "boolean"
+            },
+            "sas_model": {
+              "title": "Sas Model",
+              "type": "string"
+            },
+            "debug": {
+              "title": "Debug",
+              "default": false,
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "EvalDocumentsComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "EvalDocuments"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "debug": {
+              "title": "Debug",
+              "default": false,
+              "type": "boolean"
+            },
+            "open_domain": {
+              "title": "Open Domain",
+              "default": true,
+              "type": "boolean"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "FARMReaderComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "FARMReader"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "type": "string"
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "context_window_size": {
+              "title": "Context Window Size",
+              "default": 150,
+              "type": "integer"
+            },
+            "batch_size": {
+              "title": "Batch Size",
+              "default": 50,
+              "type": "integer"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "no_ans_boost": {
+              "title": "No Ans Boost",
+              "default": 0.0,
+              "type": "number"
+            },
+            "return_no_answer": {
+              "title": "Return No Answer",
+              "default": false,
+              "type": "boolean"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "top_k_per_candidate": {
+              "title": "Top K Per Candidate",
+              "default": 3,
+              "type": "integer"
+            },
+            "top_k_per_sample": {
+              "title": "Top K Per Sample",
+              "default": 1,
+              "type": "integer"
+            },
+            "num_processes": {
+              "title": "Num Processes",
+              "type": "integer"
+            },
+            "max_seq_len": {
+              "title": "Max Seq Len",
+              "default": 256,
+              "type": "integer"
+            },
+            "doc_stride": {
+              "title": "Doc Stride",
+              "default": 128,
+              "type": "integer"
+            },
+            "progress_bar": {
+              "title": "Progress Bar",
+              "default": true,
+              "type": "boolean"
+            },
+            "duplicate_filtering": {
+              "title": "Duplicate Filtering",
+              "default": 0,
+              "type": "integer"
+            },
+            "use_confidence_scores": {
+              "title": "Use Confidence Scores",
+              "default": true,
+              "type": "boolean"
+            },
+            "proxies": {
+              "title": "Proxies",
+              "type": "object",
+              "additionalProperties": {
+                "type": "string"
+              }
+            },
+            "local_files_only": {
+              "title": "Local Files Only",
+              "default": false
+            },
+            "force_download": {
+              "title": "Force Download",
+              "default": false
+            },
+            "use_auth_token": {
+              "title": "Use Auth Token",
+              "anyOf": [
+                {
+                  "type": "boolean"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            }
+          },
+          "required": [
+            "model_name_or_path"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "FileTypeClassifierComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "FileTypeClassifier"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "supported_types": {
+              "title": "Supported Types",
+              "default": [
+                "txt",
+                "pdf",
+                "md",
+                "docx",
+                "html"
+              ],
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "ImageToTextConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "ImageToTextConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "remove_numeric_tables": {
+              "title": "Remove Numeric Tables",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "default": [
+                "eng"
+              ],
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "JoinDocumentsComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "JoinDocuments"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "join_mode": {
+              "title": "Join Mode",
+              "default": "concatenate",
+              "type": "string"
+            },
+            "weights": {
+              "title": "Weights",
+              "type": "array",
+              "items": {
+                "type": "number"
+              }
+            },
+            "top_k_join": {
+              "title": "Top K Join",
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "MarkdownConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "MarkdownConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "remove_numeric_tables": {
+              "title": "Remove Numeric Tables",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "PDFToTextConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "PDFToTextConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "remove_numeric_tables": {
+              "title": "Remove Numeric Tables",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "PDFToTextOCRConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "PDFToTextOCRConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "remove_numeric_tables": {
+              "title": "Remove Numeric Tables",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "default": [
+                "eng"
+              ],
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "ParsrConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "ParsrConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "parsr_url": {
+              "title": "Parsr Url",
+              "default": "http://localhost:3001",
+              "type": "string"
+            },
+            "extractor": {
+              "title": "Extractor",
+              "default": "pdfminer",
+              "enum": [
+                "pdfminer",
+                "pdfjs"
+              ],
+              "type": "string"
+            },
+            "table_detection_mode": {
+              "title": "Table Detection Mode",
+              "default": "lattice",
+              "enum": [
+                "lattice",
+                "stream"
+              ],
+              "type": "string"
+            },
+            "preceding_context_len": {
+              "title": "Preceding Context Len",
+              "default": 1,
+              "type": "integer"
+            },
+            "following_context_len": {
+              "title": "Following Context Len",
+              "default": 1,
+              "type": "integer"
+            },
+            "remove_page_headers": {
+              "title": "Remove Page Headers",
+              "default": false,
+              "type": "boolean"
+            },
+            "remove_page_footers": {
+              "title": "Remove Page Footers",
+              "default": false,
+              "type": "boolean"
+            },
+            "remove_table_of_contents": {
+              "title": "Remove Table Of Contents",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "PreProcessorComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "PreProcessor"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "clean_whitespace": {
+              "title": "Clean Whitespace",
+              "default": true,
+              "type": "boolean"
+            },
+            "clean_header_footer": {
+              "title": "Clean Header Footer",
+              "default": false,
+              "type": "boolean"
+            },
+            "clean_empty_lines": {
+              "title": "Clean Empty Lines",
+              "default": true,
+              "type": "boolean"
+            },
+            "split_by": {
+              "title": "Split By",
+              "default": "word",
+              "type": "string"
+            },
+            "split_length": {
+              "title": "Split Length",
+              "default": 200,
+              "type": "integer"
+            },
+            "split_overlap": {
+              "title": "Split Overlap",
+              "default": 0,
+              "type": "integer"
+            },
+            "split_respect_sentence_boundary": {
+              "title": "Split Respect Sentence Boundary",
+              "default": true,
+              "type": "boolean"
+            },
+            "language": {
+              "title": "Language",
+              "default": "en",
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "QuestionGeneratorComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "QuestionGenerator"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "valhalla/t5-base-e2e-qg"
+            },
+            "model_version": {
+              "title": "Model Version"
+            },
+            "num_beams": {
+              "title": "Num Beams",
+              "default": 4
+            },
+            "max_length": {
+              "title": "Max Length",
+              "default": 256
+            },
+            "no_repeat_ngram_size": {
+              "title": "No Repeat Ngram Size",
+              "default": 3
+            },
+            "length_penalty": {
+              "title": "Length Penalty",
+              "default": 1.5
+            },
+            "early_stopping": {
+              "title": "Early Stopping",
+              "default": true
+            },
+            "split_length": {
+              "title": "Split Length",
+              "default": 50
+            },
+            "split_overlap": {
+              "title": "Split Overlap",
+              "default": 10
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true
+            },
+            "prompt": {
+              "title": "Prompt",
+              "default": "generate questions:"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "RAGeneratorComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "RAGenerator"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "facebook/rag-token-nq",
+              "type": "string"
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "retriever": {
+              "title": "Retriever",
+              "type": "string",
+              "default": null
+            },
+            "generator_type": {
+              "default": [
+                1
+              ],
+              "allOf": [
+                {
+                  "$ref": "#/definitions/RAGeneratorType"
+                }
+              ]
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 2,
+              "type": "integer"
+            },
+            "max_length": {
+              "title": "Max Length",
+              "default": 200,
+              "type": "integer"
+            },
+            "min_length": {
+              "title": "Min Length",
+              "default": 2,
+              "type": "integer"
+            },
+            "num_beams": {
+              "title": "Num Beams",
+              "default": 2,
+              "type": "integer"
+            },
+            "embed_title": {
+              "title": "Embed Title",
+              "default": true,
+              "type": "boolean"
+            },
+            "prefix": {
+              "title": "Prefix",
+              "type": "string"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "RCIReaderComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "RCIReader"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "row_model_name_or_path": {
+              "title": "Row Model Name Or Path",
+              "default": "michaelrglass/albert-base-rci-wikisql-row",
+              "type": "string"
+            },
+            "column_model_name_or_path": {
+              "title": "Column Model Name Or Path",
+              "default": "michaelrglass/albert-base-rci-wikisql-col",
+              "type": "string"
+            },
+            "row_model_version": {
+              "title": "Row Model Version",
+              "type": "string"
+            },
+            "column_model_version": {
+              "title": "Column Model Version",
+              "type": "string"
+            },
+            "row_tokenizer": {
+              "title": "Row Tokenizer",
+              "type": "string"
+            },
+            "column_tokenizer": {
+              "title": "Column Tokenizer",
+              "type": "string"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "max_seq_len": {
+              "title": "Max Seq Len",
+              "default": 256,
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "SentenceTransformersRankerComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "SentenceTransformersRanker"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "anyOf": [
+                {
+                  "type": "string"
+                },
+                {
+                  "type": "string",
+                  "format": "path"
+                }
+              ]
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "devices": {
+              "title": "Devices",
+              "type": "array",
+              "items": {
+                "anyOf": [
+                  {
+                    "type": "integer"
+                  },
+                  {
+                    "type": "string"
+                  },
+                  {
+                    "type": "string"
+                  }
+                ]
+              }
+            }
+          },
+          "required": [
+            "model_name_or_path"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "Seq2SeqGeneratorComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "Seq2SeqGenerator"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "type": "string"
+            },
+            "input_converter": {
+              "title": "Input Converter",
+              "type": "string",
+              "default": null
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 1,
+              "type": "integer"
+            },
+            "max_length": {
+              "title": "Max Length",
+              "default": 200,
+              "type": "integer"
+            },
+            "min_length": {
+              "title": "Min Length",
+              "default": 2,
+              "type": "integer"
+            },
+            "num_beams": {
+              "title": "Num Beams",
+              "default": 8,
+              "type": "integer"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            }
+          },
+          "required": [
+            "model_name_or_path"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "SklearnQueryClassifierComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "SklearnQueryClassifier"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "https://ext-models-haystack.s3.eu-central-1.amazonaws.com/gradboost_query_classifier/model.pickle",
+              "anyOf": [
+                {
+                  "type": "string"
+                },
+                {}
+              ]
+            },
+            "vectorizer_name_or_path": {
+              "title": "Vectorizer Name Or Path",
+              "default": "https://ext-models-haystack.s3.eu-central-1.amazonaws.com/gradboost_query_classifier/vectorizer.pickle",
+              "anyOf": [
+                {
+                  "type": "string"
+                },
+                {}
+              ]
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TableReaderComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TableReader"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "google/tapas-base-finetuned-wtq",
+              "type": "string"
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "tokenizer": {
+              "title": "Tokenizer",
+              "type": "string"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "top_k_per_candidate": {
+              "title": "Top K Per Candidate",
+              "default": 3,
+              "type": "integer"
+            },
+            "return_no_answer": {
+              "title": "Return No Answer",
+              "default": false,
+              "type": "boolean"
+            },
+            "max_seq_len": {
+              "title": "Max Seq Len",
+              "default": 256,
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TableTextRetrieverComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TableTextRetriever"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "document_store": {
+              "title": "Document Store",
+              "type": "string"
+            },
+            "query_embedding_model": {
+              "title": "Query Embedding Model",
+              "default": "deepset/bert-small-mm_retrieval-question_encoder",
+              "anyOf": [
+                {
+                  "type": "string",
+                  "format": "path"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            },
+            "passage_embedding_model": {
+              "title": "Passage Embedding Model",
+              "default": "deepset/bert-small-mm_retrieval-passage_encoder",
+              "anyOf": [
+                {
+                  "type": "string",
+                  "format": "path"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            },
+            "table_embedding_model": {
+              "title": "Table Embedding Model",
+              "default": "deepset/bert-small-mm_retrieval-table_encoder",
+              "anyOf": [
+                {
+                  "type": "string",
+                  "format": "path"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "max_seq_len_query": {
+              "title": "Max Seq Len Query",
+              "default": 64,
+              "type": "integer"
+            },
+            "max_seq_len_passage": {
+              "title": "Max Seq Len Passage",
+              "default": 256,
+              "type": "integer"
+            },
+            "max_seq_len_table": {
+              "title": "Max Seq Len Table",
+              "default": 256,
+              "type": "integer"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "batch_size": {
+              "title": "Batch Size",
+              "default": 16,
+              "type": "integer"
+            },
+            "embed_meta_fields": {
+              "title": "Embed Meta Fields",
+              "default": [
+                "name",
+                "section_title",
+                "caption"
+              ],
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "use_fast_tokenizers": {
+              "title": "Use Fast Tokenizers",
+              "default": true,
+              "type": "boolean"
+            },
+            "infer_tokenizer_classes": {
+              "title": "Infer Tokenizer Classes",
+              "default": false,
+              "type": "boolean"
+            },
+            "similarity_function": {
+              "title": "Similarity Function",
+              "default": "dot_product",
+              "type": "string"
+            },
+            "global_loss_buffer_size": {
+              "title": "Global Loss Buffer Size",
+              "default": 150000,
+              "type": "integer"
+            },
+            "progress_bar": {
+              "title": "Progress Bar",
+              "default": true,
+              "type": "boolean"
+            },
+            "devices": {
+              "title": "Devices",
+              "type": "array",
+              "items": {
+                "anyOf": [
+                  {
+                    "type": "integer"
+                  },
+                  {
+                    "type": "string"
+                  },
+                  {
+                    "type": "string"
+                  }
+                ]
+              }
+            },
+            "use_auth_token": {
+              "title": "Use Auth Token",
+              "anyOf": [
+                {
+                  "type": "boolean"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            }
+          },
+          "required": [
+            "document_store"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "Text2SparqlRetrieverComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "Text2SparqlRetriever"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "knowledge_graph": {
+              "title": "Knowledge Graph"
+            },
+            "model_name_or_path": {
+              "title": "Model Name Or Path"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 1,
+              "type": "integer"
+            }
+          },
+          "required": [
+            "knowledge_graph",
+            "model_name_or_path"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TextConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TextConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "remove_numeric_tables": {
+              "title": "Remove Numeric Tables",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TfidfRetrieverComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TfidfRetriever"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "document_store": {
+              "title": "Document Store",
+              "type": "string"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "auto_fit": {
+              "title": "Auto Fit",
+              "default": true
+            }
+          },
+          "required": [
+            "document_store"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TikaConverterComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TikaConverter"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "tika_url": {
+              "title": "Tika Url",
+              "default": "http://localhost:9998/tika",
+              "type": "string"
+            },
+            "remove_numeric_tables": {
+              "title": "Remove Numeric Tables",
+              "default": false,
+              "type": "boolean"
+            },
+            "valid_languages": {
+              "title": "Valid Languages",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TransformersDocumentClassifierComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TransformersDocumentClassifier"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "bhadresh-savani/distilbert-base-uncased-emotion",
+              "type": "string"
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "tokenizer": {
+              "title": "Tokenizer",
+              "type": "string"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "return_all_scores": {
+              "title": "Return All Scores",
+              "default": false,
+              "type": "boolean"
+            },
+            "task": {
+              "title": "Task",
+              "default": "text-classification",
+              "type": "string"
+            },
+            "labels": {
+              "title": "Labels",
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "batch_size": {
+              "title": "Batch Size",
+              "default": -1,
+              "type": "integer"
+            },
+            "classification_field": {
+              "title": "Classification Field",
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TransformersQueryClassifierComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TransformersQueryClassifier"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "shahrukhx01/bert-mini-finetune-question-detection",
+              "anyOf": [
+                {
+                  "type": "string",
+                  "format": "path"
+                },
+                {
+                  "type": "string"
+                }
+              ]
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TransformersReaderComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TransformersReader"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "distilbert-base-uncased-distilled-squad",
+              "type": "string"
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "tokenizer": {
+              "title": "Tokenizer",
+              "type": "string"
+            },
+            "context_window_size": {
+              "title": "Context Window Size",
+              "default": 70,
+              "type": "integer"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "top_k": {
+              "title": "Top K",
+              "default": 10,
+              "type": "integer"
+            },
+            "top_k_per_candidate": {
+              "title": "Top K Per Candidate",
+              "default": 4,
+              "type": "integer"
+            },
+            "return_no_answers": {
+              "title": "Return No Answers",
+              "default": true,
+              "type": "boolean"
+            },
+            "max_seq_len": {
+              "title": "Max Seq Len",
+              "default": 256,
+              "type": "integer"
+            },
+            "doc_stride": {
+              "title": "Doc Stride",
+              "default": 128,
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TransformersSummarizerComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TransformersSummarizer"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "default": "google/pegasus-xsum",
+              "type": "string"
+            },
+            "model_version": {
+              "title": "Model Version",
+              "type": "string"
+            },
+            "tokenizer": {
+              "title": "Tokenizer",
+              "type": "string"
+            },
+            "max_length": {
+              "title": "Max Length",
+              "default": 200,
+              "type": "integer"
+            },
+            "min_length": {
+              "title": "Min Length",
+              "default": 5,
+              "type": "integer"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            },
+            "clean_up_tokenization_spaces": {
+              "title": "Clean Up Tokenization Spaces",
+              "default": true,
+              "type": "boolean"
+            },
+            "separator_for_single_summary": {
+              "title": "Separator For Single Summary",
+              "default": " ",
+              "type": "string"
+            },
+            "generate_single_summary": {
+              "title": "Generate Single Summary",
+              "default": false,
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "TransformersTranslatorComponent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "title": "Name",
+          "description": "Custom name for the component. Helpful for visualization and debugging.",
+          "type": "string"
+        },
+        "type": {
+          "title": "Type",
+          "description": "Haystack Class name for the component.",
+          "type": "string",
+          "const": "TransformersTranslator"
+        },
+        "params": {
+          "title": "Parameters",
+          "type": "object",
+          "properties": {
+            "model_name_or_path": {
+              "title": "Model Name Or Path",
+              "type": "string"
+            },
+            "tokenizer_name": {
+              "title": "Tokenizer Name",
+              "type": "string"
+            },
+            "max_seq_len": {
+              "title": "Max Seq Len",
+              "type": "integer"
+            },
+            "clean_up_tokenization_spaces": {
+              "title": "Clean Up Tokenization Spaces",
+              "default": true,
+              "type": "boolean"
+            },
+            "use_gpu": {
+              "title": "Use Gpu",
+              "default": true,
+              "type": "boolean"
+            }
+          },
+          "required": [
+            "model_name_or_path"
+          ],
+          "additionalProperties": false,
+          "description": "Each parameter can reference other components defined in the same YAML file."
+        }
+      },
+      "required": [
+        "type",
+        "name"
+      ],
+      "additionalProperties": false
+    },
+    "RAGeneratorType": {
+      "title": "RAGeneratorType",
+      "description": "An enumeration.",
+      "enum": [
+        [
+          1
+        ],
+        2
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/rest_api/pipeline/pipeline_empty.yaml b/rest_api/pipeline/pipeline_empty.yaml
index e4d0176c18..5d1cde4228 100644
--- a/rest_api/pipeline/pipeline_empty.yaml
+++ b/rest_api/pipeline/pipeline_empty.yaml
@@ -1,7 +1,6 @@
-# Dummy pipeline, used when the CI needs to load the REST API to
-# extract the OpenAPI specs. DO NOT USE.
+# Dummy pipeline, used when the CI needs to load the REST API to extract the OpenAPI specs. DO NOT USE.
 
-version: '0.9'
+version: '1.1.0'
 
 components:
   - name: FileTypeClassifier
diff --git a/rest_api/pipeline/pipelines.yaml b/rest_api/pipeline/pipelines.yaml
index e3065cdd8e..a3928f8967 100644
--- a/rest_api/pipeline/pipelines.yaml
+++ b/rest_api/pipeline/pipelines.yaml
@@ -1,4 +1,4 @@
-version: '0.9'
+version: '1.1.0'
 
 components:    # define all the building-blocks for Pipeline
   - name: DocumentStore
diff --git a/rest_api/pipeline/pipelines_dpr.yaml b/rest_api/pipeline/pipelines_dpr.yaml
index 78220d2b02..907385d855 100644
--- a/rest_api/pipeline/pipelines_dpr.yaml
+++ b/rest_api/pipeline/pipelines_dpr.yaml
@@ -1,4 +1,4 @@
-version: '0.9'
+version: '1.1.0'
 
 components:    # define all the building-blocks for Pipeline
   - name: DocumentStore
diff --git a/rest_api/test/samples/pipeline/test_pipeline.yaml b/rest_api/test/samples/pipeline/test_pipeline.yaml
index 2634fe6f34..7d84214a2b 100644
--- a/rest_api/test/samples/pipeline/test_pipeline.yaml
+++ b/rest_api/test/samples/pipeline/test_pipeline.yaml
@@ -1,4 +1,4 @@
-version: '0.7'
+version: '1.1.0'
 
 components:
   - name: Reader
diff --git a/rest_api/test/samples/pipeline/test_pipeline_faiss_indexing.yaml b/rest_api/test/samples/pipeline/test_pipeline_faiss_indexing.yaml
index 8af2770a6a..d11ec54137 100644
--- a/rest_api/test/samples/pipeline/test_pipeline_faiss_indexing.yaml
+++ b/rest_api/test/samples/pipeline/test_pipeline_faiss_indexing.yaml
@@ -1,4 +1,4 @@
-version: '0.7'
+version: '1.1.0'
 
 components:
   - name: DPRRetriever
diff --git a/rest_api/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml b/rest_api/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml
index e8b54546f8..39130ef010 100644
--- a/rest_api/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml
+++ b/rest_api/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml
@@ -1,4 +1,4 @@
-version: '0.7'
+version: '1.1.0'
 
 components:
   - name: DPRRetriever
diff --git a/rest_api/test/samples/pipeline/test_pipeline_tfidfretriever.yaml b/rest_api/test/samples/pipeline/test_pipeline_tfidfretriever.yaml
index 86249493f2..8a00797239 100644
--- a/rest_api/test/samples/pipeline/test_pipeline_tfidfretriever.yaml
+++ b/rest_api/test/samples/pipeline/test_pipeline_tfidfretriever.yaml
@@ -1,4 +1,4 @@
-version: '0.9'
+version: '1.1.0'
 
 components:
   - name: Reader
diff --git a/test/samples/pipeline/test_pipeline.yaml b/test/samples/pipeline/test_pipeline.yaml
index 2634fe6f34..7d84214a2b 100644
--- a/test/samples/pipeline/test_pipeline.yaml
+++ b/test/samples/pipeline/test_pipeline.yaml
@@ -1,4 +1,4 @@
-version: '0.7'
+version: '1.1.0'
 
 components:
   - name: Reader
diff --git a/test/samples/pipeline/test_pipeline_faiss_indexing.yaml b/test/samples/pipeline/test_pipeline_faiss_indexing.yaml
index 8af2770a6a..d11ec54137 100644
--- a/test/samples/pipeline/test_pipeline_faiss_indexing.yaml
+++ b/test/samples/pipeline/test_pipeline_faiss_indexing.yaml
@@ -1,4 +1,4 @@
-version: '0.7'
+version: '1.1.0'
 
 components:
   - name: DPRRetriever
diff --git a/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml b/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml
index e8b54546f8..39130ef010 100644
--- a/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml
+++ b/test/samples/pipeline/test_pipeline_faiss_retrieval.yaml
@@ -1,4 +1,4 @@
-version: '0.7'
+version: '1.1.0'
 
 components:
   - name: DPRRetriever
diff --git a/test/samples/pipeline/test_pipeline_tfidfretriever.yaml b/test/samples/pipeline/test_pipeline_tfidfretriever.yaml
index 86249493f2..8a00797239 100644
--- a/test/samples/pipeline/test_pipeline_tfidfretriever.yaml
+++ b/test/samples/pipeline/test_pipeline_tfidfretriever.yaml
@@ -1,4 +1,4 @@
-version: '0.9'
+version: '1.1.0'
 
 components:
   - name: Reader
diff --git a/test/test_pipeline.py b/test/test_pipeline.py
index 75b94c2f86..6956319771 100644
--- a/test/test_pipeline.py
+++ b/test/test_pipeline.py
@@ -5,8 +5,9 @@
 from unittest.mock import Mock
 import pytest
 import responses
-from haystack.document_stores.deepsetcloud import DeepsetCloudDocumentStore
 
+from haystack import __version__
+from haystack.document_stores.deepsetcloud import DeepsetCloudDocumentStore
 from haystack.document_stores.elasticsearch import ElasticsearchDocumentStore
 from haystack.nodes.retriever.sparse import ElasticsearchRetriever
 from haystack.pipelines import (
@@ -44,7 +45,7 @@ def test_load_and_save_yaml(document_store, tmp_path):
     pipeline.save_to_yaml(tmp_path / "test.yaml")
     with open(tmp_path / "test.yaml", "r", encoding="utf-8") as stream:
         saved_yaml = stream.read()
-    expected_yaml = """
+    expected_yaml = f"""
         components:
         - name: ESRetriever
           params:
@@ -71,7 +72,7 @@ def test_load_and_save_yaml(document_store, tmp_path):
             - ESRetriever
             name: Reader
           type: Pipeline
-        version: '0.8'
+        version: {__version__}
     """
     assert saved_yaml.replace(" ", "").replace("\n", "") == expected_yaml.replace(" ", "").replace("\n", "")
 
@@ -104,7 +105,7 @@ def test_load_and_save_yaml_prebuilt_pipelines(document_store, tmp_path):
     pipeline.save_to_yaml(tmp_path / "test.yaml")
     with open(tmp_path / "test.yaml", "r", encoding="utf-8") as stream:
         saved_yaml = stream.read()
-    expected_yaml = """
+    expected_yaml = f"""
         components:
         - name: ESRetriever
           params:
@@ -131,7 +132,7 @@ def test_load_and_save_yaml_prebuilt_pipelines(document_store, tmp_path):
             - ESRetriever
             name: Reader
           type: Pipeline
-        version: '0.8'
+        version: {__version__}
     """
     assert saved_yaml.replace(" ", "").replace("\n", "") == expected_yaml.replace(" ", "").replace("\n", "")
 


Code review comments:
diff_hunk: @@ -1299,6 +1317,12 @@ def load_from_yaml(
         :param address: The IP address for the Ray cluster. If set to None, a local Ray instance is started.
         """
         pipeline_config = cls._read_pipeline_config_from_yaml(path)
+        if pipeline_config["version"] != __version__:
+            logger.warning(
+                f"YAML version ({pipeline_config['version']}) does not match with Haystack version ({__version__}). "
+                "Issues may occurr during loading. "
path: haystack/pipelines/base.py
text: @user1:
typo

diff_hunk: @@ -182,6 +186,12 @@ def load_from_yaml(cls, path: Path, pipeline_name: Optional[str] = None, overwri
         """
 
         pipeline_config = cls._read_pipeline_config_from_yaml(path)
+        if pipeline_config["version"] != __version__:
+            logger.warning(
+                f"YAML version ({pipeline_config['version']}) does not match with Haystack version ({__version__}). "
+                "Issues may occurr during loading. "
path: haystack/pipelines/base.py
text: @user1:
typo in occur

diff_hunk: @@ -182,6 +186,12 @@ def load_from_yaml(cls, path: Path, pipeline_name: Optional[str] = None, overwri
         """
 
         pipeline_config = cls._read_pipeline_config_from_yaml(path)
+        if pipeline_config["version"] != __version__:
+            logger.warning(
+                f"YAML version ({pipeline_config['version']}) does not match with Haystack version ({__version__}). "
+                "Issues may occurr during loading. "
path: haystack/pipelines/base.py
text: @user1:
Can we add some advice here what could be done in such a case? E.g. In most cases loading a different version will work as expected. In case issues occur during loading, please check out our migration guide at https://haystack.deepset.ai/overview/migration or downgrade to haystack version `{__version__}`.

diff_hunk: @@ -1290,6 +1304,10 @@ def load_from_yaml(
             |        inputs: [MyESRetriever]
             ```
 
+
+        Note that, in case of a mismatch in version between Haystack and the YAML, a warning will be thrown.
path: haystack/pipelines/base.py
text: @user1:
same here with "thrown"

diff_hunk: @@ -173,6 +174,9 @@ def load_from_yaml(cls, path: Path, pipeline_name: Optional[str] = None, overwri
             |        inputs: [MyESRetriever]
             ```
 
+        Note that, in case of a mismatch in version between Haystack and the YAML, a warning will be thrown.
path: haystack/pipelines/base.py
text: @user1:
The verb thrown implies something like an exception. I'd rather go with shown/displayed/will appear, etc. What do you think?