Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime
Importante
Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administrar versiones preliminares de Azure Databricks.
La ai_search() función recupera información de uno o más índices de búsqueda de IA. Dada una consulta en lenguaje natural y los índices configurados como fuentes de conocimiento, la función genera consultas de búsqueda optimizadas, recupera y desduplica resultados entre fuentes, los reclasifica por relevancia y devuelve los documentos más relevantes. Por defecto, también sintetiza una respuesta fundamentada en lenguaje natural sobre los documentos recuperados.
Úsalo ai_search para enriquecer datos operativos con contexto relevante a gran escala, construir pipelines de generación aumentada por recuperación por lotes (RAG) o exponer la recuperación como herramienta a un sistema de IA compuesta — todo desde una única llamada a una función SQL.
Seguridad de datos
Los datos del documento se procesan dentro del perímetro de seguridad de Databricks. Databricks no almacena los parámetros que se pasan a las llamadas a funciones de IA, pero sí conserva los detalles de la ejecución de metadatos, como la versión de ejecución de Databricks utilizada.
Requisitos
- Databricks Runtime 18.2 o superior.
- Uno o más índices de AI Search para usar como fuentes de conocimiento.
- Si usas computación sin servidor, la versión del entorno serverless debe estar configurada en 3 o superior, ya que esto permite funciones como
VARIANT. - La
ai_searchfunción está disponible utilizando cuadernos Databricks, editor SQL, flujos de trabajo Databricks, trabajos o Spark Declarative Pipelines en Lakeflow.
Syntax
ai_search(query, knowledge_sources [, instructions] [, options])
Argumentos
-
query: una expresiónSTRINGoVARIANT. La consulta de búsqueda en lenguaje natural.VARIANTla entrada, como la salida de otra función de IA, se serializa internamente en una cadena JSON. -
knowledge_sources: AVARIANToSTRINGexpresión que contiene un array JSON de configuraciones fuente de conocimiento para buscar. Consulta Configuración de la fuente de conocimiento. Puedes especificar hasta 10 fuentes de conocimiento. -
instructions: Una expresión opcionalSTRINGde hasta 4.000 caracteres. Instrucciones en lenguaje natural que guían la generación de consultas, la generación de filtros de metadatos y la reclasificación. Por ejemplo:'Prefer official documentation over internal articles when both cover the same topic.' -
options: un objeto opcionalMAP<STRING, STRING>. Claves admitidas:-
'version': La versión de función a usar. -
'generate_answer':'true'(valor predeterminado) o'false'. Cuando'true', la función sintetiza una respuesta fundamentada en lenguaje natural a partir de los documentos recuperados y la devuelve alanswercampo. Configura para'false'devolver solo documentos.
-
Configuración del origen de conocimiento
El knowledge_sources argumento es un arreglo JSON. Cada elemento es un {type, config} envoltorio. El type campo identifica cómo ai_search se conecta al código fuente y es independiente del nombre del recurso orientado al cliente. Para un índice de búsqueda de IA, se fija type en el literal vector_search. El config campo contiene la configuración específica de la fuente.
| Key | Obligatorio | Description |
|---|---|---|
type |
Sí | El tipo fuente de conocimiento. Actualmente, solo se admite vector_search. |
config |
Sí | Un objeto que contiene la configuración específica de la fuente. Para vector_search, véase configuración del índice de búsqueda de IA. |
Configuración del índice de búsqueda de IA
Para un índice de búsqueda de IA con type el conjunto en vector_search, config acepta las siguientes claves:
| Key | Obligatorio | Description |
|---|---|---|
index_name |
Sí | El nombre de tres niveles del Unity Catalog del índice de búsqueda de IA, por catalog.schema.my_indexejemplo. |
text_col |
Sí | La columna en el índice que contiene el texto del documento devolvía como page_content. |
doc_uri_col |
Sí | La columna del índice que contiene el URI del documento devolvía como doc_uri. |
filter_columns |
No | Una cadena separada por comas o un array JSON de columnas disponible para filtrar metadatos. Cuando se omite, la lista se deriva del esquema índice, excluyendo las columnas de URI reservadas, texto y documentos. |
El siguiente ejemplo configura un índice de búsqueda de IA como fuente de conocimiento:
[
{
"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 un índice de búsqueda con IA a partir de documentos en bruto, utiliza ai_parse_document y ai_prep_search crea bloques listos para búsqueda en una tabla Delta. Luego crea un índice de búsqueda de IA a partir de esa tabla. Después de que el índice esté en línea, utiliza su nombre de tres niveles como index_name.
Returns
A VARIANT con el siguiente 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 relevancia. |
document[].page_content |
STRING |
Contenido de texto del fragmento recuperado. |
document[].doc_uri |
STRING |
URI del documento fuente. |
document[].metadata |
MAP |
Metadatos adicionales del índice. |
answer |
STRING |
Una respuesta realista en lenguaje natural sintetizada a partir de los documentos recuperados.
null cuando la generación de respuestas está deshabilitada o cuando no se recuperan documentos. |
Examples
Búsqueda básica
El siguiente ejemplo busca en un índice de búsqueda de IA y devuelve documentos clasificados y una respuesta 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;
Búsqueda multifuente con instrucciones
El siguiente ejemplo busca en dos índices de búsqueda de IA y se utiliza instructions para guiar la generación y reclasificación de consultas:
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;
Enriquece una tabla con recuperación y una respuesta generada
El siguiente ejemplo enriquece cada ticket de soporte con documentación relevante y una solución sugerida. Como la generación de respuestas está activada por defecto, la resolución sugerida está disponible directamente en el answer campo — no se requiere un paso de generación 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 el formato de salida o usar un modelo específico, configura 'generate_answer' y 'false' encadena los documentos recuperados en ai_query en su lugar.
Limitaciones
-
ai_searchactualmente solo soporta índices de búsqueda con IA. Establezca"type": "vector_search"para cada fuente de conocimiento. - Puedes especificar hasta 10 fuentes de conocimiento por llamada.
- El
instructionsargumento está limitado a 4.000 caracteres.