Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime
Ważna
Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Funkcja pobiera ai_search() informacje z jednego lub więcej indeksów wyszukiwania AI. Mając zapytanie w języku naturalnym i indeksy skonfigurowane jako źródła wiedzy, funkcja generuje zoptymalizowane zapytania wyszukiwania, pobiera i deduplikuje wyniki między źródłami, klasyfikuje je według trafności oraz zwraca najbardziej istotne dokumenty. Domyślnie syntetyzuje także ugruntowaną odpowiedź w języku naturalnym na podstawie odzyskanych dokumentów.
Wykorzystaj do wzbogacania danych operacyjnych o istotny kontekst na dużą skalę, budowania potoków generowania wsadowego i uzupełnionego generowania (RAG) lub udostępniania ai_search pobierania jako narzędzia do systemu AI złożonego — wszystko to z jednego wywołania funkcji SQL.
Bezpieczeństwo danych
Dane dokumentu są przetwarzane w ramach strefy bezpieczeństwa Databricks. Databricks nie przechowuje parametrów przekazywanych do wywołań funkcji AI, ale zachowuje szczegóły metadanych, takie jak używana wersja Databricks Runtime.
Requirements
- Databricks Runtime 18.2 lub nowszy.
- Jeden lub więcej indeksów wyszukiwania AI do wykorzystania jako źródła wiedzy.
- Jeśli korzystasz z obliczeń serwerowych, wersja środowiska serwerless musi być ustawiona na 3 lub wyższą, ponieważ umożliwia to funkcje takie jak
VARIANT. - Funkcja ta
ai_searchjest dostępna za pomocą notatników Databricks, edytora SQL, workflowów Databricks, zadań lub Spark Declarative Pipelines w Lakeflow.
Składnia
ai_search(query, knowledge_sources [, instructions] [, options])
Arguments
-
query: wyrażenieSTRINGlubVARIANT. Zapytanie do wyszukiwania w języku naturalnym.VARIANTwejście, takie jak wyjście innej funkcji AI, jest wewnętrznie serializowane do ciągu JSON. -
knowledge_sources: WyrażenieVARIANTlubSTRINGzawierające tablicę JSON konfiguracji źródeł wiedzy do przeszukiwania. Zobacz Konfiguracja źródła wiedzy. Możesz określić do 10 źródeł wiedzy. -
instructions: OpcjonalneSTRINGwyrażenie do 4 000 znaków. Instrukcje w języku naturalnym, które kierują generowaniem zapytań, generowaniem filtrów metadanych i ponownym rankingiem. Na przykład'Prefer official documentation over internal articles when both cover the same topic.' -
options: opcjonalny elementMAP<STRING, STRING>. Obsługiwane klucze:-
'version': Wersja funkcjonalna do użycia. -
'generate_answer':'true'(wartość domyślna) lub'false'. Gdy'true', funkcja syntetyzuje ugruntowaną odpowiedź w języku naturalnym z odzyskanych dokumentów i zwraca ją wanswerpolu. Ustaw na'false'tylko do zwrotu dokumentów.
-
Konfiguracja źródła wiedzy
Argument knowledge_sources dotyczy tablicy JSON. Każdy element to koperta {type, config} . Pole type to identyfikuje, jak ai_search łączy się ze źródłem i jest oddzielne od nazwy zasobu skierowanego do klienta. Dla indeksu wyszukiwania AI ustaw type dosłownie vector_search. Pole config zawiera konfigurację specyficzną dla źródła.
| Key | Wymagane | Opis |
|---|---|---|
type |
Yes | Typ źródła wiedzy. Obecnie obsługiwany jest tylko vector_search. |
config |
Yes | Obiekt zawierający specyficzną dla źródła konfigurację. Dla vector_search, zobacz konfigurację indeksu wyszukiwania AI. |
Konfiguracja indeksu wyszukiwania AI
Dla indeksu wyszukiwania AI ustawionym type na , vector_searchconfig akceptuje następujące klucze:
| Key | Wymagane | Opis |
|---|---|---|
index_name |
Yes | Na przykład catalog.schema.my_indextrzypoziomowa nazwa indeksu AI Search w katalogu Unity . |
text_col |
Yes | Kolumna w indeksie zawierająca tekst dokumentu zwracała jako page_content. |
doc_uri_col |
Yes | Kolumna w indeksie zawierająca URI dokumentu zwracała jako doc_uri. |
filter_columns |
No | Ciąg kolumn oddzielony przecinkami lub tablica kolumn JSON dostępna do filtrowania metadanych. Po pominięciu lista jest wyprowadzana ze schematu indeksu, z wyłączeniem kolumn URI zarezerwowanych, tekstowych i dokumentów. |
Poniższy przykład konfiguruje jeden indeks wyszukiwania AI jako źródło wiedzy:
[
{
"type": "vector_search",
"config": {
"index_name": "prod_catalog.docs.support_articles",
"text_col": "article_body",
"doc_uri_col": "article_url",
"filter_columns": "product,language"
}
}
]
Aby zbudować indeks AI Search z surowych dokumentów, użyj ai_parse_document i ai_prep_search tworz gotowe do wyszukiwania fragmenty w tabeli Delta. Następnie stwórz indeks wyszukiwania AI z tej tabeli. Po uruchomieniu indeksu używamy jego trzypoziomowej nazwy jako index_name.
Returns
A VARIANT z następującym schematem:
{
"document": [
{
"page_content": STRING, // Text content of the retrieved chunk
"doc_uri": STRING, // URI of the source document
"metadata": MAP // Additional metadata from the index
}
],
"answer": STRING // Grounded answer synthesized from the retrieved
// documents, or null
}
| Pole | Typ | Opis |
|---|---|---|
document |
ARRAY |
Zestaw odzyskanych dokumentów, uporządkowanych według znaczenia. |
document[].page_content |
STRING |
Treść tekstu pobranego fragmentu. |
document[].doc_uri |
STRING |
URI dokumentu źródłowego. |
document[].metadata |
MAP |
Dodatkowe metadane z indeksu. |
answer |
STRING |
Ugruntowana odpowiedź w naturalnym języku syntetyzowana z odzyskanych dokumentów.
null gdy generowanie odpowiedzi jest wyłączone lub gdy nie są pobierane żadne dokumenty. |
Examples
Wyszukiwanie podstawowe
Poniższy przykład wyszukuje jeden indeks AI Search i zwraca dokumenty o rankingu oraz osadzoną odpowiedź:
SELECT ai_search(
'How do I configure auto-scaling for my SQL warehouse?',
PARSE_JSON('[{
"type": "vector_search",
"config": {
"index_name": "prod_catalog.docs.support_articles",
"text_col": "article_body",
"doc_uri_col": "article_url",
"filter_columns": "product,language"
}
}]')
) AS result;
Wyszukiwanie wieloźródłowe z instrukcjami
Poniższy przykład wyszukuje dwa indeksy AI Search i wykorzystuje je instructions do sterowania generowaniem zapytań oraz rerankingiem:
SELECT ai_search(
'What are the networking requirements for serverless SQL warehouses?',
PARSE_JSON('[
{
"type": "vector_search",
"config": {"index_name": "prod_catalog.docs.public_docs", "text_col": "content", "doc_uri_col": "doc_url"}
},
{
"type": "vector_search",
"config": {"index_name": "prod_catalog.docs.internal_kb", "text_col": "body", "doc_uri_col": "source_uri"}
}
]'),
'Focus on firewall rules and VPC/VNet configuration. Prefer official documentation over internal articles when both cover the same topic.'
) AS result;
Wzbogać tabelę o wyszukiwanie i wygenerowaną odpowiedź
Poniższy przykład wzbogaca każde zgłoszenie wsparcia odpowiednią dokumentacją i sugerowaną rezolucją. Ponieważ generowanie odpowiedzi jest domyślnie włączone, sugerowana rozdzielczość jest dostępna bezpośrednio w answer terenie — nie jest wymagany osobny etap generowania.
SELECT
ticket_id,
customer_description,
ai_search(
customer_description,
PARSE_JSON('[{
"type": "vector_search",
"config": {
"index_name": "support.docs.product_documentation",
"text_col": "content",
"doc_uri_col": "doc_url"
}
}]'),
'Find product documentation, known issues, and troubleshooting guides relevant to this support ticket.'
):answer::STRING AS suggested_resolution
FROM support.tickets.open_tickets;
Aby kontrolować format wyjściowy lub użyć konkretnego modelu, ustaw 'generate_answer' na i 'false' łańcuch połącz pobrane dokumenty ai_query .
Ograniczenia
-
ai_searchobecnie obsługuje tylko indeksy wyszukiwania AI. Ustaw"type": "vector_search"dla każdego źródła wiedzy. - Możesz określić do 10 źródeł wiedzy na jedno połączenie.
- Argument
instructionsjest ograniczony do 4 000 znaków.