Share via


Aan de slag met de chat met uw eigen gegevensvoorbeeld voor Python

In dit artikel leest u hoe u de chat implementeert en uitvoert met uw eigen gegevensvoorbeeld voor Python. In dit voorbeeld wordt een chat-app geïmplementeerd met behulp van Python, Azure OpenAI Service en RAG (Retrieval Augmented Generation) in Azure AI Search om antwoorden te krijgen op de voordelen van werknemers bij een fictief bedrijf. De app wordt geseed met PDF-bestanden, waaronder het handboek voor werknemers, een document met voordelen en een lijst met bedrijfsrollen en verwachtingen.

Door de instructies in dit artikel te volgen, gaat u het volgende doen:

  • Een chat-app implementeren in Azure.
  • Krijg antwoorden over werknemersvoordelen.
  • Wijzig de instellingen om het gedrag van reacties te wijzigen.

Zodra u deze procedure hebt voltooid, kunt u beginnen met het wijzigen van het nieuwe project met uw aangepaste code.

Dit artikel maakt deel uit van een verzameling artikelen die laten zien hoe u een chat-app bouwt met behulp van Azure OpenAI Service en Azure AI Search.

Andere artikelen in de verzameling zijn:

Notitie

In dit artikel worden een of meer AI-app-sjablonen gebruikt als basis voor de voorbeelden en richtlijnen in het artikel. AI-app-sjablonen bieden u een goed onderhouden, eenvoudig te implementeren referentie-implementaties die u helpen een startpunt van hoge kwaliteit voor uw AI-apps te garanderen.

Architectuuroverzicht

In het volgende diagram ziet u een eenvoudige architectuur van de chat-app:

Diagram met architectuur van client-naar back-end-app.

Belangrijke onderdelen van de architectuur zijn:

  • Een webtoepassing voor het hosten van de interactieve chat-ervaring.
  • Een Azure AI Search-resource om antwoorden te krijgen op basis van uw eigen gegevens.
  • Een Azure OpenAI-service om het volgende te bieden:
    • Trefwoorden om de zoekopdracht over uw eigen gegevens te verbeteren.
    • Antwoorden van het OpenAI-model.
    • Insluitingen van het ada-model

Kosten

De meeste resources in deze architectuur gebruiken een prijscategorie basic of verbruik. De prijzen voor verbruik zijn gebaseerd op gebruik, wat betekent dat u alleen betaalt voor wat u gebruikt. Om dit artikel te voltooien, worden er kosten in rekening gebracht, maar dit is minimaal. Wanneer u klaar bent met het artikel, kunt u de resources verwijderen om te stoppen met het maken van kosten.

Meer informatie over kosten in de voorbeeldopslagplaats.

Vereisten

Er is een ontwikkelcontaineromgeving beschikbaar met alle afhankelijkheden die nodig zijn om dit artikel te voltooien. U kunt de ontwikkelcontainer uitvoeren in GitHub Codespaces (in een browser) of lokaal met behulp van Visual Studio Code.

Als u dit artikel wilt gebruiken, hebt u de volgende vereisten nodig:

  • Een Azure-abonnement - Een gratis abonnement maken
  • Azure-accountmachtigingen: uw Azure-account moet beschikken over Microsoft.Authorization/roleAssignments/write-machtigingen, zoals Administrator voor gebruikerstoegang of Eigenaar.
  • Toegang verleend tot Azure OpenAI in het gewenste Azure abonnement. Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang tot Azure OpenAI aanvragen door het formulier in te vullen op https://aka.ms/oai/access. Open een probleem op deze opslagplaats om contact met ons op te stellen als u een probleem hebt.
  • GitHub-account

Open ontwikkelomgeving

Begin nu met een ontwikkelomgeving waarop alle afhankelijkheden zijn geïnstalleerd om dit artikel te voltooien.

GitHub Codespaces voert een ontwikkelcontainer uit die wordt beheerd door GitHub met Visual Studio Code voor het web als de gebruikersinterface. Voor de eenvoudigste ontwikkelomgeving gebruikt u GitHub Codespaces zodat u de juiste ontwikkelhulpprogramma's en afhankelijkheden vooraf hebt geïnstalleerd om dit artikel te voltooien.

