Xây dựng một tác nhân khám phá dữ liệu dựa trên AI bằng Gemini

Xây dựng giao diện trò chuyện sử dụng trí tuệ nhân tạo (AI) cho doanh nghiệp giao diện lập trình hệ thống và cho phép đồng nghiệp đặt câu hỏi về dữ liệu doanh nghiệp của bạn. Phân tích và báo cáo về dữ liệu của tổ chức bạn giúp cải thiện cách bạn kinh doanh. Tìm vấn đề, phát hiện xu hướng và điều tra kết quả đều có thể với dữ liệu phù hợp, nhưng với tư cách là một việc giúp những đồng nghiệp không mã hoá khám phá ra dữ liệu chính xác có thể là thách thức.

Chiến lược phát hành đĩa đơn Trò chuyện SQL Project là một ứng dụng nguồn mở sử dụng công nghệ AI tạo sinh để giúp giải đáp các câu hỏi về dữ liệu doanh nghiệp. Dự án này sử dụng Gemini API và Gọi hàm để chuyển đổi các câu hỏi về dữ liệu doanh nghiệp thành truy vấn SQL và lệnh gọi API, sau đó chuyển đổi kết quả trở lại ngôn ngữ đơn giản. Bạn có thể sử dụng dự án này làm điểm khởi đầu để xây dựng một tác nhân dữ liệu cho doanh nghiệp của bạn và giúp bạn đồng nghiệp sẽ nhận được câu trả lời mà không cần bạn phải viết một loạt mã dùng một lần.

Để xem video tổng quan về dự án và cách mở rộng dự án, bao gồm cả thông tin chi tiết từ những người tạo ra nó, hãy xem Nhân viên hỗ trợ dữ liệu dựa trên AI | Xây dựng bằng AI của Google. Nếu không, bạn có thể bắt đầu mở rộng dự án bằng những cách sau hướng dẫn.

Giao diện người dùng của ứng dụng dự án SQL Talk

Hình 1. Giao diện người dùng của ứng dụng dự án SQL Talk.

Thiết lập dự án

Các hướng dẫn này sẽ hướng dẫn bạn cách thiết lập dự án SQL Talk cho phát triển và kiểm thử. Các bước chung để tạo SQL Talk thiết lập một Google Cloud Shell Editor dự án phát triển ứng dụng, nhận mã dự án trên Google Cloud và sử dụng để định cấu hình cài đặt dự án. Những hướng dẫn này mô tả cách đặt thiết lập dự án bằng Cloud Shell Editor, trình chỉnh sửa này giúp thiết lập, chạy cũng như cập nhật dự án một cách nhanh chóng và thuận tiện.

Tạo một thực thể Cloud Shell cho dự án

Bạn có thể thiết lập dự án SQL Talk bằng cách sao chép kho lưu trữ dự án thành một Phiên bản Cloud Shell. Quy trình này thiết lập một môi trường phát triển ảo thực thể bên trong cơ sở hạ tầng của Google Cloud cho dự án và sao chép kho lưu trữ mã vào môi trường ảo đó.

Cách tạo một thực thể Cloud Shell cho SQL Talk:

Đường liên kết này sẽ thiết lập một phiên bản Google Cloud Shell Editor và sao chép kho lưu trữ cho SQL Talk vào thực thể.

Google Cloud Shell Editor với mã dự án SQL Talk được hiển thị

Hình 2. Dự án SQL Talk được sao chép vào Google Cloud Shell Editor môi trường phát triển.

Nhận mã dự án trên đám mây

Dự án SQL Talk sử dụng mã dự án trên Google Cloud để kết nối với Google Cloud dịch vụ của Google, bao gồm cả các mô hình Gemini. Bạn định cấu hình một mã dự án trong Trình chỉnh sửa Cloud Shell để cho phép ứng dụng kết nối với các dịch vụ này.

Cách kết nối Cloud Shell Editor với một mã dự án:

  1. Chuyển đến Google Cloud Play Console rồi đăng nhập nếu cần.
  2. Chọn một dự án Google Cloud hiện có, hoặc tạo tài khoản mới.
  3. Ghi lại mã dự án trên Cloud của dự án.
  4. Kết nối thực thể Editor với dự án của bạn và định cấu hình dự án. Trong cửa sổ Cloud Shell Editor, bảng điều khiển thiết bị đầu cuối hãy nhập lệnh sau:

    gcloud config set project YOUR_PROJECT_ID
    

Định cấu hình dự án SQL Talk

Dự án SQL Talk sử dụng các dịch vụ của Google Cloud để chạy dự án, bao gồm dịch vụ cơ sở dữ liệu BigQueryVertex AI API để kết nối với các mô hình Gemini. Dự án SQL Talk bao gồm một tập lệnh setup.sh giúp định cấu hình dự án các dịch vụ cần thiết của Google Cloud và khởi động phiên bản mặc định của dự án.

Cách định cấu hình và chạy phiên bản Cloud Shell Editor của dự án:

  1. Trong bảng điều khiển thiết bị đầu cuối của cửa sổ Cloud Shell Editor, hãy chuyển đến ứng dụng Cloud Thư mục dự án Shell SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. Trong bảng điều khiển dòng lệnh, hãy nhập lệnh sau:

    bash setup.sh
    

