スキップしてメイン コンテンツに移動

【LangChain v0.3完全対応】Pythonで始めるLLMアプリ開発入門

【LangChain v0.3完全対応】Pythonで始めるLLMアプリ開発入門

はじめに

「ChatGPT APIを使えばチャットボットが作れる」というのは知っていても、実際に業務レベルのアプリケーション(社内文書検索、エージェント、長文要約など)を作ろうとすると、プロンプトの管理やメモリの実装など、APIを叩くだけでは解決できない多くの課題に直面します。

そこで登場するのがLangChainです。LLMアプリケーション開発のデファクトスタンダードとなっているこのフレームワークを使えば、複雑なAI処理を驚くほど簡単に実装できます。本記事では、最新のv0.3系をベースに、LangChainの基礎知識と最初の一歩を解説します。

LangChainとは何か?

Definition

大規模言語モデル(LLM)を利用したアプリケーション開発を効率化するための「糊(のり)」の役割を果たすPython/JavaScriptライブラリです。

LangChainは、LLM単体ではできないことを実現するためのコンポーネントを提供します。

  • Chain: 複数の処理(入力→推論→出力加工)を連鎖させる。
  • Agent: AIにツール(検索、計算機など)を使わせて自律的に行動させる。
  • Memory: 会話のコンテキストを保持する。
  • RAG: 外部データを検索して回答に含める。

環境構築とインストール

まずは必要なライブラリをインストールしましょう。最近のバージョンではパッケージが細分化されています。

# コアライブラリ
pip install langchain langchain-core

# OpenAIを使う場合(APIキーが必要)
pip install langchain-openai

# Local-LLM (Ollama)を使う場合
pip install langchain-ollama

今回は、無料で使えるOllama (Llama 3) をバックエンドにして進めます。OpenAIを使う場合も数行変えるだけで対応可能です。

最初のコード:モデルの実行

最も基本的な「LLMに質問して回答を得る」処理を書いてみましょう。

from langchain_ollama import ChatOllama

# モデルの初期化
llm = ChatOllama(model="llama3")

# 推論の実行 (invokeメソッド)
response = llm.invoke("Pythonを学ぶメリットを3つ教えて")

# 結果の表示
print(response.content)

たったこれだけです。ChatOpenAI に書き換えれば、そのままGPT-4で動きます。この「モデルの差し替えやすさ」がLangChainの大きな魅力の一つです。

なぜ生のAPIではなくLangChainを使うのか

「requestsでAPI叩けばいいじゃん」と思うかもしれません。しかし、LangChainを使うメリットは以下の点にあります。

1. 統一インターフェース (Runnables)

OpenAI, Anthropic, Ollamaなど、各社で異なるAPI仕様を統一的なインターフェース(invoke, stream, batch)で扱えます。コードのポータビリティが劇的に向上します。

2. プロンプト管理の体系化

文字列連結でプロンプトを作るのはバグの温床です。PromptTemplateを使えば、変数を安全に埋め込み、テンプレートとして再利用・管理ができます。(次回詳しく解説します)

まとめ

LangChainは、LLMアプリ開発における「Spring Framework」や「Ruby on Rails」のような存在です。最初は用語が多くて戸惑うかもしれませんが、基本概念さえ押さえれば、開発速度は何倍にも上がります。

Next Step

次回は、動的な入力を扱うための「PromptTemplate」と、出力をPythonオブジェクトとして受け取るための「OutputParser」について解説します。

まずは pip install langchain から始めてみましょう!

このブログ記事はAIを利用して自動生成されました。

コメント