Udostępnij za pośrednictwem


Wprowadzenie do czatu przy użyciu własnego przykładu danych dla języka Python

W tym artykule pokazano, jak wdrożyć i uruchomić czat z własnymi danymi przykładowymi dla języka Python. Ten przykład implementuje aplikację czatu przy użyciu języka Python, usługi Azure OpenAI Service i pobierania rozszerzonej generacji (RAG) w usłudze Azure AI Search, aby uzyskać odpowiedzi na temat korzyści pracowników w fikcyjnej firmie. Aplikacja jest wypełniana plikami PDF, w tym podręcznikiem pracownika, dokumentem korzyści i listą ról i oczekiwań firmy.

Postępując zgodnie z instrukcjami w tym artykule, wykonasz następujące czynności:

  • Wdrażanie aplikacji czatu na platformie Azure.
  • Uzyskaj odpowiedzi na temat świadczeń pracowników.
  • Zmień ustawienia, aby zmienić zachowanie odpowiedzi.

Po wykonaniu tej procedury możesz rozpocząć modyfikowanie nowego projektu przy użyciu kodu niestandardowego.

Ten artykuł jest częścią kolekcji artykułów, które pokazują, jak utworzyć aplikację do czatu przy użyciu usługi Azure OpenAI Service i usługi Azure AI Search.

Inne artykuły w kolekcji obejmują:

Uwaga

W tym artykule użyto co najmniej jednego szablonu aplikacji sztucznej inteligencji jako podstawy przykładów i wskazówek w artykule. Szablony aplikacji sztucznej inteligencji zapewniają dobrze utrzymywane, łatwe w wdrażaniu implementacje referencyjne, które pomagają zapewnić wysokiej jakości punkt wyjścia dla aplikacji sztucznej inteligencji.

Omówienie architektury

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

Diagram przedstawiający architekturę z klienta do aplikacji zaplecza.

Kluczowe składniki architektury obejmują:

  • Aplikacja internetowa do hostowania interaktywnego środowiska czatu.
  • Zasób usługi Azure AI Search, aby uzyskać odpowiedzi na podstawie własnych danych.
  • Usługa Azure OpenAI w celu zapewnienia:
    • Słowa kluczowe w celu ulepszenia wyszukiwania na własnych danych.
    • Odpowiedzi z modelu OpenAI.
    • Osadzanie z modelu ada

Koszt

Większość zasobów w tej architekturze używa warstwy cenowej podstawowa lub zużycie. Ceny użycia są oparte na użyciu, co oznacza, że płacisz tylko za to, czego używasz. Aby ukończyć ten artykuł, zostanie naliczona opłata, ale będzie ona minimalna. Po zakończeniu pracy z artykułem możesz usunąć zasoby, aby zatrzymać naliczanie opłat.

Dowiedz się więcej o kosztach w repozytorium przykładowym.

Wymagania 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:

  • Subskrypcja platformy Azure — utwórz bezpłatnie
  • Uprawnienia konta platformy Azure — Twoje konto platformy Azure musi mieć uprawnienia Microsoft.Authorization/roleAssignments/write, takie jak administrator dostępu użytkowników lub właściciel.
  • Dostęp jest udzielany usłudze Azure OpenAI w żądanej subskrypcji platformy Azure. Obecnie dostęp do tej usługi jest udzielany tylko przez aplikację. Możesz ubiegać się o dostęp do usługi Azure OpenAI, wypełniając formularz pod adresem https://aka.ms/oai/access. Otwórz problem w tym repozytorium, aby skontaktować się z nami, jeśli masz problem.
  • Konto usługi GitHub

Otwieranie środowiska projektowego

Rozpocznij teraz od środowiska programistycznego, które ma zainstalowane wszystkie zależności, aby ukończyć ten artykuł.

Usługa GitHub Codespaces uruchamia kontener deweloperski zarządzany przez usługę GitHub za pomocą programu Visual Studio Code dla sieci Web jako interfejsu 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żne

Wszystkie konta usługi GitHub mogą korzystać z usługi Codespaces przez maksymalnie 60 godzin bezpłatnych każdego miesiąca z 2 podstawowymi wystąpieniami. Aby uzyskać więcej informacji, zobacz GitHub Codespaces monthly included storage and core hours (Miesięczne miejsca do magazynowania i godzin rdzeni usługi GitHub Codespaces).

  1. Rozpocznij proces tworzenia nowego repozytorium GitHub Codespace main w Azure-Samples/azure-search-openai-demo gałęzi repozytorium GitHub.

  2. Kliknij prawym przyciskiem myszy poniższy przycisk i wybierz pozycję Otwórz link w nowych oknach , aby jednocześnie udostępnić środowisko programistyczne i dokumentację.

    Otwieranie w usłudze GitHub Codespaces

  3. Na stronie Tworzenie przestrzeni kodu przejrzyj ustawienia konfiguracji przestrzeni kodu, a następnie wybierz pozycję Utwórz nową przestrzeń kodu

    Zrzut ekranu przedstawiający ekran potwierdzenia przed utworzeniem nowej przestrzeni kodu.

  4. Poczekaj na uruchomienie przestrzeni kodu. Ten proces uruchamiania może potrwać kilka minut.

  5. 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
    
  6. Skopiuj kod z terminalu, a następnie wklej go w przeglądarce. Postępuj zgodnie z instrukcjami, aby uwierzytelnić się przy użyciu konta platformy Azure.

  7. 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, które należy wdrożyć na platformie Azure. W poniższych krokach przedstawiono proces wdrażania przykładu na platformie Azure.

Wdrażanie aplikacji czatu na platformie Azure

Ważne

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. Uruchom następujące polecenie interfejsu wiersza polecenia dla deweloperów platformy Azure, aby aprowizować zasoby platformy Azure i wdrożyć kod źródłowy:

    azd up
    
  2. Jeśli zostanie wyświetlony monit o wprowadzenie nazwy środowiska, zachowaj krótką i małą literę. Na przykład myenv. Jest ona używana jako część nazwy grupy zasobów.

  3. Po wyświetleniu monitu wybierz subskrypcję, w ramach których chcesz utworzyć zasoby.

  4. Po wyświetleniu monitu o wybranie lokalizacji po raz pierwszy wybierz lokalizację w pobliżu. Ta lokalizacja jest używana dla większości zasobów, w tym hostingu.

  5. Jeśli zostanie wyświetlony monit o lokalizację modelu OpenAI lub zasobu analizy dokumentów, wybierz lokalizację znajdującą się najbliżej Ciebie. Jeśli ta sama lokalizacja jest dostępna jako pierwsza lokalizacja, wybierz tę lokalizację.

  6. Poczekaj 5 lub 10 minut po wdrożeniu aplikacji przed kontynuowaniem.

  7. Po pomyślnym wdrożeniu aplikacji w terminalu zostanie wyświetlony adres URL.

    Zrzut ekranu przedstawiający wdrożoną aplikację zgłoszoną na końcu procesu AZD CLI azd up.

  8. Wybierz ten adres URL oznaczony (✓) Done: Deploying service webapp etykietą, aby otworzyć aplikację czatu w przeglądarce.

    Zrzut ekranu przedstawiający aplikację czatu w przeglądarce z kilkoma sugestiami dotyczącymi wprowadzania danych wejściowych na czacie i polem tekstowym czatu w celu wprowadzenia pytania.

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

Aplikacja do czatu jest wstępnie ładowana z informacjami o korzyściach pracowników z plików PDF. Możesz użyć aplikacji do czatu, aby zadawać pytania dotyczące korzyści. Poniższe kroki przeprowadzą Cię przez proces korzystania z aplikacji do czatu. Odpowiedzi mogą się różnić w miarę aktualizowania podstawowych modeli.

  1. W przeglądarce wybierz lub wprowadź co się stanie w przeglądzie wydajności? w polu tekstowym czatu.

    Zrzut ekranu przedstawiający pierwszą odpowiedź aplikacji do czatu.

  2. W odpowiedzi wybierz cytat.

    Zrzut ekranu przedstawiający pierwszą odpowiedź aplikacji do czatu z wyróżnioną cytatem w czerwonym polu.

  3. W okienku po prawej stronie użyj kart, aby dowiedzieć się, jak została wygenerowana odpowiedź.

    Karta opis
    Proces myślowy Jest to skrypt interakcji w czacie. Możesz wyświetlić monit systemowy (content) i pytanie użytkownika (content).
    Zawartość pomocnicza Obejmuje to informacje, aby odpowiedzieć na twoje pytanie i materiał źródłowy. Liczba cytatów materiałów źródłowych jest zanotowana w ustawieniach dewelopera. Wartość domyślna to 3.
    Odsyłacz bibliograficzny Spowoduje to wyświetlenie oryginalnej strony zawierającej cytat.
  4. Po zakończeniu wybierz ponownie wybraną kartę, aby zamknąć okienko.

Zmienianie zachowania odpowiedzi przy użyciu ustawień aplikacji czatu

Analiza czatu jest określana przez model OpenAI i ustawienia używane do interakcji z modelem.

Zrzut ekranu przedstawiający ustawienia dewelopera czatu.

Ustawienie opis
Zastępowanie szablonu monitu Zastępuje monit użyty do wygenerowania odpowiedzi na podstawie pytania i wyników wyszukiwania.
Temperatura Ustawia temperaturę żądania na moduł LLM, który generuje odpowiedź. Wyższe temperatury powodują bardziej kreatywne reakcje, ale mogą być mniej uzmylone.
Nasienie Ustawia inicjator w celu zwiększenia powtarzalności odpowiedzi modelu. Inicjator może być dowolną liczbą całkowitą.
Minimalny wynik wyszukiwania Ustawia minimalny wynik wyników wyszukiwania pochodzących z wyszukiwania w usłudze Azure AI. Zakres wyników zależy od tego, czy używasz hybrydowego (domyślnego), tylko wektorów lub tylko tekstu.
Minimalny wynik reranker Ustawia minimalny wynik dla wyników wyszukiwania pochodzących z semantycznego modułu korekcyjnego. Wynik zawsze waha się od 0 do 4. Im wyższy wynik, tym bardziej semantycznie istotne jest pytanie.
Pobieranie tych wielu wyników wyszukiwania Ustawia liczbę wyników wyszukiwania do pobrania z wyszukiwania w usłudze Azure AI. Więcej wyników może zwiększyć prawdopodobieństwo znalezienia poprawnej odpowiedzi, ale może prowadzić do zagubienia modelu w środku. Te źródła są widoczne na karcie Proces myślowy i Zawartość pomocnicza cytatu.
Wyklucz kategorię Określa kategorię do wykluczenia z wyników wyszukiwania. W domyślnym zestawie danych nie są używane żadne kategorie.
Używanie semantycznego rangatora do pobierania Włącza semantyczną rangę usługi Azure AI Search — model, który ponownie klasyfikuje wyniki wyszukiwania w oparciu o semantyczną podobieństwo do zapytania użytkownika.
Korzystanie z transkrymów semantycznych Wysyła podpisy semantyczne do usługi LLM zamiast pełnego wyniku wyszukiwania. Semantyczny podpis jest wyodrębniany z wyniku wyszukiwania podczas procesu klasyfikacji semantycznej.
Sugerowanie pytań dotyczących kontynuacji Zadaje usłudze LLM sugestię pytań, które należy wykonać na podstawie zapytania użytkownika.
Tryb pobierania Ustawia tryb pobierania dla zapytania usługi Azure AI Search. Wektory + tekst (hybrydowy) używa kombinacji wyszukiwania wektorowego i wyszukiwania pełnotekstowego, wektory używają tylko wyszukiwania wektorowego , a tekst używa tylko wyszukiwania pełnotekstowego. Hybryda jest ogólnie optymalna.
Odpowiedzi na ukończenie czatu strumieniowego Stale przesyła strumieniowo odpowiedź do interfejsu użytkownika czatu podczas jego generowania.

Poniższe kroki przeprowadzą Cię przez proces zmieniania ustawień.

  1. W przeglądarce wybierz kartę Ustawienia dewelopera.

  2. Zaznacz pole wyboru Sugerowanie pytań kontrolnych i zadawaj to samo pytanie ponownie.

    What happens in a performance review?
    

    Rozmowa zwróciła sugerowane pytania, takie jak następujące:

    1. What is the frequency of performance reviews?
    2. How can employees prepare for a performance review?
    3. Can employees dispute the feedback received during the performance review?
    
  3. Na karcie Ustawienia usuń zaznaczenie pozycji Użyj semantycznego rangi do pobierania.

  4. Zadaj to samo pytanie ponownie?

    What happens in a performance review?
    
  5. Jaka jest różnica w odpowiedziach?

    Dzięki semantycznemu rangerowi: podczas przeglądu wydajności w firmie Contoso Electronics pracownicy będą mieli możliwość omówienia swoich sukcesów i wyzwań w miejscu pracy (1). Przegląd zapewni pozytywne i konstruktywne opinie, aby pomóc pracownikom w rozwoju i rozwoju swoich ról (1). Pracownik otrzyma pisemne podsumowanie przeglądu wydajności, które będzie zawierać ocenę swoich wyników, opinii i celów w nadchodzącym roku (1). Przegląd wydajności to dwukierunkowy dialog między menedżerami a pracownikami (1).

    Bez semantycznego rangera: podczas przeglądu wydajności w firmie Contoso Electronics pracownicy mają możliwość omówienia swoich sukcesów i wyzwań w miejscu pracy. Pozytywne i konstruktywne opinie są udostępniane w celu ułatwienia pracownikom rozwoju i rozwoju ich ról. Podano pisemne podsumowanie przeglądu wydajności, w tym ocenę wydajności, opinii i celów w nadchodzącym roku. Przegląd jest dwukierunkowym dialogiem między menedżerami a pracownikami (1).

Czyszczenie zasobów

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 --force

Przełączniki zapewniają:

  • purge: Usunięte zasoby są natychmiast czyszczone. Umożliwia to ponowne użycie modułu TPM usługi Azure OpenAI.
  • force: Usunięcie odbywa się w trybie dyskretnym bez konieczności wyrażania zgody użytkownika.

Czyszczenie usługi GitHub Codespaces

Usunięcie środowiska Usługi GitHub Codespaces gwarantuje, że możesz zmaksymalizować ilość bezpłatnych godzin na godziny korzystania z konta.

Ważne

Aby uzyskać więcej informacji na temat uprawnień konta usługi GitHub, zobacz Artykuł GitHub Codespaces monthly included storage and core hours (Miesięczne miejsca do magazynowania i godzin rdzeni w usłudze GitHub).

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

  2. Znajdź aktualnie uruchomione środowisko Codespaces pochodzące z Azure-Samples/azure-search-openai-demo repozytorium GitHub.

    Zrzut ekranu przedstawiający wszystkie uruchomione obszary Codespace, w tym ich stan i szablony.

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

    Zrzut ekranu przedstawiający menu kontekstowe dla pojedynczej przestrzeni kodu z wyróżnioną opcją usuwania.

Uzyskaj pomoc

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

Jeśli problem nie został rozwiązany, zarejestruj problem w repozytorium Problemy.

Następne kroki