0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「LangChainについて勉強して」と言われたので勉強してみた

0
Posted at

最近、社内で「LangChainについて勉強しておいて」と言われました。
正直、最初は「ChatGPT API を叩けば良いんじゃないの…?」と思っていました。

でも、実際に触りながら調べていく中で、
「LLMを“アプリとして使う”にはもう一段階必要なんだな」
と理解できてきたので、その内容をまとめてみます。


LangChain とは?

一言で言うと、

LLM(大規模言語モデル)をアプリケーションに組み込むための“つなぎのフレームワーク”です。

ChatGPT の API は「入力 → 出力」の1回のやり取りは対応できますが、
アプリとして組み込むとなると、もう少し周辺要素が必要になります。

例えば:

  • プロンプト管理(複数環境・本番運用に対応したい)
  • 社内ドキュメントやファイルの参照
  • 会話の文脈や履歴を保持
  • 複数ステップの処理(要約 → 整形 → 再生成 など)

LangChainは、これらを共通のパターンとしてまとめています。
LLMの「前後の処理」を扱うための部品セットというイメージです。

参考:


なぜ必要なのか

ChatGPT API だけだと、「テキストを投げる → テキストが返る」 しかできません。
現実のアプリ開発では、もう少し構造が必要です。

必要なこと
プロンプトの整理 コード中にベタ書きすると破綻する
状態の保持 チャットボット・会話型UIなど
外部データの参照 社内Wiki、FAQ、マニュアル
複数処理の接続 推論 → 要約 → 整形 など

LangChainはこれらを 一貫した方法で組めるようにします。
特に 「プロンプトが管理資産になる」 というのは使ってみると実感しやすい部分です。


実際に触ってみた(最小コード例)

from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0.7)

prompt = PromptTemplate(
    input_variables=["topic"],
    template="以下のテーマを初心者向けにやさしく説明してください:{topic}"
)

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

print(chain.run("LangChain"))

分かったこと

  • PromptTemplate によってプロンプトの再利用性が上がる
  • LLMChain によって「入力→出力」という処理が部品化できる

「プロンプトをコードの外側に出す文化」 に近いように感じた。


RAG(外部データ参照)について

例えば、「社内Confluenceを検索して回答してほしい」という場合に必要なのが RAG です。

質問
→ ベクトルDBで類似文書を検索
→ 関連情報をLLMに渡す
→ 回答生成

LangChainはこの流れを 標準機能として提供しています。


まとめ

観点 内容
LangChainとは LLMとアプリをつなぐためのフレームワーク
必要な理由 プロンプト / 状態 / 外部データ / 処理フローを整理するため
実務メリット コードの保守性・再利用性・拡張性が上がる
RAGの役割 「検索してから生成する」ことで外部知識を使わせる

ChatGPT API だけでは見えなかった、「アプリとしての構造」 が見えてきました。


参考にした記事や資料まとめ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?