Bangun agen eksplorasi data AI dengan Gemini

Membangun antarmuka chat yang didukung kecerdasan buatan (AI) untuk bisnis Anda antarmuka pemrograman sistem dan biarkan rekan Anda mengajukan pertanyaan tentang data bisnis. Melakukan analisis dan pelaporan atas data organisasi Anda adalah penting untuk meningkatkan cara Anda berbisnis. Menemukan masalah, menemukan tren, dan hasil penyelidikan dapat dilakukan dengan data yang tepat, namun sebagai khusus, membantu kolega yang tidak melakukan coding menemukan data yang tepat dapat menantang.

Tujuan Bincang SQL adalah aplikasi open source yang menggunakan teknologi AI generatif untuk menjawab pertanyaan tentang data bisnis. Project ini menggunakan Gemini API dan fitur Panggilan Fungsi untuk mengubah pertanyaan data bisnis menjadi kueri SQL dan panggilan API, lalu mengubah hasilnya kembali ke dalam bahasa sederhana. Anda dapat menggunakan proyek ini sebagai titik awal untuk membangun agen data bagi bisnis Anda sendiri, dan membantu kolega mendapatkan jawaban tanpa Anda harus menulis banyak kode sekali pakai.

Untuk video ringkasan proyek dan cara memperluasnya, termasuk wawasan dari orang-orang yang membuatnya, lihat Agen Data AI | Membangun aplikasi dengan AI Google. Jika tidak, Anda dapat mulai memperluas project menggunakan petunjuk.

Antarmuka pengguna aplikasi proyek SQL Talk

Gambar 1. Antarmuka pengguna aplikasi proyek SQL Talk.

Penyiapan project

Instruksi ini akan memandu Anda menyiapkan konfigurasi proyek SQL Talk untuk pengembangan dan pengujian. Langkah-langkah umumnya adalah membuat alat SQL Talk project, menyiapkan Google Cloud Shell Editor project pengembangan Anda, mendapatkan Project ID Google Cloud, dan menggunakan untuk mengonfigurasi setelan project. Petunjuk ini menjelaskan cara mengatur menyiapkan project menggunakan Cloud Shell Editor, yang membuat penyiapan, menjalankan dan memperbarui proyek dengan cepat dan nyaman.

Membuat instance Cloud Shell untuk project

Anda dapat mengatur proyek SQL Talk dengan membuat kloning repositori proyek ke dalam di instance Cloud Shell. Proses ini menyiapkan lingkungan pengembangan virtual di dalam infrastruktur Google Cloud untuk project dan meng-clone repositori kode ke lingkungan virtual tersebut.

Guna membuat instance Cloud Shell untuk SQL Talk:

Link ini menyiapkan instance Google Cloud Shell Editor dan meng-clone repositori SQL Talk ke instance.

Google Cloud Shell Editor dengan kode project SQL Talk yang ditampilkan

Gambar 2. Project SQL Talk yang di-clone ke dalam Editor Google Cloud Shell lingkungan pengembangan Anda.

Mendapatkan project ID Cloud

Project SQL Talk menggunakan ID project Google Cloud untuk terhubung ke Google Cloud yang besar, termasuk model Gemini. Anda mengonfigurasi project ID dalam Cloud Shell Editor agar aplikasi dapat terhubung dengan layanan ini.

Untuk menghubungkan Cloud Shell Editor ke project ID:

  1. Buka halaman Google Cloud konsol dan login, jika perlu.
  2. Pilih Project Cloud yang ada, atau buat akun baru.
  3. Catat Project ID Cloud untuk project tersebut.
  4. Hubungkan instance Editor ke project Anda dan konfigurasikan project. Di jendela Cloud Shell Editor, masukkan perintah berikut di panel terminal:

    gcloud config set project YOUR_PROJECT_ID
    

Mengonfigurasi project SQL Talk

Project SQL Talk menggunakan layanan Google Cloud untuk menjalankan project, termasuk layanan database BigQuery, dan Vertex AI API untuk terhubung ke model Gemini. Project SQL Talk menyertakan skrip setup.sh yang mengonfigurasi project dengan layanan Google Cloud yang diperlukan dan memulai versi default dari proyek.

