chore: import upstream snapshot with attribution
CodeQL / Analyze (python) (push) Has been cancelled
Update Platform Components Table / update (push) Has been cancelled
Docker image release / Build base image (push) Has been cancelled
Sync docs with Docusaurus / sync (push) Has been cancelled
Tests / Check if changed (push) Has been cancelled
Tests / format (push) Has been cancelled
Tests / check-imports (push) Has been cancelled
Tests / Unit / macos-latest (push) Has been cancelled
Tests / Unit / ubuntu-latest (push) Has been cancelled
Tests / Unit / windows-latest (push) Has been cancelled
Tests / mypy (push) Has been cancelled
Tests / Integration / ubuntu-latest (push) Has been cancelled
Tests / Integration / macos-latest (push) Has been cancelled
Tests / Integration / windows-latest (push) Has been cancelled
Tests / notify-slack-on-failure (push) Has been cancelled
Tests / Mark tests as completed (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Update Platform Components Table / update (push) Has been cancelled
Docker image release / Build base image (push) Has been cancelled
Sync docs with Docusaurus / sync (push) Has been cancelled
Tests / Check if changed (push) Has been cancelled
Tests / format (push) Has been cancelled
Tests / check-imports (push) Has been cancelled
Tests / Unit / macos-latest (push) Has been cancelled
Tests / Unit / ubuntu-latest (push) Has been cancelled
Tests / Unit / windows-latest (push) Has been cancelled
Tests / mypy (push) Has been cancelled
Tests / Integration / ubuntu-latest (push) Has been cancelled
Tests / Integration / macos-latest (push) Has been cancelled
Tests / Integration / windows-latest (push) Has been cancelled
Tests / notify-slack-on-failure (push) Has been cancelled
Tests / Mark tests as completed (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# SPDX-FileCopyrightText: 2022-present deepset GmbH <info@deepset.ai>
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
from dataclasses import asdict, dataclass
|
||||
from typing import Any
|
||||
|
||||
from haystack.utils.dataclasses import _warn_on_inplace_mutation
|
||||
|
||||
|
||||
@_warn_on_inplace_mutation
|
||||
@dataclass
|
||||
class SparseEmbedding:
|
||||
"""
|
||||
Class representing a sparse embedding.
|
||||
|
||||
:param indices: List of indices of non-zero elements in the embedding.
|
||||
:param values: List of values of non-zero elements in the embedding.
|
||||
"""
|
||||
|
||||
indices: list[int]
|
||||
values: list[float]
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
"""
|
||||
Checks if the indices and values lists are of the same length.
|
||||
|
||||
Raises a ValueError if they are not.
|
||||
"""
|
||||
if len(self.indices) != len(self.values):
|
||||
raise ValueError("Length of indices and values must be the same.")
|
||||
|
||||
def to_dict(self) -> dict[str, Any]:
|
||||
"""
|
||||
Convert the SparseEmbedding object to a dictionary.
|
||||
|
||||
:returns:
|
||||
Serialized sparse embedding.
|
||||
"""
|
||||
return asdict(self)
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, sparse_embedding_dict: dict[str, Any]) -> "SparseEmbedding":
|
||||
"""
|
||||
Deserializes the sparse embedding from a dictionary.
|
||||
|
||||
:param sparse_embedding_dict:
|
||||
Dictionary to deserialize from.
|
||||
:returns:
|
||||
Deserialized sparse embedding.
|
||||
"""
|
||||
return cls(**sparse_embedding_dict)
|
||||
Reference in New Issue
Block a user