Delen via


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

In dit artikel leest u hoe u de chat implementeert en uitvoert met uw gegevensvoorbeeld voor Java. In dit voorbeeld wordt een chat-app geïmplementeerd met Behulp van Java, 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.

In dit artikel voert u de volgende taken uit:

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

Zodra u dit artikel 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 showing architecture from client to backend 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:

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 twee kernexemplaren. Zie GitHub Codespaces maandelijks inbegrepen opslag- en kernuren voor meer informatie.

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

    Open in GitHub CodespacesOpenen in GitHub Codespaces

  2. Controleer op de pagina Codespace maken de configuratie-instellingen voor codespace en selecteer Vervolgens Codespace maken.

    Screenshot of the confirmation screen before creating a new codespace.Schermopname van het bevestigingsscherm voordat u een nieuwe coderuimte maakt.

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

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

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

  6. 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. Richt de Azure-resources in en implementeer de broncode door de volgende opdracht uit te voeren:

    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, selecteert u een locatie bij u in de buurt. Als dezelfde locatie beschikbaar is als uw eerste locatie, selecteert u die.

  6. Wacht totdat de app is geïmplementeerd. Dit kan 5-10 minuten duren.

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

  8. Selecteer die URL die is gelabeld Deploying service web om de chattoepassing in een browser te openen.

    Schermopname van de chat-app in de browser met verschillende suggesties voor chatinvoer, evenals het chatvak waarin u een vraag invoert.

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.

  1. Open de browser en selecteer of voer in: Wat is inbegrepen in mijn Northwind Health Plus-plan dat niet in standaard is? in het chattekstvak.

    Screenshot of chat app's first answer.Schermopname van het eerste antwoord van de chat-app.

  2. Selecteer een van de bronvermeldingen in het antwoord.

    Screenshot of chat app's first answer with its citation highlighted in a red box.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 Script van de interacties in chat.
    Ondersteunende inhoud Bevat de informatie om uw vraag en het bronmateriaal te beantwoorden.
    Gegevensvermelding Geeft de PDF-pagina weer 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

Het OpenAI-model en de instellingen die worden gebruikt om met het model te communiceren, bepalen de intelligentie van de chat-app.

Screenshot of chat developer settings.Schermopname van instellingen voor chatontwikkelaars.

Instelling Beschrijving
Promptsjabloon overschrijven Prompt die wordt gebruikt om het antwoord te genereren.
Dit aantal zoekresultaten ophalen Aantal zoekresultaten dat wordt gebruikt om het antwoord te genereren. U kunt deze bronnen zien die worden geretourneerd in het gedachtenproces en de tabbladen Ondersteunende inhoud van de bronvermelding.
Categorie uitsluiten Categorie documenten die zijn uitgesloten van de zoekresultaten.
Semantische ranker gebruiken voor ophalen Functie van Azure AI Search- die machine learning gebruikt om de relevantie van zoekresultaten te verbeteren.
Querycontextuele samenvattingen gebruiken in plaats van hele documenten Wanneer beide Use semantic ranker en Use query-contextual summaries worden gecontroleerd, gebruikt de LLM bijschriften die zijn geëxtraheerd uit belangrijke passages, in plaats van alle passages, in de hoogste gerangschikte documenten.
Vervolgvragen voorstellen Laat de chat-app opvolgende vragen voorstellen op basis van het antwoord.
Ophaalmodus Vectoren + tekst betekent dat de zoekresultaten zijn gebaseerd op de tekst van de documenten en de insluitingen van de documenten. Vectoren betekent dat de zoekresultaten zijn gebaseerd op de insluitingen van de documenten. Tekst betekent dat de zoekresultaten zijn gebaseerd op de tekst van de documenten.
Antwoorden op voltooiing van de Stream-chat Stream-antwoord in plaats van te wachten totdat het volledige antwoord beschikbaar is voor een antwoord.

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. Vink het selectievakje Vervolgvragen voorstellen aan en stel dezelfde vraag opnieuw.

    What is my deductible?
    

    De chat retourneert voorgestelde vervolgvragen, zoals deze:

    1. What is the cost sharing for out-of-network services?
    2. Are preventive care services subject to the deductible?
    3. How does the prescription drug deductible work?
    
  3. Schakel op het tabblad Instellingen de selectie van de semantische ranker gebruiken voor ophalen uit.

  4. Dezelfde vraag opnieuw stellen?

    What is my deductible?
    
  5. Wat is het verschil in de antwoorden?

    Het antwoord, dat de Semantische rangschikking heeft gebruikt, heeft bijvoorbeeld één antwoord gegeven: The deductible for the Northwind Health Plus plan is $2,000 per year.

    Het antwoord zonder semantische rangschikking heeft een antwoord geretourneerd, wat meer werk vereist om het antwoord te krijgen: Based on the information provided, it is unclear what your specific deductible is. The Northwind Health Plus plan has different deductible amounts for in-network and out-of-network services, and there is also a separate prescription drug deductible. I would recommend checking with your provider or referring to the specific benefits details for your plan to determine your deductible amount.

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. Gebruik de volgende opdracht om de Azure-resources te verwijderen en de broncode te verwijderen:

azd down --purge

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.

  2. Zoek de coderuimten die nu draaien vanuit de Azure-Samples/azure-search-openai-demo-java GitHub-repository.

    Screenshot of all the running Codespaces including their status and templates.Schermopname van alle actieve Codespaces, inclusief hun status en sjablonen.

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

    Screenshot of the context menu for a single codespace with the delete option highlighted.Schermopname van het contextmenu voor één coderuimte met de optie Verwijderen gemarkeerd.

Hoe wordt de vraag beantwoord?

De app is onderverdeeld in twee apps:

  • Een front-end JavaScript-toepassing met behulp van het React-framework met het hulpprogramma Vite-build.
  • Een back-end Java-toepassing beantwoordt de vraag.

De back-end-API /chat doorloopt het proces voor het ophalen van het antwoord:

  • Rag-opties bouwen: maak een set opties die worden gebruikt om een antwoord te genereren.
  • Aanpak maken met behulp van RAG-opties: Gebruik een combinatie van op ophalen gebaseerde en generatieve modellen om een benadering te creëren voor het genereren van een nauwkeurige en natuurlijke klinkende reactie.
  • Voer de aanpak uit met RAG-opties en vorige gesprek: gebruik de benadering en RAG-opties om een antwoord te genereren op basis van het vorige gesprek. Het antwoord bevat informatie over welke documenten zijn gebruikt om het antwoord te genereren.

Hulp vragen

Deze voorbeeldopslagplaats biedt informatie over probleemoplossing. Als uw probleem niet is opgelost, meld het in de Issuessectie van de repository.

Volgende stappen