Esta es una demostración de IA generativa en tiempo real con Confluent Cloud. La idea fue influenciada por esta increíble capacitación en Udemy dirigida por Eden Marco (LangChain: desarrollo de aplicaciones impulsadas por LLM con LangChain). Eden Marco me dio el enlace promocionado. Eden Marco hace una buena introducción al desarrollo de Lngchain LLM en Python. Tomé la idea de romper el hielo y la trasladé a un caso de uso real ejecutando Data in Motion con Confluent e IA.
El repositorio implementará:
Clona este repositorio en tu escritorio:
cd $HOME # or what-ever directory you want to use
git clone https://github.com/ora0600/genai-with-confluent.git
cd genai-with-confluent/terraform/
La ejecución de la demostración está completamente automatizada, pero antes de la ejecución, debe configurar un par de cosas aquí:
Cree una cuenta de desarrollador de Salesforce Regístrese aquí Configure Salesforce CDC, consulte Seguir mi configuración con capturas de pantalla aquí Pasos de alto nivel:
Necesita todos los parámetros para Salesforce CDC Connector, así que guárdelos de forma segura.
Necesita una cuenta funcional para Confluent Cloud. Registrarse en Confluent Cloud es muy fácil y obtendrás un presupuesto de $400 para tus primeras pruebas gratis. Si no tiene una cuenta de Confluent Cloud que funcione, regístrese en Confluent Cloud.
pip3 install confluent_kafka
pip3 install requests
pip3 install fastavro
pip3 install avro
pip3 install jproperties
pip3 install langchain
pip3 install openai
pip3 install langchain_openai
pip3 install -U langchain-community
pip3 install google-search-results
pip3 install Flask
pip3 install langchain_core
pip3 install pydantic
Para Confluent Cloud: cree una clave API en Confluent Cloud a través de CLI:
confluent login
confluent api-key create --resource cloud --description " API for terraform "
# It may take a couple of minutes for the API key to be ready.
# Save the API key and secret. The secret is not retrievable later.
# +------------+------------------------------------------------------------------+
# | API Key | <your generated key> |
# | API Secret | <your generated secret> |
# +------------+------------------------------------------------------------------+
Copie todos los parámetros de Confluent Cloud en el archivo terraform.tfvars
ejecutando el siguiente comando con sus datos:
cat > $PWD /terraform/terraform.tfvars << EOF
confluent_cloud_api_key = "{Cloud API Key}"
confluent_cloud_api_secret = "{Cloud API Key Secret}"
sf_user= "salesforce user"
sf_password = "password"
sf_cdc_name = "LeadChangeEvent"
sf_password_token = "password token"
sf_consumer_key = "consumer key of connected app"
sf_consumer_secret = "consumer secret of connect app"
EOF
Terraform tomará todos estos parámetros y realizará la configuración por usted y finalmente implementará todos los recursos confluentes en la nube, incluidas las cuentas de servicio y la vinculación de roles.
Usamos langchain LLM versión 0.1 Langchain Docu
PISTA:
Ahora costará dinero. Lamentablemente, las API no son gratuitas. Gasto 10 $ en IA abierta, 10 $ en ProxyCurl API y SERP API todavía está en estado gratuito. |
Primero necesitamos una clave que nos permita usar OpenAI. Siga los pasos desde aquí para crear una cuenta y luego solo una clave API.
Siguiente tarea: crear la clave API de proxycurl. ProxyCurl se utilizará para extraer Linkedin. Regístrate en proxyurl y compra créditos por 10$ (o lo que creas que es suficiente, tal vez empieces más menos), sigue estos pasos
Para poder buscar en Google la URL correcta del perfil de LinkedIn, necesitamos una clave API de SERP API desde aquí.
Ahora, coloque todas las claves en el archivo env-vars
ejecutando el comando:
cat > $PWD /terraform/env.vars << EOF
export PYTHONPATH=/YOURPATH
export OPENAI_API_KEY=YOUR openAI Key
export PROXYCURL_API_KEY=YOUR ProxyURL Key
export SERPAPI_API_KEY=Your SRP API KEy
EOF
Felicitaciones, la preparación está hecha. Esta fue una gran trampa, lo sé.
Ahora viene la parte fácil. Simplemente ejecute terraform. Ejecute terraform y todos los recursos de la nube confluentes se implementarán automáticamente:
cd terraform
terraform init
terraform plan
terraform apply
Esto llevará un tiempo. Se proporcionará el recurso de nube de Confluent. Si se hace esto, las terminales iterm2 se abrirán automáticamente y se ejecutarán tres servicios.
Bien, ahora necesitas agregar un nuevo cliente potencial a Salesforce. Este es el último paso manual.
La IA generativa tomará un nuevo liderazgo del clúster de Kafka y realizará acciones de LLM obteniendo información de Linkedin y ejecutando el mensaje automáticamente y en tiempo real.
El mensaje se verá como una tarea para Chatgpt, formulamos que C>hatgpt debería formular el siguiente contenido:
Estamos ejecutando el modelo chatgpt-3.5-turbo
en esta demostración. Este modelo tiene tokens limitados, pero actualmente es el modelo más rápido y antiguo. Y por supuesto el más barato. Si intentas utilizar a Kai Waehner como líder, verás que las fichas del modelo actual no son suficientes. Lo que puedes hacer es cambiar el modelo. Esta sería la forma más sencilla; otro método sería dividir el contenido en fragmentos. Eche un vistazo a los modelos actuales para comprobar la cantidad de tokens por modelo.
Empiezo con mis pruebas:
model_name="gpt-4-turbo"
en ice_breaker.py línea 135 y reinicie el cliente.En mi opinión, la demostración simple no es un caso de uso para el patrón de generación aumentada de recuperación (RAG). Obtenemos toda la información de una API determinada y no tiene sentido almacenar los datos en una base de datos vectorial. Es mucho más eficiente cargar la información a través de API en tiempo real, entonces serán datos nuevos. Utilice el modelo correcto para su caso de uso; en nuestro caso debería ser un modelo rápido con mayor cantidad de tokens.
Salesforce restablece su contraseña y debe cambiarla de vez en cuando. Si cambia la contraseña, también obtendrá un nuevo token de seguridad de contraseña. No olvide cambiar esto en el archivo terraform.tfvars
.
Si ha terminado, puede detener los programas en Terminal con CTRL+c y destruir todo en Confluent Cloud:
terraform destroy
Si recibe un error, ejecute destruir nuevamente, hasta que todo se elimine, entonces estará bastante seguro de que no se están ejecutando recursos y se consumen costos.
terraform destroy
Necesita una cuenta de Confluent Cloud (los nuevos obtienen un crédito de 400 $ gratis). Necesitas una Cuenta OPenAI, con crédito vigente. Necesita una cuenta API de ProxyCurl, con créditos vigentes. Necesita una cuenta SERP API, aquí encontrará una cantidad inicial de conexiones. En mi caso esto fue suficiente.
En total gasto 20$ (Open AI, ProxyCurl) y todavía no me quedo sin créditos.