weaviate について
Weaviateスキルは、Weaviateベクトルデータベースを検索、調査、管理するスクリプトを提供します。出典付きの自然言語回答、オブジェクトの閲覧、条件付き取得、コレクション作成、データのインポートに対応します。
主な機能
- 01出典を示してデータについて質問
- 02ハイブリッド、セマンティック、キーワード検索
- 03コレクションとスキーマの確認
- 04データや条件一致オブジェクトの調査
- 05コレクション作成とファイルのインポート
- 06MarkdownまたはJSONで結果を出力
活用シーン
- 01複数コレクションから関連レコードを検索
- 02コレクションデータに基づく出典付き回答の取得
- 03データをインポートする前にコレクションを確認
- 04CSV、JSON、JSONL、PDFファイルの取り込み
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ weaviate/ agent-skills --skill weaviateインストール後、Claude Code で/weaviateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ask.mdcreate_collection.mdenvironment_requirements.mdexample_data.mdexplore_collection.mdfetch_filter.mdget_collection.mdhybrid_search.mdimport_data.mdkeyword_search.mdlist_collections.mdquery_search.mdsemantic_search.mdscripts/ask.pycreate_collection.pyexample_data.pyexplore_collection.pyfetch_filter.pyget_collection.pyhybrid_search.pyimport.pykeyword_search.pylist_collections.pyquery_search.pysemantic_search.pyweaviate_conn.py詳細
Weaviate データベース操作
このスキルでは、検索操作、自然言語クエリ、スキーマの確認、データの探索、フィルタリングしたデータの取得、コレクションの作成、データのインポートなど、Weaviate ベクトルデータベースを包括的に利用できます。
Weaviate Cloud インスタンス
ユーザーがまだインスタンスを持っていない場合は、クラウドコンソールで登録して、無料のサンドボックスを作成するよう案内してください。Weaviate Cloud から Weaviate インスタンスを作成してください。
環境変数
必須:
WEAVIATE_URL- Weaviate Cloud クラスターの URLWEAVIATE_API_KEY- Weaviate API キー
外部プロバイダーのキー(自動検出): コレクションが使用するキーのみ設定してください。詳しくは、環境要件を参照してください。
スクリプトの実行
コマンドは、SKILL.md を含むフォルダーの絶対パスである SKILL_DIR から実行します。実行前に置き換え、ファイル引数(data.csv など)がプロジェクトを基準に解決されるよう、ユーザーのプロジェクトからコマンドを実行してください。
uv run /path/to/skills/weaviate/scripts/list_collections.py
スクリプト一覧
検索とクエリ
- クエリエージェント - 質問モード:コレクションのデータに基づく質問への直接的な回答をユーザーが求めている場合に使用します。クエリエージェントは、1 つ以上のコレクションから情報を統合し、出典の引用(コレクション名とオブジェクト ID)を含む構造化された回答を返します。
- クエリエージェント - 検索モード:1 つ以上のコレクションにわたって生のオブジェクトを探索または閲覧したい場合に使用します。質問モードとは異なり、統合された回答ではなく、実際のデータオブジェクトを返します。
- ハイブリッド検索:**ほとんどの検索で標準的な選択肢です。**意味の理解と正確なキーワード照合のバランスに優れています。どの検索タイプを選ぶべきか迷った場合に使用してください。
- セマンティック検索:正確な表現にかかわらず、概念的に類似した内容を探す場合に使用します。特定のキーワードよりも意図が重要な場合に最適です。
- キーワード検索:正確な用語、ID、SKU、特定のテキストパターンを探す場合に使用します。意味的な類似性よりも、キーワードの正確な一致が必要な場合に最適です。
コレクション管理
- コレクション一覧:Weaviate インスタンスに存在するコレクションを確認する場合に使用します。通常、検索やデータ操作を行う前に、最初に実行してください。
- コレクションの詳細を取得:コレクションのプロパティ、データ型、ベクトライザー設定、レプリケーション係数、マルチテナンシーの状態など、スキーマを把握する場合に使用します。検索やインポートの前に役立ちます。
- コレクションの探索:コレクション内のデータ分布、上位の値、実際の内容を分析する場合に使用します。クエリを実行する前に、データの内容を把握するのに役立ちます。
- コレクションの作成:データをインポートする前に、カスタムスキーマで新しいコレクションを作成する場合に使用します。ユーザーが明示的に求めない限り、ベクトライザーを指定しないでください(デフォルトの
text2vec_weaviateが使用されます)。
データ操作
- 取得とフィルタリング:ID で特定のオブジェクトを取得する、またはデータの厳密な条件で絞り込んだ部分集合を取得する場合に使用します。検索よりも正確なデータ取得に適しています。
- データのインポート:ユーザーがファイル(CSV、JSON、JSONL、PDF)のコレクションへのインポート、読み込み、または取り込みを求めた場合に使用してください。 コレクションの作成が必要な PDF インポートは、無料プランのクラスターでは拒否されます。無料プランのクラスターを参照してください。
- サンプルデータの作成:データがない場合、またはユーザーがテスト用データを求めている場合に、ほかのスキルですぐに使えるサンプルデータを作成します。
無料プランのクラスター
Weaviate Cloud の無料プランのクラスターには制限があり、変更される場合があります。スクリプトのエラーがこのセクションの内容と矛盾する場合は、エラーを優先してください。
- コレクションは1つのみです。 2つ目の作成は
429 USAGE_LIMIT_EXCEEDED(「collections count limit of 1 reached」)で拒否されます。まずlist_collections.pyを実行してください。コレクションが存在する場合は、別のコレクションを作成せず、そこにインポートしてください。唯一の枠を使用する前に、ユーザーに確認してください。 example_data.pyはその枠を使用します。example_data.pyは--domainに応じた名前のコレクションを1つ作成します(デフォルトのacademicではAI_Arxiv、その他ではIncome_Tax_Returns、Product_Catalog、Hair_Medical、またはIT_Support_Tickets)。ユーザーが枠の使用に同意しない限り、実行しないでください。PDF に対するimport.pyは、コレクションが存在しない場合、自動的に作成します。コレクションを作成する必要がある PDF のインポートは、無料プランのクラスターでは422 CONFIG_NOT_ALLOWEDで拒否されます。ユーザーが作成を求めた場合は、ユーザー自身に判断してもらってください。このリポジトリのスクリプトに、コレクションを削除するものはありません。hfreshベクトルインデックスのみ使用できます。 別のタイプ(たとえばhnsw)を指定した作成は、422 CONFIG_NOT_ALLOWEDで拒否されます。スクリプトはweaviate-client4.23.1 に固定しており、インデックスのタイプはサーバーに委ねられます。古いクライアントはhnswを要求するため、拒否されます。4.23.1 以降でhnswが許可されていないという422が表示された場合は、再試行せずにユーザーに伝えてください。
推奨事項
-
使用可能なコレクションがわからない場合は、まず一覧を表示します。
uv run SKILL_DIR/scripts/list_collections.py -
使用可能なコレクションがなく、ユーザーが求めている場合は、サンプルデータを作成するかどうかをユーザーに確認します。 それ以外の場合は続行します。
uv run SKILL_DIR/scripts/example_data.py -
スキーマを把握するため、コレクションの詳細を取得します。
uv run SKILL_DIR/scripts/get_collection.py --name "COLLECTION_NAME" -
値や統計情報を確認するため、コレクションのデータを調べます。
uv run SKILL_DIR/scripts/explore_collection.py "COLLECTION_NAME" -
新しい CSV、JSON、または JSONL ファイルをインポートする場合は、コレクションを作成します。インポートの前にコレクションが存在している必要があります。
uv run SKILL_DIR/scripts/create_collection.py CollectionName \ --properties '[{"name": "title", "data_type": "text"}, {"name": "body", "data_type": "text"}]'ユーザーから明示的に指定されない限り、ベクトライザーを指定しないでください。
-
既存のコレクションにデータをインポートします。
uv run SKILL_DIR/scripts/import.py "data.csv" --collection "CollectionName"PDF のインポートではコレクションが自動的に作成されるため、手順5は省略してください。無料プランのクラスターでは、コレクションを作成する必要がある PDF のインポートは拒否されます。無料プランのクラスターを参照してください。
-
適切な検索タイプを選択します。
- 複数のコレクションにまたがって、出典の引用付きで AI による回答を取得する →
ask.py - 複数のコレクションから生のオブジェクトを取得する →
query_search.py - 一般的な検索 →
hybrid_search.py(デフォルト) - 概念的な類似性を検索する →
semantic_search.py - 完全一致する用語や ID を検索する →
keyword_search.py
- 複数のコレクションにまたがって、出典の引用付きで AI による回答を取得する →
出力形式
すべてのスクリプトで次の形式を使用できます。
- Markdown テーブル(デフォルト、推奨)
- JSON(
--jsonフラグ)
エラー処理
よくあるエラー:
WEAVIATE_URL not set→ 環境変数を設定してくださいCollection not found→list_collections.pyを使用して、使用可能なコレクションを確認してくださいAuthentication error→ Weaviate とベクトライザープロバイダーの両方の API キーを確認してください