LangChainとは?すぐに使えるLLMのフレームワークを紹介
thumb_langchain_01
LangChainとは?すぐに使えるLLMのフレームワークを紹介
アンドエンジニア編集部
2024.02.14
この記事でわかること
LangChainはLLMを利用しアプリ開発を効率的に行えるように作られたフレームワーク
LangChainには、言語モデルをさらに利用しやすくするために様々な機能を備えている
LangChainの利用にはAPIキーが必須であり、APIは課金対象となっている

LangChain とは

img_langchain_01

LangChain「読み方:ラングチェーン」は、ChatGPTなどで使われているLLM(大規模言語モデル)を利用してアプリケーション作成を効率的に行えるように作られたフレームワークです。

開発元はChatGPTと同じOpenAI社と誤解されがちですが、Harrison Chase氏が立ち上げたオープンソースプロジェクトで、GitHub上の数百人の開発者によって作られました。

ChatGPTでは、最新の情報に対応していない、長文入力ができない、複雑な計算問題が苦手といった課題が残されていますが、LangChainを利用することで、こうした課題に対処することが可能になります。

この記事では、LangChainの使い方や機能、Pythonを用いたインストール方法、LangChainを用いたChat APIの機能拡張方法について紹介します。LangChainのDocumentは次のリンクを参照してください。

【参考】:Introduction | Langchain 【参考】:ChatGPT|OpenAI

ChatGPTとは?今話題のAIチャットボットの概要や仕組みを解説!

LangChainが対応する言語

 LangChainが対応するプログラミング言語は、PythonとTypeScriptの2種類です。(2023年8月時点)そこで、この記事ではPythonプログラムでLangChainを利用する方法を中心に解説します。

【参考】:プログラミング言語 Python 総合情報サイト - python.jp 【参考】:TypeScript:型の構文を持つJavaScript

PythonはAIに必須!AIエンジニアを目指すならPythonを学ぼう
TypeScriptとは?JavaScriptとの違いも解説!

LlamaIndexとLangChainの違い

LlamaIndexは、専門知識やデータなどの外部データをGPTに簡単に組み込むことができるライブラリです。 LlamaIndex単体でも、LangChainを介さずに簡単なQ&Aはできますが、以下紹介するようにLangChainの方が多機能なライブラリと言えます。

【参考】:LlamaIndex | Data Framework for LLM Applications

LangChainの主要機能

LangChainには、言語モデルをさらに利用しやすくするための様々な機能を備えています。以下、LangChainで何ができるのかについて一覧で解説をします。

▪Models:Modelsは、様々なモデル(大規模言語モデル、チャットモデル、Embeddingsモデル)を組み合わせて使用できる機能です ▪Prompt:Promptは、プロンプトの管理や最適化やシリアル化を行うための機能です。 ▪Indexes:PDFやExcel、CSVなどの外部データを用いて回答を生成できるようにする機能です。 ▪Chains:複数のプロンプトをチェーンのように繋げて、処理を連続して実行可能にする機能です。 ▪Agents:プロンプトの内容に基づいて、どのツールを組み合わせ、どのようなアクションを行うかを判断する機能です。 ▪Memory:LLMを利用したユーザとの対話履歴を記録し、必要に応じ再利用できる機能です。

【参考】:Modules | Langchain

プロンプトエンジニアリングとは?具体例や応用手法も徹底解説

LangChainとOpenAIをインストールする

img_langchain_02

ここでは、Pythonを用いてLang Chainをインストールする方法、およびOpenAIのライブラリをインストールする方法について紹介します。

開発環境としては、Windows 11 ProにPython 3.11.5がインストールされている前提で進めていきます。Pythonをまだインストールしていない方は、次のPython公式サイトを参考に、Pythonのダウンロードとインストールを済ませておいてください。

【参考】:Windows版Pythonのインストール: Python環境構築ガイド - python.jp

OpenAIのインストール

Pythonがインストールできたら、Pythonコマンドを用いてOpenAIのライブラリをインストールします。コマンドプロンプトを起動し、以下のコマンドを入力します。

〉pip install openai

 

OpenAIのライブラリーインストールが終了すると以下のメッセージが表示されます。

Successfully installed aiohttp-3.8.5 aiosignal-1.3.1 async-timeout-4.0.3 attrs-23.1.0 certifi-2023.7.22 charset-normalizer-3.2.0 colorama-0.4.6 frozenlist-1.4.0 idna-3.4 multidict-6.0.4 openai-0.27.9 requests-2.31.0 tqdm-4.66.1 urllib3-2.0.4 yarl-1.9.2

 

コマンドプロンプトとは?できることや使い方をわかりやすく解説!

LangChainのインストール

OpenAIのインストールと同様に、コマンドプロンプトからPython コマンドを用いて、LangChainをインストールします。

〉pip install langchain

 

Lang Chainのライブラリーインストールが終了すると以下のメッセージが表示されます。

Successfully installed PyYAML-6.0.1 SQLAlchemy-2.0.20 annotated-types-0.5.0 dataclasses-json-0.5.14 greenlet-2.0.2 langchain-0.0.275 langsmith-0.0.27 marshmallow-3.20.1 mypy-extensions-1.0.0 numexpr-2.8.5 numpy-1.25.2 packaging-23.1 pydantic-2.3.0 pydantic-core-2.6.3 tenacity-8.2.3 typing-extensions-4.7.1 typing-inspect-0.9.0

 

以上で、OpenAIとLang Chainのライブラリインストールは終了です。次に、OpenAIのAPIキーを取得します。

APIキーの取得

LangChain APIキーの取得を行う前に、OpenAIのアカウントを取得する必要がありますが、すでにOpenAIのアカウントを取得している方は、そのアカウントでOpenAIのサイトにログインします。ChatGPTを利用している方は、ChatGPTのアカウントでもログインできます。

