import tkinter as tk
from tkinter import scrolledtext
from openai import OpenAI
#ChatGPT
client = OpenAI(api_key="")
def ask_chatgpt(type_name):
prompt = f"""
あなたは性格分析の専門家です。
「{type_name}」というタイプの人について、以下を日本語で詳しく説明してください。
1.特徴(3~5個)
2.具体例(2~3個)
3.適切な対応法(2~3個)
出力する際は、見やすく箇条書きで書いてください。
"""
try:
res = client.chat.completions.create(
model = "gpt-4o-mini",
messages = [{"role": "user", "content": prompt}]
)
answer = res.choices[0].message.content
output_box.delete(1.0, tk.END)
output_box.insert(tk.END, f"【{type_name}】\n\n{answer}")
except Exception as e:
output_box.delete(1.0, tk.END)
output_box.insert(tk.END, f"エラーが発生しました: {e}")
# --- GUIの設定 ---
root = tk.Tk()
root.title("性格タイプ分析(ChatGPT連携)")
root.geometry("600x500")
root.config(bg="#f7f9fc")
title_label = tk.Label(
root, text="悪性格タイプを選んでください", font=("Meiryo", 14, "bold"), bg="#f7f9fc"
)
title_label.pack(pady=10)
#タイプボタン
types = ["ノンデリ","自己中心","マウント取り","愚痴・悪口","被害者ぶり"]
button_frame = tk.Frame(root, bg="#f7f9fc")
button_frame.pack(pady=5)
for t in types:
btn = tk.Button(
button_frame,
text=t,
width=25,
height=2,
bg="#ffffff",
fg="#333333",
relief="ridge",
command=lambda name=t: ask_chatgpt(name)
)
btn.pack(pady=4)
#出力ボックス
output_box = scrolledtext.ScrolledText(root, wrap=tk.WORD, width=70, height=15, font=("Meiryo", 11))
output_box.pack(padx=10, pady=10)
#終了ボタン
exit_btn = tk.Button(root, text="終了", command=root.quit, bg="#ffdddd", width=10)
exit_btn.pack(pady=5)
root.mainloop()
〖 成功 〗
上記のソースコードを実行すると左のような画面になり、検索したいタイプを選択するとそのタイプの人についての説明が提示される。