模擬 OpenAI API
當您建置連線至 OpenAI 的應用程式時,通常只有部分應用程式會與 OpenAI API 互動。 當您處理不需要 OpenAI API 實際回覆的應用程式部分時,您可以使用 Dev Proxy 來模擬回應。 使用仿真的回應可讓您避免產生不必要的成本。
OpenAIMockResponsePlugin
使用在 Ollama 執行的本地語言模型來模擬 OpenAI API 的回應。
在您開始之前
若要使用 Dev Proxy 模擬 OpenAI API 回應,您需要在電腦上安裝 Ollama。 若要安裝 Ollama,請遵循 Ollama 檔中的指示。
根據預設,Dev Proxy 會使用 phi-3 語言模型。 若要使用不同的模型,請更新 model
Dev Proxy組態檔中的屬性 。
設定開發 Proxy 以模擬 OpenAI API 回應
提示
此教學中的步驟可適用於即用型的 Dev Proxy 預設。 若要使用預設,請在命令行中執行 devproxy preset get simulate-openai
,然後遵循指示。
若要使用 Dev Proxy 模擬 OpenAI API 回應,您必須在 OpenAIMockResponsePlugin
檔案中啟用 devproxyrc.json
。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.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"
]
}
最後,將 Dev Proxy 設定為使用本機語言模型。
{
// [...] trimmed for brevity
"languageModel": {
"enabled": true
}
}
完整的組態檔看起來像這樣。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.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
。
接下來,啟動 Dev Proxy。 如果您使用預設,請執行 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提出要求。 Dev Proxy 會攔截要求,並使用本機語言模型模擬回應。
後續步驟
深入瞭解 OpenAIMockResponsePlugin。
範例
另請參閱相關的開發 Proxy 範例: