Il s'agit d'une démo d'IA générative en temps réel avec Confluent Cloud. L'idée a été influencée par cette superbe formation Udemy dirigée par Eden Marco (LangChain - Développer des applications propulsées par LLM avec LangChain). Eden Marco m'a donné le lien promu. Eden Marco fait une très bonne introduction au développement de Lngchain LLM en Python. J'ai repris l'idée brise-glace et l'ai transposée dans un cas d'utilisation réel exécutant Data in Motion avec Confluent et AI.
Le dépôt déploiera :
Veuillez cloner ce référentiel sur votre bureau :
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/
L'exécution de la démonstration est entièrement automatisée, mais avant l'exécution, vous devez configurer quelques éléments ici :
Créez un compte de développeur Salesforce Inscrivez-vous ici Configurez Salesforce CDC, voir Suivez ma configuration avec des captures d'écran ici Étapes de haut niveau :
Vous avez besoin de tous les paramètres pour le connecteur Salesforce CDC, veuillez donc les stocker en toute sécurité.
Vous avez besoin d'un compte fonctionnel pour Confluent Cloud. L'inscription à Confluent Cloud est très simple et vous bénéficierez d'un budget de 400 $ pour vos premiers essais gratuits. Si vous n'avez pas de compte Confluent Cloud fonctionnel, veuillez vous inscrire à 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
Pour Confluent Cloud : créez une clé API dans Confluent Cloud via 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> |
# +------------+------------------------------------------------------------------+
Copiez tous les paramètres de Confluent Cloud dans le fichier terraform.tfvars
en exécutant la commande suivante avec vos données :
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 prendra tous ces paramètres et effectuera la configuration pour vous et enfin déployera toutes les ressources cloud confluentes, y compris les comptes de service et la liaison de rôle.
Nous utilisons Langchain LLM version 0.1 Langchain Docu
INDICE:
Maintenant, cela va coûter de l'argent. Malheureusement, les API ne sont pas gratuites. Je dépense 10 $ pour l'IA ouverte, 10 $ pour l'API ProxyCurl et l'API SERP est toujours en statut gratuit. |
Nous avons d’abord besoin d’une clé qui nous permette d’utiliser OpenAI. Suivez les étapes à partir d'ici pour créer un compte, puis une clé API uniquement.
Tâche suivante : créer une clé API proxycurl. ProxyCurl sera utilisé pour gratter Linkedin. Inscrivez-vous sur proxyurl et achetez des crédits pour 10 $ (ou tout ce que vous pensez être suffisant, peut-être que vous commencez plus moins), suivez ces étapes
Pour pouvoir rechercher dans Google l'URL correcte du profil linkedin, nous avons besoin d'une clé API de l'API SERP à partir d'ici.
Maintenant, placez toutes les clés dans le fichier env-vars
en exécutant la commande :
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
Félicitation, la préparation est terminée. C'était une énorme configuration, je sais.
Vient maintenant la partie la plus facile. Exécutez simplement Terraform. Exécutez Terraform et toutes les ressources cloud confluentes seront déployées automatiquement :
cd terraform
terraform init
terraform plan
terraform apply
Cela prendra un certain temps. La ressource Confluent Cloud sera mise à disposition. Si cela est fait, les terminaux iterm2 seront ouverts automatiquement et trois services seront exécutés.
Ok, vous devez maintenant ajouter un nouveau prospect dans Salesforce. C'est la dernière étape manuelle.
L'IA générative prendra une nouvelle direction à partir du cluster Kafka et effectuera une action LLM en obtenant des informations de Linkedin et en exécutant l'invite automatiquement et en temps réel.
L'invite sera considérée comme une tâche pour Chatgpt, nous avons formulé que C>hatgpt devrait formuler le contenu suivant :
Nous exécutons le modèle chatgpt-3.5-turbo
dans cette démo. Ce modèle a un nombre limité de jetons, mais est actuellement le modèle le plus rapide et le plus ancien. Et bien sûr le moins cher. Si vous essayez d'utiliser Kai Waehner comme Lead, vous verrez que les jetons du modèle actuel ne suffisent pas. Ce que vous pouvez faire, c'est changer de modèle. Ce serait le moyen le plus simple, une autre méthode consisterait à diviser le contenu en morceaux. Veuillez jeter un œil aux modèles actuels pour vérifier le nombre de jetons par modèle.
Je commence par mes tests :
model_name="gpt-4-turbo"
dans la ligne 135 de ice_breaker.py et redémarrez le client.La démo simple n'est pas un cas d'utilisation pour le modèle Retrieval Augmented Generation (RAG), à mon avis. Nous obtenons toutes les informations d'une API donnée et cela n'a aucun sens de stocker les données dans une base de données vectorielle. Il est beaucoup plus efficace de charger les informations via l'API en temps réel, alors il s'agit de données fraîches. Utilisez le bon modèle pour votre cas d'utilisation, dans notre cas, il devrait s'agir d'un modèle rapide avec un nombre plus élevé de jetons.
Salesforce réinitialise votre mot de passe et vous devez le modifier de temps en temps. Si vous modifiez le mot de passe, vous obtenez également un nouveau jeton de sécurité du mot de passe. N'oubliez pas de modifier cela dans le fichier terraform.tfvars
.
Si vous avez terminé, vous pouvez arrêter les programmes dans Terminal avec CTRL+c et tout détruire dans Confluent Cloud :
terraform destroy
Si vous obtenez une erreur, exécutez à nouveau destroy, jusqu'à ce que tout soit supprimé, alors vous êtes presque sûr qu'aucune ressource n'est en cours d'exécution et ne consomme de coûts.
terraform destroy
Vous avez besoin d'un compte Confluent Cloud (les nouveaux bénéficient d'un crédit de 400 $ gratuit). Vous avez besoin d'un compte OPenAI, avec un crédit actuel. Vous avez besoin d'un compte API ProxyCurl, avec des crédits actuels. Vous avez besoin d'un compte API SERP, vous aurez ici un nombre de connexions de départ. C'était suffisant dans mon cas.
Au Total je dépense 20$ (Open AI, ProxyCurl) et je ne suis toujours pas à court de crédits.