Tworzenie wyszukiwania treści AI za pomocą agenta Dokumentów

Wyszukiwanie informacji to jedno z najczęstszych zastosowań sztucznej inteligencji i modele generatywne AI. Tworzenie konwersacyjnego interfejsu wyszukiwania treści za pomocą AI pozwala użytkownikom zadawać konkretne pytania bezpośrednich odpowiedzi.

Z tego samouczka dowiesz się, jak utworzyć oparte na AI wyszukiwanie konwersacyjne dla swoich treści. Jest oparta na danych Agent Dokumentów, projektu open source korzystającego z interfejsu Google Gemini API do tworzenia rozmów interfejsu wyszukiwania bez trenowania nowego modelu AI czy dostrajania modeli Gemini. Oznacza to, że można szybko utworzyć tę funkcję w przypadku małych i dużych zbiorów treści.

Filmowe omówienie projektu i sposobów jego rozszerzenia, w tym statystyki od osób, które go stworzyły, zobacz: Wyszukiwanie treści oparte na AI | Tworzenie z użyciem AI od Google. W przeciwnym razie możesz rozpocząć przedłużanie projektu, postępując zgodnie z instrukcjami. poniżej.

Omówienie

Projekt agenta Dokumentów udostępnia konwersacyjny interfejs wyszukiwania dla określonej treści z wykorzystaniem interfejsu API Gemini od Google i modeli generatywnych. Użytkownicy mogą zadaj szczegółowe pytanie w stylu konwersacyjnym i uzyskaj szczegółową odpowiedź na podstawie konkretnego zestawu treści. Za kulisami agent Dokumentów pobiera i przeszukuje wektorową bazę danych treści, po czym tworzy szczegółowy prompt dla modelu generatywnego, w tym fragmenty odpowiedniego tekstu. Model generatywny generuje odpowiedź na pytanie i agent Dokumentów formatuje odpowiedź i wyświetla ją użytkownikowi.

Diagram funkcjonalny agenta Dokumentów Rysunek 1. Diagram funkcjonalny aplikacji projektu agenta Dokumentów.

Aby agent Dokumentów mógł odpowiadać na pytania dotyczące treści, przez utworzenie wektorowej bazy danych tej treści. Dzielisz treści na tworzy logiczne fragmenty tekstu i generuje dla każdego z nich wektor. Te wektory są liczbowych reprezentacji informacji w każdym fragmencie i są generowane przez funkcję umieszczenia tekstu AI z modeli generatywnych Google.

Gdy użytkownik zadaje pytanie, agent Dokumentów używa osadzonego tekstu w taki sam sposób do utworzenia liczbowej reprezentacji pytania i wykorzystuje tę funkcję do przeszukiwania bazy danych wektorowych i znajdowania pokrewnych treści. Zajmuje szczyt i dodaje te informacje do promptu dla modelu generatywnego. AI model analizuje pytanie i dodatkowe informacje kontekstowe, a następnie generuje .

Konfigurowanie projektu

Te instrukcje przeprowadzą Cię przez proces konfigurowania projektu agenta Dokumentów programowania i testowania. Ogólne czynności wymagają instalacji pewnych wymagań wstępnych w oprogramowaniu, ustawić kilka zmiennych środowiskowych i skopiować projekt z kodu i uruchomić instalację konfiguracji. Projekt kodu wykorzystuje Python Poetry – do zarządzania pakietami oraz w środowisku wykonawczym Pythona.

Zainstaluj wymagania wstępne

Projekt agenta Dokumentów Google używa języków Python 3 i Python Poetry do zarządzania pakietami oraz uruchomić aplikację. Poniższe instrukcje instalacji dotyczą systemu Linux na komputerze.

Aby zainstalować wymagane oprogramowanie:

  1. Zainstaluj Pythona 3 i pakiet środowiska wirtualnego venv dla Pythona.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. Zainstaluj Python Poetry, aby zarządzać zależnościami i pakietem w projekcie.
    curl -sSL https://install.python-poetry.org | python3 -
    

Za pomocą Pythona Poetry możesz dodać więcej bibliotek Pythona, jeśli rozszerzysz w projektach AI.

Ustawianie zmiennych środowiskowych

Ustaw kilka zmiennych środowiskowych, które są wymagane do zezwolenia na kod agenta Dokumentów. projekt, w tym klucz Google Gemini API i Pythona Ustawienie „Poezja”. Możesz dodać te zmienne do pliku $HOME/.bashrc (jeśli używasz Linuksa, żeby ustawić je jako domyślne dla terminala) sesji.

Aby ustawić zmienne środowiskowe:

  1. Pobierz klucz interfejsu API Gemini od Google i skopiuj ciąg klucza.
  2. Ustaw klucz interfejsu API jako zmienną środowiskową. Na hostach z systemem Linux użyj polecenia to polecenie.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Rozwiąż znany problem problem dla poezji w języku Python, ustawiając parametr PYTHON_KEYRING_BACKEND. Na hostach z systemem Linux użyj poniższego polecenia.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

Klonowanie i konfigurowanie projektu

Pobierz kod projektu i użyj polecenia instalacyjnego Poetry, aby go pobrać określić wymagane zależności i skonfigurować projekt. Potrzebujesz git za pomocą oprogramowania sterującego źródła, kodu źródłowego projektu. z zewnątrz Aby pobrać i skonfigurować kod projektu:

  1. Sklonuj repozytorium git za pomocą tego polecenia.
    git clone https://github.com/google/generative-ai-docs
    
  2. Opcjonalnie możesz skonfigurować lokalne repozytorium Git tak, aby używało rozproszonego procesu płatności, więc masz tylko pliki związane z projektem agenta Dokumentów.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. Przejdź do katalogu głównego projektu docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Uruchom polecenie instalacji Poetry, aby pobrać zależności i skonfigurować projekt:
    poetry install
    

Przygotowanie treści

Projekt agenta Dokumentów Google jest przeznaczony do pracy z treścią tekstową i obejmuje narzędzi przeznaczonych specjalnie do pracy z witrynami, które korzystają z formatu Markdown. Jeśli pracujesz z treścią witryny, zachowaj (lub powielaj) tag strukturę katalogu witryny, aby umożliwić przetwarzanie treści do mapowania i tworzenia linków do tych treści.

W zależności od formatu i szczegółów treści może być konieczne wyczyszczenie treści umożliwiające usunięcie informacji niepublicznych, notatek wewnętrznych lub innych informacji które nie mają być dostępne dla wyszukiwarki. Należy zachować podstawowe formatowanie, takie jak jako tytuły i nagłówki ułatwiające logiczne podziały (fragmenty) tekstu, przetwarzania treści.

Aby przygotować treści do przetworzenia:

  1. Utwórz katalog z treścią, którą agent AI ma przeszukiwać.
    mkdir docs-agent/content/
    
  2. Skopiuj treści do katalogu docs-agent/content/. Jeśli to witryna, zachowaj (lub powielaj) strukturę katalogów wyświetlanej witryny.
  3. oczyścić lub edytować treści, aby usunąć informacje niepubliczne; inne informacje, które mają nie być uwzględniane w wynikach wyszukiwania.

Używanie dokumentacji Flutter do testowania

Jeśli do testowania agenta Dokumentów potrzebujesz zestawu treści, możesz użyć narzędzia Flutter z dokumentami dla deweloperów.

Aby pobrać dokumentację dla deweloperów Flutter:

  1. Przejdź do katalogu treści, do którego ma dostęp agent AI .
    cd docs-agent/content/
    
  2. Skopiuj dokumenty Flutter do katalogu docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

Przetwarzanie treści

Aby agent wyszukiwarki mógł skutecznie wyszukiwać treści powiązane z użytkowników musisz zbudować bazę danych wektorów reprezentujących treści. Wektory są generowane za pomocą funkcji modelu generatywnego AI o nazwie umieszczenia tekstu. Wektory dystrybucyjne tekstu to liczbowe reprezentacje tekstu treści. Określają one w przybliżeniu znaczenie semantyczne tekstu jako zbiór liczby. Przedstawianie informacji w formie liczbowej umożliwia systemowi pytanie użytkownika, przybliżone znaczenie za pomocą takiego samego osadzenia tekstu a potem znaleźć powiązane informacje w postaci obliczeń matematycznych, używając k-najbliżsi sąsiedzi (k-NN).

Podziel tekst

Ilość tekstu, którą może skutecznie reprezentować wektor dystrybucyjny tekstu, wynosi z ograniczeniami. Ten projekt ogranicza tekst w wektorze do 3000 znaków co oznacza, że trzeba podzielić treści na części, limit znaków. Ta sekcja opisuje, jak korzystać ze skryptu dostarczonego wraz z Projekt agenta Dokumentów umożliwiający podział plików Markdown na mniejsze fragmenty tekstu. Wskazówki dotyczące: z innymi formatami treści, zobacz Obsługa innych formatów.

Aby podzielić treści w formacie Markdown:

  1. Skonfiguruj parametry wejściowe skryptu przetwarzania, edytując docs-agent/config.yaml. Ten przykład jest kierowany na podzbiór dokumentów Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. Zapisz zmiany w tym pliku konfiguracji.
  3. Przejdź do katalogu projektu docs-agent:
    cd docs-agent/
    
  4. Podziel treści źródłowe w formacie Markdown, uruchamiając polecenie agent chunk:
    agent chunk
    

Skrypt przetwarza treść wejściową i tworzy wyjściowe pliki tekstowe w docs-agent/data, w którym tekst jest dzielony według tytułów, nagłówków i powiązane akapity. Przetwarzanie może zająć trochę czasu w zależności od rozmiaru treści.

Tworzenie wektorów dystrybucyjnych tekstu

Po podzieleniu treści na odpowiednie rozmiary i wartościowe fragmenty może wypełnić wektorową bazę danych Twoją treścią za pomocą wektora dystrybucyjnego . Projekt agenta Dokumentów korzysta z technologii Chroma. do przechowywania wektorów dystrybucyjnych tekstu. Z tych instrukcji dowiesz się, aby użyć skryptu Agenty Dokumentów do wypełnienia wektorowej bazy danych treści.

Aby generować wektory dystrybucyjne tekstu i wypełniać bazę danych wektorowych:

  1. Przejdź do katalogu projektu docs-agent:
    cd docs-agent/
    
  2. Wypełnij bazę wektorową swoją treścią za pomocą funkcji agent populate polecenie:
    agent populate
    

Ten skrypt wykorzystuje interfejs Google Gemini API do wygenerowania umieszczanie tekstu a następnie zapisuje dane wyjściowe w bazie danych wektorowych. Przetwarzanie może potrwać w zależności od rozmiaru Twoich treści.

Obsługa innych formatów

Projekt agenta Dokumentów Google jest zaprojektowany do pracy z treścią witryn w Markdown. . Autorzy projektu przygotowali kilka skryptów konwertera, inne typy treści w formacie Markdown, w tym Dokumenty Google, Format dokumentu (PDF) i Gmail. Więcej informacji o korzystaniu z tych opcji użytkowników, zapoznaj się z docs-agent/apps_script w repozytorium kodu.

Konwertowanie innych formatów treści

W projekcie możesz używać innych formatów treści, ale dodatkowe metody muszą być stworzone przez Ciebie lub innych członków społeczności. Sprawdzanie repozytorium kodu Problemy oraz Pobieranie żądań dla osób tworzących podobne rozwiązania.

Klucz do obsługi innych formatów treści, który musisz utworzyć, to separator skrypt taki jak files_to_plain_text.py skrypt. Postaraj się stworzyć skrypt lub program, który będzie generować podobne dane wyjściowe. skrypt. Pamiętaj, że końcowe dane wyjściowe powinny mieć minimalne formatowanie, zbędnymi informacjami. Jeśli używasz formatów treści, takich jak HTML lub JSON, usuń jak najwięcej treści nieinformacyjnych (tagów, skrypt, CSS) tak, by nie zniekształcać wartości tekstu. wektorów dystrybucyjnych generowanych z nich.

Po stworzeniu skryptu rozdzielającego dla formatu treści będziesz mieć możliwość: uruchom populate_vector_database.py do zapełnienia wektorowej bazy danych. Więcej informacji na temat przetwarzania plików do użycia z agentem Dokumentów, zobacz informacje o kliencie Dokumentów Wstępne przetwarzanie pliku Readme.

Testowanie aplikacji

Po zakończeniu zapełniania wektorowej bazy danych projekt będzie gotowy do testów. Projekt udostępnia funkcję tworzenia pakietu, która umożliwia uruchomienie do lokalnego projektu.

Aby uruchomić i przetestować interfejs internetowy projektu:

  1. Przejdź do katalogu projektu docs-agent:
    cd docs-agent/
    
  2. Uruchom skrypt uruchamiania aplikacji internetowej:
    agent chatbot
    
  3. W przeglądarce przejdź do adresu URL widocznego w na wyjściu skryptu uruchamiania i przetestowania aplikacji.
    * Running on http://your-hostname-here:5000
    

Opcje implementacji

Gemini API udostępnia narzędzia programistyczne, które mogą zastąpić komponenty o implementacji agenta Dokumentów, w szczególności o funkcji „semantic Retrieval” (pobieranie danych semantycznych i przypisane) Wariant modelu Gemini z odpowiedzią na pytania (AQA). Interfejsu Gemini API możesz używać Wyszukiwanie semantyczne aby zastąpić oddzielną wektorową bazę danych. Funkcja wyszukiwania semantycznego umożliwia generowanie reprezentacji właściwościowych treści i przechowywanie ich. AQA model Gemini jest dostrojony odpowiadanie na pytania przy użyciu materiałów źródłowych w prompcie. Korzystasz z semantyki Pobieranie razem z modelem AQA w celu odpowiadaj na pytania o treściach w interfejsie Gemini API.

Agent Dokumentów zawiera opcje konfiguracji umożliwiające korzystanie z semantyki funkcję Retrieval API, ten model AQA Gemini lub oba. Więcej informacji: Plik odczytu agenta Dokumentów.

Dodatkowe materiały

Więcej informacji o projekcie agenta Dokumentów znajdziesz w artykule repozytorium kodu. Jeśli potrzebujesz pomocy przy tworzeniu aplikacji lub szukasz programisty współpracowników, zapoznaj się z Społeczność Google Developers na Discordzie serwera.

Aplikacje produkcyjne

Jeśli planujesz wdrożyć agenta Dokumentów dla dużej grupy odbiorców, pamiętaj, że wykorzystanie interfejs Google Gemini API może podlegać ograniczeniom liczby żądań, ograniczeniach korzystania. Jeśli rozważasz utworzenie aplikacji produkcyjnej z użyciem interfejsu Gemini API, takiej jak Agent Dokumentów, zapoznaj się Vertex AI Google Cloud usług zwiększających skalowalność i niezawodność aplikacji.