1. Giới thiệu
Trong phòng thí nghiệm này, bạn sẽ sử dụng Gemini Code Assist, 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 sử dụng Gemini Chat và tính năng hỗ trợ mã nội tuyến để tạo mã, hiểu mã và các tác vụ lập trình khác được AI hỗ trợ.
Những việc bạn sẽ làm...
- 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 Cloud Shell IDE để đặt các câu hỏi chung về Google Cloud.
- Bạn sẽ sử dụng tính năng hỗ trợ mã nội tuyến 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 Gemini Code Assist cho một số tác 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 Cloud Assist để tìm hiểu về Google Cloud.
Những thứ 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
- Gemini Code Assist được bật cho Dự án trên đám mây
Lớp học này dành cho 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 này sử dụng ngôn ngữ Python, nhưng bạn không cần phải quen thuộc với việc lập trình bằng Python để hiểu những gì đang diễn ra. Chúng ta sẽ tập trung tìm hiểu các tính năng của Gemini Code Assist dành cho nhà phát triển.
2. Thiết lập
Phần này trình bày mọi việc bạn cần làm để bắt đầu với lớp học này.
Bật Cloud Assist trong dự án trên Google Cloud
Giờ đây, chúng ta sẽ bật Cloud Assist trong Dự án Google Cloud. Hãy làm theo các bước dưới đây:
- Truy cập vào https://console.cloud.google.com và đảm bảo bạn đã chọn Dự án trên Google Cloud mà bạn dự định sử dụng cho phòng thí nghiệm này. Nhấp vào biểu tượng Mở Gemini ở trên cùng bên phải.

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

- Sau khi bật tính năng này, bạn có thể dùng thử Cloud Assist bằng cách đưa ra một hoặc hai câu lệnh. Một vài truy vấn mẫu sẽ xuất hiện nhưng bạn có thể thử một truy vấn như
What is Cloud Run?

Cloud Assist sẽ trả lời câu hỏi của bạn. Bạn có thể nhấp vào biểu tượng
ở góc trên cùng bên phải để đóng cửa sổ trò chuyện Cloud Assist.
Bật Gemini Code Assist trong Cloud Shell IDE
Chúng ta sẽ dùng Cloud Shell IDE, một môi trường phát triển dựa trên Code 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. Chúng ta cần bật và định cấu hình Trợ lý mã trong Cloud Shell IDE. Các bước thực hiện như sau:
- Truy cập vào ide.cloud.google.com. Có thể mất một lúc thì IDE mới xuất hiện, vì vậy, vui lòng kiên nhẫn chờ đợi.
- Nhấp vào nút Cloud Code – Sign in (Cloud Code – Đăng nhập) trong thanh trạng thái dưới cùng như minh hoạ. Uỷ quyền cho trình bổ trợ theo hướng dẫn. Nếu bạn thấy "Cloud Code – no project" (Cloud Code – không có dự án) trong thanh trạng thái, hãy chọn mục đó rồi chọn Dự án cụ thể trên Google Cloud trong danh sách các dự án mà bạn dự định làm việc.

- Nhấp vào nút Gemini ở góc dưới cùng bên phải như minh hoạ rồi chọn dự án trên đám mây của Google chính xác thêm một lần nữa. Nếu được yêu cầu bật Gemini for Google Cloud API, vui lòng bật và tiếp tục.
- Sau khi chọn dự án Google Cloud, hãy đảm bảo rằng bạn có thể thấy dự án đó trong thông báo trạng thái Cloud Code trên thanh trạng thái và bạn cũng đã bật Trợ lý lập trình ở bên phải, trong thanh trạng thái như minh hoạ bên dưới:

Gemini Code Assist đã sẵn sàng để 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 cần bật Gemini trong Cloud Code. Trước khi thực hiện, hãy đảm bảo bạn đã bật Gemini trong IDE bằng cách chuyển đến Cloud Code Extension → Settings (Tiện ích Cloud Code → Cài đặt), rồi nhập văn bản Gemini như minh hoạ bên dưới. Đảm bảo bạn đã chọn hộp đánh dấu. 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 trong thanh trạng thái sẽ xuất hiện trong IDE của bạn.

