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 개발자 계정 생성 여기에서 가입 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은 이러한 모든 매개변수를 사용하여 구성을 수행하고 최종적으로 서비스 계정 및 역할 바인딩을 포함한 모든 합류 클라우드 리소스를 배포합니다.
우리는 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을 실행하면 모든 합류 클라우드 리소스가 자동으로 배포됩니다.
cd terraform
terraform init
terraform plan
terraform apply
시간이 좀 걸립니다. Confluent Cloud 리소스가 제공됩니다. 이렇게 하면 iterm2 터미널이 자동으로 열리고 3가지 서비스가 실행됩니다.
좋습니다. 이제 Salesforce에 새 리드를 추가해야 합니다. 이것이 마지막 수동 단계입니다.
생성 AI는 Kafka 클러스터에서 새로운 리드를 가져와 Linkedin에서 정보를 가져와 자동으로 실시간으로 프롬프트를 실행하여 LLM 작업을 수행합니다.
프롬프트는 Chatgpt에 대한 작업으로 표시되며 C>hatgpt는 다음 내용을 공식화해야 합니다.
이 데모에서는 chatgpt-3.5-turbo
모델을 실행하고 있습니다. 이 모델은 토큰이 제한되어 있지만 현재 가장 빠르고 가장 오래된 모델입니다. 그리고 물론 가장 저렴한 것. Kai Waehner를 리드로 사용하려고 하면 현재 모델의 토큰이 충분하지 않다는 것을 알 수 있습니다. 당신이 할 수 있는 일은 모델을 바꾸는 것입니다. 이것이 가장 간단한 방법이고, 또 다른 방법은 콘텐츠를 여러 덩어리로 나누는 것입니다. 모델별 토큰 금액을 확인하려면 현재 모델을 살펴보시기 바랍니다.
테스트부터 시작하겠습니다.
model_name="gpt-4-turbo"
로 변경하고 클라이언트를 다시 시작하세요.내 생각으로는 간단한 데모는 RAG(Retrieval Augmented Generation) 패턴의 사용 사례가 아닙니다. 우리는 주어진 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)를 지출했는데 아직 크레딧이 부족하지 않습니다.