Compartir a través de


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. Se supone que usa las API estables o preliminares más recientes. Para obtener ayuda con versiones anteriores, consulte Migrar código de clasificación semántica.

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

De forma predeterminada, las consultas no usan la clasificación semántica. Para usar la clasificación semántica, se pueden usar dos parámetros diferentes. Cada parámetro admite un conjunto diferente de escenarios.

Las consultas semánticas, tanto si se especifican a través de search como queryType, o a través de semanticQuery, deben ser texto sin formato y no pueden estar vacíos. Las consultas vacías no dan lugar a que se aplique ninguna clasificación semántica a los resultados.

Parámetro de clasificador semántico Búsqueda de texto sin formato Sintaxis de búsqueda de texto simple Sintaxis de búsqueda de texto completo Vector de búsqueda Búsqueda híbrida Respuestas semánticas y subtítulos
queryType-semantic 1
semanticQuery="<your plain text query>"2

1 queryType=semantic no admite valores explícitos simple o full porque el parámetro queryType se usa para semantic. Los comportamientos de consulta efectivos son los valores predeterminados del analizador simple.

2 El parámetro semanticQuery se puede usar para todos los tipos de consulta. Sin embargo, no se admite en el Explorador de búsqueda de Azure Portal.

Independientemente del parámetro elegido, 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. Recuerde que no se puede establecer el parámetro semanticQuery en Azure Portal.

  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. Como alternativa, seleccione vista JSON y pegue las definiciones en el editor de consultas. Azure Portal no admite el uso de semanticQuery, por lo que es necesario establecer queryType en "semantic":

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

    Ejemplo de JSON para establecer el tipo de consulta en la semántica que puede pegar en la vista:

    {
      "search": "funky or interesting hotel with good food on site",
      "count": true,
      "queryType": "semantic",
      "semanticConfiguration": "my-semantic-config",
      "captions": "extractive|highlight-true",
      "answers": "extractive|count-3",
      "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 ("hotel interesante con restaurante en el sitio y acogedor vestíbulo o área compartida") devuelve tres respuestas ("answers": "extractive|count-e"). Las leyendas se devuelven porque la propiedad "captions" está establecida, con texto sin formato y versiones resaltadas. Si no se puede determinar una respuesta, se omite en la respuesta. Por motivos de brevedad, en este ejemplo se muestran solo las tres respuestas y los tres resultados de puntuación más altos de la consulta.

{
  "@odata.count": 29,
  "@search.answers": [
    {
      "key": "24",
      "text": "Chic hotel near the city. High-rise hotel in downtown, within walking distance to theaters, art galleries, restaurants and shops. Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
      "highlights": "Chic hotel near the city. <strong>High-rise hotel in downtown, </strong>within<strong> walking distance to </strong>theaters, art<strong> galleries, restaurants and shops.</strong> Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
      "score": 0.9340000152587891
    },
    {
      "key": "40",
      "text": "Only 8 miles from Downtown. On-site bar/restaurant, Free hot breakfast buffet, Free wireless internet, All non-smoking hotel. Only 15 miles from airport.",
      "highlights": "Only 8 miles from Downtown. <strong>On-site bar/restaurant, Free hot breakfast buffet, Free wireless internet, </strong>All non-smoking<strong> hotel.</strong> Only 15 miles from airport.",
      "score": 0.9210000038146973
    },
    {
      "key": "38",
      "text": "Nature is Home on the beach. Explore the shore by day, and then come home to our shared living space to relax around a stone fireplace, sip something warm, and explore the library by night. Save up to 30 percent. Valid Now through the end of the year. Restrictions and blackouts may apply.",
      "highlights": "Nature is Home on the beach. Explore the shore by day, and then come home to our<strong> shared living space </strong>to relax around a stone fireplace, sip something warm, and explore the library by night. Save up to 30 percent. Valid Now through the end of the year. Restrictions and blackouts may apply.",
      "score": 0.9200000166893005
    }
  ],
  "value": [
    {
      "@search.score": 3.2328331,
      "@search.rerankerScore": 2.575303316116333,
      "@search.captions": [
        {
          "text": "The best of old town hospitality combined with views of the river and cool breezes off the prairie. Our penthouse suites offer views for miles and the rooftop plaza is open to all guests from sunset to 10 p.m. Enjoy a complimentary continental breakfast in the lobby, and free Wi-Fi throughout the hotel.",
          "highlights": "The best of old town hospitality combined with views of the river and cool breezes off the prairie. Our<strong> penthouse </strong>suites offer views for miles and the rooftop<strong> plaza </strong>is open to all guests from sunset to 10 p.m. Enjoy a<strong> complimentary continental breakfast in the lobby, </strong>and free Wi-Fi<strong> throughout </strong>the hotel."
        }
      ],
      "HotelId": "50",
      "HotelName": "Head Wind Resort",
      "Description": "The best of old town hospitality combined with views of the river and cool breezes off the prairie. Our penthouse suites offer views for miles and the rooftop plaza is open to all guests from sunset to 10 p.m. Enjoy a complimentary continental breakfast in the lobby, and free Wi-Fi throughout the hotel.",
      "Category": "Suite"
    },
    {
      "@search.score": 0.632956,
      "@search.rerankerScore": 2.5425150394439697,
      "@search.captions": [
        {
          "text": "Every stay starts with a warm cookie. Amenities like the Counting Sheep sleep experience, our Wake-up glorious breakfast buffet and spacious workout facilities await.",
          "highlights": "Every stay starts with a warm cookie. Amenities like the<strong> Counting Sheep sleep experience, </strong>our<strong> Wake-up glorious breakfast buffet and spacious workout facilities </strong>await."
        }
      ],
      "HotelId": "34",
      "HotelName": "Lakefront Captain Inn",
      "Description": "Every stay starts with a warm cookie. Amenities like the Counting Sheep sleep experience, our Wake-up glorious breakfast buffet and spacious workout facilities await.",
      "Category": "Budget"
    },
    {
      "@search.score": 3.7076726,
      "@search.rerankerScore": 2.4554927349090576,
      "@search.captions": [
        {
          "text": "Chic hotel near the city. High-rise hotel in downtown, within walking distance to theaters, art galleries, restaurants and shops. Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
          "highlights": "Chic hotel near the city. <strong>High-rise hotel in downtown, </strong>within<strong> walking distance to </strong>theaters, art<strong> galleries, restaurants and shops.</strong> Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance."
        }
      ],
      "HotelId": "24",
      "HotelName": "Uptown Chic Hotel",
      "Description": "Chic hotel near the city. High-rise hotel in downtown, within walking distance to theaters, art galleries, restaurants and shops. Visit Seattle Art Museum by day, and then head over to Benaroya Hall to catch the evening's concert performance.",
      "Category": "Suite"
    },
   . . .
  ]
}

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.