このトピックでは、Jina Embeddings v2 モデルを使用してテキストデータをベクトル化し、ベクトルデータをベクトル検索のために DashVector にインポートする方法について説明します。
前提条件
DashVector:
クラスタが作成されていること。 詳細については、「クラスタの作成」をご参照ください。
API キーを取得していること。 詳細については、「API キーの管理」をご参照ください。
最新バージョンの SDK がインストールされていること。詳細については、「DashVector SDK のインストール」をご参照ください。
Jina AI
API キーを取得していること。 詳細については、Jina AI のホームページをご参照ください。
Jina Embeddings v2 モデル
概要
Jina Embeddings v2 モデルは、8,192 のテキスト長をサポートする唯一のオープンソースの埋め込みモデルです。このモデルの機能と巨大テキスト埋め込みベンチマーク (MTEB) におけるパフォーマンスは、OpenAI のクローズドソースの text-embedding-ada-002 モデルに匹敵します。
モデル名 | ベクトル次元 | 距離メトリック | ベクトルデータ型 | 備考 |
jina-embeddings-v2-small-en | 512 | コサイン | Float32 |
|
jina-embeddings-v2-base-en | 768 | コサイン | Float32 |
|
jina-embeddings-v2-base-zh | 768 | コサイン | Float32 |
|
Jina Embeddings v2 モデルの詳細については、Jina AI のホームページをご参照ください。
例
コードを正しく実行するには、次の操作を実行する必要があります。
サンプルコードの {your-dashvector-api-key} を、DashVector API キーに置き換えます。
サンプルコードの {your-dashvector-cluster-endpoint} を、DashVector クラスタのエンドポイントに置き換えます。
次のサンプルコードの {your-jina-api-key} を Jina AI API キーに置き換えます。
from dashvector import Client
import requests
from typing import List
# Jina Embeddings v2 モデルを使用して、テキストデータをベクトルデータに埋め込みます。
def generate_embeddings(texts: List[str]):
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {your-jina-api-key}'
}
data = {'input': texts, 'model': 'jina-embeddings-v2-base-zh'}
response = requests.post('https://api.jina.ai/v1/embeddings', headers=headers, json=data)
return [record["embedding"] for record in response.json()["data"]]
# DashVector クライアントを作成します。
client = Client(
api_key='{your-dashvector-api-key}',
endpoint='{your-dashvector-cluster-endpoint}'
)
# DashVector コレクションを作成します。
rsp = client.create('jina-text-embedding', 768)
assert rsp
collection = client.get('jina-text-embedding')
assert collection
# テキストをベクトルに変換し、DashVector に保存します。
collection.insert(
('ID1', generate_embeddings(['Alibaba Cloud DashVector は、パフォーマンスと費用対効果の点で最高のベクトルデータベースの 1 つです。'])[0])
)
# ベクトル検索を実行します。
docs = collection.query(
generate_embeddings(['最高のベクトルデータベース'])[0]
)
print(docs)