创建和加载私有数据集
本文档介绍如何创建、上传和列出您的数据集,供其他Pinecone用户使用。本指南展示如何使用您自己的存储创建自己的数据集;您无法将自己的数据集上传到Pinecone数据集目录中。
要了解如何使用现有的Pinecone数据集,请参阅使用数据集。
创建数据集
依赖关系
Pinecone数据集项目使用poetry
来管理依赖项,支持Python版本3.8+。
要安装Poetry,请从项目根目录运行以下命令:
Shell
poetry install --with dev
数据集元数据
要创建公共数据集,您可能需要生成数据集元数据。
示例
以下示例创建一个包含用于数据集test_dataset
的元数据的元数据对象meta
。
Python
from pinecone_datasets.catalog import DatasetMetadata
meta = DatasetMetadata(
name="test_dataset",
created_at="2023-02-17 14:17:01.481785",
documents=2,
queries=2,
source="manual",
bucket="LOCAL",
task="unittests",
dense_model={"name": "bert", "dimension": 3},
sparse_model={"name": "bm25"},
)
如果您打算列出您的数据集,您可以使用以下命令保存数据集元数据。需要写入位置的权限。
Python
dataset._save_metadata("non-listed-dataset", meta)
查看数据集模式
要查看完整的模式,请运行以下命令:
Python
meta.schema()
运行测试
要在本地运行测试,请运行以下命令:
Shell
poetry run pytest --cov pinecone_datasets
上传和列出数据集
Pinecone数据集可以从任何存储桶中加载数据集,只需使用s3、gcs或本地权限的默认访问控制即可。
Pinecone数据集希望数据上传的目录结构如下:
图1:Pinecone数据集的预期目录结构
├── base_path # 所有数据集的路径
│ ├── dataset_id # 数据集的名称
│ │ ├── metadata.json # 数据集元数据(可选,仅列出)
│ │ ├── documents # 数据集文档
│ │ │ ├── file1.parquet
│ │ │ └── file2.parquet
│ │ ├── queries # 数据集查询
│ │ │ ├── file1.parquet
│ │ │ └── file2.parquet
└── ...
Pinecone 数据集扫描存储并列出每个带有元数据文件的数据集。
示例
下面显示了示例 s3 存储桶地址的格式,用于数据集元数据文件:
s3://my-bucket/my-dataset/metadata.json
使用您自己的数据集
默认情况下,Pinecone客户端使用GCS上Pinecone的公共数据集存储桶。您可以通过设置PINECONE_DATASETS_ENDPOINT
环境变量来使用自己的存储桶。
示例
以下export
命令将默认的数据集存储终端点更改为gs://my-bucket
。现在,调用list_datasets
或load_dataset
扫描该存储桶并列出所有数据集。
Python
export PINECONE_DATASETS_ENDPOINT="gs://my-bucket"
您还可以使用s3://
作为前缀访问s3存储桶。
认证您自己的存储桶
Pinecone数据集支持GCS和S3存储桶,使用fsspec实现提供的默认身份验证: GCS的gcsfs和AWS的s3fs。
使用密钥/密钥方法认证到AWS s3存储桶,请按照以下步骤进行:
- 通过将环境变量
PINECONE_DATASETS_ENDPOINT
设置为您的存储桶的s3地址来设置新的端点。
示例
Shell
export PINECONE_DATASETS_ENDPOINT="s3://my-bucket"
- 使用
key
和secret
参数将您的凭据传递给list_datasets
和load_dataset
函数。
示例
Python
st = list_datasets(
key=os.environ.get("S3_ACCESS_KEY"),
secret=os.environ.get("S3_SECRET"),
)
ds = load_dataset(
"test_dataset",
key=os.environ.get("S3_ACCESS_KEY"),
secret=os.environ.get("S3_SECRET"),
)
访问未列出的数据集
要访问未列出的数据集,请直接使用Dataset
构造函数加载它。
示例
下面的代码加载了名为non-listed-dataset
的数据集。
Python
from pinecone_datasets import Dataset
dataset = Dataset("non-listed-dataset")
下一步是什么
- 了解更多关于[在Pinecone Python客户端中使用数据集](https://pinecone-io.github.io/pinecone-datasets/pinecone_datasets) 更新于大约1个月前