Använda Azure OpenAI-webbappen

Tillsammans med Azure AI Studio, Azure OpenAI Studio, API:er och SDK:er kan du använda den anpassningsbara fristående webbappen för att interagera med Azure OpenAI-modeller med hjälp av ett grafiskt användargränssnitt. Viktiga funktioner omfattar bland annat:

  • Anslutning med flera datakällor för att stödja omfattande frågor och hämtningsförhöjd generering, inklusive Azure AI Search, Prompt Flow med mera.
  • Konversationshistorik och insamling av användarfeedback via Cosmos DB.
  • Autentisering med rollbaserad åtkomstkontroll via Microsoft Entra-ID.
  • Anpassning av användargränssnittet, datakällor och funktioner med hjälp av miljövariabler (ingen kod via Azure-portalen).
  • Stöd för att ändra den underliggande källkoden för webbprogram som en lagringsplats med öppen källkod.

Du kan distribuera appen med hjälp av antingen Azure AI Studio eller Azure OpenAI Studio, eller genom en manuell distribution via Azure-portalen eller Azure Developer CLI via din lokala dator (instruktioner som finns på lagringsplatsen här). Beroende på distributionskanalen kan du förinstallera en datakälla att chatta med via webbprogrammet, men detta kan ändras efter distributionen.

För Azure OpenAI-nybörjare som vill chatta med sina data via webbappen är Azure AI Studio det rekommenderade mediet för inledande distribution och konfiguration av datakällor.

Skärmbild som visar webbappens gränssnitt.

Viktigt!

  • Det här webbprogrammet och många av dess funktioner är i förhandsversion, vilket innebär att buggar kan inträffa och att inte alla funktioner kan vara fullständiga. Om du hittar en bugg eller behöver hjälp kan du skapa ett problem på den associerade GitHub-lagringsplatsen.
  • När du publicerar en webbapp skapas en Azure App Service-instans i din prenumeration. Det kan medföra kostnader beroende på vilken prisplan du väljer. När du är klar med din app kan du ta bort den och eventuella associerade resurser från Azure-portalen.
  • GPT-4 Turbo med Vision-modeller stöds inte för närvarande.
  • Som standard distribueras appen med Microsofts identitetsprovider redan konfigurerad. Identitetsprovidern begränsar åtkomsten till appen till medlemmar i din Azure-klientorganisation. Så här lägger du till eller ändrar autentisering:
    1. Gå till Azure-portalen och sök efter det appnamn som du angav under publiceringen. Välj webbappen och välj sedan Autentisering på den vänstra menyn. Välj sedan Lägg till identitetsprovider.

      Skärmbild av autentiseringsfönstret i Azure-portalen.

    2. Välj Microsoft som identitetsprovider. Standardinställningarna på den här sidan begränsar appen endast till din klientorganisation, så du behöver inte ändra något annat här. Markera Lägga till.

Nu uppmanas användarna att logga in med sitt Microsoft Entra-konto för att få åtkomst till din app. Du kan följa en liknande process för att lägga till en annan identitetsprovider om du vill. Appen använder inte användarens inloggningsinformation på något annat sätt än att verifiera att användaren är medlem i din klientorganisation. Mer information om hur du hanterar autentisering finns i den här snabbstarten om autentisering för webbappar i Azure App Service.

Anpassa programmet med hjälp av miljövariabler

Du kan anpassa appens klientdels- och serverdelslogik. Appen innehåller flera miljövariabler för vanliga anpassningsscenarier , till exempel att ändra ikonen i appen.

Dessa miljövariabler kan ändras via Azure-portalen när webbprogrammet har distribuerats.

  1. I Azure-portalen söker du efter och väljer sidan App Services.
  2. Välj den webbapp som du just har distribuerat.
  3. I den vänstra menyn i appen väljer du Inställningar > Miljövariabler.
  4. Om du vill ändra en befintlig miljövariabel klickar du på dess namn.
  5. Om du vill lägga till en ny miljövariabel klickar du på Lägg till i panelens översta menyrad.
  6. Om du vill använda den JSON-baserade redigeraren för att hantera miljövariabler klickar du på Avancerad redigering.

