"))
diff --git a/docs-website/docs/pipeline-components/retrievers.mdx b/docs-website/docs/pipeline-components/retrievers.mdx
index f6e2f19e100..8932ab0561d 100644
--- a/docs-website/docs/pipeline-components/retrievers.mdx
+++ b/docs-website/docs/pipeline-components/retrievers.mdx
@@ -36,7 +36,7 @@ Main features:
### Dense Embedding-Based Retrievers
-Dense embedding-based Retrievers work with embeddings, which are vector representations of words that capture their semantics. Dense Retrievers need an [Embedder](embedders.mdx) first to turn the documents and the query into vectors. Then, they calculate the vector similarity of the query and each document in the Document Store to fetch the most relevant documents.
+Dense embedding-based Retrievers work with embeddings, which are vector representations of words that capture their semantics. Dense Retrievers need an [Embedder](embedders.mdx) first to turn the documents and the query into vectors. Then, they calculate the vector similarity of the query and each document in the Document Store to fetch the most relevant documents.
Main features:
@@ -61,7 +61,7 @@ Main features:
### Filter Retriever
-`FilterRetriever` is a special kind of Retriever that can work with all Document Stores and retrieves all documents that match the provided filters.
+`FilterRetriever` is a special kind of Retriever that can work with all Document Stores and retrieves all documents that match the provided filters.
For more information, read this Retriever's [documentation page](retrievers/filterretriever.mdx).
diff --git a/docs-website/docs/pipeline-components/retrievers/azureaisearchbm25retriever.mdx b/docs-website/docs/pipeline-components/retrievers/azureaisearchbm25retriever.mdx
index 9cdf5103663..793ead852b3 100644
--- a/docs-website/docs/pipeline-components/retrievers/azureaisearchbm25retriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/azureaisearchbm25retriever.mdx
@@ -15,7 +15,7 @@ A keyword-based Retriever that fetches documents matching a query from the Azure
| | |
| --- | --- |
-| **Most common position in a pipeline** | 1. Before a [`PromptBuilder`](../builders/promptbuilder.mdx) in a RAG pipeline 2. The last component in the semantic search pipeline 3. Before an [`ExtractiveReader`](../readers/extractivereader.mdx) in an extractive QA pipeline |
+| **Most common position in a pipeline** | 1. Before a [`PromptBuilder`](../builders/promptbuilder.mdx) in a RAG pipeline 2. The last component in the semantic search pipeline 3. Before an [`ExtractiveReader`](../readers/extractivereader.mdx) in an extractive QA pipeline |
| **Mandatory init variables** | `document_store`: An instance of [`AzureAISearchDocumentStore`](../../document-stores/azureaisearchdocumentstore.mdx) |
| **Mandatory run variables** | `query`: A string |
| **Output variables** | `documents`: A list of documents (matching the query) |
@@ -29,11 +29,11 @@ A keyword-based Retriever that fetches documents matching a query from the Azure
The `AzureAISearchBM25Retriever` is a keyword-based Retriever designed to fetch documents that match a query from an `AzureAISearchDocumentStore`. It uses the BM25 algorithm which calculates a weighted word overlap between the query and the documents to determine their similarity. The Retriever accepts textual query but you can also provide a combination of terms with boolean operators. Some examples of valid queries could be `"pool"`, `"pool spa"`, and `"pool spa +airport"`.
-In addition to the `query`, the `AzureAISearchBM25Retriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow down the search space.
+In addition to the `query`, the `AzureAISearchBM25Retriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow down the search space.
If your search index includes a [semantic configuration](https://learn.microsoft.com/en-us/azure/search/semantic-how-to-query-request), you can enable semantic ranking to apply it to the Retriever's results. For more details, refer to the [Azure AI documentation](https://learn.microsoft.com/en-us/azure/search/hybrid-search-how-to-query#semantic-hybrid-search).
-If you want a combination of BM25 and vector retrieval, use the `AzureAISearchHybridRetriever`, which uses both vector search and BM25 search to match documents and query.
+If you want a combination of BM25 and vector retrieval, use the `AzureAISearchHybridRetriever`, which uses both vector search and BM25 search to match documents and query.
## Usage
@@ -78,7 +78,7 @@ retriever.run(query="How many languages are spoken around the world today?")
### In a RAG pipeline
-The below example shows how to use the `AzureAISearchBM25Retriever` in a RAG pipeline. Set your `OPENAI_API_KEY` as an environment variable and then run the following code:
+The below example shows how to use the `AzureAISearchBM25Retriever` in a RAG pipeline. Set your `OPENAI_API_KEY` as an environment variable and then run the following code:
```python
diff --git a/docs-website/docs/pipeline-components/retrievers/azureaisearchembeddingretriever.mdx b/docs-website/docs/pipeline-components/retrievers/azureaisearchembeddingretriever.mdx
index 7fb26bedbe8..4396d04a05f 100644
--- a/docs-website/docs/pipeline-components/retrievers/azureaisearchembeddingretriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/azureaisearchembeddingretriever.mdx
@@ -15,7 +15,7 @@ This Retriever accepts the embeddings of a single query as input and returns a l
| | |
| --- | --- |
-| **Most common position in a pipeline** | 1. After a Text Embedder and before a [`PromptBuilder`](../builders/promptbuilder.mdx) in a RAG pipeline 2. The last component in the embedding retrieval pipeline 3. After a Text Embedder and before an [`ExtractiveReader`](../readers/extractivereader.mdx) in an extractive QA pipeline |
+| **Most common position in a pipeline** | 1. After a Text Embedder and before a [`PromptBuilder`](../builders/promptbuilder.mdx) in a RAG pipeline 2. The last component in the embedding retrieval pipeline 3. After a Text Embedder and before an [`ExtractiveReader`](../readers/extractivereader.mdx) in an extractive QA pipeline |
| **Mandatory init variables** | `document_store`: An instance of [`AzureAISearchDocumentStore`](../../document-stores/azureaisearchdocumentstore.mdx) |
| **Mandatory run variables** | `query_embedding`: A list of floats |
| **Output variables** | `documents`: A list of documents |
@@ -27,13 +27,13 @@ This Retriever accepts the embeddings of a single query as input and returns a l
## Overview
-The `AzureAISearchEmbeddingRetriever` is an embedding-based Retriever compatible with the `AzureAISearchDocumentStore`. It compares the query and document embeddings and fetches the most relevant documents from the `AzureAISearchDocumentStore` based on the outcome.
+The `AzureAISearchEmbeddingRetriever` is an embedding-based Retriever compatible with the `AzureAISearchDocumentStore`. It compares the query and document embeddings and fetches the most relevant documents from the `AzureAISearchDocumentStore` based on the outcome.
-The query needs to be embedded before being passed to this component. For example, you could use a Text [Embedder](../embedders.mdx) component.
+The query needs to be embedded before being passed to this component. For example, you could use a Text [Embedder](../embedders.mdx) component.
By default, the `AzureAISearchDocumentStore` uses the [HNSW algorithm](https://learn.microsoft.com/en-us/azure/search/vector-search-overview#nearest-neighbors-search) with cosine similarity to handle vector searches. The vector configuration is set during the initialization of the document store and can be customized by providing the `vector_search_configuration` parameter.
-In addition to the `query_embedding`, the `AzureAISearchEmbeddingRetriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow down the search space.
+In addition to the `query_embedding`, the `AzureAISearchEmbeddingRetriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow down the search space.
:::info[Semantic Ranking]
@@ -74,11 +74,11 @@ retriever.run(query_embedding=[0.1] * 384)
### In a pipeline
-Here is how you could use the `AzureAISearchEmbeddingRetriever` in a pipeline. In this example, you would create two pipelines: an indexing one and a querying one.
+Here is how you could use the `AzureAISearchEmbeddingRetriever` in a pipeline. In this example, you would create two pipelines: an indexing one and a querying one.
In the indexing pipeline, the documents are passed to the Document Embedder and then written into the Document Store.
-Then, in the querying pipeline, we use a Text Embedder to get the vector representation of the input query that will be then passed to the `AzureAISearchEmbeddingRetriever` to get the results.
+Then, in the querying pipeline, we use a Text Embedder to get the vector representation of the input query that will be then passed to the `AzureAISearchEmbeddingRetriever` to get the results.
```python
from haystack import Document, Pipeline
diff --git a/docs-website/docs/pipeline-components/retrievers/azureaisearchhybridretriever.mdx b/docs-website/docs/pipeline-components/retrievers/azureaisearchhybridretriever.mdx
index fe532a10cc3..368b72d1141 100644
--- a/docs-website/docs/pipeline-components/retrievers/azureaisearchhybridretriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/azureaisearchhybridretriever.mdx
@@ -15,7 +15,7 @@ This Retriever combines embedding-based retrieval and BM25 text search search to
| | |
| --- | --- |
-| **Most common position in a pipeline** | 1. After a TextEmbedder and before a [`PromptBuilder`](../builders/promptbuilder.mdx) in a RAG pipeline 2. The last component in a hybrid search pipeline 3. After a TextEmbedder and before an [`ExtractiveReader`](../readers/extractivereader.mdx) in an extractive QA pipeline |
+| **Most common position in a pipeline** | 1. After a TextEmbedder and before a [`PromptBuilder`](../builders/promptbuilder.mdx) in a RAG pipeline 2. The last component in a hybrid search pipeline 3. After a TextEmbedder and before an [`ExtractiveReader`](../readers/extractivereader.mdx) in an extractive QA pipeline |
| **Mandatory init variables** | `document_store`: An instance of [`AzureAISearchDocumentStore`](../../document-stores/azureaisearchdocumentstore.mdx) |
| **Mandatory run variables** | `query`: A string
`query_embedding`: A list of floats |
| **Output variables** | `documents`: A list of documents (matching the query) |
diff --git a/docs-website/docs/pipeline-components/retrievers/chromaembeddingretriever.mdx b/docs-website/docs/pipeline-components/retrievers/chromaembeddingretriever.mdx
index d108a3985bd..dd8765e2992 100644
--- a/docs-website/docs/pipeline-components/retrievers/chromaembeddingretriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/chromaembeddingretriever.mdx
@@ -35,7 +35,7 @@ In addition to the `query_embedding`, the `ChromaEmbeddingRetriever` accepts oth
#### On its own
-This Retriever needs the `ChromaDocumentStore` and indexed documents to run.
+This Retriever needs the `ChromaDocumentStore` and indexed documents to run.
```python
from haystack_integrations.document_stores.chroma import ChromaDocumentStore
diff --git a/docs-website/docs/pipeline-components/retrievers/chromaqueryretriever.mdx b/docs-website/docs/pipeline-components/retrievers/chromaqueryretriever.mdx
index bfd11fa8057..98665328a93 100644
--- a/docs-website/docs/pipeline-components/retrievers/chromaqueryretriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/chromaqueryretriever.mdx
@@ -33,7 +33,7 @@ Chroma will create the embedding for the query using its [embedding function](ht
#### On its own
-This Retriever needs the `ChromaDocumentStore` and indexed documents to run.
+This Retriever needs the `ChromaDocumentStore` and indexed documents to run.
```python
from haystack_integrations.document_stores.chroma import ChromaDocumentStore
diff --git a/docs-website/docs/pipeline-components/retrievers/elasticsearchbm25retriever.mdx b/docs-website/docs/pipeline-components/retrievers/elasticsearchbm25retriever.mdx
index cfbd1d357b5..5ddf0fb253b 100644
--- a/docs-website/docs/pipeline-components/retrievers/elasticsearchbm25retriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/elasticsearchbm25retriever.mdx
@@ -36,7 +36,7 @@ If you want a semantic match between a query and documents, you can use `Elastic
## Installation
-[Install](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html) Elasticsearch and then [start](https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html) an instance. Haystack supports Elasticsearch 8.
+[Install](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html) Elasticsearch and then [start](https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html) an instance. Haystack supports Elasticsearch 8.
If you have Docker set up, we recommend pulling the Docker image and running it.
diff --git a/docs-website/docs/pipeline-components/retrievers/elasticsearchembeddingretriever.mdx b/docs-website/docs/pipeline-components/retrievers/elasticsearchembeddingretriever.mdx
index b059e951455..f08452d5e44 100644
--- a/docs-website/docs/pipeline-components/retrievers/elasticsearchembeddingretriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/elasticsearchembeddingretriever.mdx
@@ -37,7 +37,7 @@ The `embedding_similarity_function` to use for embedding retrieval must be defin
## Installation
-[Install](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html) Elasticsearch and then [start](https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html) an instance. Haystack supports Elasticsearch 8.
+[Install](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html) Elasticsearch and then [start](https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html) an instance. Haystack supports Elasticsearch 8.
If you have Docker set up, we recommend pulling the Docker image and running it.
diff --git a/docs-website/docs/pipeline-components/retrievers/pgvectorkeywordretriever.mdx b/docs-website/docs/pipeline-components/retrievers/pgvectorkeywordretriever.mdx
index e0a4ffc709b..b87f7b50ca0 100644
--- a/docs-website/docs/pipeline-components/retrievers/pgvectorkeywordretriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/pgvectorkeywordretriever.mdx
@@ -33,7 +33,7 @@ For more details, see [Postgres documentation](https://www.postgresql.org/docs/c
Keep in mind that, unlike similar components such as `ElasticsearchBM25Retriever`, this Retriever does not apply fuzzy search out of the box, so it’s necessary to carefully formulate the query in order to avoid getting zero results.
-In addition to the `query`, the `PgvectorKeywordRetriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow the search space.
+In addition to the `query`, the `PgvectorKeywordRetriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow the search space.
### Installation
@@ -75,7 +75,7 @@ retriever.run(query="my nice query")
The prerequisites necessary for running this code are:
-- Set an environment variable `OPENAI_API_KEY` with your OpenAI API key.
+- Set an environment variable `OPENAI_API_KEY` with your OpenAI API key.
- Set an environment variable `PG_CONN_STR` with the connection string to your PostgreSQL database.
```python
diff --git a/docs-website/docs/pipeline-components/retrievers/qdrantsparseembeddingretriever.mdx b/docs-website/docs/pipeline-components/retrievers/qdrantsparseembeddingretriever.mdx
index 3f0b0588556..116262decdc 100644
--- a/docs-website/docs/pipeline-components/retrievers/qdrantsparseembeddingretriever.mdx
+++ b/docs-website/docs/pipeline-components/retrievers/qdrantsparseembeddingretriever.mdx
@@ -31,7 +31,7 @@ It compares the query and document sparse embeddings and, based on the outcome,
When using the `QdrantSparseEmbeddingRetriever`, make sure it has the query and document sparse embeddings available. You can do so by adding a sparse document Embedder to your indexing pipeline and a sparse text Embedder to your query pipeline.
-In addition to the `query_sparse_embedding`, the `QdrantSparseEmbeddingRetriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow down the search space.
+In addition to the `query_sparse_embedding`, the `QdrantSparseEmbeddingRetriever` accepts other optional parameters, including `top_k` (the maximum number of documents to retrieve) and `filters` to narrow down the search space.
:::note[Sparse Embedding Support]
diff --git a/docs-website/docs/pipeline-components/routers/llmmessagesrouter.mdx b/docs-website/docs/pipeline-components/routers/llmmessagesrouter.mdx
index 370f2f2cb0c..943506f33a3 100644
--- a/docs-website/docs/pipeline-components/routers/llmmessagesrouter.mdx
+++ b/docs-website/docs/pipeline-components/routers/llmmessagesrouter.mdx
@@ -39,13 +39,13 @@ Each pattern is evaluated in order, and the first match determines the output. T
Optionally, you can provide a `system_prompt` to guide the classification behavior of the LLM. In this case as well, we recommend checking the model card to discover customization options.
-To see the full list of parameters, check out our [API reference](/reference/routers-api#llmmessagesrouter).
+To see the full list of parameters, check out our [API reference](/reference/routers-api#llmmessagesrouter).
## Usage
### On its own
-Below is an example of using `LLMMessagesRouter` to route Chat Messages to two output connections based on safety classification. Messages that don’t match any pattern are routed to `unmatched`.
+Below is an example of using `LLMMessagesRouter` to route Chat Messages to two output connections based on safety classification. Messages that don’t match any pattern are routed to `unmatched`.
We use Llama Guard 4 for content moderation. To use this model with the Hugging Face API, you need to [request access](https://huggingface.co/meta-llama/Llama-Guard-4-12B) and set the `HF_TOKEN` environment variable.
diff --git a/docs-website/docs/pipeline-components/samplers/toppsampler.mdx b/docs-website/docs/pipeline-components/samplers/toppsampler.mdx
index 3e1ab2e3b23..e0cca93bbca 100644
--- a/docs-website/docs/pipeline-components/samplers/toppsampler.mdx
+++ b/docs-website/docs/pipeline-components/samplers/toppsampler.mdx
@@ -27,9 +27,9 @@ Uses nucleus sampling to filter documents.
Top-P (nucleus) sampling is a method that helps identify and select a subset of documents based on their cumulative probabilities. Instead of choosing a fixed number of documents, this method focuses on a specified percentage of the highest cumulative probabilities within a list of documents. To put it simply, `TopPSampler` provides a way to efficiently select the most relevant documents based on their similarity to a given query.
-The practical goal of the `TopPSampler` is to return a list of documents that, in sum, have a score larger than the `top_p` value. So, for example, when `top_p` is set to a high value, more documents will be returned, which can result in more varied outputs. The value is typically set between 0 and 1. By default, the component uses documents' `score` fields to look at the similarity scores.
+The practical goal of the `TopPSampler` is to return a list of documents that, in sum, have a score larger than the `top_p` value. So, for example, when `top_p` is set to a high value, more documents will be returned, which can result in more varied outputs. The value is typically set between 0 and 1. By default, the component uses documents' `score` fields to look at the similarity scores.
-The component’s `run()` method takes in a set of documents, calculates the similarity scores between the query and the documents, and then filters the documents based on the cumulative probability of these scores.
+The component’s `run()` method takes in a set of documents, calculates the similarity scores between the query and the documents, and then filters the documents based on the cumulative probability of these scores.
## Usage
diff --git a/docs-website/docs/pipeline-components/tools/toolinvoker.mdx b/docs-website/docs/pipeline-components/tools/toolinvoker.mdx
index 634bfd72179..a1014c28cb1 100644
--- a/docs-website/docs/pipeline-components/tools/toolinvoker.mdx
+++ b/docs-website/docs/pipeline-components/tools/toolinvoker.mdx
@@ -2,12 +2,12 @@
title: "ToolInvoker"
id: toolinvoker
slug: "/toolinvoker"
-description: "This component is designed to execute tool calls prepared by language models. It acts as a bridge between the language model's output and the actual execution of functions or tools that perform specific tasks."
+description: "This component is designed to execute tool calls prepared by language models. It acts as a bridge between the language model's output and the actual execution of functions or tools that perform specific tasks."
---
# ToolInvoker
-This component is designed to execute tool calls prepared by language models. It acts as a bridge between the language model's output and the actual execution of functions or tools that perform specific tasks.
+This component is designed to execute tool calls prepared by language models. It acts as a bridge between the language model's output and the actual execution of functions or tools that perform specific tasks.
@@ -25,7 +25,7 @@ This component is designed to execute tool calls prepared by language m
## Overview
-A `ToolInvoker` is a component that processes `ChatMessage` objects containing tool calls. It invokes the corresponding tools and returns the results as a list of `ChatMessage` objects. Each tool is defined with a name, description, parameters, and a function that performs the task. The `ToolInvoker` manages these tools and handles the invocation process.
+A `ToolInvoker` is a component that processes `ChatMessage` objects containing tool calls. It invokes the corresponding tools and returns the results as a list of `ChatMessage` objects. Each tool is defined with a name, description, parameters, and a function that performs the task. The `ToolInvoker` manages these tools and handles the invocation process.
You can pass multiple tools to the `ToolInvoker` component, and it will automatically choose the right tool to call based on tool calls produced by a Language Model.
diff --git a/docs-website/docs/pipeline-components/validators/jsonschemavalidator.mdx b/docs-website/docs/pipeline-components/validators/jsonschemavalidator.mdx
index aa6ae6496fd..12c6eca7dbc 100644
--- a/docs-website/docs/pipeline-components/validators/jsonschemavalidator.mdx
+++ b/docs-website/docs/pipeline-components/validators/jsonschemavalidator.mdx
@@ -14,7 +14,7 @@ Use this component to ensure that an LLM-generated chat message JSON adheres to
| | |
| --- | --- |
| **Most common position in a pipeline** | After a [Generator](../generators.mdx) |
-| **Mandatory run variables** | `messages`: A list of [`ChatMessage`](../../concepts/data-classes/chatmessage.mdx) instances to be validated – the last message in this list is the one that is validated |
+| **Mandatory run variables** | `messages`: A list of [`ChatMessage`](../../concepts/data-classes/chatmessage.mdx) instances to be validated – the last message in this list is the one that is validated |
| **Output variables** | `validated`: A list of messages if the last message is valid
`validation_error`: A list of messages if the last message is invalid |
| **API reference** | [Validators](/reference/validators-api) |
| **GitHub link** | https://github.com/deepset-ai/haystack/blob/main/haystack/components/validators/json_schema.py |
@@ -24,7 +24,7 @@ Use this component to ensure that an LLM-generated chat message JSON adheres to
## Overview
-`JsonSchemaValidator` checks the JSON content of a `ChatMessage` against a given [JSON Schema](https://json-schema.org/). If a message's JSON content follows the provided schema, it's moved to the `validated` output. If not, it's moved to the `validation_error`output. When there's an error, the component uses either the provided custom `error_template` or a default template to create the error message. These error `ChatMessages` can be used in Haystack recovery loops.
+`JsonSchemaValidator` checks the JSON content of a `ChatMessage` against a given [JSON Schema](https://json-schema.org/). If a message's JSON content follows the provided schema, it's moved to the `validated` output. If not, it's moved to the `validation_error`output. When there's an error, the component uses either the provided custom `error_template` or a default template to create the error message. These error `ChatMessages` can be used in Haystack recovery loops.
## Usage
diff --git a/docs-website/docs/pipeline-components/websearch/searchapiwebsearch.mdx b/docs-website/docs/pipeline-components/websearch/searchapiwebsearch.mdx
index 75f91256075..1ba64a1f50f 100644
--- a/docs-website/docs/pipeline-components/websearch/searchapiwebsearch.mdx
+++ b/docs-website/docs/pipeline-components/websearch/searchapiwebsearch.mdx
@@ -29,7 +29,7 @@ When you give `SearchApiWebSearch` a query, it returns a list of the URLs most r
To search the content of the web pages, use the [`LinkContentFetcher`](../fetchers/linkcontentfetcher.mdx) component.
-`SearchApiWebSearch` requires a [SearchApi](https://www.searchapi.io) key to work. It uses a `SEARCHAPI_API_KEY` environment variable by default. Otherwise, you can pass an `api_key` at initialization – see code examples below.
+`SearchApiWebSearch` requires a [SearchApi](https://www.searchapi.io) key to work. It uses a `SEARCHAPI_API_KEY` environment variable by default. Otherwise, you can pass an `api_key` at initialization – see code examples below.
:::info[Alternative search]
@@ -59,7 +59,7 @@ response = web_search.run(query)
### In a pipeline
-Here’s an example of a RAG pipeline where we use a `SearchApiWebSearch` to look up the answer to the query. The resulting documents are then passed to `LinkContentFetcher` to get the full text from the URLs. Finally, `ChatPromptBuilder` and `OpenAIChatGenerator` work together to form the final answer.
+Here’s an example of a RAG pipeline where we use a `SearchApiWebSearch` to look up the answer to the query. The resulting documents are then passed to `LinkContentFetcher` to get the full text from the URLs. Finally, `ChatPromptBuilder` and `OpenAIChatGenerator` work together to form the final answer.
```python
from haystack import Pipeline
diff --git a/docs-website/docs/pipeline-components/websearch/serperdevwebsearch.mdx b/docs-website/docs/pipeline-components/websearch/serperdevwebsearch.mdx
index 3964e01794e..c544478b3bc 100644
--- a/docs-website/docs/pipeline-components/websearch/serperdevwebsearch.mdx
+++ b/docs-website/docs/pipeline-components/websearch/serperdevwebsearch.mdx
@@ -29,7 +29,7 @@ When you give `SerperDevWebSearch` a query, it returns a list of the URLs most r
To search the content of the web pages, use the [`LinkContentFetcher`](../fetchers/linkcontentfetcher.mdx) component.
-`SerperDevWebSearch` requires a [SerperDev](https://serper.dev/) key to work. It uses a `SERPERDEV_API_KEY` environment variable by default. Otherwise, you can pass an `api_key` at initialization – see code examples below.
+`SerperDevWebSearch` requires a [SerperDev](https://serper.dev/) key to work. It uses a `SERPERDEV_API_KEY` environment variable by default. Otherwise, you can pass an `api_key` at initialization – see code examples below.
:::info[Alternative search]
@@ -60,7 +60,7 @@ response = web_search.run(query)
### In a pipeline
-Here’s an example of a RAG pipeline where we use a `SerperDevWebSearch` to look up the answer to the query. The resulting documents are then passed to `LinkContentFetcher` to get the full text from the URLs. Finally, `ChatPromptBuilder` and `OpenAIChatGenerator` work together to form the final answer.
+Here’s an example of a RAG pipeline where we use a `SerperDevWebSearch` to look up the answer to the query. The resulting documents are then passed to `LinkContentFetcher` to get the full text from the URLs. Finally, `ChatPromptBuilder` and `OpenAIChatGenerator` work together to form the final answer.
```python
from haystack import Pipeline
diff --git a/docs-website/docs/tools/toolset.mdx b/docs-website/docs/tools/toolset.mdx
index 48200d803a9..6c590e07332 100644
--- a/docs-website/docs/tools/toolset.mdx
+++ b/docs-website/docs/tools/toolset.mdx
@@ -22,7 +22,7 @@ Group multiple Tools into a single unit.
## Overview
-A `Toolset` groups multiple Tool instances into a single manageable unit. It simplifies passing tools to components like Chat Generators, [`ToolInvoker`](../pipeline-components/tools/toolinvoker.mdx), or [`Agent`](../pipeline-components/agents-1/agent.mdx), and supports filtering, serialization, and reuse.
+A `Toolset` groups multiple Tool instances into a single manageable unit. It simplifies passing tools to components like Chat Generators, [`ToolInvoker`](../pipeline-components/tools/toolinvoker.mdx), or [`Agent`](../pipeline-components/agents-1/agent.mdx), and supports filtering, serialization, and reuse.
Additionally, by subclassing `Toolset`, you can create implementations that dynamically load tools from external sources like OpenAPI URLs, MCP servers, or other resources.