Compartir vía


Adición de clasificación semántica a consultas en Azure AI Search

Puede aplicar la clasificación semántica a consultas de texto, consultas híbridas y consultas vectoriales si los documentos de búsqueda contienen campos de cadena y la consulta vectorial de tiene una representación de texto en el documento de búsqueda.

En este artículo se explica cómo invocar el clasificador semántico en las consultas.

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

Puede usar cualquiera de las siguientes herramientas y SDK para crear una consulta que use la clasificación semántica:

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

Algunas funcionalidades de consulta omiten la puntuación de relevancia, lo que hace que sean 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 y, por tanto, las puntuaciones de búsqueda son cero. La consulta debe proporcionar términos o frases que se pueden evaluar durante el procesamiento.

  • 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 búsqueda de texto completo (mediante el parámetro search para pasar una cadena) o una consulta vectorial, 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.

    Captura de pantalla en la que se muestran las opciones de consulta en el Explorador de búsqueda.

  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:

    Captura de pantalla que muestra la sintaxis de consulta JSON en Azure Portal.

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

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

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 se compone de todos los campos marcados como recuperables o solo esos 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 la clasificación semántica, la respuesta tiene más elementos: una nueva puntuación de relevancia clasificada semánticamente, un subtítulo opcional en texto sin formato y con resaltados, y una respuestaopcional. 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"
    },
  ...
]

Cargas de trabajo esperadas

Para la clasificación semántica, debe esperar que un servicio de búsqueda admita hasta 10 consultas simultáneas por réplica.

El servicio limita las solicitudes de clasificación semántica si los volúmenes son demasiado altos. Un mensaje de error que incluye estas frases indica que el servicio alcanzó su límite para la clasificación semántica:

Error in search query: Operation returned an invalid status 'Partial Content'`
@search.semanticPartialResponseReason`
CapacityOverloaded

Si prevé requisitos de rendimiento uniformes a corto plazo (en este nivel o uno superior) envíe una incidencia de soporte técnico para que podamos aprovisionar la carga de trabajo.

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.