Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak dodać równoważenie obciążenia do swojej aplikacji, aby rozszerzyć aplikację czatu poza limity tokenów i modeli w usłudze Azure OpenAI Service. To podejście używa usługi Azure Container Apps do tworzenia trzech punktów końcowych usługi Azure OpenAI i podstawowego kontenera w celu kierowania ruchu przychodzącego do jednego z trzech punktów końcowych.
Ten artykuł wymaga wdrożenia dwóch oddzielnych przykładów:
Aplikacja do czatu
Jeśli aplikacja czatu nie została jeszcze wdrożona, poczekaj na wdrożenie przykładu modułu równoważenia obciążenia.
Jeśli aplikacja czatu została już wdrożona raz, zmień zmienną środowiskową tak, aby obsługiwała niestandardowy punkt końcowy modułu równoważenia obciążenia i ponownie ją wdrożyć.
Aplikacja do czatu jest dostępna w następujących językach:
Aplikacja modułu równoważenia obciążenia
Uwaga
W tym artykule jako podstawę dla przykładów i wskazówek wykorzystano jeden lub więcej szablonów aplikacji AI. Szablony aplikacji sztucznej inteligencji zapewniają dobrze utrzymywane implementacje referencyjne, które można łatwo wdrożyć. Pomagają one zapewnić wysokiej jakości punkt wyjścia dla aplikacji sztucznej inteligencji.
Architektura równoważenia obciążenia usługi Azure OpenAI za pomocą usługi Azure Container Apps
Ponieważ zasób usługi Azure OpenAI ma określone limity przydziału tokenu i modelu, aplikacja czatu korzystająca z jednego zasobu usługi Azure OpenAI jest podatna na błędy konwersacji z powodu tych limitów.
Aby użyć aplikacji do czatu bez osiągnięcia tych limitów, użyj rozwiązania o zrównoważonym obciążeniu z usługą Container Apps. To rozwiązanie bezproblemowo uwidacznia pojedynczy punkt końcowy z usługi Container Apps na serwer aplikacji czatu.
Aplikacja kontenerowa znajduje się przed zestawem zasobów Azure OpenAI. Aplikacja kontenera rozwiązuje dwa scenariusze: normalne i ograniczone. W normalnym scenariuszu, w którym jest dostępny limit przydziału tokenu i modelu, zasób usługi Azure OpenAI zwraca 200 z powrotem za pośrednictwem aplikacji kontenera i serwera aplikacji.
Gdy zasób znajduje się w scenariuszu ograniczonym z powodu limitów przydziału, aplikacja kontenera może natychmiast ponowić próbę innego zasobu usługi Azure OpenAI w celu spełnienia oryginalnego żądania aplikacji czatu.
Diagram przedstawiający scenariusz throttlingu z kodem błędu 429 i nagłówkiem odpowiedzi określającym, ile sekund klient musi poczekać na ponowną próbę.
Wymagania wstępne
Subskrypcja platformy Azure. Utwórz konto za darmo
Kontenery deweloperskie są dostępne dla obu przykładów, ze wszystkimi zależnościami potrzebnymi do ukończenia tego artykułu. Kontenery deweloperskie można uruchamiać w usłudze GitHub Codespaces w przeglądarce lub lokalnie przy użyciu programu Visual Studio Code.
- Konto usługi GitHub.
Otwieranie przykładowej aplikacji modułu równoważenia obciążenia usługi Container Apps
GitHub Codespaces uruchamia kontener deweloperski, zarządzany przez GitHub, z użyciem Visual Studio Code for the Web jako interfejsu użytkownika. W przypadku najprostszego środowiska programistycznego użyj usługi GitHub Codespaces, aby wstępnie zainstalować odpowiednie narzędzia deweloperskie i zależności, aby ukończyć ten artykuł.
Ważne
Wszystkie konta GitHub mogą korzystać z GitHub Codespaces do 60 godzin miesięcznie bezpłatnie, z dwoma podstawowymi instancjami. Aby uzyskać więcej informacji, zobacz miesięczny limit pamięci i godzin rdzeni usługi GitHub Codespaces.
Wdrażanie modułu równoważenia obciążenia usługi Azure Container Apps
Zaloguj się do CLI programisty platformy Azure, aby zapewnić autoryzację na potrzeby aprowizacji i wdrażania.
azd auth login --use-device-code
Ustaw zmienną środowiskową, aby używać uwierzytelniania Azure CLI w kroku po aprowizacji.
azd config set auth.useAzCliAuth "true"
Wdróż aplikację modułu równoważenia obciążenia:
azd up
Wybierz subskrypcję i region wdrożenia. Nie muszą być tą samą subskrypcją i tym samym regionem co aplikacja do czatu.
Poczekaj na zakończenie wdrożenia, zanim przejdziesz dalej.
Pobierz punkt końcowy wdrożenia
Użyj następującego polecenia, aby wyświetlić wdrożony punkt końcowy dla aplikacji kontenera:
azd env get-values
Skopiuj wartość
CONTAINER_APP_URL
. Użyjesz go w następnej sekcji.
Ponowne wdrażanie aplikacji czatu przy użyciu punktu końcowego modułu równoważenia obciążenia
Przykłady zostały ukończone na przykładzie aplikacji czatu.
- Początkowe wdrożenie
- Przesunięcie
Otwórz kontener deweloperski przykładowej aplikacji czatu, korzystając z jednej z następujących opcji.
Język GitHub Codespaces Visual Studio Code .NET JavaScript Pyton Zaloguj się do Azure Developer CLI (
AZD
):azd auth login
Zakończ instrukcje logowania.
Utwórz środowisko
AZD
o nazwie takiej jakchat-app
:azd env new <name>
Dodaj następującą zmienną środowiskową, która informuje zaplecze aplikacji czatu o użyciu niestandardowego adresu URL dla żądań usługi Azure OpenAI:
azd env set OPENAI_HOST azure_custom
Dodaj następującą zmienną środowiskową. Zastąp
<CONTAINER_APP_URL>
adresem URL z poprzedniej sekcji. Ta akcja informuje zaplecze aplikacji czatu o tym, jaka jest wartość niestandardowego adresu URL żądania usługi Azure OpenAI.azd env set AZURE_OPENAI_CUSTOM_URL <CONTAINER_APP_URL>
Wdróż aplikację czatu:
azd up
Użyj aplikacji czatu z ufnością, że skaluje ona wielu użytkowników bez wyczerpania limitu przydziału.
Streamuj dzienniki, aby zobaczyć wyniki równoważenia obciążenia
W Azure portal wyszukaj swoją grupę zasobów.
Z listy zasobów w grupie wybierz zasób usługi Azure Container Apps.
Wybierz pozycję Monitorowanie>strumienia dziennika, aby wyświetlić dziennik.
Użyj aplikacji do czatu, aby wygenerować ruch w dzienniku.
Poszukaj dzienników, które odwołują się do zasobów usługi Azure OpenAI. Każdy z trzech zasobów ma swoją tożsamość liczbową w komentarzu dziennika rozpoczynającym się od
Proxying to https://openai3
, gdzie3
wskazuje trzeci zasób usługi Azure OpenAI.
Gdy moduł równoważenia obciążenia otrzymuje informację, że żądanie przekracza limit przydziału, automatycznie przełącza się na inny zasób.
Konfiguracja limitu TPM
Domyślnie każde wystąpienie usługi Azure OpenAI w module równoważenia obciążenia jest wdrażane z pojemnością 30 000 tokenów na minutę (TPM). Możesz używać aplikacji czatu z pewnością, że obsłuży ona wielu użytkowników bez wyczerpania limitu. Zmień tę wartość, gdy:
- Pojawiają się błędy związane z pojemnością wdrożenia: zmniejsz wartość.
- Potrzebujesz większej pojemności: zwiększ wartość.
Użyj następującego polecenia, aby zmienić wartość:
azd env set OPENAI_CAPACITY 50
Ponownie wdróż moduł równoważenia obciążenia:
azd up
Czyszczenie zasobów
Po zakończeniu pracy z aplikacją czatu i modułem równoważenia obciążenia wyczyść zasoby. Zasoby platformy Azure utworzone w tym artykule są rozliczane z subskrypcją platformy Azure. Jeśli nie spodziewasz się, że te zasoby będą potrzebne w przyszłości, usuń je, aby uniknąć naliczania dodatkowych opłat.
Czyszczenie zasobów aplikacji do czatu
Wróć do artykułu o aplikacji czatu, aby wyczyścić zasoby.
Czyszczenie zasobów równoważnika przesyłania danych
Usuń zasoby platformy Azure i usuń kod źródłowy:
azd down --purge --force
Przełączniki zapewniają:
-
purge
: Usunięte zasoby są natychmiast usuwane, co pozwala na ponowne wykorzystanie tokenów dla usługi Azure OpenAI na minutę. -
force
: Usunięcie odbywa się cicho, bez konieczności wyrażania zgody użytkownika.
Czyszczenie usług GitHub Codespaces i Visual Studio Code
Usunięcie środowiska GitHub Codespaces pozwala na maksymalne wykorzystanie przydzielonych darmowych godzin procesora dla twojego konta.
Ważne
Aby uzyskać więcej informacji na temat świadczeń związanych z kontem GitHub, zobacz Miesięczne limity magazynowania oraz godziny rdzeni w GitHub Codespaces.
Zaloguj się do pulpitu nawigacyjnego usługi GitHub Codespaces.
Znajdź aktualnie uruchomione przestrzenie kodowe pochodzące z repozytorium GitHub azure-samples/openai-aca-lb.
Otwórz menu kontekstowe dla przestrzeni kodu, a następnie wybierz pozycję Usuń.
Uzyskaj pomoc
Jeśli masz problemy z wdrażaniem modułu równoważenia obciążenia usługi Azure Container Apps, dodaj problem do strony internetowej Problemy repozytorium.
Przykładowy kod
W tym artykule są używane następujące przykłady:
- Aplikacja do czatu w języku Java z aplikacją RAG
- Równoważnik obciążenia z usługą Azure Container Apps
Następny krok
- Użyj Azure Load Testing, aby przetestować obciążenie swojej aplikacji do czatu.