Xây dựng ứng dụng trong kỷ nguyên AI

1. Tổng quan

Trong lớp học này, bạn sẽ sử dụng các sản phẩm AI tạo sinh của Google để xây dựng cơ sở hạ tầng trong Google Cloud với sự trợ giúp của tính năng Trợ lý trên đám mây của Gemini, truy vấn dữ liệu BigQuery bằng ngôn ngữ tự nhiên cho các tính năng SQL của Data Canvas, viết mã trong sổ tay Jupyter của Colab Enterprise và trong Eclipse Theia (Visual Studio Code) với sự trợ giúp của tính năng Trợ lý mã của Gemini, đồng thời tích hợp các tính năng tìm kiếm và trò chuyện bằng AI được xây dựng trên Cloud Storage và BigQuery trong Trình tạo tác nhân AI của Vertex.

Mục tiêu của chúng tôi là tạo một trang web dạy nấu ăn và công thức nấu ăn có tên là AI Recipe Haven. Trang web sẽ được xây dựng bằng Python và Streamlit, đồng thời sẽ chứa hai trang chính. Cooking Advice sẽ lưu trữ một chatbot mà chúng ta sẽ tạo bằng Gemini và một nguồn dựa trên Trình tạo tác nhân Vertex AI liên kết với một nhóm sách dạy nấu ăn. Chatbot này sẽ đưa ra lời khuyên về nấu ăn và trả lời các câu hỏi liên quan đến nấu ăn. Tìm kiếm công thức nấu ăn sẽ là một công cụ tìm kiếm do Gemini cung cấp, lần này dựa trên cơ sở dữ liệu công thức nấu ăn của BigQuery.

Nếu bạn gặp khó khăn với bất kỳ mã nào trong bài tập này, giải pháp cho tất cả các tệp mã đều nằm trong kho lưu trữ GitHub của bài tập trên nhánh solution (giải pháp).

Mục tiêu

Trong lớp học này, bạn sẽ tìm hiểu cách thực hiện các nhiệm vụ sau:

  • Kích hoạt và sử dụng tính năng Trợ lý trên đám mây của Gemini
  • Tạo ứng dụng tìm kiếm trong Vertex AI Agent Builder cho chatbot tư vấn nấu ăn
  • Tải và dọn dẹp dữ liệu trong sổ tay Colab Enterprise nhờ sự trợ giúp của tính năng Gemini Code Assist
  • Tạo ứng dụng tìm kiếm trong Vertex AI Agent Builder cho trình tạo công thức nấu ăn
  • Xác định ứng dụng web Python và Streamlit cốt lõi, với một chút trợ giúp của Gemini
  • Triển khai ứng dụng web lên Cloud Run
  • Kết nối trang Cooking Advice với ứng dụng Trình tạo tác nhân tìm kiếm sách nấu ăn
  • (Không bắt buộc) Kết nối trang Tìm kiếm công thức với ứng dụng Trình tạo tác nhân tìm kiếm công thức
  • (Không bắt buộc) Khám phá ứng dụng hoàn thiện

2. Điều kiện tiên quyết

  1. Nếu chưa có Tài khoản Google, bạn phải tạo Tài khoản Google.
    • Sử dụng tài khoản cá nhân thay vì tài khoản công việc hoặc trường học. Tài khoản công việc và tài khoản trường học có thể có các quy định hạn chế khiến bạn không bật được các API cần thiết cho lớp học này.

3. Thiết lập dự án

  1. Đăng nhập vào Google Cloud Console.
  2. Bật tính năng thanh toán trong Cloud Console.
    • Bạn sẽ mất chưa đến 1 USD để hoàn thành lớp học này về tài nguyên trên đám mây.
    • Bạn có thể làm theo các bước ở cuối lớp học này để xoá tài nguyên nhằm tránh bị tính thêm phí.
    • Người dùng mới đủ điều kiện dùng thử miễn phí 300 USD.
    • Bạn sẽ tham dự sự kiện trực tuyến về lớp học thực hành? Bạn có thể nhận được 5 USD tín dụng.
  3. Tạo dự án mới hoặc chọn sử dụng lại một dự án hiện có.
  4. Xác nhận rằng bạn đã bật tính năng thanh toán trong phần Dự án của tôi trong Cloud Billing
    • Nếu dự án mới của bạn có nội dung Billing is disabled trong cột Billing account:
      1. Nhấp vào biểu tượng ba dấu chấm trong cột Actions
      2. Nhấp vào Thay đổi thông tin thanh toán
      3. Chọn tài khoản thanh toán mà bạn muốn sử dụng
    • Nếu bạn đang tham dự một sự kiện trực tiếp, tài khoản đó có thể có tên là Tài khoản thanh toán dùng thử Google Cloud Platform

4. Kích hoạt và sử dụng tính năng Trợ lý trên đám mây của Gemini

Trong nhiệm vụ này, chúng ta sẽ kích hoạt và sử dụng tính năng Trợ lý trên đám mây của Gemini. Khi bạn làm việc trong Google Cloud Console, tính năng Trợ lý đám mây của Gemini có thể đưa ra lời khuyên, giúp bạn xây dựng, định cấu hình và theo dõi cơ sở hạ tầng Google Cloud, thậm chí có thể đề xuất các lệnh gcloud và viết tập lệnh Terraform.

  1. Để kích hoạt tính năng Trợ lý trên đám mây, hãy nhấp vào hộp Tìm kiếm ở đầu giao diện người dùng Cloud Console rồi chọn Hỏi Gemini hoặc Hỏi Gemini về Cloud Console.
  2. Di chuyển đến phần API bắt buộc của trang rồi Bật API Gemini cho Google Cloud.
  3. Nếu bạn không thấy giao diện trò chuyện ngay lập tức, hãy nhấp vào Bắt đầu trò chuyện. Bắt đầu bằng cách yêu cầu Gemini giải thích một số lợi ích của việc sử dụng Trình chỉnh sửa Cloud Shell. Hãy dành vài phút để khám phá phản hồi đã tạo.
  4. Tiếp theo, hãy hỏi về các lợi ích của Trình tạo tác nhân và cách công cụ này có thể giúp tạo ra các câu trả lời tạo sinh.
  5. Cuối cùng, hãy xem xét một ví dụ so sánh. Trong cửa sổ trò chuyện Gemini của Google Cloud Console, hãy đặt câu hỏi sau:
    What are the major steps to creating a search app grounded in a GCS data source using Vertex AI Agent builder?
    

5. Tạo ứng dụng tìm kiếm trong Vertex AI Agent Builder cho chatbot tư vấn nấu ăn

