PromptTemplate と LLMChain

LangChainにおける「PromptTemplate」と「LLMChain」は、プロンプト設計とモデル実行を結びつける基本的な構成要素です。以下に、それぞれの役割と使い方、そして連携の仕方を詳しく説明します。


1. PromptTemplate(プロンプトテンプレート)

概要

PromptTemplate は、動的なプロンプトを構築するためのテンプレート機能です。プロンプトの中に変数を埋め込むことで、同じ構造のプロンプトを使い回すことができます。

主な用途

  • ユーザー入力や外部情報に応じてプロンプトを自動生成

  • 複数の入力に対応する統一された出力形式を設計

  • 一貫したフォーマットによるプロンプトエンジニアリング

基本構文(Python例)

python
from langchain.prompts import PromptTemplate template = "以下の質問に答えてください:{question}" prompt = PromptTemplate( input_variables=["question"], template=template ) formatted_prompt = prompt.format(question="日本の首都はどこですか?")

補足事項

  • input_variables はテンプレート内で使用される変数名のリスト

  • .format() メソッドで実際の入力に置換


2. LLMChain(LLMチェーン)

概要

LLMChain は、プロンプトの生成(PromptTemplate)とLLM(Large Language Model)の実行を結びつけるチェーン構造です。

主な用途

  • プロンプトテンプレートに基づく一貫した出力生成

  • 入力から出力までのプロセスを簡潔に管理

  • 複数のコンポーネントを組み合わせたチェーンの一部として利用

基本構文(Python例)

python
from langchain.llms import OpenAI from langchain.chains import LLMChain llm = OpenAI(temperature=0.7) chain = LLMChain(llm=llm, prompt=prompt) response = chain.run("日本の首都はどこですか?")

説明

  • llm:使用する大規模言語モデル(OpenAI、Anthropic、HuggingFaceなど)

  • prompt:PromptTemplateインスタンス

  • .run():入力値を渡して実行


3. PromptTemplate と LLMChain の連携

実行の流れ

  1. PromptTemplate でユーザー入力に応じたプロンプトを生成

  2. LLMChain がそのプロンプトを LLM に渡して応答を取得

  3. 応答が .run() の戻り値として返る

図式的なイメージ

css
[User Input][PromptTemplate][LLMChain][LLM Response]

4. 応用例

チャットボット

python
template = "あなたは親切なアシスタントです。質問:{question}" prompt = PromptTemplate(input_variables=["question"], template=template) chain = LLMChain(llm=OpenAI(), prompt=prompt) response = chain.run("富士山の高さは?")

このコードで、LLMは「富士山の高さは?」という質問に対し、「親切なアシスタント」として回答します。


まとめ

コンポーネント 役割 主な機能
PromptTemplate プロンプトのテンプレート化 動的な変数埋め込み、再利用可能な構文設計
LLMChain 入力から出力までの処理チェーン プロンプトの生成とLLM実行の自動連携

LangChainを活用するうえで、この2つのコンポーネントは基本かつ重要な構成要素であり、後に紹介される「Chains」「Agents」「Tools」などの高度な構造とも連携していきます。

ChatGPT4o 生成日:2025/06/12