Blog AI/ML Azure Azure AI Search agentes

Actualizaciones en la recuperación agentiva de Azure AI Search: Fuentes de conocimiento y síntesis de respuestas

Representación gráfica de recuperación agentiva en Azure AI Search

Introducción a la recuperación agentiva y fuentes de conocimiento

Azure AI Search ha evolucionado significativamente, integrando capacidades avanzadas para agentes inteligentes. Entre las novedades más destacadas está la introducción de fuentes de conocimiento y la capacidad de generar respuestas sintetizadas con citas. Estas mejoras permiten que los agentes se basen en múltiples índices y fuentes documentales para ofrecer respuestas precisas y fundamentadas.

Las fuentes de conocimiento actúan como el contenido base para la “grounding” de los agentes, asegurando que las respuestas estén alineadas con datos verificables y relevantes. Esto es especialmente útil en escenarios empresariales donde la precisión y la trazabilidad son críticas.

Note: Aunque Azure AI Search reemplaza el nombre anterior “Azure Cognitive Search”, la funcionalidad base permanece intacta, pero con importantes extensiones en el ámbito de recuperación agentiva.


Las fuentes de conocimiento son colecciones de datos estructurados o no estructurados que sirven como referencia para los agentes. Estas fuentes pueden incluir:

  • Índices de búsqueda: Bases de datos indexadas en Azure AI Search.
  • Documentos externos: Archivos en formatos como PDF, Word o JSON almacenados en Azure Blob Storage.
  • APIs externas: Fuentes dinámicas que proporcionan datos en tiempo real.

El objetivo principal es proporcionar a los agentes un marco sólido para generar respuestas basadas en información confiable.

Configuración básica de una fuente de conocimiento

Para configurar una fuente de conocimiento en Azure AI Search, primero necesitas definir el índice y los documentos que actuarán como base. A continuación, se muestra un ejemplo práctico de cómo configurar un índice en Azure AI Search:

from azure.search.documents import SearchClient
from azure.core.credentials import AzureKeyCredential

# Configuración inicial
endpoint = "https://<nombre-del-servicio>.search.windows.net"
api_key = "<tu-api-key>"
index_name = "fuentes-conocimiento"

# Crear cliente de búsqueda
search_client = SearchClient(endpoint=endpoint, index_name=index_name, credential=AzureKeyCredential(api_key))

# Consultar el índice
results = search_client.search(query="Azure AI Search", include_total_count=True)

for result in results:
    print(f"ID del documento: {result['id']}, Título: {result['title']}")

Warning: Asegúrate de que los índices estén correctamente configurados con permisos adecuados. Si los documentos contienen información sensible, utiliza cifrado y políticas de acceso restringido.


Recuperación agentiva con múltiples índices

Una de las capacidades más poderosas introducidas es la recuperación agentiva en múltiples índices. Esto permite que los agentes consulten varios conjuntos de datos simultáneamente, consolidando la información para ofrecer respuestas más completas.

Ejemplo: Recuperación en múltiples índices

Supongamos que tienes dos índices: productos y clientes. Puedes configurar una consulta para recuperar datos de ambos:

from azure.search.documents import SearchClient
from azure.core.credentials import AzureKeyCredential

# Configuración de índices
indices = ["productos", "clientes"]
endpoint = "https://<nombre-del-servicio>.search.windows.net"
api_key = "<tu-api-key>"

# Iterar sobre múltiples índices
for index in indices:
    search_client = SearchClient(endpoint=endpoint, index_name=index, credential=AzureKeyCredential(api_key))
    results = search_client.search(query="Azure", include_total_count=True)

    print(f"Resultados del índice '{index}':")
    for result in results:
        print(result)

Note: La recuperación en múltiples índices puede aumentar la latencia. Optimiza las consultas y utiliza filtros para limitar la cantidad de datos procesados.


Generación de respuestas sintetizadas con citas

La síntesis de respuestas permite que los agentes generen contenido basado en múltiples fuentes, incluyendo citas para respaldar la información. Esto es crucial en aplicaciones como soporte técnico, investigación y análisis empresarial.

Implementación de respuestas sintetizadas

Para habilitar esta funcionalidad, primero debes configurar tu fuente de conocimiento con soporte para citas. Aquí tienes un ejemplo básico:

from azure.ai.search import AnswerSynthesisClient
from azure.core.credentials import AzureKeyCredential

# Configuración inicial
endpoint = "https://<nombre-del-servicio>.search.windows.net"
api_key = "<tu-api-key>"

# Crear cliente de síntesis de respuestas
synthesis_client = AnswerSynthesisClient(endpoint=endpoint, credential=AzureKeyCredential(api_key))

# Generar respuesta sintetizada
response = synthesis_client.generate_answer(
    query="¿Qué es Azure AI Search?",
    knowledge_sources=["productos", "clientes"]
)

print("Respuesta sintetizada:")
print(response['answer'])
print("Citas:")
for citation in response['citations']:
    print(f"- {citation['source']}: {citation['text']}")

Warning: La calidad de las respuestas sintetizadas depende de la relevancia y estructura de las fuentes de conocimiento. Realiza pruebas exhaustivas para garantizar resultados óptimos.


Casos de uso prácticos

Soporte técnico automatizado

Un agente configurado con fuentes de conocimiento puede responder preguntas frecuentes basándose en manuales técnicos y bases de datos de soporte. Por ejemplo:

  • Pregunta: “¿Cómo reinicio mi servicio en Azure?”
  • Respuesta: “Para reiniciar tu servicio, utiliza el comando az service restart. Consulta el manual técnico aquí.”

Investigación empresarial

Las empresas pueden utilizar Azure AI Search para consolidar datos de múltiples departamentos, generando informes detallados con citas de cada fuente.


Conclusión

Las actualizaciones en la recuperación agentiva de Azure AI Search, incluyendo fuentes de conocimiento y síntesis de respuestas, representan un avance significativo para la creación de agentes inteligentes. Estas capacidades permiten construir soluciones más precisas, confiables y escalables.

Para profundizar en temas relacionados, consulta los siguientes artículos:

Note: La adopción de estas capacidades requiere una planificación cuidadosa, especialmente en entornos empresariales con múltiples fuentes de datos.