コンテンツにスキップ

Cohere リランキング形式(Rerank)

重要なお知らせ

CohereのRerankモデルインターフェースは、JinaのRerankモデルインターフェース形式と同じです。

公式ドキュメント

Cohere Rerank

📝 はじめに

クエリとテキストのリストが与えられると、リランキングAPIはクエリとの関連性に基づいてテキストを並べ替えます。各テキストには関連性スコアが割り当てられ、順序付けられた配列結果が生成されます。この機能は、検索および情報検索アプリケーションに特に適しており、ドキュメントの順序付けを最適化し、ユーザーが関連情報をより迅速に見つけるのに役立ちます。

💡 リクエスト例

基本的なリランキングリクエスト ✅

curl https://你的newapi服务器地址/v1/rerank \
  -H "Authorization: Bearer $NEWAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "rerank-v3.5",
    "query": "什么是美国的首都?",
    "documents": [
      "内华达州的首府是卡森城。",
      "北马里亚纳群岛是太平洋上的一组岛屿,其首都是塞班岛。",
      "华盛顿特区(也称为华盛顿或特区,正式名称为哥伦比亚特区)是美国的首都。",
      "英语语法中的大写是在单词开头使用大写字母。英语用法与其他语言的大写不同。",
      "自美国成为一个国家之前,美国就存在死刑。截至2017年,在50个州中有30个州死刑合法。"
    ],
    "top_n": 3
  }'

レスポンス例:

{
  "results": [
    {
      "index": 2,
      "relevance_score": 0.999071
    },
    {
      "index": 0,
      "relevance_score": 0.32713068
    },
    {
      "index": 1,
      "relevance_score": 0.1867867
    }
  ],
  "id": "07734bd2-2473-4f07-94e1-0d9f0e6843cf",
  "meta": {
    "api_version": {
      "version": "2",
      "is_experimental": false
    },
    "billed_units": {
      "search_units": 1
    }
  }
}

構造化データの使用 ✅

curl https://你的newapi服务器地址/v1/rerank \
  -H "Authorization: Bearer $NEWAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "rerank-v3.5",
    "query": "寻找适合初学者的高性价比单反相机",
    "documents": [
      "型号: Canon EOS 800D\n价格: 4299元\n功能: 2410万像素, 光学取景器, Wi-Fi\n适合人群: 初学者, 爱好者",
      "型号: Nikon D3500\n价格: 3099元\n功能: 2416万像素, 光学取景器, 长达1550张的电池续航\n适合人群: 新手, 学生",
      "型号: Sony A7III\n价格: 12999元\n功能: 2420万像素, 全画幅, 4K视频\n适合人群: 专业摄影师, 视频创作者"
    ],
    "max_tokens_per_doc": 512
  }'

レスポンス例:

{
  "results": [
    {
      "index": 1,
      "relevance_score": 0.918472
    },
    {
      "index": 0,
      "relevance_score": 0.854321
    },
    {
      "index": 2,
      "relevance_score": 0.423156
    }
  ],
  "id": "8f734bd2-2473-4f07-94e1-0d9f0e68ebfa",
  "meta": {
    "api_version": {
      "version": "2"
    },
    "billed_units": {
      "search_units": 1
    }
  }
}

📮 リクエスト

エンドポイント

POST /v1/rerank

クエリとの関連性に基づいてテキストのリストを並べ替えます。

認証方法

APIキー認証のために、リクエストヘッダーに以下を含めます。

Authorization: Bearer $NEWAPI_API_KEY

ここで $NEWAPI_API_KEY はお客様の API キーです。

リクエストヘッダーパラメータ

X-Client-Name

  • タイプ:文字列
  • 必須:いいえ
  • 説明:リクエストを開始するプロジェクト名。

リクエストボディパラメータ

model

  • タイプ:文字列
  • 必須:はい
  • 説明:使用するモデル識別子。例: rerank-v3.5。

query

  • タイプ:文字列
  • 必須:はい
  • 説明:検索クエリテキスト。これはユーザーが入力した質問またはクエリの内容です。

