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, để thêm các thử nghiệm vào một ứng dụng web Python hiện có, cũng như tìm và khắc phục các lỗi trong ứng dụng đó mà các thử nghiệm đưa ra. Sau đó, bạn sẽ sử dụng tính năng Hỗ trợ mã để tạo kiểm thử chức năng mới và tạo mã để vượt qua các lượt kiểm thử đó cũng như mở rộng ứng dụng.
Bạn sẽ thực hiện...
- Bạn sẽ sử dụng Cloud Shell Editor để tải mã xuống cho ứng dụng web hiện có.
- Bạn sẽ sử dụng tính năng Trò chuyện hỗ trợ mã của Gemini trong Cloud Shell Editor để đặt các câu hỏi chung về Google Cloud.
- Bạn sẽ sử dụng tính năng hỗ trợ mã cùng dòng của tính năng Hỗ trợ mã của Gemini trong Cloud Shell Editor để tạo các bài kiểm thử cho ứng dụng, chạy quy trình kiểm thử rồi tìm và khắc phục lỗi, sau đó mở rộng chức năng của ứng dụng.
Kiến thức bạn sẽ học được...
- Cách sử dụng tính năng Hỗ trợ mã của Gemini cho một số công việc của nhà phát triển như tạo thử nghiệm và tạo mã.
- Cách sử dụng Gemini Code Assist để 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 sử dụ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
Bạn phải có một Dự án trên đám mây đã bật tính năng thanh toán để sử dụng cho phòng thí nghiệm này. Giờ đây, chúng ta sẽ bật Gemini API trong dự án của mình trê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 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 Gemini mà bạn thấy ở trên cùng bên phải.
- Cửa sổ bảng điều khiển Gemini cho Cloud sẽ mở ra ở bên phải bảng điều khiển. Nhấp vào nút Bật nếu hiển thị bên dưới. Nếu bạn không thấy nút Bật mà chỉ thấy giao diện Chat, tức là bạn đã bật Gemini cho Cloud cho dự án này và có thể chuyển thẳng sang bước tiếp theo.
- Sau khi bật chế độ này, bạn có thể dùng thử Gemini 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ư Cloud Run là gì?
Trợ lý mã 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 của Hỗ trợ mã.
Bật Gemini trong Cloud Shell Editor
Tính năng Hỗ trợ mã của Gemini hiện được cung cấp và hoạt động tương tự như trong một số IDE phổ biến. Trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell Editor (Trình chỉnh sửa Google Cloud Shell chạy hoàn toàn trên trình duyệt web). Bạn cần bật và định cấu hình Gemini trong Cloud Shell Editor theo các bước dưới đây:
- Chạy Cloud Shell thông qua biểu tượng bên dưới. Có thể mất vài phút để khởi động thực thể Cloud Shell.
- Nhấp vào nút Editor (Trình chỉnh sửa) hoặc Open Editor (Mở trình chỉnh sửa) (tuỳ trường hợp) và đợi cho đến khi Cloud Shell Editor xuất hiện. Nếu bạn thấy nút Dùng thử trình chỉnh sửa mới, hãy nhấp vào nút đó.
- 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.
- Nếu không thấy biểu tượng Gemini trên thanh trạng thái ở dưới cùng bên phải, thì bạn cần bật Gemini trong Cloud Code. Trước khi bạn thực hiện việc này, hãy đảm bảo rằng Gemini (trước đây gọi là Duet AI for Developers) đã đượ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 Duet AI: Enabled (Bật) 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à thanh trạng thái Gemini sẽ xuất hiện trong IDE của bạn.
- Nhấp vào nút Gemini ở góc dưới cùng bên phải như minh hoạ rồi chọn đúng dự án Google Cloud mà chúng tôi đã bật Cloud AI Companion API.
- Sau khi chọn dự án của mình trên Google Cloud, hãy đảm bảo bạn có thể thấy dự án đó 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 Gemini ở bên phải, trong thanh trạng thái như sau:
Gemini Code Assistant đã sẵn sàng cho bạn sử dụng!
3. Tải xuống và kiểm tra ứng dụng
Trong cửa sổ dòng lệnh, hãy chạy lệnh để sao chép kho lưu trữ bằng mã khởi động rồi thay đổi sang thư mục mới (nếu cửa sổ dòng lệnh không mở nữa, hãy nhấp vào nút Terminal hoặc Open Terminal để khôi phục cửa sổ dòng lệnh):
git clone https://github.com/GoogleCloudPlatform/testing-with-duet-ai-codelab.git
cd testing-with-duet-ai-codelab
Mở main.py trong trình chỉnh sửa, sau đó mở cửa sổ Gemini Chat bằng cách nhấp vào biểu tượng trò chuyện Gemini ở bên trái trình chỉnh sửa. Cửa sổ Gemini Chat này nằm trong IDE và có mã trong IDE được cung cấp làm ngữ cảnh để thảo luận. Nhập câu lệnh Giải thích điều này rồi xem câu trả lời:
Bạn có thể cuộn cửa sổ trò chuyện này để xem toàn bộ câu trả lời. Phần giải thích cho biết chúng ta có thể chạy chương trình này trên thiết bị bằng lệnh python3 main.py
trong cửa sổ dòng lệnh.
4. Chạy cục bộ
Thay đổi sang thư mục kho lưu trữ bằng cd ~/testing-with-duet-ai-codelab
nếu cần và nhập lệnh python3 main.py
vào cửa sổ dòng lệnh:
Nhấp vào liên kết http://127.0.0.1:8080 để mở tab trình duyệt mới đến trang chủ của ứng dụng:
Ứng dụng đang chạy "cục bộ". Thực ra thì Cloud Shell Editor đã làm rất tốt. Ứng dụng đang chạy trong Cloud Shell, không chạy trên máy tính của riêng bạn. Khi bạn nhấp vào liên kết, nó đã mở một tab không đến địa chỉ cục bộ thực tế http://127.0.0.1:8080, mà đến một máy chủ proxy được Cloud Shell thiết lập cho mục đích này. Hiệu quả cũng giống như khi bạn thực sự chạy ứng dụng cục bộ.
Thử ngay nha! Nhập 25 rồi nhấn vào Convert! (Chuyển đổi!)
Đúng vậy, 25 là XXV ở Chữ số La Mã! Bạn phải hoàn tất việc này tại đây.
Bạn có thể kiểm tra một vài số điện thoại khác. 25 tuổi thì sao, còn 24 thì sao?
Có thể chúng tôi đã hơi vội vàng khi nghĩ rằng mọi thứ đều ổn. XXIIII có phải là lượt chuyển đổi chính xác cho 24 không? Không phải là XXIV sao?
Một trường hợp có thể được đưa ra là đúng XXIIII, nhưng thực sự không phải là điều mọi người thường mong đợi. Tuy nhiên, vì điều này không thực sự sai (lưu ý rằng nhiều đồng hồ hiển thị số 4 dưới dạng Số La Mã IIII) nên hãy để lỗi đó nhằm cải tiến trong tương lai.
Bạn có muốn thử số âm không? 0? Không có cách nào để trình bày những số đó bằng Chữ số La Mã. Có vẻ như không có gì phản hồi lại cho người dùng, có vẻ như đây là một lỗi cần xử lý.
Việc kiểm thử có thể giúp tìm và loại bỏ lỗi, còn Gemini Code Assistant có thể giúp chúng tôi viết và sử dụng các bài kiểm thử.
5. Thêm bài kiểm thử
Quay lại cửa sổ Gemini Chat và đặt câu hỏi
How can I test the number_to_roman function?
Đọc qua phản hồi, bao gồm việc thảo luận về mô-đun unittest và mô-đun pytest.
Bạn có thể muốn yêu cầu Gemini Code Assist thực sự viết những kiểm thử này cho bạn. Mở calendar.py (nơi mã chuyển đổi thực tế nằm) trong trình chỉnh sửa, quay lại cửa sổ Gemini Chat rồi hỏi lại
How can I test the number_to_roman function?
Phản hồi hiện đã cụ thể hơn, thậm chí bao gồm cả mô-đun unittest mà bạn có thể sao chép hoặc chèn vào tệp mới:
import unittest
import calendar
class NumberToRomanTest(unittest.TestCase):
def test_convert_1(self):
self.assertEqual(calendar.number_to_roman(1), "I")
def test_convert_4(self):
self.assertEqual(calendar.number_to_roman(4), "IV")
def test_convert_9(self):
self.assertEqual(calendar.number_to_roman(9), "IX")
def test_convert_40(self):
self.assertEqual(calendar.number_to_roman(40), "XL")
def test_convert_90(self):
self.assertEqual(calendar.number_to_roman(90), "XC")
def test_convert_400(self):
self.assertEqual(calendar.number_to_roman(400), "CD")
def test_convert_900(self):
self.assertEqual(calendar.number_to_roman(900), "CM")
def test_convert_1990(self):
self.assertEqual(calendar.number_to_roman(1990), "MCMXC")
def test_convert_2023(self):
self.assertEqual(calendar.number_to_roman(2023), "MMXXIII")
Bạn có thể thấy mã khác với ví dụ trên. Các mô hình cơ bản của tính năng Hỗ trợ mã của Gemini được cập nhật tuỳ từng thời điểm, nên câu trả lời không phải lúc nào cũng giống nhau. Nếu thấy một bộ mã khác, bạn hiện có thể chọn có tiếp tục với các mẫu hiển thị trong lớp học lập trình này hay không bằng cách sao chép mã hiển thị ở đây, hoặc bạn có thể thử câu trả lời thay thế mà Gemini Code Assist cung cấp cho bạn. Nếu có thời gian, bạn thậm chí có thể thử cả hai cách. Gemini Code Assistant là một trợ lý lập trình để bạn sử dụng khi cần.
Nhấp vào mũi tên hai đầu ở góc trên bên phải của cửa sổ Gemini Chat để tạo một tệp mới chứa mã kiểm thử đơn vị hoặc dùng IDE để tạo một tệp mới rồi dán mã xuất hiện trong phòng thí nghiệm này. Nhấn Ctrl-S hoặc CMD-S trong cửa sổ đó để lưu tệp và gọi tệp đã lưu calendar-unittest.py.
Quay lại cửa sổ dòng lệnh và nhấn Ctrl-C để dừng máy chủ web mà bạn đang chạy trước đó và nhận lời nhắc shell. Nhập lệnh
python3 calendar-unittest.py
để chạy các bài kiểm thử mới.
Không có dữ liệu đầu ra. Đó không phải là điều được mong đợi. Mọi thứ có diễn ra một cách im lặng không? Chắc chắn bạn muốn biết điều đó. Hãy xem lại câu trả lời của Gemini Code Hỗ trợ kèm theo mã kiểm tra. Bên dưới mã này có thêm thông tin về cách chạy trường hợp kiểm thử:
Hãy thử chạy lệnh được đề xuất:
python -m unittest discover
Có thể bạn sẽ gặp vấn đề nếu máy của bạn không đặt bí danh lệnh python3
thành python
, trong trường hợp đó sẽ chạy:
python3 -m unittest discover
Lệnh này sẽ chạy nhưng trả về Ran 0 tests in 0.000s
. Mô-đun này có một số bài kiểm thử. Chuyện gì đang xảy ra?
Đó là từ cuối cùng trong lệnh, discover
. Thông tin này đến từ đâu? Có vẻ như tính năng Hỗ trợ mã của Gemini dự kiến sẽ lưu mã kiểm thử trong một tệp có tên discover
hoặc discover.py
, nhưng lại không chỉ định đó là việc bạn nên làm. Vì thực ra bạn đã lưu tệp trong calendar-unittest.py
, nên hãy thử chạy lệnh:
python3 -m unittest calendar-unittest
Bây giờ, bạn sẽ thấy rất nhiều kết quả, bắt đầu bằng:
$ python3 -m unittest calendar-unittest
.F.FFFFFF
======================================================================
FAIL: test_convert_1990 (calendar-unittest.NumberToRomanTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/charles_engelke/testing-with-duet-ai-codelab/calendar-unittest.py", line 28, in test_convert_1990
self.assertEqual(calendar.number_to_roman(1990), "MCMXC")
AssertionError: 'MDCCCCLXXXX' != 'MCMXC'
- MDCCCCLXXXX
+ MCMXC
Dòng đầu tiên hiển thị một khoảng thời gian cho mỗi lần kiểm thử thành công và F
cho mỗi lần kiểm thử không đạt. Hầu hết các kiểm thử đều không thành công! Sau đó, ví dụ này liệt kê từng lượt kiểm thử không đạt, cho thấy kết quả dự kiến và kết quả thực tế. Tôi chưa hiểu rõ về thứ tự chạy các lượt kiểm thử này. Đây là tên bài kiểm tra theo thứ tự bảng chữ cái, chứ không phải thứ tự xuất hiện của bài kiểm tra trong tệp. Vì vậy, test_convert_1
chạy trước, sau đó là test_convert_1990
, sau đó chạy test_convert_2023
, v.v. Các trường hợp kiểm thử cho 1
và 2023
là những trường hợp duy nhất đạt.
Khi dùng thử mã này lần đầu, bạn nhận thấy mã đã chuyển đổi 24
thành XXIIII
. Đây không phải là dạng sai chính xác, nhưng không phải là dạng phổ biến trong đó IIII
được chuyển đổi thành IV
. Tất cả các lượt kiểm thử không đạt là dành cho các trường hợp tương tự. Khi phát hiện vấn đề này lần đầu, phòng thí nghiệm cho biết: "Tuy nhiên, vì điều này không thực sự sai (lưu ý rằng nhiều đồng hồ hiển thị 4
dưới dạng Chữ số La Mã IIII
) hãy để vấn đề đó cải tiến trong tương lai".
Bạn có thể thay đổi các trường hợp kiểm thử để dự kiến và chấp nhận thông báo lỗi "không thực sự sai" câu trả lời mà mã được cung cấp hoặc chấp nhận rằng đã đến lúc "nâng cao trong tương lai" đó. Vì vậy, bước tiếp theo bạn cần làm là sửa mã, với sự trợ giúp của tính năng Trợ lý mã của Gemini, để đưa ra những câu trả lời chính xác hơn mà quá trình kiểm thử mong đợi.
6. Cải tiến mã
Hãy nhớ rằng những phản hồi như XXIIII
cho 24
, thay vì XXIV
phổ biến hơn, được cho là "không thực sự sai" và đã bị hoãn để nâng cao trong tương lai. Tương lai đó chính là bây giờ. Những ý kiến này "không thực sự sai" câu trả lời vẫn gây khó chịu.
Quy tắc đầu tiên cho các chữ số lặp lại trong số La Mã là: bất cứ khi nào bạn có bốn chữ số giống nhau trong một hàng, các chữ số đó phải được thay thế bằng một trong các chữ số theo sau là chữ số cao hơn tiếp theo. Vì vậy, bạn nên thay thế XXIIII
bằng XXIV
. Tương tự như vậy, XXXX
phải được thay đổi thành XL
và CCCC
sẽ trở thành CD
.
Hãy hỏi Gemini Code Assist cách thay đổi giá trị của biến roman theo cách sau ngay trước khi biến đó được trả về bằng number_to_roman:
If the final value of roman has IIII in it, that should be replaced by IV. Similarly XXXX should be replaced by XL, and CCCC should become CD. How can I make those changes?
Bạn nên thêm một số mã ở cuối:
Sao chép/dán hoặc nhập các dòng đó vào trình chỉnh sửa, sau đó xem điều gì sẽ xảy ra:
Tính năng Hỗ trợ mã của Gemini đã thêm nhiều dòng lệnh hơn để xử lý các trường hợp mà bạn có thể gặp phải sau khi thực hiện nhóm thay thế đầu tiên. Ví dụ: 19 sẽ được chuyển thành XVIIII, sau đó thành XVIV và cuối cùng thành đúng XIX.
Nếu tính năng Hỗ trợ mã của Gemini đưa ra các đề xuất có vẻ hữu ích, hãy nhấn phím Tab để chấp nhận đề xuất, lưu tệp và chạy lại máy chủ web. Nếu không, hãy thêm các dòng hiển thị trong ví dụ tại đây theo cách thủ công và lưu tệp. Hãy thử một chuyển đổi khó khăn: 1999:
Chính xác!
Chạy lại chương trình kiểm thử ngay. Tất cả đều thành công!
Ứng dụng web có vẻ đã sẵn sàng để đưa vào sản xuất.
7. Triển khai lên Cloud Run
Cloud Run sẽ chạy một ứng dụng trong vùng chứa trên Internet cho bạn. Đối với các ứng dụng được viết bằng các khung phổ biến, chẳng hạn như Flash, lệnh gcloud run deploy
thậm chí sẽ tạo vùng chứa đó cho bạn trước khi triển khai. Chạy lệnh:
gcloud run deploy
Trong cửa sổ dòng lệnh. Khi được hỏi vị trí của mã nguồn, hãy nhấn Enter để chấp nhận vị trí chính xác mà mã nguồn đề xuất. Tương tự, khi được yêu cầu cung cấp tên dịch vụ, hãy nhấn Enter để chấp nhận đề xuất.
Lệnh này có thể không thực hiện được vì gcloud không thể xác định dự án sẽ sử dụng. Trong trường hợp đó, hãy chạy lệnh:
gcloud config set core/project <project-id>
trong đó
được thay thế bằng mã dự án của bạn (có thể giống với tên của dự án). Sau đó, chạy lại lệnh gcloud run deploy
.
- Lệnh này sẽ nhắc bạn rằng một số API cần thiết và chưa được bật. Nhập y để bật các tính năng đó cho bạn.
- Khi được yêu cầu chọn một khu vực, hãy chọn một khu vực thuận tiện cho bạn. Việc nhập số tương ứng với
us-central1
là một lựa chọn an toàn. - Khi được yêu cầu, hãy nhập Y để tiếp tục.
- Bạn sẽ muốn cho phép các lệnh gọi chưa được xác thực đối với dịch vụ Cloud Run này. Phương thức xác thực mà Cloud Run sử dụng phù hợp để dùng cho các chương trình gọi dịch vụ. Vì đây là một trang web nên bạn sẽ không sử dụng phương thức xác thực.
Google Cloud sẽ xây dựng, triển khai vùng chứa, định tuyến lưu lượng truy cập đến vùng chứa đó và thiết lập chính sách truy cập, sau đó cho bạn thấy đường liên kết đến trang chủ:
Bạn có thể truy cập đường liên kết đó rồi truy cập vào ứng dụng của mình.
Nhập một số và nhấn Enter, tada!
Gì cơ!
Ứng dụng này đã hoạt động trên máy của bạn! Vì sao việc này chưa hoàn tất?
Tìm hiểu ngay. Hỏi Gemini Hỗ trợ viết mã.
Why am I getting an internal server error on cloud run?
Có vẻ như Gemini Code Assistant có thể đọc tệp nhật ký này, nội dung tương tự như vậy. Hãy đặt câu hỏi của Gemini Code Assist làm thế nào bạn có thể tự xem nhật ký của mình:
Hãy tiếp tục và thực hiện việc đó. Tìm các dòng có màu đỏ !! chỉ báo lỗi, như dưới đây:
Tiếp theo là nhiều dòng chi tiết về ngăn xếp lệnh gọi đến đây, nhưng sau đó là:
Khi xem tệp calendar.py, bạn sẽ thấy hàm number_to_roman ngay tại đó! Và bạn biết điều đó là đúng vì nó hoạt động trên máy của bạn. Điều gì có thể khác trong Cloud Run?
Câu trả lời khá phức tạp. Có một mô-đun tiêu chuẩn đi kèm với Python3 là calendar, cũng giống như tệp calendar.py mà hàm number_to_roman được định nghĩa. Trên máy cục bộ của bạn, khi Python tìm kiếm một mô-đun có tên là calendar, công cụ này đã tìm kiếm thư mục ứng dụng của bạn trước tiên. Có vẻ như trước tiên, Python trên Cloud Run đã tìm các mô-đun tiêu chuẩn, nhập mô-đun đó và không tìm thấy hàm number_to_roman.
Những kiểu khác biệt này trong môi trường luôn có thể xảy ra. Rất may là khi một ứng dụng được lưu trữ trong vùng chứa, nó sẽ mang môi trường bên trong nó, vì vậy, bất cứ khi nào chạy ứng dụng, bạn đều có thể gặp phải hành vi tương tự. Nếu bạn từng chạy cùng một ứng dụng trong vùng chứa như Cloud Run, thì bạn cũng gặp phải vấn đề tương tự.
Khắc phục sự cố này. Bạn cần phải thay đổi tên của mô-đun lịch địa phương thành tên nào đó cũng không phải là tên mô-đun chuẩn. Đổi tên tệp calendar.py thành my_calendar.py, sau đó đổi các dòng import calendar
trong main.py và calendar-unittest.py thành import my_calendar
. Cuối cùng, hãy thay đổi dòng
roman = calendar.number_to_roman(number)
tới
roman = my_calendar.number_to_roman(number)
Hãy thử trên thiết bị cục bộ, chạy kiểm thử rồi triển khai lại:
gcloud run deploy
Và giờ đây tính năng này đã hoạt động:
Bạn có thể chia sẻ URL này và những người cần công cụ chuyển đổi Chữ số La Mã có thể sử dụng URL của bạn.
8. Không bắt buộc: Làm cho ảnh đẹp hơn
Ứng dụng của bạn đang chạy tốt và mọi người trên web đều có thể truy cập được. Tuy nhiên, giao diện thì hơi đơn giản. Trước khi nói với mọi người về tính năng này, tại sao bạn không yêu cầu Gemini Code Assistant cải thiện giao diện của Gemini?
Mở tệp templates/index.html
. Trong cửa sổ trò chuyện của Gemini, hãy hỏi:
Make this index.html file use material design.
Phản hồi là để bổ sung vào tệp hiện tại, dẫn đến kết quả tương tự như sau:
<!DOCTYPE html>
<html>
<head>
<title>Roman Numerals</title>
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
<script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
</head>
<body>
<h1 class="mdl-typography--title">Roman Numerals</h1>
<form action="/convert" method="post">
<div class="mdl-textfield mdl-js-textfield">
<input class="mdl-textfield__input" type="text" id="number" name="number" required />
<label class="mdl-textfield__label" for="number">Enter a number:</label>
</div>
<button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
Convert!
</button>
</form>
</body>
</html>
Sử dụng biểu tượng để sao chép mã được đề xuất và dán lên nội dung hiện có của index.html. Trong cửa sổ dòng lệnh, hãy chạy python3 main.py
rồi nhấp vào đường liên kết để mở cửa sổ xem trước. Giờ thì trang đã hơi đơn giản hơn:
Bạn có thể lặp lại thao tác này với tệp convert.html nếu muốn.
Gemini Code Assist biết khá nhiều về CSS và bạn có thể nhờ Gemini giúp tạo kiểu cho các trang ứng dụng theo nhiều cách khác nhau. Đây chỉ mới là bước khởi đầu.
Vì bạn muốn chia sẻ ứng dụng này, đừng quên triển khai lại ứng dụng lên Cloud Run:
gcloud run deploy
Bạn có thể chuyển URL này cho những người cần chuyển đổi sang Chữ số La Mã.
9. Xin chúc mừng!
Xin chúc mừng! Bạn đã làm việc thành công với tiện ích Hỗ trợ mã của Gemini để thêm các bài kiểm thử vào một ứng dụng, sửa lỗi trong ứng dụng và thêm chức năng nâng cao.
Khi dùng xong ứng dụng do bạn tạo, bạn có thể xoá ứng dụng đó khỏi trang tổng quan Cloud Console để tránh phải trả thêm bất kỳ khoản phí nào có thể phát sinh trong tương lai.