LangChain
LangChainがLLMアプリケーション開発を簡素化する仕組みを学びます。AIモデルをリアルタイムデータに接続し、Ultralytics YOLO26をビジョンタスクに統合する方法を紹介します。
LangChainは、大規模言語モデル (LLMs)を活用したアプリケーション開発を簡素化するために設計されたオープンソースフレームワークです。GPT-4のようなLLMsは単独でも強力ですが、リアルタイムデータや特定のビジネスコンテキストを認識できず、分離された状態で動作することがよくあります。LangChainは、プロンプト、モデル、外部データソースなどのさまざまなコンポーネントを連携させ、洗練されたコンテキスト認識型アプリケーションを作成できるようにする橋渡し役として機能します。こうしたやり取りの複雑さを管理することで、LangChainは人工知能 (AI)システムが動的な入力に基づいて問題を推論し、アクションを実行できるようにします。
LangChainの主要コンポーネント#
このフレームワークは、自然言語処理 (NLP)のワークフローを強化するために連携する、複数のモジュール式の概念を中心に構築されています。
- チェーン: 基本的な構成要素です。チェーンは、LLMまたはその他のユーティリティへの呼び出しを順番に並べたものです。たとえば、単純なチェーンでは、ユーザー入力を受け取り、プロンプトエンジニアリングのテンプレートを使用して形式を整え、モデルに渡して応答を生成します。より複雑なチェーンでは複数の呼び出しを順序付け、一つのステップの出力を次のステップの入力として使用できます。
- エージェント: ハードコードされた順序に従うチェーンとは異なり、AIエージェントはLLMを推論エンジンとして使用し、実行するアクションとその順序を決定します。エージェントはAPIへのクエリ、Web検索、データベースへのアクセスを行い、最新の知識を必要とする質問に回答できます。
- 検索: モデルの応答を事実データに基づくものにするため、LangChainは検索拡張生成 (RAG)を容易に実装できます。これは、ユーザーのクエリに基づいてベクトルデータベースから関連するドキュメントを取得し、それらをモデルのコンテキストウィンドウに入力する仕組みです。
- メモリ: 標準的なLLMはステートレスであり、過去のインタラクションを忘れてしまいます。LangChainは、チャットボットが会話中のコンテキストを保持できるメモリコンポーネントを提供し、人間の対話に似た継続性を実現します。
実世界での利用例#
LangChainは、さまざまな業界で生成AIを実験的なノートブックから本番環境へ移行するうえで重要な役割を果たします。
-
データとチャット (RAG): 最も一般的な用途の一つは、エンタープライズ検索です。企業はLangChainを使用して、社内ドキュメント、PDF、技術マニュアルを検索可能なインデックスに取り込みます。従業員が質問すると、システムは関連する段落を取得してLLMに入力するため、回答は幻覚によるものではなく、正確で会社のデータに基づいたものになります。これにより、組織内の知識蒸留が大幅に向上します。
-
マルチモーダル解析: LangChainは、テキストとコンピュータービジョン (CV)などの他のモダリティを組み合わせたワークフローをオーケストレーションできます。たとえば、セキュリティシステムで物体検出を使用して許可されていない人物を特定し、その後LangChainエージェントを起動してインシデントレポートを作成し、監督者にメールで送信できます。
コンピュータービジョンとの統合#
構造化された視覚データと言語推論の相乗効果は、強力な開発領域です。開発者は、Ultralytics YOLO26のような高性能モデルを使用して、画像から物体数、クラス、位置などの詳細情報を抽出し、この構造化データをLangChainワークフローに渡して、さらなる解析や自然言語による説明に利用できます。
以下のPythonスニペットは、Ultralyticsモデルを使用して検出されたクラス名を抽出し、後続の言語チェーンに入力できるテキストベースのコンテキストを作成する方法を示しています。
from ultralytics import YOLO
# Load the YOLO26 model to generate structured data for a chain
model = YOLO("yolo26n.pt")
# Run inference on an image URL
results = model("https://ultralytics.com/images/bus.jpg")
# Extract detection class names to feed into a LangChain prompt
detections = [model.names[int(c)] for c in results[0].boxes.cls]
# Format the output as a context string for an LLM
chain_input = f"The image contains the following objects: {', '.join(detections)}."
print(chain_input)重要な用語の区別#
LangChainと、LangChainがオーケストレーションするテクノロジーを区別することが重要です。
- LangChainとLLMsの比較: LLM(例: OpenAIのGPT-4やAnthropicのClaude)は、テキストを処理および生成する「脳」です。LangChainは、その脳をデータ前処理パイプライン、API、ユーザーインターフェースに接続する「足場」またはインフラストラクチャです。
- LangChainとプロンプトエンジニアリングの比較: プロンプトエンジニアリングは、モデルから最適な結果を得るためのテキスト入力の作成に重点を置きます。LangChainはこれらのプロンプトの管理を自動化し、モデルに送信する前にデータをプログラムで埋め込む動的なプロンプトテンプレートを利用できるようにします。
堅牢なAIシステムの構築を目指す開発者にとって、LangChain公式ドキュメントでは技術的な詳細を深く掘り下げて確認でき、Ultralyticsドキュメントでは、これらのインテリジェントなワークフローに最先端のビジョン機能を統合するために必要なツールを提供しています。さらに、Ultralytics Platformを活用して、こうした高度なマルチモーダルシステムに供給するデータセットとトレーニングパイプラインを管理できます。