Trang web mà chúng ta đang xây dựng sẽ có một trang tư vấn nấu ăn chứa một chatbot được thiết kế để giúp người dùng tìm câu trả lời cho các câu hỏi liên quan đến việc nấu ăn. Ứng dụng này sẽ được Gemini cung cấp dựa trên một nguồn chứa 70 sách dạy nấu ăn thuộc phạm vi công cộng. Sách dạy nấu ăn sẽ đóng vai trò là nguồn đáng tin cậy mà Gemini sử dụng khi trả lời câu hỏi.

  1. Sử dụng hộp tìm kiếm Cloud Console để chuyển đến Vertex AI. Trên Trang tổng quan, hãy nhấp vào Bật tất cả API được đề xuất. Quá trình này có thể mất vài phút. Nếu bạn thấy một hộp bật lên về việc cần bật chính API Vertex AI, vui lòng Bật API đó. Sau khi bật các API, bạn có thể chuyển sang bước tiếp theo.
  2. Sử dụng tính năng tìm kiếm để chuyển đến Agent Builder (Trình tạo tác nhân), sau đó Tiếp tục và kích hoạt API.
  3. Như Gemini đã đề xuất trong phần tư vấn trước, việc tạo ứng dụng tìm kiếm trong Trình tạo tác nhân bắt đầu bằng việc tạo một nguồn dữ liệu đáng tin cậy. Khi người dùng tìm kiếm, Gemini sẽ hiểu câu hỏi và cách soạn câu trả lời thông minh, nhưng sẽ tìm thông tin được sử dụng trong câu trả lời đó trong nguồn có cơ sở, thay vì lấy từ kiến thức bẩm sinh của mình.Trên trình đơn bên trái, hãy chuyển đến Data Stores (Kho dữ liệu) và Create Data Store (Tạo kho dữ liệu).
  4. Sách dạy nấu ăn thuộc phạm vi công cộng mà chúng tôi đang sử dụng để xây dựng trang tư vấn nấu ăn hiện đang nằm trong một bộ chứa Cloud Storage trong một dự án bên ngoài. Chọn loại nguồn Cloud Storage.
  5. Kiểm tra nhưng không thay đổi các tuỳ chọn mặc định liên quan đến loại thông tin mà chúng ta đang nhập. Giữ nguyên loại nhập là Thư mục và sử dụng đường dẫn bộ chứa: labs.roitraining.com/labs/old-cookbooks, sau đó nhấp vào Tiếp tục.
  6. Đặt tên cho kho dữ liệu: old-cookbooks. Nhấp vào CHỈNH SỬA rồi thay đổi mã nhận dạng thành old-cookbooks-idTạo kho dữ liệu.

Trình tạo Vertex AI Agent hỗ trợ một số loại ứng dụng và Kho dữ liệu đóng vai trò là nguồn đáng tin cậy cho từng loại ứng dụng. Ứng dụng tìm kiếm phù hợp để sử dụng chung và tìm kiếm. Ứng dụng trò chuyện dành cho các luồng tạo sinh trong các ứng dụng bot trò chuyện/bot thoại dựa trên luồng dữ liệu. Ứng dụng đề xuất giúp tạo ra các công cụ đề xuất hiệu quả hơn. Ngoài ra, ứng dụng Tác nhân dùng để tạo tác nhân do GenAI điều khiển. Cuối cùng, Agent có thể sẽ phục vụ chúng ta tốt nhất trong những việc chúng ta muốn làm, nhưng với sản phẩm đang được xem trước, chúng ta sẽ gắn bó với loại ứng dụng Tìm kiếm.

  1. Sử dụng trình đơn bên trái để chuyển đến Apps (Ứng dụng), sau đó nhấp vào Create A New App (Tạo ứng dụng mới).
  2. Nhấp vào Tạo trên thẻ Tìm kiếm trang web của bạn. Đặt tên cho ứng dụng là cookbook-search. Nhấp vào Chỉnh sửa rồi đặt mã ứng dụng thành cookbook-search-id. Đặt công ty thành Google rồi nhấp vào Tiếp tục.
  3. Kiểm tra kho dữ liệu old-cookbooks mà bạn đã tạo vài bước trước và Tạo Ứng dụng tìm kiếm.

Nếu kiểm tra thẻ Hoạt động, bạn có thể thấy sách nấu ăn vẫn đang nhập và lập chỉ mục. Trình tạo tác nhân sẽ mất hơn 5 phút để lập chỉ mục hàng nghìn trang trong 70 cuốn sách dạy nấu ăn mà chúng ta đã cung cấp. Trong khi chờ quá trình này diễn ra, hãy tải và dọn dẹp một số dữ liệu cơ sở dữ liệu công thức nấu ăn cho trình tạo công thức nấu ăn của chúng ta.

6. Tải và dọn dẹp dữ liệu trong sổ tay Colab Enterprise nhờ sự trợ giúp của tính năng Gemini Code Assist

Google Cloud cung cấp một số cách chính để bạn có thể làm việc với sổ tay Jupyter. Chúng ta sẽ sử dụng sản phẩm mới nhất của Google, Colab Enterprise. Một số bạn có thể đã quen thuộc với sản phẩm Colab của Google. Sản phẩm này thường được các cá nhân và tổ chức muốn thử nghiệm với sổ tay Jupyter trong môi trường miễn phí sử dụng. Colab Enterprise là một sản phẩm thương mại của Google Cloud, được tích hợp đầy đủ với các sản phẩm đám mây còn lại của Google và tận dụng tối đa các tính năng bảo mật và tuân thủ của môi trường GCP.