3. Tạo ứng dụng mẫu
Chúng ta sẽ tạo một ứng dụng mẫu (ứng dụng Python Flask) để khám phá các tính năng của Gemini Code Assist.
Hãy làm theo các bước sau:
- Nhấp vào tên dự án trên Google Cloud trong thanh trạng thái bên dưới.

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

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

4. Trò chuyện với Gemini
Chúng ta sẽ bắt đầu bằng cách tìm hiểu cách trò chuyện với Gemini. Gemini có sẵn dưới dạng trợ lý trò chuyện trong Cloud Shell IDE trong phần mở rộng Cloud Code trong VS Code. Bạn có thể mở bảng điều khiển này bằng cách nhấp vào nút Gemini trong thanh điều hướng bên trái. Tìm biểu tượng Gemini
trong 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ở ngăn Chat: Gemini trong Cloud Shell IDE và bạn có thể trò chuyện với Gemini để được trợ giúp về Google Cloud.

Hãy sử dụng ngăn trò chuyện với Gemini để nhập câu lệnh và xem câu trả lời từ Gemini. Nhập câu lệnh sau:
What is Cloud Run?
Gemini nên trả lời bằng thông tin chi tiết về Cloud Run. Câu lệnh là những câu hỏi hoặc câu nói mô tả thông tin trợ giúp mà bạn cần. Câu lệnh có thể bao gồm ngữ cảnh từ mã hiện có mà Google Cloud phân tích để đưa ra câu trả lời hữu ích hoặc đầy đủ hơn. Để biết thêm thông tin về cách viết câu lệnh để tạo ra câu trả lời hiệu quả, hãy xem bài viết Viết câu lệnh hiệu quả 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 riêng 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?
Hãy chú ý đến biểu tượng thùng rác ở trên cùng. Đây là cách để bạn đặt lại ngữ cảnh cho nhật ký trò chuyện của Code Assist. Cũng lưu ý rằng cuộc trò chuyện này có liên quan đến(các) tệp mà bạn đang làm việc trong IDE.
5. Giải thích mã
Để giúp bạn làm việc hiệu quả hơn trong khi giảm thiểu việc chuyển đổi ngữ cảnh, Gemini Code Assist cung cấp các thao tác 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 Assist để hiểu các phần của mã xử lý ứng dụng. Quay lại ứng dụng mà chúng ta đã tạo ở bước trước. Bạn có thể dùng Gemini Code Assist để giải thích các tệp và mã có trong IDE.
- Nếu không thấy các tệp này, hãy nhấp vào Explorer (Trình khám phá) (
) trong thanh hoạt động của IDE. - Trong ngăn Explorer (Trình khám phá), hãy chọn Dockerfile.
- Bạn có thể chọn bất kỳ phần nào trong nội dung tệp, nhấp vào biểu tượng bóng đèn (
), rồi 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 ENTRYPOINT, nhấp vào bóng đèn (
), rồi nhấp vào Gemini: Giải thích điều này. Gemini sẽ tạo một lời giải thích bằng ngôn ngữ tự nhiên về phần cụ thể của Dockerfile mà bạn cần thêm thông tin. Gemini sẽ trả lời bằng thông tin chi tiết về chỉ dẫn ENTRYPOINT. Bạn sẽ biết rằng với chỉ dẫn này, Docker sẽ chạy tệp app.pykhi vùng chứa khởi chạy. - Để xem nội dung của tệp
app.py, trong thanh hoạt động, hãy nhấp vào Explorer (Trình khám phá) (
), rồi chọn app.py. - Trong phần định nghĩa hàm hello(), bạn có thể chọn những dòng mà bạn muốn biết thêm thông tin. Sau đó, hãy nhấp vào biểu tượng bóng đèn (
), rồi nhấp vào Gemini : Giải thích nội dung này. Trong ví dụ này, chúng ta đã chọn 2 dòng mã sau đây rồi kích hoạt thao tác Gemini: Giải thích nội dung này.

