mei_13のPython講座 ロゴ

【解説】LLM開発の心強い味方、LangSmithで「中身の見える」AIアプリを作ってみませんか?




LLM開発の心強い味方、LangSmithで「中身の見える」AIアプリを作ってみませんか?


Yukiのアイコン
【Yuki】 Hirokiくん、こんにちは。今日はPythonを使ってAIアプリを開発するときに、とっても助けになる「LangSmith(ラングスミス)」というツールについてお話ししようと思います。AIのプログラムって、書いた通りに動いているはずなのに、どうしてその回答が出てきたのか分からなくて困ること、ありませんか...?


Hirokiのアイコン
【Hiroki】 Yukiさん、こんにちは!あります、あります。プロンプトを変えてみても、何が原因で結果が変わったのか、ログを追いかけるだけで一苦労なんです。LangChainは少し触ってみたんですけど、中身がブラックボックスになりがちで。


Yukiのアイコン
【Yuki】 そうですよね。わたしも、プログラムが複雑になってくると、自分の書いたコードが意図通りに動いているか不安になることがあります。LangSmithは、そんな「AIの思考プロセス」を可視化してくれるツールなんです。これを使うと、まるで見えない糸を辿るように、AIが何を考えてどう動いたのかが手に取るように分かるようになるんですよ。


Hirokiのアイコン
【Hiroki】 「思考プロセスの可視化」ですか!それは心強いですね。具体的にどんなことができるツールなんですか?

LangSmithでできること:トレースとデバッグ


Yukiのアイコン
【Yuki】 一番の大きな機能は「トレース」だと思います。LangChainなどを使って構築したAIアプリの実行過程を、一本の線のように繋げて記録してくれる機能です。どのステップで、どんな入力があって、どんな出力が返ってきたのか。さらに、APIの呼び出しにかかった時間や、消費したトークン数、コストまで一覧で見ることができます。


Hirokiのアイコン
【Hiroki】 へぇー!いつもターミナルに print文をたくさん書いてデバッグしていた僕からすると、夢のようなツールですね。


Yukiのアイコン
【Yuki】 ふふ、そうですよね。わたしも以前はよく print文で画面を埋め尽くしてしまっていました...。でも、LangSmithのダッシュボードを見れば、ネストされた複雑なチェーンの動きもグラフィカルに確認できるんです。特に、最新のモデルである gemini-3-flash-preview のような高速なモデルを使っているとき、どこで遅延が発生しているかを特定するのにも役立つはずですよ。


Hirokiのアイコン
【Hiroki】 gemini-3-flash-preview ですか!最新のモデルですね。そういった新しいモデルを使うときこそ、動作の安定性を確認するために可視化が必要になりそうです。


Yukiのアイコン
【Yuki】 はい。それに、LangSmithはただ眺めるだけではなくて、記録された実行結果をそのまま「テストデータ」として保存することもできるんです。「この回答は良かった」「この回答はイマイチだった」というのを蓄積して、後でまとめてテスト(評価)するための準備ができるんですよ。

LangSmithを使い始めるための準備


Hirokiのアイコン
【Hiroki】 なんだか難しそうに見えますが、設定は大変なんですか?


Yukiのアイコン
【Yuki】 実は、思っているよりもずっと簡単なんです。まずは LangSmithの公式サイトでアカウントを作成して、APIキーを発行する必要があります。

LangSmith 公式サイト


Yukiのアイコン
【Yuki】 APIキーが取得できたら、環境変数に設定するだけで、LangChainが自動的にログを送信してくれるようになります。少し、コードの例を書いてみますね。

import os

# LangSmithの設定
os.environ["LANGSMITH_TRACING_V2"] = "true"
os.environ["LANGSMITH_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGSMITH_API_KEY"] = "あなたのAPIキー"
os.environ["LANGSMITH_PROJECT"] = "my-first-project"

# LLMのAPIキー(ここでは最新のGoogle AI SDKを想定します)
os.environ["GOOGLE_API_KEY"] = "あなたのGoogle APIキー"