documents

  • タイプ:文字列配列
  • 必須:はい
  • 説明:クエリと比較されるテキストのリスト。最高のパフォーマンスを得るために、単一のリクエストで1,000を超えるドキュメントを送信しないことを推奨します。
  • 注意事項:
  • 長いドキュメントは、max_tokens_per_docで指定された値に自動的に切り詰められます
  • 構造化データは、最高のパフォーマンスを得るためにYAML文字列としてフォーマットする必要があります

top_n

  • タイプ:整数
  • 必須:いいえ
  • 説明:返されるリランキング結果の数を制限します。指定しない場合、すべてのリランキング結果が返されます。

max_tokens_per_doc

  • タイプ:整数
  • 必須:いいえ
  • デフォルト値:4096
  • 説明:長いドキュメントは、指定されたトークン数に自動的に切り詰められます。

📥 レスポンス

成功レスポンス

ソートされたドキュメントのリストを含むオブジェクトを返します。

results

  • タイプ:オブジェクト配列
  • 説明:ソートされたドキュメントのリスト。関連性の降順で並べられます。
  • 属性:
  • index: 整数。元のドキュメントリスト内でのドキュメントのインデックスに対応します。
  • relevance_score: 浮動小数点数。関連性スコアの範囲は[0, 1]です。1に近いスコアはクエリとの関連性が高いことを示し、0に近いスコアは関連性が低いことを示します。

id

  • タイプ:文字列
  • 説明:リクエストの一意の識別子。

meta

  • タイプ:オブジェクト
  • 説明:リクエストに関するメタデータを含みます。
  • 属性:
  • api_version: オブジェクト。APIバージョン情報を含みます。
    • version: 文字列。APIバージョン番号。
    • is_deprecated: ブール値。非推奨であるかどうか。
    • is_experimental: ブール値。実験的な機能であるかどうか。
  • billed_units: オブジェクト。課金情報を含みます。
    • search_units: 浮動小数点数。課金される検索単位数。
  • tokens: オブジェクト。トークン使用統計を含みます。
    • input_tokens: 浮動小数点数。モデルへの入力として使用されたトークン数。
    • output_tokens: 浮動小数点数。モデルによって生成されたトークン数。

warnings

  • タイプ:文字列配列
  • 必須:いいえ
  • 説明:APIが返す警告メッセージ。

エラーレスポンス

リクエストに問題がある場合、APIは以下のHTTPステータスコードと対応するエラーを返すことがあります。

  • 400 Bad Request: リクエストの形式またはパラメータエラー
  • 401 Unauthorized: 有効なAPIキーが提供されていません
  • 403 Forbidden: このリソースにアクセスする権限がありません
  • 404 Not Found: リクエストされたリソースが存在しません
  • 422 Unprocessable Entity: リクエスト形式は正しいが、意味的なエラーが含まれています
  • 429 Too Many Requests: リクエスト頻度が制限を超えています
  • 500 Internal Server Error: サーバー内部エラー
  • 503 Service Unavailable: サービスが一時的に利用できません

🌟 ベストプラクティス

ドキュメント準備の推奨事項

  1. ドキュメントの長さ:各ドキュメントは簡潔で明確に保ち、長くなりすぎないようにしてください。長いドキュメントは自動的に切り詰められます。

  2. 構造化データ:最高のパフォーマンスを得るために、構造化データをYAML文字列としてフォーマットします。例:

    title: 产品名称
    price: 9999元
    features:
      - 特性1
      - 特性2
    

  3. ドキュメント数:最高のパフォーマンスを得るために、単一のリクエストで1,000を超えるドキュメントを使用しないでください。

クエリの最適化

  1. 明確かつ具体的:より正確なソート結果を得るために、明確で具体的なクエリを作成してください。

  2. 曖昧なクエリの回避:関連性スコアの差が不明瞭になる可能性があるため、曖昧すぎる、または一般的なクエリワードは避けるようにしてください。

関連性スコアの理解

関連性スコアは[0, 1]の範囲に正規化された値です。

  • 1に近いスコアは、クエリとの関連性が高いことを示します。

  • 0に近いスコアは、関連性が低いことを示します。

注意:スコアが0.9のドキュメントが、スコアが0.45のドキュメントよりも関連性が2倍高いと単純に考えることはできません。関連性スコアは、絶対的な比較ではなく、順序付けに使用される相対的な指標です。