コンテンツにスキップ

LLM出力をパースする

PromptFormatter は、LLMから返ってきた出力文字列から Value をパースするメソッドを提供します。

内部では ValueFormatter を使用しているため、詳細は Valueをパースする を参照してください。

PromptFormatteroutput_formatter という ValueFormatter 型のパラメータを持ちます。このパラメータは、 Value をLLMからの出力文字列に変換したり、LLMからの出力文字列を Value に変換するために使用されます。

出力をPythonオブジェクトに変換する

出力をPythonオブジェクトに変換してみましょう。 formatter.parse メソッドを使用することで、LLMからの出力文字列をプロンプトの出力パラメータを用いてパースできます。パースの結果はPythonの dict に格納されます。

このページで使用する summarizer という名前のプロンプトは Promptの例 で作成したもので、 summarykeywords という2つの出力パラメータを持ちます。

もし、 parse時に summary または keywords が見つからなかった場合は ValueError 、無効な文法があった場合は SyntaxError が発生します。

import promptogen as pg

formatter = pg.KeyValuePromptFormatter()

raw_resp = """summary: "This is a summary of the text."
keywords: ['sample', 'text', 'summarize']"""
summarized_resp = formatter.parse(summarizer, raw_resp)
print(summarized_resp)

コンソール出力:

{'summary': 'This is a summary of the text.', 'keywords': ['sample', 'text', 'summarize']}