Dies ist eine generative Echtzeit-KI-Demo mit Confluent Cloud. Die Idee wurde durch dieses großartige Training in Udemy unter der Leitung von Eden Marco (LangChain – LLM-gestützte Anwendungen mit LangChain entwickeln) beeinflusst. Eden Marco hat mir den beworbenen Link gegeben. Eden Marco bietet eine sehr gute Einführung in die Lngchain-LLM-Entwicklung in Python. Ich habe die Eisbrecher-Idee aufgegriffen und sie in einen realen Anwendungsfall umgesetzt, bei dem Data in Motion mit Confluent und KI ausgeführt wird.
Das Repo wird Folgendes bereitstellen:
Bitte klonen Sie dieses Repository auf Ihrem Desktop:
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/
Die Demo-Ausführung ist vollständig automatisiert, aber vor der Ausführung müssen Sie hier ein paar Dinge einrichten:
Erstellen Sie ein Salesforce-Entwicklerkonto. Melden Sie sich hier an. Konfigurieren Sie Salesforce CDC. Weitere Informationen finden Sie unter „Mein Setup mit Screenshots verfolgen“ hier. Allgemeine Schritte:
Für den Salesforce CDC Connector benötigen Sie alle Parameter, bewahren Sie diese daher bitte sicher auf.
Sie benötigen ein funktionierendes Konto für Confluent Cloud. Die Anmeldung bei Confluent Cloud ist sehr einfach und Sie erhalten ein kostenloses Budget von 400 $ für Ihre ersten Testversionen. Wenn Sie kein funktionierendes Confluent Cloud-Konto haben, melden Sie sich bitte bei Confluent Cloud an.
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
Für Confluent Cloud: API-Schlüssel in Confluent Cloud über CLI erstellen:
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> |
# +------------+------------------------------------------------------------------+
Kopieren Sie alle Parameter für Confluent Cloud in die Datei terraform.tfvars
, indem Sie den folgenden Befehl mit Ihren Daten ausführen:
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 übernimmt alle diese Parameter, übernimmt die Konfiguration für Sie und stellt schließlich alle zusammenfließenden Cloud-Ressourcen bereit, einschließlich Dienstkonten und Rollenbindung.
Wir verwenden Langchain LLM Version 0.1 Langchain Docu
HINWEIS:
Jetzt wird es Geld kosten. Leider ist die API nicht kostenlos. Ich gebe 10 $ für offene KI aus, 10 $ für die ProxyCurl-API und die SERP-API ist immer noch im kostenlosen Status. |
Zuerst benötigen wir einen Schlüssel, der uns die Nutzung von OpenAI ermöglicht. Befolgen Sie die Schritte von hier aus, um ein Konto und dann nur einen API-Schlüssel zu erstellen.
Nächste Aufgabe: Proxycurl-API-Schlüssel erstellen. ProxyCurl wird zum Scrapen von Linkedin verwendet. Melden Sie sich bei Proxyurl an und kaufen Sie Credits für 10 $ (oder was auch immer Ihrer Meinung nach ausreicht, vielleicht fangen Sie mehr und weniger an). Befolgen Sie diese Schritte
Um in Google nach der richtigen Linkedin-Profil-URL suchen zu können, benötigen wir von hier aus einen API-Schlüssel der SERP-API.
Fügen Sie nun alle Schlüssel in die Datei env-vars
ein, indem Sie den folgenden Befehl ausführen:
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
Herzlichen Glückwunsch, die Vorbereitung ist abgeschlossen. Das war ein riesiges Setup, ich weiß.
Jetzt kommt der einfache Teil. Führen Sie einfach Terraform aus. Führen Sie Terraform aus und alle zusammenfließenden Cloud-Ressourcen werden automatisch bereitgestellt:
cd terraform
terraform init
terraform plan
terraform apply
Das wird eine Weile dauern. Die Confluent Cloud-Ressource wird bereitgestellt. In diesem Fall werden automatisch iterm2-Terminals geöffnet und drei Dienste ausgeführt.
Ok, jetzt müssen Sie einen neuen Lead in Salesforce hinzufügen. Dies ist der letzte manuelle Schritt.
Die generative KI wird neue Impulse vom Kafka-Cluster übernehmen und LLM-Aktionen durchführen, indem sie Informationen von Linkedin erhält und die Eingabeaufforderung automatisch und in Echtzeit ausführt.
Der Prompt wird als Aufgabe für Chatgpt angesehen, wir haben so formuliert, dass C>hatgpt den folgenden Inhalt formulieren soll:
In dieser Demo verwenden wir das Modell chatgpt-3.5-turbo
. Dieses Modell hat eine begrenzte Anzahl an Token, ist aber derzeit das schnellste und älteste Modell. Und natürlich das günstigste. Wenn Sie versuchen, Kai Waehner als Lead zu verwenden, werden Sie feststellen, dass Token des aktuellen Modells nicht ausreichen. Sie können das Modell ändern. Dies wäre der einfachste Weg, eine andere Methode wäre die Aufteilung des Inhalts in Blöcke. Bitte werfen Sie einen Blick auf aktuelle Modelle, um die Anzahl der Token pro Modell zu überprüfen.
Ich beginne mit meinen Tests:
model_name="gpt-4-turbo"
und starten Sie den Client neu.Die einfache Demo ist meiner Meinung nach kein Anwendungsfall für das RAG-Muster (Retrieval Augmented Generation). Wir erhalten alle Informationen von einer bestimmten API und es macht keinen Sinn, die Daten in einer Vektor-DB zu speichern. Es ist viel effizienter, die Informationen über die API in Echtzeit zu laden, als es sich um frische Daten handelt. Verwenden Sie das richtige Modell für Ihren Anwendungsfall. In unserem Fall sollte es ein schnelles Modell mit einer höheren Anzahl an Token sein.
Salesforce hat Ihr Passwort zurückgesetzt und Sie müssen es von Zeit zu Zeit ändern. Wenn Sie das Passwort ändern, erhalten Sie auch ein neues Passwort-Sicherheitstoken. Bitte vergessen Sie nicht, dies in der Datei terraform.tfvars
zu ändern.
Wenn Sie fertig sind, können Sie die Programme im Terminal mit STRG+c stoppen und alles in Confluent Cloud zerstören:
terraform destroy
Wenn Sie eine Fehlermeldung erhalten, führen Sie destroy erneut aus, bis alles gelöscht ist. Dann sind Sie ziemlich sicher, dass keine Ressourcen ausgeführt werden und Kosten verbraucht werden.
terraform destroy
Sie benötigen einen Confluent Cloud Account (Neukunden erhalten 400$ Guthaben gratis). Sie benötigen ein OPenAI-Konto mit aktuellem Guthaben. Sie benötigen ein ProxyCurl-API-Konto mit aktuellem Guthaben. Sie benötigen ein SERP-API-Konto, hier erhalten Sie eine Startanzahl an Verbindungen. Das hat in meinem Fall gereicht.
Insgesamt gebe ich 20 $ aus (Open AI, ProxyCurl) und habe immer noch nicht alle Credits.