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ěď.
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:
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:
- Předplatné Azure – vytvořit 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ého přístupu 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 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.
Otevřete v codespace.
Počkejte, až se spustí prostředí pro kód. Tento proces spuštění může trvat několik minut.
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í.
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.
Pokud chcete zřídit prostředky Azure a nasadit zdrojový kód, spusťte následující příkaz Azure Developer CLI:
azd up
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. Počkejte, až se aplikace nasadí. Dokončení nasazení může trvat 5 až 10 minut.
Po úspěšném nasazení aplikace se v terminálu zobrazí dvě adresy URL.
Výběrem této adresy URL označené
Deploying service webapp
otevřete chatovací aplikaci v prohlížeči.
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.
V prohlížeči vyberte nebo zadejte Kolik stojí odeslání velkého balíčku do Francie?.
LlamaIndex odvozuje odpověď pomocí souboru PDF a streamuje 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.
Přihlaste se k řídicímu panelu Codespaces GitHubu (https://github.com/codespaces).
Vyhledejte aktuálně spuštěné Codespaces pocházející z GitHubového úložiště
Azure-Samples/llama-index-javascript
.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.