POST /contextalized embeddeds

ドキュメントチャンク向けにコンテキストに応じたベクトル埋め込みを作成します。これらの埋め込みにより、各チャンク内のローカルの詳細と、ドキュメント全体からグローバルなコンテキストの両方が取得されます。

このエンドポイントとなる接続されたデバイスは、クエリ、完全なドキュメント、またはドキュメントチャンクを受け入れ、ドキュメント全体でコンテキストが認識される埋め込みを返します。

application/ JSON

body 必須

  • inputs array[array] 必須

    リストのリスト。各内部リストには、ベクトル化されるクエリ、ドキュメント、またはドキュメントチャンクが含まれます。

    inputs 内の各内部リストは、まとめられているテキスト要素のセットを表します。リスト内の各要素は独立してエンコードされるだけでなく、同じリスト内の他の要素のコンテキストもエンコードされます。

    inputs = [["text_1_1", "text_1_2", ..., "text_1_n"],
              ["text_2_1", "text_2_2", ..., "text_2_m"]]
    

    ドキュメント チャンク。ほとんどの場合、各内部リストには 1 つのドキュメントのチャンクが含まれます。チャンクはドキュメント内の位置順に並べられます。この場合、以下のとおり動作します。

    inputs = [["doc_1_chunk_1", "doc_1_chunk_2", ..., "doc_1_chunk_n"],
              ["doc_2_chunk_1", "doc_2_chunk_2", ..., "doc_2_chunk_m"]]
    

    各チャンクは 同じドキュメントの他のチャンクとコンテキスト内でエンコードされるため、よりコンテキストに適した埋め込みが得られます。提供されるチャンクには重複が含まれないようにしてください。

    クエリとドキュメントのコンテキストに依存しない動作。内部リストごとに 1 つの要素がある場合、各テキストは独立して埋め込まれます。これは標準(コンテキストに依存しない)埋め込みと同様です。

    inputs = [["query_1"], ["query_2"], ..., ["query_k"]]
    inputs = [["doc_1"], ["doc_2"], ..., ["doc_k"]]
    

    したがって、入力がクエリの場合、各内部リストには上記のように 1 つのクエリ(長さ 1)を含める必要があり、input_typequery に設定する必要があります。

    inputs リストには次の制約が適用されます。

    • リストには、1,000 より多くの入力を含めることはできません。
    • すべての入力にわたるトークンの合計数は 120K を超えてはなりません。
    • すべての入力にわたるチャンクの合計数は 16K を超えてはなりません。

    クエリの場合、リストには 1 つのクエリのみが含まれます。ドキュメントまたはドキュメントチャンクの場合、リストには 1 つのドキュメントのすべてのチャンクが、ドキュメント内の位置の順に含まれます。または、ドキュメント全体が単一のチャンクとして提供される場合もあります。リスト内のトークンの合計数は、32,000 トークンを超えてはなりません。

    1 以上、1000 以下の要素。

    クエリの場合、リストには 1 つのクエリのみが含まれます。ドキュメントまたはドキュメントチャンクの場合、リストには 1 つのドキュメントのすべてのチャンクが、ドキュメント内の位置の順に含まれます。または、ドキュメント全体が単一のチャンクとして提供される場合もあります。リスト内のトークンの合計数は、32,000 トークンを超えてはなりません。

    少なくとも 1 要素。各 の最小長は 1 です。

  • モデル string 必須

    使用するコンテキスト付き埋め込みモデル。推奨モデル: voyage-context-3

    値は voyage-context-3 です。

  • input_type

    入力テキストのタイプ。デフォルトは null です。その他のオプション: querydocument

    • input_typenull の場合、埋め込みモデルは入力を数値ベクトルに直接変換します。検索するまたは検索する目的で、「クエリ」が「ドキュメント」と呼ばれるデータのコレクション内から関連情報を検索する場合、input_type をそれぞれ query または document に設定して、入力がクエリであるか、ドキュメントであるかを指定します。このような場合、Voyage はベクトル化する前に inputs の先頭にプロンプトを自動的に付加し、検索するまたはタスク向けによりカスタマイズされたベクトルを作成します。input_type 引数の有無にかかわらず生成された埋め込みは互換性があります。
    • 透過性のために、次のプロンプトが入力の前に追加されます。
      • query の場合、プロンプトは「サポートされているドキュメントを取得するためのクエリを表します: 」
      • document の場合、プロンプトは「取得用のドキュメントを表します: 」です。

    値は querydocument、または null です。

  • output_d読み 整数 | null

    結果として得られる出力埋め込みの次元数。デフォルトは null です。voyage-context-3 は次の output_dimension 値をサポートしています。2048、1024(デフォルトは)、512、256null に設定されている場合、モデルはデフォルト値 1024 を使用します。

    値は、25651210242048、またはnullです。

  • output_dtype string

    返される埋め込みのデータ型。デフォルトは float です。その他のオプション: int8uint8binaryubinary

    • float: 返される各埋め込みは、32 ビット(4 バイト)の単精度浮動小数点数のリストです。これはデフォルトで、最高の精度および検索精度を提供します。
    • int8uint8: 返される各埋め込みは、それぞれ -128 から 127、0 から 255 までの 8 ビット(1 バイト)の整数のリストであり、その範囲です。
    • binaryubinary: 返される各埋め込みは、ビット圧縮され、量子化された単一ビット埋め込み値を表す 8 ビット整数のリストです。binaryint8ubinaryuint8 を表します。返される整数のリストの長さは、output_dimension の 1/8 です(埋め込みの実際の単位)。binary 型はオフセット バイナリ メソッドを使用します。

    デフォルト値はfloatです。

  • encryption_format

    埋め込みがエンコードされる形式。デフォルトは null です。その他のオプション: base64

    • null の場合、各埋め込みは、output_dtypefloat に設定されている場合は浮動小数点数の配列であり、output_dtype の他のすべての値については整数の配列(int8uint8binaryubinary)。詳細については、 output_dtype を参照してください。
    • base64 の場合、埋め込みは次の base64 でエンコードされた NumPy 配列として表されます。
      • 浮動小数点数(numpy.float32output_dtype の場合は float に設定します。
      • 符号付き整数(numpy.int8output_dtype の場合は int8 または binary に設定します。
      • 符号なし整数(numpy.uint8output_dtype の場合は uint8 または ubinary に設定します。

    値は base64 または null です。

応答

  • 200 application/ JSON

    成功

    応答属性の非表示 応答属性の表示 オブジェクト
    • オブジェクト string 必須

      Realm オブジェクトタイプ。常に「list」です。

      値は list です。

    • データ array[オブジェクト] 必須

      コンテキスト化された埋め込みの配列。

      データ属性の非表示 データ属性の表示 オブジェクト
      • オブジェクト string 必須

        Realm オブジェクトタイプ。常に「list」です。

        値は list です。

      • データ array[オブジェクト] 必須

        入力リスト内の各チャンクに 1 つある、埋め込みオブジェクトの配列。

        データ属性の非表示 データ属性の表示 オブジェクト
        • オブジェクト string 必須

          Realm オブジェクトタイプ。これは常に「埋め込み」です。

          値は embedding です。

        • 埋め込み 配列[number] | string 必須

          埋め込みベクトル。encoding_format が null の場合、これは数値の配列(output_dtypefloat の場合は浮動小数、int8uint8binaryubinary の整数)です。encoding_formatbase64 の場合、これは base64 でエンコードされた string になります。

          次の 1 つ:

          encryption_format が null の場合の配列形式

          エンコード_形式が base64 の場合に base64 でエンコードされた形式

        • index integer 必須

          同じドキュメントの埋め込みリスト内にあるクエリのインデックスまたはコンテキストに応じたチャンク埋め込みのインデックスを表す整数。

      • index integer 必須

        それぞれクエリまたはドキュメントのリスト内のクエリまたはドキュメントのインデックスを表す整数。

    • モデル string 必須

      モデルの名前。

    • 使用法 オブジェクト 必須
      使用属性を非表示 使用属性の表示 オブジェクト
      • total_tokens integer 必須

        埋め込みを計算するために使用されるトークンの合計数。

  • 400 application/ JSON

    Invalid Request

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      リクエストは無効です。このエラーは、無効なJSON、無効なパラメータ型、誤ったデータ型、バッチするサイズが大きすぎる、トークンの合計が制限を超える、または例内のトークンがコンテキストの長さを超えるために発生する可能性があります。

  • 401 application/ JSON

    許可されていない

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      認証 が無効です。モデルAPIキーが Authorization ヘッダーに Bearer VOYAGE_API_KEY として正しく指定されていることを確認します。

  • 403 application/ JSON

    Forbidden

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      アクセスは禁止されています。リクエストのリクエスト元IPアドレスが許可されていない場合、この状況が発生することがあります。

  • 429 application/ JSON

    レート制限を超えました

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      レート制限を超えました。リクエスト頻度またはトークン使用量が高すぎます。リクエストレートを減らすか、再試行する前に待機します。

  • 500 application/ JSON

    内部サーバーエラー

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      サーバーで予期しないエラーが発生しました。短時間待機した後に、リクエストを再試行します。

  • 502 application/ JSON

    バード ゲートウェイ

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      サーバーはアップストリームサーバーから無効な応答を受信しました。短時間待機した後に、リクエストを再試行します。

  • 503 application/ JSON

    サービスは利用できません

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      トラフィック量やメンテナンスが多いため、サービスは一時的に利用できなくなります。短時間待機した後に、リクエストを再試行します。

  • 504 application/ JSON

    ゲートウェイ タイムアウト

    応答属性を非表示 応答属性の表示 オブジェクト
    • 詳細 string

      サーバーは上流サーバーから時間に応じた応答を受信しませんでした。短時間待機した後に、リクエストを再試行します。

POST /contextalized embeddeds
curl \
 --request POST 'https://ai.mongodb.com/v1/contextualizedembeddings' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"inputs":[["string"]],"model":"voyage-context-3","input_type":"query","output_dimension":256,"output_dtype":"float","encoding_format":"base64"}'
リクエスト例
{
  "inputs": [
    [
      "string"
    ]
  ],
  "model": "voyage-context-3",
  "input_type": "query",
  "output_dimension": 256,
  "output_dtype": "float",
  "encoding_format": "base64"
}
応答の例(200)
{
  "object": "list",
  "data": [
    {
      "object": "list",
      "data": [
        {
          "object": "embedding",
          "embedding": [
            42.0
          ],
          "index": 42
        }
      ],
      "index": 42
    }
  ],
  "model": "string",
  "usage": {
    "total_tokens": 42
  }
}
応答の例(400)
{
  "detail": "string"
}
応答の例(401)
{
  "detail": "string"
}
応答の例(403)
{
  "detail": "string"
}
応答の例(429)
{
  "detail": "string"
}
応答の例(500)
{
  "detail": "string"
}
応答の例(502)
{
  "detail": "string"
}
応答の例(503)
{
  "detail": "string"
}
応答の例(504)
{
  "detail": "string"
}