Sdílet prostřednictvím


Začínáme s bezserverovým chatem AI s RAG s využitím LangChain.js

Vytváření aplikací AI může být složité. Díky technologiím LangChain.js, Azure Functions a bezserverových technologií můžete tento proces zjednodušit. Tyto nástroje spravují infrastrukturu a škálují se automaticky a umožňují soustředit se na funkce chatbota. Chatbot používá podnikové dokumenty k vygenerování odpovědí umělé inteligence.

Kód obsahuje ukázková data pro fiktivní společnost Contoso Real Estate. Zákazníci můžou klást dotazy na podporu týkající se produktů společnosti. Data zahrnují dokumenty týkající se podmínek služby, zásad ochrany osobních údajů a průvodce podporou společnosti.

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

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

Chatovací aplikace

Uživatel komunikuje s aplikací:

  • S rozhraním chatu ve webové aplikaci klienta.
  • Webová aplikace klienta odešle dotaz uživatele do bezserverového rozhraní API prostřednictvím volání HTTP.
  • Bezserverové rozhraní API vytvoří řetěz pro koordinaci interakcí mezi Azure AI a Azure AI Search za účelem vygenerování odpovědi.
  • Pokud potřebujete odkazovat na dokumenty, azure Blob Storage se použije k načtení dokumentů PDF.
  • Vygenerovaná odpověď se pak odešle zpět do webové aplikace a zobrazí se uživateli.

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

LangChainjs zjednodušuje složitost mezi službami

Tok rozhraní API je užitečný k pochopení toho, jak je v tomto scénáři užitečný JazykChainJS tím, že abstrahuje interakce. Koncový bod bezserverového rozhraní API:

  • Obdrží otázku od uživatele.
  • Vytvoří objekty klienta:
    • Azure OpenAI pro vkládání a chat
    • Azure AI Search pro úložiště vektorů
  • Vytvoří řetěz dokumentů s modelem LLM, zprávou chatu (systémovou a uživatelskou výzvou) a zdrojem dokumentu.
  • Vytvoří řetěz načítání z řetězu dokumentů a úložiště vektorů.
  • Streamuje odpovědi z řetězu načítání.

Vývojář pracuje správně na konfiguraci služeb závislostí, jako jsou Azure OpenAI a Azure AI Search, a správně vytvoří řetězy. Základní logika řetězu ví, jak dotaz vyřešit. To umožňuje vytvářet řetězy z mnoha různých služeb a konfigurací, pokud pracují s požadavky jazyka LangChain.

Kde je Azure v této architektuře?

Tato aplikace je vyrobena z více komponent:

  • Webová aplikace vytvořená s jednou webovou komponentou chatu sestavenou pomocí Lit a hostované ve službě Azure Static Web Apps. Kód se nachází ve packages/webapp složce.

  • Bezserverové rozhraní API vytvořené pomocí azure Functions a použití LangChain.js k ingestování dokumentů a generování odpovědí na dotazy uživatelského chatu. Kód se nachází ve packages/api složce.

  • Služba Azure OpenAI pro vytvoření vkládání a vygenerování odpovědi

  • Databáze pro uložení textu extrahovaného z dokumentů a vektorů generovaných LangChain.js pomocí služby Azure AI Search.

  • Úložiště souborů pro ukládání zdrojových dokumentů pomocí služby Azure Blob Storage

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. Otevřete v Codespace.

    Otevřít v GitHub Codespaces

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

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

    azd auth login
    

    Dokončete proces ověřování.

  4. 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í bezserverové 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. Pomocí následující tabulky odpovězte na výzvy:

    Instrukce Odpověď
    Název prostředí Nechte ho krátkým a malými písmeny. Přidejte svoje jméno nebo alias. Například john-chat. Používá se jako součást názvu skupiny prostředků.
    Předplatné Vyberte předplatné, ve které chcete prostředky vytvořit.
    Umístění (pro hostování) V seznamu vyberte umístění blízko vás.
    Umístění modelu OpenAI V seznamu vyberte umístění blízko vás. Pokud je stejné umístění dostupné jako vaše první umístění, vyberte ho.
  3. Počkejte, až se aplikace nasadí. Dokončení nasazení může trvat 5 až 10 minut.

  4. Po úspěšném nasazení aplikace se v terminálu zobrazí dvě adresy URL.

  5. Výběrem této adresy URL otevřete Deploying service webapp 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 pronájmu z katalogu souborů PDF. Chatovací aplikaci můžete použít k kladení otázek ohledně procesu pronájmu. Následující kroky vás provedou procesem používání chatovací aplikace.

  1. V prohlížeči vyberte nebo zadejte , co jsou zásady refundace.

    Snímek obrazovky s první otázkou a odpovědí chatovací aplikace

  2. Vyberte následnou otázku.

    Snímek obrazovky s navrhovaným následným dotazem a odpovědí v chatovací aplikaci

  3. V odpovědi vyberte citaci a zobrazte dokument použitý k vygenerování odpovědi. Tím se do klienta doručí dokument ze služby Azure Storage. Až budete hotovi s novou kartou prohlížeče, zavřete ji a vraťte se do chatovací aplikace bez serveru.

    Snímek obrazovky s původním dokumentem obsahujícím citaci

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.

  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/serverless-chat-langchainjs ú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.

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