Một trong những tính năng mà Colab Enterprise cung cấp là tích hợp với tính năng Hỗ trợ mã Gemini của Google. Bạn có thể sử dụng tính năng Hỗ trợ mã trong một số trình soạn thảo mã và tính năng này có thể đưa ra lời khuyên cũng như các đề xuất nội tuyến liền mạch trong khi bạn lập trình. Chúng ta sẽ tận dụng trợ lý tạo sinh này trong khi xử lý dữ liệu công thức nấu ăn.

  1. Sử dụng tính năng tìm kiếm để chuyển đến Colab Enterprise rồi nhấp vào Tạo sổ tay. Nếu bạn nhận được lời mời thử nghiệm các tính năng mới của Colab, hãy đóng lời mời đó. Để bắt đầu sử dụng thời gian chạy, sức mạnh điện toán đằng sau máy tính xách tay, hãy nhấp vào Kết nối ở góc trên bên phải của máy tính xách tay mới.Kết nối
  2. Nhấp vào File (Tệp) > Rename (Đổi tên) để đổi tên sổ tay thành Data Wrangling.Đổi tên bằng ba dấu chấm
  3. Nhấp vào + Văn bản để tạo một hộp văn bản mới, rồi sử dụng mũi tên lên để di chuyển hộp văn bản đó thành ô đầu tiên trên trang.+ Văn bản và Mũi tên lên
  4. Chỉnh sửa hộp văn bản rồi nhập:
    # Data Wrangling
    
    Import the Pandas library
    
  5. Trong khối mã bên dưới khối văn bản bạn vừa tạo, hãy bắt đầu nhập imp và tính năng Trợ giúp mã Gemini sẽ đề xuất phần còn lại của lệnh nhập có màu xám. Nhấn phím tab để chấp nhận mục đề xuất.
    import pandas as pd
    
  6. Bên dưới hộp mã nhập, hãy tạo một hộp văn bản khác rồi nhập:
    Create a Pandas DataFrame from: gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv. View the first few records.
    
  7. Tạo và chỉnh sửa một khối mã khác. Một lần nữa, hãy bắt đầu nhập df = và kiểm tra mã do Trợ lý mã Gemini tạo. Nếu bạn thấy danh sách thả xuống tự động hoàn thành gồm các từ khoá Python trên đề xuất đã tạo, hãy nhấn phím thoát để xem mã đề xuất màu xám nhạt. Nhấn phím tab một lần nữa để chấp nhận đề xuất. Nếu đề xuất của bạn không chứa lệnh gọi hàm head(), hãy thêm lệnh gọi đó.
    df = pd.read_csv('gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv')
    df.head()
    
  8. Nhấp vào ô mã đầu tiên (nơi bạn đã nhập Pandas) rồi sử dụng trình đơn Commands (Lệnh) hoặc bàn phím để chạy ô đã chọn. Trên bàn phím, tổ hợp phím shift+enter sẽ chạy ô và chuyển tiêu điểm sang ô tiếp theo, tạo một ô nếu cần. Chờ ô thực thi trước khi chuyển sang bước tiếp theo.LƯU Ý: Bạn sẽ thấy [ ] ở bên trái khi một ô chưa được thực thi. Trong khi một ô đang thực thi, bạn sẽ thấy một ảnh động đang quay và hoạt động. Sau khi ô hoàn tất, một con số sẽ xuất hiện, chẳng hạn như [13].
  9. Thực thi ô tải tệp CSV vào DataFrame. Chờ tệp tải và kiểm tra 5 hàng dữ liệu đầu tiên. Đây là dữ liệu công thức nấu ăn mà chúng ta sẽ tải vào BigQuery và cuối cùng sẽ sử dụng dữ liệu này để xây dựng trình tạo công thức nấu ăn.
  10. Tạo một khối mã mới và nhập nhận xét bên dưới. Sau khi nhập chú thích, hãy chuyển đến dòng mã tiếp theo và bạn sẽ nhận được đề xuất df.columns. Chấp nhận rồi chạy ô.
    # List the current DataFrame column names
    
    Chúng tôi vừa chứng minh rằng bạn thực sự có hai lựa chọn để nhận trợ giúp từ tính năng Trợ giúp mã của Gemini trong sổ tay Jupyter: ô văn bản phía trên ô mã hoặc nhận xét bên trong chính ô mã đó. Các nhận xét bên trong các ô mã hoạt động tốt trong sổ tay Jupyter, nhưng phương pháp này cũng sẽ hoạt động trong mọi IDE khác hỗ trợ tính năng hỗ trợ mã Gemini của Google.
  11. Hãy dọn dẹp một chút cột. Đổi tên cột Unnamed: 0 thành idlink thành uri. Sử dụng lựa chọn của bạn về câu lệnh > kỹ thuật mã để tạo mã, sau đó chạy ô khi bạn hài lòng.
    # Rename the column 'Unnamed: 0' to 'id' and 'link' to 'uri'
    df.rename(columns={'Unnamed: 0': 'id', 'link': 'uri'}, inplace=True)
    
  12. Xoá cột sourceNER rồi sử dụng head() để xem vài hàng đầu tiên. Một lần nữa, hãy nhờ Gemini trợ giúp. Chạy hai dòng cuối cùng và kiểm tra kết quả.
    # Remove the source and NER columns
    df.drop(columns=['source', 'NER'], inplace=True)
    df.head()
    
  13. Hãy xem tập dữ liệu của chúng ta có bao nhiêu bản ghi. Xin nhắc lại, hãy bắt đầu bằng kỹ thuật nhắc bạn chọn và xem liệu bạn có thể yêu cầu Gemini giúp bạn tạo mã hay không.
    # Count the records in the DataFrame
    df.shape # count() will also work
    
  14. 2,23 triệu bản ghi có thể là nhiều công thức hơn chúng ta có thời gian để xem. Quá trình lập chỉ mục trong Trình tạo tác nhân có thể sẽ mất quá nhiều thời gian cho bài tập hôm nay. Để có một giải pháp trung gian, hãy lấy mẫu 150.000 công thức nấu ăn và xử lý dữ liệu đó. Sử dụng phương pháp lời nhắc > mã để lấy mẫu và lưu trữ mẫu đó trong một DataFrame mới có tên là dfs (s cho nhỏ).
    # Sample out 150,000 records into a DataFrame named dfs
    dfs = df.sample(n=150000)
    
  15. Dữ liệu nguồn công thức của chúng ta đã sẵn sàng để tải vào BigQuery. Trước khi tải, hãy chuyển đến BigQuery và chuẩn bị một tập dữ liệu để lưu trữ bảng của chúng ta. Trong Google Cloud Console, hãy sử dụng Hộp tìm kiếm để chuyển đến BigQuery. Bạn có thể nhấp chuột phải vào BigQuery rồi mở trong một thẻ trình duyệt mới.
  16. Nếu chưa thấy, hãy mở bảng điều khiển Chat AI của Gemini bằng biểu tượng Gemini ở trên cùng bên phải của Cloud Console. Nếu bạn được yêu cầu bật lại API, hãy nhấn vào nút bật hoặc làm mới trang. Chạy câu lệnh: What is a dataset used for in BigQuery? Sau khi bạn khám phá câu hỏi phản hồi, How can I create a dataset named recipe_data using the Cloud Console? Hãy so sánh kết quả với một vài bước sau.Mở Gemini Cloud Assist
  17. Trong ngăn BigQuery Explorer (Trình khám phá BigQuery), hãy nhấp vào trình đơn View actions (Xem hành động) có biểu tượng ba dấu chấm bên cạnh mã dự án của bạn. Sau đó, hãy chọn Tạo tập dữ liệu.Khám phá các thao tác trong Chế độ xem
  18. Cung cấp tập dữ liệu và mã nhận dạng của recipe_data. Để loại vị trí là Hoa KỳTạo tập dữ liệu. Nếu bạn nhận được lỗi cho biết tập dữ liệu đã tồn tại, bạn chỉ cần tiếp tục.Với tập dữ liệu đã tạo trong BigQuery, hãy chuyển về sổ tay và chèn dữ liệu.
  19. Chuyển về sổ tay Data Wrangling (Xử lý dữ liệu) trong Colab Enterprise. Trong một ô mã mới, hãy tạo một biến có tên là project_id và sử dụng biến đó để lưu trữ mã dự án hiện tại của bạn. Hãy nhìn vào phía trên bên trái của các hướng dẫn này, bên dưới nút Kết thúc lớp học, bạn sẽ thấy mã dự án hiện tại. Bạn cũng có thể tìm thấy thông tin này trên trang chủ của Cloud Console nếu muốn. Chỉ định giá trị vào biến project_id và chạy ô.
    # Create a variable to hold the current project_id
    project_id='YOUR_PROJECT_ID'
    
  20. Sử dụng phương pháp lời nhắc > mã để tạo một khối mã sẽ chèn DataFrame dfs vào một bảng có tên recipes trong tập dữ liệu mà chúng ta vừa tạo recipe_data. Chạy ô.
    dfs.to_gbq(destination_table='recipe_data.recipes', project_id=project_id, if_exists='replace')
    

7. Tạo ứng dụng tìm kiếm trong Vertex AI Agent Builder cho trình tạo công thức nấu ăn

