Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Duet AI Assisted development 検証してみた

Cloud Ace
December 07, 2023

Duet AI Assisted development 検証してみた

第2回 Google Cloud TAP Meetup にてLT登壇した際に利用したスライドです。Duet AI Assisted developmentについての検証結果を記載しています。

Cloud Ace

December 07, 2023
Tweet

More Decks by Cloud Ace

Other Decks in Technology

Transcript

  1. | © 2023 Cloud Ace, Inc 自己紹介 小林 由暁(@ykobayashi) • 2023

    年5 月からクラウドエースへ入社 • 歴代ドラえもん映画のタイトルと 公開年数を答えられる特技があり
  2. | © 2023 Cloud Ace, Inc Agenda 01 | Duet AI

    Assisted development とは 02 | 実際に使ってみた 03 | まとめ
  3. | © 2023 Cloud Ace, Inc Duet AI Assisted development Duet

    AI の中でも開発支援にフォーカスした機能 今回は、Duet AI in Visual Studio Code をベースに紹介 現在想定されるユースケースは、以下の通り • コード生成 • コード説明 • テスト計画の生成 • コード可読性の向上 • トラブルシューティング支援
  4. | © 2023 Cloud Ace, Inc これまでとこれから これまで
 • 独自にコード生成や修正を実施する場合は、スキルもしくは、追加の調査が必要 •

    トラブルシューティングにスキルもしくは、追加の調査が必要 これから • 多言語のコード生成が可能(Python, Java, C++, JavaScript, Terraform...etc...) a. コード生成は、プロンプトベース、チャットベースで可能 • コード修正方法の調査をチャットベースで可能 • トラブルシューティングが VScode 上で実施可能
  5. | © 2023 Cloud Ace, Inc 検証内容 1. ドラえもんの誕生日までの日数を出力 簡単な Python

    コード作成 2. コードの修正方法について質問 関数化、DocString の追加 3. 異なる言語内でのコード変換 Python コードから Java 、Go へ変換
  6. | © 2023 Cloud Ace, Inc 🤖ドラえもんの誕生日までの日数を出力 グレー表示で Duet AI より提案

    「#プロンプト」で Duet AI へ送信 生成されたコードで正常に動作
  7. | © 2023 Cloud Ace, Inc 🤖コード修正方法について質問 def calculate_days_until_doraemon_s_birthday(): """Calculates and

    outputs the number of days until Doraemon's birthday. Doraemon's birthday is September 3, 2112. Uses the datetime module to get today's date. Uses the timedelta module to find the difference between two dates. The difference between two dates is the number of days. """ # Get today's date. current_date = datetime.now() print("Today's date is", current_date.strftime("%Y-%m-%d")) # Get Doraemon's birthday. birthday = datetime(2112, 9, 3) print("Doraemon's birthday is", birthday.strftime("%Y-%m-%d")) # Find the difference between today's date and Doraemon's birthday. difference = birthday - current_date # Print the number of days until Doraemon's birthday. print("There are", difference.days, "days until Doraemon's birthday") if __name__ == "__main__": calculate_days_until_doraemon_s_birthday() # Please generate a code that calculates and outputs the number of days until Doraemon's birthday. # Doraemon's birthday is September 3, 2112. # Use the datetime module to get today's date. # Use the timedelta module to find the difference between two dates. # The difference between two dates is the number of days. from datetime import datetime, timedelta current_date = datetime.now() print("Today's date is", current_date.strftime("%Y-%m-%d")) birthday = datetime(2112, 9, 3) print("Doraemon's birthday is", birthday.strftime("%Y-%m-%d")) difference = birthday - current_date print("There are", difference.days, "days until Doraemon's birthday") 修正前 修正後 生成されたコードで正常に動作
  8. | © 2023 Cloud Ace, Inc 🤖異なる言語内でのコード変換(Python→Java) import java.time.LocalDate; import java.time.temporal.ChronoUnit;

    public class Birthday { public static void main(String[] args) { // Get today's date. LocalDate currentDate = LocalDate.now(); System.out.println("Today's date is " + currentDate.toString()); // Get Doraemon's birthday. LocalDate birthday = LocalDate.of(2112, 9, 3); System.out.println("Doraemon's birthday is " + birthday.toString()); // Find the difference between today's date and Doraemon's birthday. long difference = ChronoUnit.DAYS.between(currentDate, birthday); // Print the number of days until Doraemon's birthday. System.out.println("There are " + difference + " days until Doraemon's birthday"); } } def calculate_days_until_doraemon_s_birthday(): """Calculates and outputs the number of days until Doraemon's birthday. Doraemon's birthday is September 3, 2112. Uses the datetime module to get today's date. Uses the timedelta module to find the difference between two dates. The difference between two dates is the number of days. """ # Get today's date. current_date = datetime.now() print("Today's date is", current_date.strftime("%Y-%m-%d")) # Get Doraemon's birthday. birthday = datetime(2112, 9, 3) print("Doraemon's birthday is", birthday.strftime("%Y-%m-%d")) # Find the difference between today's date and Doraemon's birthday. difference = birthday - current_date # Print the number of days until Doraemon's birthday. print("There are", difference.days, "days until Doraemon's birthday") if __name__ == "__main__": calculate_days_until_doraemon_s_birthday() Python Java 生成されたコードで正常に動作
  9. | © 2023 Cloud Ace, Inc 🤖異なる言語内でのコード変換(Python→Go) package main import (

    "fmt" "time" ) func calculateDaysUntilDoraemonSBirthday() { // Get today's date. currentDate := time.Now() fmt.Println("Today's date is", currentDate.Format("2006-01-02")) // Get Doraemon's birthday. birthday := time.Date(2112, 9, 3, 0, 0, 0, 0, time.UTC) fmt.Println("Doraemon's birthday is", birthday.Format("2006-01-02")) // Find the difference between today's date and Doraemon's birthday. difference := birthday.Sub(currentDate) // Print the number of days until Doraemon's birthday. fmt.Println("There are", difference.Hours()/24, "days until Doraemon's birthday") } func main() { calculateDaysUntilDoraemonSBirthday() } def calculate_days_until_doraemon_s_birthday(): """Calculates and outputs the number of days until Doraemon's birthday. Doraemon's birthday is September 3, 2112. Uses the datetime module to get today's date. Uses the timedelta module to find the difference between two dates. The difference between two dates is the number of days. """ # Get today's date. current_date = datetime.now() print("Today's date is", current_date.strftime("%Y-%m-%d")) # Get Doraemon's birthday. birthday = datetime(2112, 9, 3) print("Doraemon's birthday is", birthday.strftime("%Y-%m-%d")) # Find the difference between today's date and Doraemon's birthday. difference = birthday - current_date # Print the number of days until Doraemon's birthday. print("There are", difference.days, "days until Doraemon's birthday") if __name__ == "__main__": calculate_days_until_doraemon_s_birthday() Python Go コード変換後に動作しなかったが、チャット ベースでトラブルシューティングを実施し、 その後正常に動作 ※トラブルシューティング後のコード
  10. | © 2023 Cloud Ace, Inc まとめ • コーディング初心者からすべての方へおすすめ • ベースとなるコードを

    Duet AI で生成し、気になる点を自身で 改善することで、コーディングスピードが向上が見込める • 仮に気になる点が不明な場合やデバッグが難しい場合は、 チャットでのやり取りでトラブルシュートできる可能性もあり