Phần giới thiệu về Gemini Code Assist (trước đây là Duet AI) dành cho nhà phát triển

1. Giới thiệu

Trong phòng thí nghiệm này, bạn sẽ sử dụng Gemini Code Assist (trước đây là Duet AI for Developers), một cộng tác viên dựa trên AI trong Google Cloud. Bạn sẽ làm quen với cách bạn có thể sử dụng Gemini Chat và tính năng hỗ trợ viết mã cùng dòng để tạo mã, hiểu được mã và làm nhiều việc khác.

Bạn sẽ thực hiện...

  • Bạn sẽ sử dụng Cloud Shell IDE để tải một mẫu mã hiện có xuống cho một ứng dụng web.
  • Bạn sẽ sử dụng Gemini Chat trong IDE Cloud Shell để đặt câu hỏi chung về Google Cloud.
  • Bạn sẽ dùng tính năng hỗ trợ mã cùng dòng của Gemini Code Assist trong Cloud Shell IDE để tạo, tóm tắt và hoàn tất mã.

Kiến thức bạn sẽ học được...

  • Cách sử dụng tính năng Hỗ trợ viết mã của Gemini cho một số nhiệm vụ của nhà phát triển như tạo mã, hoàn thành mã và tóm tắt mã.
  • Cách sử dụng Gemini cho Cloud để tìm hiểu về Google Cloud.

Bạn cần...

  • Trình duyệt web Chrome
  • Tài khoản Gmail
  • Một dự án trên đám mây đã bật tính năng thanh toán
  • Tính năng Hỗ trợ mã Gemini đã được bật cho dự án của bạn trên Google Cloud

Phòng thí nghiệm này nhắm đến nhà phát triển ở mọi cấp độ, kể cả người mới bắt đầu. Mặc dù ứng dụng mẫu bằng ngôn ngữ Python, nhưng bạn không cần phải quen thuộc với lập trình Python để hiểu điều gì đang diễn ra. Trọng tâm của chúng tôi sẽ là làm quen với các chức năng của Gemini Code Assist cho nhà phát triển.

2. Thiết lập

Phần này bao gồm mọi việc bạn cần làm để bắt đầu với phòng thí nghiệm này.

Bật Gemini cho Cloud trong dự án Google Cloud

Giờ đây, chúng tôi sẽ bật Gemini cho Cloud trong dự án của mình trên Google Cloud. Hãy làm theo các bước dưới đây:

  1. Truy cập vào https://console.cloud.google.com và đảm bảo rằng bạn đã chọn Dự án Google Cloud mà bạn định hợp tác trong phòng thí nghiệm này. Nhấp vào biểu tượng Mở Gemini mà bạn thấy ở trên cùng bên phải.

28f084ec1e159938.pngS

  1. Cửa sổ trò chuyện của Gemini cho Cloud sẽ mở ra ở bên phải bảng điều khiển. Nhấp vào nút Bật như hình dưới đây. Nếu bạn không thấy nút Bật mà thay vào đó thấy giao diện Chat, thì có khả năng bạn đã bật Gemini cho Cloud cho dự án này và có thể chuyển thẳng đến bước tiếp theo.

e8df9adc4ea43a37.png

  1. Sau khi bật Gemini cho Cloud, bạn có thể dùng thử Gemini cho Cloud bằng cách đặt một hoặc hai câu hỏi. Một vài truy vấn mẫu sẽ được hiển thị nhưng bạn có thể thử những truy vấn như What is Cloud Run?

9859ea86a8310cb.png.

Gemini cho Cloud sẽ trả lời câu hỏi của bạn. Bạn có thể nhấp vào biểu tượng f68286b2b2ea5c0a.png ở góc trên cùng bên phải để đóng cửa sổ trò chuyện của Gemini cho Cloud.

Bật tính năng Hỗ trợ mã Gemini trong IDE Cloud Shell

