Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
(続)生成AIによる 静的解析ツールの自動生成
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tenntenn - Takuya Ueda
PRO
November 07, 2024
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
(続)生成AIによる 静的解析ツールの自動生成
tenntenn - Takuya Ueda
PRO
November 07, 2024
More Decks by tenntenn - Takuya Ueda
See All by tenntenn - Takuya Ueda
時の止め方を考える
tenntenn
PRO
0
130
まずはイテレータ(range over func)の仕様を学ぼう
tenntenn
PRO
0
480
モチベーションの維持と世代交代から考える持続可能なコミュニティ運営
tenntenn
PRO
0
180
fmfm🤔 fmtパッケージ - tenntenn.go#4
tenntenn
PRO
0
240
あなたの知らない go listコマンド - tenntenn.go#4
tenntenn
PRO
1
1.5k
ライブペアプログラミング その2 - tenntenn.go#3
tenntenn
PRO
0
98
sync.Onceを完全に理解する - tenntenn.go#3
tenntenn
PRO
0
580
Go 1.18で追加されるstrings/bytes.Cutと(*sync.Mutex).TryLockについて - Go1.18リリースパーティ
tenntenn
PRO
0
690
io/fsパッケージを読む - tenntenn.go#2
tenntenn
PRO
0
280
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.2k
How to make the Groovebox
asonas
2
2.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
The SEO identity crisis: Don't let AI make you average
varn
0
500
How to Talk to Developers About Accessibility
jct
2
270
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Context Engineering - Making Every Token Count
addyosmani
9
990
Marketing to machines
jonoalderson
1
5.5k
Transcript
The Go gopher was designed by Renée French. The gopher
stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license. (続)生成 AIによる 静的解析ツールの自動生成 2024/10/24 tenntenn.go #7 - 静的解析ナイト
UEDA Takuya / tenntenn 上田拓 也 newmo株式会社 / ソフトウェアエンジニア 一般社団法人
Gophers Japan 代表理事 Google Developers Expert (GDE) / Go Category tenntenn Conference 主催・登壇者 2013年よりGo Conferenceの運営を行う。 2016年、メルカリグループに入社、Goコミュニティへの貢献や採用・社内教育などに従事。 2021年、一般社団法人Gophers Japan設立、代表理事に就任。Google Developers Expert (GDE)に選出。 2022年、株式会社ナレッジワーク入社。ソフトウェアエンジニアおよびGoエンジニアのイネーブルメントに従事。 2024年、newmo株式会社入社。ソフトウェアエンジニアとしてプロダクト開発に従事。 略歴
生成AIと静的解析ツール GPT-4にて生成 https://chat.openai.com/share/243a6106-d7c4-427e-a0e5-1300131bd134
生成AIを使ったコード生成の難点 正しい/最適なコードを生成するとは限らない コンパイラを通るけど 生成されたコードのコントロールが難しい 書式が想定されたものにならない
プロンプトエンジニアリング プロンプトエンジニアリング 生成AIとやり取りをするプロンプトを工夫するテクニックなど 工夫次第で生成されるコンテンツの質が大きく変わってくる Few-shot プロンプティング どんな回答を期待しているのか例示してモデルに伝える いくつかコードを例示すると期待したコードを生成しやすくなる https://chat.openai.com/share/7d66e624-ca24-44d8-adf2-d85b688ddce6
GoからOpenAIのAPIを呼び出す サードパーティ製のライブラリを利用 github.com/sashabaranov/go-openai APIキーを渡すことで簡単にAPIを呼び出せる client := openai.NewClient("API Key") resp, err
:= client.CreateChatCompletion(ctx, openai.ChatCompletionRequest{ Model: openai.GPT3Dot5Turbo, Messages: []openai.ChatCompletionMessage{{ Role: openai.ChatMessageRoleUser, Content: "Hello!", }}, }, ) if err != nil { /* 略 */ } fmt.Println(resp.Choices[0].Message.Content)
skeletonのしくみ txtar形式を使ったテンプレートを活用 fs.FS型としてテンプレートを埋め込む txtar形式にしてそこにデータを流し込む テンプレートを txtar形式に変更 テンプレートに データを埋め込み ディレクトリに 展開
x/tools/txtar: implement fs.FS #44158 Proposal Accepted 🎉
skeletonへの導入 未完成な状態でファイルを生成して生成 AIに埋めてもらう 結果に不満がある場合に修正もできるようにしたい テストを書いてもらったりしたい テンプレートを txtar形式に変更 テンプレートに データを埋め込み ディレクトリに
展開 ここ
ここから続き
テストデータを与えて生成する ▪ analysistestでテストする前提のデータを渡す • テストが通るようなコードを生成してもらう • エッジケースも指定する package a import
"log" // The tool can find function callings of log.Fatal. func f() { log.Fatal("error") // want "NG" fatal := log.Fatal fatal("error") // want "NG" println() // OK }
デモ
今後の展望 ▪ GeminiとかGemmaを使ってみる • GDEなので • 無料で試してもらえるように ▪ GenKit for
Goを使ってみる • 何者かもわかってないので調べるところから ▪ 本格的にskeletonに取り込む • 提供方法を考える