När du anpassar appen rekommenderar vi:

  • Att tydligt kommunicera hur varje inställning som du implementerar påverkar användarupplevelsen.

  • Uppdatera appinställningarna för var och en av dina distribuerade appar för att använda nya API-nycklar när du har roterat nycklar för din Azure OpenAI- eller Azure AI Search-resurs.

Exempel på källkod för webbappen finns på GitHub. Källkoden anges "som den är" och endast som ett exempel. Kunderna ansvarar för all anpassning och implementering av sina webbappar.

Ändra programmets användargränssnitt

Miljövariablerna som är relevanta för anpassning av användargränssnittet är:

  • UI_CHAT_DESCRIPTION: Det här är den mindre stycketexten UI_CHAT_TITLE som visas under mitten av sidan vid inläsning.
    • Datatyp: text
  • UI_CHAT_LOGO: Det här är den stora bilden som visas i mitten av sidan vid inläsning.
    • Datatyp: URL till bild
  • UI_CHAT_TITLE: Det här är den stora text som visas i mitten av sidan vid inläsning.
    • Datatyp: text
  • UI_FAVICON: Det här är favicon som visas i webbläsarfönstret/fliken.
    • Datatyp: URL till bild
  • UI_LOGO: Den här logotypen visas längst upp till vänster på sidan och till vänster om rubriken.
    • Datatyp: URL till bild
  • UI_TITLE: Det här är rubriken som visas i webbläsarfönstret/fliken. Den visas också längst upp till vänster på sidan med logotypen.
    • Datatyp: text
  • UI_SHOW_SHARE_BUTTON: Den här knappen visas längst upp till höger på sidan och tillåter användare att dela en URL-länkning till webbappen.
    • Datatyp: Boolesk, måste ange antingen Sant eller Falskt, standardvärdet Sant om det lämnas tomt eller ospecificerat.
  • UI_SHOW_CHAT_HISTORY_BUTTON: Detta visas längst upp till höger på sidan och till vänster om UI_SHOW_SHARE_BUTTON.
    • Datatyp: Boolesk, måste ange antingen Sant eller Falskt, standardvärdet Sant om det lämnas tomt eller ospecificerat.

