Explorando a API Salesforce Einstein - Processo Interno
Salesforce Einstein AI: um tutorial de API
Os desenvolvedores de aplicativos que não são da Salesforce podem estar perdendo uma joia escondida no mundo da IA.
Quando os desenvolvedores pensam em usar a nuvem para IA, eles podem pensar em IBM Watson, Microsoft Azure Cognitive Services, Google Cloud ou Amazon AI. Quando ouvem falar do Salesforce Einstein, eles podem presumir automaticamente que está limitado ao Desenvolvedor Salesforce especialização.
Não tão! Qualquer aplicativo, seja relacionado ao Salesforce ou não, pode aproveitar as sofisticadas tecnologias de nuvem de IA que o Salesforce adquiriu. Eles entraram no mercado de IA com o Salesforce Einstein, sua própria orquestração de serviços em nuvem de IA. Notavelmente, isso inclui ofertas de serviços de reconhecimento de linguagem e imagem.
Tal como acontece com outras soluções de nuvem de IA, você não precisa ter um PhD para usar as tecnologias pesadas subjacentes. Neste tutorial de API do Salesforce Einstein, vou mostrar como configurar uma conta e fazer suas primeiras chamadas de API de nuvem AI. Para as chamadas em si, vamos brincar com cURL e Postman, mas você também pode seu próprio protótipo de back-end ou qualquer outra tecnologia com a qual se sinta mais confortável.
Criação de uma conta Salesforce Einstein API
Para fazer chamadas de API da plataforma Einstein, primeiro você precisa criar uma conta Einstein API , baixe a chave e gere um token OAuth do Salesforce usando essa chave. O processo só precisa ser feito uma vez para poder usar a Visão Einstein e a Linguagem Einstein.
Você pode fazer login usando seu Salesforce ou Heroku credenciais. Ao selecionar qualquer uma das opções acima, você será redirecionado para suas respectivas páginas de login. Se você fizer login com o Heroku, eles exigirão que você configure um cartão de crédito com eles e anexe o serviço a uma instância específica do Heroku.
Se você é novo no Salesforce e não tem uma conta Heroku, configurar uma conta com eles é bastante rápido - ainda mais rápido se você quiser se inscrever por meio de uma conta social preexistente como uma no Google.
Partiremos do pressuposto de que você está usando o Salesforce (por meio de uma conta social ou não) em vez do Heroku. O processo envolve um pouco de retrocesso, então você deve prestar muita atenção a essas etapas.
Assim que estiver conectado ao Salesforce, você se deparará com uma tela de tour que não tem muito a ver com Einstein. Nesse ponto, você deve verificar seu e-mail e clicar no link de verificação; caso contrário, a próxima etapa resultará em um erro.
Como obter um token da API Einstein
A próxima etapa é circular de volta para aquele link de inscrição da API Einstein inicial e tente o botão de login do Salesforce novamente. Depois disso, você definirá uma nova senha - mesmo que tenha criado sua conta com a ajuda de um parceiro de autorização externo como o Google - e será redirecionado, novamente, para a página de tour.
Agora, volte uma terceira vez para a página de inscrição da API e clique no botão de login do Salesforce novamente. Desta vez, você obterá uma página conforme mostrado abaixo. Não saia desta página antes de baixar sua chave privada , embora possa dizer que você precisa verificar seu e-mail! Se você fizer isso, não haverá como obter sua chave privada sem a ajuda manual de sua equipe de suporte.
Você pode baixar o arquivo para sua máquina local ou copiar e colar a chave em um editor de texto e salvar o arquivo como einstein_platform.pem.
Enquanto isso, conforme mencionado, você terá outro e-mail de verificação esperando por você, este sendo específico de Einstein. Clique nesse link de verificação também.
Agora que você tem uma chave privada, pode gerar tokens com limite de tempo. Cada chamada de API que você faz - desde a criação de conjuntos de dados a modelos de treinamento e predição de modelo - precisa de um token OAuth válido no cabeçalho da solicitação. Para obter o token, você precisa ir ao gerador de tokens e use o mesmo endereço de e-mail usado para fazer login. Cole ou carregue o arquivo de chave privada que você recebeu acima.
Prática com a API Salesforce Einstein
Usar a nuvem de IA por meio do Salesforce Einstein envolve alguns conceitos básicos sobre como treinar sua rede de inteligência artificial carregando dados de amostra. Se isso não soa familiar, meu tutorial anterior dá alguns exemplos de como trabalhar com Salesforce Einstein - tanto para Einstein Language e Einstein Vision.
Supondo que você esteja confortável com isso, agora usaremos a API REST de classificação de imagens do Einstein via cURL ou Postman. Se estiver usando o Postman, sempre que houver uma chamada cURL, você poderá usar o recurso de importação do Postman:
Suponha que você encontre um requisito de negócios útil no qual deseja distinguir entre o smartphone e o telefone fixo com base em imagens e, usando essa predicação, deseja atualizar sua pontuação de leads ou processar seu caso de uso.
A próxima etapa é criar nosso próprio conjunto de dados. Observe que você precisa de pelo menos 40 exemplos que já foram categorizados. (Se for mais tempo do que você deseja investir no momento, você pode pular para a seção de previsão abaixo. Basta usar um modelId de FoodImageClassifier, GeneralImageClassifier, SceneClassifier ou MultiLabelImageClassifier.)
No nosso caso, temos duas categorias: smartphones e telefones fixos. Criamos duas pastas, rotulando-os como smartphones e telefones fixos, e adicionamos imagens em cada pasta. Em seguida, criamos um arquivo zip (apenas zip: 7z não funciona, por exemplo) contendo essas pastas.
Este endpoint da API Einstein, que é usado para criar conjuntos de dados, é o próximo:
Aqui, pode ser como um destes exemplos:
No Postman, sem importar, você precisaria preencher o cabeçalho e as guias do corpo conforme mostrado abaixo:
Levará algum tempo até que todas as imagens sejam carregadas. Assumindo que todas as imagens foram carregadas com sucesso, a resposta terá um datasetId (repetido como principal id e uma vez por categoria), que será usado em chamadas futuras.
Depois que seu conjunto de dados for carregado, você deve treinar o modelo usando os dados que acabou de carregar. Para treinar o modelo, use a seguinte chamada:
O treinamento do conjunto de dados é normalmente colocado em sua fila e, em resposta, obteremos o modelId. Depois disso, podemos verificar outro endpoint para saber se o modelo foi treinado ou ainda não:
Quando o modelo for treinado, você receberá uma resposta como esta:
Uso do Einstein Vision para previsão de imagens
Aqui está o cerne da questão. Uma vez que o modelo é treinado, agora você pode enviar uma imagem, e o modelo retornará valores de probabilidade para cada categoria que definimos. Para o modelo atual, escolhemos uma imagem padrão do iPhone X para previsão.
Para a própria previsão, usamos o seguinte endpoint:
Desta vez, é semelhante a, mas chaves diferentes são usadas e há uma terceira opção:
sampleBase64Content=iVBORw0KGgoAAAANSUhEUgAAAC0... (Em outras palavras, você não precisa de nenhum prefixo, apenas a parte bruta da base 64, se quiser usar este método de upload.)
Olhando para a captura de tela e os valores de probabilidade, o modelo previu com sucesso que a imagem do iPhone X está classificada na categoria de smartphone. Sucesso!
Seja qual for o seu caso de uso, você vai querer explorar se o Einstein Vision presume que você está fornecendo uma imagem que se enquadra em uma das categorias nas quais você o treinou. Em testes, descobrimos que, quando enviamos ao modelo acima a foto de um barco a vela, ele deu o melhor palpite entre smartphones e telefones fixos, em vez de indicar que não parecia ser nenhum dos dois. Em outras palavras, as avaliações que ele dá para a foto do seu veleiro sendo um telefone fixo ou smartphone ainda somam 1, da mesma forma que fariam com uma entrada legítima.
No entanto, alguns modelos pré-construídos têm categorias como Other (para o modelo SceneClassifier) e UNKNOWN (para FoodImageClassifier). Portanto, vale a pena experimentar para o seu contexto específico para que você possa saber o que esperar se quiser alimentá-lo com imagens que não se enquadram nas categorias dadas a ele.
Há também o tipo de modelo 'multi-rótulo', que retorna todas as categorias, classificadas por probabilidade, com a suposição de que várias categorias se aplicam, ou seja, as probabilidades não somam 1. Se isso soa mais como o que você está fazendo , valeria a pena olhar para o recém-lançado Detecção de objeto Einstein . Em vez de apenas dizer o que pode estar em uma imagem - de modo geral - ele realmente fornece caixas delimitadoras junto com as previsões. Isso é semelhante ao que você pode ter visto com a codificação automática no Facebook, exceto que não se limita a rostos.
Linguagem do Salesforce Einstein: intenção e sentimento
Se você deseja treinar seu próprio modelo, o Salesforce Einstein teoricamente permite treinar tanto o Intent quanto o Sentiment, mas é muito mais comum se preocupar apenas com o treinamento do Intent. O treinamento de um modelo de Intenção é semelhante ao que vimos acima, mas em vez de pastas de imagens, você fornece um arquivo CSV de duas colunas, com textos na coluna A e suas categorias correspondentes na coluna B. (Eles também suportam TSV ou JSON. )
Como as etapas de treinamento são praticamente as mesmas, vamos presumir, neste ponto, que você já treinou um modelo Einstein Intent com os dados de treinamento fornecidos em case_routing_intent.csv e estão OK usando o modelo predefinido padrão para o Einstein Sentiment.
As chamadas de previsão do Einstein Intent são tão fáceis quanto:
Aqui, poderia ser algo como "Como posso obter um número de rastreamento para minha remessa?"
A chamada da API é a mesma do Einstein Sentiment, exceto que você pode usar o modelId pré-construído CommunitySentiment (e observe o endpoint diferente):
A saída JSON em ambos os casos se parece exatamente com o formato de resposta da previsão para a Classificação de imagens de Einstein: a substância principal está em uma matriz associada à chave probabilities e cada elemento da matriz fornece um rótulo e uma probabilidade. Isso é tudo que há para fazer!
IA fácil com Salesforce Einstein
Agora você viu como é simples usar o Einstein Vision e a linguagem Einstein, e como as APIs do Einstein não têm nada a ver com o resto das APIs de desenvolvedor do Salesforce, exceto no nome. O que irá você criar com eles?
Como é o acesso à API no Salesforce?
O acesso à nuvem AI por meio da API Salesforce Einstein requer a inscrição em uma conta, a obtenção de uma chave privada e o uso dela para gerar um token. A partir daí, o token pode ser usado para qualquer chamada da API Einstein.
Como habilito o acesso à API no Salesforce?
Depois de ter uma conta Salesforce (ou Heroku), habilitar o acesso à API (e obter uma chave privada) é feito por meio da página de inscrição do Einstein em https://api.einstein.ai/signup se você planeja usar a API em um Salesforce aplicativo ou aplicativo não Salesforce.