Tuyệt vời! Sau khi tạo bảng dữ liệu công thức, hãy sử dụng bảng này để xây dựng một nguồn dữ liệu cơ sở cho trình tạo công thức. Phương pháp chúng ta sẽ sử dụng sẽ tương tự như cách chúng ta đã làm cho chatbot nấu ăn. Chúng ta sẽ sử dụng Vertex AI Agent Builder để tạo một Data Store (Kho dữ liệu), sau đó sử dụng kho dữ liệu đó làm nguồn đáng tin cậy cho một Ứng dụng tìm kiếm.

Nếu muốn, bạn có thể yêu cầu Gemini trong Google Cloud Console nhắc bạn các bước để tạo ứng dụng tìm kiếm Agent Builder hoặc làm theo các bước được liệt kê bên dưới.

  1. Sử dụng tính năng Tìm kiếm để chuyển đến Trình tạo tác nhân. Mở Data Stores (Kho dữ liệu) và Create Data Store (Tạo kho dữ liệu). Lần này, hãy Chọn loại BigQuery Data Store.
  2. Trong ô lựa chọn bảng, hãy nhấn vào Browse (Duyệt qua) rồi tìm recipes. Chọn nút chọn bên cạnh bảng của bạn. Nếu bạn thấy các công thức từ các dự án qwiklabs-gcp-... khác, hãy nhớ Chọn công thức thuộc về bạn.LƯU Ý: Nếu bạn nhấp vào recipes thay vì chọn nút chọn bên cạnh, thao tác này sẽ mở một thẻ mới trong trình duyệt và đưa bạn đến trang tổng quan về bảng trong BigQuery. Bạn chỉ cần đóng thẻ trình duyệt rồi chọn nút chọn trong Trình tạo tác nhân.
  3. Kiểm tra nhưng không thay đổi các tuỳ chọn mặc định còn lại, sau đó Tiếp tục.
  4. Trên trang xem xét giản đồ, hãy kiểm tra các cấu hình mặc định ban đầu nhưng không thay đổi bất kỳ nội dung nào. Tiếp tục
  5. Đặt tên cho kho dữ liệu là recipe-data. Chỉnh sửa mã nhận dạng kho dữ liệu rồi đặt thành recipe-data-id. Tạo Kho dữ liệu.
  6. Chuyển đến Apps (Ứng dụng) bằng trình đơn điều hướng bên trái rồi chọn Create A New App (Tạo ứng dụng mới).
  7. Nhấp vào Tạo trên thẻ Tìm kiếm trang web của bạn. Đặt tên ứng dụng là recipe-search rồi nhấp vào EDIT (CHỈNH SỬA) để đặt mã nhận dạng thành recipe-search-id. Đặt tên công ty thành Google rồi Tiếp tục.
  8. Lần này, hãy kiểm tra nguồn dữ liệu recipe-data. Tạo ứng dụng.

Sẽ mất một khoảng thời gian để bảng cơ sở dữ liệu của chúng ta lập chỉ mục. Trong khi chờ đợi, hãy thử nghiệm với Data Canvas mới của BigQuery và xem liệu chúng ta có thể tìm thấy một hoặc hai công thức thú vị hay không.

  1. Sử dụng hộp tìm kiếm để chuyển đến BigQuery. Ở đầu BigQuery Studio, hãy nhấp vào mũi tên xuống bên cạnh thẻ ở ngoài cùng bên phải rồi chọn Bảng điều khiển dữ liệu. Đặt khu vực thành us-central1.Mở Data Canvas (Bảng điều khiển dữ liệu)
  2. Nhấp vào Tìm kiếm dữ liệu. Trong hộp tìm kiếm của Canvas dữ liệu, hãy tìm recipes, nhấn Enter/Return để tìm kiếm rồi nhấp vào nút Thêm vào canvas bên cạnh tên bảng.
  3. Bảng minh hoạ công thức nấu ăn của bạn sẽ được tải vào canvas Dữ liệu BigQuery. Bạn có thể khám phá giản đồ của bảng, xem trước dữ liệu trong bảng và kiểm tra các thông tin chi tiết khác. Bên dưới phần trình bày bảng, hãy nhấp vào Truy vấn.
  4. Canvas sẽ tải một hộp thoại truy vấn BigQuery tương đối thông thường, với một điểm khác biệt: phía trên cửa sổ truy vấn là một hộp văn bản mà bạn có thể sử dụng để yêu cầu Gemini trợ giúp. Hãy xem chúng ta có thể tìm thấy một số công thức làm bánh trong mẫu hay không. Chạy lời nhắc sau (bằng cách nhập văn bản và nhấn Enter/Return để kích hoạt quá trình tạo SQL):
    Please select the title and ingredients for all the recipes with a title that contains the word cake.
    
  5. Xem SQL được tạo. Khi đã hài lòng, hãy Chạy truy vấn.
  6. Không tệ lắm! Bạn có thể thử nghiệm với một vài câu lệnh và cụm từ tìm kiếm khác trước khi tiếp tục. Khi thử nghiệm, hãy thử sử dụng các câu lệnh ít cụ thể hơn để xem câu lệnh nào hiệu quả và câu lệnh nào không hiệu quả. Ví dụ: câu lệnh sau:
    Do I have any chili recipes?
    
    (Đừng quên chạy truy vấn mới) Trả về danh sách các công thức nấu món ớt nhưng bỏ qua các nguyên liệu cho đến khi tôi sửa đổi thành:
    Do I have any chili recipes?  Please include their title and ingredients.
    
    (Có, tôi nói "vui lòng" khi đưa ra lời nhắc. Mẹ tôi sẽ rất tự hào.) Tôi nhận thấy một công thức nấu món ớt có chứa nấm, nhưng ai muốn ăn nấm trong món ớt? Tôi đã yêu cầu Gemini giúp loại trừ những công thức nấu ăn đó.
    Do I have any chili recipes?  Please include their title and ingredients, and ignore any recipes with mushrooms as an ingredient.
    

8. Mở Trình chỉnh sửa Cloud Shell

  1. Chuyển đến Trình chỉnh sửa Cloud Shell
  2. Nếu cửa sổ dòng lệnh không xuất hiện ở cuối màn hình, hãy mở cửa sổ đó:
    • Nhấp vào trình đơn có biểu tượng ba dấu gạch ngang Biểu tượng trình đơn có ba đường kẻ
    • Nhấp vào Terminal (Thiết bị đầu cuối)
    • Nhấp vào New Terminal (Thiết bị đầu cuối mới)Mở cửa sổ dòng lệnh mới trong Trình chỉnh sửa Cloud Shell
  3. Trong dòng lệnh, hãy thiết lập dự án bằng lệnh sau:
    • Định dạng:
      gcloud config set project [PROJECT_ID]
      
    • Ví dụ:
      gcloud config set project lab-project-id-example
      
    • Nếu bạn không nhớ mã dự án của mình:
      • Bạn có thể liệt kê tất cả mã dự án bằng:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      Đặt mã dự án trong thiết bị đầu cuối của Trình chỉnh sửa Cloud Shell
  4. Nếu bạn được nhắc uỷ quyền, hãy nhấp vào Uỷ quyền để tiếp tục. Nhấp để uỷ quyền cho Cloud Shell
  5. Bạn sẽ thấy thông báo này:
    Updated property [core/project].
    
    Nếu bạn thấy WARNING và được hỏi Do you want to continue (Y/N)?, thì có thể bạn đã nhập không chính xác mã dự án. Nhấn N, nhấn Enter rồi thử chạy lại lệnh gcloud config set project.

