สร้าง Agent การสำรวจข้อมูล AI ด้วย Gemini

สร้างอินเทอร์เฟซแชทที่ทำงานด้วยปัญญาประดิษฐ์ (AI) สำหรับอินเทอร์เฟซการเขียนโปรแกรมระบบธุรกิจ และเปิดโอกาสให้เพื่อนร่วมงานถามคำถามเกี่ยวกับข้อมูลธุรกิจของคุณ การวิเคราะห์และรายงานข้อมูลขององค์กร สำคัญต่อการปรับปรุงวิธีทำธุรกิจ การค้นหาปัญหา การค้นพบแนวโน้ม และการตรวจสอบผลลัพธ์ล้วนเป็นไปได้ด้วยข้อมูลที่ถูกต้อง แต่ในฐานะนักพัฒนาซอฟต์แวร์ การช่วยให้เพื่อนร่วมงานที่ไม่ได้เขียนโค้ดค้นพบข้อมูลที่ถูกต้องอาจเป็นเรื่องที่ท้าทาย

โปรเจ็กต์ SQL Talk เป็นแอปพลิเคชันโอเพนซอร์สที่ใช้เทคโนโลยี Generative AI ในการตอบคำถามเกี่ยวกับข้อมูลธุรกิจ โปรเจ็กต์นี้ใช้ Gemini API และฟีเจอร์การเรียกฟังก์ชันเพื่อเปลี่ยนคำถามเกี่ยวกับข้อมูลธุรกิจเป็นการค้นหา SQL และการเรียก API จากนั้นเปลี่ยนผลลัพธ์กลับไปเป็นภาษาง่ายๆ คุณสามารถใช้โปรเจ็กต์นี้เป็นจุดเริ่มต้นในการสร้าง Agent ข้อมูลสำหรับธุรกิจของคุณเองและช่วยให้เพื่อนร่วมงานได้รับคำตอบโดยไม่ต้องเขียนโค้ดจำนวนมากแบบใช้ครั้งเดียว

หากต้องการดูภาพรวมวิดีโอเกี่ยวกับโปรเจ็กต์และวิธีขยายโปรเจ็กต์ รวมถึงข้อมูลเชิงลึก จากผู้สร้างโปรเจ็กต์ โปรดไปที่ AI Data Agent | สร้างด้วย AI ของ Google หรือคุณจะเริ่มขยายโปรเจ็กต์โดยใช้วิธีการต่อไปนี้ก็ได้

อินเทอร์เฟซผู้ใช้ของแอปพลิเคชันโครงการ SQL Talk

รูปที่ 1 อินเทอร์เฟซผู้ใช้ของแอปพลิเคชันโปรเจ็กต์ SQL Talk

ตั้งค่าโครงการ

คำแนะนำเหล่านี้จะอธิบายการตั้งค่าโปรเจ็กต์ SQL Talk เพื่อการพัฒนาและการทดสอบ ขั้นตอนทั่วไปคือการสร้างโปรเจ็กต์ SQL Talk, การตั้งค่าโปรเจ็กต์การพัฒนา Google Cloud Shell Editor, การรับรหัสโปรเจ็กต์ของ Google Cloud และใช้สคริปต์เพื่อกำหนดการตั้งค่าโปรเจ็กต์ วิธีการเหล่านี้อธิบายวิธีตั้งค่าโปรเจ็กต์โดยใช้ Cloud Shell Editor ซึ่งทำให้การตั้งค่า การเรียกใช้ และการอัปเดตโปรเจ็กต์ทำได้อย่างรวดเร็วและง่ายดาย

สร้างอินสแตนซ์ Cloud Shell สำหรับโปรเจ็กต์

คุณตั้งค่าโปรเจ็กต์ SQL Talk ได้โดยโคลนที่เก็บโปรเจ็กต์ลงในอินสแตนซ์ Cloud Shell กระบวนการนี้จะตั้งค่าอินสแตนซ์สภาพแวดล้อมการพัฒนาเสมือนภายในโครงสร้างพื้นฐานของ Google Cloud สำหรับโปรเจ็กต์และโคลนที่เก็บโค้ดลงในสภาพแวดล้อมเสมือนดังกล่าว

วิธีสร้างอินสแตนซ์ Cloud Shell สำหรับ SQL Talk

การลิงก์นี้จะตั้งค่าอินสแตนซ์ Google Cloud Shell Editor และโคลนที่เก็บสำหรับ SQL Talk ลงในอินสแตนซ์

