模拟 Azure OpenAI API

生成连接到 Azure OpenAI 的应用时,通常只有一部分应用与 Azure OpenAI API 交互。 在处理不需要 Azure OpenAI API 实际答复的应用部分时,可以使用开发代理模拟响应。 使用模拟响应可以避免产生不必要的成本。 它使用 OpenAIMockResponsePlugin 计算机上运行的本地语言模型来模拟来自 Azure OpenAI API 的响应。

开始之前

要使用开发代理模拟 Azure OpenAI API 响应,您需要在计算机上安装 受支持的语言模型客户端

默认情况下,Dev Proxy 使用在 Ollama 上运行的 llama3.2 语言模型。 要使用其他客户端或模型,请更新 Dev Proxy 配置文件中的 语言模型设置

配置开发代理以模拟 Azure OpenAI API 响应

提示

本教程中所述的步骤在现成的开发代理预设中提供。 若要使用预设,请在命令行中运行 devproxy preset get simulate-azure-openai并按照说明进行操作。

若要使用开发代理模拟 Azure OpenAI API 响应,需要启用 OpenAIMockResponsePlugin 该文件 devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.29.2/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAIMockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ]
}

接下来,将开发代理配置为截获对 Azure OpenAI API 的请求。 为简单起见,请使用通配符截获所有部署的请求。

{
  // [...] trimmed for brevity
  "urlsToWatch": [
    "https://*.openai.azure.com/openai/deployments/*/completions*"
  ]
}

最后,将开发代理配置为使用本地语言模型。

{
  // [...] trimmed for brevity
  "languageModel": {
    "enabled": true
  }
}

完整的配置文件如下所示。

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.29.2/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAIMockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://*.openai.azure.com/openai/deployments/*/completions*"
  ],
  "languageModel": {
    "enabled": true
  }
}

模拟 Azure OpenAI API 响应

假设默认配置,使用 llama3.2 语言模型启动 Ollama。 在命令行中,运行 ollama run llama3.2

接下来,启动开发代理。 如果使用预设,请运行 devproxy -c "~appFolder/presets/simulate-azure-openai/simulate-azure-openai.json。 如果使用名为的 devproxyrc.json自定义配置文件(存储在当前工作目录中),请运行 devproxy。 Dev Proxy 检查它是否可以访问 Ollama 上的语言模型,并确认它已准备好模拟 Azure OpenAI API 响应。

 info    OpenAIMockResponsePlugin: Checking language model availability...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

运行应用程序并向 Azure OpenAI API 发出请求。 开发代理使用本地语言模型截获请求并模拟响应。

命令提示符的屏幕截图,其中开发人员代理模拟了对 Azure OpenAI API 的请求的响应。

下一步

详细了解 OpenAIMockResponsePlugin。

示例

另请参阅相关的开发代理示例: