🍣

ChatGPT先生によるプロンプトエンジニアリングとPythonのハンズオン入門講義

2024/05/09に公開

はじめに

おれの名前は樋口恭介。もはや何番煎じかわからないが、今日はChatGPT先生をお呼びして、みなさんにプロンプトエンジニアリングとPythonについてハンズオンで入門してもらいます。今さらなんでそんなことをするかと言うと、プロンプトエンジニアリングとPythonはとても便利なのに、多くの人には意外とあんまり使われていない(というか、やっている人とやっていない人の差が開き続けていて、両者間の意思疎通に支障が出そうなレベルのリスクを感じはじめてきた)ので、何度でも敷居を下げて呼びかけていく必要があると思ったからです。
ちなみに、なんでプロンプトエンジニアリングとPythonを一緒にしているの? と言うと、いろいろ理由はありますが、大きくは次の二点かなと思っています。

  • LLMアプリを作るときにPythonベースでサンプルコードが展開されていることが多いので、次のステップとして必須
  • Pythonは自動化が得意なので、LLM以外の自動化とLLMによる自動化がPythonだけで完結できる

そしてこの記事は、何も考えずとも上から順番に流していくだけで、とりあえず「プロンプトとPythonを動かしてみたことがある人」になれるので、興味はあるけど何から始めたらいいかわかりませんみたいな人の最初の一歩としてはかなりおすすめです。たぶん所要時間1時間くらいだと思います。ぜひ試してみてください。

というわけで、それでは早速、ChatGPT先生、講義のほうよろしくお願いいたします!

本日の講師・ChatGPT先生の自己紹介

こんにちは、はじめまして。私はChatGPTという大規模言語モデル、またはLLMと呼ばれるAIです。今日は皆さんに、ChatGPTを使ったプロンプトエンジニアリングとPythonによる簡単なアプリ開発について講義を行います。この講義はハンズオン形式なので、各ステップで手を動かしながら学んでいきましょう。

前編:プロンプトエンジニアリング

1.ChatGPTの準備

それでは、まずは「ChatGPTの準備」から始めます。

ChatGPTアカウントの作成と利用方法

ChatGPTを使うためにOpenAIのサイトにアクセスします。すでにアカウントをお持ちの方はログインしてください。2024年5月時点では、GPT3.5の場合はアカウントなしでも利用できます。
https://chat.openai.com/

準備ができたら次のステップに進みます。
次の章では、プロンプトの基本について学び、ChatGPTから適切な応答を引き出すための基礎的な技法を解説します。

2. プロンプトの基礎

まず、プロンプトとは、ChatGPTに与える指示や質問のことです。適切なプロンプトを使うことで、期待する答えを得やすくなります。基本的なプロンプトのコツをいくつかご紹介します。

明確で具体的に伝える

あいまいな言葉よりも具体的な指示を与えると、精度の高い答えが得られます。例えば、「旅行の準備について教えて」と漠然とした質問をするよりも、「夏に北海道でキャンプをする場合、どんな装備が必要か」と尋ねると、より役立つ情報が得られるでしょう。

質問は分けて聞く

複数の質問を一度にすると、返答が複雑になりがちです。必要な情報を1つずつ聞くと、より理解しやすい回答が得られます。

文脈を提示する

質問に関連する背景情報を含めることで、より関連性の高い答えを得ることができます。例えば、「データ分析の初心者ですが、おすすめのツールは何ですか」と文脈を伝えると、初心者向けの具体的なツールが提案されるでしょう。
プロンプトの基礎を理解したら、次の章でロール定義について学びます。

3. ロール定義

ChatGPTに対して、「あなたは〜です」と役割を定義すると、特定の視点から質問に答えたり指示を実行したりできます。たとえば、「あなたは旅行ガイドです」と伝えると、旅行に関する具体的なアドバイスが得られます。

以下のプロンプトを例にしましょう:

プロンプト例: 「あなたは旅行ガイドです。初めてニューヨークに行く人におすすめの観光スポットをいくつか教えてください。」

