Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktion
gäller för:
Databricks SQL
Databricks Runtime
Important
Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
Funktionen ai_search() hämtar information från ett eller flera AI-sökningsindex. Givet en fråga på naturligt språk och index konfigurerade som kunskapskällor genererar funktionen optimerade sökfrågor, hämtar och deduplicerar resultat över källor, rankar om dem efter relevans och returnerar de mest relevanta dokumenten. Som standard syntetiserar den också ett jordat svar på naturligt språk över de hämtade dokumenten.
Använda ai_search för att berika operativ data med relevant kontext i stor skala, bygga batch-retrieval-augmented generation (RAG)-pipelines, eller exponera retrieval som ett verktyg för ett sammansatt AI-system – allt från ett enda SQL-funktionsanrop.
Datasäkerhet
Dina dokumentdata bearbetas inom Databricks säkerhetsperimeter. Databricks lagrar inte parametrarna som skickas till AI-funktionsanropen, men behåller metadata-kördetaljer, såsom Databricks Runtime-versionen som används.
Requirements
- Databricks Runtime 18.2 eller senare.
- Ett eller flera AI-sökindex att använda som kunskapskällor.
- Om du använder serverless compute måste versionen av serverless miljöer vara inställd på 3 eller högre, eftersom detta möjliggör funktioner som
VARIANT. - Funktionen
ai_searchfinns tillgänglig med Databricks-notebooks, SQL-redigerare, Databricks-arbetsflöden, jobb eller Spark Deklarative Pipelines på Lakeflow.
Syntax
ai_search(query, knowledge_sources [, instructions] [, options])
Arguments
-
query: EttSTRINGellerVARIANTuttryck. Den naturliga språksökningen.VARIANTindata, såsom utdata från en annan AI-funktion, serialiseras internt till en JSON-sträng. -
knowledge_sources: EttVARIANTeller uttryckSTRINGsom innehåller en JSON-array av kunskapskällskonfigurationer att söka i. Se konfiguration av kunskapskällor. Du kan ange upp till 10 kunskapskällor. -
instructions: Ett valfrittSTRINGuttryck på upp till 4 000 tecken. Naturligspråksinstruktioner som styr generering av frågor, metadatafilter och omrankning. Till exempel:'Prefer official documentation over internal articles when both cover the same topic.' -
options: Ett valfrittMAP<STRING, STRING>. Nycklar som stöds:-
'version': Funktionsversionen att använda. -
'generate_answer':'true'(standard) eller'false'. När'true', syntetiserar funktionen ett jordat naturligt språksvar från de hämtade dokumenten och returnerar det ianswerfält. Ställ in på'false'att endast returnera dokument.
-
Konfiguration av kunskapskälla
Argumentet knowledge_sources är en JSON-array. Varje element är ett {type, config} kuvert. Fältet type identifierar hur ai_search det kopplas till källan och är separat från det kundanpassade resursnamnet. För ett AI-sökningsindex, sätt type till bokstaven vector_search. Fältet config innehåller den källspecifika konfigurationen.
| Nyckel | Obligatoriskt | Description |
|---|---|---|
type |
Yes | Kunskapskällan. För närvarande stöds endast vector_search. |
config |
Yes | Ett objekt som innehåller den källspecifika konfigurationen. För vector_search, se AI Search indexkonfiguration. |
AI-sökningsindexkonfiguration
För ett AI-sökningsindex med type satt till vector_search, config accepterar följande nycklar:
| Nyckel | Obligatoriskt | Description |
|---|---|---|
index_name |
Yes | Unity Catalog trenivånamnet på AI Search-indexet, till exempel catalog.schema.my_index. |
text_col |
Yes | Kolumnen i indexet som innehåller dokumenttexten returnerades som page_content. |
doc_uri_col |
Yes | Kolumnen i indexet som innehåller dokumentets URI returnerades som doc_uri. |
filter_columns |
No | En kommaseparerad sträng eller JSON-array av kolumner tillgänglig för metadatafiltrering. När listan utelämnas härleds den från indexschemat, exklusive reserverade, text- och dokument-URI-kolumner. |
Följande exempel konfigurerar ett AI-sökningsindex som en kunskapskälla:
[
{
"type": "vector_search",
"config": {
"index_name": "prod_catalog.docs.support_articles",
"text_col": "article_body",
"doc_uri_col": "article_url",
"filter_columns": "product,language"
}
}
]
För att bygga ett AI-sökindex från råa dokument, använd ai_parse_document och ai_prep_search skapa sökklara delar i en Delta-tabell.
Skapa sedan ett AI-sökindex från den tabellen. Efter att indexet är online, använd dess trenivånamn som index_name.
Retur
A VARIANT med följande schema:
{
"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
}
| Fält | Type | Description |
|---|---|---|
document |
ARRAY |
Samling av återfunna dokument, ordnade efter relevans. |
document[].page_content |
STRING |
Textinnehållet i den återhämtade biten. |
document[].doc_uri |
STRING |
URI för källdokumentet. |
document[].metadata |
MAP |
Ytterligare metadata från indexet. |
answer |
STRING |
Ett jordat svar på naturligt språk syntetiserat från de återfunna dokumenten.
null när svarsgenerering är inaktiverad eller när inga dokument hämtas. |
Examples
Enkel sökning
Följande exempel söker i ett AI-sökningsindex och ger rankade dokument samt ett grundat svar:
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;
Multikällsökning med instruktioner
Följande exempel söker i två AI-sökningsindex och används instructions för att styra frågegenerering och omplacering:
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;
Berika en tabell med retrieval och ett genererat svar
Följande exempel berikar varje supportärende med relevant dokumentation och ett förslag på lösning. Eftersom svargenerering är påslagen som standard är den föreslagna lösningen tillgänglig direkt i answer fältet — inget separat genereringssteg krävs.
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;
För att styra utdataformatet eller använda en specifik modell, ställ 'generate_answer' in och 'false' kedja de hämtade dokumenten istället ai_query .
Limitations
-
ai_searchstöder för närvarande endast AI-sökningsindex. Ställ"type": "vector_search"in för varje kunskapskälla. - Du kan ange upp till 10 kunskapskällor per samtal.
- Argumentet
instructionsär begränsat till 4 000 tecken.