こんにちは、エクスチュアの石原です。
こちらは第3回の記事になっております。前回、前々回の記事をお読みになっていない方は、ぜひ併せてご確認ください。
LangChainのクイックスタートを実施していく「LangChainって何?」シリーズも今回で最後となります。前回の記事では現在のLLMのトレンドとなっているRAGやAgentについてご紹介させていただきました。ここまでの内容でアプリケーション開発の基礎となる部分は確認できました。
いよいよ最終回となる今回は作成したアプリケーションをAPIとして提供するにあたって便利なLangServeとアプリケーションのテストに役立つLangSmithをご紹介します。
今回の記事ではサーバーの構築を行うため、ローカル環境でのpythonで処理を実施していきます。
LangServe
LangServeは開発したLangChianチェーンを簡単にREST APIとして公開することが出来ます。
REST APIとは、ウェブアプリケーションやサービス間でデータを効率的に交換するためのプロトコル定義です。REST APIのアプリケーションは以前実行した状態に依存せず、クライアントとサーバ側が完全に独立しているという性質を有しています。そのステートレスな性質とシンプルなインターフェースにより、REST APIで提供されたサービスは開発者やユーザーにとって扱いやすいアプリケーションです。
それではここまでに作成してきたLangChainアプリケーションを公開していきましょう。
まずはインストールを行います。
|
次にアプリケーション用のサーバーを作成するには、serve.pyファイルを作成します。このファイルではアプリケーションを提供するためのロジックとして以下の 3 つで構成されています。
- 構築したチェーンの定義
- FastAPI アプリ
- チェーンにサービスを提供するルートの定義。(
langserve.add_routes)
|
Agentの部分をこれまでに作成してきたChainに置き換えて以下のコマンドで実行してみてください。(Quickstartに記載のコードだとchat_historyが読み込まれない問題があったので一部修正)
|
実行するとlocalhost:8000でサーバが立ちあがっていることが確認できます。
http://localhost:8000/agent/playground/にアクセスしてChainの実行を確認してみてください。
アクセスすると下記の画像のようなUIが構築されています。

これまでに作成してきたアプリケーションと同じ動作をすると思います。
次にクライアント側での処理を作成してみます。client.pyファイルを作成してみましょう。
|
これを使用すると、クライアント側で定義・実行されているかのように、LLMChainと対話できます。
|
これで、LLMを使用したREST APIアプリケーションを公開することが出来ました。こちらをWeb上に公開する場合は各種クラウドサービス上にデプロイするという方法があります。詳細についてはこちらをご参照ください。
LangSmith
LangsmithはLangChain社LLMOpsツールです。 Langsmithを使用するとLLMに送信されているプロンプトの管理などが簡単になります。また、アプリケーションへの実装も非常に簡単です。
使用するためにはLangChain社のアカウントが必要です。アカウント作成はこちら。
アカウント作成し、ログインすると以下のような画面になります。

langsmithを使用するためにはkeyが必要になります。サイドバーのSettingsよりCreate API Keyを選択し、鍵を作成してください。

作成した鍵とトレースの設定を環境変数に設定します。
|
その他の設定がなければdefaultプロジェクトに以下のような実行履歴がトレースされるようになります。この履歴にはユーザーがインプットした内容に加えて実行に使用したプロンプトや履歴などの情報も含まれており、LLMの生成に影響を与える情報が漏らさずに含まれているので、複雑なプロジェクトになるほどより便利に感じるようになるかと思います。

それぞれを開くと以下のように入力されたデータとその出力が確認できます。

LangSmithに関しては検証やテストにも使用できる機能が存在しています。さらなる機能についてはウォークスルーの内容も確認していただけると良いかと思います。
まとめ
本記事ではアプリケーションの運用を行う上で役立つLangServe、LangSmithについてご紹介しました。ここまでの全3回の記事でLLMを使用したアプリケーション開発は実施できるようになったのではないでしょうか。今回ご紹介した内容の詳細については公式ドキュメントをどうぞ。
第1回からご覧になっていただいた方がいましたら厚く御礼申し上げます。
シリーズは最後ですが、今後もLangChainのアップデートやLLMの最新ニュースをご紹介していく予定ですので、どうぞご注目ください。
エクスチュアはマーケティングテクノロジーを実践的に利用することで企業のマーケティング活動を支援しています。
ツールの活用にお困りの方はお気軽にお問い合わせください






