ChromaQueryTextRetriever
Retrieve documents from a ChromaDocumentStore using text queries.
Key Features
- Text-based retrieval from a Chroma vector database using Chroma's built-in embedding and querying.
- Chroma handles the embedding of the query text internally using the configured embedding function.
- Configurable number of results with
top_k. - Supports metadata filtering to narrow down the search space.
- Configurable filter policy (
replaceormerge) for runtime filters.
Configuration
- Drag the
ChromaQueryTextRetrievercomponent onto the canvas from the Component Library. - Click on the component to open the configuration panel.
- On the General tab:
- Configure the
ChromaDocumentStorewith your Chroma instance details. - Set
top_kto control the maximum number of documents to retrieve.
- Configure the
- Go to the Advanced tab to configure
filter_policy.
Connections
ChromaQueryTextRetriever receives the user query as a text string, typically from the Input component. It sends retrieved documents to downstream components such as PromptBuilder or a ranker.
Source Code
To check this component's source code, open retriever.py in the Haystack Core Integrations repository.
Usage Examples
Basic Configuration
ChromaQueryTextRetriever:
type: haystack_integrations.components.retrievers.chroma.retriever.ChromaQueryTextRetriever
init_parameters:
top_k: 10
document_store:
type: haystack_integrations.document_stores.chroma.document_store.ChromaDocumentStore
init_parameters:
collection_name: documents
host: localhost
port: 8000
Using the Component in a Pipeline
# haystack-pipeline
components:
ChromaQueryTextRetriever:
type: haystack_integrations.components.retrievers.chroma.retriever.ChromaQueryTextRetriever
init_parameters:
top_k: 10
document_store:
type: haystack_integrations.document_stores.chroma.document_store.ChromaDocumentStore
init_parameters:
collection_name: documents
host: localhost
port: 8000
connections: []
max_runs_per_component: 100
metadata: {}
inputs:
query:
- ChromaQueryTextRetriever.query
outputs:
documents: ChromaQueryTextRetriever.documents
Parameters
Inputs
| Parameter | Type | Description |
|---|---|---|
query | str | The text query to search for. |
filters | Optional[Dict[str, Any]] | Filters to apply to the search results. |
top_k | Optional[int] | The maximum number of documents to return. |
Outputs
| Parameter | Type | Description |
|---|---|---|
documents | List[Document] | The retrieved documents. |
Init Parameters
These are the parameters you can configure in Pipeline Builder:
| Parameter | Type | Default | Description |
|---|---|---|---|
document_store | ChromaDocumentStore | An instance of ChromaDocumentStore. | |
filters | Optional[Dict[str, Any]] | None | Default filters applied when running the retriever. |
top_k | int | 10 | The maximum number of documents to retrieve. |
filter_policy | Union[str, FilterPolicy] | FilterPolicy.REPLACE | Policy for how runtime filters are applied relative to init-time filters. |
Run Method Parameters
These are the parameters you can configure for the component's run() method. This means you can pass these parameters at query time through the API, in Playground, or when running a job. For details, see Modify Pipeline Parameters at Query Time.
| Parameter | Type | Default | Description |
|---|---|---|---|
query | str | The text query to search for. | |
filters | Optional[Dict[str, Any]] | None | Filters to apply at query time. |
top_k | Optional[int] | None | Override the init-time top_k setting. |
Related Information
Was this page helpful?