Untuk mengonfigurasi dan menjalankan instance Cloud Shell Editor project:

  1. Di panel terminal jendela Cloud Shell Editor, buka direktori Cloud Direktori project Shell SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. Di panel terminal, masukkan perintah berikut:

    bash setup.sh
    

Saat skrip penyiapan berhasil diselesaikan, Anda akan melihat pesan yang serupa ke baris berikut di jendela terminal Cloud Shell Editor. Pesan ini menunjukkan bahwa proses pengaturan berhasil dan aplikasi SQL Talk berlari:

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

Menguji project

Setelah menyelesaikan pengaturan proyek SQL Talk, Anda dapat menguji untuk memverifikasi bahwa aplikasi tersebut berfungsi seperti yang diharapkan. Skrip penyiapan otomatis memulai aplikasi saat Anda menjalankannya, dan Anda dapat memulai ulang aplikasi menggunakan langkah-langkah berikut.

Untuk menjalankan aplikasi SQL Talk:

  1. Jika Cloud Shell Editor tidak ada aktivitas dan terputus, Anda mungkin perlu untuk terhubung kembali ke project ID Cloud Anda.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Di panel terminal jendela Cloud Shell Editor, buka direktori Cloud Direktori project Shell SQL Talk.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. Di panel terminal, masukkan perintah berikut.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Lihat aplikasi SQL Talk. Di kanan atas Cloud Shell Editor pilih tombol Web Preview, lalu Pratinjau di port 8080.

Header Cloud Shell Editor dengan tombol Web Preview ditandai

Untuk melihat pembaruan pada aplikasi SQL Talk:

  • Dalam Pratinjau Web aplikasi web SQL Talk, muat ulang browser atau tab browser web Anda.

Untuk menghentikan aplikasi SQL Talk:

  • Di panel terminal jendela Cloud Shell Editor, ketik Ctrl-C.

Mengubah aplikasi

Anda dapat mengubah perilaku dan menambahkan kemampuan ke aplikasi SQL Talk dengan memodifikasi kode Python untuk aplikasi tersebut. Bagian ini menjelaskan cara menambahkan panggilan fungsi baru ke aplikasi SQL Talk.

Panggilan Fungsi Gemini API menggunakan sintaks tertentu untuk menentukan fungsi yang akan digunakan oleh model untuk menjawab pertanyaan atau memecahkan masalah. Sintaks ini tidak perlu sama persis dengan sintaksis panggilan API yang sebenarnya. Sebagai gantinya, Anda menggunakan Function Fitur panggilan untuk memaksa model generatif memberikan input data atau yang sesuai dengan sintaksis panggilan API, lalu menggunakan parameter tersebut untuk mengeksekusi panggilan API yang sebenarnya dalam kode aplikasi Anda.

Contoh implementasi ini menunjukkan cara membuat definisi panggilan fungsi untuk mencantumkan kueri atau tugas database terbaru, lalu petakan definisi tersebut ke panggilan API aktual dalam kode aplikasi SQL Talk.

Menambahkan definisi panggilan fungsi

Tambahkan panggilan fungsi baru untuk mencantumkan kueri database atau tugas terbaru. Ini digunakan oleh model generatif untuk memahami fungsi panggilan API dan parameter input apa yang diperlukan. Contoh definisi fungsi ini adalah yang ditentukan tanpa parameter.

Untuk menambahkan panggilan fungsi baru ke aplikasi:

  1. Di jendela Cloud Shell Editor, buka file kode sql-talk-app/app.py.
  2. Setelah deklarasi fungsi list_datasets_func, tambahkan 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. Tambahkan fungsi baru ke objek 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,
        ],
    )
    

Untuk menambahkan kode guna menjalankan panggilan API untuk fungsi baru:

  • Dalam file kode sql-talk-app/app.py, tambahkan klausa if baru ke while function_calling_in_process: ulang.

    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])
    

Referensi lainnya

Untuk informasi selengkapnya tentang proyek Kueri SQL, lihat repositori kode dan lihat Postingan blog Komunitas Cloud tentang proyek SQL Talk. Jika Anda membutuhkan bantuan untuk membangun aplikasi atau yang ingin berkolaborasi dengan pengembang lain, lihat Google Developers server Discord Komunitas, dan Forum AI/ML Google Cloud. Untuk project Membangun dengan AI Google lainnya, lihat playlist video.