Toilを無くして徒然なるままに日暮し硯に向かひたい

生成AIアプリケーション開発などを行うエンジニアのブログです。

プロンプトエンジニアリング プログラミング ハンズオン

genai-users.connpass.com

この記事は上記勉強会の資料です。

shu-kob.hateblo.jp

↑上記記事を参考にサービスアカウントの設定をしてください。

Google Cloudの無料期間が終了していると、課金されますが、ハンズオンの内容だけだと数百円もいかないと考えています。

料金は確実には言えないので、Google Cloudはご自身の責任でご使用ください。

github.com

↑今回のサンプルコード

git clone https://github.com/shu-kob/prompt_engineering
cd prompt_engineering
pip install vertexai

LangChainを使わずVertex AIのライブラリを使用

シンプルなVertex AIでGeminiを実行

project_id = "PROJECT_ID" # 書き換える

実行

python3 generate_content.py
response = model.generate_content(
  "プロンプトエンジニアリングとは"
)

プロンプトを変更して実行してみましょう。

Zero Shot プロンプティング

project_id = "PROJECT_ID" # 書き換える

実行

python3 zero_shot_prompting.py
prompt = """
以下はニュース記事のタイトルです。「政治」「経済」「芸能」「スポーツ」「科学」「その他」のうち1つに分類してください。
回答だけ一言で出力してください
===========================
紅白出場歌手の選考基準 NHK公開
"""

プロンプトを変更して実行してみましょう。

Few Shot プロンプティング

project_id = "PROJECT_ID" # 書き換える

実行

python3 few_shot_prompting.py
prompt = """
以下はニュース記事のタイトルです。「政治」「経済」「芸能」「スポーツ」「科学」「その他」のうち1つに分類してください。
回答だけ一言で出力してください
===========================
「紅白出場歌手の選考基準 NHK公開」
===========================
以下は例です
「G20 バイデン氏不在で集合写真」:政治
「岡田将生&高畑充希結婚 SNS反応」:芸能
"""

プロンプトを変更して実行してみましょう。

LangChainを使用

langchain_google_vertexai を使用

pip install langchain_google_vertexai
python3 invoke.py
messages = [
  ("human", "ネコの鳴き真似をしてください。"),
]

プロンプトを変更して実行してみましょう。

PromptTemplateを使用

pip install langchain_core
pip install pydantic==2.9.0

実行

python3 prompt_template.py
template = """質問: {question}

ステップバイステップで考えてください。"""

question = """
10 + 2 * 3 - 4 * 2
"""

プロンプトテンプレートやQuestionを変更して実行してみましょう。

ChatPromptTemplateを使用

実行

python3 chat_prompt_template.py
prompt_template = ChatPromptTemplate.from_messages([
    ("system", "ステップバイステップで考えてください。"),
    ("human", "{question}"),
])

question = """
10 + 2 * 3 - 4 * 2
"""

システムプロンプトやQuestionを変更して実行してみましょう。

参考資料

python.langchain.com

python.langchain.com

参考文献

LangChainとLangGraphによるRAG・AIエージェント[実践]入門

Google Gemini 1.5/LlamaIndex/LangChain 人工知能プログラミング実践入門