Crie um agente de exploração de dados de IA com o Gemini

Crie uma interface de chat com inteligência artificial (IA) para sua empresa de programação do sistema e permita que seus colegas façam perguntas sobre sua dados da empresa. Fazer análises e relatórios com os dados da sua organização é é essencial para melhorar seus negócios. Encontrar problemas, descobrir tendências e investigações de resultados são possíveis com os dados certos, desenvolvedor, ajudar seus colegas que não codificaram a descobrir os dados certos pode ser cada vez mais desafiador.

O SQL Talk (em inglês) é um aplicativo de código aberto que usa a tecnologia de IA generativa para e responder a perguntas sobre dados da empresa. O projeto usa a API Gemini e as Chamada de função para transformar perguntas de dados de negócios em consultas SQL e chamadas de API e, em seguida, e transformar os resultados em uma linguagem simples. Você pode usar este projeto como ponto de partida para criar um agente de dados para sua própria empresa e ajudar seu seus colegas de trabalho consigam respostas sem que você precise escrever vários códigos de uso único.

Para um vídeo de visão geral do projeto e como estendê-lo, incluindo insights dos criadores, confira Agente de dados de IA | Crie com a IA do Google. Caso contrário, você pode começar a ampliar o projeto usando o seguinte instruções.

Interface do usuário do aplicativo de projeto SQL Talk

Figura 1. Interface do usuário do aplicativo do projeto SQL Talk.

Configurar o projeto

Estas instruções ajudam você a obter a configuração do projeto SQL Talk para desenvolvimento e teste. As etapas gerais são criar o SQL Talk do projeto, configurando um Editor do Google Cloud Shell em um projeto de desenvolvimento de software, conseguir um ID de projeto do Google Cloud e usar script para definir as configurações do projeto. Essas instruções descrevem como definir o projeto usando o Editor do Cloud Shell, o que facilita configurar, executar e e atualizar o projeto de maneira rápida e conveniente.

Criar uma instância do Cloud Shell para o projeto

É possível configurar o projeto do SQL Talk clonando o repositório do projeto em um instância do Cloud Shell. Esse processo configura um ambiente de desenvolvimento virtual na infraestrutura do Google Cloud para o projeto e clona o repositório de código no ambiente virtual.

Para criar uma instância do Cloud Shell para o SQL Talk:

Esse link configura uma instância do Editor do Google Cloud Shell e clona a do SQL Talk na instância.

Editor do Google Cloud Shell com o código do projeto SQL Talk mostrado

Figura 2. Projeto do SQL Talk clonado em um editor do Google Cloud Shell ambiente de desenvolvimento de software.

Receba um ID do projeto do Cloud

O projeto do SQL Talk usa um ID do projeto do Google Cloud para se conectar ao Google Cloud e serviços, incluindo os modelos Gemini. Você configura um ID de projeto na Editor do Cloud Shell para permitir que o aplicativo se conecte a esses serviços.

Para conectar o editor do Cloud Shell a um ID do projeto:

  1. Acesse o site do Google Cloud console e faça login, se necessário.
  2. Selecione um projeto do Cloud ou criar uma.
  3. Anote o ID do projeto do Cloud.
  4. Conecte a instância do Editor ao seu projeto e configure-o. Na janela do editor do Cloud Shell, digite o seguinte comando no painel do terminal:

    gcloud config set project YOUR_PROJECT_ID
    
.

Configurar o projeto do SQL Talk

O projeto SQL Talk usa os serviços do Google Cloud para executar o projeto, incluindo o serviço de banco de dados do BigQuery e a API Vertex AI para se conectar aos modelos Gemini. O projeto SQL Talk inclui um script setup.sh que configura o projeto com os serviços necessários do Google Cloud e inicia a versão padrão do projeto.

Para configurar e executar a instância do editor do Cloud Shell do projeto:

  1. No painel do terminal da janela do editor do Cloud Shell, navegue até o Cloud Diretório do projeto do Shell SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. Digite o seguinte comando no painel do terminal:

    bash setup.sh
    

Quando o script de configuração for concluído, uma mensagem semelhante a esta vai aparecer. para o seguinte na janela do terminal do Editor do Cloud Shell. Esta mensagem indica que o processo de configuração foi bem-sucedido e o aplicativo SQL Talk é em execução:

You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080

Testar o projeto

Depois de concluir a configuração do projeto SQL Talk, você poderá testar para verificar se ele está funcionando como esperado. O script de configuração inicia automaticamente o aplicativo quando você o executa, e você pode reiniciar o aplicativo seguindo as etapas abaixo.

Para executar o aplicativo SQL Talk:

  1. Se o editor do Cloud Shell estiver inativo e desconectado, talvez seja necessário para se reconectar ao ID do projeto do Cloud.

    gcloud config set project YOUR_PROJECT_ID
    
  2. No painel do terminal da janela do editor do Cloud Shell, navegue até o Cloud do Cloud SQL Talk.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. No painel do terminal, digite o comando a seguir.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Visualize o aplicativo SQL Talk. No canto superior direito do editor do Cloud Shell selecione o botão Visualização da Web e, em seguida, Visualizar na porta 8080.

Cabeçalho do editor do Cloud Shell com o botão "Visualização na Web" destacado

Para visualizar as atualizações do aplicativo SQL Talk:

  • Na visualização da Web do aplicativo da Web SQL Talk, recarregue o navegador ou guia do navegador.

Para interromper o aplicativo SQL Talk:

  • No painel do terminal da janela do Editor do Cloud Shell, digite Ctrl-C.

Modificar o aplicativo

É possível alterar o comportamento e adicionar recursos ao aplicativo SQL Talk modificando o código Python do aplicativo. Esta seção descreve como adicionar uma nova chamada de função ao aplicativo SQL Talk.

Chamada de função da API Gemini usa uma sintaxe específica para definir as funções a serem usadas pelo para responder perguntas ou resolver problemas. Essa sintaxe não precisa correspondem exatamente à sintaxe de uma chamada de API real. Em vez disso, use a função O recurso de chamada para forçar o modelo generativo a fornecer entradas de dados ou parâmetros que estejam em conformidade com a sintaxe de chamada da API e, em seguida, usem esses parâmetros para a executar as chamadas de API reais no código do seu aplicativo.

Este exemplo de implementação mostra como criar uma definição de chamada de função para listar consultas ou trabalhos recentes do banco de dados e, em seguida, mapear essa definição para a chamada de API real dentro do código do aplicativo SQL Talk.

Adicionar uma definição de chamada de função

Adicione uma nova chamada de função para listar consultas ou jobs recentes do banco de dados. Isso é usada pelo modelo generativo para entender o que a chamada de API faz e os parâmetros de entrada necessários. Este exemplo de definição de função é definidos sem parâmetros.

Para adicionar uma nova chamada de função ao aplicativo:

  1. Na janela do editor do Cloud Shell, abra o arquivo de código sql-talk-app/app.py.
  2. Após a declaração da função list_datasets_func, adicione um novo FunctionDeclaration.

    list_jobs_func = FunctionDeclaration(
        name="list_jobs",
        description="Get a list of the 10 most recent database requests to help answer the user's question",
        parameters={
            "type": "object",
            "properties": {
      },
    },
    )
    
  3. Adicione a nova função ao objeto sql_query_tool.

    sql_query_tool = Tool(
        function_declarations=[
            sql_query_func,
            list_datasets_func,
            List_jobs_func,  # add this new function
            list_tables_func,
            get_table_func,
        ],
    )
    

Para adicionar o código e executar a chamada de API da nova função:

  • No arquivo de código sql-talk-app/app.py, adicione uma nova cláusula if ao repetição while function_calling_in_process:.

    if response.function_call.name == "list_datasets":
        ...
    
    # add this if clause for list_jobs function
    if response.function_call.name == "list_jobs":
        api_response = client.list_jobs(max_results=10)  # API request(s)
        api_response = str([job.job_id for job in api_response])
        api_requests_and_responses.append(
          [response.function_call.name,params, api_response])
    

Outros recursos

Para mais informações sobre o projeto de consulta SQL, acesse a repositório de códigos e confira o Postagem do blog da Comunidade do Cloud sobre o projeto SQL Talk. Se você precisar de ajuda para criar o aplicativo ou quiser colaborar com outros desenvolvedores, confira o Google Developers o servidor do Discord da comunidade Fórum de IA/ML do Google Cloud. Para mais projetos do Build with Google AI, confira a playlist de vídeos.