Adición de la clasificación semántica a las consultas en Búsqueda de Azure AI

Nota

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

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 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 Migración del código de clasificación semántica.

Requisitos previos

Nota

Los títulos y respuestas se extraen textualmente del texto del documento de búsqueda. El subsistema semántico usa la comprensión de lectura automática para reconocer el contenido que tiene las características de un título o respuesta, pero no compone nuevas oraciones o frases excepto en el caso de reescritura de consultas. Por este motivo, el contenido que incluye explicaciones o definiciones funciona mejor para la clasificación semántica. Si desea una interacción estilo chat con las respuestas generadas, consulte Recuperación de agentes o Generación aumentada de recuperación (RAG).

Elección de 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 de solo filtro pura, no funcionará porque no hay nada para 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 y que genere documentos de búsqueda puntuados para su relevancia. Los resultados puntuados son entradas para el clasificador semántico.

  • La ordenación (cláusulas orderBy) en campos específicos prima sobre las puntuaciones de búsqueda y una 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 ordenados.

Configuración de 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 formatos de consulta.

Todas las consultas semánticas, ya sean especificadas a través de search más queryType, o a través de semanticQuery, deben ser texto sin formato y no pueden estar vacías. Como puede ver en la tabla siguiente, el queryType-semantic parámetro admite un subconjunto de formatos de consulta.

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

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

2 El semanticQuery parámetro se puede usar para todos los tipos de consulta. Sin embargo, no se admite en el portal de Azure Search Explorer.

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 el portal de Azure.

  1. Vaya al servicio de búsqueda en el portal Azure.

  2. Abra un índice de búsqueda y seleccione 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, cree una configuración semántica para el índice.

    Captura de pantalla que muestra 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 definiciones en el editor de consultas. El portal de Azure no admite el uso de semanticQuery, por lo que es necesario establecer queryType en "semantic":

    Screenshot que muestra la sintaxis de consulta JSON en el 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 se pueden ordenar semánticamente las 50 coincidencias principales de los resultados iniciales. 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 select parámetro . 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 título opcional en texto sin formato y con resaltados 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 la consulta.

En una aplicación cliente, puede estructurar la página de búsqueda para incluir un título como la descripción de la coincidencia, en lugar de todo el contenido de un campo específico. Este enfoque es útil cuando los campos individuales son demasiado densos para la página de resultados de 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"). Los subtítulos se devuelven porque se establece la propiedad "captions", con versiones de texto plano y resaltadas. Si no se puede determinar una respuesta, se omite de 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 está en capacidad 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 coherentes cerca, en o superior a este nivel, envíe un ticket de soporte para que podamos provisionar para su 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 la búsqueda vectorial en una sola solicitud y una respuesta unificada.