模拟 OpenAI API

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

开始之前

若要使用开发代理模拟 OpenAI API 响应,需要在计算机上安装 Ollama。 若要安装 Ollama,请按照 Ollama 文档中的说明进行操作

默认情况下,开发代理使用 phi-3 语言模型。 若要使用不同的模型,请更新 model 开发代理配置文件中的属性

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

提示

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

若要使用开发代理模拟 OpenAI API 响应,需要在文件中启用OpenAIMockResponsePlugindevproxyrc.json该响应。

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

接下来,将开发代理配置为截获对 OpenAI API 的请求。 OpenAI 建议使用 https://api.openai.com/v1/chat/completions 终结点,这使你可以从最新的模型和功能中受益。

{
  // [...] trimmed for brevity
  "urlsToWatch": [
    "https://api.openai.com/v1/chat/completions"
  ]
}

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

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

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

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAIMockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.openai.com/v1/chat/completions"
  ],
  "languageModel": {
    "enabled": true
  }
}

模拟 OpenAI API 响应

使用 phi-3 语言模型启动 Ollama。 在命令行中,运行 ollama run phi3

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

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

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

下一步

详细了解 OpenAIMockResponsePlugin。

示例

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