Manage the complete lifecycle of Tencent Cloud COS vector buckets through the CosVectorsClient of cos-python-sdk-v5.
Capabilities Overview
| Category | Capability | Script |
|---|---|---|
| Vector Bucket Management | Create Vector Bucket | create_vector_bucket.py |
| Delete Vector Bucket | delete_vector_bucket.py |
|
| Query Vector Bucket Information | get_vector_bucket.py |
|
| List All Vector Buckets | list_vector_buckets.py |
|
| Bucket Policy Management | Set Bucket Policy | put_vector_bucket_policy.py |
| Get Bucket Policy | get_vector_bucket_policy.py |
|
| Delete Bucket Policy | delete_vector_bucket_policy.py |
|
| Index Management | Create Index | create_index.py |
| Query Index Information | get_index.py |
|
| List All Indexes | list_indexes.py |
|
| Delete Index | delete_index.py |
|
| Vector Data Operations | Insert/Update Vectors | put_vectors.py |
| Get Specified Vector | get_vectors.py |
|
| List Vector List | list_vectors.py |
|
| Delete Vector | delete_vectors.py |
|
| Similarity Search | query_vectors.py |
First Use — Environment Check
Step 1: Check the Python SDK
python3 -c "from qcloud_cos import CosConfig, CosVectorsClient; print('OK')"
If it fails, install the SDK:
pip3 install cos-python-sdk-v5 --upgrade
Step 2: Check credentials
Confirm that the following environment variables are set (or prepare to pass them in via command-line parameters):
COS_VECTORS_SECRET_ID— Tencent Cloud API Secret IDCOS_VECTORS_SECRET_KEY— Tencent Cloud API Secret Key
If they are not set, guide the user to provide credentials:
Please provide Tencent Cloud credentials to connect to the COS vector storage service:
- SecretId — Tencent Cloud API Secret ID
- SecretKey — Tencent Cloud API Secret Key
- Region — Bucket region (e.g. ap-guangzhou)
- Bucket — Vector bucket name (format BucketName-APPID, e.g. examplebucket-1250000000)
Key acquisition:Tencent Cloud Console > Access Management > API Key Management
Common Parameters
All scripts support the following common parameters:
| Parameter | Required | Description |
|---|---|---|
--secret-id |
✅ | Tencent Cloud SecretId (or environment variable COS_VECTORS_SECRET_ID) |
--secret-key |
✅ | Tencent Cloud SecretKey (or environment variable COS_VECTORS_SECRET_KEY) |
--region |
✅ | Region, e.g. ap-guangzhou |
--bucket |
✅ | Vector bucket name, format BucketName-APPID |
--scheme |
❌ | Protocol,http(default) or https |
I. Vector Bucket Management
1. Create Vector Bucket
python3 {baseDir}/scripts/create_vector_bucket.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
[--sse-type AES256]
| Specific Parameters | Description |
|---|---|
--sse-type |
Optional, encryption type, currently only supports AES256 |
2. Delete Vector Bucket
python3 {baseDir}/scripts/delete_vector_bucket.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>"
3. Query Vector Bucket Information
python3 {baseDir}/scripts/get_vector_bucket.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>"
4. List All Vector Buckets
python3 {baseDir}/scripts/list_vector_buckets.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
[--max-results 10] \
[--prefix "my-"]
| Specific Parameters | Description |
|---|---|
--max-results |
Optional, maximum number to return |
--prefix |
Optional, bucket name prefix filter |
II. Bucket Policy Management
5. Set Bucket Policy
python3 {baseDir}/scripts/put_vector_bucket_policy.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--policy '{"Statement": [...]}'
| Specific Parameters | Description |
|---|---|
--policy |
Required, policy JSON string |
6. Get Bucket Policy
python3 {baseDir}/scripts/get_vector_bucket_policy.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>"
7. Delete bucket policy
python3 {baseDir}/scripts/delete_vector_bucket_policy.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>"
III. Index management
8. Create index
python3 {baseDir}/scripts/create_index.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>" \
--dimension <Dimension> \
[--data-type float32] \
[--distance-metric cosine] \
[--non-filterable-keys key1,key2]
| Specific parameters | Required | Description |
|---|---|---|
--index |
✅ | Index name |
--dimension |
✅ | Vector dimension, range 1-4096 |
--data-type |
❌ | Data type, default float32 |
--distance-metric |
❌ | Distance metric,cosine(default) or euclidean |
--non-filterable-keys |
❌ | Non-filter metadata keys, comma-separated |
9. Query index information
python3 {baseDir}/scripts/get_index.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>"
10. List all indexes
python3 {baseDir}/scripts/list_indexes.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
[--max-results 10] \
[--prefix "demo-"]
11. Delete index
python3 {baseDir}/scripts/delete_index.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>"
IV. Vector data operations
12. Insert/update vectors
# 方式 1:直接传 JSON
python3 {baseDir}/scripts/put_vectors.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>" \
--vectors '[{"key":"doc-001","data":{"float32":[0.1,0.2,...]},"metadata":{"title":"标题"}}]'
# 方式 2:通过文件传入
python3 {baseDir}/scripts/put_vectors.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>" \
--vectors-file vectors.json
| Specific parameters | Description |
|---|---|
--index |
Required, index name |
--vectors |
Vector data JSON string |
--vectors-file |
Vector data JSON file path (choose one of --vectors) |
Vector JSON format:
[
{
"key": "doc-001",
"data": {"float32": [0.1, 0.2, 0.3, "..."]},
"metadata": {"title": "文档标题", "category": "分类"}
}
]
13. Get specified vectors
python3 {baseDir}/scripts/get_vectors.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>" \
--keys "doc-001,doc-002" \
[--return-data] \
[--return-metadata]
| Specific parameters | Description |
|---|---|
--index |
Required, index name |
--keys |
Required, vector key list, comma-separated |
--return-data |
Optional, return vector data |
--return-metadata |
Optional, return metadata |
14. List vector list
python3 {baseDir}/scripts/list_vectors.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>" \
[--max-results 10] \
[--return-data] \
[--return-metadata]
| Specific parameters | Description |
|---|---|
--index |
Required, index name |
--max-results |
Optional, maximum return count |
--return-data |
Optional, return vector data |
--return-metadata |
Optional, return metadata |
--segment-count |
Optional, total number of segments |
--segment-index |
Optional, segment index (starting from 0) |
15. Delete vectors
python3 {baseDir}/scripts/delete_vectors.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>" \
--keys "doc-001,doc-002"
16. Similarity search (query_vectors)
# 方式 1:直接传查询向量
python3 {baseDir}/scripts/query_vectors.py \
--secret-id "<SecretId>" \
--secret-key "<SecretKey>" \
--region "<Region>" \
--bucket "<BucketName-APPID>" \
--index "<IndexName>" \
--query-vector '[0.1, 0.2, ...]' \
--top-k 5 \
[--filter '{"category": {"$eq": "AI"}}'] \
[--return-distance] \
[--return-metadata]
# 方式 2:通过文件传入查询向量
python3 {baseDir}/scripts/query_vectors.py \
... \
--query-vector-file query.json \
--top-k 5
| Specific parameters | Required | Description |
|---|---|---|
--index |
✅ | Index name |
--query-vector |
✅* | Query vector JSON array |
--query-vector-file |
✅* | Query vector file (choose one of --query-vector) |
--top-k |
✅ | Return the most similar K results |
--filter |
❌ | Filter condition JSON, such as {"category": {"$eq": "AI"}} |
--return-distance |
❌ | Return distance/similarity value |
--return-metadata |
❌ | Return metadata |
Key technical details
- CosVectorsClient: vector bucket dedicated client, different from the ordinary CosS3Client
- Endpoint configuration: use the
Endpointparameter (vectors.<Region>.coslake.com), the SDK will automatically concatenate the bucket prefix - Protocol: default use
httpprotocol - Bucket name format: must be
BucketName-APPIDformat, such asexamplebucket-1250000000 - Bucket name rules: only lowercase letters, numbers, and hyphens are supported
-, length 3-63 characters - Vector dimension: range 1-4096
- Data type: currently supports
float32 - Distance metric: supports
cosine(cosine similarity) andeuclidean(Euclidean distance) - Encryption type: optional
AES256server-side encryption
Common module
All scripts share the common.py common module, providing:
base_parser()— Create a basic parser containing credential parameterscreate_client()— Initialize CosVectorsClientsuccess_output()— Unified success output format (JSON)fail()— Unified error output format and exithandle_error()— Unified exception handling (CosServiceError / CosClientError)run()— Wrap the main function and catch exceptions
Error handling
- CosServiceError: Server-side errors (such as bucket already exists, insufficient permissions, etc.)
- CosClientError: Client-side errors (such as network issues, parameter errors, etc.)
All scripts output in a unified JSON format:
{"success": true, "action": "...", ...} // 成功
{"success": false, "error": "..."} // 失败
When a call fails, first check:
- Whether the credentials are correct
- Whether the Region is correct
- Whether the Bucket name format meets the requirements
- Whether the network is connected
API reference
For detailed API parameter definitions, see references/api_reference.md。