Dela via


Kom igång med chatten med ditt eget dataexempel för Python

Den här artikeln visar hur du distribuerar och kör chatten med ditt eget dataexempel för Python. Det här exemplet implementerar en chattapp med Python, Azure OpenAI Service och Retrieveal Augmented Generation (RAG) i Azure AI Search för att få svar om medarbetarförmåner på ett fiktivt företag. Appen är seedad med PDF-filer inklusive den anställdas handbok, ett förmånsdokument och en lista över företagsroller och förväntningar.

Genom att följa anvisningarna i den här artikeln gör du följande:

  • Distribuera en chattapp till Azure.
  • Få svar om medarbetarförmåner.
  • Ändra inställningarna för att ändra beteendet för svar.

När du har slutfört den här proceduren kan du börja ändra det nya projektet med din anpassade kod.

Den här artikeln är en del av en samling artiklar som visar hur du skapar en chattapp med Hjälp av Azure OpenAI Service och Azure AI Search.

Andra artiklar i samlingen är:

Kommentar

Den här artikeln använder en eller flera AI-appmallar som grund för exemplen och vägledningen i artikeln. Med AI-appmallar får du väl underhållna och enkla att distribuera referensimplementeringar som hjälper dig att säkerställa en högkvalitativ startpunkt för dina AI-appar.

Arkitekturöversikt

En enkel arkitektur för chattappen visas i följande diagram:

Diagram som visar arkitektur från klient till serverdelsapp.

Viktiga komponenter i arkitekturen är:

  • Ett webbprogram som är värd för den interaktiva chattupplevelsen.
  • En Azure AI Search-resurs för att få svar från dina egna data.
  • En Azure OpenAI-tjänst som ska tillhandahålla:
    • Nyckelord för att förbättra sökningen över dina egna data.
    • Svar från OpenAI-modellen.
    • Inbäddningar från ada-modellen

Kostnad

De flesta resurser i den här arkitekturen använder en prisnivå för grundläggande eller förbrukning. Förbrukningspriser baseras på användning, vilket innebär att du bara betalar för det du använder. För att slutföra den här artikeln kommer det att finnas en avgift men den kommer att vara minimal. När du är klar med artikeln kan du ta bort resurserna för att sluta debiteras.

Läs mer om kostnaden i exempelrepo.

Förutsättningar

En utvecklingscontainermiljö är tillgänglig med alla beroenden som krävs för att slutföra den här artikeln. Du kan köra utvecklingscontainern i GitHub Codespaces (i en webbläsare) eller lokalt med hjälp av Visual Studio Code.

Om du vill använda den här artikeln behöver du följande krav:

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Azure-kontobehörigheter – Ditt Azure-konto måste ha behörigheten Microsoft.Authorization/roleAssignments/write, till exempel administratör för användaråtkomst eller ägare.
  • Åtkomst beviljad till Azure OpenAI i den önskade Azure-prenumerationen. För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI genom att fylla i formuläret på https://aka.ms/oai/access. Öppna ett problem på den här lagringsplatsen för att kontakta oss om du har ett problem.
  • GitHub-konto

Öppna utvecklingsmiljön

Börja nu med en utvecklingsmiljö som har alla beroenden installerade för att slutföra den här artikeln.

GitHub Codespaces kör en utvecklingscontainer som hanteras av GitHub med Visual Studio Code för webben som användargränssnitt. För den enklaste utvecklingsmiljön använder du GitHub Codespaces så att du har rätt utvecklarverktyg och beroenden förinstallerade för att slutföra den här artikeln.

Viktigt!

Alla GitHub-konton kan använda Codespaces i upp till 60 timmar kostnadsfritt varje månad med 2 kärninstanser. Mer information finns i GitHub Codespaces månadsvis inkluderade lagrings- och kärntimmar.

  1. Starta processen för att skapa ett nytt GitHub Codespace på grenen main av Azure-Samples/azure-search-openai-demo GitHub-lagringsplatsen.

  2. Högerklicka på följande knapp och välj Öppna länk i nya fönster för att ha både utvecklingsmiljön och dokumentationen tillgänglig samtidigt.

    Öppna i GitHub Codespaces

  3. På sidan Skapa kodområde granskar du konfigurationsinställningarna för kodområdet och väljer sedan Skapa nytt kodområde

    Skärmbild av bekräftelseskärmen innan du skapar ett nytt kodområde.

  4. Vänta tills kodområdet har startats. Den här startprocessen kan ta några minuter.

  5. Logga in på Azure med Azure Developer CLI i terminalen längst ned på skärmen.

    azd auth login
    
  6. Kopiera koden från terminalen och klistra sedan in den i en webbläsare. Följ anvisningarna för att autentisera med ditt Azure-konto.

  7. De återstående uppgifterna i den här artikeln sker i samband med den här utvecklingscontainern.