Chúng ta sẽ sử dụng Cloud Shell IDE, một môi trường phát triển dựa trên Mã OSS được quản lý hoàn toàn, cho phần còn lại của lớp học lập trình này. Chúng ta cần bật và định cấu hình tính năng Hỗ trợ mã trong IDE Cloud Shell và thực hiện các bước dưới đây:

  1. Truy cập vào ide.cloud.google.com. Có thể mất chút thời gian để IDE xuất hiện, vì vậy hãy kiên nhẫn.
  2. Nhấp vào nút Cloud Code – Đăng nhập trên thanh trạng thái ở dưới cùng như minh hoạ. Uỷ quyền trình bổ trợ theo hướng dẫn. Nếu bạn thấy dòng chữ "Cloud Code - no project" (Mã đám mây – không có dự án) trên thanh trạng thái, hãy chọn mục đó rồi chọn Dự án Google Cloud cụ thể trong danh sách các dự án mà bạn dự định hợp tác.

6f5ce865fc7a3ef5.png.

  1. Nhấp vào nút Gemini ở góc dưới cùng bên phải như minh hoạ rồi chọn một lần cuối cùng vào đúng dự án Google Cloud. Nếu bạn được yêu cầu bật Cloud AI Companion API, vui lòng bật và tiếp tục.
  2. Sau khi chọn dự án trên Google Cloud, hãy đảm bảo rằng bạn có thể thấy điều đó trong thông báo trạng thái Mã đám mây trên thanh trạng thái và bạn cũng đã bật tính năng Hỗ trợ mã ở bên phải, trên thanh trạng thái như sau:

709e6c8248ac7d88.pngS

Gemini Code Assistant đã sẵn sàng cho bạn sử dụng!

Không bắt buộc: Nếu không thấy Gemini trong thanh trạng thái ở dưới cùng bên phải, bạn sẽ cần bật Gemini trong Mã đám mây. Trước khi thực hiện việc này, hãy đảm bảo rằng Gemini đã được bật trong IDE bằng cách chuyển đến Cloud Code Extension → Settings (Tiện ích mã đám mây → Cài đặt) rồi nhập văn bản Gemini như hình bên dưới. Đảm bảo rằng hộp đánh dấu đã được chọn. Bạn nên tải lại IDE.Thao tác này sẽ bật Gemini trong Cloud Code và biểu tượng Gemini trên thanh trạng thái sẽ xuất hiện trong IDE của bạn.

228c9c9c6b956c8e.png.

3. Tạo ứng dụng mẫu

Chúng tôi sẽ tạo một ứng dụng mẫu (ứng dụng Python Flask) mà chúng tôi sẽ sử dụng để khám phá các tính năng của Gemini Code Assist.

Hãy làm theo các bước sau:

  1. Nhấp vào tên dự án trên Google Cloud trên thanh trạng thái bên dưới.

f151759c156c124e.png

  1. Một danh sách các lựa chọn sẽ xuất hiện. Nhấp vào New Application (Ứng dụng mới) trong danh sách bên dưới.

91ea9836f38b7f74.pngS

  1. Chọn ứng dụng Cloud Run.
  2. Chọn mẫu ứng dụng Python (Flask): Cloud Run.
  3. Lưu ứng dụng mới vào vị trí bạn muốn.
  4. Một thông báo xác nhận rằng ứng dụng của bạn đã được tạo, đồng thời một cửa sổ mới sẽ mở ra cùng với ứng dụng được tải như minh hoạ dưới đây. Đang mở một tệp README.md. Bây giờ, bạn có thể đóng chế độ xem đó.

aaa3725b17ce27cf.png

4. Trò chuyện với Gemini

Chúng ta sẽ bắt đầu từ việc tìm hiểu cách trò chuyện với Gemini. Gemini có thể hoạt động như một trợ lý trò chuyện trong IDE Cloud Shell như một phần của tiện ích Cloud Code trong VS Code. Bạn có thể hiển thị công cụ này bằng cách nhấp vào nút Gemini trên thanh điều hướng bên trái. Tìm biểu tượng Gemini a489f98a34898727.pngtrên thanh công cụ điều hướng bên trái rồi nhấp vào biểu tượng đó.

Thao tác này sẽ mở Chat: Ngăn GeminiI bên trong IDE Cloud Shell và bạn có thể trò chuyện với Gemini để được trợ giúp trên Google Cloud.

14ad103efaa0ddaa.png.

