📚

OpenAI Ptyhon Library (Ver.1.0)でのEmbeddingsの取り扱い

2023/11/28に公開

OpenAIのPython LibraryがVer.1.0に上がった際、Embeddingsのコードの書き換えでつまずいたので、シェアさせてください。

結論から先に書くと、Ver.1でのembeddings計算は以下で動作しました。

from openai import OpenAI
client = OpenAI()
client.embeddings.create(input = [text], model=model).data[0].embedding

Ver.1以降の変更点と利用方法についてはGitHub: OpenAI-v1.0.0 Migration Guideにまとめられていましたが、Embeddingsの計算については触れられておらず、他の資料を探していたところ、OpenAI - Embeddings use-casesに辿り着きました。しかし、掲載されている以下のコードは一見、Ver.1を反映しているように見えましたが、動作しませんでした。以下が掲載されていたコードの抜粋です:

from openai import OpenAI
client = OpenAI()
client.embeddings.create(input = [text], model=model)['data'][0]['embedding']

最終的には、

client.embeddings.create(input = [text], model=model)['data'][0]['embedding']

の部分を

client.embeddings.create(input = [text], model=model).data[0].embedding

に修正することで動作しました。

気がつくと当たり前のことなのですが、私は半日くらい悩みました😓誰かのお役に立てば幸いです。

P.S.
中島聡さんがSlashGPTmigrated to openai 1.3.5を公開されていました。Ver.0.28から1に変更するときのポイントが分かりやすいと思います。

Discussion