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.

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

Poznámka:

Tento článek používá jednu nebo více šablon aplikací AI jako základ pro příklady a pokyny v č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 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ězce vyhledávání.

Úkolem vývojáře je správně konfigurovat služby závislostí, jako jsou Azure OpenAI a Azure AI Search, a správně sestavit řetězce. Základní logika řetězu 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 jedinou webovou komponentou pro chat využívající Lit a hostovaná na Azure Static Web Apps. Kód se nachází ve složce packages/webapp.

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

  • Služba Azure OpenAI pro vytváření vektorových reprezentací a generování odpovědi.

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

  • Úložiště souborů k ukládání zdrojových dokumentů, které využívá Azure Blob Storage.

Požadavky

Vývojové prostředí kontejneru je k dispozici se všemi závislostmi potřebnými pro 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:

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 s Visual Studio Code pro web jako uživatelským rozhraním. 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 dvěma základními instancemi. Pro více informací si přečtěte GitHub Codespaces měsíčně zahrnuté úložiště a hodiny CPU.

  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 v této části začnou okamžitě účtovat peníze, a to i když zastavíte příkaz před jeho dokončení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:

    Podnět Odpověď
    Název prostředí Udržte to krátké a pište 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. Vyberte tu adresu URL označenou Deploying service webapp pro otevření chatovací aplikace v prohlížeči.

Získání odpovědí ze souborů PDF pomocí chatovací aplikace

Chatovací aplikace je přednahraná 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 Jaká je politika vracení peněz.

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

  2. Vyberte následnou otázku.

    Snímek obrazovky navrhovaného následného dotazu a odpovědi v chatovací aplikaci.

  3. Výběrem citace v odpovědi zobrazíte zdrojový dokument. Azure Storage doručí dokument do prohlížeče. Až dokončíte kontrolu dokumentu, zavřete záložku a vraťte se do aplikace pro chat.

    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

Azure fakturuje prostředky vytvořené v tomto článku k vašemu předplatnému Azure. Pokud tyto prostředky v budoucnu nepotřebujete, odstraňte je, abyste se vyhnuli dalším poplatkům.

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

Odstraňte prostředí Codespaces na GitHubu pro maximální využití vašich bezplatných hodin pro jednotlivé jádro.

Důležité

Další informace o oprávněních účtu GitHub najdete v tématu GitHub Codespaces - měsíčně zahrnuté úložiště a hodiny jádra.

  1. Přihlaste se k řídicímu panelu GitHub Codespaces .

  2. Vyhledejte své aktuálně spuštěné Codespaces pocházející z úložiště GitHub.

    Screenshot of all the running Codespaces including their status and templates.Snímek obrazovky všech spuštěných Codespaces, včetně jejich stavu a šablon.

  3. Otevřete místní nabídku, {c0}, pro codespace a pak vyberte {c1}Odstranit{c1}.

Získání pomoci

Toto ukázkové úložiště nabízí informace o řešení potíží.

Pokud se váš problém nevyřeší, založte jej v sekci Problémy úložiště.