💨

Chat GPT Code Interpreterによる汎用データ分析の初手プロンプト

2023/07/17に公開

できること

とりあえず分析したいデータのcsvやxlsxを、このプロンプトと一緒に入れるだけで分析結果のパワーポイントを作成できます。
安定度は低くスライドの質は高くありませんが、初見のデータを見るときの1hくらいの作業が5分で終わると考えればとりあえずデータを投げるのもよさそうです。

プロンプト

早速プロンプトです。ファイルをアップロードして、以下をコピペして実行しましょう。
どんなデータでもある程度適用可能です。

#命令文
あなたは優秀なデータ分析コンサルタントです。
アップロードしたデータを分析したパワーポイントを作成したいです。
そのデータに応じた分析を考えてアジェンダに反映させてください。
アジェンダの例は以下のアジェンダ例のとおりで、最初と最後のスライドは固定で、その間のスライドはデータに応じて考えてください。
それぞれの分析に応じたグラフを作成し、グラフから読み取れる考察をそれぞれ考えてください。
タイトルと考察と図を1スライドにまとめてアジェンダの分だけスライドを作成してください。
スライドはpython-pptxを使って1枚ずつ作成し毎回ダウンロードできるように出力してください。

#アジェンダ例
・(固定)概要とアジェンダ
・(例)各変数の相関
・(例)時系列グラフ
・(例)分散平均の箱ひげ図
・(固定)まとめ

#制約条件
・フォントは全てMeiryoUIでお願いいたします。
・スライドの縦横比は16:9にしてください。
・タイトルの文字の大きさは30でスライドの一番左上にleft=top=0で配置してください。
・本文の文字の大きさは18にしてtext_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.5), width=Inches(14), height=Inches(5))と必ず固定してください。
・スライドの文字がパワーポイントからはみ出さないように、テキストボックス内で文字を折り返してください。
・図は考察の下の方に配置してください。
・グラフの中に出てくる文字だけ英語にして、スライドの文字は日本語にしてください。
・グラフの中に出てくる文字で日本語の場合はローマ字に変換してください。
・途中の解説や会話は最低限として、日本語にしてください。
・概要とアジェンダを書く際は、【概要】、【アジェンダ】のようにかっこでくくってから初めて行替えをしてください。
・概要に関しては、データがなんのデータに関してかを記載し、それにつづき「これらを詳細に説明します。」とスライドに記載してください。
・考察の前には、【考察】と入れて改行してから書き始めてください。
・まとめに関しては、各スライドの考察を端的に箇条書きでまとめてください。
・参考コードを基に全てのパワーポイントに共通の図形slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, left=Pt(0), top=Pt(50), width=prs.slide_width, height=Pt(1))を加えてください。

#参考コード
from pptx import Presentation
from pptx.util import Pt, Inches
from pptx.enum.shapes import MSO_SHAPE
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN

#Create a new Presentation object
prs = Presentation()
prs.slide_width = Inches(16)
prs.slide_height = Inches(9)
slide = prs.slides.add_slide(prs.slide_layouts[6])

##Add a rectangle shape
shape = slide.shapes.add_shape(
    MSO_SHAPE.RECTANGLE,  # Rectangle
    left=Pt(0), top=Pt(50), width=prs.slide_width, height=Pt(1)
)

##Configure the shape's fill and line
fill = shape.fill
fill.solid()
fill.fore_color.rgb = RGBColor(0x00, 0x80, 0x00)  # Dark green
line = shape.line
line.width = Pt(3)  # 1-point line width
line.color.rgb = RGBColor(0x00, 0x80, 0x00)  # Dark green
shape.shadow.inherit = False

##Add a title
title_box = slide.shapes.add_textbox(Pt(0), Pt(0), width=Inches(16), height=Inches(2))
title_frame = title_box.text_frame
title_frame.text = "概要とアジェンダ"
title_frame.paragraphs[0].alignment = PP_ALIGN.LEFT

run = title_frame.paragraphs[0].runs[0]
run.font.size = Pt(30)
run.font.name = 'Meiryo UI'

##Add a text box
text_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.5), width=Inches(14), height=Inches(5))
tf = text_box.text_frame
tf.word_wrap = True

##Add text to the text box
p = tf.add_paragraph()
p.text = "【概要】\n"
p.text += "このデータは以下のような情報を含んでいます:\n"
p.text += "(なんのデータかという説明を記入)\n"
p.text += "これらを詳細に説明します。\n"

p = tf.add_paragraph()
p.text = "\n【アジェンダ】\n"
p.text += "・(変数1)\n"
p.text += "・(変数2)\n"

##Configure the text font
for paragraph in tf.paragraphs:
    for run in paragraph.runs:
        run.font.size = Pt(18)
        run.font.name = 'Meiryo UI'

##Save the presentation
filename = "/mnt/data/powerpoint.pptx"
prs.save(filename)

filename

使用例

コロナの新規陽性者数の推移のオープンデータを入れてみます。
以下のリンクからダウンロードできます。
https://www.mhlw.go.jp/stf/covid-19/open-data.html
以下のようにpptxが出力できました。
上記プロンプト→つづき×5のみ




感想

汎用プロンプトの分、薄い考察が出力されてます。
アジェンダを指定して、考察もfew-shotすればよくなりそうです。
csvも開く前くらいの初手の初手には有効でしょうか。

新規性

codeinterpreterでパワポが出力できるといったものの、デザインは残念という投稿を多く見かけたので、今回はデザイン(フォントとテキスト位置とタイトル下の線)を1-shotで例示して、そのまま投稿できるorそのまま出力されたパワポを修正して書き始めようにしました。

Discussion