Udostępnij przez


Omówienie wyszukiwania zawartości aplikacji

Funkcja wyszukiwania zawartości aplikacji włączona przez interfejsy API sztucznej inteligencji systemu Windows umożliwia deweloperom aplikacji integrowanie inteligentnych funkcji wyszukiwania z aplikacjami systemu Windows przy użyciu interfejsu API AppContentIndexer . Indeksując zawartość w aplikacji i umożliwiając wyszukiwanie za pośrednictwem zapytań semantycznych, użytkownicy mogą pobierać wyniki nie tylko na podstawie dokładnych słów kluczowych, ale także semantycznego znaczenia. Możesz użyć tego semantycznego indeksu, aby wzbogacić swoich asystentów AI o wiedzę specyficzną dla domeny, tworząc bardziej spersonalizowane i kontekstowo specyficzne doświadczenia.

Użyj tego API, aby:

  • Twórz środowiska wyszukiwania w aplikacji, które używają wyszukiwania semantycznego i leksyktycznego. Użytkownicy mogą wyszukiwać według znaczenia, oprócz dokładnych dopasowań słów kluczowych, co ułatwia znajdowanie odpowiednich informacji.

  • Obsługa Retrieval-Augmented Generowanie (RAG) przez włączenie lokalnego pobierania wiedzy. Po połączeniu z dużym modelem językowym (LLM) pozwala to pobrać najbardziej odpowiednią zawartość z bazy wiedzy aplikacji i wygenerować dokładniejsze odpowiedzi obsługujące kontekst.

Interfejs API ApplicationContentIndexer jest obecnie dostępny tylko w Windows App SDK w wersji 2.0 Experimental 2.

Aplikacja AI Dev Gallery oferuje interaktywny przykład interfejsu API AppContentIndexer, który umożliwia eksperymentowanie z funkcją wyszukiwania zawartości aplikacji. Dowiedz się więcej o galerii deweloperów sztucznej inteligencji, w tym o sposobie instalacji ze sklepu Microsoft Store lub z kodu źródłowego w usłudze GitHub.

Co to jest interfejs API AppContentIndexer?

Interfejs API AppContentIndexer umożliwia aplikacjom wyszukiwanie tekstu i zawartości obrazu przy użyciu zarówno wyszukiwania słów kluczowych (leksykalnych), jak i opartego na znaczeniu (semantycznego) — bez konieczności zrozumienia podstawowej złożoności przez deweloperów.

W tle używa zaawansowanych technik, takich jak osadzanie wektorów, baz danych wektorów i tradycyjne indeksowanie tekstu, ale te szczegóły są w pełni abstrakcyjne. Deweloperzy wchodzą w interakcję z prostym, wysokopoziomowym API. Gdy zawartość jest indeksowana, system przechowuje wektory osadzania (które przechwytują znaczenie semantyczne) wraz z identyfikatorami zawartości. Następnie żądania wyszukiwania zwracają identyfikatory na podstawie dopasowań słów kluczowych lub podobieństwa semantycznego. Na przykład wyszukiwanie "kotka" może zwracać powiązany tekst na temat kotów lub obrazów kociąt. Wyszukiwania semantyczne działają najlepiej z frazami opisowymi, więc zapytanie takie jak "koty siedzące na parapetach" jest bardziej prawdopodobne, aby wygenerować wysoce istotne wyniki.

Indeks jest utrwalany na dysku, więc ponowne indeksowanie nie jest wymagane w przypadku każdego uruchomienia aplikacji.

Wewnętrznie usługa ApplicationContentIndexer używa kombinacji tradycyjnego indeksowania tekstu i nowoczesnego wyszukiwania opartego na wektorach obsługiwanych przez osadzanie. Te szczegóły są abstrahowane — deweloperzy nie muszą bezpośrednio zarządzać modelami osadzania, magazynem wektorowym ani infrastrukturą pobierania.

Można przeszukiwać indeks, używając zwykłego ciągu znaków. Zapytanie może zwrócić:

  • Dopasowania leksykalne — dokładne dopasowania tekstu (w tym tekst znaleziony na obrazach).
  • Dopasowania semantyczne — zawartość podobna do znaczenia, nawet jeśli wyrazy nie są identyczne.

Na przykład zapytanie "kociak" może zwrócić odwołanie do:

  • Wpisy tekstowe dotyczące kotów, nawet jeśli słowo "kotek" nie jest jawnie wymienione.
  • Obrazy, które wizualnie zawierają kocięta.
  • Zawartość tekstowa na obrazach zawierających "kota" lub wyrazy z wystarczającą istotnością semantyczną.

Obsługiwane typy zawartości

ApplicationContentIndexer obsługuje dodawanie następujących typów zawartości:

  • Tekst — zawartość tekstu zwykłego lub ustrukturyzowanego.
  • Obrazy — w tym zrzuty ekranu, zdjęcia lub pliki obrazów zawierające tekst lub rozpoznawalne elementy wizualne.

Identyfikatory zawartości zdefiniowane przez aplikację

Aplikacja AppContentIndexer obsługuje zawartość zarządzaną przez aplikację, umożliwiając aplikacjom indeksowanie elementów przy użyciu identyfikatorów zawartości zdefiniowanej przez aplikację. Zapytania zwracają te identyfikatory, których aplikacja używa do pobierania rzeczywistej zawartości z własnego magazynu danych.

Zapytania tekstowe zwracają obiekty AppManagedTextQueryMatch, a zapytania dotyczące obrazów zwracają obiekty AppManagedImageQueryMatch — oba te obiekty obejmują tylko identyfikator ContentId, a nie samą zawartość.

Aby uzyskać wskazówki dotyczące sposobu integrowania tej funkcji z aplikacją i korzystania z interfejsu API ApplicationContentIndexer, zobacz : Szybki start: wyszukiwanie zawartości aplikacji

Prywatność i zabezpieczenia

Indeksy semantyczne i leksykalne są generowane w imieniu aplikacji i przechowywane w lokalnym folderze danych aplikacji. W ramach prywatnej wersji zapoznawczej ta funkcja jest przeznaczona do indeksowania niewrażliwej zawartości aplikacji. Aby uzyskać najlepsze praktyki w zakresie zabezpieczeń, nie należy używać tej funkcji do indeksowania danych użytkowników, które mogą zawierać informacje osobiste, poufne lub wrażliwe.

Zagadnienia dotyczące odpowiedzialnej sztucznej inteligencji

Funkcje indeksowania semantycznego i wyszukiwania w tej wersji zapoznawczej nie stosują żadnej formy moderowania zawartości ani nie próbują wykrywać ani ograniczać stronniczości semantycznej wprowadzonej przez podstawowe modele. Deweloperzy są odpowiedzialni za ocenę potencjalnych zagrożeń i zarządzanie nimi podczas implementowania funkcji opartych na sztucznej inteligencji.

Zalecamy zapoznanie się z wytycznymi dotyczącymi odpowiedzialnego generowania sztucznej inteligencji w systemie Windows w celu uzyskania najlepszych rozwiązań podczas tworzenia środowisk sztucznej inteligencji w aplikacji.