Hãy cho phép chúng tôi sử dụng ngăn trò chuyện của Gemini để nhập câu lệnh và xem câu trả lời của Gemini. Nhập câu lệnh sau:

What is Cloud Run? 

Gemini sẽ trả lời kèm theo thông tin chi tiết về Cloud Run. Lời nhắc là các câu hỏi hoặc câu lệnh mô tả sự trợ giúp bạn cần. Câu lệnh có thể bao gồm bối cảnh trong đoạn mã hiện có mà Google Cloud phân tích để đưa ra câu trả lời hữu ích hoặc hoàn chỉnh hơn. Để biết thêm thông tin về cách viết câu lệnh nhằm tạo ra câu trả lời phù hợp, hãy xem bài viết Viết những câu lệnh phù hợp hơn cho Gemini trong Google Cloud.

Hãy thử các câu lệnh mẫu sau đây hoặc bất kỳ câu lệnh nào của bạn để đặt câu hỏi về Google Cloud:

  • What is the difference between Cloud Run and Cloud Functions?
  • What services are available on Google Cloud to run containerized workloads?
  • What are the best practices to optimize costs while working with Google Cloud Storage?

Lưu ý biểu tượng thùng rác ở trên cùng – đây là cách bạn dùng để đặt lại ngữ cảnh cho lịch sử trò chuyện của tính năng Hỗ trợ mã. Ngoài ra, xin lưu ý rằng hoạt động tương tác này theo bối cảnh đối với(các) tệp mà bạn đang xử lý trong IDE.

5. Giải thích về mã

Nhằm giúp bạn làm việc hiệu quả hơn đồng thời giảm thiểu việc chuyển đổi ngữ cảnh, Gemini Code Assistant cung cấp các hành động thông minh dựa trên AI ngay trong trình soạn thảo mã. Khi chọn mã trong trình soạn thảo mã, bạn có thể xem và chọn trong danh sách các thao tác liên quan đến ngữ cảnh của mình.

Bạn có thể sử dụng Gemini Code Assistant để giúp bạn hiểu các phần của mã xử lý ứng dụng. Hãy quay lại ứng dụng mà chúng ta đã tạo ở bước trước và bạn có thể sử dụng Gemini Code Assist để giải thích các tệp và mã có trong IDE của bạn.

  1. Nếu các tệp không hiển thị, trong thanh hoạt động IDE, hãy nhấp vào Explorer ( Trình đơn Trình khám phá mã OSS).
  2. Trong ngăn Explorer, hãy chọn Dockerfile.
  3. Bạn có thể chọn bất kỳ phần nào trong nội dung tệp, nhấp vào bóng đèn ( Mã bóng đèn Duet AI cho OSS), sau đó nhấp vào Gemini: Giải thích nội dung này. Ví dụ: chọn dòng bắt đầu bằng ImportPOINT, nhấp vào bóng đèn ( Mã bóng đèn Duet AI cho OSS), sau đó nhấp vào Gemini: Giải thích điều này. Gemini sẽ đưa ra nội dung giải thích bằng ngôn ngữ tự nhiên về phần cụ thể trên Dockerfile mà bạn cần thêm thông tin. Gemini sẽ trả lời kèm theo thông tin chi tiết về hướng dẫn về ghi bàn. Với hướng dẫn này, Docker sẽ chạy tệp app.py khi vùng chứa khởi chạy.
  4. Để xem nội dung của tệp app.py, trong thanh hoạt động, hãy nhấp vào Trình khám phá ( Trình đơn Trình khám phá mã OSS), sau đó chọn app.py.
  5. Trong định nghĩa hàm hello(), hãy chọn các dòng mà bạn muốn tìm hiểu thêm thông tin. Tiếp đến, hãy nhấp vào biểu tượng bóng đèn ( Mã bóng đèn Duet AI cho OSS), rồi nhấp vào Gemini : Giải thích nội dung này. Trong ví dụ này, chúng tôi đã chọn hai dòng mã sau đây và sau đó kích hoạt hành động Gemini: Giải thích điều này.