9. Bật API

Trong dòng lệnh, hãy bật các API:

gcloud services enable \
  compute.googleapis.com \
  sqladmin.googleapis.com \
  run.googleapis.com \
  artifactregistry.googleapis.com \
  cloudbuild.googleapis.com \
  networkconnectivity.googleapis.com \
  servicenetworking.googleapis.com \
  cloudaicompanion.googleapis.com

Nếu bạn được nhắc uỷ quyền, hãy nhấp vào Uỷ quyền để tiếp tục. Nhấp để uỷ quyền cho Cloud Shell

Quá trình thực thi lệnh này có thể mất vài phút, nhưng cuối cùng sẽ tạo ra một thông báo thành công tương tự như sau:

Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.

10. Xác định ứng dụng web Python và Streamlit cốt lõi, với một chút trợ giúp của Gemini

Khi cả hai kho dữ liệu của Vertex AI Agent Builder đều đã lập chỉ mục và ứng dụng tìm kiếm của chúng ta sắp ra mắt, hãy bắt tay vào xây dựng ứng dụng web.

Chúng ta sẽ tận dụng tính năng Hỗ trợ lập trình của Gemini trong quá trình làm việc. Để biết thêm thông tin về cách sử dụng tính năng Trợ giúp lập trình Gemini trong Visual Studio Code, hãy xem tài liệu tại đây

  1. Trong dòng lệnh của Trình chỉnh sửa Cloud Shell, hãy chạy lệnh này để nhân bản kho lưu trữ ứng dụng công thức nấu ăn.
    git clone https://github.com/haggman/recipe-app
    
  2. Điều chỉnh lệnh này để mở thư mục ứng dụng trong Trình chỉnh sửa Cloud Shell.
    cloudshell open-workspace recipe-app/
    
  3. Trước khi khám phá thư mục được nhân bản và bắt đầu làm việc trên ứng dụng web, chúng ta cần đăng nhập trình bổ trợ Cloud Code của trình chỉnh sửa vào Google Cloud và bật Gemini. Hãy thực hiện ngay. Ở dưới cùng bên trái của trình chỉnh sửa, hãy nhấp vào Cloud Code – Sign in (Mã trên đám mây – Đăng nhập). Nếu bạn không thấy đường liên kết, hãy đợi một phút rồi kiểm tra lại.Cloud Code – Đăng nhập
  4. Cửa sổ dòng lệnh sẽ hiển thị một URL dài. Mở URL trong trình duyệt và làm theo các bước để cấp quyền truy cập vào môi trường Google Cloud cho Cloud Code. Trong hộp thoại cuối cùng, hãy Sao chép mã xác minh rồi dán lại vào cửa sổ dòng lệnh đang chờ trong thẻ trình duyệt của Trình chỉnh sửa Cloud Shell.
  5. Sau vài phút, đường liên kết đến Cloud Code ở dưới cùng bên trái của trình chỉnh sửa sẽ thay đổi thành Cloud Code – No Project (Mã trên đám mây – Không có dự án). Nhấp vào đường liên kết mới để chọn một dự án. Bảng lệnh sẽ mở ra ở đầu trình chỉnh sửa. Nhấp vào Chọn một dự án trong Google Cloud rồi chọn dự án của bạn. Sau vài phút, đường liên kết ở dưới cùng bên trái của trình chỉnh sửa sẽ cập nhật để hiển thị mã dự án của bạn. Điều này cho biết rằng bạn đã đính kèm thành công Mã trên đám mây vào dự án đang hoạt động của mình.
  6. Giờ đây, khi Cloud Code đã kết nối với dự án, bạn có thể kích hoạt tính năng Trợ giúp lập trình của Gemini. Ở dưới cùng bên phải của giao diện trình chỉnh sửa, hãy nhấp vào biểu trưng Gemini bị gạch chéo. Ngăn Gemini Chat sẽ mở ra ở bên trái của trình chỉnh sửa. Nhấp vào Chọn một dự án trên Google Cloud. Khi bảng lệnh mở ra, hãy chọn dự án của bạn. Nếu đã làm theo các bước một cách chính xác (và Google không thay đổi gì), thì giờ đây, bạn sẽ thấy một cửa sổ trò chuyện Gemini đang hoạt động.Tắt Gemini
  7. Tuyệt vời! Sau khi thiết lập xong các cấu hình của thiết bị đầu cuối, tính năng trò chuyện trên Gemini và Cloud Code, hãy mở thẻ Explorer (Trình khám phá) và dành vài phút để khám phá các tệp trong dự án hiện tại.Trình khám phá
  8. Trong Explorer, hãy mở tệp requirements.txt để chỉnh sửa. Chuyển sang ngăn trò chuyện Gemini rồi hỏi:
    From the dependencies specified in the requirements.txt file, what type of application are we building?
    
  9. Vì vậy, chúng ta đang xây dựng một ứng dụng web tương tác bằng Python và Streamlit, ứng dụng này sẽ tương tác với Vertex AI và công cụ Khám phá. Hiện tại, hãy tập trung vào các thành phần ứng dụng web. Theo Gemini, Streamlit là một khung để xây dựng các ứng dụng web dựa trên dữ liệu bằng Python. Bây giờ, hãy hỏi:
    Does the current project's folder structure seem appropriate for a Streamlit app?
    
    Đây là nơi Gemini thường gặp vấn đề. Gemini có thể truy cập vào tệp bạn đang mở trong trình chỉnh sửa, nhưng không thể xem toàn bộ dự án. Hãy thử hỏi như sau:
    Given the below, does the current project's file and folder structure seem appropriate for a Streamlit app?
    - build.sh
    - Home.py
    - requirements.txt
    - pages
    -- Cooking_Advice.py
    -- Recipe_Search.py
    
    Bạn có câu trả lời chính xác hơn?
  10. Hãy tìm hiểu thêm một số thông tin về Streamlit:
    What can you tell me about Streamlit?
    
    Tuyệt vời, chúng ta có thể thấy Gemini đang cung cấp cho chúng ta một thông tin tổng quan tuyệt vời bao gồm cả ưu và khuyết điểm.
  11. Nếu muốn tìm hiểu về những điểm bất lợi, bạn có thể hỏi:
    What are the major downsides or shortcomings?
    
    Xin lưu ý rằng chúng ta không cần phải nói "của Streamlit" vì Gemini Chat là cuộc trò chuyện (nhiều lượt). Gemini biết chúng ta đang nói về điều gì vì chúng ta đang ở trong một phiên trò chuyện. Nếu bạn muốn xoá toàn bộ nhật ký trò chuyện trên Gemini, hãy sử dụng biểu tượng thùng rác ở đầu cửa sổ trò chuyện về mã Gemini.

