diff --git a/docs-website/reference/integrations-api/ibm_db.md b/docs-website/reference/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.18/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.18/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.18/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.19/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.19/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.19/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.20/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.20/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.20/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.21/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.21/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.21/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.22/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.22/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.22/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.23/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.23/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.23/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.24/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.24/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.24/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.25/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.25/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.25/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.26/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.26/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.26/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.27/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.27/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.27/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.28/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.28/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.28/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.29/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.29/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.29/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.30/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.30/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.30/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance diff --git a/docs-website/reference_versioned_docs/version-2.31/integrations-api/ibm_db.md b/docs-website/reference_versioned_docs/version-2.31/integrations-api/ibm_db.md new file mode 100644 index 00000000000..a1fa4f84db5 --- /dev/null +++ b/docs-website/reference_versioned_docs/version-2.31/integrations-api/ibm_db.md @@ -0,0 +1,374 @@ +--- +title: "Ibm Db" +id: integrations-ibm-db +description: "Ibm Db integration for Haystack" +slug: "/integrations-ibm-db" +--- + + +## haystack_integrations.components.retrievers.ibm_db.embedding_retriever + +### IBMDb2EmbeddingRetriever + +Retrieves documents from a IBMDb2DocumentStore using vector similarity. + +Use inside a Haystack pipeline after a text embedder: + +```python +pipeline.add_component("embedder", SentenceTransformersTextEmbedder()) +pipeline.add_component("retriever", IBMDb2EmbeddingRetriever( + document_store=store, top_k=5 +)) +pipeline.connect("embedder.embedding", "retriever.query_embedding") +``` + +#### __init__ + +```python +__init__( + *, + document_store: IBMDb2DocumentStore, + filters: dict[str, Any] | None = None, + top_k: int = 10, + filter_policy: FilterPolicy = FilterPolicy.REPLACE +) -> None +``` + +Initialize the IBMDb2EmbeddingRetriever. + +**Parameters:** + +- **document_store** (IBMDb2DocumentStore) – An instance of `IBMDb2DocumentStore`. +- **filters** (dict\[str, Any\] | None) – Filters applied to the retrieved Documents. +- **top_k** (int) – Maximum number of Documents to return. +- **filter_policy** (FilterPolicy) – Policy to determine how filters are applied. + +**Raises:** + +- TypeError – If `document_store` is not an instance of `IBMDb2DocumentStore`. + +#### run + +```python +run( + query_embedding: list[float], + filters: dict[str, Any] | None = None, + top_k: int | None = None, +) -> dict[str, list[Document]] +``` + +Retrieve documents by vector similarity. + +**Parameters:** + +- **query_embedding** (list\[float\]) – Dense float vector from an embedder component. +- **filters** (dict\[str, Any\] | None) – Runtime filters, merged with constructor filters according to filter_policy. +- **top_k** (int | None) – Override the constructor top_k for this call. + +**Returns:** + +- dict\[str, list\[Document\]\] – A dictionary with key `documents` containing a list of matching :class:`Document` objects. + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serializes the component to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary with serialized data. + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2EmbeddingRetriever +``` + +Deserializes the component from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary to deserialize from. + +**Returns:** + +- IBMDb2EmbeddingRetriever – Deserialized component. + +## haystack_integrations.document_stores.ibm_db.document_store + +IBM DB2 Document Store for Haystack. + +### IBMDb2DocumentStore + +IBM DB2 Document Store for Haystack using vector search capabilities. + +This document store uses IBM DB2's native vector search functionality +to store and retrieve documents with embeddings. + +#### __init__ + +```python +__init__( + *, + database: str, + hostname: str, + username: Secret = Secret.from_env_var("DB2_USERNAME"), + password: Secret = Secret.from_env_var("DB2_PASSWORD"), + port: int = 50000, + protocol: str = "TCPIP", + schema: str | None = None, + use_ssl: bool = False, + ssl_certificate: str | None = None, + connection_options: dict[str, Any] | None = None, + table_name: str = "haystack_documents", + embedding_dim: int = 768, + distance_metric: Literal["EUCLIDEAN", "COSINE", "MANHATTAN"] = "COSINE", + recreate_table: bool = False +) +``` + +Initialize the IBM DB2 Document Store. + +**Parameters:** + +- **database** (str) – Database name +- **hostname** (str) – Database server hostname +- **username** (Secret) – Database username as a `Secret`, e.g. `Secret.from_env_var("DB2_USERNAME")`. +- **password** (Secret) – Database password as a `Secret`, e.g. `Secret.from_env_var("DB2_PASSWORD")`. +- **port** (int) – Database server port (default: 50000) +- **protocol** (str) – Connection protocol (default: "TCPIP") +- **schema** (str | None) – Database schema (optional) +- **use_ssl** (bool) – Enable SSL/TLS connection (default: False) +- **ssl_certificate** (str | None) – Path to SSL certificate file (optional, required if use_ssl is True) +- **connection_options** (dict\[str, Any\] | None) – Additional connection options as dict (optional) +- **table_name** (str) – Name of the table to store documents (default: "haystack_documents") +- **embedding_dim** (int) – Dimension of embedding vectors (default: 768) +- **distance_metric** (Literal['EUCLIDEAN', 'COSINE', 'MANHATTAN']) – Distance metric for similarity search (default: "COSINE") +- **recreate_table** (bool) – If True, drop and recreate the table (default: False) + +#### count_documents + +```python +count_documents() -> int +``` + +Count all documents in the store. + +**Returns:** + +- int – Number of documents + +#### count_documents_by_filter + +```python +count_documents_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Count documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents matching the filters + +#### write_documents + +```python +write_documents( + documents: list[Document], policy: DuplicatePolicy = DuplicatePolicy.NONE +) -> int +``` + +Write documents to the store. + +**Parameters:** + +- **documents** (list\[Document\]) – List of documents to write +- **policy** (DuplicatePolicy) – Policy for handling duplicate documents + +**Returns:** + +- int – Number of documents written + +**Raises:** + +- ValueError – If documents is not a list of Document objects or has invalid embeddings +- TypeError – If embeddings have invalid types +- DuplicateDocumentError – If a document with the same id already exists and policy is FAIL or NONE + +#### filter_documents + +```python +filter_documents(filters: dict[str, Any] | None = None) -> list[Document] +``` + +Filter documents using SQL-based metadata and field conditions. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filter dictionary to constrain the returned documents. + +**Returns:** + +- list\[Document\] – List of matching documents. + +#### delete_documents + +```python +delete_documents(document_ids: list[str]) -> None +``` + +Delete documents by their IDs. + +**Parameters:** + +- **document_ids** (list\[str\]) – List of document IDs to delete + +#### delete_by_filter + +```python +delete_by_filter(filters: dict[str, Any] | None = None) -> int +``` + +Delete documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. + +**Returns:** + +- int – Number of documents deleted + +#### delete_all_documents + +```python +delete_all_documents(recreate_index: bool = False) -> int +``` + +Delete all documents from the document store. + +**Parameters:** + +- **recreate_index** (bool) – If True, recreate the table after deletion + +**Returns:** + +- int – Number of documents deleted + +#### update_by_filter + +```python +update_by_filter( + filters: dict[str, Any] | None = None, meta: dict[str, Any] | None = None +) -> int +``` + +Update documents that match the provided filters. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Filters to apply. See Haystack documentation for filter syntax. +- **meta** (dict\[str, Any\] | None) – Dictionary of metadata fields to update + +**Returns:** + +- int – Number of documents updated + +#### get_metadata_field_unique_values + +```python +get_metadata_field_unique_values(field: str) -> list[Any] +``` + +Get all unique values for a given metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- list\[Any\] – List of unique values for the field + +#### get_metadata_field_min_max + +```python +get_metadata_field_min_max(field: str) -> dict[str, Any] +``` + +Get the minimum and maximum values for a numeric metadata field. + +**Parameters:** + +- **field** (str) – The metadata field name (can include 'meta.' prefix) + +**Returns:** + +- dict\[str, Any\] – Dictionary with 'min' and 'max' keys + +#### get_metadata_fields_info + +```python +get_metadata_fields_info() -> dict[str, dict[str, Any]] +``` + +Get information about all metadata fields including their types. + +**Returns:** + +- dict\[str, dict\[str, Any\]\] – Dictionary mapping field names to their type information + +#### count_unique_metadata_by_filter + +```python +count_unique_metadata_by_filter( + filters: dict[str, Any] | None = None, + metadata_fields: list[str] | None = None, +) -> dict[str, int] +``` + +Count unique values for specified metadata fields, optionally filtered. + +**Parameters:** + +- **filters** (dict\[str, Any\] | None) – Optional filters to apply before counting +- **metadata_fields** (list\[str\] | None) – List of metadata field names to count unique values for + +**Returns:** + +- dict\[str, int\] – Dictionary mapping field names to their unique value counts + +#### to_dict + +```python +to_dict() -> dict[str, Any] +``` + +Serialize the document store to a dictionary. + +**Returns:** + +- dict\[str, Any\] – Dictionary representation + +#### from_dict + +```python +from_dict(data: dict[str, Any]) -> IBMDb2DocumentStore +``` + +Deserialize the document store from a dictionary. + +**Parameters:** + +- **data** (dict\[str, Any\]) – Dictionary representation + +**Returns:** + +- IBMDb2DocumentStore – IBMDb2DocumentStore instance