このようなプロンプトで、ChatGPTに「旅行ガイド」という役割を与えます。皆さんもぜひこのプロンプトを入力して、どんな答えが得られるか試してみてください。

以下は出力結果の例です。

4. 依頼事項の明確化

目的や依頼内容を具体的に伝えると、期待する答えを得やすくなります。特に、具体的な形式やリスト形式で回答してもらいたい場合は、その点を明示的に指示すると効果的です。たとえば:

プロンプト例: 「あなたはマーケティング専門家です。製品のターゲット市場を絞り込む際の3つの戦略を箇条書きで教えてください。」

箇条書きでリストを作成するように指定することで、明確な情報が得られます。

以下は出力結果の例です。

5. ビジネス応用プロンプト

最後に、プロンプトエンジニアリングをビジネスで実践するための応用例をいくつか紹介します。

ビジネス提案書の作成

プロンプト例:「あなたはコンサルタントです。新規プロジェクトのビジネス提案書を作成するための構成案を教えてください。」

出力結果(長いので途中で省略)。

カスタマーサポート

プロンプト例:「あなたはカスタマーサポート担当者です。顧客からの苦情メールへの適切な返信文を例文として作成してください。」

出力結果。

ここまでで、プロンプトエンジニアリングを学びました。次に、後編のPythonアプリ開発に進みます。

後編:Pythonアプリ開発

6. Pythonのセットアップ

Pythonを使ってプログラミングを始めるためには、まずPythonの環境を整える必要があります。以下の手順に従ってください。

1.Python公式サイトにアクセスし、最新バージョンのPythonをダウンロードしてインストールします。インストール中に、「Add Python to PATH」にチェックを入れることを忘れないでください。
https://www.python.org/

自分のPC環境に合ったものを選択しダウンロードしてください。

2.次にVisual Studio Code(VSCode)をダウンロードし、インストールします。
https://code.visualstudio.com/

3.VSCodeで「拡張機能」から「Python」エクステンションを検索してインストールします。

これで基本的なPython開発環境が整います。次に、最初のプログラム「Hello, World」を作成しましょう。

7. Hello, World

新しいプログラムを作るときは、まず「Hello, World」と表示する簡単なプログラムを作成します。次のコードをVSCodeの新しいファイルにコピー&ペーストし、「hello_world.py」として保存してください。

# hello_world.py
print("Hello, World!")

ファイルを保存したら、ターミナルを開いて以下のコマンドを入力し、プログラムを実行します。

python hello_world.py

ターミナル画面に「Hello, World!」と表示されれば成功です!

8. 電卓アプリ

次に、簡単な電卓アプリを作成してみましょう。このアプリはユーザーから入力された2つの数値を使って、足し算や引き算、掛け算、割り算を行います。

# calculator.py

def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

def multiply(x, y):
    return x * y

def divide(x, y):
    if y != 0:
        return x / y
    else:
        return "Error: Division by zero!"

# 操作の選択
print("操作を選んでください:")
print("1. 足し算")
print("2. 引き算")
print("3. 掛け算")
print("4. 割り算")

choice = input("選択(1/2/3/4):")

num1 = float(input("最初の数値を入力してください:"))
num2 = float(input("次の数値を入力してください:"))

if choice == '1':
    print(f"結果: {add(num1, num2)}")
elif choice == '2':
    print(f"結果: {subtract(num1, num2)}")
elif choice == '3':
    print(f"結果: {multiply(num1, num2)}")
elif choice == '4':
    print(f"結果: {divide(num1, num2)}")
else:
    print("無効な選択です")

このコードを「calculator.py」として保存し、ターミナルで「python calculator.py」と入力して実行します。すると、以下のように、ターミナルで使える簡単な電卓アプリとして機能します。

9. Excel/Wordファイル操作

次に、Pythonを使ってExcelやWordのファイルを操作する方法を学びます。Pythonにはそれぞれのファイルを扱うためのライブラリがありますが、ここではExcelの操作にはopenpyxl、Wordの操作にはpython-docxを使います。

