DashScope RankerCompatible with Milvus 2.6.x
DashScope Ranker を使用すると、Milvus は Alibaba Cloud DashScope の再ランク付けモデルを呼び出し、意味的な関連性に基づいて検索結果の順序を並べ替えることができます。
前提条件
DashScope Ranker を使用する前に、以下の条件を満たしていることを確認してください。
再ランク付け対象のテキストを含む「
VARCHAR」フィールドを持つMilvusコレクション。有効な DashScope API キー。
gte-rerank-v2などの DashScope 再ランク付けモデルへのアクセス権。
利用可能な再ランク付けモデルおよび地域別エンドポイントについては、Alibaba Cloud Model StudioのText Rerank APIを参照してください。
認証情報の設定
Milvus が DashScope に再ランク付けをリクエストするには、DashScope API キーを指定する必要があります。API キーは、milvus.yaml または環境変数を通じて設定できます。
オプション 1: 設定ファイル
API キーをmilvus.yaml に保存し、DashScope リランクプロバイダーでその認証情報ラベルを指定します。
# milvus.yaml
credential:
dashscope_apikey:
apikey: <YOUR_DASHSCOPE_API_KEY>
function:
rerank:
model:
providers:
ali:
credential: dashscope_apikey
# url: https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank
オプション 2: 環境変数
milvus.yaml に一致する認証情報が設定されていない場合、Milvus は以下の環境変数から DashScope API キーを読み取ることができます:
変数 |
必須? |
説明 |
|---|---|---|
|
はい |
Milvus サービスが Alibaba Cloud DashScope を呼び出す際に使用する DashScope API キー。 |
DashScope ランカー関数の作成
DashScope ランカーを使用するには、DashScope 再ランク付けモデルとクエリテキストを指定する Function オブジェクトを作成します。DashScope の再ランク付けには、provider: "ali" を使用してください。
from pymilvus import Function, FunctionType
dashscope_ranker = Function(
name="dashscope_semantic_ranker",
input_field_names=["document"],
function_type=FunctionType.RERANK,
params={
"reranker": "model",
"provider": "ali",
"model_name": "gte-rerank-v2",
"queries": ["renewable energy developments"],
"max_client_batch_size": 128,
"credential": "dashscope_apikey",
},
)
DashScope ランカー固有のパラメータ
パラメータ |
必須? |
説明 |
値 / 例 |
|---|---|---|---|
|
はい |
モデルの再ランク付けを有効にするには、 |
|
|
はい |
再ランク付けに使用するモデルサービスプロバイダー。DashScope の場合は、 |
|
|
はい |
使用するDashScopeの再ランク付けモデル。 |
|
|
はい |
再ランク付けモデルが関連性スコアを計算するために使用するクエリ文字列のリスト。クエリ文字列の数は、検索リクエスト内のクエリ数と一致している必要があります。 |
|
|
いいえ |
リクエストごとにモデルサービスへ送信するドキュメントの最大数。 |
|
|
いいえ |
|
|
provider やqueries など、すべてのモデルランカーで共通する一般的なパラメータについては、「モデルランカーの作成」を参照してください。
標準のベクトル検索への適用
DashScope Rankerを標準のベクトル検索に適用するには、search() にranker関数を渡します。
results = client.search(
collection_name="your_collection",
data=[your_query_vector],
anns_field="dense_vector",
limit=5,
output_fields=["document"],
ranker=dashscope_ranker,
consistency_level="Bounded",
)