你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 通信服务通话自动化 OpenAI 示例演示了如何使用通话自动化 SDK 以及最近宣布的公共预览版与 Azure AI 服务的集成来生成智能虚拟助理。
在此示例中,我们将介绍此示例的功能,以及在计算机本地运行此示例之前需要满足的先决条件。
下载代码
在 GitHub 上查找此示例项目。 可以下载此代码,并在本地运行以自行试用。
概述
此示例是一个服务器端应用程序,可帮助你创建一个虚拟助手,它能够使用通话自动化功能来处理通话,使用新宣布的与 Azure AI 服务的集成来回应客户,并提供 AI 功能,例如文本转语音和语音转文本以及 Azure OpenAI 提供的智能回应。
此 Azure 通信服务通话自动化 AI 示例演示如何使用通话自动化 SDK 应答呼入的通话,使用通话自动化识别 API 识别用户语音输入,并支持语音转文本。 识别输入后,它会将该信息发送到 OpenAI 以获取回答,然后使用支持文本转语音的通话自动化播放 API 将 OpenAI 提供的回答播放给呼叫方。
先决条件
- 创建具有活动订阅的 Azure 帐户。 有关详细信息,请参阅创建免费帐户
- 创建 Azure 通信服务资源。 有关详细信息,请参阅创建 Azure 通信资源。 你需要记下你的资源连接字符串以便在本示例中使用。
- 支持通话的电话号码。 获取电话号码。
- Azure 开发隧道 CLI。 有关详细信息,请参阅启用开发隧道
- 创建 Azure AI 服务资源。 有关详细信息,请参阅创建 Azure AI 服务资源
- Azure OpenAI 资源和已部署的模型。 请参阅说明。
设置说明
在运行此示例之前,需要使用以下配置更新设置“先决条件”部分中提到的资源:
1. 设置并托管你的 Azure DevTunnel
Azure DevTunnels 是一项 Azure 服务,可用于共享 Internet 上托管的本地 Web 服务。 使用以下命令,将本地开发环境连接到公共 Internet。 这会创建一个具有永久性终结点 URL 的隧道,可用于匿名访问。 然后,我们要使用此终结点通知你的应用程序来自 Azure 通信服务通话自动化服务的通话事件。
devtunnel create --allow-anonymous
devtunnel port create -p 5165
devtunnel host
2.将托管标识添加到与 Azure AI 服务资源连接的 Azure 通信服务资源
请按照此文档中的说明进行操作。
3. 添加所需的 API 密钥和终结点
打开 appsettings.json 文件以配置以下设置:
-
DevTunnelUri
:你的开发隧道终结点 -
CognitiveServiceEndpoint
:Azure AI 服务终结点 -
AcsConnectionString
:Azure 通信服务资源的连接字符串。 -
AzureOpenAIServiceKey
:Azure OpenAI 服务密钥 -
AzureOpenAIServiceEndpoint
:Azure OpenAI 服务终结点 -
AzureOpenAIDeploymentModelName
:Azure OpenAI 模型名称
运行应用程序
- Azure DevTunnel:确保你的 AzureDevTunnel URI 处于活动状态,并指向 localhost 应用程序的正确端口
- 运行
dotnet run
生成并运行示例应用程序 - 为指向你的 DevTunnel URI 的 IncomingCall 事件注册事件网格 Webhook。 请参阅此处的说明。
完成后,你应有一个正在运行的应用程序。 测试此示例的最佳方式是拨打 Azure 通信服务电话号码并与智能代理通话。
后续步骤
下载代码
在 GitHub 上查找此示例项目。 可以下载此代码,并在本地运行以自行试用。
概述
此示例是一个服务器端应用程序,可帮助你创建一个虚拟助手,它能够使用通话自动化功能来处理通话,使用新宣布的与 Azure AI 服务的集成来回应客户,并提供 AI 功能,例如文本转语音和语音转文本以及 Azure OpenAI 提供的智能回应。
此 Azure 通信服务呼叫自动化 AI 示例演示如何使用呼叫自动化 SDK 应答入站呼叫。 它使用支持语音转文本的呼叫自动化识别 API 来识别用户语音输入。 识别输入后,它会将该信息发送到 OpenAI 以获取回答,然后使用支持文本转语音的通话自动化播放 API 将 OpenAI 提供的回答播放给呼叫方。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 已部署的通信服务资源。 创建通信服务资源。
- Azure 通信服务资源中可以进行出站呼叫的电话号码。 注意:免费订阅中不提供电话号码。
- Java 开发工具包 (JDK) Microsoft.OpenJDK.17
- Apache Maven
- 创建并托管 Azure 开发隧道。 请参阅此处的说明
- 创建 Azure AI 服务资源。 有关详细信息,请参阅“创建 Azure AI 服务资源”。
- Azure OpenAI 资源和已部署的模型。 请参阅说明。
第一次运行示例之前
打开 resources 文件夹中的 application.yml 文件以配置以下设置
-
connectionstring
:Azure 通信服务资源的连接字符串。 -
basecallbackuri
:应用程序的基本 URL。 对于本地开发,请使用开发隧道 URL。 -
cognitiveServicesUrl
:Azure AI 服务终结点 -
azureOpenAiServiceKey
:Azure OpenAI 服务密钥 -
azureOpenAiServiceEndpoint
:Azure OpenAI 服务终结点 -
openAiModelName
:Azure OpenAI 模型名称
-
设置并托管 Azure DevTunnel
Azure DevTunnels 是一项 Azure 服务,可用于共享 Internet 上托管的本地 Web 服务。 使用提供的命令,将你的本地开发环境连接到公共 Internet。 这会创建一个具有永久性终结点 URL 的隧道,可用于匿名访问。 然后,我们要使用此终结点通知你的应用程序来自 Azure 通信服务通话自动化服务的通话事件。
devtunnel create --allow-anonymous
devtunnel port create -p 8080
devtunnel host
运行应用程序
- 导航到包含 pom.xml 文件的目录并使用以下 mvn 命令:
- 编译应用程序:mvn compile
- 生成包:mvn package
- 执行应用:mvn exec:java
- 在 http://localhost:8080/swagger-ui.html 访问 Swagger UI
- 试用 GET /outboundCall 运行示例应用程序
完成后,你应有一个正在运行的应用程序。 测试此示例的最佳方式是拨打 Azure 通信服务电话号码并与智能代理通话。
后续步骤
下载代码
在 GitHub 上查找此示例项目。 可以下载此代码,并在本地运行以自行试用。
概述
此示例是一个服务器端应用程序,可帮助你创建一个虚拟助手,它能够使用通话自动化功能来处理通话,使用新宣布的与 Azure AI 服务的集成来回应客户,并提供 AI 功能,例如文本转语音和语音转文本以及 Azure OpenAI 提供的智能回应。
此 Azure 通信服务通话自动化 AI 示例演示如何使用通话自动化 SDK 应答呼入的通话,使用通话自动化识别 API 识别用户语音输入,并支持语音转文本。 识别输入后,它会将该信息发送到 OpenAI 以获取回答,然后使用支持文本转语音的通话自动化播放 API 将 OpenAI 提供的回答播放给呼叫方。
先决条件
- 创建具有活动订阅的 Azure 帐户。 有关详细信息,请参阅创建免费帐户
- 创建 Azure 通信服务资源。 有关详细信息,请参阅创建 Azure 通信资源。 你需要记下你的资源连接字符串以便在本示例中使用。
- 支持通话的电话号码。 获取电话号码。已安装 -- Node.js
- Azure 开发隧道。 有关详细信息,请参阅启用开发隧道
- 创建 Azure AI 多服务资源。 有关详细信息,请参阅创建 Azure AI 服务资源
- Azure OpenAI 资源和已部署的模型。 请参阅说明。
设置说明
在运行此示例之前,需要使用以下配置更新设置“先决条件”部分中提到的资源:
1. 设置并托管你的 Azure DevTunnel
Azure DevTunnels 是一项 Azure 服务,可用于共享 Internet 上托管的本地 Web 服务。 使用此文档中提供的命令,将你的本地开发环境连接到公共 Internet。 这会创建一个具有永久性终结点 URL 的隧道,可用于匿名访问。 我们将使用此终结点通知应用程序来自 ACS 通话自动化服务的通话事件。
devtunnel create --allow-anonymous
devtunnel port create -p 8080
devtunnel host
2.将托管标识添加到与 Azure AI 服务资源连接的 Azure 通信服务资源
请按照此文档中的说明进行操作。
3. 添加所需的 API 密钥和终结点
打开 .env
文件以配置以下设置
-
CONNECTION_STRING
:Azure 通信服务资源的连接字符串。 -
CALLBACK_URI
:应用程序的基本 URL。 (对于本地开发,请替换开发隧道 URL) -
COGNITIVE_SERVICE_ENDPOINT
:Azure AI 服务终结点 -
AZURE_OPENAI_SERVICE_KEY
:Azure OpenAI 服务密钥 -
AZURE_OPENAI_SERVICE_ENDPOINT
:Azure OpenAI 终结点 -
AZURE_OPENAI_DEPLOYMENT_MODEL_NAME
:Azure OpenAI 部署名称 -
AGENT_PHONE_NUMBER
:用于转接电话以解决查询的代理电话号码
运行应用程序
- 打开新的 PowerShell 窗口,通过 cd 命令进入
callautomation-openai-sample
文件夹并运行npm run dev
- 浏览器应弹出以下页面。 如果没有,请导航到
http://localhost:8080/
- 为指向你的 DevTunnel URI 的 IncomingCall 事件注册事件网格 Webhook。 请参阅此处的说明。
完成后,你应有一个正在运行的应用程序。 测试此示例的最佳方式是拨打 Azure 通信服务电话号码并与智能代理通话。
后续步骤
下载代码
在 GitHub 上查找此示例项目。 可以下载此代码,并在本地运行以自行试用。
概述
此示例是一个服务器端应用程序,可帮助你创建能够使用呼叫自动化处理呼叫的虚拟助理。 它还能让你的助理使用 Azure AI 服务(提供文本到语音和语音到文本等 AI 功能)以及 Azure OpenAI 提供的智能回复来回复客户。
此 Azure 通信服务通话自动化 AI 示例演示如何使用通话自动化 SDK 应答呼入的通话,使用通话自动化识别 API 识别用户语音输入,并支持语音转文本。 系统识别输入后,会将信息发送给 OpenAI 以获取答案,并使用支持文本到语音的呼叫自动化播放 API 向呼叫者播放 OpenAI 提供的答案。
先决条件
- 创建具有活动订阅的 Azure 帐户。 有关详细信息,请参阅创建免费账户。
- 创建 Azure 通信服务资源。 有关详细信息,请参阅创建 Azure 通信资源。 你需要记下你的资源连接字符串以便在本示例中使用。
- 支持通话的电话号码。 获取电话号码。
- Azure 开发隧道。 有关详细信息,请参阅启用开发隧道。
- 创建 Azure AI 多服务资源。 有关详细信息,请参阅创建 Azure AI 服务资源。
- Azure OpenAI 资源和已部署的模型。 请参阅说明。
- 创建并托管 Azure 开发隧道。 请参阅此处的说明。
- Python 3.7 或更高版本(请注意,当前版本 3.12 不支持 OpenAI 库)。
设置说明
在运行此示例之前,需要使用以下配置更新设置“先决条件”部分中提到的资源:
1.设置 Python 环境
使用以下命令创建和激活 python 虚拟环境并安装所需的包
pip install -r requirements.txt
2.设置并托管 Azure DevTunnel
Azure DevTunnels 是一项 Azure 服务,可用于共享 Internet 上托管的本地 Web 服务。 使用提供的命令,将你的本地开发环境连接到公共 Internet。 此过程会创建一个具有永久性终结点 URL 的隧道,并允许匿名访问。 我们将使用此终结点通知应用程序来自 ACS 通话自动化服务的通话事件。
devtunnel create --allow-anonymous
devtunnel port create -p 8080
devtunnel host
3.将托管标识添加到与 Azure AI 服务资源连接的 Azure 通信服务资源
请按照此文档中的说明进行操作。
4.添加所需的 API 密钥和终结点
打开 main.py
文件以配置以下设置
-
-
CALLBACK_URI_HOST
:你的开发隧道终结点
-
-
-
COGNITIVE_SERVICE_ENDPOINT
:Azure AI 服务终结点
-
-
-
ACS_CONNECTION_STRING
:Azure 通信服务资源的连接字符串。
-
-
-
AZURE_OPENAI_SERVICE_KEY
:Azure OpenAI 服务密钥
-
-
-
AZURE_OPENAI_SERVICE_ENDPOINT
:Azure OpenAI 服务终结点
-
-
-
AZURE_OPENAI_DEPLOYMENT_MODEL_NAME
:Azure OpenAI 模型名称
-
-
-
AGENT_PHONE_NUMBER
:用于转接呼叫的代理电话号码
-
运行应用程序
- 导航到
callautomation-openai-sample
文件夹并在调试模式下运行main.py
,或使用命令python ./main.py
从 PowerShell、命令提示符或 Unix 终端运行它 - 浏览器应弹出以下页面。 如果没有,请导航到
http://localhost:8080/
或开发隧道 URL。 - 为指向你的 DevTunnel URI 的 IncomingCall 事件注册事件网格 Webhook。 请参阅此处的说明。
完成后,应用程序应启动并运行。 测试此示例的最佳方式是拨打 Azure 通信服务电话号码并与智能代理通话。