14d9c56af016b65d.png.

  1. Gemini sẽ trả lời kèm theo nội dung giải thích chi tiết về 2 biến môi trường này trong Cloud Run (K_SERVICE, K_REVISION) và cách sử dụng chúng trong mã xử lý ứng dụng. Xin lưu ý rằng, với kiến thức chuyên môn về Google Cloud và các dịch vụ như Cloud Run, Gemini không chỉ giải thích về mã Python mà còn giải thích ý nghĩa của các biến đó trong Cloud Run.

Hãy thử các cách khác sau đây để xem nội dung giải thích về mã:

  1. Giữ app.py làm tệp hiện đang mở trong IDE. Chuyển đến ngăn trò chuyện trên Gemini trong thanh điều hướng bên trái trong mục Mã VS rồi nhập câu lệnh Giải thích tệp này. Thao tác này sẽ xem xét toàn bộ tệp và giải thích cho bạn.
  2. Bạn cũng có thể chọn phần bất kỳ trong tệp rồi sử dụng ngăn trò chuyện Gemini ở bên trái, nhập câu lệnh Giải thích điều này. Thao tác này chỉ giải thích phần được chọn của tệp. Việc này tương tự như cách bạn nhấp vào bóng đèn( Mã bóng đèn Duet AI cho OSS) rồi nhấp vào Gemini: Giải thích điều này.
  3. Bạn cũng có thể chọn một phần văn bản rồi nhấp vào Gemini: Hành động thông minh ở trên cùng bên phải trong IDE như hình bên dưới để xem danh sách các thao tác có thể thực hiện trên văn bản đã chọn. Một trong những lựa chọn sau sẽ là thao tác Giải thích điều này:

adeb72acd708174.png

6. Tạo mã bằng lời nhắc

Phần này hướng dẫn bạn cách sử dụng tính năng Hỗ trợ mã của Gemini để tạo mã trong phần bình luận.

Hãy thử dùng các tính năng này. Hãy làm theo các bước dưới đây:

  1. Tạo một tệp mới có tên utils.py.
  2. Trong tệp mã mới, trên một dòng mới, hãy nhập # Function to print a list of blobs in a Google Cloud Storage bucket, sau đó nhấn Enter (đối với Windows và Linux) hoặc Return (đối với MacOS). Gemini có thể tìm cách tạo mã khi bạn nhập nhưng không chấp nhận mã đó. Chúng ta sẽ kích hoạt cụ thể quá trình tạo mã trong bước tiếp theo.
  3. Để kích hoạt tính năng tạo mã, hãy nhấn Control+Enter (đối với Windows và Linux) hoặc Control+Return (đối với MacOS). Bên cạnh văn bản câu lệnh trong tệp Python, Gemini Code Assist sẽ tạo mã ở dạng văn bản ảo. Phần này sẽ cung cấp cho bạn một hoặc nhiều đề xuất về mã có thanh công cụ, qua đó bạn có thể điều hướng từ một đề xuất mã đến một đề xuất mã khác (trong trường hợp có nhiều đề xuất). Thậm chí bạn có thể chấp nhận bất kỳ đề xuất mã nào thông qua thanh công cụ. Trong trường hợp bạn không thấy thanh công cụ hoặc thanh công cụ biến mất, hãy di chuột qua mã đã tạo để thanh công cụ xuất hiện lại.
  4. Không bắt buộc: Để chấp nhận mã được tạo, hãy nhấn phím Tab. Trong trường hợp có nhiều đề xuất, bạn có thể nhấn Tab nhiều lần để di chuyển từ một đoạn mã đề xuất đến đoạn mã tiếp theo.

Thao tác này sẽ chèn mã mà bạn đã chấp nhận vào tệp utils.py. Dưới đây là ảnh chụp màn hình mẫu. Mã chúng tôi cung cấp cho bạn có thể khác với mã dưới đây. Nếu các phương thức bổ sung được tạo thì bạn có thể xoá các phương thức đó sau khi chấp nhận mã.

d6d7915885c5e74b.png

Chú ý dòng ngoằn ngoèo xung quanh đoạn mã. Đây là tính năng Trích dẫn mã trong thực tế. Khi di chuột qua bất kỳ dòng nào, bạn sẽ thấy thuộc tính của mã và các thông tin liên quan khác về việc cấp phép. Sau đây là ví dụ minh hoạ:

c7473cadcf15d887.png

Sau đó, bạn có thể chọn bỏ qua cảnh báo về việc trích dẫn bằng cách nhấp vào Khắc phục nhanh .... Thao tác này sẽ hiển thị đề xuất của tính năng Khắc phục nhanh, trong đó có ví dụ minh hoạ dưới đây:

10f4672830954c90.pngS

Bạn có thể chọn Bỏ qua cảnh báo trích dẫn nếu đồng ý với việc chấp nhận giấy phép sử dụng mã.

(Không bắt buộc) Dưới đây là một vài đề xuất khác để bạn thử tạo mã:

  1. Bạn cũng có thể sử dụng tính năng trò chuyện của Gemini để đặt cùng một câu lệnh và nhận câu trả lời trong cửa sổ trò chuyện. Khi đó, giao diện Chat hiển thị các lựa chọn để sao chép mã hoặc chèn vào tệp hiện tại.
  2. Hãy thử lời nhắc của riêng bạn để lấy mã mẫu mà bạn muốn. Dưới đây là một vài đề xuất (giả sử bạn đang dùng một trong các tệp python): hoặc chọn trong số những câu lệnh bên dưới:
  • Viết mã Python để phát hành thông báo lên Google Cloud Pub/Sub
  • Viết mã Python để khởi chạy ứng dụng BigQuery
  • Viết mã Python để kết nối ứng dụng của tôi với Cloud SQL

7. Nhận đề xuất về mã cùng dòng trong khi bạn lập trình

Trong khi bạn viết mã, Trợ lý mã của Gemini sẽ đưa ra các đề xuất mã cùng dòng mà bạn có thể chấp nhận hoặc bỏ qua. Để dùng thử tính năng này, chúng ta sẽ sửa đổi tệp utils.py mà chúng ta đã tạo ở phần trước :

  1. Mở tệp utils.py làm tệp hiện tại trong IDE Cloud Shell.
  2. Một trong những việc chúng ta có thể làm là cung cấp các câu lệnh import chính xác nếu các câu lệnh này không có trong mã được tạo.
  3. Bắt đầu nhập từ import và bạn sẽ thấy tính năng Trợ lý mã của Gemini đề xuất mã ở dạng văn bản ảo. Để chấp nhận đề xuất mã từ Trợ lý mã Gemini, hãy nhấn nút Tab. Nếu không, để bỏ qua đề xuất, hãy nhấn phím Esc hoặc tiếp tục viết mã. Trong màn hình mẫu bên dưới, bạn nên nhập lớp storage vì lớp này đang được dùng trong mã. Nhấn Tab để chấp nhận mã đề xuất. Bạn cũng nên dùng câu lệnh import os nhưng vì không cần thiết nên chúng ta có thể xoá câu lệnh đó.

cb3dfff74172959d.png

  1. Chuyển đến cuối tệp utils.py rồi thêm dòng để gọi hàm này nếu chưa có. Trong trường hợp ở đây, đó là hàm print_blobs. Bạn chỉ cần bắt đầu nhập tên hàm và mã hoàn tất sẽ giúp bạn hoàn tất câu lệnh.
  2. Bạn sẽ cần cung cấp nhóm_name và có thể sử dụng tên bộ chứa công khai sau đây : gemini-codeassist-bucket.Dưới đây là lời gọi mẫu cho hàm này. Xin lưu ý rằng bạn có thể thấy những khác biệt nhỏ về tên hàm, v.v.

print_blobs(bucket_name="gemini-codeassist-bucket")

(Không bắt buộc) Chạy mã mẫu

Vì chúng ta đã viết mã để liệt kê các blob trong bộ chứa Google Cloud Storage, nên chúng ta sẽ cần cài đặt thư viện Python google-cloud-storage.

Chuyển đến tệp requirements.txt rồi thêm một dòng mới có phần phụ thuộc google-cloud-storage như minh hoạ dưới đây. Dưới đây là một tệp requirements.txt mẫu.

Flask==2.3.3
requests==2.31.0
debugpy # Required for debugging.
google-cloud-storage

Lưu tệp requirements.txt.

