Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Förenkla AI-apputvecklingen med RAG med hjälp av dina egna data som hanteras av LlamaIndex, Azure Functions och serverlösa tekniker. De här verktygen hanterar infrastruktur och skalning automatiskt, så att du kan fokusera på chattrobotfunktioner. LlamaIndex hanterar datapipelinen hela vägen från inmatning till det strömmade svaret.
              
               
              
              
            
Översikt över arkitektur
Programflödet innehåller:
- Använd chattgränssnittet för att ange en uppmaning.
- Skicka användarens uppmaning till det serverlösa API:et via HTTP-anrop.
- Ta emot användarens uppmaning och sedan använda LlamaIndex-ramverket för att bearbeta och strömma svaret. Det serverlösa API:et använder en motor för att skapa en anslutning till Azure OpenAI large language model (LLM) och vektorindexet från LlamaIndex.
En enkel arkitektur för chattappen visas i följande diagram:
              
               
              
              
            
Det här exemplet använder LlamaIndex för att generera inbäddningar och lagra i ett eget vektorlager. LlamaIndex tillhandahåller även integrering med andra vektordatalager inklusive Azure AI Search. Den integreringen visas inte i det här exemplet.
Var finns Azure i den här arkitekturen?
Programmets arkitektur förlitar sig på följande tjänster och komponenter:
- Azure OpenAI representerar DEN AI-provider som vi skickar användarens frågor till.
- LlamaIndex är det ramverk som hjälper oss att mata in, transformera och vektorisera vårt innehåll (PDF-fil) och skapa ett sökindex från våra data.
- Azure Container Apps är den containermiljö där programmet finns.
- Azure Managed Identity hjälper oss att säkerställa bästa möjliga klasssäkerhet och eliminerar kraven för dig som utvecklare att hantera autentiseringsuppgifter och API-nycklar.
LlamaIndex hanterar data från inmatning till hämtning
För att implementera ett RAG-system (Retrieval-Augmented Generation) med hjälp av LlamaIndex matchas följande viktiga steg med LlamaIndex-funktionerna:
| Processen | Beskrivning | LlamaIndex | 
|---|---|---|
| Datainmatning | Importera data från källor som PDF-filer, API:er eller databaser. | Enkel Katalogläsare | 
| Segmentdokument | Dela upp stora dokument i mindre segment. | SentenceSplitter | 
| Skapa vektorindex | Skapa ett vektorindex för effektiva likhetssökningar. | VectorStoreIndex | 
| Rekursiv hämtning (valfritt) från index | Hantera komplexa datauppsättningar med hierarkisk hämtning. | |
| Konvertera till frågemotor | Konvertera vektorindexet till en frågemotor. | asQueryEngine | 
| Avancerad frågekonfiguration (valfritt) | Använd agenter för ett system med flera agenter. | |
| Implementera RAG-pipelinen | Definiera en objektiv funktion som tar användarfrågor och hämtar relevanta dokumentsegment. | |
| Göra hämtning | Bearbeta frågor och ändra rangordning av dokument. | RetrieverQueryEngine, CohereRerank | 
Förutsättningar
En utvecklingscontainermiljö är tillgänglig med alla beroenden som krävs för att slutföra den här artikeln. Du kan köra utvecklingscontainern i GitHub Codespaces (i en webbläsare) eller lokalt med hjälp av Visual Studio Code.
Om du vill använda den här artikeln behöver du följande krav:
- En Azure-prenumeration – Skapa en kostnadsfritt
- Azure-kontobehörigheter – Ditt Azure-konto måste ha Microsoft.Authorization/roleAssignments/write-behörigheter, till exempel administratör för användaråtkomst eller ägare.
- Ett GitHub-konto.
Öppna utvecklingsmiljön
Använd följande instruktioner för att distribuera en förkonfigurerad utvecklingsmiljö som innehåller alla nödvändiga beroenden för att slutföra den här artikeln.
GitHub Codespaces kör en utvecklingscontainer som hanteras av GitHub med Visual Studio Code för webben som användargränssnitt. För den enklaste utvecklingsmiljön använder du GitHub Codespaces så att du har rätt utvecklarverktyg och beroenden förinstallerade för att slutföra den här artikeln.
Viktig
Alla GitHub-konton kan använda Codespaces i upp till 60 timmar kostnadsfritt varje månad med två kärninstanser. För mer information, se GitHub Codespaces ingår månadsvis lagring och kärntimmar.
- Öppna i kodområdet. 
- Vänta på att kodområdet startar. Den här startprocessen kan ta några minuter. 
- Logga in på Azure med Azure Developer CLI i terminalen längst ned på skärmen. - azd auth login- Slutför autentiseringsprocessen. 
De återstående uppgifterna i den här artikeln sker i samband med den här utvecklingscontainern.
Distribuera och kör
Exempellagringsplatsen innehåller alla kod- och konfigurationsfiler som du behöver för att distribuera den serverlösa chattappen till Azure. Följande steg beskriver hur du distribuerar exemplet till Azure.
Distribuera chattapp till Azure
Viktig
Azure-resurser som skapas i det här avsnittet medför omedelbara kostnader, främst från Azure AI Search-resursen. Dessa resurser kan medföra kostnader även om du avbryter kommandot innan det är klart.
- Om du vill etablera Azure-resurserna och distribuera källkoden kör du följande Azure Developer CLI-kommando: - azd up
- Använd följande tabell för att besvara anvisningarna: - Snabb - Svar - Miljönamn - Håll det kort och med små bokstäver. Lägg till ditt namn eller alias. Till exempel - john-chat. Den används som en del av resursgruppens namn.- Abonnemang - Välj den prenumeration som resurserna ska skapas i. - Plats (för värd) - Välj en plats nära dig i listan. - Plats för OpenAI-modellen - Välj en plats nära dig i listan. Om samma plats är tillgänglig som din första plats väljer du det. 
- Vänta tills appen har distribuerats. Det kan ta 5–10 minuter för distributionen att slutföras. 
- När programmet har distribuerats visas två URL:er i terminalen. 
- Välj den URL som är märkt - Deploying service webappför att öppna chattprogrammet i en webbläsare.  
Använda chattappen för att få svar från PDF-filer
Chattappen är förinstallerad med information om de fysiska standarderna för inrikes post från en PDF-filkatalog. Du kan använda chattappen för att ställa frågor om e-postmeddelandet och paketen. Följande steg beskriver hur du använder chattappen.
- I webbläsaren väljer eller anger du Hur mycket kostar det att skicka ett stort paket till Frankrike?. 
- LlamaIndex härleder svaret använder PDF-filen och strömmar svaret.   - Svaret kommer från Azure OpenAI med påverkan från PDF-data som matas in i LlamaIndex-vektorlagret. 
Rensa resurser
För att rensa resurser finns det två saker att åtgärda:
- Azure-resurser, du kan rensa resurserna med Azure Developer CLI, azd.
- Din utvecklarmiljö; antingen GitHub Codespaces eller DevContainers via Visual Studio Code.
Rensa Azure-resurser
De Azure-resurser som skapas i den här artikeln faktureras till din Azure-prenumeration. Om du inte förväntar dig att behöva dessa resurser i framtiden tar du bort dem för att undvika att debiteras mer.
Kör följande Azure Developer CLI-kommando för att ta bort Azure-resurserna och ta bort källkoden:
azd down --purge
Rensa utvecklarmiljöer
Genom att ta bort GitHub Codespaces-miljön kan du maximera det antal kostnadsfria timmar per kärna som ditt konto ger rätt till.
Viktig
För mer information om ditt GitHub-kontos förmåner, se GitHub Codespaces, inkluderad lagring och kärntimmar per månad,.
- Logga in på GitHub Codespaces-kontrollpanelen. 
- Leta upp dina codespaces som körs från - Azure-Samples/llama-index-javascriptGitHub-lagringsplats.  
- Öppna snabbmenyn - ...för kodområdet och välj sedan Ta bort.
Få hjälp
Den här exempellagringsplatsen erbjuder felsökningsinformation.
Om ditt problem inte åtgärdas, rapportera ditt problem till repositoryns Issues.
