此存儲庫包含一個如何在使用語音作為用戶界面的應用程序中實現抹布支持的示例,該應用程序由GPT-4O實時API供電,用於音頻。我們在此博客文章中更詳細地描述了該模式,您可以在此簡短視頻中看到此示例應用程序。
前端中的RTClient接收音頻輸入,將其發送到Python後端,該後端使用RTMiddleTier對象與Azure OpenAI實時API接口,並包括用於搜索Azure AI搜索的工具。

該存儲庫包括作為代碼的基礎架構和Dockerfile將應用程序部署到Azure容器應用程序中,但是只要配置Azure AI搜索和Azure OpenAI服務,它也可以在本地運行。
您有一些開始使用此模板的選擇。最快入門的方法是GitHub代碼空間,因為它將為您設置所有工具,但您也可以在本地設置它。您也可以使用VS代碼DEV容器
您可以通過使用github codespese實際上運行此存儲庫,該碼將在瀏覽器中打開基於Web的VS代碼:
CodeSpace打開(這可能需要幾分鐘)後,打開一個新的終端並繼續部署該應用程序。
您可以使用Dev容器擴展名中的本地VS代碼DEV容器運行該項目:
啟動Docker Desktop(如果尚未安裝的話,請安裝它)
打開項目:
在打開的VS代碼窗口中,一旦顯示了項目文件(這可能需要幾分鐘),打開一個新的終端,然後繼續部署該應用程序。
安裝所需的工具:
python --version 。在Ubuntu上,您可能需要運行sudo apt install python-is-python3將python鏈接到python3 。克隆倉庫( git clone https://github.com/Azure-Samples/aisearch-openai-rag-audio )
繼續前往下一部分以部署應用程序。
以下步驟將提供Azure資源,並將應用程序代碼部署到Azure容器應用程序。
登錄到您的Azure帳戶:
azd auth login對於github代碼,如果上一個命令失敗,請嘗試:
azd auth login --use-device-code創建一個新的AZD環境:
azd env new輸入將用於資源組的名稱。這將在.azure文件夾中創建一個新文件夾,並將其設置為azd的任何調用的活動環境。
(可選)這是您可以通過設置AZD環境變量來自定義部署的點,以便使用現有服務或自定義語音選擇。
運行此單個命令以為示例數據提供資源,部署代碼和設置集成矢量化:
azd upazd down或手動刪除資源,以避免不必要的支出。成功部署應用程序後,您將看到將URL打印到控制台。導航到該URL與瀏覽器中的應用程序進行交互。要嘗試使用該應用程序,請單擊“開始對話按鈕”,說“ Hello”,然後詢問您的數據問題,例如“ Contoso Electronics的舉報人政策是什麼?”您現在也可以按照下一節中的說明在本地運行該應用程序。
您可以使用按照部署說明或將本地應用指向已經存在的服務,可以在本地運行此應用程序。
如果您使用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(您的用戶在本地運行時,部署時託管身份)根本不會設置鍵。
運行此命令啟動該應用程序:
視窗:
pwsh .scriptsstart.ps1Linux/Mac:
./scripts/start.sh該應用程序可在http:// localhost:8765上找到。
應用程序運行後,當您導航到上方的URL時,您應該看到應用程序的開始屏幕: 
要嘗試使用該應用程序,請單擊“開始對話按鈕”,說“ Hello”,然後詢問您的數據問題,例如“ Contoso Electronics的舉報人政策是什麼?”
定價每個區域和使用情況都有所不同,因此不可能預測使用的確切成本。但是,您可以嘗試以下資源的Azure定價計算器。
為了降低成本,您可以改用各種服務的自由SKU,但是這些SKU有局限性。
azd down 。
該模板使用託管身份來消除開發人員管理這些憑據的需求。應用程序可以使用託管身份來獲取Microsoft Entra代幣,而無需管理任何憑據。為確保您的存儲庫中的最佳實踐,建議任何基於模板創建解決方案的人確保在存儲庫中啟用GitHub秘密掃描設置。
示例數據:此演示中使用的PDF文檔包含使用語言模型(Azure OpenAI服務)生成的信息。這些文檔中包含的信息僅用於演示目的,並不反映微軟的觀點或信念。微軟對本文檔中所包含的信息的完整性,準確性,可靠性,適用性或可用性不做任何形式或暗示的保證。保留給微軟的所有權利。