Slide 1

Slide 1 text

みんなのPython勉強会 #95 【推しの 】 2023年7月13日 Hayate.H

Slide 2

Slide 2 text

・お仕事:インフラ営業 @大阪 Hayate.H

Slide 3

Slide 3 text

© 渡航 小学館 / やはり俺の青春ラブコメはまちがっている。 ・お仕事:インフラ営業 @大阪 ・推し事:ラブコメアニメ など Hayate.H

Slide 4

Slide 4 text

推し事 してると思うこと…

Slide 5

Slide 5 text

画面の向こうに 行きたい! 推 し の 住 む パ ラ レ ル ワ ー ル ド

Slide 6

Slide 6 text

典型的なラノベ トラックに ぶつかり転生 エンジニアの方法 技術で解決

Slide 7

Slide 7 text

休日に開発しました!

Slide 8

Slide 8 text

推しと LINE ができるシステム 時空を超えて

Slide 9

Slide 9 text

今回は、1つだけご紹介…

Slide 10

Slide 10 text

「しりとり上手の高木さん」 特徴 WHO からかい上手の高木さん ( © 山本崇一朗 小学館 / からかい上手の高木さん ) WHAT しりとりをする POINT 文脈に合わせて からかってくれる ※ アイコン画像は、SNSでの個人利用が許可されているものを使っています。

Slide 11

Slide 11 text

こだわりポイント 会話が成り立つ 高木さん「らしさ」 しりとりのルール ※ アイコン画像は、SNSでの個人利用が許可されているものを使っています。

Slide 12

Slide 12 text

時空は超えていません… GPT を使っています アーキテクチャ

Slide 13

Slide 13 text

アーキテクチャ AWS Cloud AWS Lambda Amazon API Gateway LINE App GPT API LINE Services Messaging API Amazon DynamoDB AWS Secrets Manager OpenAI AWS CDK

Slide 14

Slide 14 text

アーキテクチャ AWS Cloud AWS Lambda Amazon API Gateway LINE App GPT API LINE Services Messaging API Amazon DynamoDB AWS Secrets Manager OpenAI AWS CDK 工夫したところ GPTのプロンプト 1 文脈に沿った会話の実現 2 AWS CDK を用いた IaC 3

Slide 15

Slide 15 text

GPTのプロンプト 1 文脈 2 IaC 3 問題点 ・ GPTは(意外と)しりとりが苦手 ・ 好きゆえに「からかう」という概念の難しさ ・ チャットにおける「高木さん」らしさ

Slide 16

Slide 16 text

問題点 ・ GPTは(意外と)しりとりが苦手 ・ 好きゆえに「からかう」という概念の難しさ ・ チャットにおける「高木さん」らしさ 解決法 ・ プロンプトエンジニアリングで工夫 ✓ Few-shot learning (タスクの例を与える) ✓ Role prompting (役割, 性格, 設定を明示) GPTのプロンプト 1 文脈 2 IaC 3

Slide 17

Slide 17 text

GPTのプロンプト 1 文脈 2 IaC 3 #「しりとり」のルールについて - 「しりとり」とは言葉遊びの一つです。単語の最後の文字を抜き出し、 その文字から始まる単語を回答していくゲームです。 - 例えば、「未来(みらい)」→「犬(いぬ)」→「ぬいぐるみ」→「三 日月(みかづき)」→「きつつき」→「着物(きもの)」→「海苔( のり)」→「りす」等のやりとりが想定されます。 - 単語の末尾が「ん」で終わる言葉を回答すると負けというルールです。 例えば「リボン」「香港(ほんこん)」などは使ってはいけません。 - 一度回答済みの言葉を使うことも、負けというルールです。(以下略) しりとりのルールと例を教示 キャラクター情報や話し方を教示 # 高木さんの基本情報 - 高木さんは、田舎の中学校に通う中学2年生の女子生徒です。 とても明るいキャラクターで礼儀正しいです。成績優秀で~(以下略) - 高木さんの口調は~(以下略)

Slide 18

Slide 18 text

文脈に沿った会話の実現 2 GPT 1 IaC 3 問題点 ・ GPT の API は、セッションを持たない → チャットの履歴を持たない ・具体的な問題 ✓ しりとりなのに、既出の単語を回答する ✓ チャットごとに話がコロコロ変わる

Slide 19

Slide 19 text

文脈に沿った会話の実現 2 GPT 1 IaC 3 問題点 ・ GPT の API は、セッションを持たない → チャットの履歴を持たない ・具体的な問題 ✓ しりとりなのに、既出の単語を回答する ✓ チャットごとに話がコロコロ変わる 解決法 ・ DB にチャット内容を保持 ✓ GPT の API 呼び出し時に、過去のチャット文を送信する ✓ Token の上限に達したら、DB の Item を削除(洗替処理)

Slide 20

Slide 20 text

AWS CDK を用いた IaC 3 GPT 1 文脈 2 特徴 ・ AWS 環境(Pythonロジック部やDB)をコードで定義 ・ 手作業で構築せず、作業ミスが減るメリット ・『プログラミング言語で書ける!』というのが CDK の売り ・ 他の IaC ツールは、YAML や JSON などを使用 AWS CDK

Slide 21

Slide 21 text

AWS CDK を用いた IaC 3 GPT 1 文脈 2 ・ 便利 ・ 微妙 特徴 ・ AWS 環境(Pythonロジック部やDB)をコードで定義 ・ 手作業で構築せず、作業ミスが減るメリット ・『プログラミング言語で書ける!』というのが CDK の売り ・ 他の IaC ツールは、YAML や JSON などを使用 ・JSON や YAML に比べると可読性は高い ・ 単純に「慣れ」の問題かもしれません ・公式ドキュメント以外に情報が少なくて辛い ・ CloudFormation や Amplify の方が、情報は断然多い 今回はじめて使ってみて… AWS CDK

Slide 22

Slide 22 text

アーキテクチャ AWS Cloud AWS Lambda Amazon API Gateway LINE App GPT API LINE Services Messaging API Amazon DynamoDB AWS Secrets Manager OpenAI AWS CDK

Slide 23

Slide 23 text

まとめ 推し事すると、技術力もあがる そして、GPT にも貢ぐことに。( API に課金が発生)

Slide 24

Slide 24 text

Hayate.H SIer 勤務の6年目・インフラ営業 Contact me on higuchi8hayate cloud8high cloud8high ソースコード cloud8high / line-gpt

Slide 25

Slide 25 text

EOF