Korzystanie z aplikacji internetowej Azure OpenAI
Oprócz portalu usługi Azure AI Foundry, interfejsów API i zestawów SDK można użyć dostosowywalnej autonomicznej aplikacji internetowej do interakcji z modelami usługi Azure OpenAI przy użyciu graficznego interfejsu użytkownika. Najważniejsze funkcje:
- Łączność z wieloma źródłami danych w celu obsługi rozbudowanego generowania zapytań i pobierania rozszerzonego, w tym usługi Azure AI Search, Prompt Flow i nie tylko.
- Historia konwersacji i zbieranie opinii użytkowników za pośrednictwem usługi Cosmos DB.
- Uwierzytelnianie za pomocą kontroli dostępu opartej na rolach za pośrednictwem identyfikatora Entra firmy Microsoft.
- Dostosowywanie interfejsu użytkownika, źródeł danych i funkcji przy użyciu zmiennych środowiskowych (bez kodu za pośrednictwem witryny Azure Portal).
- Przykładowy kod źródłowy aplikacji internetowej jest dostępny w witrynie GitHub. Kod źródłowy jest dostarczany jako "tak, jak jest" i tylko jako przykład. Klienci są odpowiedzialni za wszystkie dostosowania i implementację swoich aplikacji internetowych.
Aplikację można wdrożyć za pośrednictwem portalu Azure AI Foundry, witryny Azure Portal lub interfejsu wiersza polecenia dla deweloperów platformy Azure za pośrednictwem komputera lokalnego (instrukcje dostępne w repozytorium tutaj). W zależności od kanału wdrażania można wstępnie załadować źródło danych do rozmowy za pośrednictwem aplikacji internetowej, ale można to zmienić po wdrożeniu.
W przypadku początkujących w usłudze Azure OpenAI, którzy chcą rozmawiać z danymi za pośrednictwem aplikacji internetowej, portal Azure AI Foundry jest zalecanym medium do początkowego wdrażania i konfiguracji źródła danych.
Ważne uwagi
- Ta aplikacja internetowa i wiele jej funkcji są w wersji zapoznawczej, co oznacza, że mogą wystąpić błędy i że nie wszystkie funkcje mogą zostać ukończone. Jeśli znajdziesz usterkę lub potrzebujesz pomocy, zgłoś problem w skojarzonym repozytorium GitHub.
- Publikowanie aplikacji internetowej powoduje utworzenie wystąpienia usługi aplikacja systemu Azure w ramach subskrypcji. Może to wiązać się z kosztami w zależności od wybranego planu cenowego. Po zakończeniu pracy z aplikacją możesz usunąć ją i wszystkie skojarzone zasoby z witryny Azure Portal.
- Modele GPT-4 Turbo z modelami przetwarzania obrazów nie są obecnie obsługiwane.
- Domyślnie aplikacja jest wdrażana z już skonfigurowanym dostawcą tożsamości firmy Microsoft. Dostawca tożsamości ogranicza dostęp do aplikacji członkom dzierżawy platformy Azure. Aby dodać lub zmodyfikować uwierzytelnianie:
Przejdź do witryny Azure Portal i wyszukaj nazwę aplikacji określoną podczas publikowania. Wybierz aplikację internetową, a następnie wybierz pozycję Uwierzytelnianie w menu po lewej stronie. Następnie wybierz pozycję Dodaj dostawcę tożsamości.
Wybierz pozycję Microsoft jako dostawcę tożsamości. Ustawienia domyślne na tej stronie ograniczają aplikację tylko do dzierżawy, więc nie musisz zmieniać żadnych innych elementów w tym miejscu. Wybierz Dodaj.
Teraz użytkownicy będą proszeni o zalogowanie się przy użyciu konta Microsoft Entra w celu uzyskania dostępu do aplikacji. Jeśli wolisz, możesz wykonać podobny proces, aby dodać innego dostawcę tożsamości. Aplikacja nie korzysta z informacji logowania użytkownika w żaden sposób inny niż weryfikowanie, czy użytkownik jest członkiem dzierżawy. Aby uzyskać więcej informacji na temat zarządzania uwierzytelnianiem, zobacz ten przewodnik Szybki start dotyczący uwierzytelniania aplikacji internetowych w usłudze aplikacja systemu Azure Service.
Dostosowywanie aplikacji przy użyciu zmiennych środowiskowych
Możesz dostosować logikę frontonu i zaplecza aplikacji. Aplikacja udostępnia kilka zmiennych środowiskowych dla typowych scenariuszy dostosowywania, takich jak zmiana ikony w aplikacji.
Te zmienne środowiskowe można modyfikować za pośrednictwem witryny Azure Portal po wdrożeniu aplikacji internetowej.
- W witrynie Azure Portal wyszukaj i wybierz stronę App Services.
- Wybierz właśnie wdrożona aplikację internetową.
- W menu po lewej stronie aplikacji wybierz pozycję Ustawienia > Zmienne środowiskowe.
- Aby zmodyfikować istniejącą zmienną środowiskową, kliknij jej nazwę.
- Aby dodać pojedynczą nową zmienną środowiskową, kliknij pozycję Dodaj na górnym pasku menu panelu.
- Aby zarządzać zmiennymi środowiskowymi za pomocą edytora opartego na formacie JSON, kliknij pozycję Edytuj zaawansowane.
Podczas dostosowywania aplikacji zalecamy:
Jasno komunikując, jak każde zaimplementowane ustawienie wpływa na środowisko użytkownika.
Aktualizowanie ustawień aplikacji dla każdej wdrożonej aplikacji w celu używania nowych kluczy interfejsu API po rotacji kluczy dla zasobu usługi Azure OpenAI lub usługi Azure AI Search.
Modyfikowanie interfejsu użytkownika aplikacji
Zmienne środowiskowe istotne dla dostosowywania interfejsu użytkownika to:
UI_CHAT_DESCRIPTION
: Jest to mniejszy tekst akapitu pokazany poniżejUI_CHAT_TITLE
w środku strony podczas ładowania.- Typ danych: tekst
UI_CHAT_LOGO
: Jest to duży obraz wyświetlany w środku strony podczas ładowania.- Typ danych: adres URL obrazu
UI_CHAT_TITLE
: Jest to duży tekst wyświetlany w środku strony podczas ładowania.- Typ danych: tekst
UI_FAVICON
: jest to favicon wyświetlany w oknie/karcie przeglądarki.- Typ danych: adres URL obrazu
UI_LOGO
: Jest to logo wyświetlane w lewym górnym rogu strony i po lewej stronie tytułu.- Typ danych: adres URL obrazu
UI_TITLE
: jest to tytuł wyświetlany w oknie/karcie przeglądarki. Zostanie on również wyświetlony w lewym górnym rogu strony przy użyciu logo.- Typ danych: tekst
UI_SHOW_SHARE_BUTTON
: ten przycisk jest wyświetlany w prawym górnym rogu strony i umożliwia użytkownikom udostępnianie adresu URL łączącego się z aplikacją internetową.- Typ danych: Wartość logiczna, musi wprowadzić wartość Prawda lub Fałsz, wartość domyślna to True, jeśli pozostawiono puste lub nieokreślone.
UI_SHOW_CHAT_HISTORY_BUTTON
: Pojawia się on w prawym górnym rogu strony i po lewej stronie UI_SHOW_SHARE_BUTTON.- Typ danych: Wartość logiczna, musi wprowadzić wartość Prawda lub Fałsz, wartość domyślna to True, jeśli pozostawiono puste lub nieokreślone.
Aby zmodyfikować interfejs użytkownika aplikacji, postępuj zgodnie z instrukcjami w poprzednim kroku, aby otworzyć stronę zmiennych środowiskowych dla aplikacji internetowej. Następnie użyj opcji Edycja zaawansowana, aby otworzyć edytor oparty na formacie JSON. W górnej części kodu JSON (po [
znaku) wklej poniższy blok kodu i odpowiednio dostosuj wartości:
{
"name": "UI_CHAT_DESCRIPTION",
"value": "This is an example of a UI Chat Description. Chatbots can make mistakes. Check important info and sensitive info.",
"slotSetting": false
},
{
"name": "UI_CHAT_LOGO",
"value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
"slotSetting": false
},
{
"name": "UI_CHAT_TITLE",
"value": "This is an example of a UI Chat Title. Start chatting",
"slotSetting": false
},
{
"name": "UI_FAVICON",
"value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
"slotSetting": false
},
{
"name": "UI_LOGO",
"value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
"slotSetting": false
},
{
"name": "UI_TITLE",
"value": "This is an example of a UI Title",
"slotSetting": false
},
Włączanie historii czatów przy użyciu usługi Cosmos DB
Możesz włączyć historię czatów dla użytkowników aplikacji internetowej. Po włączeniu tej funkcji użytkownicy mają dostęp do poszczególnych poprzednich zapytań i odpowiedzi.
Aby włączyć historię czatów, wdróż lub ponownie wdróż model jako aplikację internetową przy użyciu portalu Usługi Azure AI Foundry i wybierz pozycję Włącz historię czatów i opinie użytkowników w aplikacji internetowej.
Ważne
Włączenie historii czatów powoduje utworzenie wystąpienia usługi Azure Cosmos DB w grupie zasobów i naliczanie dodatkowych opłat za magazyn używany poza dowolną warstwą bezpłatną.
Po włączeniu historii czatów użytkownicy mogą wyświetlać i ukrywać ją w prawym górnym rogu aplikacji. Gdy użytkownicy wyświetlają historię czatów, mogą zmieniać nazwy lub usuwać konwersacje. Możesz zmodyfikować, czy użytkownicy mogą uzyskiwać dostęp do tej funkcji przy użyciu zmiennej środowiskowej UI_SHOW_CHAT_HISTORY_BUTTON
określonej w poprzedniej sekcji. Ponieważ użytkownicy są zalogowani do aplikacji, konwersacje są automatycznie uporządkowane od najnowszych do najstarszych. Konwersacje są nazwane na podstawie pierwszego zapytania w konwersacji.
Uwaga
Popularne regiony platformy Azure, takie jak Wschodnie stany USA, mogą doświadczać okresów wysokiego zapotrzebowania, w których wdrożenie nowego wystąpienia usługi Cosmos DB może być niemożliwe. W takim przypadku zdecyduj się wdrożyć w innym regionie, takim jak Wschodnie stany USA 2, lub ponowić próbę wdrożenia, dopóki nie powiedzie się. Jeśli wdrożenie usługi Cosmos DB zakończy się niepowodzeniem, aplikacja będzie dostępna pod określonym adresem URL, ale historia czatów nie będzie dostępna. Włączenie historii konwersacji spowoduje również włączenie przycisku Wyświetl historię konwersacji w prawym górnym rogu.
Wdrożenie z wybraną opcją historia czatu spowoduje automatyczne wypełnienie następujących zmiennych środowiskowych, więc nie trzeba ich modyfikować, chyba że chcesz przełączyć wystąpienia usługi Cosmos DB. Są to:
AZURE_COSMOSDB_ACCOUNT
: jest to nazwa konta usługi Cosmos DB wdrożonego wraz z aplikacją internetową.- Typ danych: tekst
AZURE_COSMOSDB_ACCOUNT_KEY
: Jest to alternatywna zmienna środowiskowa, która jest używana tylko wtedy, gdy uprawnienia nie są przyznawane za pośrednictwem identyfikatora Entra firmy Microsoft, a zamiast tego jest używane uwierzytelnianie oparte na kluczach.- Typ danych: tekst. Zwykle nie jest obecny lub wypełniany.
AZURE_COSMOSDB_DATABASE
: jest to nazwa obiektu bazy danych w usłudze Cosmos DB, który jest wdrażany wraz z aplikacją internetową.- Typ danych: tekst, powinien być
db_conversation_history
- Typ danych: tekst, powinien być
AZURE_COSMOSDB_CONTAINER
: jest to nazwa obiektu kontenera bazy danych w usłudze Cosmos DB, który jest wdrażany wraz z aplikacją internetową.- Typ danych: tekst, powinien być
conversations
- Typ danych: tekst, powinien być
AZURE_COSMOSDB_ACCOUNT
: jest to nazwa konta usługi Cosmos DB wdrożonego wraz z aplikacją internetową.- Typ danych: tekst
Zbieranie opinii użytkowników
Aby zebrać opinie użytkowników, możesz włączyć zestaw ikon "kciuk w górę" i "kciuk w dół", które są wyświetlane na każdej z odpowiedzi czatbota. Pozwoli to użytkownikom ocenić jakość odpowiedzi i wskazać, gdzie występują błędy przy użyciu modalnego okna "prześlij negatywną opinię".
Aby włączyć tę funkcję, ustaw następującą zmienną środowiskową na true:
AZURE_COSMOSDB_ENABLE_FEEDBACK
: jest to nazwa konta usługi Cosmos DB wdrożonego wraz z aplikacją internetową.- Typ danych: Typ danych: Wartość logiczna, musi wprowadzić wartość True lub False
Można to zrobić przy użyciu opcji Edycja zaawansowana lub Proste opcje edycji, jak wyjaśniono wcześniej. Kod JSON do wklejania w edytorze JSON edycji zaawansowanej to:
{
"name": "AZURE_COSMOSDB_ENABLE_FEEDBACK",
"value": "True",
"slotSetting": false
},
Nawiązywanie połączenia z usługą Azure AI Search i przekazywanie plików jako źródła danych
Korzystanie z portalu usługi Azure AI Foundry
Wykonaj czynności opisane w tym samouczku, aby zintegrować usługę Azure AI Search z usługą Azure AI Foundry lub przewodnik Szybki start i ponownie wdrożyć aplikację.
Korzystanie ze zmiennych środowiskowych
Aby nawiązać połączenie z usługą Azure AI Search bez ponownego wdrażania aplikacji, możesz zmodyfikować następujące obowiązkowe zmienne środowiskowe przy użyciu dowolnej z opcji edycji zgodnie z wcześniejszym opisem.
DATASOURCE_TYPE
: Określa, które źródło danych ma być używane podczas odpowiadania na zapytania użytkownika.- Typ danych: tekst. Powinna być ustawiona wartość
AzureCognitiveSearch
(była nazwa usługi Azure AI Search)
- Typ danych: tekst. Powinna być ustawiona wartość
AZURE_SEARCH_SERVICE
: jest to nazwa wystąpienia usługi Azure AI Search.- Typ danych: tekst
AZURE_SEARCH_INDEX
: jest to nazwa indeksu wystąpienia usługi Azure AI Search.- Typ danych: tekst
AZURE_SEARCH_KEY
: jest to klucz uwierzytelniania wystąpienia usługi Azure AI Search. Opcjonalnie, jeśli używasz zalecanego identyfikatora Entra firmy Microsoft do uwierzytelniania.- Typ danych: tekst
Dalsze scenariusze dostosowywania przy użyciu zmiennych środowiskowych
AZURE_SEARCH_USE_SEMANTIC_SEARCH
: wskazuje, czy należy używać wyszukiwania semantycznego w usłudze Azure AI Search.- Typ danych: wartość logiczna powinna być ustawiona na
False
wartość , jeśli nie używasz wyszukiwania semantycznego.
- Typ danych: wartość logiczna powinna być ustawiona na
AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG
: określa nazwę konfiguracji wyszukiwania semantycznego do użycia, jeśli jest włączone wyszukiwanie semantyczne.- Typ danych: tekst, wartość domyślna to
azureml-default
.
- Typ danych: tekst, wartość domyślna to
AZURE_SEARCH_INDEX_TOP_K
: definiuje liczbę najważniejszych dokumentów do pobrania z usługi Azure AI Search.- Typ danych: liczba całkowita powinna być ustawiona na
5
wartość .
- Typ danych: liczba całkowita powinna być ustawiona na
AZURE_SEARCH_ENABLE_IN_DOMAIN
: ogranicza odpowiedzi na zapytania związane tylko z danymi.- Typ danych: wartość logiczna powinna być ustawiona na
True
wartość .
- Typ danych: wartość logiczna powinna być ustawiona na
AZURE_SEARCH_CONTENT_COLUMNS
: określa listę pól w indeksie usługi Azure AI Search, które zawierają zawartość tekstową dokumentów, używane podczas formułowania odpowiedzi bota.- Typ danych: tekst, wartość domyślna, jeśli
content
została wdrożona z portalu usługi Azure AI Foundry,
- Typ danych: tekst, wartość domyślna, jeśli
AZURE_SEARCH_FILENAME_COLUMN
: określa pole z indeksu usługi Azure AI Search, które udostępnia unikatowy identyfikator danych źródłowych do wyświetlenia w interfejsie użytkownika.- Typ danych: tekst, wartość domyślna, jeśli
filepath
została wdrożona z portalu usługi Azure AI Foundry,
- Typ danych: tekst, wartość domyślna, jeśli
AZURE_SEARCH_TITLE_COLUMN
: określa pole z indeksu usługi Azure AI Search, które udostępnia odpowiedni tytuł lub nagłówek zawartości danych do wyświetlenia w interfejsie użytkownika.- Typ danych: tekst, wartość domyślna, jeśli
title
została wdrożona z portalu usługi Azure AI Foundry,
- Typ danych: tekst, wartość domyślna, jeśli
AZURE_SEARCH_URL_COLUMN
: określa pole z indeksu usługi Azure AI Search, które zawiera adres URL dokumentu.- Typ danych: tekst, wartość domyślna, jeśli
url
została wdrożona z portalu usługi Azure AI Foundry,
- Typ danych: tekst, wartość domyślna, jeśli
AZURE_SEARCH_VECTOR_COLUMNS
: określa listę pól w indeksie usługi Azure AI Search, które zawierają wektorowe osadzanie dokumentów, używane podczas formułowania odpowiedzi bota.- Typ danych: tekst, wartość domyślna, jeśli
contentVector
została wdrożona z portalu usługi Azure AI Foundry,
- Typ danych: tekst, wartość domyślna, jeśli
AZURE_SEARCH_QUERY_TYPE
: Określa typ zapytania, który ma być używany:simple
, ,semantic
vector
,vectorSimpleHybrid
lubvectorSemanticHybrid
. To ustawienie ma pierwszeństwo przedAZURE_SEARCH_USE_SEMANTIC_SEARCH
.- Typ danych: tekst, zalecamy przetestowanie za pomocą
vectorSemanticHybrid
polecenia .
- Typ danych: tekst, zalecamy przetestowanie za pomocą
AZURE_SEARCH_PERMITTED_GROUPS_COLUMN
: określa pole z indeksu usługi Azure AI Search zawierającego identyfikatory grup entra firmy Microsoft, określając kontrolę dostępu na poziomie dokumentu.- Typ danych: tekst
AZURE_SEARCH_STRICTNESS
: określa poziom ścisłej dokładności dla modelu ograniczający odpowiedzi na dane.- Typ danych: liczba całkowita powinna być ustawiona między
1
i5
, z zalecanym3
ustawieniem.
- Typ danych: liczba całkowita powinna być ustawiona między
AZURE_OPENAI_EMBEDDING_NAME
: określa nazwę wdrożenia modelu osadzania, jeśli używasz wyszukiwania wektorowego.- Typ danych: tekst
Kod JSON do wklejania w edytorze JSON edycji zaawansowanej to:
{
"name": "AZURE_SEARCH_CONTENT_COLUMNS",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_ENABLE_IN_DOMAIN",
"value": "true",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_FILENAME_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_INDEX",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_KEY",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_PERMITTED_GROUPS_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_QUERY_TYPE",
"value": "vectorSemanticHybrid",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG",
"value": "azureml-default",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_SERVICE",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_STRICTNESS",
"value": "3",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_TITLE_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_TOP_K",
"value": "5",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_URL_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_USE_SEMANTIC_SEARCH",
"value": "true",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_VECTOR_COLUMNS",
"value": "contentVector",
"slotSetting": false
},
Nawiązywanie połączenia z przepływem monitowania jako źródła danych
Monituj przepływy umożliwiają definiowanie wysoce konfigurowalnej logiki RAG i przetwarzania zapytań użytkownika.
Tworzenie i wdrażanie przepływu monitów w portalu azure AI Foundry
Postępuj zgodnie z tym samouczkiem , aby utworzyć, przetestować i wdrożyć punkt końcowy wnioskowania dla przepływu monitów w portalu usługi Azure AI Foundry.
Włączanie podstawowych cytatów z przepływu monitu
Podczas konfigurowania przepływu monitu w celu wyświetlania cytatów po zintegrowaniu tej aplikacji internetowej musi zwrócić dwa kluczowe dane wyjściowe: jeden o nazwie (cytaty) i jeden o nazwie documents
reply
(odpowiedź w języku naturalnym).
documents
jest obiektem JSON, który powinien zawierać następujące elementy.citations
to lista, która może zawierać wiele elementów zgodnie z tym samym schematem.documents
obiekt powinien zostać wygenerowany i wypełniony na podstawie wybranego wzorca RAG.
{
"citations": [
{
"content": "string",
"id": 12345,
"title": "string",
"filepath": "string",
"url": "string",
"metadata": "string",
"chunk_id": None,
"reindex_id": None,
"part_index": None
}
],
"intent": "Your_string_here"
}
reply
składa się z zwracanego ciągu, który reprezentuje końcowy język naturalny dla danego zapytania użytkownika. Plikreply
musi zawierać odwołania do każdego z dokumentów (źródeł) w następującym formacie:[doc1], [doc2]
itp. Aplikacja internetowa przeanalizujereply
i przetworzy odwołania, zastępując wszystkie wystąpienia małymi wskaźnikami liczbowymi indeksu górnego[doc1]
, które łączą się bezpośrednio z uporządkowaną kolejnościądocuments
. W związku z tym należy wyświetlić monit dotyczący modułu LLM, który generuje końcowy język naturalny, aby uwzględnić te odwołania, które również powinny zostać przekazane w wywołaniu LLM, aby upewnić się, że są one poprawnie wyrównane. Na przykład:
system:
You are a helpful chat assistant that answers a user's question based on the information retrieved from a data source.
YOU MUST ALWAYS USE CITATIONS FOR ALL FACTUAL RESPONSES. YOU MUST INCLUDE CITATIONS IN YOUR ANSWER IN THE FORMAT [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.
Provide sort and concise answers with details directly related to the query.
## Conversation history for context
{% for item in chat_history %}
user:
{{item.inputs.query}}
assistant:
{{item.outputs.reply}}
{% endfor %}
## Current question
user:
### HERE ARE SOME CITED SOURCE INFORMATION FROM A MOCKED API TO ASSIST WITH ANSWERING THE QUESTION BELOW. ANSWER ONLY BASED ON THE TRUTHS PRESENTED HERE.
{{your_input_name_for_documents}}
FOR EACH OF THE CITATIONS ABOVE, YOU MUST INCLUDE IN YOUR ANSWER [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.
### HERE IS THE QUESTION TO ANSWER.
{{question}}
Konfigurowanie zmiennych środowiskowych w celu zintegrowania przepływu monitów
Zmienne środowiskowe do zmodyfikowania to:
AZURE_OPENAI_STREAM
: Określa, czy odpowiedź jest ładowana w formacie przesyłania strumieniowego (ładowanie przyrostowe). Nie jest to obsługiwane w przypadku przepływu monitów, dlatego należy ustawić tak, abyFalse
korzystał z tej funkcji.- Typ danych: wartość logiczna, ustawiona na
True
wartość , jeśli nie jest używany przepływ monitu,False
jeśli używasz przepływu monitu
- Typ danych: wartość logiczna, ustawiona na
USE_PROMPTFLOW
: wskazuje, czy używać istniejącego punktu końcowego wdrożonego przepływu monitu. Jeśli jest ustawiona wartośćTrue
, zarówno , jakPROMPTFLOW_ENDPOINT
iPROMPTFLOW_API_KEY
musi być ustawiona.- Typ danych: wartość logiczna powinna być ustawiona na
False
wartość , jeśli nie jest używany przepływ monitu.
- Typ danych: wartość logiczna powinna być ustawiona na
PROMPTFLOW_ENDPOINT
: określa adres URL wdrożonego punktu końcowego przepływu monitu.- Typ danych: tekst, na przykład
https://pf-deployment-name.region.inference.ml.azure.com/score
- Typ danych: tekst, na przykład
PROMPTFLOW_API_KEY
: klucz uwierzytelniania dla wdrożonego punktu końcowego przepływu monitu. Uwaga: obsługiwane jest tylko uwierzytelnianie oparte na kluczach.- Typ danych: tekst
PROMPTFLOW_RESPONSE_TIMEOUT
: definiuje wartość limitu czasu w sekundach, aby punkt końcowy przepływu monitów odpowiadał.- Typ danych: liczba całkowita powinna być ustawiona na
120
wartość .
- Typ danych: liczba całkowita powinna być ustawiona na
PROMPTFLOW_REQUEST_FIELD_NAME
: domyślna nazwa pola do konstruowania żądania przepływu monitu. Uwaga:chat_history
jest automatycznie konstruowana na podstawie interakcji. Jeśli interfejs API oczekuje innych obowiązkowych pól, musisz zmienić parametry żądania wpromptflow_request
ramach funkcji.- Typ danych: tekst powinien być ustawiony na
query
wartość .
- Typ danych: tekst powinien być ustawiony na
PROMPTFLOW_RESPONSE_FIELD_NAME
: domyślna nazwa pola do przetworzenia odpowiedzi z żądania przepływu Monituj.- Typ danych: tekst powinien być ustawiony na
reply
wartość .
- Typ danych: tekst powinien być ustawiony na
PROMPTFLOW_CITATIONS_FIELD_NAME
: domyślna nazwa pola do przetwarzania danych wyjściowych cytatów z żądania przepływu Monituj.- Typ danych: tekst powinien być ustawiony na
documents
wartość .
- Typ danych: tekst powinien być ustawiony na
Łączenie się z innymi źródłami danych
Obsługiwane są inne źródła danych, w tym:
- Azure Cosmos DB
- Elasticsearch
- Azure SQL Server
- Pinecone
- Indeks usługi Azure Machine Learning
Aby uzyskać dalsze instrukcje dotyczące włączania tych źródeł danych, zobacz repozytorium GitHub.
Aktualizowanie aplikacji internetowej w celu uwzględnienia najnowszych zmian
Uwaga
Od 1 lutego 2024 r. aplikacja internetowa wymaga ustawienia polecenia uruchamiania aplikacji na python3 -m gunicorn app:app
wartość . Podczas aktualizowania aplikacji opublikowanej przed 1 lutego 2024 r. należy ręcznie dodać polecenie uruchamiania ze strony Konfiguracja usługi App Service.
Zalecamy częste ściąganie zmian z main
gałęzi dla kodu źródłowego aplikacji internetowej, aby upewnić się, że masz najnowsze poprawki błędów, wersję interfejsu API i ulepszenia. Ponadto aplikacja internetowa musi być synchronizowana za każdym razem, gdy używana wersja interfejsu API zostanie wycofana. Rozważ wybranie przycisku Obejrzyj lub Gwiazdka w repozytorium GitHub aplikacji internetowej, aby otrzymywać powiadomienia o zmianach i aktualizacjach kodu źródłowego.
Jeśli aplikacja internetowa nie została dostosowana, możesz wykonać następujące kroki, aby ją zsynchronizować:
Przejdź do aplikacji internetowej w witrynie Azure Portal.
W menu po lewej stronie w obszarze Wdrożenie wybierz pozycję Centrum wdrażania.
Wybierz pozycję Synchronizuj w górnej części okienka i upewnij się, że aplikacja zostanie ponownie wdrożona.
Jeśli kod źródłowy aplikacji został dostosowany lub zmieniony, musisz ręcznie zaktualizować kod źródłowy aplikacji i wdrożyć go ponownie:
- Jeśli aplikacja jest hostowana w usłudze GitHub, wypchnij zmiany kodu do repozytorium, a następnie użyj poprzednich kroków synchronizacji.
- Jeśli ponownie wdrażasz aplikację ręcznie (na przykład przy użyciu interfejsu wiersza polecenia platformy Azure), wykonaj kroki strategii wdrażania.
Usuwanie wystąpienia usługi Cosmos DB
Usunięcie aplikacji internetowej nie powoduje automatycznego usunięcia wystąpienia usługi Cosmos DB. Aby usunąć wystąpienie usługi Cosmos DB wraz ze wszystkimi przechowywanymi czatami, musisz przejść do skojarzonego zasobu w witrynie Azure Portal i usunąć je. Jeśli usuniesz zasób usługi Cosmos DB, ale zachowasz opcję historii czatów wybraną w kolejnych aktualizacjach z portalu usługi Azure AI Foundry, aplikacja powiadomi użytkownika o błędzie połączenia. Użytkownik może jednak nadal korzystać z aplikacji internetowej bez dostępu do historii czatów.
Włączanie uwierzytelniania identyfikatora Entra firmy Microsoft między usługami
Aby włączyć identyfikator Entra firmy Microsoft na potrzeby uwierzytelniania wewnątrz usługi dla aplikacji internetowej, wykonaj następujące kroki.
Włączanie tożsamości zarządzanej w zasobie usługi Azure OpenAI i usłudze aplikacja systemu Azure Service
Tożsamość zarządzana dla zasobu Azure OpenAI i usługi aplikacja systemu Azure można włączyć, przechodząc do pozycji "Tożsamość" i włączając tożsamość zarządzaną przypisaną przez system w witrynie Azure Portal dla każdego zasobu.
Uwaga
Jeśli używasz modelu osadzania wdrożonego w tym samym zasobie używanym do wnioskowania, musisz włączyć tożsamość zarządzaną tylko w jednym zasobie usługi Azure OpenAI. Jeśli używasz modelu osadzania wdrożonego w innym zasobie niż ten używany do wnioskowania, musisz również włączyć tożsamość zarządzaną w zasobie usługi Azure OpenAI używanym do wdrażania modelu osadzania.
Włączanie kontroli dostępu opartej na rolach (RBAC) w zasobie usługi Azure Search (opcjonalnie)
Jeśli używasz funkcji W danych w usłudze Azure Search, wykonaj ten krok.
Aby umożliwić zasobowi usługi Azure OpenAI dostęp do zasobu usługi Azure Search, musisz włączyć kontrolę dostępu opartą na rolach w zasobie usługi Azure Search. Dowiedz się więcej na temat włączania ról RBAC dla zasobów.
Przypisywanie ról RBAC w celu włączenia komunikacji wewnątrz usług
Poniższa tabela zawiera podsumowanie przypisań ról RBAC wymaganych dla wszystkich zasobów platformy Azure skojarzonych z aplikacją.
Rola | Cesjonariusza | Zasób |
---|---|---|
Search Index Data Reader |
Azure OpenAI (wnioskowanie) | Wyszukiwanie AI platformy Azure |
Search Service Contributor |
Azure OpenAI (wnioskowanie) | Wyszukiwanie AI platformy Azure |
Cognitive Services OpenAI User |
Aplikacja sieci web | Azure OpenAI (wnioskowanie) |
Cognitive Services OpenAI User |
Azure OpenAI (wnioskowanie) | Azure OpenAI (osadzanie) |
Aby przypisać te role, postępuj zgodnie z tymi instrukcjami , aby utworzyć wymagane przypisania ról.
Zmiany ustawień aplikacji
W ustawieniach aplikacji internetowej przejdź do pozycji "Zmienne środowiskowe" i wprowadź następujące zmiany:
- Usuń zmienną środowiskową
AZURE_OPENAI_KEY
, ponieważ nie jest już potrzebna. - Jeśli używasz funkcji W danych w usłudze Azure Search i używasz uwierzytelniania identyfikatora Entra firmy Microsoft między usługą Azure OpenAI i usługą Azure Search, należy również usunąć
AZURE_SEARCH_KEY
zmienne środowiskowe dla kluczy dostępu do źródła danych.
W przypadku korzystania z modelu osadzania wdrożonego w tym samym zasobie co model używany do wnioskowania nie są wymagane żadne inne zmiany ustawień.
Jeśli jednak używasz modelu osadzania wdrożonego w innym zasobie, wprowadź następujące dodatkowe zmiany w zmiennych środowiskowych aplikacji:
- Ustaw
AZURE_OPENAI_EMBEDDING_ENDPOINT
zmienną na pełną ścieżkę interfejsu API osadzania dla zasobu, którego używasz do osadzania, na przykładhttps://<your Azure OpenAI Service resource name>.openai.azure.com/openai/deployments/<your embedding deployment name>/embeddings
- Usuń zmienną,
AZURE_OPENAI_EMBEDDING_KEY
aby używać uwierzytelniania identyfikatora Entra firmy Microsoft.
Po zakończeniu wszystkich zmian zmiennych środowiskowych uruchom ponownie aplikację internetową, aby rozpocząć korzystanie z uwierzytelniania identyfikatora Entra firmy Microsoft między usługami w aplikacji internetowej. Ponowne uruchomienie wszystkich zmian ustawień zostanie zastosowane po kilku minutach.