Esta é uma demonstração de IA generativa em tempo real com Confluent Cloud. A ideia foi influenciada por este treinamento incrível na Udemy liderado por Eden Marco (LangChain- Desenvolva aplicativos com tecnologia LLM com LangChain). Eden Marco me deu o link promovido. Eden Marco faz uma boa introdução ao desenvolvimento do Lngchain LLM em Python. Peguei a ideia quebra-gelo e a transformei em um caso de uso real executando Data in Motion com Confluent e AI.
O repositório irá implantar:
Clone este repositório em sua área de trabalho:
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/
A execução da demonstração é totalmente automatizada, mas antes da execução, você precisa configurar algumas coisas aqui:
Crie uma conta de desenvolvedor do Salesforce Inscreva-se aqui Configure o Salesforce CDC, consulte Siga meu conjunto com capturas de tela aqui Etapas de alto nível:
Você precisa de todos os parâmetros do Salesforce CDC Connector, portanto, armazene-os com segurança.
Você precisa de uma conta ativa para Confluent Cloud. Inscrever-se no Confluent Cloud é muito fácil e você receberá um orçamento de US$ 400 para seus primeiros testes gratuitamente. Se você não tiver uma conta Confluent Cloud ativa, inscreva-se no 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: Crie uma chave de API no 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> |
# +------------+------------------------------------------------------------------+
Copie todos os parâmetros para Confluent Cloud no arquivo terraform.tfvars
executando o seguinte comando com seus dados:
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
O Terraform pegará todos esses parâmetros e fará a configuração para você e, finalmente, implantará todos os recursos de nuvem confluentes, incluindo contas de serviço e vinculação de função.
Usamos langchain LLM versão 0.1 Langchain Docu
DICA:
Agora, isso custará dinheiro. Infelizmente, a API não é gratuita. Eu gasto 10$ para IA aberta, 10$ para API ProxyCurl e a API SERP ainda está com status gratuito. |
Primeiro precisamos de uma chave que nos permita usar o OpenAI. Siga as etapas aqui para criar uma conta e apenas uma chave de API.
Próxima tarefa: crie a chave de API proxycurl. ProxyCurl será usado para raspar o Linkedin. Cadastre-se no proxyurl e compre créditos por 10$ (ou o que você achar que é suficiente, talvez você comece mais menos), siga estes passos
Para poder pesquisar no Google o URL correto do perfil do LinkedIn, precisamos de uma chave API da API SERP daqui.
Agora, coloque todas as chaves no arquivo env-vars
executando o 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
Parabéns, a preparação está feita. Esta foi uma grande armação, eu sei.
Agora vem a parte fácil. Basta executar o terraform. Execute o terraform e todos os recursos de nuvem confluentes serão implantados automaticamente:
cd terraform
terraform init
terraform plan
terraform apply
Isso vai demorar um pouco. O recurso Confluent Cloud será provisionado. Se isso for feito, os terminais iterm2 serão abertos automaticamente e três serviços serão executados.
Ok, agora você precisa adicionar um novo lead ao Salesforce. Esta é a última etapa manual.
A IA generativa assumirá a nova liderança do cluster Kafka e executará ações LLM obtendo informações do Linkedin e executando o prompt automaticamente e em tempo real.
O Prompt será visto como uma tarefa para o Chatgpt, formulamos que o C>hatgpt deve formular o seguinte conteúdo:
Estamos executando o modelo chatgpt-3.5-turbo
nesta demonstração. Este modelo possui tokens limitados, mas atualmente é o modelo mais rápido e antigo. E, claro, o mais barato. Se você tentar usar Kai Waehner como líder, verá que os tokens do modelo atual não são suficientes. O que você pode fazer é mudar o modelo. Esta seria a maneira mais simples, outro método seria dividir o conteúdo em partes. Dê uma olhada nos modelos atuais para verificar a quantidade de tokens por modelo.
Começo com meus testes:
model_name="gpt-4-turbo"
na linha ice_breaker.py 135 e reinicie o cliente.A demonstração simples não é um caso de uso para o padrão Retrieval Augmented Generation (RAG), na minha opinião. Obtemos todas as informações de uma determinada API e não faz sentido armazenar os dados em um banco de dados vetorial. É muito mais eficiente carregar as informações via API em tempo real do que dados atualizados. Use o modelo certo para o seu caso de uso, no nosso caso deve ser um modelo rápido e com maior quantidade de tokens.
O Salesforce redefiniu sua senha e você precisa alterá-la de tempos em tempos. Se você alterar a senha, também receberá um novo token de segurança de senha. Não se esqueça de alterar isso no arquivo terraform.tfvars
.
Se tiver terminado, você pode parar os programas no Terminal com CTRL+c e destruir tudo no Confluent Cloud:
terraform destroy
Se você receber um erro, execute destruir novamente, até que tudo seja excluído, então você tem certeza de que nenhum recurso está em execução e consome custos.
terraform destroy
Você precisa de uma conta Confluent Cloud (os novos recebem 400$ de crédito gratuitamente). Você precisa de uma conta OPenAI, com crédito atual. Você precisa de uma conta API ProxyCurl, com créditos atuais. Você precisa de uma conta SERP API, aqui você terá uma quantidade inicial de conexões. Isso foi suficiente no meu caso.
No total gastei 20$ (Open AI, ProxyCurl) e ainda não estou sem créditos.