Hirokiのアイコン
【Hiroki】 これだけでいいんですか?コード本体を書き換えなくても、環境変数だけでトレースが始まるなんて不思議です。


Yukiのアイコン
【Yuki】 そうなんです。LangChainというライブラリが、環境変数を見て「あ、今は LangSmithにデータを送る設定なんだな」と判断して、裏側でこっそり動いてくれるんですよ。誰かの役に立つために、目立たないところで一生懸命働いているツールって、なんだか健気で応援したくなりませんか...?


Hirokiのアイコン
【Hiroki】 確かに、縁の下の力持ちって感じですね。Yukiさんがそう言うと、ツールにも感情があるみたいに思えてきます(笑)

最新の google-genai ライブラリと LangChain の連携


Yukiのアイコン
【Yuki】 えへへ、そうかもしれません。では、具体的に最新の google-genai ライブラリを使って、LangSmithに記録を残すコードの構成を見てみましょう。最新の Gemini モデルを利用する場合、langchain-google-genai パッケージを使うのが一般的です。

from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

# 最新モデル gemini-3-flash-preview を指定
llm = ChatGoogleGenerativeAI(
    model="gemini-3-flash-preview",
    temperature=0.7
)

prompt = ChatPromptTemplate.from_template(
    "{topic}について、高校生にも分かりやすく3行で教えてください。"
)
output_parser = StrOutputParser()

# チェーンの作成
chain = prompt | llm | output_parser

# 実行(このデータが自動的に LangSmith に送られます)
response = chain.invoke({"topic": "量子コンピュータ"})
print(response)


Hirokiのアイコン
【Hiroki】 この chain.invoke を呼び出した瞬間に、LangSmith のウェブサイト上で「どんなプロンプトが送られたか」がリアルタイムで見られるようになるんですね。


Yukiのアイコン
【Yuki】 その通りです。もしエラーが起きたときも、どこで止まったのかが赤文字で表示されるので、原因究明がすごく早くなると思います。夜中に一人でコードを書いていて、どうしてもエラーが取れなくて泣きたくなるようなときも、これがあれば少し安心できるかもしれません...。


Hirokiのアイコン
【Hiroki】 夜中にデバッグするのは辛いですもんね...。でも、これなら一人でも頑張れそうです!

評価(Evaluation)の重要性について


Hirokiのアイコン
【Hiroki】 Yukiさん、さっき「テストデータとして保存できる」とおっしゃっていましたが、それは具体的にどう使うんですか?


Yukiのアイコン
【Yuki】 それは「評価(Evaluation)」というステップで使います。AIアプリを作っていると、プロンプトを少し変えただけで、今まで上手くいっていた質問への回答が急に悪くなってしまう「デグレ(退化)」がよく起きるんです。


Hirokiのアイコン
【Hiroki】 あ、わかります!あっちを立てればこっちが立たず、みたいな状態ですよね。


Yukiのアイコン
【Yuki】 そうなんです。それを防ぐために、あらかじめ「正解となる質問と回答のセット(データセット)」を LangSmith 上で作っておくんです。そして、プログラムを修正するたびに、そのデータセットに対して一斉にテストを実行します。


Hirokiのアイコン
【Hiroki】 人間が一人ずつ回答をチェックするんじゃなくて、自動でやってくれるんですか?


Yukiのアイコン
【Yuki】 はい、それも可能です。最近では「AIがAIの回答を評価する」という手法も一般的になってきています。LangSmith には、テスト結果を自動でスコアリングしてくれる機能も備わっているんですよ。

プロンプト・ハブでプロンプトを管理する


Yukiのアイコン
【Yuki】 もう一つ、LangSmith の便利な機能に「Prompt Hub」というものがあります。Hirokiくん、プロンプトをソースコードの中に直接書いて、管理が大変になったことはありませんか?


Hirokiのアイコン
【Hiroki】 あります!長いプロンプトが Python の文字列としてコードを占領してしまって、すごく読みにくいんです。


