Welcome to LangChain — 🦜🔗 LangChain 0.0.188の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
LangChainは言語モデルによって強化されるアプリケーションの開発のためのフレームワークです。我々は、最もパワフルで差別化できるアプリケーションは言語モデルだけではないと信じていますが、以下のようなものでもあるでしょう:
- Data-aware: 言語モデルを別のデータソースに接続する
- Agentic: 言語モデルがその環境とやりとりできるようにする
LangChainフレームワークはこれらの原則に沿って設計されています。
これは、ドキュメントのPython固有の部分です。LangChainの純粋なコンセプトガイドに関しては、こちらをご覧ください。JavaScriptドキュメントについてはこちらをご覧ください。
使い始める
言語モデルアプリケーションを作成するためにLangChainを使い始めるにはこちらをご覧ください。
コンセプトと用語。
コミュニティのエキスパートによって作成されたチュートリアル。YouTubeで公開されています。
モジュール
これらのモジュールは、LLMで強化されたアプリケーションのビルディングブロックと考えられるコアの抽象化です。
それぞれのモジュールに対して、LangChainは標準的で拡張可能なインタフェースを提供します。また、LangChainは外部とのインテグレーションやすぐに利用できるエンドツーエンドの実装すらも提供します。
モジュールごとのドキュメントには、クイックスタートのサンプル、ハウツーガイド、リファレンスドキュメント、コンセプトガイドが含まれています。
モジュールは以下の通りです(簡単なものから複雑な順です):
- Models: サポートされるモデルタイプとインテグレーション。
- Prompts: プロンプトの管理、最適化、シリアライゼーション。
- Memory: メモリーは、チェーン/エージェントの呼び出し間で永続化される状態を指します。
- Indexes: アプリケーション固有のデータと結び付けられることで、言語モデルはさらにパワフルなものとなります。このモジュールには、外部データのロード、クエリー、更新に関するインタフェースとインテグレーションが含まれます。
- Chains: チェーンは(LLMや他のユーティリティの)呼び出しの構造化されたシーケンスです。
- Agents: エージェントは、ハイレベルの指示やツールセットに基づいて、LLMがハイレベルの指示が完了するまで繰り返しアクションを決定し、アクションを実行し、結果を観察するチェーンです。
- Callbacks: コールバックによって、すべてのチェーンの中間ステップを記録、ストリームすることができ、アプリケーション内部の観測、デバッグ、評価が容易になります。
ユースケース
一般的なLangChainユースケースのためのベストプラクティスとビルトインの実装です:
- Autonomous Agents: 自律エージェントは、目的を達成しようとする多くのステップを踏む長時間稼働するエージェントです。例にはAutoGPTやBabyAGIがあります。
- Agent Simulations: エージェントをの長期間の理由づけや計画能力を評価するために、エージェントをサンドボックスに置き、互いにどのようなインタラクションを行うのか、イベントにどのように反応するのかを観測することは効率的な方法となります。
- Personal Assistants: LangChainの主要なユースケースの一つです。パーソナルアシスタントは、アクションを行い、インタラクションを記憶し、皆様のデータに対する知識を持つ必要があります。
- Question Answering: もう一つの一般的なLangChainのユースケースです。特定のドキュメントに対する質疑応答は、回答を構成するためにこれらのドキュメント内の情報のみを活用します。
- Chatbots: 言語モデルはチャットが大好きであり、非常に自然な活用方法となっています。
- Querying Tabular Data: 構造化データ(CSV、SQL、データフレームなど)に対するクエリーを行うために言語モデルを使いたいのであれば読むことをお勧めします。
- Code Understanding: コードの解析に言語モデルを使いたいのであれば読むことをお勧めします。
- Interacting with APIs: APIとのやり取りでの言語モデルの活用は非常にパワフルです。最新の情報にアクセスし、アクションをとることが可能となります。
- Extraction: テキストから構造化された情報を抽出します。
- Summarization: 長いドキュメントを圧縮します。データ拡張生成の一種です。
- Evaluation: 従来のメトリクスで生成型モデルを評価することは困難です。有望なアプローチの一つが、評価のために言語モデル自身を活用するということです。
リファレンスドキュメント
LangChainのすべてのメソッド、クラス、インストール方法、インテグレーション環境に関する完全なドキュメントです。
エコシステム
LangChainはさまざまなLLM、システム、製品とインテグレーションします。一方、多くのシステムや製品がLangChainに依存しています。これによって、活気に満ち、繁栄するエコシステムが形成されています。
- Integrations: 他の製品とLangChainをどのように活用できるのかに関するガイド。
- Dependents: LangChainを使用しているリポジトリのリスト。
- Deployments: LangChainアプリケーションをデプロイするための手順、コードスニペット、テンプレートのリポジトリのコレクション。
その他のリソース
皆様のアプリケーションを開発する際に有用と考える追加のリソースです!
- LangChainHub: LangChainHubは、他のプロンプト、チェーン、エージェントを共有、探索できる場所です。
- Gallery: Kyrolabsの人々によってコンパイルされた、LangChainを活用する素晴らしいプロジェクトのコレクションです。インスピレーションやサンプル実装を得るのに有用です。
- Tracing: チェーンやエージェントの実行を可視化するためにLangChainでTracingを使用する際のガイドです。
- Model Laboratory: ベストなものと言えるアプリケーションの開発において、さまざまなプロンプト、モデル、チェーンを実験することは大きな割合を占めます。ModelLaboratoryはこれを容易にします。
- Discord: LangChainの全てを議論するために我々のDiscordにjoinしてください!
- YouTube: LangChainのチュートリアルとビデオのコレクション。
- Production Support: LangChainをプロダクションに移行するのであれば、より包括的なサポートを提供します。フォームに入力していただければ、専用のサポートSlackチャンネルをセットアップします。