Excelファイルの操作

まず、Excelファイルを操作するためにopenpyxlライブラリをインストールします。

1.ターミナルで以下のコマンドを実行し、openpyxlをインストールしてください。

pip install openpyxl

2.次のコードを使って、新しいExcelファイルを作成し、セルにデータを書き込みます。

# excel_operations.py
from openpyxl import Workbook

# 新しいワークブックを作成
wb = Workbook()
ws = wb.active

# データを書き込み
ws['A1'] = '名前'
ws['B1'] = '年齢'
ws.append(['田中太郎', 28])
ws.append(['佐藤花子', 34])

# ファイルを保存
wb.save('サンプル.xlsx')

このコードを実行すると、現在のディレクトリに「サンプル.xlsx」という新しいExcelファイルが作成され、データが書き込まれます。以下のように、作成したファイルを開いて内容を確認してみてください。

Wordファイルの操作

次に、Wordファイルを扱うためにpython-docxライブラリをインストールします。

ターミナルで以下のコマンドを実行し、python-docxをインストールしてください。

pip install python-docx

次のコードで新しいWord文書を作成し、テキストを書き込みます。

# word_operations.py
from docx import Document

# 新しいドキュメントを作成
doc = Document()

# タイトルを追加
doc.add_heading('レポート', level=1)

# 段落を追加
doc.add_paragraph('これは自動生成されたレポートの本文です。')

# リストを追加
doc.add_paragraph('項目1', style='List Bullet')
doc.add_paragraph('項目2', style='List Bullet')
doc.add_paragraph('項目3', style='List Bullet')

# ファイルを保存
doc.save('レポート.docx')

このコードを実行すると、現在のディレクトリに「レポート.docx」というWordファイルが作成され、以下のように指定した内容が書き込まれます。

10. フォルダ操作

最後に、Pythonを使ってフォルダ操作を自動化する方法を学びます。次のコードで、新しいフォルダを作成し、その中にいくつかのファイルをコピーする操作を行います。

# folder_operations.py
import os
import shutil

# 新しいフォルダを作成
folder_path = 'プロジェクト資料'
if not os.path.exists(folder_path):
    os.makedirs(folder_path)

# ファイルのコピー
shutil.copy('サンプル.xlsx', folder_path)
shutil.copy('レポート.docx', folder_path)

# 結果を表示
print(f'フォルダ「{folder_path}」にファイルがコピーされました。')

このコードを実行すると、「プロジェクト資料」というフォルダが自動で作成され、その中に「サンプル.xlsx」と「レポート.docx」がコピーされます。
※前提として、事前に自動作成されていた「サンプル.xlsx」「レポート.docx」の二つのファイルは削除・移動せず、またファイルを閉じておいてください。

まとめ

以上で、この講義の全10章が終了しました。プロンプトエンジニアリングの基礎からPythonのセットアップとアプリ開発までの手順を実践しながら学んでいただきました。ここで習得した知識を応用し、皆さんの実務に活用できるアプリやタスク自動化のアイデアをぜひ試してみてください。

※本講義は9割以上ChatGPTによって自動生成されたものです。実際の出力結果は以下のとおりです。
https://chatgpt.com/share/4853ae18-f314-4ea5-bbc5-3923932960a7?oai-dm=1

さいごに

ChatGPT先生、ありがとうございました!
今回は非常に初歩的な内容でしたが、プロンプトエンジニアリングもPythonも、実業務のいろんなユースケースで活用することができます。
特にPythonは、ライブラリを知っているか知らないかだけで自動化の可能性に大きな開きが生まれます。ぜひ調べてみて、どんどん自分でコードを動かしてみてください。

え? どうやって調べるの? ですって?
それは、ChatGPTにぜひ聞いてみてください!!!!!

※2024年5月15日に名古屋で生成AIイベントやります!よろしくお願いします!
https://garage-nagoya.or.jp/event/p18871/

Accenture Japan (有志)

Discussion