Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime
Importante
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.
A ai_search() função recupera informação de um ou mais índices de IA Search. Dada uma consulta em linguagem natural e índices configurados como fontes de conhecimento, a função gera consultas de pesquisa otimizadas, recupera e desduplica resultados entre fontes, reclassifica-os por relevância e devolve os documentos mais relevantes. Por defeito, também sintetiza uma resposta fundamentada em linguagem natural sobre os documentos recuperados.
Use ai_search para enriquecer dados operacionais com contexto relevante em escala, construir pipelines de geração aumentada por recuperação em lote (RAG) ou expor a recuperação como ferramenta a um sistema de IA composto — tudo a partir de uma única chamada de função SQL.
Segurança de dados
Os dados do documento são processados dentro do perímetro de segurança Databricks. O Databricks não armazena os parâmetros que são passados para as chamadas de função de IA, mas mantém detalhes de execução de metadados, como a versão de Runtime do Databricks utilizada.
Requisitos
- Databricks Runtime 18.2 ou superior.
- Um ou mais índices de IA Search para usar como fontes de conhecimento.
- Se estiver a usar computação serverless, a versão do ambiente serverless deve estar definida para 3 ou superior, pois isto permite funcionalidades como
VARIANT. - A
ai_searchfunção está disponível utilizando notebooks Databricks, editor SQL, fluxos de trabalho Databricks, jobs ou Spark Declarative Pipelines no Lakeflow.
Sintaxe
ai_search(query, knowledge_sources [, instructions] [, options])
Arguments
-
query: Uma expressãoSTRINGouVARIANT. A consulta de pesquisa em linguagem natural.VARIANTa entrada, como a saída de outra função de IA, é serializada internamente para uma cadeia JSON. -
knowledge_sources: AVARIANTouSTRINGexpressão contendo um array JSON de configurações de fonte de conhecimento para pesquisar. Ver configuração da fonte de conhecimento. Pode especificar até 10 fontes de conhecimento. -
instructions: Uma expressão opcionalSTRINGde até 4.000 caracteres. Instruções em linguagem natural que orientam a geração de consultas, geração de filtros de metadados e reclassificação. Por exemplo,'Prefer official documentation over internal articles when both cover the same topic.' -
options: Um opcionalMAP<STRING, STRING>. Teclas suportadas:-
'version': A versão da função a usar. -
'generate_answer':'true'(por defeito) ou'false'. Quando'true', a função sintetiza uma resposta fundamentada em linguagem natural a partir dos documentos recuperados e devolve-a noanswercampo. Defina para'false'devolver apenas documentos.
-
Configuração da fonte de conhecimento
O knowledge_sources argumento é um array JSON. Cada elemento é um {type, config} envelope. O type campo identifica como ai_search se liga à fonte e é separado do nome do recurso voltado para o cliente. Para um índice de pesquisa por IA, defina type para o literal vector_search. O config campo contém a configuração específica da fonte.
| Key | Required | Description |
|---|---|---|
type |
Yes | O tipo fonte de conhecimento. Atualmente, apenas vector_search é suportado. |
config |
Yes | Um objeto contendo a configuração específica da fonte. Para vector_search, veja configuração do índice de pesquisa do IA. |
Configuração do índice de pesquisa por IA
Para um índice de Pesquisa por IA com type definido para vector_search, config aceita as seguintes chaves:
| Key | Required | Description |
|---|---|---|
index_name |
Yes | O nome de três níveis do Unity Catalog do índice de pesquisa de IA, por catalog.schema.my_indexexemplo. |
text_col |
Yes | A coluna no índice que contém o texto do documento devolveu como page_content. |
doc_uri_col |
Yes | A coluna no índice que contém o URI do documento devolveu como doc_uri. |
filter_columns |
No | Uma cadeia separada por vírgulas ou array JSON de colunas disponível para filtragem de metadados. Quando omitida, a lista é derivada do esquema de índice, excluindo as colunas de URI reservado, texto e documento. |
O exemplo seguinte configura um índice de pesquisa de IA como fonte de conhecimento:
[
{
"type": "vector_search",
"config": {
"index_name": "prod_catalog.docs.support_articles",
"text_col": "article_body",
"doc_uri_col": "article_url",
"filter_columns": "product,language"
}
}
]
Para construir um índice de pesquisa por IA a partir de documentos brutos, use ai_parse_document e ai_prep_search crie blocos prontos para pesquisa numa tabela Delta. Depois cria um índice de pesquisa por IA a partir dessa tabela. Depois de o índice estar online, use o seu nome de três níveis como index_name.
Returns
A VARIANT com o seguinte esquema:
{
"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
}
| Campo | Tipo | Description |
|---|---|---|
document |
ARRAY |
Conjunto de documentos recuperados, ordenados por relevância. |
document[].page_content |
STRING |
Conteúdo do texto do pedaço recuperado. |
document[].doc_uri |
STRING |
URI do documento de origem. |
document[].metadata |
MAP |
Metadados adicionais do índice. |
answer |
STRING |
Uma resposta fundamentada em linguagem natural, sintetizada a partir dos documentos recuperados.
null quando a geração de respostas está desativada ou quando não são recuperados documentos. |
Examples
Pesquisa básica
O exemplo seguinte pesquisa um índice de pesquisa por IA e retorna documentos classificados e uma resposta fundamentada:
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;
Pesquisa multi-fonte com instruções
O exemplo seguinte pesquisa em dois índices de AI Search e é utilizado instructions para orientar a geração de consultas e a reclassificação:
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;
Enriquecer uma tabela com recuperação e uma resposta gerada
O exemplo seguinte enriquece cada ticket de suporte com documentação relevante e uma solução sugerida. Como a geração de respostas está ativada por defeito, a resolução sugerida está disponível diretamente no answer campo — não é necessário um passo de geração separado.
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;
Para controlar o formato de saída ou usar um modelo específico, defina 'generate_answer' e 'false' encadeie os documentos recuperados em ai_query vez disso.
Limitações
-
ai_searchatualmente suporta apenas índices de pesquisa por IA. Definido"type": "vector_search"para cada fonte de conhecimento. - Pode especificar até 10 fontes de conhecimento por chamada.
- O
instructionsargumento limita-se a 4.000 caracteres.