Conhecer as necesidades dos seus prospectos ou futuros clientes é chave, para tal, existem técnicas e ferramentas de marketing digital que buscam captar a atenção das pessoas em todos os seus canais de comunicação. A Tecnología de Inteligencia Artificial veio para automatizar procesos e agregar mais valor na área comercial de uma empresa.
Linkedin: https://www.linkedin.com/in/geoffreyporto/
Instagram: https://www.instagram.com/geoffreyporto/
Researchgate: https://www.researchgate.net/profile/Geoffrey-Porto
1. O que vamos fazer?
Vamos na prática entender como usar a tecnologia de Inteligencia Artificial para agilizar a prospecção e potencializar a venda de planos de saúde.
2. Marco teórico da Inteligencia Artificial aplicado com LLMs
Os Large Language Models (LLMs) são modelos fundamentais de aprendizado de máquina que usam algoritmos de aprendizado profundo para processar e entender a linguagem natural. Esses modelos são treinados em grandes quantidades de dados de texto para aprender padrões e relacionamentos entre entidades no idioma.
“Modelos de linguagem grande (LLMs) representam um grande avanço na IA, com a promessa de transformar domínios por meio do conhecimento aprendido. Os tamanhos de LLM aumentaram 10 vezes a cada ano nos últimos anos e, à medida que esses modelos crescem em complexidade e tamanho, o mesmo acontece suas capacidades”.
No entanto, os LLMs são difíceis de desenvolver e manter, tornando-os inacessíveis para a maioria das empresas.
fonte: nvidia.com
Fonte: Geoffrey Porto
Fonte: Geoffrey Porto
— Carregar fontes de dados para texto: isso envolve carregar seus dados de fontes arbitrárias para texto de uma forma que possa ser usada posteriormente. Este é um lugar onde esperamos que a comunidade ajude!
— Chunk text: envolve dividir o texto carregado em partes menores. Isso é necessário porque os modelos de linguagem geralmente têm um limite para a quantidade de texto com que podem lidar, portanto, é necessário criar os menores blocos de texto possíveis.
— Incorporar texto: envolve a criação de uma incorporação numérica para cada pedaço de texto. Isso é necessário porque queremos apenas selecionar os blocos de texto mais relevantes para uma determinada pergunta e faremos isso encontrando os blocos mais semelhantes no espaço de incorporação.
— Carregar embeddings no vectorstore: envolve colocar embeddings e documentos em um vectorstore. Vecstorstores nos ajudam a encontrar os pedaços mais semelhantes no espaço de incorporação de forma rápida e eficiente.
Fonte: langchain.dev
Isso também pode ser dividido em algumas etapas. Novamente, essas etapas são altamente modulares e dependem principalmente de prompts que podem ser substituídos. As etapas são:
— Combine o histórico de bate-papo e uma nova pergunta em uma única pergunta independente. Isso é necessário porque queremos permitir a capacidade de fazer perguntas de acompanhamento (uma importante consideração de UX).
— Consultar documentos relevantes. Usando os embeddings e vectorstore criados durante a ingestão, podemos procurar documentos relevantes para a resposta
— Gerar uma resposta. Dada a pergunta independente e os documentos relevantes, podemos usar um modelo de linguagem para gerar uma resposta.
“Agora que ingerimos os dados, podemos usá-los em uma interface de chatbot. Para fazer isso, usaremos o ChatVectorDBChain. Para personalizar esta cadeia, há algumas coisas que podemos mudar.”
Fonte: langchain.dev
3. Quais tecnologias, modelos e ferramentas de IA usaremos?
Usaremos a tecnología de Inteligencia Artificial aplicado em processamento de linguagem natural (NLP) para aprender de contextos baseado em arquivos PDF e páginas de internet.
Usaremos os modelos de LLMs e ferramentas de IA como: OpenAI ChatGPT-3.5, Langchain, VectorDB, DuckDB, Tesseract e Detectron2 para nosso projeto.
OpenAI GPT-3. Especificamente a nova API ChatGPT (gpt-3.5-turbo).
Chroma. Obanco de dados de incorporação de código aberto nativo de IA (ou seja, mecanismo de pesquisa vetorial). Chroma é um banco de dados vetorial fácil de usar quando usado em conjunto com LangChain; caso contrário, é meio inutilizável. Se você deseja implantar esses tipos de aplicativos na produção, recomendo usar o Elasticsearch porque ele tem ampla adoção e existe há anos. Não porque o Elasticsearch seja melhor que os concorrentes, mas porque poucas organizações gostam de adicionar uma nova pilha de tecnologia.
LangChain. é uma biblioteca que visa auxiliar desenvolvedores na construção de aplicações que utilizam Large Language Models (LLMs) permitindo que eles integrem esses modelos com outras fontes de computação ou conhecimento.
4. Caso de Uso de Negocio
Programar um Chatbot conversacional para responder perguntas aleatorias de potenciais clientes que desejam comprar um plano de saúde.
5. Objetivo deste artigo
Aperfeiçoar o Chatbot conversacional com Open AI GPT-X para entender e oferecer informação relevante que influencie a toma decisões na compra do potencial cliente.
6. Solução experimental
Usando modelos da OpenAI GPT-3.5 com LangChain, VectorDB, DuckDB, Tesseract e Detectron2, desenvolvi um algorítimo de LLM para responder naturalmente a perguntas complexas de um potencial cliente que deseja contratar um plano de saúde individual/familiar.
7. Coleta de Dados
Para o processo de aprendizagem do modelo GPT-3.5, usaremos arquivos PDF e as páginas do site da empresa https://www.vocecare.com com toda informação relevante sobre o produto de plano de saúde oferecido pela empresa.
8. Armazenamento dos dados
Para próposito de testes, armazenei os dados na memoria com DuckDB, é possível armazenar os dados em disco usando a base de dados vetorial VectorDB.
9. Configuração e Aprendizagem baseado em feedback (RLHF)
Enviamos todas a informações necessárias do produto (PDF) e páginas da empresa (htmls) ao modelo LLM do LangChain + OpenAI “GPT-3.5”
Usamos o modelo de complementação “text-davinci-003” para ensinar de forma mais eficiente ao ChatBot como responder adequadamente as perguntas sempre que possível a pessoa.
10. Resultado prévio (Spoiler).
O resultado pode te surpreender, como disse Linux torvalds “Talk is easy, show me the code!”
Maos a obra no laboratorio a seguir com LLM e GPT-x na veia.
%%writefile requirements.txt
openai
chromadb
langchain
tiktoken
unstructured
nltk
Pillow
streamlit
tesseract
pytesseract
pypdf
faiss-gpu
faiss-cpu
%pip install -r requirements.txt
import os
import platformimport openai
import chromadb
import langchain
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.text_splitter import TokenTextSplitter
from langchain import OpenAI, VectorDBQA
from langchain.chains import ChatVectorDBChain
import magic
import nltk
nltk.download('punkt')
print('Python: ', platform.python_version())
2. Onde guardaremos os dados para o processamento?
from google.colab import drive
drive.mount('/content/drive')data_home="/content/drive/My Drive/Colab Notebooks/OpenAI/Data"
data_file1 = data_home+"/Tabela de Vendas Empresarial PME GSB dez2022 (3) - FULL.pdf"
3. Configuração da API OpenAI
import os
import openai
from dotenv import load_dotenv#Caso nao tenha, é necesario gerar sua conta/chave de desenvolvedor da OpenAI
openai.organization = "coloqe o nome de sua organization-id privada aqui"
openai.api_key = "coloqe sua api-key privada aqui"
os.environ["OPENAI_API_KEY"] = openai.api_key
4. Componentes e bibliotecas de OCR
!apt-get install poppler-utils
!apt install tesseract-ocr
#pdfminer. Please install them using `pip install unstructured[local-inference]`.
!pip install "unstructured[local-inference]"
!pip install "detectron2@git+https://github.com/facebookresearch/detectron2.git@v0.6#egg=detectron2"
!pip install layoutparser[layoutmodels,tesseract]
5. Componentes e bibliotecas de LLM
from langchain.llms import OpenAI
from langchain.chains import ChatVectorDBChain
import urllib.request from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import UnstructuredFileLoader
from langchain.document_loaders import UnstructuredPowerPointLoader
from langchain.document_loaders import UnstructuredDocxLoader
from langchain.document_loaders import UnstructuredHTMLLoader
from langchain.document_loaders import UnstructuredMarkdownLoader
from langchain.document_loaders import NotionDirectoryLoader
from langchain.document_loaders import UnstructuredURLLoader
6. Coleta de dados
O langchain suporta varios formatos de fontes de dados: PDf, Powerpoint, docx, html,markdown, txt, etc..
Como exemplo, vou procesar o arquivo “O grande conflito.pdf” armazenado numa pasta do Google Drive. Escolha seu propio PDF.
from langchain.document_loaders import PyPDFLoader
from langchain.document_loaders import OnlinePDFLoaderloader = PyPDFLoader(data_file1)
#loader = OnlinePDFLoader("https://meu.pdf")
pages = loader.load_and_split()
pages[0]
from langchain.vectorstores import FAISS
from langchain.embeddings.openai import OpenAIEmbeddings
faiss_index = FAISS.from_documents(pages, OpenAIEmbeddings())
docs = faiss_index.similarity_search("Os guardadores dos mandamentos serão mortos?", k=2)
for doc in docs:
print(str(doc.metadata["page"]) + ":", doc.page_content)
Estabeleci uma pergunta : Os guardadores dos mandamentos serão mortos? A saída como resposta foi correta, como vemos na imagem a seguir:
#Web pages:
urls = [
"https://www.vocecare.com.br/",
"https://www.vocecare.com.br/sobre",
"https://www.vocecare.com.br/contata-nos",
"https://www.vocecare.com.br/insurance-plans/garantia-plano-de-saude-hab",
]loader = UnstructuredURLLoader(urls=urls)
documents = loader.load()
As estratégias suportadas atualmente são ”hi_res” (o padrão) e ”fast”. As estratégias de particionamento de alta resolução (”hi_res”) são mais precisas, mas levam mais tempo para serem processadas. Estratégias rápidas (”fast”) particionam o documento mais rapidamente, mas compensam a precisão. Nem todos os tipos de documentos têm hi res separados e estratégias de particionamento rápido.
print (f'Temos {len(documents)} documento(s) na base de datos')
documents[:500]
embeddings = OpenAIEmbeddings()text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)
texts[:1000]
Os modelos de linguagens geralmente são limitados pela quantidade de texto que você pode passar para eles. Portanto, é necessário dividi-los em pedaços menores. O LangChain fornece vários utilitários para fazer isso.
7. Armazenamento dos dados
Para efeitos prático, optamos por armazenar os dados na memoria com DuckDB , no entanto, podemos persistir os dados em disco usando VectorDB caso seja necesario levá-lo a ambientes operativos.
#Persistencia de dados na memoria
docsearch = Chroma.from_documents(texts, embeddings)'''
#Persistencia dados em disco
vectordb = Chroma.from_documents(doc, embeddings, persist_directory=persist_directory)
vectordb.persist()
'''
8. Configuração de hiper-paramentros de API OpenAI
Devemos fazer ajustes nos hiper-parametros do modelo para obter maior eficiencia do modelo LLM.
COMPLETIONS_MODEL = "text-davinci-003"
EMBEDDING_MODEL = "text-embedding-ada-002"XOpenAI = OpenAI(temperature=0.2, openai_api_key=openai.api_key, model_name=COMPLETIONS_MODEL)
qa = VectorDBQA.from_chain_type(llm=XOpenAI, chain_type="stuff", vectorstore=docsearch, return_source_documents=True)
Para tarefas de escrita, você deve aumentar a temperatura, perto de 0,5. Se você deseja que o GPT seja altamente criativo (para marketing ou publicidade, por exemplo), considere valores entre 0,7 e 1.
Se você quiser experimentar e criar muitas variações rapidamente, uma temperatura alta é melhor.
9. Ejecutando ChatBot — Aplicaçao interativa de LLM GPT-3.5
Arquitectura baseado no OpenAI ChatGPT-3.5, LangChain, VectorDB, Chromadb pytesseract.
chat = []
bd = {}print("Bem-vindo ao Vocecare-ChatGPT 3.5")
while True:
print("Pergunte qualquer coisa ao nosso Consultor Vocêcare:")
pergunta = input("")
result = qa({"query": pergunta, "chat_history": chat})
print("Resposta: ",result["result"])
chat = [(pergunta, result["result"])]
#print(chat)
bd[pergunta]=result["result"]
print("-----Historial de QA----")
for keys, value in bd.items():
print(keys, ":", value)
10.1 Perguntas e respostas da Inteligencia Artificial
Fonte de dados: PDF: Tabela de Vendas Empresarial PME GSB dez2022 (3) — FULL
— — -Historial de QA — —
a. Porque contratar o plano de saúde?
Resp: Contratar o plano de saúde oferece vantagens como isenção de carências, sem fila de espera, agilidade no agendamento, comodidade e segurança, sem custo, sem limite de utilização e sem coparticipação. Além disso, o sistema mundial de saúde tem mais de 100 anos de atuação, mais de 700 unidades espalhadas pelo mundo, mais de 50.000 profissionais de saúde, atende todas as especialidades e oferece mais de 10.000 leitos hospitalares. No Brasil, atende a mais de 200 diferentes convênios, pacientes particulares e SUS, em 7 diferentes hospitais e 2 clínicas.
b. Quais são os serviços de TELEMEDICINA?
Resp: Pronto Atendimento Digital oferece serviços de telemedicina, como atendimento de urgência e emergência, serviços auxiliares de diagnóstico e terapia (SADT) necessários, devidamente fundamentados pelo médico assistente, e internação. Além disso, a REDE ABRAMGE oferece atendimento de urgência e emergência para beneficiários em trânsito em cidades de diversos Estados no território nacional.
c. Quais são os exames cobertos?
Resp: Exames simples/laboratoriais de rotina, exames especiais e procedimentos ambulatoriais, terapias, internação clínica e cirúrgica de urgência/emergência e eletiva, internação obstétrica (parto a termo e suas consequências), tomografia computadorizada, ecocardiograma, densitometria óssea, ultrassonografia, tomografia, ressonância, cintilografia, angio ressonância, angio tomografia, exames com sedação em ambiente hospitalar, endoscopia digestiva, colonoscopia, broncoscopia, retossigmoidoscopia flexível, teste ergométrico, eletroencefalograma, eletrocardiograma, mapa, holter, teste de DNA, toxicologia na urina, sexagem fetal, exames de câncer de próstata, mama, bolsa do paciente
d. Quais são as especialidades? :
Resp: Atende todas as especialidades. (MELHORAR RESPOSTA)
e. Qual é o Início de vigência e Vencimentos?
Resp: O início de vigência e vencimentos depende do tipo de serviço. Por exemplo, para atendimento de urgência, emergência e acidentes pessoais, o início de vigência é imediato e não há vencimento. Para consultas e exames simples, o início de vigência é de 15 dias e o vencimento é de 180 dias. Para exames especiais e procedimentos ambulatoriais, o início de vigência é de 15 dias e o vencimento é de 90 dias. Para internação clínica e cirúrgica de urgência/ emergência e eletiva, o início de vigência é de 60 dias e o vencimento é de 180 dias. Para terapias, o início de vigência é de 60 dias e o vencimento é de 180 dias.
f. Qual é o Início de vigência e Vencimentos de 11 a 29 vidas?
Resp: Não sei.
g. Qual é o carência e Vencimentos para 11 a 29 vidas?
Resp: Exames Simples / Laboratoriais de rotina: 15 dias; Exames Especiais e Procedimentos Ambulatoriais: 60 dias; Internação Clínica e Cirúrgica de Urgência/ Emergência e Eletiva, Tomografia: 90 dias; Terapias: 60 dias; Internação Obstétrica (Parto a Termo e suas consequências): 300 dias.
Resp: Para 11 a 29 vidas, o carência é de 13 a 23 meses e o vencimento é de 15 dias.
Insira uma pergunta ou diálogo:
h. A partir de quando começam as carências?
Resp: A partir do início de vigência do plano.
i. Quais são os serviços e exames de telemedicina?
Resp: Os serviços e exames de telemedicina incluem consultas eletivas com médicos e enfermeiros 24 horas, exames simples e laboratoriais de rotina, exames especiais e procedimentos ambulatoriais, internações clínicas e cirúrgicas de urgência/emergência e eletiva, tomografias, terapias e internações obstétricas.
j. Tenho 60 anos, posso contratar esse plano de saúde?
Resp: Não sei.
Solicitei ao ChatBot: “Me dê 3 perguntas sobre o conteúdo”
A Resposta foi:
1. Quais são os requisitos básicos de adesão para o Plano Garantia de Saúde?
2. Quais documentos são necessários para assinar o contrato?
3. Quais são os benefícios do Plano Garantia de Saúde?
“Quais são os requisitos básicos de adesão para o Plano Garantia de Saúde?”
Resp: Para contratação do Plano Garantia de Saúde, os requisitos básicos de adesão são: CPF, Identidade, Certidão de Nascimento para criança, Comprovante de endereço atualizado (até 3 meses de antiguidade), Email, Número de celular, Contrato Social da Empresa, CNPJ, Documento de sócios, FGTS, Faixa Etária, Relatório da alta da maternidade ou Caderneta contendo período de gestação, peso, altura, circunferência cefálica e torácica, Teste do Pezinho, Tabela Familiar, Formulário de Pré-analise, Formulario Check-list, Carta de Orientaçao a beneficiario, Aditivo de carênccia, Proposta de Adesão.
“Quais documentos são necessários para assinar o contrato?”
Resp: Para assinar o contrato, são necessários os seguintes documentos: Aditivo de Carência, Carta de Orientação ao Beneficiário, Declaração de Saúde, Minuta de Contrato e Proposta de Adesão.
“Quais são os benefícios do Plano Garantia de Saúde?”
Resp: O Plano Garantia de Saúde oferece cobertura ampla para você, aproveitamento de carências de todas as Operadoras de Saúde, reduções dos prazos de carências, isenção de carências para PMEs a partir de 30 vidas, residência nas áreas de cobertura, atendimentos somente nas unidades dos Hospitais Adventistas de Belém ou Barcarena (PA) até que o beneficiário receba a carteirinha, contratação obrigatória dentro da abrangência e comprovante de endereço comprovatório, programa de lealdade, produtos que protegem e premiam, documentos pessoais vigentes, documentos para assinar, formulário de pré-análise, formulário check-list, carta de orientação ao beneficiário, aditivo de carência e proposta de adesao.
a. Requisitos básicos de Contratação do Plano?
Resp. Os requisitos básicos de Contratação do Plano de Saúde — Garantia de Saúde do Hospital Adventista de Belém (HAB) G.S são: documentos pessoais válidos (CPF, Identidade, Certidão de Nascimento para crianças, comprovante de endereço atualizado, e-mail e número de celular), relatório da alta da maternidade ou Caderneta contendo período de gestação, peso, altura, a pagar circunferência cefálica e torácica, teste do pezinho, comprovante de endereço em nome do titular, minuta de contrato, proposta de adesão, aditivo de carência e carta de orientação ao beneficiário.
b. Porque esse Plano Garantia de Saúde é bom pra mim?
Resp: Esse Plano Garantia de Saúde oferece cobertura ampla para você, atendimento exclusivo em todos os serviços dos Hospitais Adventistas de Belém + Zona Metropolitana e Barcarena, serviço único de ressonância, convênio de descontos em drogarias, certificações internacionais e produtos que protegem e premiam.
c. Você contrataria esse Plano Garantia de Saúde? Porquê?
Sim, eu contrataria esse Plano Garantia de Saúde porque ele oferece cobertura ampla para mim, incluindo atendimento exclusivo em hospitais da região, descontos em drogarias, certificações internacionais e muito mais. Além disso, o plano tem requisitos básicos de adesão simples e acessíveis.
Sim, eu contrataria esse Plano Garantia de Saúde porque ele oferece cobertura ampla, serviços únicos de ressonância, descontos em drogarias, certificações internacionais e preços imbatíveis. Além disso, ele tem requisitos básicos de adesão simples e oferece proteção e benefícios.
d. Quais sao os beneficios de contratar o plano de vcs?
Resp: Os beneficios de contratar o plano da VocêCare incluem cobertura ampla para você, atendimento exclusivo em serviços de hospitais, serviço único de ressonância, convênio de descontos em drogarias, certificações internacionais, preços imbatíveis em custo e benefícios, orientações importantes, e serviços de alta qualidade.
e. Quais sao as vantagens e beneficios de contratar o plano de vcs? :
Resp. Os benefícios de contratar o plano de saúde da VocêCare incluem: cuidado de saúde humanizado, planos de saúde top das galáxias, consultores especializados e experientes, transparência, empatia, cuidado, excelência, inteligência artificial na comunicação com os clientes, programa de lealdade, garantia de saúde e preços acessíveis.
f. O que oferece o serviço de TELEMEDICINA?
Resp: O serviço de telemedicina oferece consultas médicas online, com acesso a profissionais de saúde qualificados. Os usuários podem receber diagnósticos, receitas, orientações e conselhos médicos de forma segura e conveniente.
g. Qual o telefone para fazer minha reclamação?
91 9 8087XXXX
h. Tenho 59 anos, posso contratar?
Não, somente direto na Operadora mediante Entrevista Qualificada presencial.
j. Tenho 59 anos, posso contratar?
Resp: Sim, você pode contratar o plano individual até 59 anos de idade. A partir de 60 anos, somente direto na Operadora, sujeito a Entrevista Qualificada presencial.
l. Que é necessário para a solicitar minha redução da carência?
Resp: Você precisará apresentar documentos comprovando que você cumpriu os requisitos de carência para a redução.
m. É possível fazer a redução de carência? Como?
Resp: Sim, é possível fazer a redução de carências. Isso pode ser feito através da educação, acesso a serviços de saúde, melhoria da infraestrutura, aumento da renda e outras medidas que promovam o desenvolvimento econômico e social.
Pergunte qualquer coisa ao nosso Consultor Vocêcare:
n. É possível fazer a redução de carência do meu plano contratado? Como?
Resp: Sim, é possível fazer a redução de carência do seu plano contratado. Para isso, você precisa entrar em contato com a seguradora para verificar quais são as opções disponíveis para reduzir a carência.
o. O meu filho pode ter esse plano?
Sim, o seu filho pode ter esse plano. A partir de 12 anos de idade, ele pode contratar sozinho. Até 11 anos de idade, precisa de um titular (mãe ou pai ou irmão de 12 anos em diante). Além disso, é necessário apresentar junto com a proposta de adesão um relatório da alta da maternidade ou Caderneta contendo período de gestação, peso, altura, circunferência cefálica e torácica, e um teste do pezinho.