Udostępnij za pośrednictwem


Włączanie buforowania semantycznego dla interfejsów API usługi Azure OpenAI w usłudze Azure API Management

DOTYCZY: Podstawowa wersja 2 | Standardowa, wersja 2

Włącz buforowanie semantyczne odpowiedzi na żądania interfejsu API usługi Azure OpenAI, aby zmniejszyć wymagania dotyczące przepustowości i przetwarzania nałożone na interfejsy API zaplecza i mniejsze opóźnienia postrzegane przez użytkowników interfejsu API. Dzięki buforowaniu semantyczne można zwracać buforowane odpowiedzi dla identycznych monitów, a także monitów, które są podobne w znaczeniu, nawet jeśli tekst nie jest taki sam. Aby uzyskać informacje na temat tła, zobacz Samouczek: używanie usługi Azure Cache for Redis jako pamięci podręcznej semantycznej.

Uwaga

Kroki konfiguracji w tym artykule umożliwiają buforowanie semantyczne dla interfejsów API usługi Azure OpenAI. Te kroki można uogólnić, aby umożliwić buforowanie semantyczne dla odpowiednich interfejsów API modelu języka (LLM) dostępnych za pośrednictwem interfejsu API wnioskowania modelu AI platformy Azure.

Wymagania wstępne

Testowanie wdrożenia interfejsu API czatu

Najpierw przetestuj wdrożenie usługi Azure OpenAI, aby upewnić się, że interfejs API uzupełniania czatu lub interfejs API czatu działa zgodnie z oczekiwaniami. Aby uzyskać instrukcje, zobacz Importowanie interfejsu API usługi Azure OpenAI do usługi Azure API Management.

Na przykład przetestuj interfejs API czatu Usługi Azure OpenAI, wysyłając żądanie POST do punktu końcowego interfejsu API z monitem w treści żądania. Odpowiedź powinna zawierać zakończenie monitu. Przykładowe żądanie:

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

z treścią żądania:

{"messages":[{"role":"user","content":"Hello"}]}

Po pomyślnym zakończeniu żądania odpowiedź zawiera zakończenie wiadomości na czacie.

Tworzenie zaplecza na potrzeby osadzania interfejsu API

Skonfiguruj zasób zaplecza dla wdrożenia interfejsu API osadzania przy użyciu następujących ustawień:

  • Nazwa — wybrana nazwa, na przykład embeddings-backend. Ta nazwa służy do odwołowania się do zaplecza w zasadach.
  • Typ — wybierz niestandardowy adres URL.
  • Adres URL środowiska uruchomieniowego — adres URL wdrożenia interfejsu API osadzania w usłudze Azure OpenAI, podobnie jak: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

Testowanie zaplecza

Aby przetestować zaplecze, utwórz operację interfejsu API dla interfejsu API usługi Azure OpenAI Service:

  1. Na karcie Projektowanie interfejsu API wybierz pozycję + Dodaj operację.
  2. Wprowadź nazwę wyświetlaną i opcjonalnie nazwę operacji.
  3. W sekcji Fronton w polu Adres URL wybierz pozycję POST i wprowadź ścieżkę /.
  4. Na karcie Nagłówki dodaj wymagany nagłówek z nazwą Content-Type i wartością application/json.
  5. Wybierz pozycję Zapisz

Skonfiguruj następujące zasady w sekcji Przetwarzanie przychodzące operacji interfejsu API. W zasadach set-backend-service zastąp nazwę utworzonego zaplecza.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

Na karcie Test przetestuj operacjęapi-version, dodając parametr zapytania z wartością taką jak 2024-02-01. Podaj prawidłową treść żądania. Na przykład:

{"input":"Hello"}

Jeśli żądanie zakończy się pomyślnie, odpowiedź zawiera wektorową reprezentację tekstu wejściowego:

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Konfigurowanie zasad buforowania semantycznego

Skonfiguruj następujące zasady, aby włączyć buforowanie semantyczne dla interfejsów API usługi Azure OpenAI w usłudze Azure API Management:

  • W sekcji Przetwarzanie przychodzące dla interfejsu API dodaj zasady wyszukiwania azure-openai-semantic-cache-lookup. W atrybucie embeddings-backend-id określ utworzone zaplecze interfejsu API osadzania.

    Uwaga

    Podczas włączania buforowania semantycznego dla innych dużych interfejsów API modelu językowego należy zamiast tego użyć zasad llm-semantic-cache-lookup .

    Przykład:

    <azure-openai-semantic-cache-lookup
        score-threshold="0.8"
        embeddings-backend-id="embeddings-deployment"
        embeddings-backend-auth="system-assigned"
        ignore-system-messages="true"
        max-message-count="10">
        <vary-by>@(context.Subscription.Id)</vary-by>
    </azure-openai-semantic-cache-lookup>
    
    
  • W sekcji Przetwarzanie ruchu wychodzącego dla interfejsu API dodaj zasady azure-openai-semantic-cache-store.

    Uwaga

    Podczas włączania buforowania semantycznego dla innych dużych interfejsów API modelu językowego użyj zasad llm-semantic-cache-store .

    Przykład:

    <azure-openai-semantic-cache-store duration="60" />
    

Potwierdzanie buforowania

Aby potwierdzić, że buforowanie semantyczne działa zgodnie z oczekiwaniami, prześledzić operację ukończenia testu lub ukończenia czatu przy użyciu konsoli testowej w portalu. Upewnij się, że pamięć podręczna została użyta podczas kolejnych prób, sprawdzając ślad. Dowiedz się więcej na temat śledzenia wywołań interfejsu API w usłudze Azure API Management.

Jeśli na przykład użyto pamięci podręcznej, sekcja Dane wyjściowe zawiera wpisy podobne do tych na poniższym zrzucie ekranu:

Zrzut ekranu przedstawiający śledzenie żądania w witrynie Azure Portal.