LangChainを使うと、大規模言語モデルの機能を拡張し、より便利なアプリを開発できます。この記事では、
・LangChainの特徴や主な機能
・Pythonを用いたLangChainのインストール方法
・Chat APIと組み合わせて使う方法
について解説します。アプリ開発に興味がある方、開発に関わる方はぜひ参考にしてください。
LangChainとは?
LangChainとは、ChatGPTなどの大規模言語モデルの機能を拡張できるライブラリです。言語モデルを使用したアプリケーションを開発する際にLangChainを使うことで、より高度な機能を実装することが可能です。
一般的な言語モデルでは、長文のプロンプトの送信や、回答する内容に最新の情報を含めることが難しい場合があります。LangChainを利用すれば、これらの機能を追加してアプリを開発できます。
Pythonでの利用がおすすめ
LangChainはPythonやJavaScript、TypeScriptなどのプログラミング言語で利用できます。Python版ではLangChainに含まれている全ての機能が利用できるため、Pythonでの利用がおすすめです。
\21万以上のオンラインコースから選べる!/
Udemyで講座を探すLangChainの主な機能
LangChainには、言語モデルをより便利にするための様々な機能が含まれています。LangChainの主な機能は次の通りです。
Models:異なるモデルを組み合わせ
Modelsは、様々なモデルを組み合わせて使用できる機能です。
大規模言語モデル(LLM)には、OpenAI社が開発したGPT-3や、Google社のBERTなど複数の種類があります。LangChainではLLMやチャットモデル、テキスト埋め込みモデルなど様々なモデルを利用することが可能です。
LangChainに組み込まれたモデルを使うと、コーディングなどの手間が省けます。
Prompt:プロンプトの管理・最適化
Promptは、プロンプトの管理や最適化を行うための機能です。
大規模言語モデルを使用したアプリ開発では、プロンプトに関する機能を実装する必要があります。LangChainにはプロンプトの管理や最適化、シリアル化などの機能がパッケージ化されているため、コーディングの負担を軽減することが可能です。また、複数名のチームで開発する際に、記述方法を統一できます。
Indexes:外部データの利用
Indexesは、外部データを利用するための機能です。PDFやExcel、CSVなど外部のデータをもとに回答を生成できるようになります。
一般的に、ChatGPTに指示を出す際は、文章によるプロンプトの入力が必要です。LangChainを用いて機能を拡張すると、外部データを使用してより効率的に指示を送ることができます。
Chains:複数のプロンプトを実行可能に
Chainsとは、複数のプロンプトを実行するための機能です。
通常の言語モデルでは、ユーザーが入力したプロンプトに対してAIによる回答が出力されるという流れが繰り返されます。一方、Chainsの機能を用いると、AIが生成した回答を次のプロンプトに含めて入力できます。
例えば、文字数の多いテキストを要約する際に、まず元の文章をいくつかのパートに分けてそれぞれ要約します。さらに、各パートの要約を入力として、全体の要約を出力できます。複数のプロンプトを実行すると、より正確な回答を得られる場合があります。
Agents:複数のツールを組み合わせ
Agentsは複数のツールを組み合わせて、必要な処理を実行する機能です。
例えば、情報収集を行うための検索エンジンと、グラフを作成するためのPythonコードなどを組み合わせて活用できます。必要な情報を収集し、正しいグラフが作成されるまで修正を繰り返すなどの処理が可能です。
また、言語モデルに与えた複数のツールの中から、実行したいタスクに応じた最適なツールを自動で選ばせることもできます。
Memory:履歴を保持
Memoryとは、言語モデルが出力した回答の履歴を保持し、必要に応じて再度活用できる機能です。Memoryには、短期記憶と長期記憶と呼ばれる2種類の形式があります。
短期記憶は、一つのやりとりの中でデータを保持する機能です。入力した文章を要約する処理などで短期記憶が使用されます。
長期記憶は、複数のやりとりでデータを保持する機能です。ユーザーとの対話中に得た情報をもとに記憶を更新し、その後のやりとりに反映できます。
LangChainを使ってChat APIの機能を拡張しよう!
LangChainを用いると、複数のツールの連携など、Chat APIの機能を拡張することが可能です。ここでは、Pythonを用いたインストール方法とプログラムの作成方法を紹介します。
※以下の解説では、Windows 11 HOME、Python 3.11.4の開発環境を使用しています。
インストール
プログラム作成の準備としてOpenAIとLangChainのインストール、OpenAIのAPIキーの発行・設定が必要です。
Pythonのインストールコマンド「pip install」を用いて、OpenAIとLangChainのライブラリをインストールしましょう。
1 |
pip install openai |
1 |
pip install langchain |
次に、OpenAIの公式サイト(https://openai.com/)にアクセスし、画面上部のメニューから「Developers」→「API reference」をクリックしましょう。
画面右上の「Sign up」をクリックし、OpenAIのアカウントを作成します。すでにアカウントを持っている場合は「Log in」からログインしてください。
ログイン後の画面で、右上に表示される「View API keys」をクリックします。
次の画面で、「+ Create new secret key」ボタンをクリックすると、OpenAIのAPIキーを発行できます。
発行されたAPIキーの右側にある緑色のボタンをクリックすると、クリップボードにコピーできます。
発行したAPIキーを、以下のPythonコマンドを用いて設定しましょう
1 2 |
import os os.environ["OPENAI_API_KEY"] = "この部分に先ほどコピーしたAPIキーを入力" |
以上で、準備は完了です。
プログラムを作成
LangChainでOpenAIのモデルを使用する例として、予め作成したプロンプトのテンプレートをもとに文章を要約するプログラムを紹介します。
サンプルとなるPythonのコードは次の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from langchain import PromptTemplate from langchain.llms import OpenAI from langchain import LLMChain # 言語モデルとしてOpenAIのモデルを指定 llm = OpenAI(model_name="text-davinci-003") # プロンプトのテンプレートを作成 template = "次の文章を要約してください。{original_sentences}" # プロンプトのテンプレート内にある要約前のテキストを変数として設定 prompt = PromptTemplate( input_variables=["original_sentences"], template=template, ) # プロンプトを実行させるチェーンを設定 chain = LLMChain(llm=llm, prompt=prompt,verbose=True) # チェーンの実行および結果の表示 print(chain("★この部分に要約したい文章を入力★")) |
要約したい文章を指定する部分にテキストを入力し、コードを実行した結果は次の通りです。
要約前の文章
AIは様々な分野で応用されている技術です。近年ではスマートフォンのアプリなどで手軽にAIの機能を利用できる機会が増え、幅広いユーザーから活用されています。検索エンジンや画像認識、自動運転、音声によるテキスト入力などが主な活用例です。今後、ビジネスや学習、研究など多くの場面でAIの活用が広がっていくことが予想されます。
回答として出力された要約
AIは様々な分野で利用されつつあり、スマートフォンなどでも利用が可能である。検索エンジン、画像認識、自動運転、音声によるテキスト入力などが主な利用例となっている。今後、ビジネス、学習、研究など多くの場面で活用が広がると予想される。
上記のコードはあくまでもLangChainの使い方の一例です。プロンプトのテンプレートやチェーンの内容などを変更することで、様々な拡張機能を実装できます。
LangChainは、大規模言語モデルを用いたアプリ開発に役立つライブラリです。通常の言語モデルでは実現が難しい機能も、LangChainを使えば簡単に実装できます。アプリ開発に携わる方は、ぜひLangChainを使って言語モデルの機能を拡張しましょう。
最新情報・キャンペーン情報発信中