Shikata Ga Nai

Private? There is no such things.

第65回:LangChainの基本構造

Hello there, ('ω')ノ

🧠 はじめに:LangChainってそもそも何?

LangChain(ラングチェーン)は、
OpenAIのような大規模言語モデル(LLM)を、
より実用的なアプリケーションに組み込むためのPythonベースの開発フレームワークです。

ChatGPTなど単発の応答だけでなく、
✅ データベースとの連携
✅ 外部ツールの呼び出し
✅ ステップごとの処理(思考の流れ)
…などをチェーン構造でつなぐことで、
本格的なAIアプリケーションが構築できるのがLangChainの強みです。


🔧 1. LLMチェーンとは?【基本の考え方】


🔗 チェーン = 複数の処理を“つなぐ”構造

LangChainでは、
AIへの入力→処理→出力を「チェーン(Chain)」として構成します。

たとえば:

【ユーザー入力】
 ↓
【プロンプトテンプレートで構成】
 ↓
【LLMによる応答生成】
 ↓
【出力整形 or 次の処理へ渡す】

✅ このように、処理を「ブロック化&順番化」するのが、LangChainの基本構造です。


🧱 2. 最もシンプルなLLMChainの実装


🧪 必要なライブラリをインストール

pip install langchain openai

🧩 ① 最小構成のコード(基本の3行)

from langchain.chat_models import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# 1. LLMの定義
llm = ChatOpenAI(model_name="gpt-3.5-turbo")

# 2. プロンプトテンプレートの定義
prompt = PromptTemplate.from_template("商品名:{product} のキャッチコピーを作ってください")

# 3. LLMChainの作成
chain = LLMChain(llm=llm, prompt=prompt)

# 実行
result = chain.run(product="魔法の冷却マット")
print(result)

✅ 実行結果(例)

「ひんやり快眠、夢までクールに。魔法の冷却マットで夏の夜も快適に!」

📦 3. LLMChainの内部構造イメージ

┌─────────────────┐
│  PromptTemplate │  ← プロンプトのテンプレート
└────┬────────────┘
     ↓
┌─────────────────┐
│     LLM(GPT)   │  ← モデルで処理
└────┬────────────┘
     ↓
┌─────────────────┐
│     出力(Text)  │  ← 応答結果を受け取る
└─────────────────┘

LangChainでは、この「テンプレート→モデル→出力」の流れを
1つのチェーンとしてパッケージ化できます。


🛠️ 4. 応用:入力を複数指定するプロンプトテンプレート


prompt = PromptTemplate(
    input_variables=["product", "target"],
    template="商品名:{product} のキャッチコピーを、{target} 向けに考えてください。"
)

chain = LLMChain(llm=llm, prompt=prompt)

result = chain.run({"product": "魔法の冷却マット", "target": "子育てママ"})
print(result)

✅ 出力例:

「ママも赤ちゃんもぐっすり快眠!“魔法の冷却マット”で夏の夜も安心です。」

🧠 5. LLMChainをどう使う?


✅ よくある活用シーン

用途 説明
📝 要約生成 入力テキストを読んで3行でまとめるなど
🧑‍🎓 問題自動作成 教材や内容をもとに、クイズやテスト問題を自動生成
📢 広告文/SNS投稿文の自動生成 商品情報やニュースをもとに文章化
📄 書類レビュー(次回以降で解説) 文書から要点抽出・分類・リスク検出など

🎁 まとめ:LLMChainは「AIの基本操作ユニット」

✅ LangChainは、LLMを実務で活用するための“接着剤”のような存在。
✅ その中核となるのが「LLMChain」であり、
 プロンプトとモデルの“橋渡し役”をしてくれます。

✅ まずはこの基本形を理解すれば、
 LangChainのより高度な機能(RAG、Tool連携、マルチステップ推論など)にもスムーズに進めます!

Best regards, (^^ゞ