すべてのプロダクト
Search
ドキュメントセンター

DashVector:Jina Embeddings モデルを使用したテキストデータのベクトル化

最終更新日:Jan 08, 2025

このトピックでは、Jina Embeddings v2 モデルを使用してテキストデータをベクトル化し、ベクトルデータをベクトル検索のために DashVector にインポートする方法について説明します。

前提条件

  • DashVector:

    • クラスタが作成されていること。 詳細については、「クラスタの作成」をご参照ください。

    • API キーを取得していること。 詳細については、「API キーの管理」をご参照ください。

    • 最新バージョンの SDK がインストールされていること。詳細については、「DashVector SDK のインストール」をご参照ください。

  • Jina AI

Jina Embeddings v2 モデル

概要

Jina Embeddings v2 モデルは、8,192 のテキスト長をサポートする唯一のオープンソースの埋め込みモデルです。このモデルの機能と巨大テキスト埋め込みベンチマーク (MTEB) におけるパフォーマンスは、OpenAI のクローズドソースの text-embedding-ada-002 モデルに匹敵します。

モデル名

ベクトル次元

距離メトリック

ベクトルデータ型

備考

jina-embeddings-v2-small-en

512

コサイン

Float32

  • 最大テキスト長: 8,192

jina-embeddings-v2-base-en

768

コサイン

Float32

  • 最大テキスト長: 8,192

jina-embeddings-v2-base-zh

768

コサイン

Float32

  • 最大テキスト長: 8,192

説明

Jina Embeddings v2 モデルの詳細については、Jina AI のホームページをご参照ください。

説明

コードを正しく実行するには、次の操作を実行する必要があります。

  1. サンプルコードの {your-dashvector-api-key} を、DashVector API キーに置き換えます。

  2. サンプルコードの {your-dashvector-cluster-endpoint} を、DashVector クラスタのエンドポイントに置き換えます。

  3. 次のサンプルコードの {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)