Install
openclaw skills install alicloud-ai-search-dashvectorBuild vector retrieval with DashVector using the Python SDK. Use when creating collections, upserting docs, and running similarity search with filters in Claude Code/Codex.
openclaw skills install alicloud-ai-search-dashvectorCategory: provider
Use DashVector to manage collections and perform vector similarity search with optional filters and sparse vectors.
python3 -m venv .venv
. .venv/bin/activate
python -m pip install dashvector
DASHVECTOR_API_KEYDASHVECTOR_ENDPOINT (cluster endpoint)name (str)dimension (int)metric (str: cosine | dotproduct | euclidean)fields_schema (optional dict of field types)docs list of {id, vector, fields} or tuplessparse_vector and multi-vector collectionsvector or id (one required; if both empty, only filter is applied)topk (int)filter (SQL-like where clause)output_fields (list of field names)include_vector (bool)import os
import dashvector
from dashvector import Doc
client = dashvector.Client(
api_key=os.getenv("DASHVECTOR_API_KEY"),
endpoint=os.getenv("DASHVECTOR_ENDPOINT"),
)
# 1) Create a collection
ret = client.create(
name="docs",
dimension=768,
metric="cosine",
fields_schema={"title": str, "source": str, "chunk": int},
)
assert ret
# 2) Upsert docs
collection = client.get(name="docs")
ret = collection.upsert(
[
Doc(id="1", vector=[0.01] * 768, fields={"title": "Intro", "source": "kb", "chunk": 0}),
Doc(id="2", vector=[0.02] * 768, fields={"title": "FAQ", "source": "kb", "chunk": 1}),
]
)
assert ret
# 3) Query
ret = collection.query(
vector=[0.01] * 768,
topk=5,
filter="source = 'kb' AND chunk >= 0",
output_fields=["title", "source", "chunk"],
include_vector=False,
)
for doc in ret:
print(doc.id, doc.fields)
python skills/ai/search/alicloud-ai-search-dashvector/scripts/quickstart.py
Environment variables:
DASHVECTOR_API_KEYDASHVECTOR_ENDPOINTDASHVECTOR_COLLECTION (optional)DASHVECTOR_DIMENSION (optional)Optional args: --collection, --dimension, --topk, --filter.
upsert for idempotent ingestion.dimension aligned to your embedding model output size.sparse_vector={token_id: weight, ...} when upserting/querying.DASHVECTOR_API_KEYmkdir -p output/alicloud-ai-search-dashvector
for f in skills/ai/search/alicloud-ai-search-dashvector/scripts/*.py; do
python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/alicloud-ai-search-dashvector/validate.txt
Pass criteria: command exits 0 and output/alicloud-ai-search-dashvector/validate.txt is generated.
output/alicloud-ai-search-dashvector/.DashVector Python SDK: Client.create, Collection.upsert, Collection.query
Source list: references/sources.md