こんにちは。
野中やすおです。
今回の記事では、StrOutputParserについて手元で試してみたので備忘録がてら記事にしておきます。
StrOutputParserとは何か?
StrOutputParserとは、LangChainが提供するOutput Parserのつで、AIの出力を単純な文字列 (str) として取得するためのパーサーになります。
StrOutputParserの基本的な使い方
まずはLangChain をインストールします。
1 |
pip install langchain |
具体的な使い方としては以下のような形で、チェーンを作成し、prompt
→ model
→ output_parser
の順で処理をつなげることで、最終的な出力を文字列で取得するようにしました。今回の例としては質問内容を「日本の首都はどこですか?」と聞いています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_openai import ChatOpenAI prompt = ChatPromptTemplate.from_messages([ ("system", "あなたは優秀なアシスタントです。ユーザーの質問に答えてください。"), ("human", "{question}"), ]) model = ChatOpenAI(model="gpt-4o-mini", temperature=0) output_parser = StrOutputParser() chain = prompt | model | output_parser response = chain.invoke({"question": "日本の首都はどこですか?"}) print(type(response)) # <class 'str'> print(response) # 日本の首都は東京です。 |
出力結果では「日本の首都は東京です。」という結果が文字列で返ってきています。
まとめ
StrOutputParser は、LangChainの中でも一番シンプル?で扱いやすい出力パーサーかなと思います。
LLM の出力をそのままテキストとして取得できるため、構造化データが不要な場面で特に有効です!
また
- シンプルな質問応答システムを構築するとき
- ユーザーの対話を繰り返す処理を実装するとき
だけでなく
AIの出力をデバッグするときなどにも使用することができます。ぜひとても使い勝手が良いので積極的に活用していきたいですね!