Belangrijk

Alle GitHub-accounts kunnen Codespaces elke maand maximaal 60 uur gratis gebruiken met 2 kernexemplaren. Zie GitHub Codespaces maandelijks inbegrepen opslag- en kernuren voor meer informatie.

  1. Start het proces om een nieuwe GitHub Codespace te maken op de main vertakking van de Azure-Samples/azure-search-openai-demo GitHub-opslagplaats.

  2. Klik met de rechtermuisknop op de volgende knop en selecteer De koppeling Openen in nieuwe vensters om zowel de ontwikkelomgeving als de documentatie tegelijkertijd beschikbaar te maken.

    Openen in GitHub Codespaces

  3. Controleer op de pagina Codespace maken de configuratie-instellingen voor codespace en selecteer vervolgens Nieuwe codespace maken

    Schermopname van het bevestigingsscherm voordat u een nieuwe coderuimte maakt.

  4. Wacht tot de coderuimte is gestart. Dit opstartproces kan enkele minuten duren.

  5. Meld u in de terminal onderaan het scherm aan bij Azure met de Azure Developer CLI.

    azd auth login
    
  6. Kopieer de code uit de terminal en plak deze in een browser. Volg de instructies voor verificatie met uw Azure-account.

  7. De resterende taken in dit artikel vinden plaats in de context van deze ontwikkelingscontainer.

Implementeren en uitvoeren

De voorbeeldopslagplaats bevat alle code- en configuratiebestanden die u nodig hebt om een chat-app te implementeren in Azure. Met de volgende stappen doorloopt u het proces voor het implementeren van het voorbeeld in Azure.

Chat-app implementeren in Azure

Belangrijk

Voor Azure-resources die in deze sectie zijn gemaakt, worden directe kosten in rekening gebracht, voornamelijk op basis van de Azure AI Search-resource. Deze resources kunnen kosten genereren, zelfs als u de opdracht onderbreekt voordat deze volledig wordt uitgevoerd.

  1. Voer de volgende Azure Developer CLI-opdracht uit om de Azure-resources in te richten en de broncode te implementeren:

    azd up
    
  2. Als u wordt gevraagd een omgevingsnaam in te voeren, moet u deze kort en klein houden. Bijvoorbeeld: myenv. Deze wordt gebruikt als onderdeel van de naam van de resourcegroep.

  3. Wanneer u hierom wordt gevraagd, selecteert u een abonnement waarin u de resources wilt maken.

  4. Wanneer u de eerste keer wordt gevraagd om een locatie te selecteren, selecteert u een locatie bij u in de buurt. Deze locatie wordt gebruikt voor de meeste resources, waaronder hosting.

  5. Als u wordt gevraagd om een locatie voor het OpenAI-model of voor de Document Intelligence-resource, selecteert u de locatie die het dichtst bij u in de buurt is. Als dezelfde locatie beschikbaar is als uw eerste locatie, selecteert u die.

  6. Wacht 5 of 10 minuten nadat de app is geïmplementeerd voordat u doorgaat.

  7. Nadat de toepassing is geïmplementeerd, ziet u een URL die wordt weergegeven in de terminal.

    Schermopname van de geïmplementeerde app zoals gerapporteerd aan het einde van het AZD CLI azd up-proces.

  8. Selecteer die URL die is gelabeld (✓) Done: Deploying service webapp om de chattoepassing in een browser te openen.

    Schermopname van de chat-app in de browser met verschillende suggesties voor chatinvoer en het tekstvak voor chat om een vraag in te voeren.

Chat-app gebruiken om antwoorden te krijgen uit PDF-bestanden

