O agente de descoberta do Knowledge Catalog é um assistente com tecnologia de IA que melhora a relevância da pesquisa para consultas complexas em linguagem natural com base nos recursos de pesquisa do Knowledge Catalog. Ao otimizar a compreensão e a formulação de consultas, ele oferece resultados mais precisos do que a API Knowledge Catalog Search padrão. Esse recurso é essencial, especialmente para consultas complexas ou longas.
Casos de uso
O agente de descoberta oferece uma experiência de conversa avançada para cenários como:
- Intenções e restrições complexas ou combinadas:processamento de solicitações de pesquisa com vários critérios, como encontrar conjuntos de dados em
us-central1, mas excluindo recursos no BigQuery. - Pesquisa orientada a negócios:descoberta de recursos de dados com base na intenção e no contexto de negócios, em vez de termos técnicos exatos.
- Exploração de várias etapas:refinamento da pesquisa por meio de um diálogo de conversa para restringir os resultados.
O agente de descoberta é criado com base na pesquisa semântica do Knowledge Catalog, que oferece uma pesquisa híbrida pronta para uso. Você pode continuar usando a pesquisa semântica do Knowledge Catalog diretamente quando precisar processar pesquisas de alta intenção (quando souber o recurso ou a coluna específica), requisitos de baixa latência ou pesquisa híbrida sem configuração.
Como funciona
O agente de descoberta executa as etapas a seguir para responder a uma consulta de pesquisa:
- Analisa a entrada para entender a consulta, gera várias variações de pesquisa e mapeia termos para filtros de metadados.
- Pesquisa recursos usando a pesquisa semântica do Knowledge Catalog.
- Classifica os resultados mesclados com base na relevância.
O diagrama a seguir fornece os detalhes do processo:
O agente depende da API Knowledge Catalog Search para buscar recursos relevantes Google Cloud . O snippet de código a seguir mostra como o agente chama a pesquisa semântica do Knowledge Catalog:
# 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 começar
Para executar o agente de descoberta do Knowledge Catalog, verifique se você atende aos seguintes requisitos:
Funções exigidas
Para receber as permissões necessárias para usar o agente de descoberta, peça ao administrador para conceder a você os seguintes papéis do IAM no seu Google Cloud projeto iam.gserviceaccount.com:
-
Leitor do Dataplex (
roles/dataplex.viewer) -
Usuário da Vertex AI (
roles/aiplatform.user) -
Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para usar o agente de descoberta. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para usar o agente de descoberta:
-
dataplex.projects.search -
aiplatform.endpoints.predict -
serviceusage.services.use
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Ativar APIs
Para usar o agente de descoberta do Knowledge Catalog, ative as seguintes APIs no seu projeto: API Knowledge Catalog, API Vertex AI e API Service Usage.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder
papéis.
Configurar o ambiente
Para configurar o ambiente de desenvolvimento do agente de descoberta, faça o seguinte:
Clone o repositório
dataplex-labs.git clone https://github.com/GoogleCloudPlatform/dataplex-labs.gitMude para o diretório do agente:
cd dataplex-labs/knowledge_catalog_discovery_agentCrie e ative um ambiente virtual do Python e instale as dependências listadas no arquivo
requirements.txt:google-adk(Kit de Desenvolvimento de Agente)google-cloud-dataplex(cliente do Python do Knowledge Catalog)google-api-core
python3 -m venv /tmp/kcsearch source /tmp/kcsearch/bin/activate pip3 install -r requirements.txtConfigure as variáveis de ambiente com o seguinte comando:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID export GOOGLE_GENAI_USE_VERTEXAI=TrueSubstitua:
PROJECT_IDpelo ID do seu projeto
Executar o agente de descoberta como o agente raiz
Para executar o agente de descoberta diretamente como o agente raiz, faça o seguinte:
- No arquivo
agent.pylocalizado na pastaknowledge_catalog_discovery_agent, renomeie a variáveldiscovery_agentpararoot_agent. Execute o agente usando o
adk runcomando:adk run path/to/agent/parent/folderSubstitua:
path/to/agent/parent/folderpelo diretório pai que contém a pasta com o agente. Por exemplo, se o agente estiver emknowledge_catalog_discovery_agent/, executeadk runno diretórioagents/.
Executar o agente de descoberta como um subagente
Para integrar o agente de descoberta a um agente personalizado maior, como my_custom_agent, faça o seguinte:
Configure a estrutura do projeto para conter o módulo do agente de descoberta:
my_custom_agent/ ├── agent.py └── knowledge_catalog_discovery_agent/ ├── SKILL.md ├── agent.py ├── tools.py └── utils.pyNo arquivo
agent.pydo agente personalizado, importe o agente de descoberta e use-o como uma ferramenta de agente. Consulte o exemplo: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), ], )Execute o agente usando o comando
adk run:adk run path/to/agent/parent/folderSubstitua:
path/to/agent/parent/folderpelo diretório pai que contém a pastamy_custom_agent/. Por exemplo, se o agente estiver emagents/my_custom_agent/, executeadk runno diretórioagents/.
A seguir
- Entenda a sintaxe de pesquisa do Knowledge Catalog.
- Saiba mais sobre o Kit de Desenvolvimento de Agente.