OpenAIの自然言語処理モデルGPT-3のExamples/Extract contact informationを試してみました。
文中に含まれる連絡先情報を抽出するExtract contact information。
英語の元サンプルでは、欠落していたようですが、宛先の名前も拾い、[都庁]なのか[住所]なのか、こうしたワードもヒットしてしまい文章も入っているものの、郵便番号も住所もバッチリ抽出してくれているようです。
というか、行単位で抽出するようですね、そりゃそうか...。
応答が、途切れていますが、[finish_reason]が[length]とあるのでスクリプト内の[max_tokens]値が許せば、全て抽出できていることでしょう。
正しく抽出されたかを確認するためには、前半に住所と無縁の一文も入れるか、応答をもっと表示するようにすべきでしたね...。
ソースはこんな感じ、環境変数OPENAI_API_KEYに自分のAPIキーが入っている前提です。
そのままでは想定通り機能しないので一部オリジナルソースから変更しています。
print()、もしくは、json出力しないと実行しても何も表示されないので何れかを追加する必要があり、後者用にimport jsonを追加。
が、応答内容によっては、何れか一方では表示できないことがあり、他方を使用せざるを得ないこともあります。
表示できないのが、print文なら、response配列を文字列にキャストすれば、たいていは凌げますが。
応答文だけだとチャット状態にならず、問いかけ文も表示したいところ。
が、サンプル通りだとprintやjson形式で出力しようにも問いかけ用の変数promptがスコープの範囲になく、スコープに入るようPythonの場合だとインデント階層を相応に上げたところで変数が登場(変数宣言)するようにする必要があります。
また、promptの中身によっては、文字列にキャストしないとエラーとなるケースもありました。