สร้าง 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 ให้ไปที่ระบบคลาวด์ ไดเรกทอรีโปรเจ็กต์ Shell SQL Talk (/sql-talk-app):

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

    bash setup.sh
    

เมื่อสคริปต์การตั้งค่าเสร็จสมบูรณ์ คุณควรเห็นข้อความ ต่อท้ายโค้ดต่อไปนี้ในหน้าต่างเทอร์มินัลเครื่องมือแก้ไข Cloud Shell ข้อความนี้ ระบุว่าขั้นตอนการตั้งค่าเสร็จสมบูรณ์และแอปพลิเคชัน 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 ไม่มีการใช้งานและยกเลิกการเชื่อมต่อแล้ว คุณอาจต้อง เพื่อเชื่อมต่อรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์อีกครั้ง

    gcloud config set project YOUR_PROJECT_ID
    
  2. ในแผงเทอร์มินัลหน้าต่าง Cloud Shell Editor ให้ไปที่ระบบคลาวด์ ไดเรกทอรีโปรเจ็กต์ 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

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

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

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

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

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

การเรียกใช้ฟังก์ชันของ Gemini API จะใช้ไวยากรณ์เฉพาะเพื่อกำหนดฟังก์ชันที่จะใช้โดย Generative AI ในการตอบคำถามหรือแก้ไขปัญหา ไวยากรณ์นี้ไม่จำเป็นต้อง ตรงกับไวยากรณ์ของการเรียก 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 เกี่ยวกับโปรเจ็กต์ SQL Talk ถ้าคุณต้องการความช่วยเหลือในการสร้างแอปพลิเคชันหรือ ที่ต้องการทำงานร่วมกับนักพัฒนาซอฟต์แวร์รายอื่นๆ โปรดดูที่ Google Developers เซิร์ฟเวอร์ Discord สำหรับชุมชน และ ฟอรัม AI/ML ของ Google Cloud ดูโปรเจ็กต์อื่นๆ ของ Build with Google AI ได้ที่ เพลย์ลิสต์วิดีโอ