Introducción a Azure AI Search en Foundry
Azure AI Search, parte integral de Azure Foundry, representa una evolución significativa en las capacidades de búsqueda y recuperación de información. Este servicio combina recuperación híbrida (keyword/vector) con capacidades agentivas, permitiendo una interacción más inteligente y dinámica con los datos.
La transición desde Azure Cognitive Search hacia Azure AI Search en octubre de 2023 marcó un cambio estratégico, priorizando la integración de inteligencia artificial avanzada y modelos generativos en los flujos de búsqueda.
Recuperación híbrida: Una combinación de fuerza bruta y semántica
La recuperación híbrida en Azure AI Search utiliza dos enfoques principales:
- Búsqueda por palabras clave: Basada en coincidencias exactas dentro del índice.
- Búsqueda vectorial: Utiliza embeddings semánticos para encontrar resultados relacionados contextualmente.
El sistema decide automáticamente qué enfoque usar o combina ambos dependiendo de las características del índice y la consulta del usuario.
Configuración básica de un índice híbrido
Para configurar un índice híbrido en Azure AI Search, primero necesitas definir un esquema de índice que soporte tanto datos estructurados como embeddings vectoriales. A continuación, se muestra un ejemplo en Python utilizando el SDK de Azure:
from azure.search.documents.indexes.models import (
SearchIndex, SearchField, SearchFieldDataType, SimpleField, VectorField
)
from azure.search.documents.indexes import SearchIndexClient
from azure.identity import DefaultAzureCredential
# Autenticación
endpoint = "https://<tu-servicio>.search.windows.net"
credential = DefaultAzureCredential()
client = SearchIndexClient(endpoint=endpoint, credential=credential)
# Definición del índice
index_name = "hybrid-index"
fields = [
SimpleField(name="id", type=SearchFieldDataType.String, key=True),
SimpleField(name="title", type=SearchFieldDataType.String),
SimpleField(name="content", type=SearchFieldDataType.String),
VectorField(name="content_vector", dimensions=768, vector_search_configuration="default")
]
index = SearchIndex(name=index_name, fields=fields)
# Creación del índice
client.create_index(index)
print(f"Índice '{index_name}' creado exitosamente.")
Note: El campo
content_vectorestá configurado para admitir búsquedas vectoriales. Asegúrate de que los embeddings se generen previamente utilizando un modelo adecuado, como Azure OpenAI.
Recuperación agentiva: Decisiones inteligentes en tiempo real
La recuperación agentiva extiende la funcionalidad híbrida al incorporar lógica dinámica que ajusta las consultas en función de la intención del usuario y el estado del índice. Esto es especialmente útil en escenarios donde los datos son heterogéneos o los índices cambian frecuentemente.
Flujo básico de recuperación agentiva
El flujo de recuperación agentiva se puede implementar utilizando pipelines en Azure Foundry. Un ejemplo simplificado sería:
- Analizar la consulta del usuario.
- Determinar el mejor enfoque (keyword, vectorial o híbrido).
- Realizar la búsqueda y sintetizar los resultados.
Ejemplo práctico: Implementación de un pipeline agentivo
from azure.search.documents import SearchClient
from azure.ai.textanalytics import TextAnalyticsClient
from azure.identity import DefaultAzureCredential
# Configuración
search_endpoint = "https://<tu-servicio>.search.windows.net"
text_analytics_endpoint = "https://<tu-servicio-text-analytics>.cognitiveservices.azure.com"
credential = DefaultAzureCredential()
search_client = SearchClient(endpoint=search_endpoint, index_name="hybrid-index", credential=credential)
text_analytics_client = TextAnalyticsClient(endpoint=text_analytics_endpoint, credential=credential)
def agentic_search(query):
# Analizar la intención de la consulta
response = text_analytics_client.analyze_sentiment(documents=[query])
sentiment = response[0].sentiment
if sentiment == "positive":
# Recuperación vectorial
results = search_client.search(search_text=None, vector=query, vector_fields=["content_vector"])
else:
# Recuperación por palabras clave
results = search_client.search(search_text=query)
# Procesar resultados
return [result for result in results]
query = "¿Cómo configurar un índice híbrido en Azure AI Search?"
results = agentic_search(query)
for result in results:
print(result["title"])
Warning: La recuperación agentiva depende de servicios adicionales como Azure Text Analytics para el análisis de intención. Asegúrate de configurar correctamente los permisos y endpoints.
Validación de índices tras cambios estructurales
Cuando un índice en Azure AI Search se actualiza, es fundamental revalidar su configuración y datos para garantizar que las búsquedas sigan siendo precisas y eficientes.
Proceso de revalidación
- Reindexación: Inserta nuevamente los datos en el índice para reflejar los cambios estructurales.
- Pruebas de consulta: Ejecuta consultas representativas para verificar que los resultados sean consistentes.
- Monitoreo de métricas: Utiliza Azure Monitor para identificar posibles problemas de rendimiento.
Ejemplo: Reindexación tras cambios
from azure.search.documents import IndexDocumentsBatch, SearchClient
# Datos actualizados
documents = [
{"id": "1", "title": "Nuevo título", "content": "Contenido actualizado", "content_vector": [0.1, 0.2, 0.3]},
{"id": "2", "title": "Otro título", "content": "Más contenido", "content_vector": [0.4, 0.5, 0.6]}
]
# Reindexación
batch = IndexDocumentsBatch(actions=[{"@search.action": "upload", **doc} for doc in documents])
search_client = SearchClient(endpoint=search_endpoint, index_name="hybrid-index", credential=credential)
search_client.index_documents(batch)
print("Reindexación completada.")
Note: La reindexación puede afectar el rendimiento temporalmente. Realízala en horarios de baja actividad.
Conclusión
Azure AI Search en Foundry redefine cómo interactuamos con datos, combinando recuperación híbrida y agentiva para ofrecer resultados más relevantes y dinámicos. La capacidad de adaptarse automáticamente a las consultas y cambios en los índices lo convierte en una herramienta esencial para arquitecturas modernas basadas en inteligencia artificial.
Para profundizar en temas relacionados, revisa los siguientes artículos:
- Semantic ranking in Azure AI Search — Microsoft Learn
- Agentic retrieval in Azure AI Search — Microsoft Learn
- RAG in Azure AI Foundry — Microsoft Learn
- Actualizaciones en la recuperación agentiva de Azure AI Search: Fuentes de conocimiento y síntesis de respuestas
- Implement agentic retrieval pipeline — Microsoft Learn
Mantente atento a futuras actualizaciones en Azurebrains para más ejemplos y casos de uso.