Udostępnij za pośrednictwem


Wprowadzenie do bezserwerowego czatu sztucznej inteligencji z narzędziem RAG przy użyciu usługi LlamaIndex

Uprość tworzenie aplikacji sztucznej inteligencji za pomocą RAG przy użyciu własnych danych zarządzanych przez LlamaIndex, usługi Azure Functions i technologii bezserwerowych. Te narzędzia automatycznie zarządzają infrastrukturą i skalowaniem, co pozwala skupić się na funkcjach czatbotów. Funkcja LlamaIndex obsługuje potok danych przez cały czas od pozyskiwania do przesyłanej strumieniowo odpowiedzi.

Zrzut ekranu przedstawiający aplikację do czatu w przeglądarce z danymi wejściowymi czatu i odpowiedzią.

Omówienie architektury

Przepływ aplikacji obejmuje:

  • Użyj interfejsu czatu, aby wprowadzić polecenie.
  • Wysyłanie monitu użytkownika do bezserwerowego interfejsu API za pośrednictwem wywołań HTTP.
  • Otrzymanie monitu użytkownika, a następnie użycie struktury LlamaIndex do przetwarzania i przesyłania strumieniowego odpowiedzi. Bezserwerowy interfejs API używa silnika do nawiązywania połączenia z modelem językowym dużej skali Azure OpenAI (LLM) oraz indeksem wektorów z LlamaIndex.

Prosta architektura aplikacji do czatu jest pokazana na poniższym diagramie:

Diagram architektury aplikacji czatu RAG LlamaIndex.

W tym przykładzie użyto LlamaIndex do generowania osadzeń i przechowywania ich we własnym magazynie wektorów. LlamaIndex zapewnia również integrację z innymi magazynami wektorów, w tym Azure AI Search. Ta integracja nie jest pokazana w tym przykładzie.

Gdzie znajduje się platforma Azure w tej architekturze?

Architektura aplikacji opiera się na następujących usługach i składnikach:

  • azure OpenAI reprezentuje dostawcę sztucznej inteligencji, do którego wysyłamy zapytania użytkownika.
  • LlamaIndex to struktura, która pomaga nam pozyskiwać, przekształcać i wektoryzować naszą zawartość (plik PDF) i utworzyć indeks wyszukiwania na podstawie naszych danych.
  • azure Container Apps to środowisko kontenera, w którym jest hostowana aplikacja.
  • Zarządzana tożsamość platformy Azure pomaga nam zapewnić najlepsze w swojej klasie zabezpieczenia i eliminuje potrzebę, abyś Ty jako deweloper musiał radzić sobie z poświadczeniami i kluczami interfejsu API.

LlamaIndex zarządza danymi od momentu pozyskania do momentu pobrania

Aby zaimplementować system RAG (Retrieval-Augmented Generation) przy użyciu obiektu LlamaIndex, następujące kluczowe kroki są zgodne z funkcją LlamaIndex:

Proces Opis LlamaIndex
Pozyskiwanie danych Zaimportuj dane ze źródeł, takich jak pliki PDF, interfejsy API lub bazy danych. ProstyCzytnikKatalogów
Dokumenty podzielone na części Podziel duże dokumenty na mniejsze fragmenty. Dzielnik Zdań
Tworzenie indeksu wektorowego Utwórz indeks wektorów w celu efektywnego wyszukiwania podobieństwa. VectorStoreIndex
Pobieranie cykliczne (opcjonalne) z indeksu Zarządzanie złożonymi zestawami danych za pomocą pobierania hierarchicznego.
Konwertowanie na aparat zapytań Przekonwertuj indeks wektora na aparat zapytań. asQueryEngine
Zaawansowana konfiguracja zapytania (opcjonalnie) Użyj agentów w systemie z wieloma agentami.
Zaimplementuj potok RAG Zdefiniuj funkcję celu, która pobiera zapytania użytkownika i pobiera odpowiednie fragmenty dokumentu.
Wykonaj pobieranie Przetwarzaj zapytania i ponownie uporządkuj dokumenty. RetrieverQueryEngine, CohereRerank

Warunki wstępne

Środowisko kontenera deweloperskiego jest dostępne ze wszystkimi zależnościami wymaganymi do ukończenia tego artykułu. Kontener deweloperski można uruchomić w usłudze GitHub Codespaces (w przeglądarce) lub lokalnie przy użyciu programu Visual Studio Code.

Aby użyć tego artykułu, potrzebne są następujące wymagania wstępne:

Otwieranie środowiska projektowego

Skorzystaj z poniższych instrukcji, aby wdrożyć wstępnie skonfigurowane środowisko programistyczne zawierające wszystkie wymagane zależności, aby ukończyć ten artykuł.

  • GitHub Codespaces (zalecane)
  • programu Visual Studio Code

GitHub Codespaces uruchamia kontener deweloperski zarządzany przez GitHub z Visual Studio Code w wersji przeglądarkowej jako interfejsem użytkownika. W przypadku najprostszego środowiska programistycznego użyj usługi GitHub Codespaces, aby wstępnie zainstalować odpowiednie narzędzia deweloperskie i zależności, aby ukończyć ten artykuł.

Ważny

Wszystkie konta GitHub mogą korzystać z usługi Codespaces przez maksymalnie 60 darmowych godzin miesięcznie z 2 rdzeniami procesora. Aby uzyskać więcej informacji, zobacz zawarte co miesiąc miejsce do przechowywania oraz godziny rdzenia w Usługach GitHub Codespaces.

  1. Otwórz plik w przestrzeni kodu.

    Otwórz w usłudze GitHub Codespaces

  2. Poczekaj na uruchomienie środowiska programistycznego. Ten proces uruchamiania może potrwać kilka minut.

  3. W terminalu w dolnej części ekranu zaloguj się do platformy Azure przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure.

    azd auth login
    

    Ukończ proces uwierzytelniania.

  4. Pozostałe zadania w tym artykule mają miejsce w kontekście tego kontenera deweloperskiego.

Wdrażanie i uruchamianie

Przykładowe repozytorium zawiera wszystkie pliki kodu i konfiguracji potrzebne do wdrożenia bezserwerowej aplikacji czatu na platformie Azure. W poniższych krokach przedstawiono proces wdrażania przykładu na platformie Azure.

Wdrażanie aplikacji czatu na platformie Azure

Ważny

Zasoby platformy Azure utworzone w tej sekcji powodują natychmiastowe koszty, głównie z zasobu usługi Azure AI Search. Te zasoby mogą naliczać koszty nawet w przypadku przerwania działania polecenia przed jego pełnym wykonaniem.

  1. Aby aprowizować zasoby platformy Azure i wdrożyć kod źródłowy, uruchom następujące polecenie interfejsu wiersza polecenia dla deweloperów platformy Azure:

    azd up
    
  2. Użyj poniższej tabeli, aby odpowiedzieć na pytania.

    Wskazówka Odpowiedź
    Nazwa środowiska Utrzymuj krótką formę i pisz małymi literami. Dodaj swoją nazwę lub alias. Na przykład john-chat. Jest ona używana jako część nazwy grupy zasobów.
    Subskrypcja Wybierz subskrypcję, w której chcesz utworzyć zasoby.
    Lokalizacja (na potrzeby hostingu) Wybierz lokalizację w pobliżu z listy.
    Lokalizacja modelu OpenAI Wybierz lokalizację w pobliżu z listy. Jeśli ta sama lokalizacja jest dostępna jako pierwsza lokalizacja, wybierz tę lokalizację.
  3. Poczekaj na wdrożenie aplikacji. Ukończenie wdrożenia może potrwać od 5 do 10 minut.

  4. Po pomyślnym wdrożeniu aplikacji w terminalu zostaną wyświetlone dwa adresy URL.

  5. Wybierz ten adres URL oznaczony Deploying service webapp, aby otworzyć aplikację czatu w przeglądarce.

    Zrzut ekranu przedstawiający dane wyjściowe polecenia wdrożenia z adresem URL aplikacji internetowej.

Uzyskiwanie odpowiedzi z plików PDF przy użyciu aplikacji do czatu

Aplikacja do czatu jest wcześniej załadowana informacjami o normach fizycznych dotyczących krajowej poczty z pliku PDF oznaczonego jako katalog . Możesz użyć aplikacji do czatu, aby zadawać pytania dotyczące listu wysyłkowego i pakietów. Poniższe kroki przeprowadzą Cię przez proces korzystania z aplikacji do czatu.

  1. W przeglądarce wybierz lub wprowadź Ile kosztuje wysłanie dużego pakietu do Francji?.

  2. Funkcja LlamaIndex pobiera odpowiedź przy użyciu pliku PDF i przesyła strumieniowo odpowiedź.

    Zrzut ekranu przedstawiający aplikację do czatu w przeglądarce z danymi wejściowymi czatu i odpowiedzią.

    Odpowiedź pochodzi z usługi Azure OpenAI z wpływem danych z plików PDF umieszczonych w magazynie wektorów LlamaIndex.

Czyszczenie zasobów

Aby wyczyścić zasoby, należy rozwiązać dwa kwestie:

  • Zasoby Azure można wyczyścić za pomocą Azure Developer CLI, azd.
  • Środowisko deweloperskie: albo GitHub Codespaces, albo DevContainers za pośrednictwem Visual Studio Code.

Czyszczenie zasobów platformy Azure

Zasoby platformy Azure utworzone w tym artykule są rozliczane z subskrypcją platformy Azure. Jeśli nie spodziewasz się, że te zasoby będą potrzebne w przyszłości, usuń je, aby uniknąć naliczania dodatkowych opłat.

Uruchom następujące polecenie interfejsu wiersza polecenia dla deweloperów platformy Azure, aby usunąć zasoby platformy Azure i usunąć kod źródłowy:

azd down --purge

Czyszczenie środowisk deweloperskich

Usunięcie środowiska GitHub Codespaces pozwala na maksymalne wykorzystanie bezpłatnych godzin na rdzeń przysługujących dla twojego konta.

Ważny

Aby uzyskać więcej informacji na temat uprawnień swojego konta GitHub, zobacz wliczone magazynowanie i godziny rdzeni w GitHub Codespaces na miesiąc.

  1. Zaloguj się do pulpitu nawigacyjnego usługi GitHub Codespaces (https://github.com/codespaces).

  2. Znajdź aktualnie uruchomione usługi Codespaces pochodzące z repozytorium Azure-Samples/llama-index-javascript GitHub.

    zrzut ekranu obejmujący wszystkie działające środowiska Codespaces, w tym ich stan i szablony.

  3. Otwórz menu kontekstowe ...dla codespace, a następnie wybierz Usuń.

Uzyskiwanie pomocy

To przykładowe repozytorium oferuje informacje dotyczące rozwiązywania problemów.

Jeśli problem nie został rozwiązany, zgłoś swój problem do sekcji problemów repozytorium.

Następny krok