cohere-api について
cohere-apiは、AIワークフローでCohere APIを使うためのスキルで、埋め込み、検索コンテキストを使った生成、再ランキング、セマンティック検索に対応します。Cohereモデルでテキスト処理や検索機能を開発する用途に向いています。
主な機能
- 01テキスト埋め込みの生成
- 02検索コンテキストを使った回答生成
- 03関連度に基づく文書の再ランキング
- 04セマンティック検索ワークフロー
- 05Cohere APIエンドポイントの呼び出し
活用シーン
- 01テキスト検索用の埋め込み生成
- 02検索拡張型の質問応答の構築
- 03クエリに応じた検索結果の並べ替え
- 04データセット内のテキスト類似度の比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill cohere-apiインストール後、Claude Code で/cohere-apiを入力して読み込まれたか確認します。
詳細
cohere-api
目的
このスキルは Cohere API と連携し、埋め込みの生成、検索拡張生成(RAG)の実装、検索結果の再ランキング、セマンティック検索などの AI タスクを処理します。Cohere の言語モデルを使用し、リアルタイムの API 呼び出しで効率的に処理することで、AI ワークフローの強化を目的としています。
使用するタイミング
ML パイプラインでテキストをベクトル埋め込みに変換するとき、正確なクエリ応答のために RAG システムを構築するとき、関連性に基づいて検索結果を再ランキングするとき、大規模なデータセットでセマンティック検索を実行するときに、このスキルを使用してください。文脈に応じた情報検索が必要なチャットボットや、テキストの類似性を分析するアプリケーションなど、API を利用した AI の強化が必要なシナリオに適用します。
主な機能
- 埋め込みの生成:/embed エンドポイントを介してテキストをベクトルに変換します。「embed-english-v3.0」などのモデルに対応し、1 リクエストあたり最大 512 トークンを処理できます。
- RAG の実装:外部データソースを利用して /generate で応答を取得・拡張し、入力と出力をそれぞれ最大 2048 トークンまで処理します。
- 再ランキング:/rerank エンドポイントを使い、クエリとの関連性に基づいてテキストのリストをスコア付けして並べ替えます。上位 k 件の結果を指定できます。
- セマンティック検索:埋め込みを利用して類似性検索を行い、Pinecone や Weaviate などのベクトルデータベースと連携します。
- レート制限:API は 1 分あたり 60 リクエストを課します。レスポンスヘッダーで使用状況を監視してください。
- モデルの選択:リクエストでモデルを指定します。例:「command」は生成用、「embed-multilingual-v2.0」は言語間の埋め込み用です。
使用パターン
このスキルを使用するには、まず認証用の環境変数を設定します:export COHERE_API_KEY=your_api_key。その後、HTTP リクエストまたは Cohere SDK を介して API を呼び出します。埋め込みの場合は、テキスト配列を含む JSON ペイロードを使ってリクエストを構成します。RAG パターンでは、まずドキュメントを取得し、その後 /generate に渡して文脈に応じた応答を生成します。レスポンスのステータスコードを確認し、非同期パターンを必ず処理してください。再ランキングの場合は、検索結果をエンドポイントに渡して 1 回で処理します。信頼性を高めるため、コードでは try-except ブロックで API 呼び出しを囲んでください。
一般的なコマンド/API
curl または Python SDK を使用して Cohere API エンドポイントを呼び出します。認証には $COHERE_API_KEY の Bearer トークンが必要です。
-
埋め込みエンドポイント:POST https://api.cohere.ai/v1/embed 例:curl -X POST https://api.cohere.ai/v1/embed -H "Authorization: Bearer $COHERE_API_KEY" -H "Content-Type: application/json" -d '{"texts": ["Hello world"], "model": "embed-english-v3.0"}'
-
生成エンドポイント(RAG 用):POST https://api.cohere.ai/v1/generate コードスニペット: import cohere; import os client = cohere.Client(api_key=os.environ['COHERE_API_KEY']) response = client.generate(model='command', prompt='Explain AI', max_tokens=50)
-
再ランキングエンドポイント:POST https://api.cohere.ai/v1/rerank 例:curl -X POST https://api.cohere.ai/v1/rerank -H "Authorization: Bearer $COHERE_API_KEY" -d '{"query": "best AI tools", "documents": ["OpenClaw is great", "Cohere is useful"], "top_n": 1}'
-
セマンティック検索のパターン:まず埋め込みを生成し、その後コード内でコサイン類似度を計算します。 コードスニペット: import numpy as np emb1 = response.body['embeddings'][0] # 埋め込みレスポンスから取得 emb2 = [0.1, 0.2, ...] # 別の埋め込み similarity = np.dot(emb1, emb2) / (np.linalg.norm(emb1) * np.linalg.norm(emb2))
設定形式:すべてのリクエストで JSON を使用します。SDK の場合は、{"model": "command", "prompt": "text"} のような辞書を渡します。
統合に関する注意事項
Python 環境に Cohere SDK をインポートして連携します:pip install cohere。安全に扱うため、$COHERE_API_KEY を環境変数として設定します。OpenClaw のワークフローでは、エージェントのプロンプトでスキル ID「cohere-api」を指定するなど、関数呼び出しを介してこのスキルを呼び出します。複数の手順を伴う統合では、出力をつなげます。たとえば、ある呼び出しで得た埋め込みを RAG の入力として使用します。レート制限を避けるため、Cohere のダッシュボードで API の使用状況を監視してください。すべてのリクエストで HTTPS を使用し、必要に応じてリージョン別のエンドポイント(例:us.cohere.ai)を処理してください。
エラー処理
よくあるエラーには、401 Unauthorized(API キーがない、または無効)、429 Too Many Requests(レート制限を超過)、400 Bad Request(JSON またはパラメーターが無効)があります。対処するには、コード内で response.status_code を確認し、429 エラーの場合は指数バックオフを使用して再試行します。401 の場合は、$COHERE_API_KEY を確認し、問題をログに記録します。次のように try-except ブロックを使用します。 コードスニペット: try: response = client.embed(texts=["text"]) except cohere.CohereError as e: if e.http_status == 429: time.sleep(60) # 待機して再試行 else: raise 400 エラーを防ぐため、API を呼び出す前に入力を必ず検証します。たとえば、テキストの長さが 512 トークン未満であることを確認します。
具体的な使用例
例 1:セマンティック検索用の埋め込みの生成 クエリの埋め込みを作成し、ドキュメントと比較するには: まず、次のように設定します:export COHERE_API_KEY=your_key 次に、次を実行します: import cohere; import os client = cohere.Client(api_key=os.environ['COHERE_API_KEY']) emb_response = client.embed(texts=["What is AI?"]) query_emb = emb_response.body['embeddings'][0]
類似性検索用に query_emb をベクトル DB で使用
例 2:質問応答のための RAG の実装 RAG では、コンテキストを取得して応答を生成します: ドキュメント配列を用意します。例:docs = ["AI is machine intelligence."] コード: response = client.generate( model='command', prompt='What is AI? Context: ' + ' '.join(docs), max_tokens=100 ) print(response.body['generations'][0]['text']) # 生成された回答を出力
グラフの関係
- 関連するクラスター:ai-apis(例:openai-api など、API ベースの他のスキルと依存関係を共有します)。
- タグ経由の接続:ai-apis、api(類似カテゴリのスキルと連携したワークフロー向けのリンクです)。
- 出力先:埋め込みベースの検索用に、vector-stores などのスキルへ入力を提供します。