LangChain
LLMと、その他のサービス(DB, ブラウザ, youtubeなど)との連携を主な目的としたライブラリ
連携の司令塔のような存在
データフローとしてはLLMと連携サービスの間を行ったり来たりすることになる。
https://scrapbox.io/files/657fc648a1b21600230842bb.png
このような処理を各サービスのAPIを使ってゼロベースで開発すると相当なコード量になる。
LangChainはそこを抽象化し、数行のコードで実現させてくれる
機能について
LangChainには、次の6つの機能がある。
Model I/O
異なる大規模言語モデルを組み合わせて利用可能にする機能
Retrieval
PDFやCSVなどの外部データを用いた回答を可能にする機能
Chains
複数のプロンプトの実装をコントロール可能にする機能
Memory
処理途中の回答や常体の保持を可能にする機能
Agents
大規模言語モデル自体がどのようなアクションを取るかを決定可能にする機能
Callbacks
大規模言語モデルを用いたシステム開発におけるロギング、モニタリング、ストリーミングを効率的に管理するための機能
Agentsについて
以下の4つの主機能がある。
Tools
Agentが外界とやり取りをするために用意された関数
Agents
プロンプトの内容に応じてツール(Tools)を使い分ける
自動で与えられたタスクに取り組んでくれるロボット機能。
Toolkits
Agent Executor