De chat-app wordt vooraf geladen met informatie over werknemersvoordelen van PDF-bestanden. U kunt de chat-app gebruiken om vragen te stellen over de voordelen. Met de volgende stappen doorloopt u het proces voor het gebruik van de chat-app. Uw antwoorden kunnen variëren wanneer de onderliggende modellen worden bijgewerkt.

  1. Selecteer of voer in de browser in wat er gebeurt in een prestatiebeoordeling? in het chattekstvak.

    Schermopname van het eerste antwoord van de chat-app.

  2. Selecteer een bronvermelding in het antwoord.

    Schermopname van het eerste antwoord van de chat-app met de bronvermelding gemarkeerd in een rood vak.

  3. Gebruik in het rechterdeelvenster de tabbladen om te begrijpen hoe het antwoord is gegenereerd.

    Tabblad Beschrijving
    Gedachteproces Dit is een script van de interacties in chat. U kunt de systeemprompt () en uw gebruikersvraag (content) bekijken.content
    Ondersteunende inhoud Dit omvat de informatie om uw vraag en het bronmateriaal te beantwoorden. Het aantal bronmateriaalvermeldingen wordt vermeld in de instellingen voor ontwikkelaars. De standaardwaarde is 3.
    Gegevensvermelding Hiermee wordt de oorspronkelijke pagina weergegeven die de bronvermelding bevat.
  4. Wanneer u klaar bent, selecteert u het geselecteerde tabblad opnieuw om het deelvenster te sluiten.

Instellingen voor chat-apps gebruiken om het gedrag van reacties te wijzigen

De intelligentie van de chat wordt bepaald door het OpenAI-model en de instellingen die worden gebruikt om met het model te communiceren.

Schermopname van instellingen voor chatontwikkelaars.

Instelling Beschrijving
Promptsjabloon overschrijven Overschrijft de prompt die wordt gebruikt om het antwoord te genereren op basis van de vraag en zoekresultaten.
Temperatuur Hiermee stelt u de temperatuur van de aanvraag in op de LLM waarmee het antwoord wordt gegenereerd. Hogere temperaturen resulteren in meer creatieve reacties, maar ze kunnen minder geaard zijn.
Zaad Hiermee stelt u een seed in om de reproduceerbaarheid van de reacties van het model te verbeteren. Het zaad kan elk geheel getal zijn.
Minimale zoekscore Hiermee stelt u een minimumscore in voor zoekresultaten die afkomstig zijn van Azure AI Search. Het scorebereik is afhankelijk van of u hybride (standaard), alleen vectoren of alleen tekst gebruikt.
Minimale herrankerscore Hiermee stelt u een minimumscore in voor zoekresultaten die afkomstig zijn van de semantische reranker. De score varieert altijd tussen 0-4. Hoe hoger de score, hoe semantisch relevanter het resultaat is voor de vraag.
Dit aantal zoekresultaten ophalen Hiermee stelt u het aantal zoekresultaten in dat moet worden opgehaald uit Azure AI Search. Meer resultaten kunnen de kans vergroten dat het juiste antwoord wordt gevonden, maar kan ertoe leiden dat het model 'verloren in het midden' komt. U kunt deze bronnen zien die worden geretourneerd in het gedachtenproces en de tabbladen Ondersteunende inhoud van de bronvermelding.
Categorie uitsluiten Hiermee geeft u een categorie op die moet worden uitgesloten van de zoekresultaten. Er zijn geen categorieën die worden gebruikt in de standaardgegevensset.
Semantische ranker gebruiken voor ophalen Hiermee schakelt u de semantische ranker van Azure AI Search in, een model waarmee zoekresultaten opnieuw worden gerangschikt op basis van semantische overeenkomsten met de query van de gebruiker.
Semantische bijschriften gebruiken Hiermee worden semantische bijschriften naar de LLM verzonden in plaats van het volledige zoekresultaat. Een semantisch bijschrift wordt geëxtraheerd uit een zoekresultaat tijdens het proces van semantische rangschikking.
Vervolgvragen voorstellen Vraagt de LLM om vervolgvragen voor te stellen op basis van de query van de gebruiker.
Ophaalmodus Hiermee stelt u de ophaalmodus voor de Azure AI Search-query in. Vectoren en tekst (hybride) maken gebruik van een combinatie van vectorzoekopdrachten en zoeken in volledige tekst. Vectoren gebruiken alleen vectorzoekopdrachten en tekst maakt alleen gebruik van zoekopdrachten in volledige tekst. Hybride is over het algemeen optimaal.
Antwoorden op voltooiing van de Stream-chat Streamt continu het antwoord op de chatgebruikersinterface terwijl deze wordt gegenereerd.

