repo นี้มีตัวอย่างของวิธีการใช้การสนับสนุน RAG ในแอปพลิเคชันที่ใช้เสียงเป็นส่วนต่อประสานผู้ใช้ซึ่งขับเคลื่อนโดย GPT-4O เรียลไทม์ API สำหรับเสียง เราอธิบายรูปแบบในรายละเอียดเพิ่มเติมในโพสต์บล็อกนี้และคุณสามารถดูแอพตัวอย่างนี้ทำงานได้ในวิดีโอสั้น ๆ นี้
RTClient ในส่วนหน้าได้รับอินพุตเสียงส่งไปยังแบ็กเอนด์ Python ซึ่งใช้วัตถุ RTMiddleTier เพื่อเชื่อมต่อกับ Azure OpenAI REAL-TIME API และรวมถึงเครื่องมือในการค้นหา Azure AI Search

พื้นที่เก็บข้อมูลนี้รวมถึงโครงสร้างพื้นฐานเป็นรหัสและ Dockerfile เพื่อปรับใช้แอพกับแอพ Azure Container แต่ยังสามารถทำงานได้ในพื้นที่ตราบเท่าที่ Azure AI Search และ Azure Openai บริการได้รับการกำหนดค่า
คุณมีตัวเลือกเล็กน้อยสำหรับการเริ่มต้นกับเทมเพลตนี้ วิธีที่เร็วที่สุดในการเริ่มต้นคือ GitHub codespaces เนื่องจากจะตั้งค่าเครื่องมือทั้งหมดสำหรับคุณ แต่คุณสามารถตั้งค่าได้ในพื้นที่ คุณยังสามารถใช้คอนเทนเนอร์ VS Code Dev
คุณสามารถเรียกใช้ repo นี้ได้อย่างแท้จริงโดยใช้ GitHub codespaces ซึ่งจะเปิดรหัส VS บนเว็บในเบราว์เซอร์ของคุณ:
เมื่อรหัสเปิด (อาจใช้เวลาหลายนาที) ให้เปิดเทอร์มินัลใหม่และดำเนินการปรับใช้แอปต่อไป
คุณสามารถเรียกใช้โครงการในคอนเทนเนอร์ DEV รหัสท้องถิ่นของคุณโดยใช้ส่วนขยาย DEV Containers:
เริ่ม Docker Desktop (ติดตั้งหากยังไม่ได้ติดตั้ง)
เปิดโครงการ:
ในหน้าต่าง VS Code ที่เปิดขึ้นเมื่อไฟล์โครงการปรากฏขึ้น (อาจใช้เวลาหลายนาที) เปิดเทอร์มินัลใหม่และดำเนินการปรับใช้แอปต่อไป
ติดตั้งเครื่องมือที่จำเป็น:
python --version จากคอนโซล ใน Ubuntu คุณอาจต้องเรียกใช้ sudo apt install python-is-python3 เพื่อเชื่อมโยง python ไปยัง python3 โคลน repo ( git clone https://github.com/Azure-Samples/aisearch-openai-rag-audio )
ดำเนินการต่อไปยังส่วนถัดไปเพื่อปรับใช้แอป
ขั้นตอนด้านล่างนี้จะจัดหาทรัพยากร Azure และปรับใช้รหัสแอปพลิเคชันไปยังแอพ Azure Container
เข้าสู่ระบบบัญชี Azure ของคุณ:
azd auth loginสำหรับผู้ใช้ GitHub codespaces หากคำสั่งก่อนหน้านี้ล้มเหลวลอง:
azd auth login --use-device-codeสร้างสภาพแวดล้อม AZD ใหม่:
azd env new ป้อนชื่อที่จะใช้สำหรับกลุ่มทรัพยากร สิ่งนี้จะสร้างโฟลเดอร์ใหม่ในโฟลเดอร์ .azure และตั้งค่าเป็นสภาพแวดล้อมที่ใช้งานอยู่สำหรับการโทรไปยัง azd ในอนาคต
(ไม่บังคับ) นี่คือจุดที่คุณสามารถปรับแต่งการปรับใช้โดยการตั้งค่าตัวแปรสภาพแวดล้อม AZD เพื่อใช้บริการที่มีอยู่หรือปรับแต่งการเลือกเสียง
เรียกใช้คำสั่งเดียวนี้เพื่อจัดเตรียมทรัพยากรปรับใช้รหัสและการตั้งค่าการรวมตัวกันของ Vectorization สำหรับข้อมูลตัวอย่าง:
azd upazd down หรือลบทรัพยากรด้วยตนเองเพื่อหลีกเลี่ยงการใช้จ่ายที่ไม่จำเป็นหลังจากใช้งานแอปพลิเคชันเรียบร้อยแล้วคุณจะเห็น URL ที่พิมพ์ไปยังคอนโซล นำทางไปยัง URL นั้นเพื่อโต้ตอบกับแอพในเบราว์เซอร์ของคุณ หากต้องการลองใช้แอพให้คลิกปุ่ม "เริ่มการสนทนา", พูดว่า "สวัสดี" จากนั้นถามคำถามเกี่ยวกับข้อมูลของคุณเช่น "นโยบายผู้แจ้งเบาะแสสำหรับ contoso electronics คืออะไร" ตอนนี้คุณสามารถเรียกใช้แอพในเครื่องโดยทำตามคำแนะนำในส่วนถัดไป
คุณสามารถเรียกใช้แอพนี้ในพื้นที่โดยใช้บริการ Azure ที่คุณจัดเตรียมโดยทำตามคำแนะนำในการปรับใช้หรือโดยการชี้แอพท้องถิ่นที่บริการที่มีอยู่แล้ว
หากคุณปรับใช้กับ azd up คุณควรเห็นไฟล์ app/backend/.env พร้อมตัวแปรสภาพแวดล้อมที่จำเป็น
หาก ไม่ได้ ใช้ azd up คุณจะต้องสร้างไฟล์ app/backend/.env ด้วยตัวแปรสภาพแวดล้อมต่อไปนี้:
AZURE_OPENAI_ENDPOINT=wss:// < your instance name > .openai.azure.com
AZURE_OPENAI_REALTIME_DEPLOYMENT=gpt-4o-realtime-preview
AZURE_OPENAI_REALTIME_VOICE_CHOICE= < choose one: echo, alloy, shimmer >
AZURE_OPENAI_API_KEY= < your api key >
AZURE_SEARCH_ENDPOINT=https:// < your service name > .search.windows.net
AZURE_SEARCH_INDEX= < your index name >
AZURE_SEARCH_API_KEY= < your api key >หากต้องการใช้ ENTRA ID (ผู้ใช้ของคุณเมื่อทำงานในเครื่องจะมีการจัดการข้อมูลประจำตัวเมื่อปรับใช้) เพียงแค่ไม่ตั้งค่าคีย์
เรียกใช้คำสั่งนี้เพื่อเริ่มแอพ:
Windows:
pwsh .scriptsstart.ps1Linux/Mac:
./scripts/start.shแอพนี้มีอยู่ใน http: // localhost: 8765
เมื่อแอปกำลังทำงานเมื่อคุณนำทางไปยัง URL ด้านบนคุณควรเห็นหน้าจอเริ่มต้นของแอพ: 
หากต้องการลองใช้แอพให้คลิกปุ่ม "เริ่มการสนทนา", พูดว่า "สวัสดี" จากนั้นถามคำถามเกี่ยวกับข้อมูลของคุณเช่น "นโยบายผู้แจ้งเบาะแสสำหรับ contoso electronics คืออะไร"
การกำหนดราคาแตกต่างกันไปตามภูมิภาคและการใช้งานดังนั้นจึงเป็นไปไม่ได้ที่จะทำนายค่าใช้จ่ายที่แน่นอนสำหรับการใช้งานของคุณ อย่างไรก็ตามคุณสามารถลองใช้เครื่องคิดเลขราคา Azure สำหรับทรัพยากรด้านล่าง
เพื่อลดต้นทุนคุณสามารถเปลี่ยนเป็น SKU ฟรีสำหรับบริการต่าง ๆ แต่ SKU เหล่านั้นมีข้อ จำกัด
azd down
เทมเพลตนี้ใช้ตัวตนที่มีการจัดการเพื่อขจัดความจำเป็นสำหรับนักพัฒนาในการจัดการข้อมูลรับรองเหล่านี้ แอปพลิเคชันสามารถใช้ข้อมูลประจำตัวที่มีการจัดการเพื่อรับโทเค็น Microsoft Entra โดยไม่ต้องจัดการข้อมูลรับรองใด ๆ เพื่อให้แน่ใจว่าแนวทางปฏิบัติที่ดีที่สุดใน repo ของคุณเราขอแนะนำให้ทุกคนที่สร้างโซลูชันตามเทมเพลตของเราทำให้มั่นใจได้ว่าการตั้งค่าการสแกน GitHub Secret ถูกเปิดใช้งาน
ข้อมูลตัวอย่าง: เอกสาร PDF ที่ใช้ในการสาธิตนี้มีข้อมูลที่สร้างขึ้นโดยใช้รูปแบบภาษา (บริการ Azure OpenAI) ข้อมูลที่มีอยู่ในเอกสารเหล่านี้มีไว้เพื่อการสาธิตเท่านั้นและไม่สะท้อนความคิดเห็นหรือความเชื่อของ Microsoft Microsoft ไม่ได้เป็นตัวแทนหรือการรับประกันใด ๆ ไม่ว่าโดยชัดแจ้งหรือโดยนัยเกี่ยวกับความสมบูรณ์ความแม่นยำความน่าเชื่อถือความเหมาะสมหรือความพร้อมใช้งานเกี่ยวกับข้อมูลที่มีอยู่ในเอกสารนี้ สงวนลิขสิทธิ์สำหรับ Microsoft