【参考】:OpenAI Platform

img_langchain_03
【図】: OpenAI のログイン画面 

APIキーの生成

APIを利用する際に、APIキーが必ず必要になってきます。APIキーとは、APIにログインするための固有の識別子のことです。

 APIキーがあることによって、開発者やユーザはサービスの利用が可能になり、同時にAPI側ではその利用状況をモニターすることで悪用を検知できます。OpenAIのWebサイトでユーザ登録を済ませていれば、次のページから簡単にAPIキーの生成ができます。

■ 1.OpenAIのサイトにアクセス OpenAIのサイトにアクセスしたら、メニュー選択画面から、[API]を選択します。

img_langchain_04
【図】: OpenAI のログイン後画面 

■ 2. API reference 画面に移動 「Welcome to the OpenAI platform」の画面が表示されたら、上段のメニューから「API reference」を選択してクリックします。

img_langchain_05
【図】: OpenAI のメニュー選択画面 

■ 3. 「API Keys」を選択 次の画面が表示されたら、「Authentication」の見出し下にある「API Keys」をクリックします。

img_langchain_06
【図】: OpenAI のAPI Keys選択画面 

■ 4. APIキーの作成 「API Keys」の取得画面が表示されます。[+Create secret key]のボタンをクリックすると、さらに「Create new secret key」と出力画面が表示されますので、[Create secret key]ボタンをクリックします。

img_langchain_07
【図】: OpenAI の「API Keys」作成画面 

■ 5.APIキーの取得 「API Keys」が表示されたらキーの右にあるコピーボタンをクリックしてキーをコピーし、メモ帳などに貼り付けて保存してください。APIキーは後ほど、環境変数の登録時に使用します。

img_langchain_08
【図】: OpenAI のAPIキーの取得画面 

APIキーを環境変数に登録する

ChatGPTのAPIなどを利用する場合には、OpenAIから取得するAPIキーを利用します。またOpenAIではAPIのリクエストに応じて課金するため、APIキーの管理は重要です。うっかり、取得したAPIキーを盗まれると、他人に利用される可能性があります。

コマンドを利用して環境変数を登録する方法はありますが、漏洩リスクの低いWindowsのコントロールパネル上の環境変数に登録し、管理する方法を紹介します。

■ 1.環境変数を開く Windowsのスタートメニューを右クリックし、設定を選択します。システム設定の画面が表示されたら、左上の検索窓に環境変数と入力し、表示された選択肢から「環境変数を編集」を選択すると、以下の環境変数設定画面が表示されます。ユーザの環境変数画面の下から[新規(N)..]を選択します。

img_langchain_10
【図】:環境変数編集画面 

■ 2.環境変数を登録する 新しいユーザ変数を登録する画面が表示されますので、変数名には「OPENAI_API_KEY」と入力し、変数値には先ほど取得してコピーしておいたAPIキーを貼り付けてください。正しく入力したことを確認したら、[OK]ボタンをクリックして、環境変数設定画面を閉じ、Windowsを再起動します。

img_langchain_11
【図】: 環境変数の登録画面 

LangChainを試す

img_langchain_12

実際にLangChainのLLM機能を利用して、簡単なPythonプログラムを作成してみましょう。

LangChainを使用した生成AIプログラムを作る

ここでは、「東京の観光地紹介記事のタイトルをランダムに生成する」というプロンプトを用意しました。プロンプトは日本語で問題ありません。このコードで使用しているtemperatureはChatGPT のパラメータで、回答の精度を指示します。

一般的には0.2〜0.8の範囲で設定すると良いと言われますが、値を変えてファインチューニングを目指してみると良いでしょう。以下のコードをテキストにコピペし、拡張子をpyにして保存します。

import os
import openai
# openai.api_keyにOpenAIのAPIキーを入れる
openai.apikey = os.environ['OPENAIAPI_KEY']
from langchain.llms import OpenAI
llm = OpenAI(temperature=0.4)
print(llm(prompt=東京の観光地紹介記事のタイトルを生成してください。))

 

ここでは値を0.4にし、Pythonプログラム(プログラム名はsample04.py)を実行した結果、次の回答を得ました。プロンプトは自由に変更してみてください。

C:\Users××××>python sample04.py
  • 「東京の観光を楽しむ! 有名なスポットをご紹介」
  • 「東京のオススメスポット! 観光で楽しく過ごそう」
  • 「東京を存分に満喫! カオスな街の観光地をお届け」
  • 「東京をオススメ! 素晴らしいスポットをご紹介」
  • 「東京を楽しもう! 季節ごとのランドマークをお届け」

 

実行時にエラーが出たら

プログラムを実行して次のようなエラーが表示されたら、OpenAIの無料枠を使い切ってしまったということが考えられます。利用料金を支払う必要があるため、OpenAIのサイトにクレジット情報を登録し、料金を支払います。クレジットで支払いをしてから1時間前後でエラーがでなくなります。

Retrying langchain.llms.openai.completionwithretry..completionwith_retry in 4.0 seconds as it raised RateLimitError: You exceeded your current quota, please check your plan and billing details..

LangChainのAPIで仕事の効率を高めよう

img_langchain_13

この記事では、LLM(大規模言語モデル)を用いたアプリの開発に役立つライブラリ、LangChainの主な機能、インストール方法、APIキーの取得法、環境変数の設定方法、Pythonプログラムでの利用方法について紹介しました。

1から言語モデルを実現するのは非常に難しいのですが、LangChainを使うことで大規模言語モデルを簡単に実装できます。これからPythonを学ぶ方、Pythonプログラムで大規模言語モデルを実装してみたい方、参考になれば幸いです。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT