El agente de descubrimiento de Knowledge Catalog es un asistente potenciado por IA que mejora la relevancia de la búsqueda para las consultas complejas en lenguaje natural según las capacidades de búsqueda de Knowledge Catalog. Al optimizar la comprensión y la formulación de las búsquedas, proporciona resultados más precisos que la API de Knowledge Catalog Search estándar. Esta capacidad es fundamental, especialmente para las búsquedas complejas o extensas.
Casos de uso
El agente de descubrimiento proporciona una experiencia de conversación enriquecida para situaciones como las siguientes:
- Intenciones y restricciones complejas o combinadas: Manejo de solicitudes de búsqueda con múltiples criterios, como encontrar conjuntos de datos en
us-central1, pero excluir recursos en BigQuery - Búsqueda orientada a los negocios: Descubre activos de datos en función de la intención y el contexto empresarial, en lugar de hacer coincidir términos técnicos exactos.
- Exploración de varios turnos: Define mejor tu búsqueda a través de un diálogo conversacional para limitar los resultados.
El agente de descubrimiento se basa en la búsqueda semántica de Knowledge Catalog, que te proporciona una búsqueda híbrida lista para usar. Puedes seguir usando la búsqueda semántica de Knowledge Catalog directamente cuando necesites procesar búsquedas con un alto nivel de intención (cuando conozcas el recurso o la columna específicos), requisitos de baja latencia o la búsqueda híbrida sin configuración.
Cómo funciona
El agente de descubrimiento realiza los siguientes pasos para responder a una búsqueda:
- Analiza la entrada para comprender la intención de la búsqueda, genera múltiples variaciones de búsqueda y asigna términos a filtros de metadatos.
- Busca recursos con la búsqueda semántica de Knowledge Catalog.
- Clasifica los resultados combinados según la relevancia.
En el siguiente diagrama, se proporcionan los detalles del proceso:
El agente se basa en la API de Knowledge Catalog Search para recuperar recursos Google Cloud relevantes. En el siguiente fragmento de código, se muestra cómo el agente llama a la búsqueda semántica del Catálogo de conocimiento:
# Configure the request parameters for the
# call to Knowledge Catalog Semantic Search API.
endpoint = "dataplex.googleapis.com"
client = dataplex_v1.CatalogServiceClient(
client_options={"api_endpoint": endpoint}
)
location = "global"
consumer_project_id = "my-gcp-project"
parent_name = f"projects/{consumer_project_id}/locations/{location}"
# Call Knowledge Catalog Semantic Search API.
response = client.search_entries(
request={
"name": parent_name,
"query": query,
"page_size": 50,
"semantic_search": True,
}
)
# Extract useful metadata to share with the agent.
entries = [
{
"entry_name": result.dataplex_entry.name,
"system": result.dataplex_entry.entry_source.system,
"resource_id": result.dataplex_entry.entry_source.resource,
"display_name": result.dataplex_entry.entry_source.display_name,
}
for result in response.results
]
return {"results": entries}
Antes de comenzar
Para ejecutar el agente de detección de Knowledge Catalog, asegúrate de cumplir con los siguientes requisitos:
Roles obligatorios
Para obtener los permisos que necesitas para usar el agente de descubrimiento, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu Google Cloud proyecto iam.gserviceaccount.com:
-
Visualizador de Dataplex (
roles/dataplex.viewer) -
Usuario de Vertex AI (
roles/aiplatform.user) -
Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para usar el agente de detección. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para usar el agente de descubrimiento:
-
dataplex.projects.search -
aiplatform.endpoints.predict -
serviceusage.services.use
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Habilita las APIs
Para usar el agente de descubrimiento de Knowledge Catalog, habilita las siguientes APIs en tu proyecto: API de Knowledge Catalog, API de Vertex AI y API de Service Usage.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.
Configura el entorno
Para configurar el entorno de desarrollo del agente de descubrimiento, haz lo siguiente:
Clona el repositorio
dataplex-labs.git clone https://github.com/GoogleCloudPlatform/dataplex-labs.gitCambia al directorio del agente:
cd dataplex-labs/knowledge_catalog_discovery_agentCrea y activa un entorno virtual de Python y, luego, instala las dependencias que se indican en el archivo
requirements.txt:google-adk(Kit de desarrollo de agentes)google-cloud-dataplex(cliente de Python de Knowledge Catalog)google-api-core
python3 -m venv /tmp/kcsearch source /tmp/kcsearch/bin/activate pip3 install -r requirements.txtConfigura las variables de entorno con el siguiente comando:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID export GOOGLE_GENAI_USE_VERTEXAI=TrueReemplaza lo siguiente:
PROJECT_IDcon el ID de tu proyecto
Ejecuta el agente de descubrimiento como el agente raíz
Para ejecutar el agente de detección directamente como agente raíz, haz lo siguiente:
- En el archivo
agent.pyubicado en la carpetaknowledge_catalog_discovery_agent, cambia el nombre de la variablediscovery_agentaroot_agent. Ejecuta el agente con el comando
adk run:adk run path/to/agent/parent/folderReemplaza lo siguiente:
path/to/agent/parent/folderpor el directorio principal que contiene la carpeta con tu agente. Por ejemplo, si tu agente reside enknowledge_catalog_discovery_agent/, ejecutaadk rundesde el directorioagents/.
Ejecuta el agente de descubrimiento como un agente secundario
Para integrar el agente de descubrimiento en un agente personalizado más grande, como my_custom_agent, haz lo siguiente:
Configura la estructura de tu proyecto para que contenga el módulo del agente de descubrimiento:
my_custom_agent/ ├── agent.py └── knowledge_catalog_discovery_agent/ ├── SKILL.md ├── agent.py ├── tools.py └── utils.pyEn el archivo
agent.pyde tu agente personalizado, importa el agente de descubrimiento y úsalo como herramienta del agente. Consulta el ejemplo:root_agent = llm_agent.Agent( model=google_llm.Gemini(model=GEMINI_MODEL), name="my_custom_agent", instruction=( "You are a Custom Agent. Your goal is to help users understand" " their data landscape, evaluate data assets, and derive insights" " from available resources. **IMPORTANT**: You should use the" " `knowledge_catalog_discovery_agent` to search for and discover" " data assets. For best results, pass in the Natural Language user'" " query as is to the `knowledge_catalog_discovery_agent`. Once assets" " are found, you should analyze their metadata, compare them, and" " provide recommendations or summaries to the user to help them make" " decisions. Focus on general metadata summary and comparison." ), tools=[ agent_tool.AgentTool(discovery_agent), ], )Ejecuta el agente con el comando
adk run:adk run path/to/agent/parent/folderReemplaza lo siguiente:
path/to/agent/parent/folderpor el directorio principal que contiene tu carpetamy_custom_agent/Por ejemplo, si tu agente reside enagents/my_custom_agent/, ejecutaadk rundesde el directorioagents/.
¿Qué sigue?
- Comprende la sintaxis de búsqueda de Knowledge Catalog.
- Obtén más información sobre el Kit de desarrollo de agentes.