Google Cloud Shell Editor ที่แสดงรหัสโปรเจ็กต์ SQL Talk

รูปที่ 2 โปรเจ็กต์ SQL Talk ถูกจำลองในสภาพแวดล้อมการพัฒนาของ Google Cloud Shell Editor

รับรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์

โปรเจ็กต์ SQL Talk ใช้รหัสโปรเจ็กต์ Google Cloud เพื่อเชื่อมต่อกับบริการ Google Cloud รวมถึงโมเดล Gemini คุณกำหนดค่ารหัสโปรเจ็กต์ภายใน Cloud Shell Editor เพื่ออนุญาตให้แอปพลิเคชันเชื่อมต่อกับบริการเหล่านี้ได้

วิธีเชื่อมต่อ Cloud Shell Editor กับรหัสโปรเจ็กต์

  1. ไปที่คอนโซล Google Cloud และลงชื่อเข้าใช้ หากจำเป็น
  2. เลือกโปรเจ็กต์ที่อยู่ในระบบคลาวด์หรือสร้างโปรเจ็กต์ใหม่
  3. จดรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของโปรเจ็กต์ไว้
  4. เชื่อมต่ออินสแตนซ์ Editor กับโปรเจ็กต์ แล้วกําหนดค่าโปรเจ็กต์ ในหน้าต่าง Cloud Shell Editor ให้ป้อนคำสั่งต่อไปนี้ในแผงเทอร์มินัล

    gcloud config set project YOUR_PROJECT_ID
    

กำหนดค่าโปรเจ็กต์ SQL Talk

โปรเจ็กต์ SQL Talk ใช้บริการ Google Cloud ในการดำเนินงานโปรเจ็กต์ ซึ่งรวมถึงบริการฐานข้อมูล BigQuery และ Vertex AI API เพื่อเชื่อมต่อกับโมเดล Gemini โปรเจ็กต์ SQL Talk มีสคริปต์ setup.sh ที่กำหนดค่าโปรเจ็กต์ด้วยบริการ Google Cloud ที่จำเป็นและเริ่มเวอร์ชันเริ่มต้นของโปรเจ็กต์

วิธีกำหนดค่าและเรียกใช้อินสแตนซ์ Cloud Shell Editor ของโปรเจ็กต์

  1. ในแผงเทอร์มินัลหน้าต่าง Cloud Shell Editor ให้ไปที่ไดเรกทอรีโปรเจ็กต์ Cloud Shell SQL Talk (/sql-talk-app) โดยทำดังนี้

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. ป้อนคำสั่งต่อไปนี้ในแผงเทอร์มินัล

    bash setup.sh
    

เมื่อสคริปต์การตั้งค่าเสร็จสมบูรณ์แล้ว คุณจะเห็นข้อความที่คล้ายกับข้อความต่อไปนี้ในหน้าต่างเทอร์มินัลของ Cloud Shell Editor ข้อความนี้แสดงว่าขั้นตอนการตั้งค่าเสร็จสมบูรณ์และแอปพลิเคชัน SQL Talk ทำงานอยู่

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

ทดสอบโปรเจ็กต์

เมื่อตั้งค่าโปรเจ็กต์ SQL Talk เสร็จสมบูรณ์แล้ว คุณสามารถทดสอบแอปพลิเคชันเพื่อยืนยันว่าแอปพลิเคชันทำงานได้ตามที่ต้องการ สคริปต์การตั้งค่าจะเริ่มแอปพลิเคชันโดยอัตโนมัติเมื่อคุณเรียกใช้ และคุณสามารถรีสตาร์ทแอปพลิเคชันได้โดยทำตามขั้นตอนต่อไปนี้

หากต้องการเรียกใช้แอปพลิเคชัน SQL Talk ให้ทำดังนี้

  1. หาก Cloud Shell Editor ไม่ทำงานและไม่ได้เชื่อมต่อ คุณอาจต้องเชื่อมต่อกับรหัสโปรเจ็กต์ Cloud อีกครั้ง

    gcloud config set project YOUR_PROJECT_ID
    
  2. ในแผงเทอร์มินัลหน้าต่าง Cloud Shell Editor ให้ไปที่ไดเรกทอรีโปรเจ็กต์ Cloud Shell SQL Talk

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. ป้อนคำสั่งต่อไปนี้ในแผงเทอร์มินัล

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. ดูแอปพลิเคชัน SQL Talk ที่ด้านขวาบนของหน้าต่าง Cloud Shell Editor ให้เลือกปุ่มตัวอย่างเว็บ แล้วเลือกแสดงตัวอย่างบนพอร์ต 8080

ส่วนหัว Cloud Shell Editor ที่ไฮไลต์ปุ่มแสดงตัวอย่างเว็บ

วิธีดูการอัปเดตแอปพลิเคชัน SQL Talk

  • ใน Web Preview ของเว็บแอปพลิเคชัน SQL Talk ให้โหลดแท็บเบราว์เซอร์หรือแท็บเบราว์เซอร์ซ้ำ

หากต้องการหยุดแอปพลิเคชัน SQL Talk ให้ทำดังนี้

  • ในแผงเทอร์มินัลหน้าต่าง Cloud Shell Editor ให้พิมพ์ Ctrl-C

แก้ไขแอปพลิเคชัน

คุณสามารถเปลี่ยนลักษณะการทำงานและเพิ่มความสามารถให้กับแอปพลิเคชัน SQL Talk ด้วยการแก้ไขโค้ด Python สำหรับแอปพลิเคชัน ส่วนนี้จะอธิบายวิธีเพิ่มการเรียกฟังก์ชันใหม่ไปยังแอปพลิเคชัน SQL Talk

ฟีเจอร์การเรียกฟังก์ชัน Gemini API ใช้ไวยากรณ์เฉพาะในการกำหนดฟังก์ชันที่โมเดล Generative ใช้ตอบคำถามหรือแก้ปัญหา ซึ่งไวยากรณ์ไม่จำเป็นต้องตรงกับไวยากรณ์ของการเรียก API จริงทุกประการ แต่คุณจะใช้ฟีเจอร์การเรียกฟังก์ชันเพื่อบังคับให้โมเดล Generative ใช้ระบุอินพุตหรือพารามิเตอร์ข้อมูลเฉพาะที่สอดคล้องกับไวยากรณ์การเรียก API แล้วใช้พารามิเตอร์เหล่านั้นเพื่อเรียกใช้ API จริงภายในโค้ดแอปพลิเคชันของคุณแทน

ตัวอย่างการใช้งานนี้จะแสดงวิธีสร้างคำจำกัดความการเรียกใช้ฟังก์ชันสำหรับแสดงรายการการค้นหาหรืองานฐานข้อมูลล่าสุด จากนั้นแมปคำจำกัดความนั้นกับการเรียก API จริงภายในโค้ดของแอปพลิเคชัน SQL Talk

เพิ่มคำจำกัดความการเรียกใช้ฟังก์ชัน

เพิ่มการเรียกใช้ฟังก์ชันใหม่สำหรับแสดงรายการการค้นหาฐานข้อมูลล่าสุดหรืองาน คำจำกัดความนี้ใช้โดยโมเดล Generative เพื่อทำความเข้าใจสิ่งที่การเรียก API ทำและพารามิเตอร์อินพุตที่ต้องใช้ ตัวอย่างคำนิยามของฟังก์ชันนี้ ไม่มีการกำหนดพารามิเตอร์

วิธีเพิ่มการเรียกใช้ฟังก์ชันใหม่ในแอปพลิเคชัน

  1. เปิดไฟล์โค้ด sql-talk-app/app.py ในหน้าต่าง Cloud Shell Editor
  2. หลังจากlist_datasets_funcการประกาศฟังก์ชัน ให้เพิ่ม 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. เพิ่มฟังก์ชันใหม่ลงในออบเจ็กต์ 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,
        ],
    )
    

วิธีเพิ่มโค้ดเพื่อเรียกใช้การเรียก API สำหรับฟังก์ชันใหม่

  • ในไฟล์โค้ด sql-talk-app/app.py ให้เพิ่มอนุประโยค if ใหม่ลงในลูป while function_calling_in_process:

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

แหล่งข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรเจ็กต์การค้นหา SQL ได้ที่ที่เก็บโค้ดและดูบล็อกโพสต์ของ Cloud Community เกี่ยวกับโปรเจ็กต์ SQL Talk หากต้องการความช่วยเหลือในการสร้างแอปพลิเคชันหรือกำลังมองหาวิธีทำงานร่วมกับนักพัฒนาซอฟต์แวร์รายอื่นๆ โปรดไปที่เซิร์ฟเวอร์ Google Developers Community Discord และฟอรัม AI/ML ของ Google Cloud สําหรับโปรเจ็กต์ Build with AI ของ Google เพิ่มเติม โปรดดูเพลย์ลิสต์วิดีโอ