Začínáme s chatem pomocí vlastní ukázky dat pro .NET
V tomto článku se dozvíte, jak nasadit a spustit chat s vlastní ukázkou dat pro .NET. Tato ukázka implementuje chatovací aplikaci pomocí C#, 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. Chatovací aplikace zaměstnaneckých výhod je sesílaná se 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.
Postupujte podle pokynů v tomto článku:
- 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 postupu 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í azure Open AI Service a Azure AI Search.
Mezi další články v kolekci patří:
Přehled architektury
V této ukázkové aplikaci poskytuje fiktivní společnost Contoso Electronics prostředí chatovací aplikace svým zaměstnancům, aby se ptala na výhody, interní zásady a také popisy a role pracovních míst.
Architektura chatovací aplikace se zobrazuje v následujícím diagramu:
- Uživatelské rozhraní – Chatovací rozhraní aplikace je aplikace Blazor WebAssembly . Toto rozhraní přijímá dotazy uživatelů, směruje požadavek na back-end aplikace a zobrazuje vygenerované odpovědi.
- Back-end – Back-end aplikace je rozhraní ASP.NET Core Minimal API. Back-end hostuje statickou webovou aplikaci Blazor a orchestruje interakce mezi různými službami. Mezi služby používané v této aplikaci patří:
- Azure Cognitive Search – Indexuje dokumenty z dat uložených v účtu služby Azure Storage. Díky tomu se dokumenty dají prohledávat pomocí funkcí vektorového vyhledávání .
- Služba Azure OpenAI – poskytuje rozsáhlé jazykové modely (LLM) pro generování odpovědí. Sémantické jádro se používá ve spojení se službou Azure OpenAI Service k orchestraci složitějších pracovních postupů AI.
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 bude účtován poplatek, ale bude minimální. Až budete s článkem hotovi, můžete prostředky odstranit, abyste přestali účtovat poplatky.
Další informace najdete v tématu Ukázky Azure: Náklady 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 postupovat podle tohoto článku, potřebujete následující požadavky:
- Předplatné Azure – Vytvoření předplatného zdarma
- Oprávnění účtu Azure – Váš účet Azure musí mít oprávnění Microsoft.Authorization/roleAssignments/write, například správce uživatelských přístupů 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 GitHub
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.
Spusťte proces vytvoření nového prostředí GitHub Codespace ve
main
větviAzure-Samples/azure-search-openai-demo-csharp
úložiště GitHub.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 kódspace zkontrolujte nastavení konfigurace codespace a pak vyberte Vytvořit nový prostor 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.
Spuštěním následujícího příkazu Azure Developer CLI zřiďte prostředky Azure a nasaďte zdrojový kód:
azd up
Když 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í. Dokončení nasazení může trvat až 20 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 přejděte na stránku Chat pomocí levé navigace.
V textovém poli chatu vyberte nebo zadejte "Co je součástí plánu Northwind Health Plus, který není standardní?". Vaše odpověď je podobná následujícímu obrázku.
V odpovědi vyberte citaci. Otevře se automaticky otevírané okno zobrazující zdroj informací.
Navigujte mezi kartami v horní části pole odpovědi, abyste pochopili, jak se odpověď vygenerovala.
Tab Popis Myšlenkový proces Toto je skript interakcí v chatu. Můžete zobrazit výzvu systému ( content
) a otázku uživatele (content
).Podpůrný obsah To zahrnuje informace pro zodpovězení vaší otázky a zdrojového materiálu. Počet zdrojových citací je uveden v nastavení pro vývojáře. Výchozí hodnota je 3. Citace Zobrazí se zdrojová stránka, která obsahuje citaci. Až budete hotovi, přejděte zpět na kartu odpovědi.
Změna chování odpovědí pomocí nastavení chatovací aplikace
Inteligenci chatu určuje model OpenAI a nastavení, která se používají k interakci s modelem.
Nastavení | Popis |
---|---|
Přepsání šablony výzvy | Toto je výzva, která slouží k vygenerování odpovědi. |
Načtení tohoto počtu výsledků hledání | Toto je 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 | Toto je kategorie dokumentů, které jsou vyloučené z výsledků hledání. |
Použití sémantického rankeru pro načtení | Toto je funkce služby Azure AI Search , která využívá strojové učení ke zlepšení relevance výsledků hledání. |
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ů. |
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. |
Následující kroky vás provedou procesem změny nastavení.
V prohlížeči vyberte ikonu ozubeného kola v pravém horním rohu stránky.
Pokud není zaškrtnuté, zaškrtněte políčko Navrhnout následné otázky a znovu položte stejnou otázku.
What is included in my Northwind Health Plus plan that is not in standard?
Chat se může vrátit s návrhy následných otázek.
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?
Odpověď, která použila sémantický ranker, poskytla jedinou odpověď. Odpověď bez sémantického řazení vrátila méně přímou odpověď.
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ů.
Spuštěním následujícího příkazu Azure Developer CLI 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.
Přihlaste se k řídicímu panelu GitHub Codespaces (https://github.com/codespaces).
Vyhledejte aktuálně spuštěné codespaces zdrojové z
Azure-Samples/azure-search-openai-demo-csharp
úložiště GitHub.Otevřete místní nabídku pro codespace a pak vyberte Odstranit.
Získání pomoci
Toto ukázkové úložiště nabízí informace o řešení potíží.
Pokud se váš problém nevyřeší, zapište problém do problémů úložiště.
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