Om du vill ändra programmets användargränssnitt följer du anvisningarna i föregående steg för att öppna sidan miljövariabler för webbappen. Använd sedan Avancerad redigering för att öppna den JSON-baserade redigeraren. Överst i JSON (efter [ tecknet) klistrar du in kodblocket nedan och anpassar värdena enligt följande:

  {
    "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
  },

Aktivera chatthistorik med Cosmos DB

Du kan aktivera chatthistorik för dina användare av webbappen. När du aktiverar funktionen har användarna åtkomst till sina enskilda tidigare frågor och svar.

Om du vill aktivera chatthistorik distribuerar eller distribuerar du om din modell som en webbapp med hjälp av Azure OpenAI Studio eller Azure AI Studio och väljer Aktivera chatthistorik och användarfeedback i webbappen.

Skärmbild av kryssrutan för att aktivera chatthistorik i Azure OpenAI eller Azure AI Studio.

Viktigt!

När du aktiverar chatthistoriken skapas en Azure Cosmos DB-instans i resursgruppen, och det medför ytterligare avgifter för lagringen som du använder utöver alla kostnadsfria nivåer.

När du har aktiverat chatthistoriken kan användarna visa och dölja den i appens övre högra hörn. När användare visar chatthistorik kan de byta namn på eller ta bort konversationer. Du kan ändra om användare kan komma åt den här funktionen med hjälp av miljövariabeln UI_SHOW_CHAT_HISTORY_BUTTON enligt beskrivningen i föregående avsnitt. Eftersom användarna är inloggade i appen sorteras konversationer automatiskt från den senaste till den äldsta. Konversationer namnges baserat på den första frågan i konversationen.

Kommentar

Populära Azure-regioner som USA, östra kan uppleva perioder med hög efterfrågan där det kanske inte går att distribuera en ny instans av Cosmos DB. I så fall kan du välja att distribuera till en annan region, till exempel USA, östra 2 eller försöka distribuera igen tills den lyckas. Om distributionen av Cosmos DB misslyckas blir din app tillgänglig på den angivna URL:en, men chatthistoriken är inte tillgänglig. Om du aktiverar konversationshistorik aktiveras också knappen visa konversationshistorik längst upp till höger.

Om du distribuerar med det valda alternativet för chatthistorik fylls följande miljövariabler automatiskt i, så du behöver inte ändra dem om du inte vill växla Cosmos DB-instanser. Dessa är:

  • AZURE_COSMOSDB_ACCOUNT: Det här är namnet på det Cosmos DB-konto som distribueras tillsammans med din webbapp.
    • Datatyp: text
  • AZURE_COSMOSDB_ACCOUNT_KEY: Det här är en alternativ miljövariabel som endast används när behörigheter inte beviljas via Microsoft Entra-ID och nyckelbaserad autentisering används i stället.
    • Datatyp: text. Är normalt inte närvarande eller ifylld.
  • AZURE_COSMOSDB_DATABASE: Det här är namnet på databasobjektet i Cosmos DB som distribueras tillsammans med webbappen.
    • Datatyp: text, ska vara db_conversation_history
  • AZURE_COSMOSDB_CONTAINER: Det här är namnet på databascontainerobjektet i Cosmos DB som distribueras tillsammans med webbappen.
    • Datatyp: text, ska vara conversations
  • AZURE_COSMOSDB_ACCOUNT: Det här är namnet på det Cosmos DB-konto som distribueras tillsammans med din webbapp.
    • Datatyp: text

Skärmbild av chatthistoriken i webbappen.

Samla in feedback från användare

Om du vill samla in användarfeedback kan du aktivera en uppsättning "tummen upp" och "tummen ner"-ikoner som visas på var och en av chattrobotens svar. Detta gör det möjligt för användare att utvärdera ett svars kvalitet och ange var fel inträffar med hjälp av ett modalt fönster för "ge negativ feedback".

Om du vill aktivera den här funktionen anger du följande miljövariabel till Sant:

  • AZURE_COSMOSDB_ENABLE_FEEDBACK: Det här är namnet på det Cosmos DB-konto som distribueras tillsammans med din webbapp.
    • Datatyp: Datatyp: Boolesk, måste ange antingen Sant eller Falskt

Detta kan åstadkommas med hjälp av avancerade redigeringsalternativ eller enkla redigeringsalternativ som tidigare beskrivits. JSON som ska klistras in i JSON-redigeraren för avancerad redigering är:

  {
    "name": "AZURE_COSMOSDB_ENABLE_FEEDBACK",
    "value": "True",
    "slotSetting": false
  },

Ansluta till Azure AI Search och ladda upp filer som en datakälla

Använda Azure AI Studio

Följ den här självstudien om hur du integrerar Azure AI Search med AI Studio och distribuerar om ditt program.

Använda Azure OpenAI Studio

Följ den här självstudien om hur du integrerar Azure AI Search med OpenAI Studio och distribuerar om ditt program.

Använda miljövariabler

Om du vill ansluta till Azure AI Search utan att distribuera om din app kan du ändra följande obligatoriska miljövariabler med något av redigeringsalternativen enligt beskrivningen ovan.

  • DATASOURCE_TYPE: Detta avgör vilken datakälla som ska användas när du svarar på en användares frågor.
    • Datatyp: text. Ska anges till AzureCognitiveSearch (tidigare namn för Azure AI Search)
  • AZURE_SEARCH_SERVICE: Det här är namnet på din Azure AI Search-instans.
    • Datatyp: text
  • AZURE_SEARCH_INDEX: Det här är namnet på azure AI Search-instansens indexnamn.
    • Datatyp: text
  • AZURE_SEARCH_KEY: Det här är autentiseringsnyckeln för din Azure AI Search-instans. Valfritt om du använder Microsoft Entra-ID för autentisering.
    • Datatyp: text

Ytterligare anpassningsscenarier med hjälp av miljövariabler

  • AZURE_SEARCH_USE_SEMANTIC_SEARCH: Anger om du vill använda semantisk sökning i Azure AI Search.
    • Datatyp: boolesk ska anges till False om den inte använder semantisk sökning.
  • AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG: Anger namnet på den semantiska sökkonfiguration som ska användas om semantisk sökning är aktiverat.
    • Datatyp: text, standardvärdet azureml-default.
  • AZURE_SEARCH_INDEX_TOP_K: Definierar antalet översta dokument som ska hämtas från Azure AI Search.
    • Datatyp: heltal, ska anges till 5.
  • AZURE_SEARCH_ENABLE_IN_DOMAIN: Begränsar svar på frågor som endast är relaterade till dina data.
    • Datatyp: boolesk ska anges till True.
  • AZURE_SEARCH_CONTENT_COLUMNS: Anger listan med fält i ditt Azure AI Search-index som innehåller textinnehållet i dina dokument, som används när du formulerar ett robotsvar.
    • Datatyp: text, som standard content om den distribueras från Azure AI Studio eller Azure OpenAI Studio,
  • AZURE_SEARCH_FILENAME_COLUMN: Anger fältet från ditt Azure AI Search-index som tillhandahåller en unik identifierare för källdata som ska visas i användargränssnittet.
    • Datatyp: text, som standard filepath om den distribueras från Azure AI Studio eller Azure OpenAI Studio,
  • AZURE_SEARCH_TITLE_COLUMN: Anger fältet från ditt Azure AI Search-index som innehåller en relevant rubrik eller rubrik för ditt datainnehåll som ska visas i användargränssnittet.
    • Datatyp: text, som standard title om den distribueras från Azure AI Studio eller Azure OpenAI Studio,
  • AZURE_SEARCH_URL_COLUMN: Anger fältet från ditt Azure AI Search-index som innehåller en URL för dokumentet.
    • Datatyp: text, som standard url om den distribueras från Azure AI Studio eller Azure OpenAI Studio,
  • AZURE_SEARCH_VECTOR_COLUMNS: Anger listan över fält i ditt Azure AI Search-index som innehåller vektorinbäddningar av dina dokument, som används när du formulerar ett robotsvar.
    • Datatyp: text, som standard contentVector om den distribueras från Azure AI Studio eller Azure OpenAI Studio,
  • AZURE_SEARCH_QUERY_TYPE: Anger vilken frågetyp som ska användas: simple, semantic, vector, vectorSimpleHybrideller vectorSemanticHybrid. Den här inställningen har företräde framför AZURE_SEARCH_USE_SEMANTIC_SEARCH.
    • Datatyp: text, vi rekommenderar att du testar med vectorSemanticHybrid.
  • AZURE_SEARCH_PERMITTED_GROUPS_COLUMN: Anger fältet från ditt Azure AI Search-index som innehåller Microsoft Entra-grupp-ID:n, vilket avgör åtkomstkontroll på dokumentnivå.
    • Datatyp: text
  • AZURE_SEARCH_STRICTNESS: Anger strikthetsnivån för modellen som begränsar svar på dina data.
    • Datatyp: heltal, bör anges mellan 1 och 5, med 3 rekommenderas.
  • AZURE_OPENAI_EMBEDDING_NAME: Anger namnet på din inbäddningsmodelldistribution om du använder vektorsökning.
    • Datatyp: text

JSON som ska klistras in i JSON-redigeraren för avancerad redigering är:

{
    "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
  },

Ansluta till Prompt Flow som en datakälla

Med promptflöden kan du definiera mycket anpassningsbar RAG och bearbetningslogik på en användares frågor.

Skapa och distribuera ditt promptflöde i Azure AI Studio

Följ den här självstudien för att skapa, testa och distribuera en slutsatsdragningsslutpunkt för ditt promptflöde i Azure AI Studio.

Aktivera underliggande citat från ditt promptflöde

När du konfigurerar ditt promptflöde för att visa citat när det är integrerat i det här webbprogrammet måste det returnera två nyckelutdata: en med namnet documents (dina citat) och en som heter reply (ditt naturliga språksvar).

  1. documents är ett JSON-objekt som ska innehålla följande element. citations är en lista som kan innehålla flera objekt som följer samma schema. objektet documents ska genereras och fyllas i baserat på ditt valda RAG-mönster.
{
    "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 består av en returnerad sträng som representerar det sista naturliga språket till en viss användarfråga. Du reply måste innehålla referenser till vart och ett av dokumenten (källorna) i följande format: [doc1], [doc2]osv. Webbprogrammet parsar reply och bearbetar referenserna och ersätter alla instanser av [doc1] med små numeriska superskriptindikatorer som länkar direkt till de ordnade documents som returneras. Därför måste du uppmana din LLM som genererar det sista naturliga språket att inkludera dessa referenser, som också bör skickas i DITT LLM-anrop för att säkerställa att de stämmer korrekt. Till exempel:
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}}
  

