Watson é um serviço fornecido pela IBM para criar programação cognitiva. O que torna o Watson tão notável é que ele processa dados como uma pessoa real, e não como um computador. Isso permite que o Watson extraia informações valiosas de dados não estruturados, como textos, imagens e fala.
O Watson oferece diversos serviços que permitem trabalhar com diferentes tipos de dados. Na Admios, apoiamos AlchemyLanguage e Visual Recognition:
- AlchemyLanguage é uma coleção de APIs que oferece análise de texto por meio de processamento de linguagem natural. Ele pode analisar texto e ajudá-lo a entender seu tom, palavras-chave, entidades, conceitos de alto nível e muito mais. Saiba mais aqui.
- Visual Recognition é uma API que fornece análise de imagens. reconhecendo cenas, objetos, rostos e texto. Saiba mais aqui.
Dando o salto
O principal objetivo de ambos os conectores era ganhar experiência real no uso da plataforma Mule. Embora pudéssemos ter usado qualquer serviço, ninguém em nossa equipe havia trabalhado com o Watson antes, então pensamos por que não usar isso como uma oportunidade para aprender uma nova tecnologia interessante em um campo emergente como a programação cognitiva?
Na verdade, parece mais complexo do que realmente é. Claro, o Watson executa operações complexas e implementa algoritmos sofisticados, mas você não precisa saber nada disso para usá-lo. A IBM simplifica tudo, pois você só precisa usar uma API Rest normal e atualizada.
Nosso primeiro passo foi baixar e aprender sobre o Java SDK for Watson, que é um código aberto. Assim que nos sentimos confortáveis ​​com o SDK, implementamos um wrapper que expôs suas operações e classes ao ecossistema Mule.
Construindo o conector
Usamos o DevKit 3.8, que é o SDK oficial para construção de conectores personalizados. Isso nos permitiu definir as operações que poderiam ser utilizadas dentro do Anypoint Studio junto com sua configuração adequada. Tivemos que seguir um conjunto de diretrizes e melhores práticas para definir as classes de solicitação para que contivessem todas as variáveis ​​que queríamos passar para o conector, mas o Studio sempre explicava de forma amigável.
A arquitetura interna também era bastante direta: você precisava de pelo menos uma classe que definisse o conector e outra que definisse a configuração. Além disso, dividimos nossa lógica em vários manipuladores que gerenciavam a lógica das operações definidas na classe do conector e utilizavam internamente o Watson SDK.
Além da implementação, caso você queira certificar seu conector é necessário fornecer um teste para cada operação. O DevKit pode ser facilmente usado para implementar um servidor embarcado e criar testes funcionais ou de integração.
Se você está planejando fazer um conector para Mulesoft, recomendo fortemente que você certifique seu conector ou, como fizemos no nosso caso, faça um pequeno conector de teste usando um serviço que você deseja aprender. A equipe de certificação solicitará que você aplique uma variedade de boas práticas e o ajudará a aprender a maneira correta de trabalhar dentro do ecossistema Mule para que você possa implementar com sucesso um conector para sua empresa rapidamente.