Yukiのアイコン
【Yuki】 ふふ、分かります。Prompt Hub を使うと、プロンプトだけを LangSmith のサーバー上で管理できるんです。コード側からは「プロンプトの名前」を指定して呼び出すだけ。これなら、プロンプトを少し調整したいだけのときに、ソースコードを書き換えて再デプロイする必要がなくなるんですよ。


Hirokiのアイコン
【Hiroki】 それは便利ですね!チームで開発するときなんかにも、プロンプト担当の人がコードを触らずに調整できて良さそうです。


Yukiのアイコン
【Yuki】 そうですね。Webデザインのフォントを微調整するように、プロンプトの言葉遣いやニュアンスを少しずつ変えて、一番いい結果を探る作業がとても楽になると思います。

プロダクション環境でのモニタリング


Hirokiのアイコン
【Hiroki】 アプリを実際に公開した後も、LangSmith は役に立ちますか?


Yukiのアイコン
【Yuki】 もちろんです。むしろ公開してからが本番かもしれません。実際にユーザーがどんな入力をしているのか、それに対して AI が変な回答をしていないかを監視(モニタリング)することができます。


Hirokiのアイコン
【Hiroki】 でも、ユーザーの入力が全部見えてしまうのは、少しプライバシーも気になりますね。


Yukiのアイコン
【Yuki】 鋭いですね。確かにそうです。ですから、特定のデータを除外したり、チーム内でも閲覧権限を制限したりといった機能も用意されています。運用のフェーズでは、そういった慎重さも大切になってくると思います。


Hirokiのアイコン
【Hiroki】 なるほど。作るだけじゃなくて、育てていくためのツールでもあるんですね。

まとめ:LangSmithがもたらす開発の変化


Yukiのアイコン
【Yuki】 いかがでしたか?LangSmith を使うことで、AI開発が「暗闇の中を手探りで歩く」ような状態から、「ライトを持って地図を見ながら進む」ような状態に変わる感覚を、少しでも伝えられたら嬉しいです。


Hirokiのアイコン
【Hiroki】 はい!今までなんとなくでやっていた部分が、LangSmith を使えばちゃんと数字やログとして管理できそうな気がしてきました。まずは APIキーを取るところからやってみます。


Yukiのアイコン
【Yuki】 その意気です、Hirokiくん。最新の google-genai ライブラリと組み合わせて、ぜひ素敵な AIアプリを作ってみてくださいね。もし行き詰まったら、いつでも聞いてください。わたしも...、Hirokiくんが作ったツールが誰かを笑顔にするのを、影ながら応援していますから。


Hirokiのアイコン
【Hiroki】 ありがとうございます、Yukiさん!頑張ります!


Yukiのアイコン
【Yuki】 あ、最後に。公式のドキュメントもとっても充実しているので、困ったときはここを見てみるといいですよ。英語ですが、最近のブラウザの翻訳機能を使えば、きっと理解できるはずです。

LangSmith Documentation


Yukiのアイコン
【Yuki】 それでは、今日の講義はこれくらいにしましょうか。お疲れ様でした。外は少し冷えてきましたし、暖かくして作業してくださいね。


Hirokiのアイコン
【Hiroki】 はい、Yukiさんもお疲れ様でした!また次回もよろしくお願いします!



< MLflow
コラム一覧に戻る
LangChain >

この記事では基礎を解説しましたが、実務においては「もっと複雑なデータを扱いたい」「独自のシステムに組み込みたい」といった、個別の課題に直面することも多いはずです。

「自分で書く時間は最小限に抑え、プロの品質でツールを完成させたい」という方は、ぜひ一度ご相談ください。

「教わる」だけでなく「形にする」パートナーとして、フリーランスエンジニアのmei_13が最短ルートでの解決をサポートします。

➡ ココナラで制作・相談を依頼する(見積もり無料)


初心者から始められるPythonレッスン

プログラミング未経験者・初心者歓迎!
月額4,000円で質問し放題!!
● 完全オンライン
● 翌日までには必ず返信
● 挫折しない独自の学習メソッド
● 圧倒的高評価!!
テキストベースで時間を選ばない
● 高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!



AIアシスタント Yuki