Konfigurera miljövariabler för att integrera promptflöde

De miljövariabler som ska ändras är:

  • AZURE_OPENAI_STREAM: Detta avgör om svaret läses in i ett strömningsformat (inkrementell inläsning). Detta stöds inte för promptflöde och måste därför vara inställt på att False använda den här funktionen.
    • Datatyp: booleskt värde, ange till True om det inte använder promptflöde, False om du använder promptflöde
  • USE_PROMPTFLOW: Anger om du vill använda en befintlig distribuerad slutpunkt för promptflöde. Om värdet är inställt på Truemåste både PROMPTFLOW_ENDPOINT och PROMPTFLOW_API_KEY anges.
    • Datatyp: booleskt värde, ska anges till False om det inte använder promptflöde.
  • PROMPTFLOW_ENDPOINT: Anger URL:en för slutpunkten för distribuerat promptflöde.
    • Datatyp: text, till exempel https://pf-deployment-name.region.inference.ml.azure.com/score
  • PROMPTFLOW_API_KEY: Autentiseringsnyckeln för slutpunkten för distribuerat promptflöde. Obs! Endast nyckelbaserad autentisering stöds.
    • Datatyp: text
  • PROMPTFLOW_RESPONSE_TIMEOUT: Definierar timeout-värdet i sekunder för att slutpunkten för promptflödet ska svara.
    • Datatyp: heltal, ska anges till 120.
  • PROMPTFLOW_REQUEST_FIELD_NAME: Standardfältnamnet för att konstruera begäran om promptflöde. chat_history Obs! skapas automatiskt baserat på interaktionen. Om ditt API förväntar sig andra obligatoriska fält måste du ändra parametrarna för begäran under promptflow_request funktionen.
    • Datatyp: text, ska anges till query.
  • PROMPTFLOW_RESPONSE_FIELD_NAME: Standardfältets namn för att bearbeta svaret från begäran om promptflöde.
    • Datatyp: text, ska anges till reply.
  • PROMPTFLOW_CITATIONS_FIELD_NAME: Standardfältets namn för att bearbeta citatutdata från begäran om promptflöde.
    • Datatyp: text, ska anges till documents.

Ansluta till andra datakällor

Andra datakällor stöds, inklusive:

  • Azure Cosmos DB
  • Elasticsearch
  • Azure SQL Server
  • Pinecone
  • Azure Mašinsko učenje Index

Mer information om hur du aktiverar dessa datakällor finns i GitHub-lagringsplatsen.

Uppdatera webbappen så att den innehåller de senaste ändringarna

Kommentar

Från och med den 1 februari 2024 kräver webbappen att appstartkommandot är inställt på python3 -m gunicorn app:app. När du uppdaterar en app som publicerades före den 1 februari 2024 måste du manuellt lägga till startkommandot från sidan App Service-konfiguration .

Vi rekommenderar att du hämtar ändringar från grenen main för webbappens källkod ofta för att säkerställa att du har de senaste felkorrigeringarna, API-versionen och förbättringarna. Dessutom måste webbappen synkroniseras varje gång den API-version som du använder dras tillbaka. Överväg att välja knappen Klocka eller Stjärna på webbappens GitHub-lagringsplats för att meddelas om ändringar och uppdateringar av källkoden.

Om du inte har anpassat webbappen kan du synkronisera den med hjälp av följande steg:

  1. Gå till din webbapp i Azure-portalen.

  2. Välj Distributionscenter under Distribution på den vänstra menyn.

  3. Välj Synkronisera överst i fönstret och bekräfta att appen kommer att distribueras om.

    En skärmbild av synkroniseringsknappen för webbappar på Azure-portalen.

Om du har anpassat eller ändrat appens källkod måste du uppdatera appens källkod manuellt och distribuera den igen:

  • Om din app finns på GitHub skickar du kodändringarna till lagringsplatsen och använder sedan föregående synkroniseringssteg.
  • Om du distribuerar om appen manuellt (till exempel genom att använda Azure CLI) följer du stegen för distributionsstrategin.

