Udostępnij za pośrednictwem


Symulowanie interfejsu API interfejsu OpenAI

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

Przed rozpoczęciem

Aby symulować odpowiedzi interfejsu API openAI przy użyciu serwera proxy deweloperskiego, na maszynie jest zainstalowany program Ollama. Aby zainstalować aplikację Ollama, postępuj zgodnie z instrukcjami w dokumentacji Ollama.

Domyślnie serwer proxy deweloperów używa modelu językowego phi-3. Aby użyć innego modelu, zaktualizuj model właściwość w pliku konfiguracji serwera proxy deweloperów.

Konfigurowanie serwera proxy deweloperskiego w celu symulowania odpowiedzi interfejsu API openAI

Napiwek

Kroki opisane w tym samouczku są dostępne wstępnie przygotowanym serwerem proxy deweloperów. Aby użyć ustawienia wstępnego, w wierszu polecenia uruchom polecenie devproxy preset get simulate-openaii postępuj zgodnie z instrukcjami.

Aby symulować odpowiedzi interfejsu API openAI przy użyciu serwera proxy deweloperskiego, należy włączyć element OpenAIMockResponsePlugin w devproxyrc.json pliku .

{
  "$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"
    }
  ]
}

Następnie skonfiguruj serwer proxy deweloperów, aby przechwycić żądania do interfejsu API OpenAI. Interfejs OpenAI zaleca korzystanie z punktu końcowego https://api.openai.com/v1/chat/completions , który umożliwia korzystanie z najnowszych modeli i funkcji.

{
  // [...] trimmed for brevity
  "urlsToWatch": [
    "https://api.openai.com/v1/chat/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/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
  }
}

Symulowanie odpowiedzi interfejsu API interfejsu OpenAI

Uruchom Ollama przy użyciu modelu językowego phi-3. W wierszu polecenia uruchom polecenie ollama run phi3.

Następnie uruchom serwer proxy deweloperów. Jeśli używasz ustawienia wstępnego, uruchom polecenie devproxy -c "~appFolder/presets/simulate-openai/simulate-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ęzyka Ollama i potwierdza, że jest gotowy do symulowania odpowiedzi interfejsu API openAI.

 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 OpenAI. Serwer proxy dewelopera przechwytuje żądania i symuluje odpowiedzi przy użyciu lokalnego modelu językowego.

Zrzut ekranu przedstawiający wiersz polecenia z serwerem proxy deweloperów symulującym odpowiedź na żądanie do interfejsu API OpenAI.

Następny krok

Dowiedz się więcej o interfejsie OpenAIMockResponsePlugin.

Przykłady

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