สร้างอินเทอร์เฟซการแชทที่ทำงานด้วยระบบปัญญาประดิษฐ์ (AI) สำหรับอินเทอร์เฟซการเขียนโปรแกรมระบบธุรกิจ และอนุญาตให้เพื่อนร่วมงานถามคำถามเกี่ยวกับข้อมูลธุรกิจ การวิเคราะห์และการรายงานข้อมูลขององค์กรเป็นสิ่งจําเป็นในการปรับปรุงวิธีทําธุรกิจ การค้นหาปัญหา การค้นพบเทรนด์ และการตรวจสอบผลลัพธ์ล้วนทำได้ด้วยข้อมูลที่เหมาะสม แต่ในฐานะนักพัฒนาซอฟต์แวร์ การช่วยให้เพื่อนร่วมงานที่ไม่ใช่โปรแกรมเมอร์ค้นพบข้อมูลที่เหมาะสมอาจเป็นเรื่องท้าทาย
โปรเจ็กต์ SQL Talk เป็นแอปพลิเคชันโอเพนซอร์สที่ใช้เทคโนโลยี Generative AI เพื่อตอบคําถามเกี่ยวกับข้อมูลธุรกิจ โปรเจ็กต์นี้ใช้ Gemini API และฟีเจอร์การเรียกใช้ฟังก์ชันเพื่อเปลี่ยนคำถามเกี่ยวกับข้อมูลธุรกิจเป็นการค้นหา SQL และการเรียก API จากนั้นเปลี่ยนผลลัพธ์กลับเป็นภาษาธรรมดา คุณสามารถใช้โปรเจ็กต์นี้เป็นจุดเริ่มต้นในการสร้างตัวแทนข้อมูลสําหรับธุรกิจของคุณเอง และช่วยให้เพื่อนร่วมงานได้รับคําตอบโดยไม่ต้องเขียนโค้ดแบบใช้ครั้งเดียวจํานวนมาก
ดูภาพรวมของโปรเจ็กต์และวิธีขยายการใช้งาน รวมถึงข้อมูลเชิงลึกจากทีมที่สร้างโปรเจ็กต์ได้ที่ตัวแทนข้อมูล AI | สร้างด้วย AI ของ Google หรือจะเริ่มต้นขยายโปรเจ็กต์โดยใช้วิธีการต่อไปนี้ก็ได้
รูปที่ 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
- คลิกลิงก์ต่อไปนี้เพื่อสร้างอินสแตนซ์ Cloud Shell ของ SQL Talk
ลิงก์นี้จะตั้งค่าอินสแตนซ์เครื่องมือแก้ไข Google Cloud Shell และโคลนที่เก็บข้อมูลสำหรับ SQL Talk ไปยังอินสแตนซ์
รูปที่ 2 โปรเจ็กต์ SQL Talk ที่โคลนลงในสภาพแวดล้อมการพัฒนาของเครื่องมือแก้ไข Google Cloud Shell
รับรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์
โปรเจ็กต์ SQL Talk ใช้รหัสโปรเจ็กต์ Google Cloud เพื่อเชื่อมต่อกับบริการ Google Cloud รวมถึงโมเดล Gemini คุณต้องกำหนดค่ารหัสโปรเจ็กต์ภายในเครื่องมือแก้ไขของ Cloud Shell เพื่ออนุญาตให้แอปพลิเคชันเชื่อมต่อกับบริการเหล่านี้
วิธีเชื่อมต่อเครื่องมือแก้ไข Cloud Shell กับรหัสโปรเจ็กต์
- ไปที่คอนโซล Google Cloud แล้วลงชื่อเข้าใช้ หากจำเป็น
- เลือกโปรเจ็กต์ที่อยู่ในระบบหรือสร้างโปรเจ็กต์ใหม่
- จดรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของโปรเจ็กต์ไว้
เชื่อมต่ออินสแตนซ์ 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 ของโปรเจ็กต์
ในแผงเทอร์มินัลของหน้าต่าง Cloud Shell Editor ให้ไปที่ไดเรกทอรีโปรเจ็กต์ Cloud SQL Talk (
/sql-talk-app
) โดยทำดังนี้cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
ในแผงเทอร์มินัล ให้ป้อนคำสั่งต่อไปนี้
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
หาก Cloud Shell Editor ไม่มีการใช้งานและตัดการเชื่อมต่อ คุณอาจต้องเชื่อมต่อกับรหัสโปรเจ็กต์ Cloud อีกครั้ง
gcloud config set project YOUR_PROJECT_ID
ในแผงเทอร์มินัลของหน้าต่าง Cloud Shell Editor ให้ไปที่ไดเรกทอรีโปรเจ็กต์ Cloud SQL Talk
cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
ในแผงเทอร์มินัล ให้ป้อนคำสั่งต่อไปนี้
~/miniforge/bin/streamlit run app.py --server.enableCORS=false \ --server.enableXsrfProtection=false --server.port 8080
ดูแอปพลิเคชัน SQL Talk ที่ด้านขวาบนของหน้าต่างเครื่องมือแก้ไข Cloud Shell ให้เลือกปุ่มแสดงตัวอย่างเว็บ แล้วเลือกแสดงตัวอย่างบนพอร์ต 8080
วิธีดูการอัปเดตแอปพลิเคชัน SQL Talk
- ในตัวอย่างเว็บของแอปพลิเคชันเว็บ 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 ทํางานอย่างไรและต้องใช้พารามิเตอร์อินพุตใด คําจํากัดความฟังก์ชันตัวอย่างนี้กําหนดโดยไม่มีพารามิเตอร์
วิธีเพิ่มการเรียกฟังก์ชันใหม่ลงในแอปพลิเคชัน
- ในหน้าต่าง Cloud Shell Editor ให้เปิดไฟล์โค้ด
sql-talk-app/app.py
หลังจาก
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": { }, }, )
เพิ่มฟังก์ชันใหม่ลงในออบเจ็กต์
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:
loopif 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 หากต้องการความช่วยเหลือในการสร้างแอปพลิเคชันหรือต้องการทำงานร่วมกับนักพัฒนาแอปคนอื่นๆ โปรดไปที่เซิร์ฟเวอร์ Discord ของชุมชนนักพัฒนาแอป Google และฟอรัม AI/ML ของ Google Cloud ดูโปรเจ็กต์อื่นๆ ที่สร้างด้วย AI ของ Google ได้ที่เพลย์ลิสต์วิดีโอ