💻

ChatGPTで人生について深堀りさせてみる

2023/01/23に公開

ChatGPTがPythonから呼び出せるようになりました。
というわけで、ChatGPTの返答を質問にかえて深堀り問答して遊んでみましょう。

最初の質問では、「XXX についてどう思いますか?」という質問を投げかけ、
その後は について更に意見はありますか? という質問を繰り返していきます
最後にそれらの答えを結合して要約させます。

https://github.com/tMinamiii/chat-gpt-dig-deeper

注意点

  • ChatGPTは答えがなくなり空文字を返すようです。
  • 短時間にAPIを呼び出しすぎたり、nのsizeを大きくし過ぎると、Limit Rateに引っかかります。

コード

import os
import random
import sys
import time
from typing import Any

import openai

openai.api_key = os.environ["OPENAI_API_KEY"]


def completion(talk_theme: str) -> str:
    # 返答を3つ用意してランダムに一つの答えを選ぶ
    max = 3
    resp: Any = openai.Completion.create(
        engine="text-davinci-003",
        max_tokens=1000,
        prompt=talk_theme,
        n=max,
        stop=None,
        temperature=0.5,
    )

    i = random.randint(0, max - 1)
    answer = str(resp["choices"][i]["text"]).strip()
    if answer != "":
        print(talk_theme)
        print("  ->  " + answer)
    print()
    return answer


def dig_deep(talk_theme: str, suffix: str) -> str:
    theme = f"{talk_theme} {suffix}"
    return completion(theme)


def main() -> None:
    theme = sys.argv[1]
    ans = dig_deep(theme, "についてどう思いますか?")
    time.sleep(1)
    for _ in range(10):
        temp_ans = dig_deep(ans, "について更に意見はありますか?")
        if temp_ans == "":
            break
        ans = temp_ans
        time.sleep(1)

    ans = dig_deep(theme, "を要約してください。")
    print(f"{theme} とは、「{ans}」 である")


if __name__ == "__main__":
    main()

問答開始

$ python src/main.py 人生
人生 についてどう思いますか?
  ->  人生は非常に複雑で、それぞれの人にとって異なるものです。私は、人生を楽しむことが重要だと考えています。私たちが抱える問題や苦しみを乗り越え、本当の意味での自由を手に入れることを目指して、時には失敗したり苦しんだりすることもあるでしょうが、そのすべてを経験して、人生をより豊かにしていくことができればと思います。

人生は非常に複雑で、それぞれの人にとって異なるものです。私は、人生を楽しむことが重要だと考えています。私たちが抱える問題や苦しみを乗り越え、本当の意味での自由を手に入れることを目指して、時には失敗したり苦しんだりすることもあるでしょうが、そのすべてを経験して、人生をより豊かにしていくことができればと思います。 について更に意見はありますか?
  ->  私は、人生を楽しむことと、自分を成長させることを両立させることが重要だと考えています。人生には様々な選択肢があり、それぞれが自分の価値観や価値を決定するのです。自分の目標を達成するためには、自分を信じ、自分の考えを追求し、自分の夢を実現するために努力しなければなりません。また、人生を楽しむためには、自分の趣味や興味を追求し、他人との交流を深めることが重要です。人生を楽しむためには、自分を成長させることも重要です。

私は、人生を楽しむことと、自分を成長させることを両立させることが重要だと考えています。人生には様々な選択肢があり、それぞれが自分の価値観や価値を決定するのです。自分の目標を達成するためには、自分を信じ、自分の考えを追求し、自分の夢を実現するために努力しなければなりません。また、人生を楽しむためには、自分の趣味や興味を追求し、他人との交流を深めることが重要です。人生を楽しむためには、自分を成長させることも重要です。 について更に意見はありますか?
  ->  私は、人生を楽しむためには、自分自身を磨くことが重要だと考えています。自分の能力を高めるためには、勉強やスキルを磨く必要があります。また、人生を楽しむためには、他人と関わることも重要です。他人との対話やコミュニケーションを通じて、新しい発見を得ることができます。自分の夢を実現するためには、自分が何をしたいかを明確にし、それに向かって行動していくことが重要です。

私は、人生を楽しむためには、自分自身を磨くことが重要だと考えています。自分の能力を高めるためには、勉強やスキルを磨く必要があります。また、人生を楽しむためには、他人と関わることも重要です。他人との対話やコミュニケーションを通じて、新しい発見を得ることができます。自分の夢を実現するためには、自分が何をしたいかを明確にし、それに向かって行動していくことが重要です。 について更に意見はありますか?
  ->  そうですね。また、自分の夢を実現するためには、自分自身を知ることも重要です。自分の強みや弱みを理解して、自分の夢を達成するためにどうすればよいかを考えることができます。また、自分の夢を実現するためには、周囲の環境を理解し、その環境をうまく活用することが重要です。自分の夢を実現するためには、自分自身を磨くだけでなく、周囲の環境を理解し、その環境をうまく活用することも必要です。


私は、人生を楽しむことと、自分を成長させることを両立させることが重要だと考えています。人生には様々な選択肢があり、それぞれが自分の価値観や価値を決定するのです。自分の目標を達成するためには、自分を信じ、自分の考えを追求し、自分の夢を実現するために努力しなければなりません。また、人生を楽しむためには、自分の趣味や興味を追求し、他人との交流を深めることが重要です。人生を楽しむためには、自分を成長させることも重要です。
私は、人生を楽しむためには、自分自身を磨くことが重要だと考えています。自分の能力を高めるためには、勉強やスキルを磨く必要があります。また、人生を楽しむためには、他人と関わることも重要です。他人との対話やコミュニケーションを通じて、新しい発見を得ることができます。自分の夢を実現するためには、自分が何をしたいかを明確にし、それに向かって行動していくことが重要です。
そうですね。また、自分の夢を実現するためには、自分自身を知ることも重要です。自分の強みや弱みを理解して、自分の夢を達成するためにどうすればよいかを考えることができます。また、自分の夢を実現するためには、周囲の環境を理解し、その環境をうまく活用することが重要です。自分の夢を実現するためには、自分自身を磨くだけでなく、周囲の環境を理解し、その環境をうまく活用することも必要です。 を要約してください。
  ->  人生を楽しみながら、自分を成長させるためには、自分を知ること、自分の夢を達成するための行動を起こすこと、そして自分の周りの環境を理解し、その環境をうまく活用することが重要です。

人生 とは、「人生を楽しみながら、自分を成長させるためには、自分を知ること、自分の夢を達成するための行動を起こすこと、そして自分の周りの環境を理解し、その環境をうまく活用することが重要です。」 である

人生とは?

人生 とは、「人生を楽しみながら、自分を成長させるためには、自分を知ること、自分の夢を達成するための行動を起こすこと、そして自分の周りの環境を理解し、その環境をうまく活用することが重要です。」 である


とのことです。
それではよい人生を。

Discussion