Python client for Cloudflare Vectorize API
Project description
Cloudflare Vectorize Python Client
一个用于与 Cloudflare Vectorize API 交互的 Python 客户端。
特性
- 完整支持 Cloudflare Vectorize API
- 类型提示支持
- 完善的错误处理
- 可配置的重试机制
- 详细的文档
安装
pip install cloudflare-vectorize
快速开始
from cloudflare_vectorize import CloudflareVectorize
# 初始化客户端
client = CloudflareVectorize(
account_id="your-account-id",
auth_config={
"bearer_token": "your-bearer-token"
# 或者使用 API key 认证:
# "auth_email": "your-email",
# "auth_key": "your-api-key"
},
retry_config={
"total": 3, # 最大重试次数
"backoff_factor": 0.1, # 重试间隔系数
"status_forcelist": [500, 502, 503, 504] # 需要重试的状态码
}
)
# 创建索引
response = client.create_index(
name="example-index",
dimensions=768,
metric="cosine",
description="Example vector index"
)
# 插入向量
vectors_data = """
{"id": "vec1", "values": [0.1, 0.2, 0.3], "metadata": {"category": "test"}}
{"id": "vec2", "values": [0.4, 0.5, 0.6], "metadata": {"category": "test"}}
"""
response = client.insert_vectors("example-index", vectors_data)
# 查询向量
response = client.query_vectors(
index_name="example-index",
vector=[0.1, 0.2, 0.3],
top_k=2,
filter={"category": "test"},
return_metadata="all"
)
API 参考
索引管理
# 列出所有索引
client.list_indexes()
# 创建索引
client.create_index(
name="example-index",
dimensions=768,
metric="cosine",
description="Example index"
)
# 获取索引信息
client.get_index("example-index")
# 获取索引统计信息
client.get_index_info("example-index")
# 删除索引
client.delete_index("example-index")
向量操作
# 插入向量
vectors_data = """
{"id": "vec1", "values": [0.1, 0.2, 0.3]}
{"id": "vec2", "values": [0.4, 0.5, 0.6]}
"""
client.insert_vectors("example-index", vectors_data)
# 更新或插入向量
client.upsert_vectors("example-index", vectors_data)
# 查询向量
client.query_vectors(
index_name="example-index",
vector=[0.1, 0.2, 0.3],
top_k=5,
filter={"category": "test"},
return_metadata="all",
return_values=True
)
# 获取向量
client.get_vectors("example-index", ["vec1", "vec2"])
# 删除向量
client.delete_vectors("example-index", ["vec1", "vec2"])
元数据索引
# 创建元数据索引
client.create_metadata_index(
index_name="example-index",
property_name="category",
index_type="string"
)
# 列出元数据索引
client.list_metadata_indexes("example-index")
# 删除元数据索引
client.delete_metadata_index("example-index", "category")
错误处理
from cloudflare_vectorize import CloudflareVectorizeError, APIError
try:
response = client.query_vectors(
index_name="example-index",
vector=[0.1, 0.2, 0.3]
)
except APIError as e:
print(f"API错误: {e}")
print(f"错误详情: {e.errors}")
except CloudflareVectorizeError as e:
print(f"客户端错误: {e}")
开发
# 克隆仓库
git clone https://github.com/ourines/cloudflare-vectorize.git
cd cloudflare-vectorize
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
pytest
许可证
MIT License
作者
ourines (ourines@icloud.com)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cloudflare_vectorize-0.1.2.tar.gz
.
File metadata
- Download URL: cloudflare_vectorize-0.1.2.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
38a3c01e61a7ec4f419caba6f173c046431e0d8429cdf87390201ec843b853e1
|
|
MD5 |
f501d3cfe8a9e0c47c0f02a65ede2b8d
|
|
BLAKE2b-256 |
941c037fa49986ed18e35ee0e1aabe2fe08285c9241d266c47348737de291dc1
|
File details
Details for the file cloudflare_vectorize-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: cloudflare_vectorize-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
7797531f95d64d37034c3500f4f460b1a2d0ad417f4bb91afe8b3e4e6ea86c36
|
|
MD5 |
a0c52414924bb1bd00a9e02b1321ac84
|
|
BLAKE2b-256 |
f2e71bb16684ae536ef43fd32c83f8fe30a59c9b7511fa8be3685fceef0e728a
|