Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime
Important
Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks previews beheren.
De functie haalt ai_search() informatie op uit een of meer AI-zoekindexen. Gegeven een natuurlijke taalzoekopdracht en indexen geconfigureerd als kennisbronnen, genereert de functie geoptimaliseerde zoekzoekopdrachten, haalt resultaten op en dedupliceert resultaten tussen bronnen, herrangschikt ze op relevantie en geeft de meest relevante documenten terug. Standaard genereert het ook een gegrond, natuurtaalantwoord over de opgehaalde documenten.
Gebruik ai_search om operationele data op grote schaal te verrijken met relevante context, batch retrieval-augmented generation (RAG) pipelines te bouwen, of retrieval als hulpmiddel bloot te stellen aan een samengesteld AI-systeem — allemaal vanuit één SQL-functieaanroep.
Gegevensbeveiliging
Uw documentgegevens worden verwerkt binnen de Databricks-beveiligingsperimeter. Databricks slaat de parameters die aan de AI-functieaanroepen worden doorgegeven niet op, maar behoudt wel details van de uitvoering van metadata, zoals de gebruikte Databricks Runtime-versie.
Requirements
- Databricks Runtime 18.2 of hoger.
- Een of meer AI-zoekindexen om als kennisbronnen te gebruiken.
- Als je Serverless compute gebruikt, moet de serverless omgevingsversie op 3 of hoger worden gezet, omdat dit functies zoals
VARIANTmogelijk maakt. - De
ai_searchfunctie is beschikbaar via Databricks-notebooks, SQL-editor, Databricks-workflows, jobs of Spark Declarative Pipelines op Lakeflow.
Syntax
ai_search(query, knowledge_sources [, instructions] [, options])
Arguments
-
query: EenSTRING- ofVARIANT-expressie. De zoekopdracht in natuurlijke taal.VARIANTinvoer, zoals de uitvoer van een andere AI-functie, wordt intern geserialiseerd naar een JSON-string. -
knowledge_sources: EenVARIANTof expressieSTRINGmet een JSON-array van kennisbronconfiguraties om te doorzoeken. Zie Knowledge source configuratie. Je kunt tot 10 kennisbronnen specificeren. -
instructions: Een optioneleSTRINGexpressie van maximaal 4.000 tekens. Natuurtaalinstructies die het genereren van zoekopdrachten, het genereren van metadatafilters en het herrangschikken begeleiden. Bijvoorbeeld:'Prefer official documentation over internal articles when both cover the same topic.' -
options: Een optioneelMAP<STRING, STRING>. Ondersteunde sleutels:-
'version': De functieversie die gebruikt moet worden. -
'generate_answer':'true'(standaard) of'false'. Wanneer'true', synthetiseert de functie een geaarde natuurtaal-antwoord uit de opgehaalde documenten en geeft dit terug in hetanswerveld. Zet op'false'alleen documenten terugsturen.
-
Configuratie van kennisbron
Het knowledge_sources argument is een JSON-array. Elk element is een {type, config} envelop. Het type veld identificeert hoe ai_search het met de bron verbonden is en is gescheiden van de naam van de klantgerichte bron. Voor een AI-zoekindex zet type je het letterlijke vector_search. Het config veld bevat de bronspecifieke configuratie.
| Key | Required | Description |
|---|---|---|
type |
Ja | Het type kennisbron. Op dit moment wordt alleen vector_search ondersteund. |
config |
Ja | Een object met de bronspecifieke configuratie. Voor vector_search, zie AI Search indexconfiguratie. |
AI Search indexconfiguratie
Voor een AI-zoekindex met type ingesteld op vector_searchaccepteert de config volgende sleutels:
| Key | Required | Description |
|---|---|---|
index_name |
Ja | De Unity Catalog drie-niveaus naam van de AI Search index, bijvoorbeeld catalog.schema.my_index. |
text_col |
Ja | De kolom in de index die de documenttekst bevat, werd teruggegeven als page_content. |
doc_uri_col |
Ja | De kolom in de index die de document-URI bevat, werd teruggegeven als doc_uri. |
filter_columns |
No | Een komma-gescheiden string of JSON-array van kolommen beschikbaar voor metadata-filtering. Wanneer deze wordt weggelaten, is de lijst afgeleid van het indexschema, met uitzondering van gereserveerde, tekst- en document-URI-kolommen. |
Het volgende voorbeeld configureert één AI Search index als kennisbron:
[
{
"type": "vector_search",
"config": {
"index_name": "prod_catalog.docs.support_articles",
"text_col": "article_body",
"doc_uri_col": "article_url",
"filter_columns": "product,language"
}
}
]
Om een AI-zoekindex te bouwen uit ruwe documenten, gebruik ai_parse_document en ai_prep_search maak zoekklare chunks in een Delta-tabel. Maak vervolgens een AI-zoekindex aan vanuit die tabel. Nadat de index online is, gebruik je de drie-niveaunaam als index_name.
Returns
A VARIANT met het volgende 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
}
| Veld | Type | Description |
|---|---|---|
document |
ARRAY |
Reeks teruggevonden documenten, geordend op relevantie. |
document[].page_content |
STRING |
Tekstinhoud van het teruggevonden stuk. |
document[].doc_uri |
STRING |
URI van het brondocument. |
document[].metadata |
MAP |
Extra metadata uit de index. |
answer |
STRING |
Een gegrond, natuurlijk taalantwoord gesynthetiseerd uit de teruggevonden documenten.
null wanneer antwoordgeneratie is uitgeschakeld of wanneer er geen documenten worden opgehaald. |
Voorbeelden
Basiszoekopdracht
Het volgende voorbeeld doorzoekt één AI Search index en geeft gerangschikte documenten en een gegronde antwoord:
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;
Multi-source zoekopdracht met instructies
Het volgende voorbeeld doorzoekt twee AI-zoekindexen en gebruikt instructions het om zoekopdrachten te genereren en te herrangschikken:
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;
Verrijk een tabel met retrieval en een gegenereerd antwoord
Het volgende voorbeeld verrijkt elk supportticket met relevante documentatie en een voorgestelde oplossing. Omdat antwoordgeneratie standaard is ingeschakeld, is de voorgestelde resolutie direct in het answer veld beschikbaar — er is geen aparte generatiestap nodig.
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;
Om het uitvoerformaat te beheersen of een specifiek model te gebruiken, stel 'generate_answer' je in plaats daarvan de 'false' opgehaalde documenten in en rij je ze aan ai_query .
Limitations
-
ai_searchmomenteel ondersteunt alleen AI Search indexen. Stel je"type": "vector_search"in voor elke kennisbron. - Je kunt tot 10 kennisbronnen per call specificeren.
- Het
instructionsargument is beperkt tot 4.000 tekens.