Udostępnij za pośrednictwem


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.

Zrzut ekranu przedstawiający interfejs aplikacji internetowej.

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:
    1. 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.

      Zrzut ekranu przedstawiający okienko uwierzytelniania w witrynie Azure Portal.

    2. 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.

  1. W witrynie Azure Portal wyszukaj i wybierz stronę App Services.
  2. Wybierz właśnie wdrożona aplikację internetową.
  3. W menu po lewej stronie aplikacji wybierz pozycję Ustawienia > Zmienne środowiskowe.
  4. Aby zmodyfikować istniejącą zmienną środowiskową, kliknij jej nazwę.
  5. Aby dodać pojedynczą nową zmienną środowiskową, kliknij pozycję Dodaj na górnym pasku menu panelu.
  6. 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żej UI_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.

Zrzut ekranu przedstawiający pole wyboru umożliwiające włączanie historii czatów w usłudze Azure OpenAI lub Azure AI Foundry.

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
  • 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
  • AZURE_COSMOSDB_ACCOUNT: jest to nazwa konta usługi Cosmos DB wdrożonego wraz z aplikacją internetową.
    • Typ danych: tekst

Zrzut ekranu przedstawiający historię czatów w aplikacji internetowej.

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)
  • 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.
  • 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.
  • 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 5wartość .
  • AZURE_SEARCH_ENABLE_IN_DOMAIN: ogranicza odpowiedzi na zapytania związane tylko z danymi.
    • Typ danych: wartość logiczna powinna być ustawiona na Truewartość .
  • 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,
  • 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,
  • 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,
  • 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,
  • 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,
  • AZURE_SEARCH_QUERY_TYPE: Określa typ zapytania, który ma być używany: simple, , semanticvector, vectorSimpleHybridlub vectorSemanticHybrid. To ustawienie ma pierwszeństwo przed AZURE_SEARCH_USE_SEMANTIC_SEARCH.
    • Typ danych: tekst, zalecamy przetestowanie za pomocą vectorSemanticHybridpolecenia .
  • 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 i 5, z zalecanym 3 ustawieniem.
  • 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).

  1. 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"
}
  1. reply składa się z zwracanego ciągu, który reprezentuje końcowy język naturalny dla danego zapytania użytkownika. Plik reply musi zawierać odwołania do każdego z dokumentów (źródeł) w następującym formacie: [doc1], [doc2]itp. Aplikacja internetowa przeanalizuje reply 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, aby False 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
  • USE_PROMPTFLOW: wskazuje, czy używać istniejącego punktu końcowego wdrożonego przepływu monitu. Jeśli jest ustawiona wartość True, zarówno , jak PROMPTFLOW_ENDPOINT i PROMPTFLOW_API_KEY musi być ustawiona.
    • Typ danych: wartość logiczna powinna być ustawiona na False wartość , jeśli nie jest używany przepływ monitu.
  • 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
  • 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 120wartość .
  • 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 w promptflow_request ramach funkcji.
    • Typ danych: tekst powinien być ustawiony na querywartość .
  • PROMPTFLOW_RESPONSE_FIELD_NAME: domyślna nazwa pola do przetworzenia odpowiedzi z żądania przepływu Monituj.
    • Typ danych: tekst powinien być ustawiony na replywartość .
  • 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 documentswartość .

Łą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:appwartość . 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ć:

  1. Przejdź do aplikacji internetowej w witrynie Azure Portal.

  2. W menu po lewej stronie w obszarze Wdrożenie wybierz pozycję Centrum wdrażania.

  3. Wybierz pozycję Synchronizuj w górnej części okienka i upewnij się, że aplikacja zostanie ponownie wdrożona.

    Zrzut ekranu przedstawiający przycisk synchronizacji aplikacji internetowej w witrynie Azure Portal.

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.

Zrzut ekranu przedstawiający konfigurację tożsamości aplikacji w witrynie Azure Portal.

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ład https://<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.