- Gemini trả lời bằng một lời giải thích chi tiết về 2 biến môi trường Cloud Run này (
K_SERVICE, K_REVISION) và cách chúng được dùng trong mã xử lý ứng dụng. Xin lưu ý rằng Gemini, với kiến thức về Google Cloud và các dịch vụ như Cloud Run, không chỉ giải thích mã Python mà còn cung cấp bối cảnh về ý nghĩa của những biến đó trong Cloud Run.
Hãy thử những cách khác sau đây để nhận được lời giải thích về mã:
- Giữ app.py làm tệp đang mở trong IDE. Chuyển đến ngăn trò chuyện với Gemini trong thanh điều hướng bên trái của VS Code 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.
- Bạn cũng có thể chọn một phần bất kỳ trong tệp rồi sử dụng ngăn trò chuyện với Gemini ở bên trái, nhập câu lệnh Giải thích phần này. Thao tác này sẽ chỉ giải thích phần đã chọn của tệp. Thao tác này tương tự như khi bạn nhấp vào bóng đèn(
) rồi nhấp vào Gemini: Giải thích nội dung này. - Bạn cũng có thể chọn một phần văn bản rồi nhấp vào Gemini: Thao tác thông minh ở trên cùng bên phải trong IDE như minh hoạ 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 đó sẽ là hành động Giải thích điều này:

6. Tạo mã bằng câu lệnh
Phần này hướng dẫn cách dùng Gemini Code Assist để tạo mã từ các nhận xét.
Hãy dùng thử các tính năng này. Hãy làm theo các bước dưới đây:
- Tạo một tệp mới có tên là
utils.py. - 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ấnEnter(đối với Windows và Linux) hoặcReturn(đối với macOS). Gemini có thể cố gắng tạo mã khi bạn nhập nhưng đừng chấp nhận mã đó. Chúng ta sẽ kích hoạt quá trình tạo mã trong bước tiếp theo. - Để kích hoạt quá trình tạo mã, hãy nhấn tổ hợp phím
Control+Enter(đối với Windows và Linux) hoặcControl+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ưới dạng văn bản mờ. Thao tác này sẽ cung cấp cho bạn một hoặc nhiều đề xuất về mã cùng với một thanh công cụ. Thông qua thanh công cụ này, bạn có thể chuyển từ đề xuất mã này sang đề xuất mã khác (trong trường hợp có nhiều đề xuất). Bạn thậm chí có thể chấp nhận bất kỳ đề xuất nào về mã 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 lên mã đã tạo để thanh công cụ xuất hiện lại. - Không bắt buộc: Để chấp nhận mã được tạo, hãy nhấn
Tab. Trong trường hợp có nhiều đề xuất, bạn có thể nhấnTabnhiều lần để chuyển từ một đoạn mã được đề xuất sang đ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ã được cung cấp cho bạn có thể khác với mã bên dưới. Nếu các phương thức khác được tạo, bạn có thể xoá các phương thức đó sau khi chấp nhận mã.

Bạn có thể nhận thấy hoặc không nhận thấy các đường gợn sóng trong mã. Nếu có, thì đây là Trích dẫn mã đang hoạt động. Nếu bạn di chuột lên bất kỳ dòng nào, dòng đó sẽ hiển thị thông tin ghi nhận tác giả 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ạ:

Sau đó, bạn có thể chọn bỏ qua cảnh báo trích dẫn bằng cách nhấp vào Quick Fix ... (Khắc phục nhanh...). Thao tác này sẽ hiển thị đề xuất Khắc phục nhanh, một ví dụ được minh hoạ dưới đây:

Bạn có thể chọn Bỏ qua cảnh báo trích dẫn nếu chấp nhận giấy phép mã.
(Không bắt buộc) Sau đây là một số đề xuất khác mà bạn có thể thử để tạo mã:
- Bạn cũng có thể sử dụng tính năng trò chuyện với Gemini để đặt cùng một câu lệnh và nhận được câu trả lời trong cửa sổ trò chuyện. Sau đó, giao diện Chat sẽ 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.
- Hãy thử các câu lệnh của riêng bạn cho mã mẫu mà bạn muốn. Dưới đây là một số đề xuất (giả sử bạn đang ở trong một trong các tệp python): hoặc chọn một trong số các câu lệnh dưới đây:
- Viết mã Python để xuất bản một thông báo lên Google Cloud Pub/Sub
- Viết mã Python để khởi tạo một ứ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 mã cùng dòng trong khi bạn viết mã
Trong khi bạn viết mã, Gemini Code Assist sẽ đưa ra các đề xuất mã nội tuyến 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 trong phần trước :
- Mở tệp
utils.pylàm tệp hiện tại trong Cloud Shell IDE. - Một trong những việc chúng ta có thể làm là cung cấp các câu lệnh
importchính xác nếu chúng không có trong mã được tạo. - Bắt đầu nhập từ
import, bạn sẽ thấy Gemini Code Assist đề xuất mã dưới dạng văn bản mờ. Để chấp nhận đề xuất mã của Gemini Code Assist, hãy nhấnTab. Nếu không, để bỏ qua đề xuất, hãy nhấnEschoặc tiếp tục viết mã. Trong màn hình mẫu bên dưới, màn hình này đề xuất nhập lớpstoragevì lớp này đang được dùng trong mã. NhấnTabđể chấp nhận đề xuất mã. Đây cũng là câu lệnhimport osđược đề xuất, nhưng vì không cần thiết nên chúng ta có thể xoá câu lệnh này.

- Chuyển đến cuối tệp
utils.pyrồi thêm dòng để gọi hàm (nếu chưa được cung cấp). Trong trường hợp này, đó là hàmprint_blobs. Bạn chỉ cần bắt đầu nhập tên hàm và tính năng hoàn tất mã sẽ giúp bạn hoàn tất câu lệnh. - Bạn sẽ cần cung cấp bucket_name và có thể sử dụng tên bucket công khai sau :
gemini-codeassist-bucket.Dưới đây là lệnh gọi mẫu cho hàm này. Xin lưu ý rằng bạn có thể thấy một số điểm 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ì đã viết mã để liệt kê các blob trong một bộ chứa Google Cloud Storage, nên chúng ta 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ạ bên dưới. 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 khởi chạy một phiên Terminal 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 (Thiết bị đầu cuối → Thiết bị đầu cuối mới) như minh hoạ dưới đây:

Trong phiên 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 có trong bộ chứa Google Cloud Storage công khai. Lý tưởng nhất là bạn sẽ thấy 2 blob được liệt kê trong đầu ra (file1.txt và file2.txt).
Khắc phục sự cố
Trong trường hợp gặp lỗi "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 việc đó.
(Không bắt buộc) Tạo bộ chứa Cloud Storage riêng
Hãy nhờ Gemini cung cấp cho chúng ta các lệnh để tạo một vùng lưu trữ, cho phép truy cập công khai vào vùng lưu trữ đó và tải các đối tượng mẫu lên vùng lưu trữ.
Bắt đầu bằng câu lệnh sau: "What is the gcloud command to create a public bucket in Google Cloud Storage?" (Lệnh gcloud để tạo một vùng lưu trữ công khai trong Google Cloud Storage là gì?)
Thao tác này sẽ cung cấp cho bạn một lệnh gcloud để tạo một vùng chứa. Lệnh chính xác được trình bày bên dưới:
gcloud storage buckets create gs://<BUCKET_NAME>
Chọn một tên riêng biệt cho <BUCKET_NAME> rồi thực thi lệnh trong thiết bị đầu cuối.
Sau khi tạo một vùng lưu trữ, chúng ta muốn vùng lưu trữ này có thể truy cập công khai. Hãy hỏi Gemini cung cấp lệnh để thực hiện việc đó bằng cách sử dụng câu lệnh sau: "Làm cách nào để tạo một nhóm lưu trữ trên Google Cloud có thể truy cập công khai?"
Thao tác này sẽ cung cấp cho bạn một lệnh gcloud để giúp mọi người truy cập được vào tệp. Phản hồ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 đã dùng trước đó rồi thực thi lệnh.
Cuối cùng, chúng ta sẽ tải một số tệp mẫu lên vùng lưu trữ. Thực thi các lệnh sau trong cửa sổ dòng lệnh (Nhớ thay thế biến <BUCKET_NAME> bằng tên nhóm 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>
Giờ đây, 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á vùng chứa bằng lệnh dưới đây:
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 trên một dự án mẫu để hiểu cách công cụ này có thể hỗ trợ bạn trong việc Tạo mã, Hoàn tất mã, Tóm tắt mã và giúp bạn giải đáp các câu hỏi về Google Cloud.