Distribuera och köra

Exempellagringsplatsen innehåller alla kod- och konfigurationsfiler som du behöver för att distribuera en chattapp till Azure. Följande steg beskriver hur du distribuerar exemplet till Azure.

Distribuera chattapp till Azure

Viktigt!

Azure-resurser som skapas i det här avsnittet medför omedelbara kostnader, främst från Azure AI Search-resursen. Dessa resurser kan medföra kostnader även om du avbryter kommandot innan det körs fullständigt.

  1. Kör följande Azure Developer CLI-kommando för att etablera Azure-resurserna och distribuera källkoden:

    azd up
    
  2. Om du uppmanas att ange ett miljönamn ska du hålla det kort och gemener. Exempel: myenv Den används som en del av resursgruppens namn.

  3. När du uppmanas till det väljer du en prenumeration för att skapa resurserna i.

  4. När du uppmanas att välja en plats första gången väljer du en plats nära dig. Den här platsen används för de flesta resurser, inklusive värdtjänster.

  5. Om du uppmanas att ange en plats för OpenAI-modellen eller för dokumentinformationsresursen väljer du den plats som är närmast dig. Om samma plats är tillgänglig som din första plats väljer du det.

  6. Vänta 5 eller 10 minuter efter att appen har distribuerats innan du fortsätter.

  7. När programmet har distribuerats visas en URL i terminalen.

    Skärmbild av distribuerad app som rapporterats i slutet av AZD CLI-azd up-processen.

  8. Välj den URL:en som är märkt (✓) Done: Deploying service webapp för att öppna chattprogrammet i en webbläsare.

    Skärmbild av chattappen i webbläsaren som visar flera förslag på chattinmatning och chatttextrutan för att ange en fråga.

Använda chattappen för att få svar från PDF-filer

Chattappen är förinstallerad med information om medarbetarnas förmåner från PDF-filer. Du kan använda chattappen för att ställa frågor om fördelarna. Följande steg beskriver hur du använder chattappen. Dina svar kan variera när de underliggande modellerna uppdateras.

  1. I webbläsaren väljer eller anger du Vad händer i en prestandagranskning? i chatttextrutan.

    Skärmbild av chattappens första svar.

  2. Välj en källhänvisning i svaret.

    Skärmbild av chattappens första svar med citatet markerat i en röd ruta.

  3. I det högra fönstret använder du flikarna för att förstå hur svaret genererades.

    Tabb beskrivning
    Tankeprocess Det här är ett skript för interaktionerna i chatten. Du kan visa systemprompten (content) och användarfrågan (content).
    Stöd för innehåll Detta inkluderar information för att besvara din fråga och källmaterialet. Antalet källmaterialciteringar anges i inställningarna för utvecklare. Standardvärdet är 3.
    Hänvisning Då visas den ursprungliga sidan som innehåller citatet.
  4. När du är klar väljer du den markerade fliken igen för att stänga fönstret.

Använda inställningar för chattappar för att ändra beteendet för svar

Informationen i chatten bestäms av OpenAI-modellen och de inställningar som används för att interagera med modellen.

Skärmbild av inställningar för chattutvecklare.

