En este tutorial, te mostraré cómo construir un chatbot de generación de leads para empresas solares utilizando Google Chat y OpenAI. Esta es una excelente manera de generar leads y proporcionar a los clientes información sobre tus productos y servicios. Utilizaremos la API de Assistant, que es una nueva herramienta poderosa que te permite construir aplicaciones de IA conversacionales.
**Prerrequisitos**
Para seguir este tutorial, necesitarás lo siguiente:
* Una cuenta de Google Cloud
* Una cuenta de Replit
* Una cuenta de Voiceflow
* Una cuenta de Airtable
* Una base de conocimientos de código abierto (como Google Search o Wikipedia)
* El SDK de Assistant
* La CLI de Assistant
* La API de Webhooks de Assistant
**Paso 1: Crear un proyecto de Google Cloud**
Primero, necesitamos crear un proyecto de Google Cloud. Esto nos permitirá acceder a la API de Assistant y otros servicios de Google Cloud.
1. Ve a la [Consola de Google Cloud Platform](https://console.cloud.google.com/) y haz clic en **Crear proyecto**.
2. Dale un nombre a tu proyecto y haz clic en **Crear**.
3. Haz clic en **menú hamburguesa** > **APIs y servicios** > **Biblioteca**.
4. Busca **Assistant** y haz clic en **Habilitar**.
5. Haz clic en **menú hamburguesa** > **IAM y administración** > **Claves de API**.
6. Haz clic en **Crear clave** y selecciona **Clave de API**.
7. Copia la clave de API y guárdala en un lugar seguro.
**Paso 2: Crear una cuenta de Replit**
Replit es un IDE en línea gratuito que podemos usar para desarrollar nuestro chatbot.
1. Ve a [Replit](https://replit.com/) y crea una cuenta.
2. Haz clic en **Nuevo Repl** y selecciona **Python**.
3. Copia y pega el siguiente código en el editor:
```
import os
import requests
import json
def create_assistant(modelo, herramientas, base_de_conocimientos):
"""Crea una instancia de Assistant con el modelo, las herramientas y la base de conocimientos especificados."""
id_assistant = os.getenv("ID_ASSISTANT")
if id_assistant is None:
raise ValueError("No se ha establecido ningún ID de assistant")
data = {
"modelo": modelo,
"herramientas": herramientas,
"base_de_conocimientos": base_de_conocimientos,
}
response = requests.post(
f"https://dialogflow.googleapis.com/v2/agents/{id_assistant}",
headers={"Authorization": f"Bearer {os.getenv('CREDENCIALES_APLICACION_GOOGLE')}"},
data=json.dumps(data),
)
if response.status_code != 200:
raise Exception(f"No se pudo crear el assistant: {response.status_code}")
return response.json()["assistant"]
def obtener_lead(id_hilo):
"""Obtiene un lead del ID de hilo especificado."""
clave_api_airtable = os.getenv("CLAVE_API_AIRTABLE")
id_base_airtable = os.getenv("ID_BASE_AIRTABLE")
response = requests.get(
f"https://api.airtable.com/v0/{id_base_airtable}/Leads?filterByFormula={'threadId = ' + id_hilo}",
headers={"Authorization": f"Bearer {clave_api_airtable}"},
)
if response.status_code != 200:
raise Exception(f"No se pudo obtener el lead: {response.status_code}")
return response.json()["records"][0]
def main():
"""Función principal."""
# Crea el assistant.
assistant = create_assistant(
os.getenv("ID_MODELO"),
os.getenv("ID_HERRAMIENTAS"),
os.getenv("ID_BASE_CONOCIMIENTOS"),
)
# Inicia el assistant.
response = requests.post(
f"https://dialogflow.googleapis.com/v2/agents/{assistant['id']}/conversations",
headers={"Authorization": f"Bearer {os.getenv('CREDENCIALES_APLICACION_GOOGLE')}"},
data=json.dumps({"text": "Hola"}),
)
# Obtén el lead.
lead = obtener_lead(response.json()["conversation"]["id"])
# Imprime la información del lead