关于 alicloud-ai-search-opensearch
面向使用 Alibaba Cloud OpenSearch 向量检索版的开发者,提供基于 ha3engine SDK 的文档写入与 HA/SQL 查询流程,不涉及控制台操作。
主要功能
- 01通过 SDK 写入和删除文档
- 02执行 HA 向量与关键词检索
- 03使用 SQL 查询结构化数据
- 04提供脚本快速启动示例
适用场景
- 01向 OpenSearch 数据源写入文档
- 02验证向量与关键词检索结果
- 03查询结构化数据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill alicloud-ai-search-opensearch安装后在 Claude Code 中输入/alicloud-ai-search-opensearch确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/sources.mdscripts/quickstart.py详细介绍
Category: provider
OpenSearch 向量搜索版
使用 ha3engine SDK 推送文档并执行 HA/SQL 搜索。本技能仅关注 API/SDK 的使用(不涉及控制台操作)。
前提条件
- 安装 SDK(建议在 venv 中安装,以避免 PEP 668 限制):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install alibabacloud-ha3engine
- 通过环境变量提供连接配置:
OPENSEARCH_ENDPOINT(API 域名)OPENSEARCH_INSTANCE_IDOPENSEARCH_USERNAMEOPENSEARCH_PASSWORDOPENSEARCH_DATASOURCE(数据源名称)OPENSEARCH_PK_FIELD(主键字段名称)
快速入门(推送 + 搜索)
import os
from alibabacloud_ha3engine import models, client
from Tea.exceptions import TeaException, RetryError
cfg = models.Config(
endpoint=os.getenv("OPENSEARCH_ENDPOINT"),
instance_id=os.getenv("OPENSEARCH_INSTANCE_ID"),
protocol="http",
access_user_name=os.getenv("OPENSEARCH_USERNAME"),
access_pass_word=os.getenv("OPENSEARCH_PASSWORD"),
)
ha3 = client.Client(cfg)
def push_docs():
data_source = os.getenv("OPENSEARCH_DATASOURCE")
pk_field = os.getenv("OPENSEARCH_PK_FIELD", "id")
documents = [
{"fields": {"id": 1, "title": "hello", "content": "world"}, "cmd": "add"},
{"fields": {"id": 2, "title": "faq", "content": "vector search"}, "cmd": "add"},
]
req = models.PushDocumentsRequestModel({}, documents)
return ha3.push_documents(data_source, pk_field, req)
def search_ha():
# HA query example. Replace cluster/table names as needed.
query_str = (
"config=hit:5,format:json,qrs_chain:search"
"&&query=title:hello"
"&&cluster=general"
)
ha_query = models.SearchQuery(query=query_str)
req = models.SearchRequestModel({}, ha_query)
return ha3.search(req)
try:
print(push_docs().body)
print(search_ha())
except (TeaException, RetryError) as e:
print(e)
脚本快速入门
python skills/ai/search/alicloud-ai-search-opensearch/scripts/quickstart.py
环境变量:
OPENSEARCH_ENDPOINTOPENSEARCH_INSTANCE_IDOPENSEARCH_USERNAMEOPENSEARCH_PASSWORDOPENSEARCH_DATASOURCEOPENSEARCH_PK_FIELD(可选,默认值为id)OPENSEARCH_CLUSTER(可选,默认值为general)
可选参数:--cluster、--hit、--query。
SQL 风格搜索
from alibabacloud_ha3engine import models
sql = "select * from <indexTableName>&&kvpair=trace:INFO;formatType:json"
sql_query = models.SearchQuery(sql=sql)
req = models.SearchRequestModel({}, sql_query)
resp = ha3.search(req)
print(resp)
Claude Code/Codex 使用说明
- 使用
push_documents添加或删除更新。 - 较长的查询字符串(>30KB)应使用 RESTful 搜索 API。
- HA 查询适用于快速、灵活的向量 + 关键词检索;SQL 则适用于结构化数据。
错误处理
- 身份验证错误:检查用户名/密码和实例访问权限。
- 推送时出现 4xx 错误:检查架构字段与
pk_field是否一致。 - 5xx 错误:采用退避策略重试。
验证
mkdir -p output/alicloud-ai-search-opensearch
for f in skills/ai/search/alicloud-ai-search-opensearch/scripts/*.py; do
python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/alicloud-ai-search-opensearch/validate.txt
通过标准:命令以 0 状态退出,并生成 output/alicloud-ai-search-opensearch/validate.txt。
输出与证据
- 将产物、命令输出和 API 响应摘要保存在
output/alicloud-ai-search-opensearch/下。 - 在证据文件中包含关键参数(地域/资源 ID/时间范围),以便复现。
工作流
- 确认用户意图、地域、标识符,以及操作是否为只读或会修改数据。
- 先运行一个最小化的只读查询,以验证连接和权限。
- 使用明确参数和有限范围执行目标操作。
- 验证结果并保存输出/证据文件。
参考资料
-
SDK 包:
alibabacloud-ha3engine -
示例:OpenSearch 文档中的数据推送和 HA/SQL 搜索示例
-
来源列表:
references/sources.md
评论
支持 Markdown