Začínáme s chatem pomocí vlastní ukázky dat pro Javu
V tomto článku se dozvíte, jak nasadit a spustit chat s ukázkou dat pro Javu. Tato ukázka implementuje chatovací aplikaci pomocí Javy, služby Azure OpenAI a načítání rozšířené generace (RAG) ve službě Azure AI Search, aby získala odpovědi na výhody zaměstnanců ve fiktivní společnosti. Aplikace je oseděna soubory PDF, včetně příručky pro zaměstnance, dokumentu o výhodách a seznamu rolí a očekávání společnosti.
V tomto článku provedete následující úlohy:
- Nasazení chatovací aplikace do Azure
- Získejte odpovědi na výhody zaměstnanců.
- Změňte nastavení a změňte chování odpovědí.
Po dokončení tohoto článku můžete začít upravovat nový projekt pomocí vlastního kódu.
Tento článek je součástí kolekce článků, ve kterých se dozvíte, jak vytvořit chatovací aplikaci pomocí služby Azure OpenAI a azure AI Search. Mezi další články v kolekci patří:
Poznámka:
Tento článek používá jednu nebo více šablon aplikací AI jako základ pro příklady a pokyny v tomto článku. Šablony aplikací AI poskytují dobře udržované a snadno použitelné referenční implementace, které pomáhají zajistit vysoce kvalitní výchozí bod pro vaše aplikace AI.
Přehled architektury
Jednoduchá architektura chatovací aplikace je znázorněná v následujícím diagramu:
Diagram znázorňující architekturu z klienta do back-endové aplikace
Mezi klíčové součásti architektury patří:
- Webová aplikace pro hostování interaktivního chatu
- Prostředek Azure AI Search, který vám umožní získat odpovědi z vašich vlastních dat.
- Služba Azure OpenAI, která poskytuje:
- Klíčová slova pro vylepšení hledání nad vlastními daty
- Odpovědi od modelu OpenAI.
- Vkládání z modelu ada
Náklady
Většina prostředků v této architektuře používá cenovou úroveň Basic nebo Consumption. Ceny spotřeby jsou založené na využití, což znamená, že platíte jenom za to, co používáte. K dokončení tohoto článku se účtuje poplatek, ale je minimální. Až budete s článkem hotovi, můžete prostředky odstranit, abyste přestali účtovat poplatky.
Přečtěte si další informace o nákladech v ukázkovém úložišti.
Požadavky
Vývojové prostředí kontejneru je k dispozici se všemi závislostmi potřebnými k dokončení tohoto článku. Vývojový kontejner můžete spustit v GitHub Codespaces (v prohlížeči) nebo místně pomocí editoru Visual Studio Code.
Pokud chcete použít tento článek, potřebujete následující požadavky:
- Předplatné Azure – Vytvoření zdarma.
- Oprávnění účtu Azure – váš účet Azure musí mít oprávnění
Microsoft.Authorization/roleAssignments/write
, jako například uživatelský správce přístupu nebo vlastník. - Přístup k Azure OpenAI je udělován v požadovaném předplatném Azure. V současné době je přístup k této službě udělován pouze aplikací. Pokud chcete získat přístup k Azure OpenAI, vyplňte formulář na adrese https://aka.ms/oai/access. Pokud máte problém, otevřete problém v tomto úložišti a kontaktujte nás.
- Účet GitHubu.
Otevřené vývojové prostředí
Začněte teď s vývojovým prostředím, které má nainstalované všechny závislosti k dokončení tohoto článku.
GitHub Codespaces spouští vývojový kontejner spravovaný GitHubem pomocí editoru Visual Studio Code pro web jako uživatelského rozhraní. Pro nejjednodušší vývojové prostředí použijte GitHub Codespaces, abyste měli předinstalované správné vývojářské nástroje a závislosti k dokončení tohoto článku.
Důležité
Všechny účty GitHubu můžou každý měsíc používat Codespaces až 60 hodin zdarma se 2 jádrovými instancemi. Další informace najdete v tématu GitHub Codespaces měsíčně zahrnuté úložiště a hodiny jádra.
Klikněte pravým tlačítkem myši na následující tlačítko a vyberte Otevřít odkaz v nových oknech , abyste měli k dispozici vývojové prostředí i dokumentaci najednou.
Na stránce Vytvořit codespace zkontrolujte nastavení konfigurace codespace a pak vyberte Vytvořit Codespace.
Snímek obrazovky s potvrzením před vytvořením nového prostoru kódu
Počkejte, až se prostor kódu spustí. Tento proces spuštění může trvat několik minut.
V terminálu v dolní části obrazovky se přihlaste k Azure pomocí Azure Developer CLI.
azd auth login
Zkopírujte kód z terminálu a vložte ho do prohlížeče. Postupujte podle pokynů k ověření pomocí účtu Azure.
Zbývající úlohy v tomto článku probíhají v kontextu tohoto vývojového kontejneru.
Nasazení a spuštění
Ukázkové úložiště obsahuje všechny soubory kódu a konfigurace, které potřebujete k nasazení chatovací aplikace do Azure. Následující kroky vás provedou procesem nasazení ukázky do Azure.
Nasazení chatovací aplikace do Azure
Důležité
Prostředky Azure vytvořené v této části účtují okamžité náklady, především z prostředku Azure AI Search. Tyto prostředky můžou nabíhání nákladů i v případě, že příkaz přerušíte před jeho úplným spuštěním.
Zřiďte prostředky Azure a nasaďte zdrojový kód spuštěním následujícího příkazu:
azd up
Pokud se zobrazí výzva k zadání názvu prostředí, ponechte ho krátkým a malými písmeny, například
myenv
. Používá se jako součást názvu skupiny prostředků.Po zobrazení výzvy vyberte předplatné, ve které chcete prostředky vytvořit.
Když se zobrazí výzva k prvnímu výběru umístění, vyberte umístění blízko vás. Toto umístění se používá pro většinu prostředků včetně hostování.
Pokud se zobrazí výzva k zadání umístění modelu OpenAI, vyberte umístění, které je blízko vás. Pokud je stejné umístění dostupné jako vaše první umístění, vyberte ho.
Počkejte, až se aplikace nasadí, což může trvat 5 až 10 minut.
Po úspěšném nasazení aplikace se v terminálu zobrazí adresa URL.
Výběrem této adresy URL otevřete
Deploying service web
chatovací aplikaci v prohlížeči.
Získání odpovědí ze souborů PDF pomocí chatovací aplikace
Chatovací aplikace se předem načte s informacemi o výhodách zaměstnanců ze souborů PDF. Chatovací aplikaci můžete použít k kladení otázek ohledně výhod. Následující kroky vás provedou procesem používání chatovací aplikace.
V prohlížeči vyberte nebo zadejte Co je součástí plánu Northwind Health Plus, který není standardní? v textovém poli chatu.
V odpovědi vyberte jednu z citací.
Snímek obrazovky s první odpovědí chatovací aplikace se zvýrazněnou citací v červeném poli
V pravém podokně použijte karty, abyste pochopili, jak se odpověď vygenerovala.
Tab Popis Myšlenkový proces Skript interakcí v chatu Podpůrný obsah Obsahuje informace pro zodpovězení vaší otázky a zdrojového materiálu. Citace Zobrazí stránku PDF, která obsahuje citaci. Až budete hotovi, znovu vyberte vybranou kartu a podokno zavřete.
Změna chování odpovědí pomocí nastavení chatovací aplikace
Model OpenAI a nastavení, která se používají k interakci s modelem, určují inteligenci chatovací aplikace.
Snímek obrazovky s nastavením vývojáře chatu
Nastavení | Popis |
---|---|
Přepsání šablony výzvy | Výzva, která se používá k vygenerování odpovědi |
Načtení tohoto počtu výsledků hledání | Počet výsledků hledání, které se používají k vygenerování odpovědi Tyto zdroje vrácené v myšlenkovém procesu a podpůrných kartách obsahu citace můžete vidět. |
Vyloučit kategorii | Kategorie dokumentů, které jsou vyloučené z výsledků hledání |
Použití sémantického rankeru pro načtení | Funkce azure AI Search, která využívá strojové učení ke zlepšení relevance výsledků hledání |
Použití kontextových souhrnů dotazu místo celých dokumentů | Při kontrole Use semantic ranker Use query-contextual summaries llm používá titulky extrahované z klíčových pasáží místo všech pasáží v nejřadivějších dokumentech. |
Návrhy následných otázek | Požádejte chatovací aplikaci, aby na základě odpovědi navrhla následné otázky. |
Režim načítání | Vektory + Text znamenají, že výsledky hledání jsou založeny na textu dokumentů a vkládání dokumentů. Vektory znamenají, že výsledky hledání jsou založené na vkládání dokumentů. Text znamená, že výsledky hledání jsou založené na textu dokumentů. |
Odpovědi na dokončování chatu streamu | Odpověď streamu místo čekání na dokončení odpovědi. |
Následující kroky vás provedou procesem změny nastavení.
V prohlížeči vyberte kartu Nastavení pro vývojáře.
Zaškrtněte políčko Navrhnout následné otázky a znovu položte stejnou otázku.
What is my deductible?
Chat vrátí navrhované následné otázky, například tyto:
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?
Na kartě Nastavení zrušte výběr možnosti Použít sémantický ranker pro načtení.
Položte stejnou otázku znovu?
What is my deductible?
Jaký je rozdíl v odpovědích?
Například odpověď, která použila sémantický ranker, poskytla jedinou odpověď:
The deductible for the Northwind Health Plus plan is $2,000 per year
.Odpověď bez sémantického řazení vrátila odpověď, která vyžadovala více práce k získání odpovědi:
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
.
Vyčištění prostředků
Vyčištění prostředků Azure
Prostředky Azure vytvořené v tomto článku se fakturují k vašemu předplatnému Azure. Pokud v budoucnu tyto prostředky nepotřebujete, odstraňte je, abyste se vyhnuli účtování dalších poplatků. Pomocí následujícího příkazu odstraňte prostředky Azure a odeberte zdrojový kód:
azd down --purge
Vyčištění služby GitHub Codespaces
Odstraněním prostředí GitHub Codespaces zajistíte, že můžete maximalizovat nárok na počet bezplatných hodin za jádro, které získáte pro svůj účet.
Důležité
Další informace o oprávněních účtu GitHub najdete v tématu GitHub Codespaces měsíčně zahrnuté hodiny úložiště a jádra.
Vyhledejte aktuálně spuštěné Codespaces pocházející z úložiště Azure-Samples/azure-search-openai-demo-java na GitHub.
Snímek obrazovky se všemi spuštěnými codespaces včetně jejich stavu a šablon
Otevřete místní nabídku pro codespace a pak vyberte Odstranit.
Snímek obrazovky s místní nabídkou pro jeden prostor kódu se zvýrazněnou možností odstranit
Jak odpovídá otázka?
Aplikace je oddělená do dvou aplikací:
- Front-endová javascriptová aplikace využívající architekturu React s nástrojem pro sestavení Vite.
- Back-endová aplikace v Javě odpoví na otázku.
Rozhraní API back-endu /chat
prochází procesem získání odpovědi:
- Sestavení možností RAG: Vytvořte sadu možností, které se používají k vygenerování odpovědi.
- Vytvoření přístupu pomocí možností RAG: Pomocí kombinace modelů založených na načítání a generování modelů vytvořte přístup pro generování přesné a přirozené odezvy.
- Spusťte přístup s možnostmi RAG a předchozí konverzací: Pomocí přístupu a možností RAG vygenerujte odpověď na základě předchozí konverzace. Odpověď obsahuje informace o tom, které dokumenty byly použity k vygenerování odpovědi.
Získání pomoci
Toto ukázkové úložiště nabízí informace o řešení potíží. Pokud váš problém není vyřešen, zapište ho do úložiště, v sekci Problémy.
Další kroky
- Získání zdrojového kódu pro ukázku použitou v tomto článku
- Vytvoření chatovací aplikace s využitím architektury osvědčených postupů Azure OpenAI
- Řízení přístupu v generativních aplikacích AI pomocí Azure AI Search
- Vytvoření řešení OpenAI připravené pro podniky pomocí služby Azure API Management
- Outperforming vector search with hybrid retrieval and ranking capabilities
- Další komplexní šablony Azure AI