使用 OpenSearch 向量搜索版(通过 Python SDK ha3engine)推送文档并执行 HA/SQL 查询,适用于 RAG 与向量检索流程。
类: 提供者 : OpenSearch 矢量搜索版是一项面向实际任务的技能,主要用于使用 ha3engine SDK 来推文件并执行 HA/ SQL 搜索;此技能只关注 API/ SDK 的使用( 没有控制台步骤);
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
类别:provider
使用 ha3engine SDK 推送文档并执行 HA/SQL 搜索。本技能仅聚焦于 API/SDK 的使用(不涉及控制台操作步骤)。
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 查询示例。请根据实际需要替换 cluster/table 名称。
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。
from alibabacloud_ha3engine import models sql = "select * from&&kvpair=trace:INFO;formatType:json" sql_query = models.SearchQuery(sql=sql) req = models.SearchRequestModel({}, sql_query) resp = ha3.search(req) print(resp)
push_documents 执行新增或删除类更新操作。pk_field 是否对齐。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 文件。
output/alicloud-ai-search-opensearch/ 目录下。SDK 包:alibabacloud-ha3engine
示例:OpenSearch 官方文档中的数据推送与 HA/SQL 搜索示例
资料来源列表:references/sources.md
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.5万人学习
最新文章