matobaの備忘録

育児しながら働くあるエンジニアの記録

雰囲気だけ知りたい人のための「LangChain」の話

最近、ChatGPTのような技術を関連する情報を見てると、LangChainと呼ばれる技術を見聞きするようになりました。

今回は、「LangChainとは何か」「LangChainを使うと何ができるのか」といった話を軽く調べて整理していこうと思います。

私の場合、新しい技術を学ぶ際、最初は動かさずにドキュメントやコードを眺めて雰囲気を掴むのですが、今はその段階です。実際に動かしている人は勘違いしている内容にコメントもらえると喜びます。

本記事は見つかった記事を読みつつ、未来の自分に向けて現状の理解を整理したものになります。

LangChain とは

  • LangChainは、LLMを利用してサービスを開発したいときの便利ライブラリ
  • OpenAIが提供するAPIだけでもAIチャットサービスを開発できるが、開発中のよくある課題を解決するときに便利(らしい)

関連リンクです

LangChain の 便利なこと

  • LLMを使う時によく使う読み出しや読み込みのユーティリティが用意されている
  • LLMへのリクエスト(プロンプトと呼ばれる)のテンプレートを管理できる
  • 様々なLLMへのインターフェースを標準化できる。OpenAIのAPIからCohereやHugging Faceに切り替える、などができるらしい
  • LLMを組み合わせてアプリケーションを作るときの、枠組みを提供してくれる
  • LLMとの会話のやりとりをシリアライズする仕組みがある

疑問:よく使う外部呼び出しのユーティリティとは?

この辺にリストや用途があります。

Getting Started — 🦜🔗 LangChain 0.0.126

以下のような呼び出し先があります。

  • bing検索
  • Google検索
  • OpenWeatherMap
  • Wikipedia
  • Wolfram Alpha
  • Zapier

Zapierを呼び出せるってことは、Zapier経由で投稿できる全てがサクッと呼び出せてしまいそうですね。

また、Document Loaderという機能もありました。

Document Loaders — 🦜🔗 LangChain 0.0.126

これは既存のテキストデータをLLMと一緒に使う方法で、ここもたくさんのサービスを呼びだすユーティリティが用意されてるようです。ざっと見てると見たことがある名前がたくさんありました。以下は抜粋です。

  • Google Drive
  • Evernote
  • Notion
  • CSV
  • HTML
  • Email
  • Figma
  • Markdown
  • PDF
  • PowerPoint
  • ReadTheDocs Documentation

疑問:LLMってそんなにたくさんあるの?

この辺にリストがありました。

python.langchain.com

素人的には「たくさんあるなあ(語彙力)」という印象を受けました。

疑問:LLMとの会話のやりとりをシリアライズする仕組み?

サービスを開発しようとするをLLMとの会話の履歴をデータベースに保存したり、再読み込みしたり、ということが発生するのは予想できます。

会話履歴をPythonのdictのlistで出力できる&それを読み込めばオブジェクトを復元できるようですね。(試してないし、それで足りるのか不明ですが)

Getting Started — 🦜🔗 LangChain 0.0.126

終わり

私は、LangChainという名前をTwitterやイベントで見聞きしつつ、実際に触るようなまとまった時間を取れずに今に至ってました。とは言え、どういうものなのかは気になっていたので、ドキュメントや資料をざっと読んで情報を整理してみました。

今回は、雰囲気だけLangChainを調べました。せいぜい1hほどドキュメントや諸々を眺めた程度の知識ですが、読んだ方の1hを5minに圧縮できたら何よりです。

次は、実際に触ってみようと思います。(触った結果を記事にするかはその後の気分によります)

また、機会があれば、LangChainで何かしらの機能やサービスを開発してみたいですね。今回はこれで。

参考にしたページ