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
Toru Takahashi
July 29, 2023
Programming
0
2k
ChatGPTとCIパイプラインを利用してドキュメント作成作業を自動化した話
AWS DevDay2023登壇資料です。
https://www.youtube.com/watch?v=B2TwG94zlss
Toru Takahashi
July 29, 2023
Tweet
Share
More Decks by Toru Takahashi
See All by Toru Takahashi
自分の技術力を言語化しよう
tttol
3
69
アプリケーションエンジニアだからこそわかるCDKコントリビューションの難しさと面白さ.pdf
tttol
3
180
AWS_AmplifyとNFCカードを使ってデジタル名刺を作る.pdf
tttol
4
150
AWS AmplifyとNFCカードを使ってデジタル名刺を作る
tttol
0
91
はじめてのAWS CDKコントリビュート
tttol
0
230
Amplify製アプリケーションにパスキー認証を導入する
tttol
1
180
Virtual Threadsで実現する性能改善
tttol
1
1.9k
私がAWS Amplifyを使う理由
tttol
1
390
AWS Community Builder流:技術情報のインプット・アウトプット戦略
tttol
1
940
Other Decks in Programming
See All in Programming
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
190
Google Opalで使える37のライブラリ
mickey_kubo
2
110
Devoxx BE - Local Development in the AI Era
kdubois
0
130
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
yordgenome03
1
130
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.3k
Domain-centric? Why Hexagonal, Onion, and Clean Architecture Are Answers to the Wrong Question
olivergierke
3
920
ソフトウェア設計の実践的な考え方
masuda220
PRO
4
620
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
2
560
Foundation Modelsを実装日本語学習アプリを作ってみた!
hypebeans
0
120
All About Angular's New Signal Forms
manfredsteyer
PRO
0
190
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
480
CSC305 Lecture 05
javiergs
PRO
0
220
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.3k
The Cost Of JavaScript in 2023
addyosmani
55
9k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Six Lessons from altMBA
skipperchong
29
4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
How to Think Like a Performance Engineer
csswizardry
27
2.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Faster Mobile Websites
deanohume
310
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
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.