模擬 OpenAI API

一目了然
目標: 使用本地大型語言模型模擬 OpenAI
時間: 15分鐘
插件:OpenAIMockResponsePlugin
前置條件:設定開發代理、 本地語言模型

當您建置連線至 OpenAI 的應用程式時,通常只有部分應用程式會與 OpenAI API 互動。 當您處理不需要 OpenAI API 實際回覆的應用程式部分時,您可以使用 Dev Proxy 來模擬回應。 使用仿真的回應可讓您避免產生不必要的成本。 它使用 OpenAIMockResponsePlugin 本地語言模型來類比來自 OpenAI API 的回應。

在您開始之前

要使用 Dev Proxy 類比 OpenAI API 回應,您需要在電腦上安裝 受支援的語言模型用戶端 。

默認情況下,Dev Proxy 使用在 Ollama 上運行的 llama3.2 語言模型。 要使用其他用戶端或模型,請更新 Dev Proxy 配置檔中的 語言模型設置 。

設定開發 Proxy 以模擬 OpenAI API 回應

提示

此教學中的步驟可適用於即用型的 Dev Proxy 預設。 若要使用預設,請在命令行中執行 devproxy config get simulate-openai,然後遵循指示。

若要使用 Dev Proxy 模擬 OpenAI API 回應,您必須在 OpenAIMockResponsePlugin 檔案中啟用 devproxyrc.json 。

檔案: devproxyrc.json

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

接下來,設定開發代理為攔截 OpenAI API 的請求。 OpenAI 建議使用 https://api.openai.com/v1/chat/completions 端點,這可讓您受益於最新的模型和功能。

檔案: devproxyrc.json(加到根目錄)

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

最後,將 Dev Proxy 設定為使用本機語言模型。

檔案: devproxyrc.json(加到根目錄)

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

完整的組態檔看起來像這樣。

檔案: devproxyrc.json(完整)

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

模擬 OpenAI API 回應

假設預設配置,使用 llama3.2 語言模型啟動 Ollama。 在命令列中,執行 ollama run llama3.2。

接下來,啟動 Dev Proxy。 如果您使用預設,請執行 devproxy -c "~appFolder/config/simulate-openai/simulate-openai.json。 如果您使用名為 devproxyrc.json的自訂組態檔,儲存在目前工作目錄中,請執行 devproxy。 Dev Proxy 檢查它是否可以訪問 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提出要求。 Dev Proxy 會攔截要求,並使用本機語言模型模擬回應。

命令提示字元的螢幕截圖,顯示開發代理程式正在模擬對 OpenAI API 請求的回應。

後續步驟

深入瞭解 OpenAIMockResponsePlugin。

範例

另請參閱相關的開發 Proxy 範例:

另請參閱