6
respostas

Como fazer o Watson consultar um banco de dados

Boa noite!

Estou desenvolvendo um ChatBot para minha empresa (Provedor de internet) e gostaria de saber como fazer o Watson consultar meu banco de dados, para que ele possa por exemplo, consultar o debito do cliente, conversar com o cliente mencionando o nome dele e saber qual plano... Além das consultas preciso fazer gravações das conversas no meu banco de dados > MySQL

como posso fazer isso?

6 respostas

Boa tarde,

e aí, beleza?

Não sei se resolveu seu problema, mas tipo... contornei esse esquema de consultas do Watson, "entendendo" o fluxo de mensagens dele, no caso normalmente utilizo slots para salvar os dados do usuário que preciso para a query e os intercepto no back-end pegando o context da conversa - Por exemplo o usuário informa em um slot o CPF, acessaria mais ou menos assim: context.cpf (onde cpf é o nome da minha variável do slot), isso porque desmembro a estrutura do padrão JSON e pego o que me interessa (aquela interface que se utiliza no curso, que você vai escrevendo e objeto vai sendo mostrado ao lado me ajudou muito a entender como o Watson trata as informações) - feito isso monto chamo a função responsável pela query que eu preciso passando como parâmetro os dados necessário, quando tenho a resposta injeto um elemento via JS tratando os dados que a query trouxe, nesse ponto o Watson não tem noção do que foi feito pois eu que injeto o elemento na tela.

Sei que pode ter ficado um pouco nebuloso, mas o processo é realmente meio longo, claro que tem muitos por menores por trás disso, como o tratamento dos response-type do próprio Watson e o meu próprio context para poder tratar.

Bem... espero ter dado ao menos uma luz.

o/

Ola Mateus. Realmente foi uma boa solução, contudo, como vc mesmo comentou, um pouco trabalhosa. Eu gostaria de complementar este debate, talvez direcionando esta pergunta para a seguinte hipótese: sera que o Watson poderia treinar em cima de uma tabela CSV e apurar por si próprio (ou com alguma ajuda) a resposta para a pergunta? Traduzindo: imagina que eu tenho de um lado o nome do produto, e do outro o preço. Se eu perguntar o preco de determinado produto, o Watson poderia apurar o preco do mesmo? Se algum souber como fazer isto seria excelente. Obrigado e abraços a todos

Boa tarde,

creio que você consegue fazer isso com Entidades, fiz algo semelhante, tipo... dá um SELECT no teu banco, de onde imagino que venha os dados, trazendo apenas o nome e os preços, exporta para o CSV e importa para o Watson como uma entidade, ele consegue fazer essa importação. Não sei se atende da forma que você quer, mas pelo seu exemplo imagino que seja isso. No caso que falei acima ficaria o seguinte: o valor da entidade ficaria com o preço e os sinônimos com o produto. Exemplo: Value name: 20,00 - Synonyms: produto Assim, quando o Watson identificar o produto que a pessoa quer vai pegar o valor da entidade, o problema é que... se forem muitos produtos a entidade ficaria muito extensa, apenas isso, no caso se fosse para editar um valor seria mais interessante pelo arquivos CSV e importar novamente. Tentar fazer um exemplo no teu caso alí: nome da entiade: Pizzas = @Pizzas Value name: 20,00 -- Synonyms: calabresa, Calabresa Value name: 10,00 -- Synonyms: mussarela, Mussarela Value name: 20,00 -- Synonyms: frango, Frango

Lá no diálogo, você monta o nó com a entidade pizzas (@Pizzas), como mostrada no curso e tal. Então... quando o cliente pergunta o preço da de calabresa por exemplo o Watson irá pegar o "Value name" associado a calabresa e retornar ao usuário. Aí quanto a isso você pode salvar em context variables ou usar em slots essas coisas. Não sei se deu para entender, mas creio que o princípio seja esse, certeza deve ter formas melhores para resolver, mas acho que esse atende. Dá um testada e fala aí no que deu. Valeu Ps.: Desculpa aí se ficou muito extenso

ola Mateus! entendi o processo sim, sua explicação foi ótima. Vou tentar por aqui nestes próximos dias e com certeza digo qq coisa! Valeu, ótimo fim-de-semana

olá Mateus!!! Deu certo, amigo! Muito obrigado!

Que isso cara, de boa! Fico feliz em ter ajudado! <o