これは、Confluent Cloud を使用したリアルタイム生成 AI デモです。このアイデアは、Eden Marco が指導する Udemy での素晴らしいトレーニング (LangChain - LangChain を使用した LLM を利用したアプリケーションの開発) に影響を受けました。 Eden Marco さんが宣伝リンクをくれました。 Eden Marco は、Python での Lngchain LLM 開発についての非常に優れた入門書を作成しています。私はアイスブレーカーのアイデアを採用し、Confluent と AI を使用して Data in Motion を実行する実際のユースケースに移しました。
リポジトリは以下をデプロイします。
このリポジトリのクローンをデスクトップに作成してください。
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/
デモの実行は完全に自動化されていますが、実行前に、ここでいくつかのことを設定する必要があります。
Salesforce Developer アカウントを作成する ここでサインアップします Salesforce CDC を設定します。ここでスクリーンショットを使用して設定に従ってください。 高レベルの手順:
Salesforce CDC コネクタにはすべてのパラメータが必要なので、安全に保存してください。
Confluent Cloud の有効なアカウントが必要です。 Confluent Cloud へのサインアップは非常に簡単で、最初のトライアルには 400 ドルの予算が無料で提供されます。有効な Confluent Cloud アカウントをお持ちでない場合は、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
Confluent Cloud の場合: CLI を使用して Confluent Cloud で API キーを作成します。
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> |
# +------------+------------------------------------------------------------------+
データを指定して次のコマンドを実行して、Confluent Cloud のすべてのパラメーターをterraform.tfvars
ファイルにコピーします。
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 はこれらすべてのパラメーターを取得して構成を行い、最終的にサービス アカウントやロール バインディングを含むすべての Confluent クラウド リソースをデプロイします。
langchain LLM バージョン 0.1 Langchain Docu を使用します。
ヒント:
さて、お金がかかります。残念ながら、API は無料ではありません。私はオープン AI に 10 ドル、ProxyCurl API に 10 ドルを費やしていますが、SERP API はまだ無料の状態です。 |
まず、OpenAI を使用できるようにするキーが必要です。ここからの手順に従ってアカウントを作成し、API キーのみを作成します。
次のタスク: proxycurl API キーを作成します。 ProxyCurl は Linkedin のスクレイピングに使用されます。 proxyurl にサインアップし、10 ドルでクレジットを購入します (または、十分だと思うものは何でも、もっと少なく始めても構いません)。次の手順に従ってください。
Google で正しいリンクされたプロファイル URL を検索できるようにするには、ここから SERP API の API キーが必要です。
次に、次のコマンドを実行して、すべてのキーをenv-vars
ファイルに追加します。
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
準備が完了しました。おめでとうございます。これは大がかりな設定でした、私は知っています。
ここからは簡単な部分です。 terraformを実行するだけです。 terraform を実行すると、すべての Confluent クラウド リソースが自動的にデプロイされます。
cd terraform
terraform init
terraform plan
terraform apply
これにはしばらく時間がかかります。 Confluent Cloud Resource が提供されます。これを行うと、iterm2 ターミナルが自動的に開き、3 つのサービスが実行されます。
次に、新しいリードを Salesforce に追加する必要があります。これは最後の手動ステップです。
生成 AI は、Kafka クラスターから新しいリードを取得し、Linkedin から情報を取得して LLM アクションを実行し、プロンプトを自動的かつリアルタイムで実行します。
プロンプトは Chatgpt のタスクとして表示されます。C>hatgpt は次の内容を定式化する必要があると定式化しました。
このデモではchatgpt-3.5-turbo
モデルを実行しています。このモデルにはトークンが限られていますが、現時点では最速かつ最も古いモデルです。そしてもちろん一番安いもの。 Kai Waehner をリードとして使用しようとすると、現行モデルのトークンでは不十分であることがわかります。できることは機種変更です。これは最も簡単な方法ですが、コンテンツをチャンクに分割する別の方法もあります。モデルごとのトークンの量を確認するには、現在のモデルをご覧ください。
まずはテストから始めます。
model_name="gpt-4-turbo"
に変更し、クライアントを再起動します。私の意見では、単純なデモは検索拡張生成 (RAG) パターンのユースケースではありません。すべての情報は特定の API から取得しますが、そのデータをベクター DB に保存することは意味がありません。 API を介してリアルタイムで情報を読み込む方がはるかに効率的であり、新鮮なデータになります。ユースケースに適したモデルを使用してください。この場合、より大量のトークンを備えた高速モデルである必要があります。
Salesforce ではパスワードがリセットされるため、時々変更する必要があります。パスワードを変更すると、新しいパスワード セキュリティ トークンも取得されます。 terraform.tfvars
ファイルでこれを忘れずに変更してください。
完了したら、ターミナルで CTRL+C を押してプログラムを停止し、Confluent Cloud 内のすべてを破棄できます。
terraform destroy
エラーが発生した場合は、すべてが削除されるまで再度 destroy を実行します。実行されているリソースが存在せず、コストが消費されていないことがわかります。
terraform destroy
Confluent Cloud アカウントが必要です (新規アカウントには 400 ドルのクレジットが無料で付与されます)。現在のクレジットを持つ OPenAI アカウントが必要です。現在のクレジットを持つ ProxyCurl API アカウントが必要です。 SERP API アカウントが必要です。ここで接続の開始量を指定します。私の場合はこれで十分でした。
合計で 20 ドル (Open AI、ProxyCurl) を費やしましたが、まだクレジットが不足していません。