Met de volgende stappen doorloopt u het proces voor het wijzigen van de instellingen.

  1. Selecteer in de browser het tabblad Instellingen voor ontwikkelaars.

  2. Schakel het selectievakje Vervolgvragen voorstellen in en stel dezelfde vraag opnieuw.

    What happens in a performance review?
    

    De chat heeft voorgestelde vervolgvragen geretourneerd, zoals:

    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. Schakel op het tabblad Instellingen de selectie van de semantische ranker gebruiken voor ophalen uit.

  4. Dezelfde vraag opnieuw stellen?

    What happens in a performance review?
    
  5. Wat is het verschil in de antwoorden?

    Met de Semantische ranker: Tijdens een prestatiebeoordeling bij Contoso Electronics kunnen werknemers hun successen en uitdagingen op de werkplek bespreken (1). De beoordeling geeft positieve en constructieve feedback om werknemers te helpen bij het ontwikkelen en groeien van hun rollen (1). De werknemer ontvangt een schriftelijk overzicht van de beoordeling van de prestaties, waaronder een beoordeling van hun prestaties, feedback en doelstellingen voor het komende jaar (1). De prestatiebeoordeling is een tweerichtingsdialoog tussen managers en werknemers (1).

    Zonder de Semantische rangschikking: tijdens een prestatiebeoordeling bij Contoso Electronics hebben werknemers de mogelijkheid om hun successen en uitdagingen op de werkplek te bespreken. Positieve en constructieve feedback wordt gegeven om werknemers te helpen bij het ontwikkelen en groeien van hun rollen. Er wordt een geschreven samenvatting gegeven van de beoordeling van de prestaties, inclusief een beoordeling van prestaties, feedback en doelstellingen voor het komende jaar. De beoordeling is een tweerichtingsdialoog tussen managers en werknemers (1).

Resources opschonen

Azure-resources opschonen

De Azure-resources die in dit artikel zijn gemaakt, worden gefactureerd voor uw Azure-abonnement. Als u deze resources in de toekomst niet meer nodig hebt, verwijdert u deze om te voorkomen dat er meer kosten in rekening worden gebracht.

Voer de volgende Azure Developer CLI-opdracht uit om de Azure-resources te verwijderen en de broncode te verwijderen:

azd down --purge --force

De schakelopties bieden:

  • purge: Verwijderde resources worden onmiddellijk verwijderd. Hiermee kunt u de TPM van Azure OpenAI opnieuw gebruiken.
  • force: het verwijderen gebeurt op de achtergrond, zonder dat hiervoor toestemming van de gebruiker is vereist.

GitHub Codespaces opschonen

Als u de GitHub Codespaces-omgeving verwijdert, zorgt u ervoor dat u de hoeveelheid gratis rechten per kernuren kunt maximaliseren die u voor uw account krijgt.

Belangrijk

Zie GitHub Codespaces maandelijks inbegrepen opslag- en kernuren voor meer informatie over de rechten van uw GitHub-account.

  1. Meld u aan bij het GitHub Codespaces-dashboard (https://github.com/codespaces).

  2. Zoek uw momenteel uitgevoerde Codespaces die afkomstig zijn uit de Azure-Samples/azure-search-openai-demo GitHub-opslagplaats.

    Schermopname van alle actieve Codespaces, inclusief hun status en sjablonen.

  3. Open het contextmenu voor de coderuimte en selecteer Vervolgens Verwijderen.

    Schermopname van het contextmenu voor één coderuimte met de optie Verwijderen gemarkeerd.

Hulp vragen

Deze voorbeeldopslagplaats biedt informatie over probleemoplossing.

Als uw probleem niet is opgelost, meldt u het probleem aan bij de problemen van de opslagplaats.

Volgende stappen