本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「LangChainについて自分なりに言語化したい。」を再編集したものです。
はじめに
本記事では、LangChain というフレームワークについて、自分自身が人に説明するときに困らないよう、概念を整理しながらまとめています。
最近の AI 技術は進化が速く、「まず全体像を掴む」ことが難しいため、本記事ではあえて専門的すぎる内容には踏み込まず、初学者でもイメージしやすいレベルで紹介することを意識しています。
記事の作成にあたっては、一部 AI のサポートも活用しながら、疑問点を都度確認しつつ進めました。
また執筆中に LangChain の大きなアップデートがあり、その内容は別途まとめる予定です。
今回はあくまで従来構造をベースに「ざっくりとした全体像を理解する」ことを目的としています。
LangChain をこれから触ってみたい方、あるいは名前だけ聞いたことがあるという方に、最初の取っかかりとなる情報を提供できれば幸いです。
LangChainとは
「エージェントとLLMを活用したアプリケーションを構築するためのフレームワーク」
引用:https://github.com/langchain-ai/langchain
公式ではもっと多機能な説明がありますが、個人的にはまだ理解しきれていなかったので、もう少しざっくり捉えてみます。
「LLMをただ”使うだけ”ではなく、"連結して動かす"ための仕組み」
RAGやシステムプロンプトなどAIのシステムにはAIからテキストを出力するだけでない機能が沢山有ります。
それを鎖のように連結させて使うということで理解しました。
頭の中で列車の連結が思い浮かびながら書いてます。
・ChatGPT のようなモデルに単発で質問するのではなく、
・外部ツールを使わせる
・複数ステップの処理を実行させる
・データベースや API と連携させる
といった「より複雑かつ応用的な AI アプリ」を簡単に作れるのが LangChain です。
これがあると何が嬉しいのか。
LLM をそのまま使うだけではできないことが、LangChain を使うことで簡単にできるようになります。
・プロンプト管理の標準化
・複雑になりがちなプロンプトを、部品として管理できる。
・自然言語がたくさんあって混乱しそうなところを整理できる。
・アプリの機能が増えても自然言語地獄にならない。
・(どの画面・どの機能でどのプロンプトを使っているか、コードベースで追いやすくなる)
・複数の LLM やツールを組み合わせられる
・検索 → 要約 → 整形 → 出力、といったワークフローをつなげられる。
・別の LLM を途中だけ使うこともできる。
・要約はGPTで、翻訳はGeminiなど
・外部データの活用がしやすい
・RAG(検索補完)やデータベースの参照を簡単に構築できる。
・ローカルもAPIがあれば、LangChainの流れに組み込める。
・エージェント機能で自動判断させられる
・LLM が「次に何をすべきか」を自律的に判断できるため、チャットボット以上のタスク処理が可能。
・LLMの手順を推論して実行できる。人間の言葉の裏まで汲み取ってくれる。
・LLM アプリのベストプラクティスが揃っている
・「セキュアな構成」「再利用できる構造」「例外処理」などAI アプリの“よくある悩み”をカバーしてくれる。
・LLMアプリを作る時に困る面倒なところが最初から用意されている。
これをどう使うのか。
LangChain の使い方を一言で言うと、
「LLM を使った処理を“チェーン(鎖)”として組み立てていく」
というイメージです。🚃🚃🚃🚃🚃
・例えば、
・ユーザーの質問を受ける
・検索して資料を探す
・その内容を要約する
・形式に沿って回答を生成する
これらをバラバラに作るのではなく、チェーンとして順番に実行させるコードを書くだけで、AI アプリが完成します。
よく使われるパターンとしては:
・RAG(検索連携)を持った FAQボット
・資料から自動要約を作るツール
・ファイルを読み込んで自律的に分析するエージェント
・API やデータベースと連動した業務システム
などがあります。
LangChainの構成要素について(この辺リネームされているかもしれないです。)
LangChainは、大きく5つの要素に基づいて構成されています。
1. Models(モデル)
1. OpenAIやAnthropicなどの LLM を簡単に利用できる統一インターフェース。
2. Prompts(プロンプト)
1. プロンプトテンプレートやメッセージの組み立てなどプロンプト管理の仕組み。
3. Chains(チェーン)
1.複数の処理をつなげて一連のワークフローにする仕組み。
LLM → 要約 → 出力整形、といった流れをひとまとめにできる。
4. Agents(エージェント)
1. LLM が「次のアクションを自律的に選択する」ための機能。
外部ツールの利用、判断の連続処理などが可能。
5. Tools(ツール)
1. 検索、計算、API、データベースなど、エージェントが呼び出せる外部機能群。
あとがき
AI について専門的な数式や機械学習の深い知識がなくとも、安全かつ簡単に LLM を使ったアプリケーションを作ることができるフレームワークです。
最近の AI アプリは要約や画像生成などが簡単にできる反面、技術的差別化が難しい印象があります。
しかし LangChain のようなフレームワークを活用すると、
・エージェントの自律性
・複数ツールとの連携
・外部データ活用(RAG)
・プロンプト管理の品質向上
といった、より高度な機能を組み込むことができ、“ただの生成 AI アプリ”から一歩抜けた開発が可能になると感じています。
と
はいえ、こうした優位性も時間が経つにつれて一般化していくはずです。
LangChainが浸透してどんどんAIアプリが進化してくると同じようなアプリがリリースされ続け、ユーザー側が困ってしまいます。
そのため、作り手がしっかりと意思を持って使ってもらうユーザーを考えながら開発することが重要のように私は思います。
参考文献:
・そろそろ知っておかないとヤバい? 話題のLangChainを30分だけ触って理解しよう!
https://qiita.com/minorun365/items/081fc560e08f0197a7a8
「LangChain がなんだ?」という最初の疑問に答えてくれる良い入門記事です。
ただし最終更新日が2023年6月20日のため、最新のLangChain とは仕様が異なる部分もあります。
そのため、この記事を参考にしつつ、公式ドキュメントやGitHub の最新情報も併せて調べることをおすすめします。
花田将規/FIXER
(はなだ しょうき)
新卒採用業務 → 営業と自治体プロジェクトリーダーを実施中です。
筋トレ、芸術、映画で僕の脳みそはできてます。
最近は専らどこかでブログを書いています。


この連載の記事
-
TECH
仕訳を生成AIが自動で行うプロンプトを作ってみた -
TECH
学生向けの生成AI講義で人気があったプロンプト演習3つ(+α) -
TECH
ユースケースが見つけやすい! 便利な「Microsoft 365 Copilot 活用ベストプラクティス集」を入手しよう -
TECH
自治体業務でどう使う? 生成AIアイデアソンに自治体職員が挑戦 -
TECH
生成AIで360°パノラマ画像を作る! 最新研究でやってみた -
TECH
RAGの精度を改善する現実的な方法4つ、AWS Summitで学んだ -
TECH
過去問から例題をAIで生成、データベーススペシャリスト試験に再挑戦 -
TECH
ウェビナーの構成・タイトル・告知、すべて生成AIに手伝ってもらった -
TECH
6種類のLLMに「ワンナイト人狼」をやらせてみた結果… -
TECH
システムエンジニア目線で見たプロンプトエンジニアリングのコツ -
TECH
アプリ開発、TypeScriptやCSSのコード作成もすべてGaiXerにお任せしてみた - この連載の一覧へ


