Sdílet prostřednictvím


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

Zjednodušte vývoj aplikací umělé inteligence pomocí RAG s využitím vlastních dat spravovaných LlamaIndex, Azure Functions a bezserverových technologií. Tyto nástroje spravují infrastrukturu a škálování automaticky, takže se můžete soustředit na funkce chatovacího robota. LlamaIndex zpracovává datový kanál od příjmu dat až po streamovanou odpověď.

Snímek obrazovky chatovací aplikace v prohlížeči zobrazující vstup chatu a odpověď

Přehled architektury

Tok aplikace zahrnuje:

  • K zadání výzvy použijte rozhraní chatu.
  • Odeslání výzvy uživatele do bezserverového rozhraní API prostřednictvím volání HTTP
  • Při přijímání uživatelské výzvy následně zpracovávat a streamovat odpověď pomocí rozhraní LlamaIndex. Bezserverové rozhraní API používá modul k vytvoření připojení k rozsáhlému jazykovému modelu Azure OpenAI (LLM) a indexu vektoru z LlamaIndex.

Jednoduchá architektura chatovací aplikace je znázorněná v následujícím diagramu:

diagram architektury pro chatovací aplikaci LlamaIndex RAG.

Tento příklad využívá LlamaIndex k vygenerování embedding vektorů a jejich uložení do vlastního vektorového úložiště. LlamaIndex také poskytuje integraci s jinými vektorovými úložišti, včetně Azure AI Search. Tato integrace není v této ukázce demonstrována.

Kde je Azure v této architektuře?

Architektura aplikace závisí na následujících službách a komponentách:

  • azure OpenAI představuje poskytovatele AI, kterému posíláme dotazy uživatele.
  • LlamaIndex je architektura, která nám pomáhá ingestovat, transformovat a vektorizovat náš obsah (soubor PDF) a vytvořit vyhledávací index z našich dat.
  • azure Container Apps je prostředí kontejneru, ve kterém je aplikace hostovaná.
  • Spravovaná identita Azure nám pomáhá zajistit špičkové zabezpečení a eliminuje potřebu, abyste jako vývojář pracoval s přihlašovacími údaji a klíči API.

LlamaIndex spravuje data od příjmu až po načtení.

Pokud chcete implementovat systém RAG (Retrieval-Augmented Generation) pomocí llamaIndex, následující klíčové kroky se shodují s funkcemi LlamaIndex:

Proces Popis LlamaIndex
Příjem dat Importujte data ze zdrojů, jako jsou soubory PDF, rozhraní API nebo databáze. SimpleDirectoryReader
Část dokumentů Rozdělte velké dokumenty do menších bloků dat. Rozdělovač vět
Vytvoření vektorových indexů Vytvořte vektorový index pro efektivní vyhledávání podobnosti. VectorStoreIndex
Rekurzivní načítání (volitelné) z indexu Správa složitých datových sad pomocí hierarchického načítání
Převod na dotazovací stroj Převeďte vektorový index na dotazovací modul. asQueryEngine
Rozšířené nastavení dotazů (volitelné) Používejte agenty pro systém s více agenty.
Implementujte datový tok RAG Definujte funkci cíle, která přijímá dotazy uživatelů a načítá relevantní bloky dokumentů.
Provést načtení Zpracování dotazů a opětovného řazení dokumentů RetrieverQueryEngine, CohereRerank

Požadavky

Prostředí pro vývojový kontejner 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é 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 naleznete v tématu GitHub Codespaces, který zahrnuje měsíční úložiště a základní hodiny.

  1. Otevřete v codespace.

    Otevřít v GitHub Codespaces

  2. Počkejte, až se spustí prostředí pro kód. 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 způsobí okamžité náklady, především kvůli prostředku Azure AI Search. Tyto prostředky mohou nabíhat náklady, i když příkaz přerušíte před jeho úplným spuštěním.

  1. Pokud chcete zřídit prostředky Azure a nasadit zdrojový kód, spusťte následující příkaz Azure Developer CLI:

    azd up
    
  2. Pomocí následující tabulky odpovězte na výzvy:

    Výzva Odpověď
    Název prostředí Udržujte to krátké 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ém 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 označené Deploying service webapp otevřete chatovací aplikaci v prohlížeči.

    snímek obrazovky s výstupem příkazu nasazení zobrazující adresu URL webové aplikace

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

Chatovací aplikace je předem vybavena informacemi o fyzických standardech pro vnitrostátní poštu z katalogu PDF souborů . Chatovací aplikaci můžete použít k kladení otázek týkajících se poštovního dopisu a balíčků. Následující kroky vás provedou procesem používání chatovací aplikace.

  1. V prohlížeči vyberte nebo zadejte Kolik stojí odeslání velkého balíčku do Francie?.

  2. LlamaIndex odvozuje odpověď pomocí souboru PDF a streamuje odpověď.

    Snímek obrazovky chatovací aplikace v prohlížeči zobrazující vstup chatu a odpověď

    Odpověď pochází z Azure OpenAI s vlivem z dat PDF přijatých do úložiště vektorů LlamaIndex.

Vyčištění prostředků

Pokud chcete vyčistit prostředky, je potřeba řešit dvě věci:

  • Prostředky Azure můžete vyčistit pomocí Azure Developer CLI azd.
  • Vaše vývojářské prostředí; GitHub Codespaces nebo DevContainers přes Visual Studio Code.

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í vývojářských prostředí

Odstraněním prostředí GitHub Codespaces zajistíte, že získáte maximální počet bezplatných hodin za jádro, na které máte nárok pro svůj účet.

Důležitý

Další informace o oprávněních vašeho účtu na GitHubu najdete v části měsíční zahrnuté úložiště a základní hodiny GitHub Codespaces.

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

  2. Vyhledejte aktuálně spuštěné Codespaces pocházející z GitHubového úložiště Azure-Samples/llama-index-javascript.

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

  3. Otevřete kontextovou nabídku, ..., pro codespace a poté vyberte Odstranit.

Získání nápovědy

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

Pokud váš problém není vyřešen, zapište váš problém do sekce Issues v úložišti.

Další krok