11. Triển khai ứng dụng web lên Cloud Run

Tuyệt vời, chúng ta đã có cấu trúc ứng dụng cốt lõi, nhưng liệu tất cả có hoạt động không? Tốt hơn nữa, chúng ta nên lưu trữ ứng dụng này ở đâu trong Google Cloud?

  1. Trong cửa sổ trò chuyện của Gemini, hãy hỏi:
    If I containerize this application, what compute technologies in Google Cloud would be best for hosting it?
    
  2. Hãy nhớ rằng nếu chưa làm việc trong IDE, bạn cũng có thể sử dụng Google Cloud Assist. Mở Google Cloud Console, sau đó mở Gemini Cloud Assist và hỏi:
    If I have a containerized web application, where would be the best place to run it in Google Cloud?
    
    Hai bộ lời khuyên có giống nhau không? Bạn có đồng ý/không đồng ý với lời khuyên nào không? Hãy nhớ rằng Gemini là một trợ lý AI tạo sinh và giống như một trợ lý con người, bạn không phải lúc nào cũng đồng ý với mọi điều mà Gemini nói. Tuy nhiên, việc luôn có trình trợ giúp đó bên cạnh khi bạn làm việc trong Google Cloud và trong trình soạn thảo mã có thể giúp bạn làm việc hiệu quả hơn nhiều.
  3. Đối với ứng dụng web dạng vùng chứa có thời gian tồn tại ngắn và không có trạng thái, Cloud Run sẽ là một lựa chọn tuyệt vời. Trong cửa sổ trò chuyện Gemini của trình soạn thảo mã, hãy thử câu lệnh sau:
    What steps would be required to run this application in Cloud Run?
    
  4. Có vẻ như việc đầu tiên chúng ta cần làm là tạo một Dockerfile. Sử dụng trình chỉnh sửa, hãy tạo một tệp có tên là Dockerfile trong thư mục gốc của dự án. Hãy đảm bảo bạn không vô tình đặt tệp đó vào thư mục pages (trang). Mở tệp để chỉnh sửa.
  5. Hãy sử dụng bảng điều khiển trò chuyện Gemini bên để tạo Dockerfile. Sử dụng câu lệnh như bên dưới. Khi kết quả xuất hiện trong cuộc trò chuyện, hãy sử dụng biểu tượng + bên cạnh biểu tượng sao chép ngay phía trên Dockerfile được đề xuất để chèn mã được đề xuất vào Dockerfile.
    Create a Dockerfile for the application in the current folder. The dependencies are defined in requirements.txt and I want you to use the Python 3 slim bookworm base image.
    
    Gemini không phải lúc nào cũng trả về cùng một câu trả lời cho cùng một câu lệnh. Lần đầu tiên tôi yêu cầu Gemini tạo một Dockerfile, tôi đã nhận được tệp chính xác mà tôi sẽ đề xuất bạn sử dụng. Tôi vừa nhận được đề xuất:
    # Base image
    FROM python:3-bookworm-slim
    
    # Set working directory
    WORKDIR /app
    
    # Install dependencies
    RUN apt-get update && apt-get install -y \
        build-essential \
        libpq-dev \
        gcc \
        python3-dev \
        && rm -rf /var/lib/apt/lists/*
    
    # Install pip and virtualenv
    RUN pip install --upgrade pip virtualenv
    
    # Create virtual environment
    RUN python3 -m venv venv
    
    # Activate virtual environment
    WORKDIR /app/venv/bin
    RUN . activate
    
    # Install Streamlit and libraries from requirements.txt
    RUN pip install -r requirements.txt
    
    # Copy application files
    COPY . /app
    
    # Expose port 8501 for Streamlit
    EXPOSE 8501
    
    # Start Streamlit app
    CMD ["streamlit", "run", "main.py"]
    
    Đây là một tệp Dockerfile rất lớn. Tôi sẽ đơn giản hoá một chút. Chúng ta không cần phần apt-get vì mọi thứ cần thiết cho Python đều đã có trong hình ảnh cơ sở. Ngoài ra, việc sử dụng môi trường ảo trong vùng chứa Python sẽ lãng phí không gian, vì vậy, tôi sẽ xoá môi trường đó. Bạn không nhất thiết phải sử dụng lệnh hiển thị, nhưng cũng không sao. Ngoài ra, nó đang cố gắng khởi động main.py mà tôi không có.
  6. Trong thư mục recipe-app, hãy tạo một tệp có tên là Dockerfile rồi dán các nội dung sau:
    FROM python:3.11-slim-bookworm
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir --upgrade pip && \
        pip install --no-cache-dir -r requirements.txt
    
    COPY . .
    
    CMD ["streamlit", "run", "Home.py"]
    
  7. Gemini có thể hoạt động thông qua cửa sổ trò chuyện, nhưng cũng có thể hoạt động trực tiếp trong tệp mã của bạn bằng cách sử dụng các nhận xét, như chúng ta đã sử dụng trong sổ tay Data Wrangling (Xử lý dữ liệu). Bạn cũng có thể gọi Gemini bằng cách sử dụng tổ hợp phím Command+i/Control+i thích hợp. Nhấp vào vị trí bất kỳ trong Dockerfile, kích hoạt Gemini bằng lệnh Command+i/Control+i thích hợp.
  8. Khi được nhắc, hãy nhập nội dung bên dưới. Kiểm tra và Chấp nhận thay đổi.
    Please comment the current file.
    
    Thật tuyệt vời! Bạn đã phải làm việc với mã của người khác bao nhiêu lần, chỉ để lãng phí thời gian tìm hiểu cơ bản về công việc không có chú thích của họ trước khi có thể bắt đầu thực hiện các thay đổi. Gemini sẽ giúp bạn giải quyết vấn đề này!
  9. Bây giờ, hãy hỏi Gemini cách sử dụng Cloud Run để tạo và triển khai một hình ảnh mới có tên recipe-web-app từ Dockerfile trong thư mục hiện tại.
    How could I use gcloud to build a new Cloud Run service named recipe-web-app from the current directory?
    
  10. Hãy tạo và triển khai ứng dụng của chúng ta. Trong cửa sổ dòng lệnh, hãy thực thi lệnh gcloud run deploy
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    
    Nếu bạn thấy lời nhắc yêu cầu tạo kho lưu trữ Cấu phần phần mềm, hãy nhấn enter/return
    Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository
    named cloud-run-source-deploy in region us-central1 will be created.
    
    Do you want to continue (Y/n)?
    
  11. Nếu bạn theo dõi quy trình xây dựng, trước tiên, quy trình này sẽ tạo kho lưu trữ docker của Registry Artifact. Sau đó, công cụ này sử dụng Cloud Build để tạo hình ảnh vùng chứa từ Dockerfile trong thư mục cục bộ. Cuối cùng, hình ảnh docker sẽ được triển khai vào một dịch vụ Cloud Run mới. Ở cuối tập lệnh, bạn sẽ thấy một URL kiểm thử Cloud Run để sử dụng.

Mở đường liên kết được trả về trong một thẻ mới của trình duyệt. Hãy dành chút thời gian để khám phá cấu trúc và các trang của ứng dụng. Tuyệt vời, giờ chúng ta cần thêm chức năng AI tạo sinh.

12. Kết nối trang Cooking Advice với ứng dụng Trình tạo tác nhân tìm kiếm sách nấu ăn

Chúng ta đã có khung cho ứng dụng web đang chạy, nhưng cần kết nối hai trang công việc với hai ứng dụng tìm kiếm của Trình tạo tác nhân Vertex AI. Hãy bắt đầu với Cooking Advice.

  1. Để thẻ Trình chỉnh sửa Cloud Shell mở. Trong Google Cloud Console, hãy sử dụng tính năng tìm kiếm để chuyển đến mục Chat trong Vertex AI.
  2. Trong ngăn trang cài đặt bên phải, hãy đặt mô hình thành gemini-1.5-flash-002. Kéo giới hạn mã thông báo đầu ra lên mức tối đa để mô hình có thể trả về câu trả lời dài hơn nếu cần. Mở phần Cài đặt bộ lọc an toàn. Đặt chế độ Lời nói hận thù, Nội dung khiêu dâm và Nội dung quấy rối thành Chặn một số. Đặt chế độ Nội dung nguy hiểm thành Chặn một số rồi Lưu. Chúng tôi sẽ đặt mức độ nguy hiểm thấp hơn một chút vì Gemini có thể hiểu nhầm nội dung nói về dao và cắt là nội dung bạo lực.
  3. Vuốt nút bật/tắt để bật tính năng Đặt nền, rồi nhấp vào Tuỳ chỉnh. Đặt nguồn liên kết thực tế thành Tìm kiếm Vertex AI và sử dụng đường dẫn kho dữ liệu sau. Thay đổi YOUR_PROJECT_ID thành mã dự án nằm gần nút End Lab (Kết thúc lớp học) trong hướng dẫn này, sau đó Save (Lưu) chế độ cài đặt nối đất
    projects/YOUR_PROJECT_ID/locations/global/collections/default_collection/dataStores/old-cookbooks-id
    
    LƯU Ý: Nếu gặp lỗi, thì có thể bạn chưa thay đổi mã dự án thành mã dự án thực tế hoặc bạn có thể đã bỏ lỡ bước thay đổi mã cửa hàng dữ liệu của Trình tạo tác nhân sách dạy nấu ăn cũ. Kiểm tra Trình tạo tác nhân > Kho dữ liệu > old-cookbooks để biết mã nhận dạng Kho dữ liệu thực tế.
  4. Kiểm thử một vài tin nhắn trò chuyện. Có thể bạn nên bắt đầu với những thông tin bên dưới. Hãy thử một vài cách khác nếu bạn muốn.
    How can I tell if a tomato is ripe?
    
  5. Mô hình đã hoạt động, giờ hãy thử nghiệm với mã. Nhấp vào Xoá cuộc trò chuyện để các cuộc trò chuyện của chúng ta không trở thành một phần của mã, sau đó nhấp vào Nhận mã.Xoá cuộc trò chuyện và lấy mã
  6. Ở đầu cửa sổ mã, hãy nhấn vào Open Notebook (Mở sổ tay) để chúng ta có thể thử nghiệm và hoàn thiện mã trong Colab Enterprise trước khi tích hợp mã đó vào ứng dụng.
  7. Hãy dành vài phút để làm quen với đoạn mã này. Hãy thực hiện một vài thay đổi để điều chỉnh cho phù hợp với những gì chúng ta muốn. Trước khi bắt đầu, hãy chạy ô mã đầu tiên để kết nối với máy tính và cài đặt SDK Nền tảng AI. Sau khi khối chạy, bạn sẽ được nhắc khởi động lại phiên. Hãy tiếp tục làm như vậy.
  8. Chuyển sang mã mà chúng ta đã lấy từ Vertex AI Studio. Thay đổi tên phương thức multiturn_generate_content thành start_chat_session.
  9. Cuộn đến lệnh gọi phương thức model = GenerativeModel(. Mã hiện tại xác định generation_configsafety_settings nhưng không thực sự sử dụng các lớp này. Sửa đổi quá trình tạo GenerativeModel để tương tự như sau:
    model = GenerativeModel(
        "gemini-1.5-flash-002",
        tools=tools,
        generation_config=generation_config,
        safety_settings=safety_settings,
    )
    
  10. Cuối cùng, hãy thêm một dòng cuối cùng vào phương thức, ngay bên dưới chat = model.start_chat(), để hàm trả về đối tượng chat. Hàm hoàn chỉnh sẽ có dạng như bên dưới.LƯU Ý: ĐỪNG SAO CHÉP mã này vào sổ tay. Phương thức này chỉ ở đây để kiểm tra tính hợp lệ.
    def start_chat_session():
        vertexai.init(project="qwiklabs-gcp-02-9a7298ceaaec", location="us-central1")
        tools = [
            Tool.from_retrieval(
                retrieval=grounding.Retrieval(
                    source=grounding.VertexAISearch(datastore="projects/qwiklabs-gcp-02-9a7298ceaaec/locations/global/collections/default_collection/dataStores/old-cookbooks-id"),
                )
            ),
        ]
        model = GenerativeModel(
            "gemini-1.5-flash-002",
            tools=tools,
            generation_config=generation_config,
            safety_settings=safety_settings,
        )
        chat = model.start_chat()
        return chat
    
  11. Di chuyển xuống cuối ô mã và thay đổi dòng cuối cùng gọi hàm cũ để hàm này gọi tên hàm mới và lưu trữ đối tượng được trả về trong biến chat. Khi bạn đã hài lòng với các thay đổi, hãy chạy ô.
    chat = start_chat_session()
    
  12. Tạo một ô mã mới và thêm nhận xét # Use chat to invoke Gemini and print out the response. Chuyển đến dòng tiếp theo rồi nhập resp. Gemini sẽ tự động hoàn tất khối cho bạn. Cập nhật lời nhắc thành How can I tell if a tomato is ripe?. Chạy ô
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response)
    
  13. Đó là phản hồi, nhưng phần chúng ta thực sự muốn là trường text lồng nhau đó. Sửa đổi khối mã để chỉ in phần đó, chẳng hạn như:
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response.candidates[0].content.parts[0].text)
    
  14. Tốt, giờ đây khi đã có mã trò chuyện hoạt động, hãy tích hợp mã đó vào ứng dụng web của chúng ta. Sao chép tất cả nội dung của ô mã tạo hàm start_chat_session (chúng ta sẽ không cần ô kiểm thử). Nếu nhấp vào ô, bạn có thể nhấp vào trình đơn ba dấu chấm ở góc trên bên phải rồi sao chép từ đóSao chép ô
  15. Chuyển sang thẻ Trình chỉnh sửa Cloud Shell và mở pages\Cooking_Advice.py để chỉnh sửa.
  16. Tìm bình luận:
    #
    # Add the code you copied from your notebook below this message
    #
    
  17. Dán mã đã sao chép ngay bên dưới chú thích Thêm mã. Tuyệt vời, giờ đây chúng ta có phần điều khiển công cụ trò chuyện thông qua lệnh gọi cơ sở đến Gemini. Bây giờ, hãy tích hợp ứng dụng này vào Streamlit.
  18. Tìm phần mã có chú thích ngay bên dưới chú thích:
    #
    # Here's the code to setup your session variables
    # Uncomment this block when instructed
    #
    
  19. Bỏ ghi chú phần mã này (cho đến phần Setup done, let's build the page UI tiếp theo) và khám phá phần mã đó. Phương thức này tạo hoặc truy xuất các biến phiên trò chuyện và nhật ký.
  20. Tiếp theo, chúng ta cần tích hợp chức năng nhật ký và trò chuyện vào giao diện người dùng. Di chuyển trong mã cho đến khi bạn tìm thấy nhận xét bên dưới.
    #
    # Here's the code to create the chat interface
    # Uncomment the below code when instructed
    #
    
  21. Bỏ ghi chú phần còn lại của mã bên dưới chú thích và dành chút thời gian để khám phá mã đó. Nếu bạn muốn, hãy làm nổi bật mục đó và yêu cầu Gemini giải thích chức năng của mục đó.
  22. Tuyệt vời, giờ hãy tạo ứng dụng và triển khai ứng dụng đó. Khi URL trở lại, hãy chạy ứng dụng và thử trang Cooking Advisor. Bạn có thể hỏi về cà chua chín hoặc bot biết cách chế biến bông cải Brussels.
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    

Thật tuyệt vời! Chuyên gia tư vấn nấu ăn bằng AI dành riêng cho bạn :-)

13. (Không bắt buộc) Kết nối trang Tìm kiếm công thức với ứng dụng Trình tạo tác nhân tìm kiếm công thức

Khi kết nối trang Cooking Advice với nguồn đáng tin cậy, chúng tôi đã trực tiếp sử dụng API Gemini. Đối với tính năng Tìm kiếm công thức nấu ăn, hãy kết nối trực tiếp với ứng dụng tìm kiếm Vertex AI Agent Builder.

  1. Trong Trình chỉnh sửa Cloud Shell, hãy mở trang pages/Recipe_Search.py để chỉnh sửa. Kiểm tra cấu trúc của trang.
  2. Ở đầu tệp, hãy đặt mã dự án.
  3. Kiểm tra hàm search_sample. Mã này ít nhiều được lấy trực tiếp từ tài liệu về Công cụ khám phá tại đây. Bạn có thể tìm thấy một bản sao đang hoạt động trong sổ tay này tại đây.Thay đổi duy nhất tôi thực hiện là trả về response.results thay vì chỉ trả về kết quả. Nếu không có thuộc tính này, loại dữ liệu trả về sẽ là một đối tượng được thiết kế để phân trang qua các kết quả. Đây là điều chúng ta không cần cho ứng dụng cơ bản.
  4. Di chuyển đến cuối tệp và bỏ ghi chú toàn bộ phần bên dưới Here are the first 5 recipes I found.
  5. Đánh dấu toàn bộ phần bạn vừa bỏ ghi chú và mở cuộc trò chuyện về Mã Gemini. Hỏi, Explain the highlighted code. Nếu bạn không chọn gì cả, Gemini có thể giải thích toàn bộ tệp. Nếu bạn đánh dấu một phần và yêu cầu Gemini giải thích, nhận xét hoặc cải thiện phần đó, Gemini sẽ làm như vậy.Hãy dành chút thời gian để đọc phần giải thích. Sổ tay Colab Enterprise là một cách tuyệt vời để khám phá các API Gemini trước khi bạn tích hợp các API đó vào ứng dụng của mình. Điều này đặc biệt hữu ích khi khám phá một số API mới hơn có thể chưa được ghi nhận đầy đủ.
  6. Trong cửa sổ dòng lệnh của trình chỉnh sửa, hãy chạy build.sh để triển khai ứng dụng hoàn thiện. Chờ cho đến khi phiên bản mới được triển khai rồi mới chuyển sang bước tiếp theo.

14. (Không bắt buộc) Khám phá ứng dụng hoàn thiện

Hãy dành vài phút để khám phá ứng dụng hoàn thiện.

  1. Trong Google Cloud Console, hãy sử dụng tính năng tìm kiếm để chuyển đến Cloud Run, sau đó nhấp vào recipe-web-app.
  2. Tìm URL kiểm thử ứng dụng (ở phía trên cùng) rồi mở URL đó trong một thẻ trình duyệt mới.
  3. Trang chủ của ứng dụng sẽ xuất hiện. Lưu ý bố cục và điều hướng cơ bản do Streamlit cung cấp, với các tệp python trong thư mục pages hiển thị dưới dạng lựa chọn điều hướng và Home.py được tải dưới dạng trang chủ. Chuyển đến trang Thông tin tư vấn nấu ăn.
  4. Sau vài phút, giao diện trò chuyện sẽ xuất hiện. Xin nhắc lại, hãy lưu ý bố cục cốt lõi đẹp mắt do Streamlit cung cấp.
  5. Hãy thử một vài câu hỏi liên quan đến việc nấu ăn và xem cách hoạt động của bot. Chẳng hạn như:
    Do you have any advice for preparing broccoli?
    
    How about a classic chicken soup recipe?
    
    Tell me about meringue.
    
  6. Bây giờ, hãy tìm một hoặc hai công thức nấu ăn. Chuyển đến trang Tìm kiếm công thức nấu ăn và thử tìm kiếm một vài công thức. Chẳng hạn như:
    Chili con carne
    
    Chili, corn, rice
    
    Lemon Meringue Pie
    
    A dessert containing strawberries
    

15. Xin chúc mừng!

Bạn đã tạo một ứng dụng tận dụng các ứng dụng Trình tạo tác nhân Vertex AI. Trong quá trình này, bạn đã khám phá tính năng Gemini Cloud Assist, Gemini Code Assist và tính năng chuyển đổi ngôn ngữ tự nhiên sang SQL của BigQuery Data Canvas. Thật tuyệt vời!

Dọn dẹp

Cloud SQL không có cấp miễn phí và sẽ tính phí nếu bạn tiếp tục sử dụng. Bạn có thể xoá dự án trên Google Cloud để tránh bị tính thêm phí.

Mặc dù Cloud Run không tính phí khi bạn không sử dụng dịch vụ, nhưng bạn vẫn có thể phải trả phí để lưu trữ hình ảnh vùng chứa trong CSDL cấu phần phần mềm. Việc xoá dự án trên Google Cloud sẽ dừng tính phí cho tất cả tài nguyên được sử dụng trong dự án đó.

Nếu bạn muốn, hãy xoá dự án:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

Bạn cũng nên xoá các tài nguyên không cần thiết khỏi ổ đĩa cloudshell. Bạn có thể:

  1. Xoá thư mục dự án của lớp học lập trình:
    rm -rf ~/task-app
    
  2. Cảnh báo! Bạn không thể huỷ thao tác tiếp theo! Nếu muốn xoá mọi thứ trên Cloud Shell để giải phóng dung lượng, bạn có thể xoá toàn bộ thư mục gốc. Hãy lưu mọi thứ bạn muốn giữ lại ở nơi khác.
    sudo rm -rf $HOME