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

Screenshot of chat app in browser showing several suggestions for chat input and the chat text box to enter a question.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í:

  • Rozhraní chatu v klientské webové aplikaci pro konverzaci.
  • 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.
  • Načtení dokumentu PDF pomocí služby Azure Blob Storage.
  • 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 showing architecture from client to backend app.Diagram znázorňující architekturu z klienta do back-endové aplikace

LangChain.js zjednodušuje složitost mezi službami.

Tok rozhraní API je užitečný k pochopení toho, jak je LangChain.js v tomto scénáři užitečné díky abstrahování interakcí. 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 LangChain.js.

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/webapp 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.
  • Účet GitHubu.

Otevřené vývojové prostředí

Podle následujících pokynů nasaďte předkonfigurované vývojové prostředí obsahující všechny požadované závislosti pro 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.

    Open in GitHub CodespacesOtevří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. Zřiďte prostředky Azure a nasaďte zdrojový kód pomocí následujícího příkazu Azure Developer CLI:

    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é pro vytváření prostředků.
    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.

    Screenshot of chat app's first question and answer.Snímek obrazovky s první otázkou a odpovědí chatovací aplikace

  2. Vyberte následnou otázku.

    Screenshot of chat app's suggested follow-up prompt and answer.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.

    Screenshot of original document containing citation.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ů.

Odstraňte prostředky Azure a odeberte zdrojový kód pomocí následujícího příkazu Azure Developer CLI:

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.

    Screenshot of all the running Codespaces including their status and templates.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ě.