Khi tập lệnh thiết lập hoàn tất thành công, bạn sẽ thấy một thông báo tương tự vào các dòng sau trong cửa sổ dòng lệnh của Cloud Shell Editor. Tin nhắn này cho biết quá trình thiết lập đã thành công và ứng dụng SQL Talk đang đang chạy:

You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080

Kiểm thử dự án

Khi đã hoàn tất việc thiết lập dự án SQL Talk, bạn có thể kiểm tra để xác minh rằng ứng dụng đó đang hoạt động như dự kiến. Tập lệnh thiết lập tự động khởi động ứng dụng khi bạn chạy ứng dụng và bạn có thể khởi động lại bằng cách làm theo các bước sau.

Để chạy ứng dụng SQL Talk:

  1. Nếu Cloud Shell Editor ở trạng thái rảnh và bị ngắt kết nối, bạn có thể cần để kết nối lại với mã dự án trên Cloud.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Trong bảng điều khiển thiết bị đầu cuối của cửa sổ Cloud Shell Editor, hãy chuyển đến ứng dụng Cloud Thư mục dự án Shell SQL Talk.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. Trong bảng điều khiển dòng lệnh, hãy nhập lệnh sau.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Xem ứng dụng SQL Talk. Ở trên cùng bên phải của Cloud Shell Editor hãy chọn nút Xem trước trên web, sau đó Xem trước trên cổng 8080.

Tiêu đề Cloud Shell Editor, trong đó nút Xem trước trên web được làm nổi bật

Để xem nội dung cập nhật cho ứng dụng SQL Talk:

  • Trong Bản xem trước web của ứng dụng web SQL Talk, hãy tải lại trình duyệt hoặc .

Để dừng ứng dụng SQL Talk:

  • Trong bảng điều khiển thiết bị đầu cuối của cửa sổ Cloud Shell Editor, hãy nhập Ctrl-C.

Sửa đổi ứng dụng

Bạn có thể thay đổi hành vi và thêm tính năng vào ứng dụng SQL Talk bằng cách sửa đổi mã Python cho ứng dụng. Phần này mô tả cách thêm lệnh gọi hàm mới vào ứng dụng SQL Talk.

Chức năng Gọi hàm của Gemini API sử dụng một cú pháp cụ thể để xác định các hàm mà công nghệ tạo sinh sử dụng để trả lời câu hỏi hoặc giải quyết vấn đề. Cú pháp này không cần khớp chính xác với cú pháp của lệnh gọi API thực. Thay vào đó, bạn sẽ sử dụng Hàm Tính năng gọi để buộc mô hình tạo sinh cung cấp dữ liệu đầu vào cụ thể hoặc các tham số phù hợp với cú pháp lệnh gọi API, sau đó sử dụng các tham số đó để thực thi các lệnh gọi API thực tế trong mã xử lý ứng dụng của bạn.

Cách triển khai mẫu này cho bạn biết cách tạo định nghĩa lệnh gọi hàm để liệt kê các truy vấn hoặc công việc gần đây trong cơ sở dữ liệu, sau đó ánh xạ định nghĩa đó với lệnh gọi API thực tế trong mã xử lý ứng dụng SQL Talk.

Thêm định nghĩa lệnh gọi hàm

Thêm một lệnh gọi hàm mới để liệt kê các truy vấn hoặc công việc gần đây đối với cơ sở dữ liệu. Chiến dịch này mô hình tạo sinh sử dụng định nghĩa này để tìm hiểu chức năng của lệnh gọi API và tham số đầu vào nào cần. Định nghĩa hàm ví dụ này là được xác định không có tham số.

Cách thêm một lệnh gọi hàm mới vào ứng dụng:

  1. Trong cửa sổ Cloud Shell Editor, hãy mở tệp mã sql-talk-app/app.py.
  2. Sau phần khai báo hàm list_datasets_func, hãy thêm một hàm mới FunctionDeclaration.

    list_jobs_func = FunctionDeclaration(
        name="list_jobs",
        description="Get a list of the 10 most recent database requests to help answer the user's question",
        parameters={
            "type": "object",
            "properties": {
      },
    },
    )
    
  3. Thêm hàm mới vào đối tượng sql_query_tool.

    sql_query_tool = Tool(
        function_declarations=[
            sql_query_func,
            list_datasets_func,
            List_jobs_func,  # add this new function
            list_tables_func,
            get_table_func,
        ],
    )
    

Cách thêm mã để chạy lệnh gọi API cho hàm mới:

  • Trong tệp mã sql-talk-app/app.py, hãy thêm mệnh đề if mới vào while function_calling_in_process:vòng lặp.

    if response.function_call.name == "list_datasets":
        ...
    
    # add this if clause for list_jobs function
    if response.function_call.name == "list_jobs":
        api_response = client.list_jobs(max_results=10)  # API request(s)
        api_response = str([job.job_id for job in api_response])
        api_requests_and_responses.append(
          [response.function_call.name,params, api_response])
    

Tài nguyên khác

Để biết thêm thông tin về dự án Truy vấn SQL, hãy xem kho lưu trữ mã và xem Bài đăng trên blog của Cộng đồng Cloud về dự án SQL Talk. Nếu bạn cần trợ giúp về việc xây dựng ứng dụng hoặc đang tìm cách cộng tác với các nhà phát triển khác, hãy xem Google Developers Máy chủ Discord của cộng đồng và Diễn đàn về AI/ML của Google Cloud. Để xem thêm các dự án khác trong phần Xây dựng với Google AI, hãy tham khảo danh sách phát video.