メインコンテンツまでスキップ

埋め込み(Embeddings)

text-embedding-v4(Alibaba)でテキストをベクトル化できます。OpenAI Embeddings API と互換です。 RAG・意味検索・クラスタリングなどに利用します。

import os
import numpy as np
from openai import OpenAI

client = OpenAI(
api_key=os.environ["LYKURO_API_KEY"],
base_url="https://api.lykuro.ai/alibaba/compatible-mode/v1",
)

texts = ["猫はかわいい動物です。", "犬は忠実なペットです。", "株価が下落した。"]
resp = client.embeddings.create(model="text-embedding-v4", input=texts)
vectors = [np.array(d.embedding) for d in resp.data]

def cosine(a, b):
return a @ b / (np.linalg.norm(a) * np.linalg.norm(b))

# 「猫」と「犬」、「猫」と「株価」の類似度を比較
print("猫 vs 犬 :", cosine(vectors[0], vectors[1]))
print("猫 vs 株価 :", cosine(vectors[0], vectors[2]))

:::note ベクトルDBとの併用 取得したベクトルは pgvector / Qdrant / Pinecone などに格納して類似検索に使えます。 インデックス作成時と検索時で同じモデルtext-embedding-v4)を使ってください。 :::