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

Alibaba Cloud Model Studio:エンベディング

最終更新日:Nov 27, 2025

エンベディングモデルは、テキスト、画像、動画などのデータを数値ベクターに変換します。これらのベクターは、セマンティック検索、レコメンデーション、クラスタリング、分類、異常検知などの下流タスクに使用されます。

事前準備

API キーを取得し、API キーを環境変数として設定する必要があります。OpenAI SDK または DashScope SDK を使用して呼び出しを行う場合は、SDK をインストールする必要もあります。

エンベディングの取得

テキストエンベディングの生成

API を呼び出すには、リクエストに埋め込むテキストとモデル名 (例: text-embedding-v4) を指定します。

OpenAI 互換 API

import os
from openai import OpenAI

input_text = "The quality of the clothes is excellent"

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 環境変数を設定していない場合は、これを API キーに置き換えてください。
    # 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

completion = client.embeddings.create(
    model="text-embedding-v4",
    input=input_text
)

print(completion.model_dump_json())
const OpenAI = require("openai");

// OpenAI クライアントを初期化します
const openai = new OpenAI({
    // DASHSCOPE_API_KEY 環境変数が正しく設定されていることを確認してください。
    apiKey: process.env.DASHSCOPE_API_KEY, // 環境変数を設定していない場合は、これを API キーに置き換えてください。
    // 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    baseURL: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1'
});

async function getEmbedding() {
    try {
        const inputTexts = "The quality of the clothes is excellent";
        const completion = await openai.embeddings.create({
            model: "text-embedding-v4",
            input: inputTexts,
            dimensions: 1024 // エンベディング次元を指定します (このパラメーターは text-embedding-v3 と text-embedding-v4 のみでサポートされています)。
        });

        console.log(JSON.stringify(completion, null, 2));
    } catch (error) {
        console.error('Error:', error);
    }
}

getEmbedding();
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": "The quality of the clothes is excellent"
}'

DashScope

import dashscope
from http import HTTPStatus

# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

input_text = "The quality of the clothes is excellent"
resp = dashscope.TextEmbedding.call(
    model="text-embedding-v4",
    input=input_text,
)

if resp.status_code == HTTPStatus.OK:
    print(resp)
import com.alibaba.dashscope.embeddings.TextEmbedding;
import com.alibaba.dashscope.embeddings.TextEmbeddingParam;
import com.alibaba.dashscope.embeddings.TextEmbeddingResult;
import com.alibaba.dashscope.exception.NoApiKeyException;

import java.util.Collections;
public class Main {
    static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        // 中国 (北京) リージョンの場合は、https://dashscope.aliyuncs.com/api/v1 に置き換えてください
    }
     public static void main(String[] args) {
        String inputTexts = "The quality of the clothes is excellent";
        try {
            // リクエストパラメーターを構築します。
            TextEmbeddingParam param = TextEmbeddingParam
                    .builder()
                    .model("text-embedding-v4")
                    // 入力テキスト。
                    .texts(Collections.singleton(inputTexts))
                    .build();

            // モデルインスタンスを作成して呼び出します。
            TextEmbedding textEmbedding = new TextEmbedding();
            TextEmbeddingResult result = textEmbedding.call(param);

            // 結果を出力します。
            System.out.println(result);

        } catch (NoApiKeyException e) {
            // 未設定の API キーに対する例外をキャッチして処理します。
            System.err.println("An exception occurred when calling the API: " + e.getMessage());
            System.err.println("Please check if your API key is configured correctly.");
            e.printStackTrace();
        }
    }
}
# ======= 重要 =======
# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding に置き換えてください
# === 実行前にこのコメントを削除してください ====

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": {
        "texts": [
        "The quality of the clothes is excellent"
        ]
    }
}'

マルチモーダルエンベディングの生成

現在、マルチモーダルエンベディングは DashScope SDK と API を介してモデルを呼び出すことによってのみ生成できます。

import dashscope
import json
import os
from http import HTTPStatus

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 上記はシンガポールリージョンのベース URL です。中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください

# 入力は動画でもかまいません。
# video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
# input = [{'video': video}]
# または画像。
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
resp = dashscope.MultiModalEmbedding.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    # シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="tongyi-embedding-vision-plus",
    input=input
)

print(json.dumps(resp.output, indent=4))
    

モデルの選択

