LLM出力をパースする
PromptFormatter は、LLMから返ってきた出力文字列から Value をパースするメソッドを提供します。
内部では ValueFormatter を使用しているため、詳細は Valueをパースする を参照してください。
PromptFormatter は output_formatter という ValueFormatter 型のパラメータを持ちます。このパラメータは、 Value をLLMからの出力文字列に変換したり、LLMからの出力文字列を Value に変換するために使用されます。
出力をPythonオブジェクトに変換する¶
出力をPythonオブジェクトに変換してみましょう。
formatter.parse メソッドを使用することで、LLMからの出力文字列をプロンプトの出力パラメータを用いてパースできます。パースの結果はPythonの dict に格納されます。
このページで使用する summarizer という名前のプロンプトは Promptの例 で作成したもので、 summary と keywords という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)
コンソール出力: