Ulepsz wyszukiwanie w witrynie: odpowiedzi kontekstowe z wykorzystaniem generatywnej AI

Generatywna AI odnosi się do wykorzystywania sztucznej inteligencji do tworzenia nowych treści, takich jak tekst, obrazy, muzyka, dźwięki i filmy. Generatywna AI wykorzystuje model systemów uczących się do uczenia się wzorców i relacji w zbiorze danych treści stworzonych przez człowieka.

Technologia ta pokazuje niesamowite możliwości dzięki aplikacjom takim jak Gemini. Być może zastanawiasz się, jak wdrożyć narzędzia generatywnej AI w swoich usługach internetowych.

Jednym z typowych przypadków użycia jest zapewnienie użytkownikom lepszego interfejsu do zadawania pytań na temat treści witryny. Możesz znacznie poprawić wyniki wyszukiwania dzięki systemom uczącym się.

Możesz utworzyć interfejs, w którym użytkownicy wpisują swoje pytania, które następnie są wysyłane do dużego modelu językowego (LLM), takiego jak Gemini, a następnie wyświetlają odpowiedzi użytkownikom.

Załóżmy, że w witrynie istnieją takie funkcje. Użytkownik chce się dowiedzieć, które interfejsy API są uwzględniane w interoperacyjności interoperacyjności z 2024 r., i wprowadza to zapytanie:

What are the features included in Interop 24?

Dane wyjściowe prawdopodobnie będą nieprawidłowe z kilku powodów:

  • Użytkownik podał LLM mały kontekst dla pytania, dlatego jest bardziej podatny na zwrócenie nieprawidłowych odpowiedzi lub błędów.
  • LLM prawdopodobnie został wytrenowany przed utworzeniem interoperacyjności 2024 lub decyzji o jego funkcjach, więc nie wie o tych informacjach.

Chociaż modele LLM mogą znaleźć bardziej aktualne informacje, zbiory danych do trenowania LLM są z natury nieaktualne. Uzyskiwanie aktualnych wyników może być bardzo czasochłonne i kosztowne.

Wykorzystaj tworzenie promptów

Inżynieria promptów to zbiór technik mających na celu uzyskanie jak najlepszych wyników z LLM.

Jedną z metod jest podanie w prompcie dodatkowego kontekstu, przez co LLM z większym prawdopodobieństwem wygeneruje treści powiązane z kontekstem.

Wracając do naszego przykładu z narzędziami interoperacyjnymi, naszym pierwszym krokiem jest udostępnienie pełnej treści artykułu jako kontekstu. Następnie dodaj pytanie jako dane wejściowe, na które ma odpowiedzieć model LLM. Na przykład:

Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)

Input:
What are the features included in Interop 2024?

Możesz oczekiwać, że Gemini wyświetli wynik podobny do tego:

The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL

Ta odpowiedź jest prawdopodobnie znacznie lepsza niż prośba bez kontekstu, ponieważ odpowiedź zależy od podanego kontekstu.

Skalowanie w górę dzięki RAG

Na przykład zamiast odpowiadać na pytanie o pojedynczy artykuł, chcemy, aby LLM odpowiadał na więcej pytań dotyczących web.dev, a każdy artykuł stanowi dodatkowy kontekst. Chociaż może to być możliwe w przypadku mniejszych witryn, ze względu na okno kontekstowe Gemini 1.5 z 1 milionem tokenów, uruchamianie większych promptów jest wolniejsze i droższe.

Długości danych wejściowych i wyjściowych LLM są mierzone i naliczane w tokenach, które pozwalają odzwierciedlić wspólną sekwencję znaków występujących w danych wejściowych tekstowych. Liczba tokenów będzie zazwyczaj większa od liczby słów. Na przykład dane wejściowe w pierwszym przykładzie zawierały 775 słów, a więc 1097 tokenów. Różne modele LLM mogą inaczej obliczać tokeny, a większość z nich udostępnia interfejs API lub punkt końcowy do obliczania liczby tokenów na potrzeby wprowadzania tekstu.

Jednym z rozwiązań jest dostarczanie artykułów związanych z promptami LLM. Zadanie powinno się składać z 2 części:

  1. Podczas tworzenia LLM dodaj treść najlepszych artykułów jako kontekst.
  2. Wyszukaj artykuły na temat „Jakie funkcje są dostępne w Interop w 2024 roku?”.

Chcemy, aby wyniki z Gemini zawierały treści zgodne z tymi artykułami:

Dane wejściowe powinny wyglądać tak:

Context:
Article 1:
Over the past two years... (trimmed)

Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)

Article 3:
Following on from the success of Interop 2022... (trimmed)

Input:
What are the features included in Interop 2024?

Ten kontekst daje oczekiwane dane wyjściowe.

* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL

W przypadku osób zaznajomionych z technikami AI rozwiązanie to wykorzystuje RAG, czyli powszechną metodę, która pozwala zwiększyć prawdopodobieństwo uzyskania prawdziwych odpowiedzi z narzędzi generatywnej AI.

Mimo że metoda RAG sprawdza się w przypadku zwykłego wyszukiwania całego tekstu, metoda ta ma pewne ograniczenia.

  • Wyszukiwanie całego tekstu pomaga AI znaleźć dokładne dopasowania słów kluczowych. LLM nie są jednak w stanie określić zamierzonego znaczenia zapytań użytkownika. W rezultacie dane wyjściowe mogą być niekompletne lub nieprawidłowe.
  • Problemy mogą się pojawić, gdy słowa mają wiele znaczeń lub zapytania zawierają synonimy. Na przykład zapytanie „bank” (instytucja finansowa a bank rzeczny) może prowadzić do niepowiązanych wyników.
  • Przeszukiwanie całego tekstu może zwrócić wyniki, które zawierają słowa kluczowe, ale nie są zgodne z celem użytkownika.

Wyszukiwanie semantyczne to technika zwiększania dokładności wyszukiwania, która skupia się na tych kluczowych aspektach:

  • Intencja użytkownika: stara się zrozumieć, dlaczego użytkownik czegoś szuka. Co chcą znaleźć lub osiągnąć?
  • Znaczenie kontekstowe: interpretuje słowa i wyrażenia w odniesieniu do otaczającego je tekstu, a także z innych czynników, takich jak lokalizacja użytkownika czy historia wyszukiwania.
  • Związek między pojęciami: wyszukiwanie semantyczne korzysta z grafów wiedzy (dużych sieci powiązanych elementów) i przetwarzania języka naturalnego, aby zrozumieć, w jaki sposób łączą się słowa i pojęcia.

W efekcie podczas tworzenia narzędzi za pomocą wyszukiwania semantycznego wyniki wyszukiwania zależą od ogólnego przeznaczenia zapytania, a nie od słów kluczowych. Oznacza to, że narzędzie może ustalić odpowiednie dokumenty, nawet jeśli nie podano słowa kluczowego. Może też unikać wyników, w których dane słowo występuje, ale ma inne znaczenie.

Obecnie możesz wdrożyć 2 narzędzia wyszukiwania, które wykorzystują wyszukiwanie semantyczne: Vertex AI Search i Algolia AI Search.

Rysowanie odpowiedzi na podstawie opublikowanych treści

Wiesz już, jak korzystać z inżynierii promptów, aby umożliwić LLM uzyskiwanie odpowiedzi dotyczących treści, których nigdy nie widać, przez dodanie kontekstu do promptu. Wiesz już też, jak skalować to podejście od pojedynczych artykułów do całego korpusu treści przy użyciu metody RAG (Retrieval-Augmented Generation – RAG). Wiesz już, jak wyszukiwanie semantyczne może jeszcze bardziej poprawić wyniki zapytań użytkowników przez lepsze wdrożenie RAG w Twojej usłudze.

Narzędzia generatywnej AI mogą „halucynakować”, co sprawia, że są najbardziej, czasami zawodne, a w najgorszym przypadku, mogą być szkodliwe dla firmy. Dzięki tym technikom zarówno użytkownicy, jak i deweloperzy mogą zwiększyć niezawodność i wzmocnić zaufanie do wyników uzyskiwanych przez te aplikacje.