適切なモデルは、入力データの種類とアプリケーションシナリオによって異なります。

  • プレーンテキストまたはコードの場合:現在利用可能な最も強力なモデルである text-embedding-v4 を使用します。このモデルは、タスク命令 (instruct) や疎ベクトルなどの高度な機能をサポートし、ほとんどのテキスト処理シナリオをカバーします。

  • マルチモーダルコンテンツの場合

    • 独立したベクター:画像とそれに対応するテキストタイトルなど、各入力に対して個別のベクターを生成するには、tongyi-embedding-vision-plustongyi-embedding-vision-flash、または汎用マルチモーダルモデル multimodal-embedding-v1 を選択して、入力の各部分 (画像、テキスト) に対して独立したベクターを作成します。

  • 大規模データの場合:大規模で非リアルタイムのテキストデータを処理するには、text-embedding-v4OpenAI 互換のバッチ呼び出しと組み合わせて使用することで、コストを大幅に削減できます。

以下の表は、利用可能なすべてのエンベディングモデルの詳細な仕様を示しています。

テキストエンベディング

シンガポール

モデル

エンベディング次元

バッチサイズ

バッチあたりの最大トークン数 ()

料金 (100 万トークン)

サポート言語

無料クォータ (注)

text-embedding-v4

Qwen3-Embedding シリーズに属します

2,048、1,536、1,024 (デフォルト)、768、512、256、128、64

10

8,192

0.07 ドル

中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語、日本語、韓国語、ドイツ語、ロシア語など 100 以上の主要言語

100 万トークン

有効期間:Model Studio をアクティベートしてから 90 日間

text-embedding-v3

1,024 (デフォルト)、768、512

中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語、日本語、韓国語、ドイツ語、ロシア語など 50 以上の主要言語

50 万トークン

有効期間:Model Studio をアクティベートしてから 90 日間

中国 (北京)

モデル

エンベディング次元

バッチサイズ

バッチあたりの最大トークン数 ()

料金 (100 万トークン)

サポート言語

text-embedding-v4

Qwen3-Embedding シリーズに属します

2,048、1,536、1,024 (デフォルト)、768、512、256、128、64

10

8,192

0.072 ドル

中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語、日本語、韓国語、ドイツ語、ロシア語などの 100 以上の主要言語、および複数のプログラミング言語

説明

バッチサイズとは、1 回の API 呼び出しで処理できるテキストの最大数を指します。例えば、text-embedding-v4 のバッチサイズは 10 です。これは、1 回のリクエストで最大 10 個のテキストをエンベディングのために渡すことができ、各テキストは 8,192 トークンを超えてはならないことを意味します。この制限は以下に適用されます:

  • 文字列配列の入力:配列には最大 10 個の要素を含めることができます。

  • ファイル入力:テキストファイルには最大 10 行のテキストを含めることができます。

マルチモーダルエンベディング

モデルは、テキスト、画像、または動画といったユーザー入力に基づいて連続的なベクターを生成します。これは、動画分類、画像分類、画像テキスト検索、テキストや他の画像を使用した画像検索、テキストや画像を使用した動画検索などのタスクに適しています。

API は、単一のテキストセグメント、単一の画像、または単一の動画ファイルのアップロードをサポートしています。また、異なるタイプの組み合わせ (テキストと画像など) も許可されています。一部のモデルは、同じタイプの複数の入力 (複数の画像など) をサポートしています。詳細については、特定のモデルの制限事項をご参照ください。

シンガポール

モデル

エンベディング次元

テキスト長の制限

画像の制限

動画クリップの制限

料金 (100 万トークン)

無料クォータ (注)

tongyi-embedding-vision-plus

1,152

1,024 トークン

≤ 3 MB、

≤ 8 画像

≤ 10 MB

0.09 ドル

100 万トークン

Model Studio をアクティベートしてから 90 日間有効です。

tongyi-embedding-vision-flash

768

1,024 トークン

≤ 3 MB、

≤ 8 画像

≤ 10 MB

画像/動画:0.03 ドル

テキスト:0.09 ドル

中国 (北京)

モデル

エンベディング次元

テキスト長の制限

画像の制限

動画クリップの制限

料金 (100 万トークン)

無料クォータ (注)

multimodal-embedding-v1

1,024

512 トークン

≤ 3 MB、

1 画像

≤ 10 MB

無料トライアル

トークンクォータ制限なし

入力フォーマットと言語の制限

モデル

テキスト

画像

動画

tongyi-embedding-vision-plus

中国語/英語

JPG、PNG、BMP (URL または Base64 をサポート)

MP4、MPEG、MOV、MPG、WEBM、AVI、FLV、MKV (URL のみ)

tongyi-embedding-vision-flash

multimodal-embedding-v1

コア機能

エンベディング次元の切り替え

text-embedding-v4text-embedding-v3 は、カスタムのエンベディング次元をサポートしています。次元が高いほど豊富なセマンティック情報が保持されますが、ストレージと計算コストも増加します。

  • 一般的なシナリオ (推奨):1024 次元は、パフォーマンスとコストのバランスが最も優れています。これは、ほとんどのセマンティック検索タスクに適しています。

  • 高精度:高精度が要求されるドメインでは、1536 または 2048 次元を選択します。これにより精度は向上しますが、ストレージと計算のオーバーヘッドが大幅に増加します。

  • リソースに制約がある場合:コストに敏感なシナリオでは、768 以下の次元を選択します。これによりリソース消費は大幅に削減されますが、セマンティック情報の一部が失われます。

OpenAI 互換

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

resp = client.embeddings.create(
    model="text-embedding-v4",
    input=["I like it and will come back to buy more"],
    # エンベディング次元を 256 に設定
    dimensions=256
)
print(f"Embedding dimensions: {len(resp.data[0].embedding)}")

DashScope

import dashscope

# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

resp = dashscope.TextEmbedding.call(
    model="text-embedding-v4",
    input=["I like it and will come back to buy more"],
    # エンベディング次元を 256 に設定
    dimension=256
)

print(f"Embedding dimensions: {len(resp.output['embeddings'][0]['embedding'])}")

クエリとドキュメントテキストの区別 (text_type)

このパラメーターは現在、DashScope SDK と API を通じてのみ有効にできます。

検索タスクで最良の結果を得るには、タスクの目標に基づいて、さまざまな種類のコンテンツを特定のエンベディングメソッドで処理します。これにより、各タイプが最適に機能します。この目的のために text_type パラメーターが設計されています:

  • text_type: 'query':ユーザーが入力したクエリテキストに使用します。モデルは、クエリと検索に最適化された、より指向性の高い「タイトル風」のベクターを生成します。

  • text_type: 'document' (デフォルト):データベースに保存されているドキュメントテキストに使用します。モデルは、より包括的な情報を含み、クエリとの照合に最適化された「本文風」のベクターを生成します。

短いテキストと長いテキストを照合する場合は、querydocument を区別します。クラスタリングや分類など、すべてのテキストが同じロールを持つタスクでは、このパラメーターを設定する必要はありません。

タスク命令によるパフォーマンスの向上 (instruct)

このパラメーターは現在、DashScope SDK と API を通じてのみ有効にできます。

明確な英語の命令を提供して text-embedding-v4 モデルをガイドし、特定の検索シナリオに合わせてエンベディングの品質と精度を最適化します。この機能を使用する場合、text_type パラメーターを query に設定します。

# シナリオ: 検索エンジンのドキュメントベクターを構築する際に、検索のためのエンベディング品質を最適化するための命令を追加できます。
resp = dashscope.TextEmbedding.call(
    model="text-embedding-v4",
    input="Research papers on machine learning",
    text_type="query",
    instruct="Given a research paper query, retrieve relevant research paper"
)

密ベクトルと疎ベクトル

このパラメーターは現在、DashScope SDK と API を通じてのみ有効にできます。

text-embedding-v4text-embedding-v3 は、さまざまな検索戦略のニーズを満たすために、3 種類のベクター出力をサポートしています。

ベクタータイプ (output_type)

主な利点

主な欠点

典型的な適用シナリオ

dense

深いセマンティック理解。同義語や文脈を識別でき、より関連性の高い検索結果につながります。

計算およびストレージコストが高い。完全なキーワードマッチングを保証できません。

セマンティック検索、AI チャット、コンテンツレコメンデーション。

sparse

高い計算効率完全なキーワードマッチングと高速なフィルタリングに重点を置いています。

セマンティック理解を犠牲にする。同義語や文脈を処理できません。

ログ検索、製品 SKU 検索、正確な情報フィルタリング。

dense&sparse

セマンティクスとキーワードを組み合わせて、最良の検索結果を実現します。生成コストは同じです。API 呼び出しのオーバーヘッドは、単一ベクターモードと同じです。

大きなストレージ要件。システムアーキテクチャーと検索ロジックがより複雑になります。

高品質な本番環境グレードのハイブリッド検索エンジン。

アプリケーション例

以下のコードはデモンストレーションのみを目的としています。本番環境では、ベクターを事前に計算し、ベクターデータベースに保存する必要があります。検索時には、クエリのベクターのみを計算する必要があります。

セマンティック検索

クエリとドキュメント間のベクター類似度を計算して、正確なセマンティックマッチングを実現します。

import dashscope
import numpy as np
from dashscope import TextEmbedding

# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

def cosine_similarity(a, b):
    """コサイン類似度を計算"""
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

def semantic_search(query, documents, top_k=5):
    """セマンティック検索"""
    # クエリベクターを生成
    query_resp = TextEmbedding.call(
        model="text-embedding-v4",
        input=query,
        dimension=1024
    )
    query_embedding = query_resp.output['embeddings'][0]['embedding']

    # ドキュメントベクターを生成
    doc_resp = TextEmbedding.call(
        model="text-embedding-v4",
        input=documents,
        dimension=1024
    )

    # 類似度を計算
    similarities = []
    for i, doc_emb in enumerate(doc_resp.output['embeddings']):
        similarity = cosine_similarity(query_embedding, doc_emb['embedding'])
        similarities.append((i, similarity))

    # ソートして上位 k 件の結果を返す
    similarities.sort(key=lambda x: x[1], reverse=True)
    return [(documents[i], sim) for i, sim in similarities[:top_k]]

# 使用例
documents = [
    "Artificial intelligence is a branch of computer science",
    "Machine learning is an important method for achieving artificial intelligence",
    "Deep learning is a subfield of machine learning"
]
query = "What is AI?"
results = semantic_search(query, documents, top_k=2)
for doc, sim in results:
    print(f"Similarity: {sim:.3f}, Document: {doc}")

レコメンデーションシステム

ユーザーの行動履歴ベクターを分析してユーザーの嗜好を発見し、類似のアイテムを推奨します。

import dashscope
import numpy as np
from dashscope import TextEmbedding

# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

def cosine_similarity(a, b):
    """コサイン類似度を計算"""
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
def build_recommendation_system(user_history, all_items, top_k=10):
    """レコメンデーションシステムを構築"""
    # ユーザー履歴ベクターを生成
    history_resp = TextEmbedding.call(
        model="text-embedding-v4",
        input=user_history,
        dimension=1024
    )

    # ユーザーの嗜好ベクターを計算 (平均化による)
    user_embedding = np.mean([
        emb['embedding'] for emb in history_resp.output['embeddings']
    ], axis=0)

    # すべてのアイテムのベクターを生成
    items_resp = TextEmbedding.call(
        model="text-embedding-v4",
        input=all_items,
        dimension=1024
    )

    # レコメンデーションスコアを計算
    recommendations = []
    for i, item_emb in enumerate(items_resp.output['embeddings']):
        score = cosine_similarity(user_embedding, item_emb['embedding'])
        recommendations.append((all_items[i], score))

    # ソートして推奨結果を返す
    recommendations.sort(key=lambda x: x[1], reverse=True)
    return recommendations[:top_k]

# 使用例
user_history = ["Science Fiction", "Action", "Suspense"]
all_movies = ["Future World", "Space Adventure", "Ancient War", "Romantic Journey", "Superhero"]
recommendations = build_recommendation_system(user_history, all_movies)
for movie, score in recommendations:
    print(f"Recommendation Score: {score:.3f}, Movie: {movie}")

テキストクラスタリング

ベクター間の距離を分析して、類似したテキストを自動的にグループ化します。

# scikit-learn が必要です: pip install scikit-learn
import dashscope
import numpy as np
from sklearn.cluster import KMeans

# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

def cluster_texts(texts, n_clusters=2):
    """テキストのグループをクラスタリング"""
    # 1. すべてのテキストのベクターを取得します。
    resp = dashscope.TextEmbedding.call(
        model="text-embedding-v4",
        input=texts,
        dimension=1024
    )
    embeddings = np.array([item['embedding'] for item in resp.output['embeddings']])

    # 2. KMeans アルゴリズムを使用してクラスタリングします。
    kmeans = KMeans(n_clusters=n_clusters, random_state=0, n_init='auto').fit(embeddings)

    # 3. 結果を整理して返します。
    clusters = {i: [] for i in range(n_clusters)}
    for i, label in enumerate(kmeans.labels_):
        clusters[label].append(texts[i])
    return clusters


# 使用例
documents_to_cluster = [
    "Phone company A releases a new phone",
    "Search engine company B launches a new system",
    "World Cup final: Argentina vs. France",
    "China wins another gold at the Olympics",
    "A company releases its latest AI chip",
    "Euro Cup match report"
]
clusters = cluster_texts(documents_to_cluster, n_clusters=2)
for cluster_id, docs in clusters.items():
    print(f"--- Cluster {cluster_id} ---")
    for doc in docs:
        print(f"- {doc}")

テキスト分類

