2022 年末に公開されて以来、「ChatGPT」は一般にも知られるキーワードとなり、非常に盛り上がっています。
ChatGPT が使っている GPT-3.5 や GPT-4 などのモデルは、「大規模言語モデル(LLM:Large Language Model)」と呼ばれます。
2023 年現在、LLM 周辺のトピックは日々大きな話題となっています。
そんな中、LLM を使ったアプリケーションを開発するためのツールとして、「LangChain」が注目を集めています。
LLM を使ったアプリケーション開発の基礎を学びたい方は、LangChain で実際にアプリケーションを実装してみるのがおすすめです。
この講座では、LangChain の入門から始めて、実際に LLM(GPT)を使ったアプリケーションを開発していきます。
コース後半では、LangChain を使って、Web アプリケーションと Slack ボットという 2 つのチャットボットを実装します。
これらには「会話履歴を踏まえて応答する機能」や「プライベートな文書を検索して応答する機能」を実装します。
■この講座の 3 つのポイント
2022 年末に公開されて以来、「ChatGPT」は一般にも知られるキーワードとなり、非常に盛り上がっています。
ChatGPT が使っている GPT-3.5 や GPT-4 などのモデルは、「大規模言語モデル(LLM:Large Language Model)」と呼ばれます。
2023 年現在、LLM 周辺のトピックは日々大きな話題となっています。
そんな中、LLM を使ったアプリケーションを開発するためのツールとして、「LangChain」が注目を集めています。
LLM を使ったアプリケーション開発の基礎を学びたい方は、LangChain で実際にアプリケーションを実装してみるのがおすすめです。
この講座では、LangChain の入門から始めて、実際に LLM(GPT)を使ったアプリケーションを開発していきます。
コース後半では、LangChain を使って、Web アプリケーションと Slack ボットという 2 つのチャットボットを実装します。
これらには「会話履歴を踏まえて応答する機能」や「プライベートな文書を検索して応答する機能」を実装します。
■この講座の 3 つのポイント
内部の動作を意識して LangChain にしっかり入門します
LangChain の基礎で終わらず、Web アプリや Slack ボットを実装します
変化の激しいツールをキャッチアップして使う方法にもふれます
なお、OpenAI の Chat API の Function calling 機能についての解説も追加されています。
Function calling 機能の基本から、LangChain での応用的な使い方まで解説しています。
更新履歴
2023/07/03:エラーの対応として以下のレクチャーを追加
(追記)「Gradio の Hello World」で発生する可能性のあるエラーについて
(追記)エラー「AttributeError: module 'gradio' has no attribute 'ClearButton'」について
(追記)Render での Poetry のバージョンの指定について
2023/07/10:エラーの原因やより適切なコードについて、以下のレクチャーを追加
(追記)Agent の JSONDecodeError について
(追記)Slack から取得した履歴の reversed 処理について
2023/07/11:セクション「(アップデート)OpenAI の Chat API の Function calling 機能について」を追加
2023/07/25:レクチャー「(追記)「Gradio の Hello World」で発生する可能性のあるエラーについて」を更新
2023/09/02:レクチャー「(追記)「Index の実装」で発生する可能性のあるエラーについて」を追加
2023/11/03:以下のセクションを追加
(アップデート)プライベートな文書を検索して回答させる処理の解説資料
(アップデート)LangChain Expression Language (LCEL)
2023/11/22:text-davinci-003の廃止予定に関する更新
レクチャー「(追記)Completions APIで使用可能なモデルについて」を追加
レクチャー「このコースの前半で使用するソースコード」で共有しているGoogle Colabを更新
2023/11/24:レクチャー「(追記)RateLimitError について」を追加
2023/12/15:セクション「(アップデート)OpenAI の Chat API の Function calling 機能について」のGoogle Colabで使用するduckduckgo-searchのバージョンを更新
2024/02/21:レクチャー「(追記)Agent が Vector Store を検索する際に text-davinci-003 を使うことによるエラーについて」を追加
2024/03/18:レクチャー「(追記)LCEL の解説資料」を追加
このコースの概要や学習すること、対象者や前提知識を確認します。
このコースを受講するときの進め方について説明します。
OpenAI の大規模言語モデルの概要を学びます。
コース前半で学習に使う環境として、Google Colab を準備します。
OpenAI の API を使うのに必要な、API キーを発行します。
OpenAI の文章生成 API の 1 つである、Completions API にふれます。
OpenAI の文章生成 API の 1 つである、Chat API にふれます。
OpenAI Completions API や Chat API を使う上で重要な、トークン数と料金について学習します。
このセクションで学んだ知識を整理します。
LangChain を学ぶ上でも重要な、プロンプトエンジニアリングの概要を学習します。
LLM を使ったアプリケーション開発で登場する、プロンプトの要素とテンプレート化について学習します。
LangChain を学ぶ前に知っておきたい、プロンプトエンジニアリングの有名な手法にふれます。
LangChain の概要やユースケースを学びます。
アップデートの激しい新しい OSS をキャッチアップのポイントや、プロダクションで使うことのメリット・デメリットにふれます。
LangChain のモジュールの Models について、基本を学びます。
LangChain のモジュールの Prompts のうち、最も基本的な Prompt Template について学びます。
LangChain のモジュールの Chains について学び、いくつかの Chain にふれます。
ここまでに学んだ内容を整理して、公式ドキュメントとの対応を確認します。
Prompts のより高度な機能として、Output Parsers について学びます。
公式ドキュメントの特定バージョンをビルドする方法を紹介します。
このセクションで学ぶことを説明します。
LangChain のモジュールの Indexes について、そのモチベーションと使い方の基本を学びます。
Indexes で使われる、テキストのベクトル化の概要と、Open AI の Embeddings について学びます。
LangChain のモジュールの Memory について、そのモチベーションと使い方の基本を学びます。
LangChain のモジュールの Agents について学び、内部のプロンプトの動作を見てみます。
ここまでに学んだ LangChain のモジュールについて整理します。
LLM を使ったアプリケーションを開発する際に注意が必要な、敵対的プロンプトについて補足します。
LangChain で OpenAI の Chat API に特化した実装をする方法を学びます。
LangChain のソースコードを少しだけ読んでみて、ソースコードの雰囲気を味わいます。
このコースの後半で実施することを説明します。
このコース後半で Windows の場合に使用する WSL 2 のセットアップ方法を説明します。
Git や GitHub に慣れていない方のために、Git と GitHub の概要を説明します。
GitHub でこのコースで使用するためのリポジトリを作成します。
GitHub で作成したリポジトリをローカルに clone します。
おさえておきたい Git のコマンドを最小限学びます。
このコースでの Python およびパッケージ管理・仮想環境のセットアップの方針を説明します。
Python の特定バージョンをインストールするための準備として、asdf をインストールします。
asdf の使い方を学びながら、asdf で Python の特定のバージョンをインストールします。
asdf を使って、Python のパッケージ管理と仮想環境のためのツールである poetry をインストールします。
poetry init コマンドを使い、pyproject.toml を生成して、Python での実装の準備をします。
Python での実装の準備ができたことを確認するため、Hello World を実装します。
このセクションで実装するアプリケーションについて説明します。
Gradio をインストールして、Hello World を実施します。
Gradio でチャットボットのサンプルコードを動かしてみます。
python-dotenv を導入し、API キーなどを .env ファイルから環境変数に設定するようにします。
Gradio から LangChain で LLM(GPT)を使うよう実装します。
チャットボットに過去のやりとりを踏まえて応答する機能を実装します。
Web アプリケーションを動かすプラットフォームの基本や、PaaS の概要を学びます。
Web アプリケーションを公開する前に、大量アクセスに備えた対策として、Gradio の認証を設定します。
Render を使って Web アプリケーションを公開します。
Render の無料のインスタンスタイプを使う場合の制約について説明します。
Web アプリケーションの実装・公開で実施したことと、そのために必要な知識を整理します。
このセクションで実装する機能について説明します。
LangChain の Indexes を使い、プライベートな文書を検索して応答する機能を実装します。
Vector Store を Agent のツールとして必要に応じて使うように実装を修正します。
このセクションで実装した内容をまとめます。
Slack ボットの仕組みについて、基本を学びます。
Slack ボットの実装のため、Slack App を作成し、トークンを用意します。
Bolt をインストールして、Slack ボットの Hello World を実施します。
Slack ボットが LangChain を使って LLM(GPT)を使うようにします。
Slack ボットに過去のやりとりを踏まえて応答する機能を実装します。
Render に Slack ボットをデプロイして動かします。
このセクションのまとめとして、Slack ボットの実装で実施した内容や、そのために使った知識を整理します。
また、このコースの片付けについて説明します。
OpenAI の Chat API に追加された Function calling 機能の基本を学習します。
Function calling を LangChain で使う方法の基本として、OpenAI Functions Agent について学習します。
Function calling を応用した、文章からの属性の抽出やタグ付けについて学習します。
Function calling を応用した高度な Agent である OpenAI Multi Functions Agent について学習します。
LangChain の新しい実装スタイルである LangChain Expression Language(LCEL)の概要と実装例を学習します。
実際にアプリケーション開発で LangChain をどのように活用すべきかを解説します。
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.