Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Wszystkie warstwy usługi API Management
Włącz buforowanie semantyczne odpowiedzi na żądania interfejsu API LLM, aby zmniejszyć wymagania dotyczące przepustowości i przetwarzania nałożone na interfejsy API zaplecza oraz aby zmniejszyć opóźnienia odczuwane przez użytkowników API. Dzięki buforowaniu semantycznego można zwracać buforowane odpowiedzi dla identycznych zapytań, a także zapytań o podobnym znaczeniu, nawet jeśli tekst nie jest identyczny. Aby uzyskać informacje ogólne, zobacz Samouczek: korzystanie z usługi Azure Managed Redis jako semantycznej pamięci podręcznej.
Uwaga
Kroki konfiguracji w tym artykule pokazują, jak włączyć buforowanie semantyczne dla interfejsów API dodanych do usługi API Management z poziomu usługi Azure OpenAI w modelach rozwiązania Microsoft Foundry. Możesz zastosować podobne kroki, aby włączyć buforowanie semantyczne dla odpowiednich interfejsów API dużych modeli językowych (LLM) dostępnych za pośrednictwem Azure AI Model Inference API lub modeli zgodnych z OpenAI obsługiwanych przez dostawców wnioskowania innych firm.
Wymagania wstępne
Dodaj jedno lub więcej wdrożeń modeli Azure OpenAI w Microsoft Foundry jako API do instancji API Management. Aby uzyskać więcej informacji, zobacz Dodawanie interfejsu API usługi Azure OpenAI do usługi Azure API Management.
Utwórz wdrożenia dla następujących interfejsów API:
- Interfejs API uzupełniania czatu — wdrożenie używane do wywołań dla użytkowników API
- API osadzania — wdrożenie służące do buforowania semantycznego
Skonfiguruj wystąpienie usługi API Management, aby używało uwierzytelniania tożsamości zarządzanej dla interfejsów API usługi Azure OpenAI. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie i autoryzacja dostępu do interfejsów API usługi Azure OpenAI przy użyciu usługi Azure API Management .
Instancja Azure Managed Redis z włączonym modułem RediSearch w Cache Redis.
Uwaga
Moduł RediSearch można włączyć tylko podczas tworzenia nowej pamięci podręcznej Redis Azure Managed Redis Cache. Nie można dodać modułu do istniejącej pamięci podręcznej. Dowiedz się więcej
Skonfiguruj wystąpienie usługi Azure Managed Redis jako pamięć podręczną zewnętrzną w wystąpieniu usługi Azure API Management. Aby uzyskać instrukcje, zobacz Używanie zewnętrznej pamięci podręcznej zgodnej z usługą Redis w usłudze Azure API Management.
Testowanie wdrożenia interfejsu API do czatu
Najpierw przetestuj wdrożenie usługi Azure OpenAI, aby upewnić się, że API Chat Completion lub Chat API 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 polecenia. 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
Utwórz zasób backendu dla wdrożenia API osadzania przy użyciu następujących ustawień:
Nazwa — wybrana nazwa, taka jak embeddings-backend. Nazwa ta służy do odwoływania się do zaplecza w ramach zasad.
Typ — wybierz niestandardowy adres URL.
Adres URL środowiska uruchomieniowego — adres URL wdrożenia interfejsu API osadzania w usłudze Azure OpenAI podobny do:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings(bez parametrów zapytania).Poświadczenia autoryzacyjne — przejdź na kartę Tożsamość zarządzana.
- Tożsamość klienta — wybierz tożsamość przypisaną przez system lub wprowadź identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika.
-
Identyfikator zasobu — wprowadź wartość
https://cognitiveservices.azure.com/dla usługi Azure OpenAI.
Testowanie backendu dla osadzania danych
Aby przetestować zaplecze implementacji, utwórz operację dla interfejsu API Azure OpenAI.
- Na karcie Projektowanie interfejsu API wybierz pozycję + Dodaj operację.
- Wprowadź nazwę wyświetlaną , taką jak Osadzanie i opcjonalnie nazwę operacji.
- W sekcji Frontend, w polu URL, wybierz POST i wprowadź ścieżkę
/. -
Na karcie Nagłówki dodaj wymagany nagłówek z nazwą
Content-Typei wartościąapplication/json. - Wybierz Zapisz.
Skonfiguruj następujące zasady w sekcji Przetwarzanie przychodzące operacji interfejsu API. W polityce 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 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. Przykładowa odpowiedź:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Konfigurowanie zasad buforowania semantycznego
Aby włączyć pamięć podręczną semantyczną dla interfejsów API usługi Azure OpenAI w usłudze Azure API Management, zastosuj następujące zasady: jedna, aby sprawdzić pamięć podręczną przed wysłaniem żądań (wyszukiwanie), a druga do przechowywania odpowiedzi na przyszłe potrzeby (przechowywanie):
W sekcji Przetwarzanie przychodzące dla interfejsu API dodaj zasady azure-openai-semantic-cache-lookup. W atrybucie
embeddings-backend-idokreśl utworzone zaplecze interfejsu API osadzania.Uwaga
Podczas włączania buforowania semantycznego dla innych dużych modeli językowych interfejsów API należy użyć llm-semantic-cache-lookup zamiast tego.
Przykład:
<azure-openai-semantic-cache-lookup score-threshold="0.15" embeddings-backend-id="embeddings-backend" 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> <rate-limit calls="10" renewal-period="60" />Uwaga
Dodaj zasadę limitowania szybkości (lub limitowania szybkości według klucza) po wyszukiwaniu w pamięci podręcznej, aby pomóc ograniczyć liczbę wywołań i zapobiec przeciążeniu usługi zaplecza, jeśli pamięć podręczna nie jest dostępna.
W sekcji Przetwarzanie ruchu wychodzącego dla interfejsu API dodaj zasadę azure-openai-semantic-cache-store.
Uwaga
Podczas włączania buforowania semantycznego dla innych dużych modeli językowych API użyj polityki llm-semantic-cache-store.
Przykład:
<azure-openai-semantic-cache-store duration="60" />
Potwierdź buforowanie
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 jest używana podczas kolejnych prób, sprawdzając ślad. Dowiedz się więcej na temat śledzenia wywołań interfejsu API w usłudze Azure API Management.
score-threshold Dostosuj atrybut w zasadach wyszukiwania, aby kontrolować, jak ściśle przychodzący monit musi odpowiadać buforowanemu monitowi, aby zwrócić jego przechowywaną odpowiedź. Niższy próg oceny oznacza, że zapytania muszą mieć większe semantyczne podobieństwo, żeby zwracały buforowane odpowiedzi. Polecenia z wynikami powyżej progu nie używają buforowanej odpowiedzi.
Jeśli na przykład używana jest pamięć podręczna, sekcja Dane wyjściowe zawiera wpisy podobne do poniższych zrzutów ekranu:
Powiązana zawartość
- Zasady buforowania
- Azure Managed Redis
- Funkcje bramy AI w usłudze Azure API Management