Crea un agente de exploración de datos de IA con Gemini

Compila una interfaz de chat potenciada por inteligencia artificial (IA) para tu empresa interfaces de programación de sistemas y permite que tus colegas hagan preguntas sobre tu datos de la empresa. El análisis y la creación de informes sobre los datos de tu organización es esencial para mejorar tu forma de hacer negocios. Encontrar problemas, descubrir tendencias e investigaciones de los resultados son posibles con los datos correctos, pero como desarrollador, ayudar a tus colegas no encargados de programar a descubrir los datos correctos puede ser desafiante.

El SQL Talk es una aplicación de código abierto que usa tecnología de IA generativa para responder preguntas sobre los datos de la empresa. El proyecto usa la API de Gemini y la Llamadas a función para transformar las preguntas sobre datos de la empresa en consultas en SQL y llamadas a la API y, luego, transformar los resultados en lenguaje simple. Puedes usar este proyecto punto de partida para crear un agente de datos para tu propio negocio y ayudar a tu y tus colegas obtienen respuestas sin que tengas que escribir código de un solo uso.

Para ver una descripción general en video del proyecto y cómo extenderlo, incluidas las estadísticas de la gente que lo construye, échale un vistazo Agente de datos de IA | Compila con la IA de Google. De lo contrario, puedes comenzar a extender el proyecto con el siguiente comando instrucciones.

Interfaz de usuario de la aplicación de proyecto de SQL Talk

Figura 1: Interfaz de usuario de la aplicación del proyecto de SQL Talk.

Configura el proyecto

Estas instrucciones te guiarán a través de la configuración del proyecto de SQL Talk para desarrollo y pruebas. Los pasos generales son crear la charla de SQL proyecto, la configuración de un Editor de Google Cloud Shell de desarrollo de software, obtener un ID del proyecto de Google Cloud y usar un secuencia de comandos para configurar la configuración del proyecto. En estas instrucciones, se describe cómo configurar el proyecto con el editor de Cloud Shell, lo que facilita y actualizar el proyecto sea rápido y conveniente.

Crea una instancia de Cloud Shell para el proyecto

Puedes configurar el proyecto de SQL Talk clonando el repositorio del proyecto en un instancia de Cloud Shell. Este proceso configura un entorno de desarrollo virtual instancia dentro de la infraestructura de Google Cloud del proyecto y clona la de código abierto en ese entorno virtual.

Sigue estos pasos para crear una instancia de Cloud Shell para SQL Talk:

Este vínculo configura una instancia del editor de Google Cloud Shell y clona el para SQL Talk en la instancia.

Editor de Google Cloud Shell con el código del proyecto de SQL Talk

Figura 2: Proyecto de SQL Talk clonado en un editor de Google Cloud Shell de desarrollo de software.

Obtén un ID del proyecto de la nube

El proyecto de SQL Talk usa un ID del proyecto de Google Cloud para conectarse a Google Cloud servicios, incluidos los modelos de Gemini. Debes configurar el ID del proyecto Editor de Cloud Shell para permitir que la aplicación se conecte con estos servicios.

Sigue estos pasos para conectar el Editor de Cloud Shell a un ID del proyecto:

  1. Navega a Google Cloud console y accede a tu cuenta si es necesario.
  2. Selecciona un proyecto de Cloud existente. crea una nueva.
  3. Toma nota del ID del proyecto de Cloud para el proyecto.
  4. Conecta la instancia de Editor a tu proyecto y configúralo. En la ventana del Editor de Cloud Shell, ingresa el siguiente comando en el panel de la terminal:

    gcloud config set project YOUR_PROJECT_ID
    

Configura el proyecto de SQL Talk

El proyecto SQL Talk usa servicios de Google Cloud para ejecutar el proyecto, que incluyen el servicio de base de datos de BigQuery y la API de Vertex AI para conectarte a los modelos de Gemini. El proyecto SQL Talk incluye una secuencia de comandos setup.sh que configura el proyecto con los servicios de Google Cloud requeridos y, luego, inicia la versión predeterminada de la en un proyecto final.

Para configurar y ejecutar la instancia del proyecto del editor de Cloud Shell, sigue estos pasos:

  1. En el panel de la terminal de la ventana del Editor de Cloud Shell, navega a Cloud Directorio del proyecto de Shell SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. En el panel de la terminal, ingresa el siguiente comando:

    bash setup.sh
    

Cuando la secuencia de comandos de configuración se complete correctamente, deberías ver un mensaje similar en la ventana de terminal del Editor de Cloud Shell. Este mensaje indica que el proceso de configuración se realizó correctamente y que la aplicación SQL Talk está en ejecución:

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

Prueba el proyecto

Una vez que hayas completado la configuración del proyecto SQL Talk, puedes probar el una aplicación para verificar que funciona como se espera. La secuencia de comandos de configuración automáticamente la aplicación cuando la ejecutas, y puedes reiniciar el una aplicación con los siguientes pasos.

Para ejecutar la aplicación SQL Talk, haz lo siguiente:

  1. Si el editor de Cloud Shell estuvo inactivo y desconectado, es posible que debas para volver a conectarte al ID del proyecto de la nube.

    gcloud config set project YOUR_PROJECT_ID
    
  2. En el panel de la terminal de la ventana del Editor de Cloud Shell, navega a Cloud Directorio de proyectos de Shell SQL Talk.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. En el panel de la terminal, ingresa el siguiente comando.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Visualiza la aplicación SQL Talk. En la parte superior derecha del editor de Cloud Shell selecciona el botón Vista previa en la Web y, luego, Vista previa en el puerto 8080.

Encabezado del editor de Cloud Shell con el botón Vista previa en la Web destacado

Para ver las actualizaciones de la aplicación SQL Talk:

  • En la vista previa web de la aplicación web de SQL Talk, vuelve a cargar el navegador o del navegador.

Para detener la aplicación SQL Talk:

  • En el panel de la terminal de la ventana del Editor de Cloud Shell, escribe Ctrl-C.

Modifica la aplicación

Puedes cambiar el comportamiento y agregar capacidades a la aplicación SQL Talk modificando el código de Python para la aplicación. En esta sección, se describe cómo agregar una nueva llamada a función a la aplicación SQL Talk.

Las llamadas a funciones de la API de Gemini función usa una sintaxis específica para definir las funciones que usará la función generativa para responder preguntas o resolver problemas. Esta sintaxis no necesita coincide exactamente con la sintaxis de una llamada a la API real. En cambio, debes usar Function Función de llamada para forzar al modelo generativo a proporcionar entradas de datos específicas o parámetros que se ajustan a la sintaxis de la llamada a la API y, luego, los usan para ejecutar llamadas a la API reales en el código de tu aplicación.

En esta implementación de ejemplo, se muestra cómo crear una definición de llamada a función para enumerar consultas de bases de datos o trabajos recientes y, luego, asignar esa definición al llamada a la API real en el código de la aplicación de SQL Talk.

Agrega una definición de llamada a función

Agrega una llamada a función nueva para mostrar los trabajos o las búsquedas recientes de la base de datos. Esta definición se usa en el modelo generativo para comprender qué hace la llamada a la API. y qué parámetros de entrada requiere. Esta definición de función de ejemplo es definidos sin parámetros.

Para agregar una llamada a función nueva a la aplicación, haz lo siguiente:

  1. En la ventana del editor de Cloud Shell, abre el archivo de código sql-talk-app/app.py.
  2. Después de la declaración de la función list_datasets_func, agrega una nueva 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. Agrega la función nueva al 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 agregar código que ejecute la llamada a la API de la función nueva, haz lo siguiente:

  • En el archivo de código sql-talk-app/app.py, agrega una nueva cláusula if al archivo 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])
    

Recursos adicionales

Para obtener más información sobre el proyecto de consulta en SQL, revisa el repositorio de código y consulta la Entrada de blog de la comunidad de Cloud sobre el proyecto SQL Talk. Si necesitas ayuda para compilar la aplicación o estás Si buscas colaborar con otros desarrolladores, consulta la página de Google Developers de Discord de la comunidad y Foro de IA/AA de Google Cloud. Para ver más proyectos de la IA de Build with Google, consulta la lista de reproducción de videos.