Udostępnij za pomocą


Symulowanie interfejsu API usługi Azure OpenAI

Podczas tworzenia aplikacji połączonych z usługą Azure OpenAI często tylko część aplikacji wchodzi w interakcję z interfejsem API azure OpenAI. Gdy pracujesz nad częściami aplikacji, które nie wymagają rzeczywistych odpowiedzi z interfejsu API usługi Azure OpenAI, możesz symulować odpowiedzi przy użyciu serwera proxy deweloperskiego. Korzystanie z symulowanych odpowiedzi pozwala uniknąć ponoszenia niepotrzebnych kosztów. Używa OpenAIMockResponsePlugin lokalnego modelu językowego uruchomionego na maszynie do symulowania odpowiedzi z interfejsu API usługi Azure OpenAI.

Przed rozpoczęciem

Aby symulować odpowiedzi interfejsu API OpenAI platformy Azure przy użyciu serwera proxy deweloperskiej, na maszynie musi być zainstalowany obsługiwany klient modelu językowego .

Domyślnie Dev Proxy używa modelu językowego llama3.2 działającego w usłudze Ollama. Aby użyć innego klienta lub modelu, zaktualizuj ustawienia modelu językowego w pliku konfiguracji serwera proxy deweloperów.

Konfigurowanie serwera proxy deweloperskiego w celu symulowania odpowiedzi interfejsu API usługi Azure OpenAI

Napiwek

Kroki opisane w tym samouczku są dostępne w gotowej do użycia konfiguracji Dev Proxy. Aby użyć ustawienia wstępnego, w wierszu polecenia uruchom polecenie devproxy config get simulate-azure-openaii postępuj zgodnie z instrukcjami.

Aby symulować odpowiedzi interfejsu API usługi Azure OpenAI przy użyciu serwera proxy deweloperskiego, musisz włączyć element OpenAIMockResponsePlugin w pliku devproxyrc.json.

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

Następnie skonfiguruj Dev Proxy, aby przechwytywać żądania do interfejsu API usługi Azure OpenAI. Dla uproszczenia użyj symboli wieloznacznych, aby przechwycić żądania do wszystkich wdrożeń.

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

Na koniec skonfiguruj serwer proxy deweloperów, aby używał lokalnego modelu językowego.

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

Pełny plik konfiguracji wygląda następująco.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/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
  }
}

Symulowanie odpowiedzi interfejsu API usługi Azure OpenAI

Zakładając domyślną konfigurację, uruchom Ollamę z modelem językowym llama3.2. W wierszu polecenia uruchom polecenie ollama run llama3.2.

Następnie uruchom Dev Proxy. Jeśli używasz ustawienia wstępnego, uruchom polecenie devproxy -c "~appFolder/config/simulate-azure-openai/simulate-azure-openai.json. Jeśli używasz niestandardowego pliku konfiguracji o nazwie devproxyrc.json, przechowywanego w bieżącym katalogu roboczym, uruchom polecenie devproxy. Serwer proxy deweloperów sprawdza, czy może uzyskać dostęp do modelu językowego w usłudze Ollama i potwierdza, że jest gotowy do symulowania odpowiedzi interfejsu API OpenAI platformy Azure.

 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

Uruchom aplikację i wysyłaj żądania do interfejsu API usługi Azure OpenAI. Serwer proxy dewelopera przechwytuje żądania i symuluje odpowiedzi przy użyciu lokalnego modelu językowego.

Zrzut ekranu przedstawiający wiersz polecenia z Dev Proxy symulującym odpowiedź na żądanie do interfejsu API usługi Azure OpenAI.

Następny krok

Dowiedz się więcej o wtyczce OpenAIMockResponsePlugin.

Przykłady

Zobacz również powiązane przykłady serwera proxy deweloperów: