Creación de una consulta semántica en Búsqueda de Azure AI

En este artículo, aprenderás a invocar una clasificación semántica a través de un conjunto de resultados, lo que promueve los resultados más pertinentes en términos semánticos en la parte superior de la pila. También puede obtener leyendas semánticas, con los términos y las frases más relevantes resaltados, además de respuestas semánticas.

Requisitos previos

Nota:

Las leyendas y las respuestas se extraen literalmente del texto del documento de búsqueda. El subsistema semántico recurre a la comprensión de lectura mecánica para determinar qué parte del contenido tiene las características de un título o respuesta, pero no crea oraciones ni frases. Por esta razón, el contenido que incluye explicaciones o definiciones funciona mejor para la clasificación semántica. Si quieres la interacción de estilo de chat con las respuestas generadas, consulta Generación aumentada de recuperación (RAG).

Elija un cliente

Elige un cliente de búsqueda que admita la clasificación semántica. Estas son algunas opciones:

Evitar características que omiten la puntuación de relevancia

Varias funcionalidades de consulta de Azure AI Search omiten la puntuación de relevancia o no son incompatibles con la clasificación semántica. Si la lógica de consulta incluye las siguientes características, no se puede clasificar semánticamente los resultados:

  • Una consulta con search=* o una cadena de búsqueda vacía, como una consulta pura de solo filtro, no funcionará porque no hay nada con lo que medir la relevancia semántica. La consulta debe proporcionar términos o frases que se pueden evaluar durante el procesamiento.

  • Una consulta compuesta en la sintaxis completa de Lucene (queryType=full) no es compatible con la clasificación semántica (queryType=semantic). El modelo semántico no admite la sintaxis completa de Lucene.

  • La clasificación (cláusulas orderBy) en campos específicos invalida las puntuaciones de búsqueda y la puntuación semántica. Dado que se supone que la puntuación semántica proporciona la clasificación, agregar una cláusula orderby produce un error HTTP 400 si aplica la clasificación semántica sobre los resultados de orden.

Configurar la consulta

En este paso, añade parámetros a la solicitud de consulta. Para que se realice correctamente, la consulta debe ser una búsqueda de texto completo (con el parámetro search para pasar una cadena) y el índice debe contener campos de texto con contenido semántico enriquecido y una configuración semántica.

El explorador de búsqueda incluye opciones para la clasificación semántica.

  1. Inicie sesión en Azure Portal.

  2. Abre un índice de búsqueda y selecciona Explorador de búsqueda.

  3. Seleccione Opciones de consulta. Si ya ha definido una configuración semántica, se selecciona de forma predeterminada. Si no tiene una, crear una configuración semántica para el índice.

    Screenshot showing query options in Search explorer.

  4. Escriba una consulta, como "hotel histórico con buena comida" y seleccione Buscar.

  5. También puede seleccionar vista JSON y pegar definiciones en el editor de consultas:

    Screenshot showing JSON query syntax in the Azure portal.

    Este es un texto JSON que puede pegar en la vista:

     {
         "queryType": "semantic",
         "search": "historic hotel with good food",
         "semanticConfiguration": "my-semantic-config",
         "answers": "extractive|count-3",
         "captions": "extractive|highlight-true",
         "highlightPreTag": "<strong>",
         "highlightPostTag": "</strong>",
         "select": "HotelId,HotelName,Description,Category",
         "count": true
     }
    

Evaluación de la respuesta

Solo las 50 primeras coincidencias de los resultados iniciales se pueden clasificar semánticamente. Al igual que con todas las consultas, una respuesta consta de todos los campos marcados como recuperables, o solo de los campos enumerados en el parámetro SELECT. Una respuesta incluye la puntuación de relevancia original y también puede incluir un recuento o resultados por lotes, en función de cómo haya formulado la solicitud.

En una clasificación semántica, la respuesta tiene más elementos: una nueva puntuación de relevancia clasificada semánticamente, una leyenda opcional en texto sin formato y resaltado y una respuesta opcional. Si los resultados no incluyen estos elementos adicionales, es posible que la consulta esté mal configurada. Como primer paso para solucionar el problema, compruebe la configuración semántica para asegurarse de que se especifica en la definición de índice y en la consulta.

En una aplicación cliente puede estructurar la página de búsqueda para incluir un subtítulo como la descripción de la coincidencia, en lugar de todo el contenido de un campo específico. Este enfoque resulta útil cuando los campos individuales son demasiado densos para la página de resultados de la búsqueda.

La respuesta de la consulta de ejemplo anterior devuelve la siguiente coincidencia como elección principal. Las leyendas se devuelven porque la propiedad "captions" está establecida, con texto sin formato y versiones resaltadas. Las respuestas se omiten del ejemplo porque no se pudo determinar ninguna para este corpus y consulta en particular.

"@odata.count": 35,
"@search.answers": [],
"value": [
    {
        "@search.score": 1.8810667,
        "@search.rerankerScore": 1.1446577133610845,
        "@search.captions": [
            {
                "text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
                "highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
            }
        ],
        "HotelName": "Oceanside Resort",
        "Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
        "Category": "Luxury"
    },
  ...
]

Pasos siguientes

La clasificación semántica se puede usar en consultas híbridas que combinan la búsqueda de palabras clave y el vector de búsqueda en una sola solicitud y una respuesta unificada.