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
tttol
July 29, 2023
Programming
0
1.5k
ChatGPTとCIパイプラインを利用してドキュメント作成作業を自動化した話
AWS DevDay2023登壇資料です。
https://www.youtube.com/watch?v=B2TwG94zlss
tttol
July 29, 2023
Tweet
Share
More Decks by tttol
See All by tttol
Amplifyで開発・運用している 個人開発アプリ紹介
tttol
0
240
AmplifyにCDKがやってきた_プレビュー版のAmplify_Gen2を触ってみた.pdf
tttol
1
310
個人開発はAmplifyでホスティングしよう
tttol
0
400
結婚式WEB招待状をAWSリソースでサクッと自作した話
tttol
1
550
Other Decks in Programming
See All in Programming
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
530
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.6k
The Cutting Edge Of Versioning (LambdaConf 2024)
chriskrycho
0
200
Fragment Composition of GraphQL
quramy
13
1.5k
Polars入門
daikikatsuragawa
1
190
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.2k
Three ways to use AI on Android: The Good, the Bad and the Ugly
marxallski
0
110
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.4k
パフォーマンスを求めてDBに機能を寄せる戦略
aoyagikouhei
0
110
Milestoner
bkuhlmann
1
420
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
190
Git Rebase
bkuhlmann
11
1.6k
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1357
200k
Writing Fast Ruby
sferik
622
60k
Making Projects Easy
brettharned
109
5.5k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Code Review Best Practice
trishagee
56
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Optimizing for Happiness
mojombo
370
69k
A Philosophy of Restraint
colly
197
16k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
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.