Skip to content

Deeplake

DeepLakeReader #

Bases: BaseReader

深湖阅读器。

从现有的深湖数据集中检索文档。

Parameters:

Name Type Description Default
dataset_name

深湖数据集的名称。

required
Source code in llama_index/readers/deeplake/base.py
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
class DeepLakeReader(BaseReader):
    """深湖阅读器。

    从现有的深湖数据集中检索文档。

    Args:
        dataset_name: 深湖数据集的名称。"""

    def __init__(
        self,
        token: Optional[str] = None,
    ):
        """初始化deepLake阅读器。"""
        import_err_msg = (
            "`deeplake` package not found, please run `pip install deeplake`"
        )
        try:
            import deeplake  # noqa
        except ImportError:
            raise ImportError(import_err_msg)
        self.token = token

    def load_data(
        self,
        query_vector: List[float],
        dataset_path: str,
        limit: int = 4,
        distance_metric: str = "l2",
    ) -> List[Document]:
        """从DeepLake加载数据。

Args:
    dataset_name (str): DeepLake数据集的名称。
    query_vector (List[float]): 查询向量。
    limit (int): 返回结果的数量。

Returns:
    List[Document]: 文档列表。
"""
        import deeplake
        from deeplake.util.exceptions import TensorDoesNotExistError

        dataset = deeplake.load(dataset_path, token=self.token)

        try:
            embeddings = dataset.embedding.numpy(fetch_chunks=True)
        except Exception:
            raise TensorDoesNotExistError("embedding")

        indices = vector_search(
            query_vector, embeddings, distance_metric=distance_metric, limit=limit
        )

        documents = []
        for idx in indices:
            document = Document(
                text=str(dataset[idx].text.numpy().tolist()[0]),
                id_=dataset[idx].ids.numpy().tolist()[0],
            )

            documents.append(document)

        return documents

load_data #

load_data(
    query_vector: List[float],
    dataset_path: str,
    limit: int = 4,
    distance_metric: str = "l2",
) -> List[Document]

从DeepLake加载数据。

Parameters:

Name Type Description Default
dataset_name str

DeepLake数据集的名称。

required
query_vector List[float]

查询向量。

required
limit int

返回结果的数量。

4

Returns:

Type Description
List[Document]

List[Document]: 文档列表。

Source code in llama_index/readers/deeplake/base.py
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
    def load_data(
        self,
        query_vector: List[float],
        dataset_path: str,
        limit: int = 4,
        distance_metric: str = "l2",
    ) -> List[Document]:
        """从DeepLake加载数据。

Args:
    dataset_name (str): DeepLake数据集的名称。
    query_vector (List[float]): 查询向量。
    limit (int): 返回结果的数量。

Returns:
    List[Document]: 文档列表。
"""
        import deeplake
        from deeplake.util.exceptions import TensorDoesNotExistError

        dataset = deeplake.load(dataset_path, token=self.token)

        try:
            embeddings = dataset.embedding.numpy(fetch_chunks=True)
        except Exception:
            raise TensorDoesNotExistError("embedding")

        indices = vector_search(
            query_vector, embeddings, distance_metric=distance_metric, limit=limit
        )

        documents = []
        for idx in indices:
            document = Document(
                text=str(dataset[idx].text.numpy().tolist()[0]),
                id_=dataset[idx].ids.numpy().tolist()[0],
            )

            documents.append(document)

        return documents