Ta bort din Cosmos DB-instans

Om du tar bort webbappen tas inte Cosmos DB-instansen bort automatiskt. Om du vill ta bort din Cosmos DB-instans tillsammans med alla lagrade chattar måste du gå till den associerade resursen i Azure-portalen och ta bort den. Om du tar bort Cosmos DB-resursen men behåller alternativet chatthistorik valt vid efterföljande uppdateringar från Azure OpenAI Studio meddelar programmet användaren om ett anslutningsfel. Användaren kan dock fortsätta att använda webbappen utan åtkomst till chatthistoriken.

Aktivera Microsoft Entra-ID-autentisering mellan tjänster

Följ dessa steg om du vill aktivera Microsoft Entra-ID för intratjänstautentisering för din webbapp.

Aktivera hanterad identitet på din Azure OpenAI-resurs och Azure App Service

Du kan aktivera hanterad identitet för Azure OpenAI-resursen och Azure App Service genom att navigera till "Identitet" och aktivera den systemtilldelade hanterade identiteten i Azure-portalen för varje resurs.

Skärmbild som visar programidentitetskonfigurationen i Azure-portalen.

Kommentar

Om du använder en inbäddningsmodell som distribueras till samma resurs som används för slutsatsdragning behöver du bara aktivera hanterad identitet på en Azure OpenAI-resurs. Om du använder en inbäddningsmodell som distribuerats till en annan resurs än den som används för slutsatsdragning, måste du även aktivera hanterad identitet på Den Azure OpenAI-resurs som används för att distribuera inbäddningsmodellen.

Aktivera rollbaserad åtkomstkontroll (RBAC) på din Azure Search-resurs (valfritt)

Om du använder På dina data med Azure Search bör du följa det här steget.

Om du vill att azure OpenAI-resursen ska få åtkomst till din Azure Search-resurs måste du aktivera rollbaserad åtkomstkontroll för din Azure Search-resurs. Läs mer om hur du aktiverar RBAC-roller för dina resurser.

Tilldela RBAC-roller för att aktivera kommunikation inom tjänsten

I följande tabell sammanfattas de RBAC-rolltilldelningar som behövs för alla Azure-resurser som är associerade med ditt program.

Roll Tilldelad Resurs
Search Index Data Reader Azure OpenAI (slutsatsdragning) Azure AI-sökning
Search Service Contributor Azure OpenAI (slutsatsdragning) Azure AI-sökning
Cognitive Services OpenAI User Webbapp Azure OpenAI (slutsatsdragning)
Cognitive Services OpenAI User Azure OpenAI (slutsatsdragning) Azure OpenAI (inbäddningar)

Om du vill tilldela dessa roller följer du de här anvisningarna för att skapa de rolltilldelningar som behövs.

Ändringar i appinställningar

I webbappens programinställningar går du till "Miljövariabler" och gör följande ändringar:

  • Ta bort miljövariabeln AZURE_OPENAI_KEYeftersom den inte längre behövs.
  • Om du använder På dina data med Azure Search och använder Microsoft Entra-ID-autentisering mellan Azure OpenAI och Azure Search bör du även ta bort AZURE_SEARCH_KEY miljövariablerna för åtkomstnycklarna för datakällan.

Om du använder en inbäddningsmodell som distribueras till samma resurs som din modell som används för slutsatsdragning krävs inga andra inställningar.

Men om du använder en inbäddningsmodell som distribuerats till en annan resurs gör du följande extra ändringar i appens miljövariabler:

  • Ange AZURE_OPENAI_EMBEDDING_ENDPOINT variabeln till den fullständiga API-sökvägen för inbäddnings-API:et för den resurs som du använder för inbäddningar, till exempel https://<your embedding AOAI resource name>.openai.azure.com/openai/deployments/<your embedding deployment name>/embeddings
  • Ta bort variabeln AZURE_OPENAI_EMBEDDING_KEY för att använda Microsoft Entra-ID-autentisering.

När alla miljövariabeländringar har slutförts startar du om webbappen för att börja använda Microsoft Entra-ID-autentisering mellan tjänster i webbappen. Det tar några minuter efter omstarten innan ändringar av inställningarna börjar gälla.