入力テキストと事前定義されたラベル間のベクター類似度を計算して、事前ラベル付けされた例なしで新しいカテゴリを識別および分類します。

import dashscope
import numpy as np

# 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

def cosine_similarity(a, b):
    """コサイン類似度を計算"""
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))


def classify_text_zero_shot(text, labels):
    """ゼロショットテキスト分類"""
    # 1. 入力テキストとすべてのラベルのベクターを取得します。
    resp = dashscope.TextEmbedding.call(
        model="text-embedding-v4",
        input=[text] + labels,
        dimension=1024
    )
    embeddings = resp.output['embeddings']
    text_embedding = embeddings[0]['embedding']
    label_embeddings = [emb['embedding'] for emb in embeddings[1:]]

    # 2. 各ラベルとの類似度を計算します。
    scores = [cosine_similarity(text_embedding, label_emb) for label_emb in label_embeddings]

    # 3. 最も類似度の高いラベルを返します。
    best_match_index = np.argmax(scores)
    return labels[best_match_index], scores[best_match_index]


# 使用例
text_to_classify = "The fabric of this dress is comfortable and the style is nice"
possible_labels = ["Digital Products", "Apparel & Accessories", "Food & Beverage", "Home & Living"]

label, score = classify_text_zero_shot(text_to_classify, possible_labels)
print(f"Input text: '{text_to_classify}'")
print(f"Best matching category: '{label}' (Similarity: {score:.3f})")

異常検知

テキストベクターと正常なサンプルの中心とのベクター類似度を計算して、通常のパターンから著しく異なる異常データを識別します。

import dashscope
import numpy as np


def cosine_similarity(a, b):
    """コサイン類似度を計算"""
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))


def detect_anomaly(new_comment, normal_comments, threshold=0.6):
    # 1. すべての正常なコメントと新しいコメントをベクター化します。
    all_texts = normal_comments + [new_comment]
    resp = dashscope.TextEmbedding.call(
        model="text-embedding-v4",
        input=all_texts,
        dimension=1024
    )
    embeddings = [item['embedding'] for item in resp.output['embeddings']]

    # 2. 正常なコメントの中心ベクターを計算します (平均)。
    normal_embeddings = np.array(embeddings[:-1])
    normal_center_vector = np.mean(normal_embeddings, axis=0)

    # 3. 新しいコメントと中心ベクターの間の類似度を計算します。
    new_comment_embedding = np.array(embeddings[-1])
    similarity = cosine_similarity(new_comment_embedding, normal_center_vector)

    # 4. 異常かどうかを判断します。
    is_anomaly = similarity < threshold
    return is_anomaly, similarity


# 使用例
normal_user_comments = [
    "Today's meeting was very productive",
    "The project is progressing smoothly",
    "A new version will be released next week",
    "User feedback is positive"
]

test_comments = {
    "Normal comment": "The feature works as expected",
    "Anomaly - meaningless garbled text": "asdfghjkl zxcvbnm"
}

print("--- Anomaly Detection Example ---")
for desc, comment in test_comments.items():
    is_anomaly, score = detect_anomaly(comment, normal_user_comments)
    result = "Yes" if is_anomaly else "No"
    print(f"Comment: '{comment}'")
    print(f"Is Anomaly: {result} (Similarity to normal samples: {score:.3f})\n")

API リファレンス

エラーコード

呼び出しが失敗した場合は、「エラーメッセージ」をご参照のうえ、トラブルシューティングを行ってください。

レート制限

モデルのレート制限については、「レート制限」をご参照ください。

モデルのパフォーマンス (MTEB/CMTEB)

評価ベンチマーク

  • MTEB:Massive Text Embedding Benchmark。分類、クラスタリング、検索などのタスクにおける一般的なパフォーマンスを評価するための包括的なベンチマークです。

  • CMTEB:Chinese Massive Text Embedding Benchmark。中国語テキストの評価に特化したベンチマークです。

  • スコアは 0 から 100 の範囲です。スコアが高いほどパフォーマンスが優れていることを示します。

モデル

MTEB

MTEB (検索タスク)

CMTEB

CMTEB (検索タスク)

text-embedding-v3 (512 次元)

62.11

54.30

66.81

71.88

text-embedding-v3 (768 次元)

62.43

54.74

67.90

72.29

text-embedding-v3 (1024 次元)

63.39

55.41

68.92

73.23

text-embedding-v4 (512 次元)

64.73

56.34

68.79

73.33

text-embedding-v4 (1024 次元)

68.36

59.30

70.14

73.98

text-embedding-v4 (2048 次元)

71.58

61.97

71.99

75.01