Category: provider
AliCloud Milvus (Serverless) via PyMilvus
This skill uses standard PyMilvus APIs to connect to AliCloud Milvus and run vector search.
Prerequisites
- - Install SDK (recommended in a venv to avoid PEP 668 limits):
CODEBLOCK0
- - Provide connection via environment variables:
-
MILVUS_URI (e.g.
http://<host>:19530)
-
MILVUS_TOKEN (
<username>:<password>)
-
MILVUS_DB (default:
default)
Quickstart (Python)
CODEBLOCK1
Script quickstart
CODEBLOCK2
Environment variables:
- - INLINECODE6
- INLINECODE7
- INLINECODE8 (optional)
- INLINECODE9 (optional)
- INLINECODE10 (optional)
Optional args: --collection, --dimension, --limit, --filter.
Notes for Claude Code/Codex
- - Insert is async; wait a few seconds before searching newly inserted data.
- Keep vector
dimension aligned with your embedding model. - Use filters to enforce tenant scoping or dataset partitions.
Error handling
- - Auth errors: check
MILVUS_TOKEN and instance permissions. - Dimension mismatch: ensure all vectors match collection dimension.
- Network errors: verify VPC/public access settings on the instance.
Validation
CODEBLOCK3
Pass criteria: command exits 0 and output/aliyun-milvus-search/validate.txt is generated.
Output And Evidence
- - Save artifacts, command outputs, and API response summaries under
output/aliyun-milvus-search/. - Include key parameters (region/resource id/time range) in evidence files for reproducibility.
Workflow
1) Confirm user intent, region, identifiers, and whether the operation is read-only or mutating.
2) Run one minimal read-only query first to verify connectivity and permissions.
3) Execute the target operation with explicit parameters and bounded scope.
4) Verify results and save output/evidence files.
References
- - PyMilvus
MilvusClient examples for AliCloud Milvus
- - Source list: INLINECODE20
技能名称: aliyun-milvus-search
详细描述:
类别: 提供者
通过 PyMilvus 连接阿里云 Milvus(Serverless)
本技能使用标准 PyMilvus API 连接阿里云 Milvus 并执行向量搜索。
前提条件
- - 安装 SDK(建议在虚拟环境中安装,以避免 PEP 668 限制):
bash
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pymilvus
- MILVUS_URI(例如 http://
:19530)
- MILVUS_TOKEN(<用户名>:<密码>)
- MILVUS_DB(默认值:default)
快速入门(Python)
python
import os
from pymilvus import MilvusClient
client = MilvusClient(
uri=os.getenv(MILVUS_URI),
token=os.getenv(MILVUS_TOKEN),
dbname=os.getenv(MILVUSDB, default),
)
1) 创建集合
client.create_collection(
collection_name=docs,
dimension=768,
)
2) 插入数据
items = [
{id: 1, vector: [0.01] * 768, source: kb, chunk: 0},
{id: 2, vector: [0.02] * 768, source: kb, chunk: 1},
]
client.insert(collection_name=docs, data=items)
3) 搜索
query_vectors = [[0.01] * 768]
res = client.search(
collection_name=docs,
data=query_vectors,
limit=5,
filter=source == kb and chunk >= 0,
output_fields=[source, chunk],
)
print(res)
脚本快速入门
bash
python skills/ai/search/aliyun-milvus-search/scripts/quickstart.py
环境变量:
- - MILVUSURI
- MILVUSTOKEN
- MILVUSDB(可选)
- MILVUSCOLLECTION(可选)
- MILVUS_DIMENSION(可选)
可选参数:--collection、--dimension、--limit、--filter。
针对 Claude Code/Codex 的说明
- - 插入操作是异步的;在搜索新插入的数据前,请等待几秒钟。
- 确保向量 dimension 与您的嵌入模型保持一致。
- 使用过滤器来实施租户隔离或数据集分区。
错误处理
- - 认证错误:检查 MILVUS_TOKEN 和实例权限。
- 维度不匹配:确保所有向量与集合维度一致。
- 网络错误:验证实例的 VPC/公网访问设置。
验证
bash
mkdir -p output/aliyun-milvus-search
for f in skills/ai/search/aliyun-milvus-search/scripts/*.py; do
python3 -m py_compile $f
done
echo pycompileok > output/aliyun-milvus-search/validate.txt
通过条件:命令退出码为 0,且生成了 output/aliyun-milvus-search/validate.txt 文件。
输出与证据
- - 将产物、命令输出和 API 响应摘要保存到 output/aliyun-milvus-search/ 目录下。
- 在证据文件中包含关键参数(区域/资源 ID/时间范围),以确保可复现性。
工作流程
1) 确认用户意图、区域、标识符,以及操作是只读还是修改性的。
2) 首先执行一个最小的只读查询,以验证连接性和权限。
3) 使用明确的参数和有限的范围执行目标操作。
4) 验证结果并保存输出/证据文件。
参考
- - 针对阿里云 Milvus 的 PyMilvus MilvusClient 示例
- - 来源列表:references/sources.md