Inställning beskrivning
Åsidosätt promptmall Åsidosätter uppmaningen som används för att generera svaret baserat på frågan och sökresultaten.
Temperatur Anger temperaturen för begäran till den LLM som genererar svaret. Högre temperaturer resulterar i mer kreativa svar, men de kan vara mindre jordade.
Frö Anger ett frö för att förbättra reproducerbarheten för modellens svar. Fröet kan vara vilket heltal som helst.
Minsta sökpoäng Anger en minimipoäng för sökresultat som kommer tillbaka från Azure AI-sökning. Poängintervallet beror på om du använder hybrid (standard), endast vektorer eller endast text.
Minsta rerankerpoäng Anger en minimipoäng för sökresultat som kommer tillbaka från den semantiska rerankern. Poängen ligger alltid mellan 0-4. Ju högre poäng desto mer semantiskt relevant är resultatet för frågan.
Hämta så många sökresultat Anger antalet sökresultat som ska hämtas från Azure AI-sökning. Fler resultat kan öka sannolikheten för att hitta rätt svar, men kan leda till att modellen går förlorad i mitten. Du kan se dessa källor som returneras i flikarna Tankeprocess och Stöd för innehåll i källhänvisning.
Exkludera kategori Anger en kategori som ska undantas från sökresultaten. Det finns inga kategorier som används i standarddatauppsättningen.
Använda semantisk ranker för hämtning Aktiverar semantisk rankning i Azure AI Search , en modell som rangordnar om sökresultat baserat på semantisk likhet med användarens fråga.
Använda semantiska bildtexter Skickar semantiska bildtexter till LLM i stället för det fullständiga sökresultatet. En semantisk bildtext extraheras från ett sökresultat under processen för semantisk rangordning.
Föreslå uppföljningsfrågor Ber LLM att föreslå uppföljningsfrågor baserat på användarens fråga.
Hämtningsläge Anger hämtningsläget för Azure AI Search-frågan. Vektorer + Text (Hybrid) använder en kombination av vektorsökning och fulltextsökning, Vektorer använder endast vektorsökning och Text använder endast fulltextsökning. Hybrid är i allmänhet optimalt.
Svar om att streamchatten har slutförts Strömmar kontinuerligt svaret till chattgränssnittet när det genereras.

Följande steg beskriver hur du ändrar inställningarna.

  1. I webbläsaren väljer du fliken Inställningar för utvecklare .

  2. Markera kryssrutan Föreslå uppföljningsfrågor och ställ samma fråga igen.

    What happens in a performance review?
    

    Chatten returnerade föreslagna uppföljningsfrågor, till exempel följande:

    1. What is the frequency of performance reviews?
    2. How can employees prepare for a performance review?
    3. Can employees dispute the feedback received during the performance review?
    
  3. På fliken Inställningar avmarkerar du Använd semantisk ranker för hämtning.

  4. Ställ samma fråga igen?

    What happens in a performance review?
    
  5. Vad är skillnaden i svaren?

    Med Semantic Ranker: Under en prestationsgranskning på Contoso Electronics får anställda möjlighet att diskutera sina framgångar och utmaningar på arbetsplatsen (1). Granskningen kommer att ge positiv och konstruktiv feedback för att hjälpa anställda att utveckla och växa i sina roller (1). Medarbetaren får en skriftlig sammanfattning av prestationsgranskningen, som kommer att innehålla en klassificering av deras prestanda, feedback och mål och mål för det kommande året (1). Resultatgranskningen är en dubbelriktad dialog mellan chefer och anställda (1).

    Utan den semantiska rankaren: Under en prestationsgranskning på Contoso Electronics har anställda möjlighet att diskutera sina framgångar och utmaningar på arbetsplatsen. Positiv och konstruktiv feedback ges för att hjälpa anställda att utvecklas och växa i sina roller. En skriftlig sammanfattning av prestandagranskningen ges, inklusive ett omdöme om prestanda, feedback och mål för det kommande året. Granskningen är en dubbelriktad dialog mellan chefer och anställda (1).

Rensa resurser

Rensa Azure-resurser

De Azure-resurser som skapas i den här artikeln faktureras till din Azure-prenumeration. Om du inte förväntar dig att behöva dessa resurser i framtiden tar du bort dem för att undvika att debiteras mer.

Kör följande Azure Developer CLI-kommando för att ta bort Azure-resurserna och ta bort källkoden:

azd down --purge --force

Växlarna tillhandahåller:

  • purge: Borttagna resurser rensas omedelbart. På så sätt kan du återanvända Azure OpenAI TPM.
  • force: Borttagningen sker tyst, utan att användarens medgivande krävs.

Rensa GitHub Codespaces

Om du tar bort GitHub Codespaces-miljön kan du maximera mängden kostnadsfria timmar per kärna som du får för ditt konto.

Viktigt!

Mer information om ditt GitHub-kontos rättigheter finns i GitHub Codespaces månadsvis inkluderade lagrings- och kärntimmar.

  1. Logga in på GitHub Codespaces-instrumentpanelen (https://github.com/codespaces).

  2. Leta upp de codespaces som körs från Azure-Samples/azure-search-openai-demo GitHub-lagringsplatsen.

    Skärmbild av alla kodområden som körs, inklusive deras status och mallar.

  3. Öppna snabbmenyn för kodområdet och välj sedan Ta bort.

    Skärmbild av snabbmenyn för ett enda kodområde med borttagningsalternativet markerat.

Få hjälp

Den här exempellagringsplatsen innehåller felsökningsinformation.

Om problemet inte åtgärdas loggar du problemet till lagringsplatsens problem.

Nästa steg