Začínáme s chatem s využitím vlastní ukázky dat pro Python

V tomto článku se dozvíte, jak nasadit a spustit chat s vlastní ukázkou dat pro Python. Tato ukázka implementuje chatovací aplikaci pomocí Pythonu, 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.

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í 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 bude účtován poplatek, ale bude 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í 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.

  1. Spusťte proces vytvoření nového prostředí GitHub Codespace ve main větvi Azure-Samples/azure-search-openai-demo úložiště GitHub.

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

    Otevřít v GitHub Codespaces

  3. Na stránce Vytvořit kódspace zkontrolujte nastavení konfigurace codespace a pak vyberte Vytvořit nový prostor kódu.

    Snímek obrazovky s potvrzením před vytvořením nového prostoru kódu

  4. Počkejte, až se prostor kódu spustí. Tento proces spuštění může trvat několik minut.

  5. V terminálu v dolní části obrazovky se přihlaste k Azure pomocí Azure Developer CLI.

    azd auth login
    
  6. Zkopírujte kód z terminálu a vložte ho do prohlížeče. Postupujte podle pokynů k ověření pomocí účtu Azure.

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

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

  3. Po zobrazení výzvy vyberte předplatné, ve které chcete prostředky vytvořit.

  4. 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í.

  5. Pokud se zobrazí výzva k zadání umístění modelu OpenAI nebo prostředku Document Intelligence, vyberte umístění, které je k vám nejblíže. Pokud je stejné umístění dostupné jako vaše první umístění, vyberte ho.

  6. Než budete pokračovat, počkejte 5 nebo 10 minut po nasazení aplikace.

  7. Po úspěšném nasazení aplikace se v terminálu zobrazí adresa URL.

    Snímek obrazovky nasazené aplikace hlášené na konci procesu AZD CLI azd up

  8. Výběrem této adresy URL otevřete (✓) Done: Deploying service webapp chatovací aplikaci v prohlížeči.

    Snímek obrazovky chatovací aplikace v prohlížeči s několika návrhy pro vstup chatu a textovým polem chatu pro zadání otázky

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. Vaše odpovědi se můžou lišit, protože se aktualizují podkladové modely.

  1. V prohlížeči vyberte nebo zadejte , co se stane v revizi výkonu? v textovém poli chatu.

    Snímek obrazovky s první odpovědí chatovací aplikace

  2. V odpovědi vyberte citaci.

    Snímek obrazovky s první odpovědí chatovací aplikace se zvýrazněnou citací v červeném poli

  3. V pravém podokně použijte karty, 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 původní stránka, která obsahuje citaci.
  4. Až budete hotovi, znovu vyberte vybranou kartu a podokno zavřete.

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.

Snímek obrazovky s nastavením vývojáře chatu

Nastavení Popis
Přepsání šablony výzvy Přepíše výzvu použitou k vygenerování odpovědi na základě otázky a výsledků hledání.
Teplota Nastaví teplotu požadavku na LLM, která vygeneruje odpověď. Vyšší teploty vedou k kreativním reakcím, ale mohou být méně uzemněné.
Semeno Nastaví počáteční hodnoty, aby se zlepšila reprodukovatelnost odpovědí modelu. Počáteční hodnota může být libovolné celé číslo.
Minimální skóre hledání Nastaví minimální skóre výsledků hledání, které se vrátí z hledání Azure AI. Rozsah skóre závisí na tom, jestli používáte hybridní (výchozí), pouze vektory nebo jenom text.
Minimální skóre rerankeru Nastaví minimální skóre výsledků hledání přicházejících z sémantického pořadí. Skóre se vždy pohybuje v rozmezí od 0 do 4. Čím vyšší je skóre, tím více sémanticky relevantní výsledek je otázka.
Načtení tohoto počtu výsledků hledání Nastaví počet výsledků hledání, které se mají načíst z hledání Azure AI. Větší počet výsledků může zvýšit pravděpodobnost nalezení správné odpovědi, ale může vést ke ztrátě modelu uprostřed. Tyto zdroje vrácené v myšlenkovém procesu a podpůrných kartách obsahu citace můžete vidět.
Vyloučit kategorii Určuje kategorii, která se má z výsledků hledání vyloučit. Ve výchozí sadě dat nejsou použity žádné kategorie.
Použití sémantického rankeru pro načtení Povolí sémantický ranker služby Azure AI Search, model, který znovu řadí výsledky hledání na základě sémantické podobnosti s dotazem uživatele.
Použití sémantických titulků Odešle sémantické titulky do LLM místo úplného výsledku hledání. Sémantický titulek se extrahuje z výsledku hledání během procesu sémantického řazení.
Návrhy následných otázek Položí LLM návrh následných otázek na základě dotazu uživatele.
Režim načítání Nastaví režim načítání pro dotaz Azure AI Search. Vektory + text (hybridní) používají kombinaci vektorového vyhledávání a fulltextového vyhledávání, Vektory používají pouze vektorové vyhledávání a text používá pouze fulltextové vyhledávání. Hybridní řešení je obecně optimální.
Odpovědi na dokončování chatu streamu Průběžně streamuje odpověď do uživatelského rozhraní chatu při generování.

Následující kroky vás provedou procesem změny nastavení.

  1. V prohlížeči vyberte kartu Nastavení pro vývojáře.

  2. Zaškrtněte políčko Navrhnout následné otázky a znovu položte stejnou otázku.

    What happens in a performance review?
    

    V chatu se vrátily navrhované následné otázky, například následující:

    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. Na kartě Nastavení zrušte výběr možnosti Použít sémantický ranker pro načtení.

  4. Položte stejnou otázku znovu?

    What happens in a performance review?
    
  5. Jaký je rozdíl v odpovědích?

    Se sémantickou rankerkou: Během kontroly výkonnosti ve společnosti Contoso Electronics budou mít zaměstnanci příležitost diskutovat o svých úspěchu a problémech na pracovišti (1). Hodnocení poskytne pozitivní a konstruktivní zpětnou vazbu, která zaměstnancům pomůže rozvíjet a rozvíjet se v jejich rolích (1). Zaměstnanec obdrží písemné shrnutí hodnocení výkonu, které bude zahrnovat hodnocení jejich výkonu, zpětné vazby a cílů pro nadcházející rok (1). Přezkum výkonnosti je obousměrný dialog mezi manažery a zaměstnanci (1).

    Bez sémantického rankera: Během kontroly výkonnosti ve společnosti Contoso Electronics mají zaměstnanci příležitost diskutovat o svých úspěchu a problémech na pracovišti. Pozitivní a konstruktivní zpětná vazba je poskytována, aby zaměstnancům pomohla vyvíjet a rozšiřovat své role. Zapisovaný souhrn kontroly výkonnosti, včetně hodnocení výkonu, zpětné vazby a cílů pro nadcházející rok. Přezkum je obousměrný dialog mezi manažery a zaměstnanci (1).

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 --force

Přepínače poskytují:

  • purge: Odstraněné prostředky se okamžitě vymažou. To vám umožní opakovaně používat čip TPM Azure OpenAI.
  • force: Odstranění probíhá bezobslužně bez nutnosti souhlasu uživatele.

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.

  1. Přihlaste se k řídicímu panelu GitHub Codespaces (https://github.com/codespaces).

  2. Vyhledejte aktuálně spuštěné Codespaces zdrojové z Azure-Samples/azure-search-openai-demo úložiště GitHub.

    Snímek obrazovky se všemi spuštěnými codespaces včetně jejich stavu a šablon

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

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