🦜️🔗LangChain : モジュール : 検索 – テキスト埋め込みモデル (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/04/2023
* 本ページは、LangChain の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
🦜️🔗 LangChain : モジュール : 検索 – テキスト埋め込みモデル
INFO : 組み込みの統合とテキスト埋め込みモデル・プロバイダーのドキュメントについては 統合 にアクセスしてください。
Embeddings クラスはテキスト埋め込みモデルとインターフェースをとるために設計されたクラスです。多くの埋め込みモデル・プロバイダーがあります (OpenAI, Cohere, Hugging Face 等) – このクラスはそれらすべてに対する標準インターフェイスを提供するように設計されています。
Embeddings はテキストの断片のベクトル表現を作成します。これは役立ちます、何故ならばそれはテキストについてベクトル空間で考えることができて、ベクトル空間で最も類似しているテキストの断片を検索する意味検索のようなことを行なうことできることを意味するからです。
LangChain の基底 Embeddings クラスは 2 つのメソッドを公開しています : ドキュメントの埋め込み用に一つとクエリーの埋め込み用に一つです。前者は入力として複数のテキストを受け取り、後者は単一のテキストを受け取ります。これらを 2 つの別のメソッドとした理由は、幾つかの埋め込みプロバイダーが (検索される) ドキュメント vs (検索クエリー自体である) クエリー用の異なる埋め込みメソッドを持っているためです。
Get started
セットアップ
まず、OpenAI Python パッケージをインストールする必要があります :
pip install openai
API へのアクセスは API キーを必要とします、これはアカウントを作成して ここ にアクセスすることで取得できます。キーを持てば以下を実行することでそれを環境変数として設定したいです :
export OPENAI_API_KEY="..."
環境変数として設定することを好まない場合、OpenAI LLM クラスを初期化するとき openai_api_key 名前付きパラメータを通してキーを直接渡すことができます :
from langchain.embeddings import OpenAIEmbeddings
embeddings_model = OpenAIEmbeddings(openai_api_key="...")
それ以外ではパラメータなしで初期化できます :
from langchain.embeddings import OpenAIEmbeddings
embeddings_model = OpenAIEmbeddings()
embed_documents
テキストのリストを埋め込む
embeddings = embeddings_model.embed_documents(
[
"Hi there!",
"Oh, hello!",
"What's your name?",
"My friends call me World",
"Hello World!"
]
)
len(embeddings), len(embeddings[0])
(5, 1536)
embed_query
単一クエリーを埋め込む
他のテキストの埋め込み断片と比較する目的でテキストの単一断片を埋め込みます。
embedded_query = embeddings_model.embed_query("What was the name mentioned in the conversation?")
embedded_query[:5]
[0.0053587136790156364, -0.0004999046213924885, 0.038883671164512634, -0.003001077566295862, -0.00900818221271038]
以上