腾讯云 COS 向量桶全功能管理技能
通过 cos-python-sdk-v5 的 CosVectorsClient 管理腾讯云 COS 向量桶的完整生命周期。
能力总览
| 类别 | 能力 | 脚本 |
|---|
| 向量桶管理 | 创建向量桶 | INLINECODE0 |
|
删除向量桶 |
delete_vector_bucket.py |
| | 查询向量桶信息 |
get_vector_bucket.py |
| | 列出所有向量桶 |
list_vector_buckets.py |
|
桶策略管理 | 设置桶策略 |
put_vector_bucket_policy.py |
| | 获取桶策略 |
get_vector_bucket_policy.py |
| | 删除桶策略 |
delete_vector_bucket_policy.py |
|
索引管理 | 创建索引 |
create_index.py |
| | 查询索引信息 |
get_index.py |
| | 列出所有索引 |
list_indexes.py |
| | 删除索引 |
delete_index.py |
|
向量数据操作 | 插入/更新向量 |
put_vectors.py |
| | 获取指定向量 |
get_vectors.py |
| | 列出向量列表 |
list_vectors.py |
| | 删除向量 |
delete_vectors.py |
| | 相似度搜索 |
query_vectors.py |
首次使用 — 环境检查
步骤 1:检查 Python SDK
CODEBLOCK0
如果失败,安装 SDK:
CODEBLOCK1
步骤 2:检查凭证
确认以下环境变量已设置(或准备通过命令行参数传入):
- -
COS_VECTORS_SECRET_ID — 腾讯云 API 密钥 ID - INLINECODE17 — 腾讯云 API 密钥 Key
如果未设置,引导用户提供凭证:
请提供腾讯云凭证来连接 COS 向量存储服务:
- 1. SecretId — 腾讯云 API 密钥 ID
- SecretKey — 腾讯云 API 密钥 Key
- Region — 存储桶区域(如 ap-guangzhou)
- Bucket — 向量桶名称(格式 BucketName-APPID,如 examplebucket-1250000000)
密钥获取:腾讯云控制台 > 访问管理 > API密钥管理
公共参数
所有脚本都支持以下公共参数:
| 参数 | 必需 | 说明 |
|---|
| INLINECODE18 | ✅ | 腾讯云 SecretId(或环境变量 COS_VECTORS_SECRET_ID) |
| INLINECODE20 |
✅ | 腾讯云 SecretKey(或环境变量
COS_VECTORS_SECRET_KEY) |
|
--region | ✅ | 地域,如
ap-guangzhou |
|
--bucket | ✅ | 向量桶名称,格式
BucketName-APPID |
|
--scheme | ❌ | 协议,
http(默认)或
https |
一、向量桶管理
1. 创建向量桶
CODEBLOCK2
| 专有参数 | 说明 |
|---|
| INLINECODE29 | 可选,加密类型,当前仅支持 INLINECODE30 |
2. 删除向量桶
CODEBLOCK3
3. 查询向量桶信息
CODEBLOCK4
4. 列出所有向量桶
CODEBLOCK5
| 专有参数 | 说明 |
|---|
| INLINECODE31 | 可选,最大返回数量 |
| INLINECODE32 |
可选,桶名前缀过滤 |
二、桶策略管理
5. 设置桶策略
CODEBLOCK6
| 专有参数 | 说明 |
|---|
| INLINECODE33 | 必需,策略 JSON 字符串 |
6. 获取桶策略
CODEBLOCK7
7. 删除桶策略
CODEBLOCK8
三、索引管理
8. 创建索引
CODEBLOCK9
| 专有参数 | 必需 | 说明 |
|---|
| INLINECODE34 | ✅ | 索引名称 |
| INLINECODE35 |
✅ | 向量维度,范围 1-4096 |
|
--data-type | ❌ | 数据类型,默认
float32 |
|
--distance-metric | ❌ | 距离度量,
cosine(默认)或
euclidean |
|
--non-filterable-keys | ❌ | 非过滤元数据键,逗号分隔 |
9. 查询索引信息
CODEBLOCK10
10. 列出所有索引
CODEBLOCK11
11. 删除索引
CODEBLOCK12
四、向量数据操作
12. 插入/更新向量
CODEBLOCK13
| 专有参数 | 说明 |
|---|
| INLINECODE42 | 必需,索引名称 |
| INLINECODE43 |
向量数据 JSON 字符串 |
|
--vectors-file | 向量数据 JSON 文件路径(与 --vectors 二选一) |
向量 JSON 格式:
CODEBLOCK14
13. 获取指定向量
CODEBLOCK15
| 专有参数 | 说明 |
|---|
| INLINECODE45 | 必需,索引名称 |
| INLINECODE46 |
必需,向量键列表,逗号分隔 |
|
--return-data | 可选,返回向量数据 |
|
--return-metadata | 可选,返回元数据 |
14. 列出向量列表
CODEBLOCK16
| 专有参数 | 说明 |
|---|
| INLINECODE49 | 必需,索引名称 |
| INLINECODE50 |
可选,最大返回数量 |
|
--return-data | 可选,返回向量数据 |
|
--return-metadata | 可选,返回元数据 |
|
--segment-count | 可选,分段总数 |
|
--segment-index | 可选,分段索引(从0开始) |
15. 删除向量
CODEBLOCK17
16. 相似度搜索(query_vectors)
CODEBLOCK18
| 专有参数 | 必需 | 说明 |
|---|
| INLINECODE55 | ✅ | 索引名称 |
| INLINECODE56 |
✅* | 查询向量 JSON 数组 |
|
--query-vector-file | ✅* | 查询向量文件(与 --query-vector 二选一) |
|
--top-k | ✅ | 返回最相似的 K 个结果 |
|
--filter | ❌ | 过滤条件 JSON,如
{"category": {"$eq": "AI"}} |
|
--return-distance | ❌ | 返回距离/相似度值 |
|
--return-metadata | ❌ | 返回元数据 |
关键技术细节
- 1. CosVectorsClient:向量桶专用客户端,不同于普通的 CosS3Client
- Endpoint 配置:使用
Endpoint 参数(vectors.<Region>.coslake.com),SDK 会自动拼接 bucket 前缀 - 协议:默认使用
http 协议 - 桶名格式:必须为
BucketName-APPID 格式,如 INLINECODE67 - 桶名规则:仅支持小写字母、数字和中划线
-,长度 3-63 个字符 - 向量维度:范围 1-4096
- 数据类型:当前支持 INLINECODE69
- 距离度量:支持
cosine(余弦相似度)和 euclidean(欧氏距离) - 加密类型:可选
AES256 服务端加密
公共模块
所有脚本共享 common.py 公共模块,提供:
- -
base_parser() — 创建包含凭证参数的基础解析器 - INLINECODE75 — 初始化 CosVectorsClient
- INLINECODE76 — 统一的成功输出格式(JSON)
- INLINECODE77 — 统一的错误输出格式并退出
- INLINECODE78 — 统一的异常处理(CosServiceError / CosClientError)
- INLINECODE79 — 包装主函数并捕获异常
错误处理
- - CosServiceError:服务端错误(如桶已存在、权限不足等)
- CosClientError:客户端错误(如网络问题、参数错误等)
所有脚本输出统一 JSON 格式:
CODEBLOCK19
调用失败时先检查:
- 1. 凭证是否正确
- Region 是否正确
- Bucket 名称格式是否符合要求
- 网络是否连通
API 参考
详细 API 参数定义见 references/api_reference.md。
腾讯云 COS 向量桶全功能管理技能
通过 cos-python-sdk-v5 的 CosVectorsClient 管理腾讯云 COS 向量桶的完整生命周期。
能力总览
| 类别 | 能力 | 脚本 |
|---|
| 向量桶管理 | 创建向量桶 | createvectorbucket.py |
|
删除向量桶 | delete
vectorbucket.py |
| | 查询向量桶信息 | get
vectorbucket.py |
| | 列出所有向量桶 | list
vectorbuckets.py |
|
桶策略管理 | 设置桶策略 | put
vectorbucket_policy.py |
| | 获取桶策略 | get
vectorbucket_policy.py |
| | 删除桶策略 | delete
vectorbucket_policy.py |
|
索引管理 | 创建索引 | create_index.py |
| | 查询索引信息 | get_index.py |
| | 列出所有索引 | list_indexes.py |
| | 删除索引 | delete_index.py |
|
向量数据操作 | 插入/更新向量 | put_vectors.py |
| | 获取指定向量 | get_vectors.py |
| | 列出向量列表 | list_vectors.py |
| | 删除向量 | delete_vectors.py |
| | 相似度搜索 | query_vectors.py |
首次使用 — 环境检查
步骤 1:检查 Python SDK
bash
python3 -c from qcloud_cos import CosConfig, CosVectorsClient; print(OK)
如果失败,安装 SDK:
bash
pip3 install cos-python-sdk-v5 --upgrade
步骤 2:检查凭证
确认以下环境变量已设置(或准备通过命令行参数传入):
- - COSVECTORSSECRETID — 腾讯云 API 密钥 ID
- COSVECTORSSECRETKEY — 腾讯云 API 密钥 Key
如果未设置,引导用户提供凭证:
请提供腾讯云凭证来连接 COS 向量存储服务:
- 1. SecretId — 腾讯云 API 密钥 ID
- SecretKey — 腾讯云 API 密钥 Key
- Region — 存储桶区域(如 ap-guangzhou)
- Bucket — 向量桶名称(格式 BucketName-APPID,如 examplebucket-1250000000)
密钥获取:腾讯云控制台 > 访问管理 > API密钥管理
公共参数
所有脚本都支持以下公共参数:
| 参数 | 必需 | 说明 |
|---|
| --secret-id | ✅ | 腾讯云 SecretId(或环境变量 COSVECTORSSECRETID) |
| --secret-key |
✅ | 腾讯云 SecretKey(或环境变量 COSVECTORS
SECRETKEY) |
| --region | ✅ | 地域,如 ap-guangzhou |
| --bucket | ✅ | 向量桶名称,格式 BucketName-APPID |
| --scheme | ❌ | 协议,http(默认)或 https |
一、向量桶管理
1. 创建向量桶
bash
python3 {baseDir}/scripts/createvectorbucket.py \
--secret-id \
--secret-key \
--region \
--bucket \
[--sse-type AES256]
| 专有参数 | 说明 |
|---|
| --sse-type | 可选,加密类型,当前仅支持 AES256 |
2. 删除向量桶
bash
python3 {baseDir}/scripts/deletevectorbucket.py \
--secret-id \
--secret-key \
--region \
--bucket
3. 查询向量桶信息
bash
python3 {baseDir}/scripts/getvectorbucket.py \
--secret-id \
--secret-key \
--region \
--bucket
4. 列出所有向量桶
bash
python3 {baseDir}/scripts/listvectorbuckets.py \
--secret-id \
--secret-key \
--region \
--bucket \
[--max-results 10] \
[--prefix my-]
| 专有参数 | 说明 |
|---|
| --max-results | 可选,最大返回数量 |
| --prefix |
可选,桶名前缀过滤 |
二、桶策略管理
5. 设置桶策略
bash
python3 {baseDir}/scripts/putvectorbucket_policy.py \
--secret-id \
--secret-key \
--region \
--bucket \
--policy {Statement: [...]}
| 专有参数 | 说明 |
|---|
| --policy | 必需,策略 JSON 字符串 |
6. 获取桶策略
bash
python3 {baseDir}/scripts/getvectorbucket_policy.py \
--secret-id \
--secret-key \
--region \
--bucket
7. 删除桶策略
bash
python3 {baseDir}/scripts/deletevectorbucket_policy.py \
--secret-id \
--secret-key \
--region \
--bucket
三、索引管理
8. 创建索引
bash
python3 {baseDir}/scripts/create_index.py \
--secret-id \
--secret-key \
--region \
--bucket \
--index \
--dimension \
[--data-type float32] \
[--distance-metric cosine] \
[--non-filterable-keys key1,key2]
| 专有参数 | 必需 | 说明 |
|---|
| --index | ✅ | 索引名称 |
| --dimension |
✅ | 向量维度,范围 1-4096 |
| --data-type | ❌ | 数据类型,默认 float32 |
| --distance-metric | ❌ | 距离度量,cosine(默认)或 euclidean |
| --non-filterable-keys | ❌ | 非过滤元数据键,逗号分隔 |
9. 查询索引信息
bash
python3 {baseDir}/scripts/get_index.py \
--secret-id \
--secret-key \
--region \
--bucket \
--index
10. 列出所有索引
bash
python3 {baseDir}/scripts/list_indexes.py \
--secret-id \
--secret-key \
--region \
--bucket \
[--max-results 10] \
[--prefix demo-]
11. 删除索引
bash
python3 {baseDir}/scripts/delete_index.py \
--secret-id \
--secret-key \
--region \
--bucket \
--index
四、向量数据操作
12. 插入/更新向量
bash
方式 1:直接传 JSON
python3 {baseDir}/scripts/put_vectors.py \
--secret-id
\
--secret-key \
--region \
--bucket \
--index \
--vectors [{key:doc-001,data:{float32:[0.1,0.2,...]},metadata:{title:标题}}]
方式 2:通过文件传入
python3 {baseDir}/scripts/put_vectors.py \
--secret-id \
--secret-key \
--region \
--bucket \
--index \