Để xem mã hoạt động, chúng ta cần chạy một phiên hoạt động trên thiết bị đầu cuối mới từ Cloud Shell IDE thông qua biểu tượng trình đơn ở trên cùng bên trái. Nhấp vào biểu tượng trình đơn rồi nhấp vào Terminal → New Terminal (Nhà ga mới) như minh hoạ dưới đây:

289173c68f1addb5.pngS

Trong phiên hoạt động Terminal, hãy cài đặt các phần phụ thuộc Python thông qua lệnh sau:

pip3 install -r requirements.txt

Cuối cùng, bạn có thể chạy tệp utils.py thông qua lệnh sau:

python utils.py

Thao tác này sẽ hiển thị các blob hiện có trong bộ chứa công khai của Google Cloud Storage. Tốt nhất là bạn sẽ thấy 2 blob được liệt kê trong kết quả (file1.txtfile2.txt).

Khắc phục sự cố

Trong trường hợp bạn nhận được "quyền truy cập" khi hiển thị các đối tượng trong bộ chứa công khai ở trên, bạn có thể chọn tạo bộ chứa Google Cloud Storage của riêng mình và sử dụng bộ chứa đó thay vì gemini-codeassist-bucket. Phần tiếp theo sẽ hướng dẫn bạn cách thực hiện.

(Không bắt buộc) Tạo bộ chứa Cloud Storage của riêng bạn

Hãy để Gemini giúp chúng tôi cung cấp các lệnh để tạo một bộ chứa, giúp mọi người truy cập vào bộ chứa đó và tải các đối tượng mẫu lên bộ chứa đó.

Hãy bắt đầu bằng câu lệnh sau: "What is the gcloud Command to create a publicBộ chứa trong Google Cloud Storage?"

Thao tác này sẽ cung cấp cho bạn một lệnh gcloud để tạo một bộ chứa. Sau đây là lệnh chính xác:

gcloud storage buckets create gs://<BUCKET_NAME>

Chọn một tên duy nhất cho <BUCKET_NAME> và thực thi lệnh trong dòng lệnh.

Bây giờ, chúng ta đã tạo một bộ chứa, chúng ta muốn bộ chứa đó có thể truy cập công khai. Hãy yêu cầu Gemini cung cấp lệnh để làm việc đó thông qua câu lệnh sau: "Làm cách nào để cho phép công khai truy cập công khai một bộ chứa lưu trữ trên đám mây của Google?"

Thao tác này sẽ cung cấp cho bạn một lệnh gcloud để mọi người có thể truy cập tệp. Câu trả lời sẽ có dạng như sau:

gcloud storage buckets add-iam-policy-binding gs://<BUCKET_NAME> --member=allUsers --role=roles/storage.objectViewer

Thay thế <BUCKET_NAME> bằng tên bộ chứa mà bạn đã sử dụng trước đó rồi thực thi lệnh.

Cuối cùng, chúng tôi muốn tải một số tệp mẫu lên bộ chứa. Thực thi các lệnh sau trong dòng lệnh (Hãy nhớ thay biến <BUCKET_NAME> bằng tên bộ chứa của bạn.

touch f1.txt
touch f2.txt

gcloud storage cp f1.txt gs://<BUCKET_NAME>
gcloud storage cp f2.txt gs://<BUCKET_NAME>

Bây giờ, bạn có thể thực thi tệp utils.py bằng cách sử dụng <BUCKET_NAME> thay vì gemini-codeassist-bucket.

Dọn dẹp

Nếu đã tạo bộ chứa Google Cloud Storage của riêng mình, bạn nên xoá bộ chứa đó để tránh mọi khoản phí và rủi ro bảo mật tiềm ẩn.

Bạn có thể xoá bộ chứa bằng lệnh bên dưới:

gcloud storage buckets delete gs://<BUCKET_NAME>

8. Xin chúc mừng!

Xin chúc mừng! Bạn đã làm việc thành công với Gemini Code Assist trong một dự án mẫu để hiểu cách Gemini có thể hỗ trợ việc tạo mã, hoàn thành mã, tóm tắt mã, cũng như giúp bạn giải đáp các thắc mắc về Google Cloud.

Tài liệu tham khảo