mcpField
A
aliyun-opensearch-search

aliyun-opensearch-search

github.com/cinienceデータ・データベース39659 回インストール11 週間前に更新
リポジトリ

aliyun-opensearch-search について

Python の ha3engine SDK で Alibaba Cloud OpenSearch Vector Search Edition を利用する開発者向けスキルです。コンソール操作ではなく、API と SDK によるドキュメント更新や HA・SQL 検索を扱います。

主な機能

  1. 01ha3engine SDK によるドキュメント登録
  2. 02HA によるベクトル・キーワード検索
  3. 03SQL 形式の検索
  4. 04環境変数による接続設定
  5. 05検索時の一般的なエラー対応

活用シーン

  1. 01OpenSearch データソースへのドキュメント登録や削除
  2. 02ベクトル検索とキーワード検索の併用
  3. 03構造化データへの SQL クエリ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-opensearch-search

インストール後、Claude Code で/aliyun-opensearch-searchを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
sources.md
scripts/
quickstart.py

詳細

Category:プロバイダー

OpenSearch ベクトル検索エディション

ha3engine SDK を使用してドキュメントをプッシュし、HA/SQL 検索を実行します。このスキルでは API/SDK の使用方法のみを扱います(コンソールでの手順はありません)。

前提条件

  • SDK をインストールします(PEP 668 による制限を避けるため、venv の使用を推奨します)。
python3 -m venv .venv
. .venv/bin/activate
python -m pip install alibabacloud-ha3engine
  • 環境変数を使用して接続設定を指定します。
    • OPENSEARCH_ENDPOINT(API ドメイン)
    • OPENSEARCH_INSTANCE_ID
    • OPENSEARCH_USERNAME
    • OPENSEARCH_PASSWORD
    • OPENSEARCH_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/aliyun-opensearch-search/scripts/quickstart.py

環境変数:

  • OPENSEARCH_ENDPOINT
  • OPENSEARCH_INSTANCE_ID
  • OPENSEARCH_USERNAME
  • OPENSEARCH_PASSWORD
  • OPENSEARCH_DATASOURCE
  • OPENSEARCH_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/aliyun-opensearch-search
for f in skills/ai/search/aliyun-opensearch-search/scripts/*.py; do
  python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/aliyun-opensearch-search/validate.txt

合格基準:コマンドが終了コード 0 で終了し、output/aliyun-opensearch-search/validate.txt が生成されること。

出力とエビデンス

  • 成果物、コマンド出力、API 応答の要約を output/aliyun-opensearch-search/ に保存します。
  • 再現性を確保するため、エビデンスファイルに主要なパラメーター(リージョン/リソース ID/期間)を含めます。

ワークフロー

  1. ユーザーの意図、リージョン、識別子、および操作が読み取り専用か変更を伴うかを確認します。
  2. 接続と権限を確認するため、まず最小限の読み取り専用クエリを 1 つ実行します。
  3. 明示的なパラメーターと制限された範囲を指定して、対象の操作を実行します。
  4. 結果を確認し、出力/エビデンスファイルを保存します。

参考資料

  • SDK パッケージ:alibabacloud-ha3engine

  • デモ:OpenSearch ドキュメントにあるデータプッシュおよび HA/SQL 検索のデモ

  • ソース一覧:references/sources.md

コメント