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
ChatGPTとCIパイプラインを利用してドキュメント作成作業を自動化した話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Toru Takahashi
July 29, 2023
Programming
2.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ChatGPTとCIパイプラインを利用してドキュメント作成作業を自動化した話
AWS DevDay2023登壇資料です。
https://www.youtube.com/watch?v=B2TwG94zlss
Toru Takahashi
July 29, 2023
More Decks by Toru Takahashi
See All by Toru Takahashi
テストコードのないプロジェクトにテストを根付かせる
tttol
1
330
ここが辛いよLambda
tttol
0
52
AWS Community Builder選出までの軌跡
tttol
1
120
自分の技術力を言語化しよう
tttol
3
130
アプリケーションエンジニアだからこそわかるCDKコントリビューションの難しさと面白さ.pdf
tttol
3
280
AWS_AmplifyとNFCカードを使ってデジタル名刺を作る.pdf
tttol
4
210
AWS AmplifyとNFCカードを使ってデジタル名刺を作る
tttol
0
180
はじめてのAWS CDKコントリビュート
tttol
0
380
Amplify製アプリケーションにパスキー認証を導入する
tttol
1
260
Other Decks in Programming
See All in Programming
プロポーザルを書いてもらう
pvcresin
0
590
高専キャリア LT 発表内容
crysta1221
6
5.2k
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
250
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.5k
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
220
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
580
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
280
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
160
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
190
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
550
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
520
Featured
See All Featured
Side Projects
sachag
455
43k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
480
Building a Scalable Design System with Sketch
lauravandoore
463
34k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
Un-Boring Meetings
codingconduct
0
400
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Making the Leap to Tech Lead
cromwellryan
135
10k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Designing Experiences People Love
moore
143
24k
Ethics towards AI in product and experience design
skipperchong
2
350
Transcript
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. ChatGPTとCIパイプラインを利用して ドキュメント作成作業を自動化した話 髙橋 透 F-3-2 NRIネットコム株式会社
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 髙橋 透 (Toru Takahashi) NRIネットコム株式会社 バックエンドエンジニア (主にJava SpringBoot) 自己紹介
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ドキュメント整備 やってますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • 外部設計書 • 内部設計書 • DB 設計書 • テスト設計書 • 運用保守手順書 • etc... ドキュメント整備 やってますか? https://www.vecteezy.com/photo/10610487-close-up-hands- of-a-man-in-a-white-shirt-searching-for-contract-agreement- documents-in-stack-of-group-report-papers-clipped-in-color- clips
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ちゃんとメンテ できてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた • ドキュメントを更新したが誤記載・typo があった • 忙しさを理由にドキュメント更新を後回しにしてしまう ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた ↑コーディングに集中したい…ドキュメント更新面倒… • ドキュメントを更新したが誤記載・typo があった • 忙しさを理由にドキュメント更新を後回しにしてしまう ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた ↑コーディングに集中したい…ドキュメント更新面倒… • ドキュメントを更新したが誤記載・typo があった ↑ミスを100%防ぐことは難しい • 忙しさを理由にドキュメント更新を後回しにしてしまう ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた ↑コーディングに集中したい…ドキュメント更新面倒… • ドキュメントを更新したが誤記載・typo があった ↑ミスを100%防ぐことは難しい • 忙しさを理由にドキュメント更新を後回しにしてしまう ↑エンジニアは多忙な生き物 ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた ↑コーディングに集中したい…ドキュメント更新面倒… • ドキュメントを更新したが誤記載・typoがあった ↑100%ミスを防ぐことは難しい • 忙しさを理由にドキュメント更新を後回しにしてしまう ↑エンジニアは多忙な生き物 ちゃんとメンテできてますか? すべて解決します!!
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • 「アプリ更新→ドキュメント自動更新」する仕組みの紹介 • (例) DBテーブルを追加するとDB定義書が自動更新される 紹介する解決方法 アプリに DBテーブルを 追加 GitにPUSH CIで ドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. デモ見せます ※今から流すデモ動画は私が 業務外で個人的に作成した サンプルアプリの映像です
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • AWS 上で CI/CD を構築できるサービス • AWS CodeXXX 系のサービスは他にもある • AWS CodeCommit • AWS CodeBuild • AWS CodeDeploy • AWS CodePipeline • AWS CodeStar AWS CodePipeline
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • AWS 上で CI/CD を構築できるサービス • AWS CodeXXX系 のサービスは他にもある • AWS CodeCommit • AWS CodeBuild ←今回利用 • AWS CodeDeploy • AWS CodePipeline ←今回利用 • AWS CodeStar AWS CodePipeline
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS CodeBuild CI で実行する処理をここで 定義する 定義は buildspec.yml という ファイルに記述 VSCode, Microsoft, https://azure.microsoft.com/ja-jp/products/visual-studio-code
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • DB のマイグレーションツール • オープンソース • ソースコードを Git でバージョン管理するように、DB の状態をバー ジョン管理可能 Flywayとは?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Flyway 利用例 DB hoge_tableに `fuga INT` をカラム追加したい hoge_tableに `piyo VARCHAR(256)` をカラム追加したい
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Flyway 利用例ーsql ファイル作成 DB V1.0__add_fuga.sql V2.0__add_piyo.sql
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. V1.0__add_fuga.sql V2.0__add_piyo.sql VSCode, Microsoft, https://azure.microsoft.com/ja-jp/products/visual-studio-code Flyway 利用例ーsql ファイル作成
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ├── src │ ├── main │ │ └── resources │ │ ├── db │ │ │ └── migration │ │ │ ├── V1.0__add_fuga.sql │ │ │ ├── V2.0__add_piyo.sql ・・・ ※Java(SpringBoot , Gradle)で実装した場合のディレクトリ例です Flyway 利用例ーsql ファイル配置場所
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Flyway利用例ーマイグレーション実行 CLIよりコマンドを実行することでマイグレーションが実行される ※Java(SpringBoot, Gradle)で実装した場合のコマンド例です ※Mac Terminal
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Flyway利用例ーマイグレーション実行結果 fugaカラム, piyoカラムが追加されていることを確認 ※Mac Terminal
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Flyway を使うことで何がうれしいか • DB スキーマの変更履歴を sql ファイルベースでバージョン管理可能 • 好きな場所・環境で DB ダンプ要らずで DB を構築できる • ローカル上のDockerコンテナ • GitHub ActionsのRunner • 開発/本番環境 • etc…
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新 最新のDBスキーマを CodePipeline上の MySQL(Dockerコンテナ) に反映することができる
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • MySQL では information_schema に DB 内の情報が詰まっている • データベース名 • テーブル名 • カラムのデータ型 • アクセス権限 • etc... MySQL の information_schema
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. information_schema から情報取得 VSCode, Microsoft, https://azure.microsoft.com/ja-jp/products/visual-studio-code
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. information_schema から情報取得 ※Mac Terminal
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. information_schema から情報取得 この情報をHTMLに落とし込んで Confluenceを更新します ※Mac Terminal
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • Python の「mysql-connector-python」を利用 • Python から MySQL に接続するライブラリ • https://pypi.org/project/mysql-connector-python/ HTML に落とし込む方法
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. HTML に落とし込む方法 VSCode, Microsoft, https://azure.microsoft.com/ja-jp/products/visual-studio-code
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • Confluence のページを操作するための REST API が 公式で用意されている • GET : ページ取得 • POST : ページ作成 • PUT : ページ更新 • DELETE : ページ削除 Confluence REST API
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • Confluenceのページを操作するためのREST APIが 公式で用意されている • GET : ページ取得 • POST : ページ作成 • PUT : ページ更新 ←これを使う • DELETE : ページ削除 Confluence REST API
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ChatGPT の使い所 MySQL のテーブル内容を HTML 出力する方法を教えてください ChatGPT, OpenAI, https://chat.openai.com/ アクセス日 5/18
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ChatGPT の使い所 ChatGPT, OpenAI, https://chat.openai.com/ アクセス日 5/18
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ChatGPTの使い所 Confluence のページを 外部から更新する 方法を教えてください ChatGPT, OpenAI, https://chat.openai.com/ アクセス日 5/18
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.アーキテクチャ説明 2.デモ動画 3.CI パイプラインの概要 4.Flyway による DB マイグレーション 5.MySQL からテーブル情報を取得する 6.Confluence REST API を使ったページ更新 7.開発における ChatGPT の使い所 8.まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新 最新の DB スキーマを CodePipeline 上の MySQL(Dockerコンテナ) に反映することができる
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS Cloud AWS CodePipeline ドキュメント (Notion, Confluence等) AWS CodeBuild MySQL (Dockerコンテナ) Flyway ①ソースコードを GitにPUSH ②CodePipeline →CodeBuildの順に CI/CDが起動 ③DB構築&テーブル情報抽出 ④DBドキュメント更新
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた • ドキュメントを更新したが誤記載・typo があった • 忙しさを理由にドキュメント更新を後回しにしてしまう 【再掲】ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた ↑PUSH 時に自動更新するので漏れなし! • ドキュメントを更新したが誤記載・typo があった • 忙しさを理由にドキュメント更新を後回しにしてしまう 【再掲】ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた ↑PUSH 時に自動更新するので漏れなし! • ドキュメントを更新したが誤記載・typo があった ↑information_schema そのままなので間違えようがない! • 忙しさを理由にドキュメント更新を後回しにしてしまう 【再掲】ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. <よくあるケース> • アプリを更新したがドキュメントの更新が漏れていた ↑PUSH 時に自動更新するので漏れなし! • ドキュメントを更新したが誤記載・typo があった ↑information_schema そのままなので間違えようがない! • 忙しさを理由にドキュメント更新を後回しにしてしまう ↑CI が勝手にやってくれるので開発に集中できる! 【再掲】ちゃんとメンテできてますか?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. DB テーブル定義だけでなく、他のドキュメントも自動化 Javadoc を CIで出力させて設計書代わりに…?! Confluence 以外のサービスへの応用 REST APIがあればなんでもよい AI サービスを組み込む プロンプト次第で可能性は無限大 TRY MORE!
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Thank you! © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.