LangServeによるLangChain APIのデプロイ

LangChainのLangServeは、LangChainで構築したチェーン(Chain)やエージェント(Agent)をAPIとしてデプロイできる仕組みです。これは、モデルの推論処理をWeb APIとして公開することで、他のアプリケーションやシステムと連携しやすくするための仕組みです。

以下に「LangServeによるLangChain APIのデプロイ」について詳しく説明します。


LangServeとは

LangServeは、LangChainのチェーンやエージェントをFastAPIベースのサーバーとして立ち上げるツールです。
LangChainプロジェクトをPythonモジュールとして記述することで、LangServeが自動的にAPIエンドポイントを生成します。


主な特徴

特徴 内容
API自動生成 チェーンやエージェントに基づいてRESTful APIを自動生成
Web UI提供 ローカルホストでSwagger UIやLangServe独自UIを提供
シンプルな構成 chain.yamlmain.pyを使って簡単に構成可能
デバッグしやすい 入出力ログやメタ情報を可視化できる

LangServeによるデプロイ手順

1. LangChainプロジェクトの作成

まず、LangChainでチェーンまたはエージェントを作成します。以下はシンプルなチェーンの例です:

python
# chains/hello_chain.py from langchain.chains import LLMChain from langchain.prompts import PromptTemplate from langchain.llms import OpenAI prompt = PromptTemplate.from_template("こんにちは、{name}さん!") llm = OpenAI() chain = LLMChain(llm=llm, prompt=prompt)

2. main.pyでAPIエクスポート準備

python
# main.py from chains.hello_chain import chain from langserve import add_routes from fastapi import FastAPI app = FastAPI() add_routes(app, chain, path="/hello")

3. サーバーの起動

ターミナルで以下を実行:

bash
uvicorn main:app --reload

すると、以下のAPIが自動生成されます:

  • POST /hello/invoke(チェーンの実行)

  • POST /hello/stream(ストリーム出力)

  • GET /hello/openapi.json(OpenAPIスキーマ)

  • GET /hello/docs(Swagger UI)


LangServeのWeb UI

LangServeは、ローカルのWeb UIも提供します。

  • /hello/playground:チェーンの動作確認やプロンプトテストが可能

  • /hello/docs:API仕様をSwagger形式で閲覧・試行可能


LangServeの用途例

  • LLMベースのチャットボットAPIを社内Webサービスとして提供

  • チェーンをベクトルDBや外部APIと連携させたエージェントとして提供

  • RAG(Retrieval-Augmented Generation)処理をREST APIとして公開


LangServe + LangChainHubとの連携

LangServeは、LangChainHubからチェーン定義を直接読み込むことも可能です。LangChainHubはチェーンやプロンプトの公開・共有プラットフォームであり、以下のように呼び出せます:

python
from langchainhub import get_chain chain = get_chain("user/sample-chain@latest")

まとめ

LangServeは、LangChainで作成したLLMチェーンやエージェントを手軽にREST APIとしてデプロイできる強力なツールです。開発者が迅速にプロトタイピングし、他のサービスと連携させるためのインターフェースとして重要な役割を果たします。

ChatGPT4o 生成日:2025/06/12