Inicialização rápida de APIs Watson do IBM Cloud usando Java SDK

Este tutorial mostrará como criar rapidamente um aplicativo Java que usa APIs Watson

Comments

Visão geral

Nível de aptidão: Qualquer Nível de Aptidão
Iniciante

Crie seu AccountsFirst, é necessário criar uma Conta do IBM Cloud (https://console.ng.bluemix.net/) Em seguida, crie sua conta em DevOps Services (https://hub.jazz.net/) usando o mesmo e-mail. Crie seu Aplicativo Java Usando um Texto Padrão. Agora, efetue login no IBM Cloud e clique em "Catálogo" Escolha o padrão Inicializador do "DB Java". Forneça um nome de aplicativo exclusivo. Clique em "Criar" e aguarde a preparação [...]

Ingredientes

Eclipse IDE

Java

Conta do IBM Cloud

Conta do DevOps Services

Passo a passo

1

Crie suas Contas

ATUALIZAÇÃO Outubro de 2016 – Este tutorial está desatualizado. Portanto, escrevemos outro aqui, que é melhor e mais preciso.

https://developer.ibm.com/recipes/tutorials/bluemix-watson-apis-quickstart-using-java-sdk-version-2016/

:-)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Primeiro, é necessário criar uma Conta do IBM Cloud (https://console.ng.bluemix.net/)

Em seguida, crie sua conta no DevOps Services (https://hub.jazz.net/) usando o mesmo e-mail

2

Crie seu Aplicativo Java Usando um Texto Padrão

Agora, efetue login no IBM Cloud e clique em “Catálogo”

Escolha o padrão “Inicializador do DB Java”

Forneça um nome de aplicativo exclusivo

Clique em “Criar” e aguarde o processo de preparação

Após um minuto ou dois, você verá esta mensagem.

Agora, volte para seu painel do IBM Cloud

Seu aplicativo do IBM Cloud foi criado. Parabéns!

Clique no Aplicativo do IBM Cloud e clique em “Incluir GIT” (canto superior direito)

Assegure que a caixa de seleção esteja ATIVADA e clique em “Continuar”

Após 1 minuto, você verá esta mensagem

Clique em “Fechar” e copie seu link do GIT

3

Abra seu projeto no Eclipse

Agora é o momento de abrir seu Eclipse IDE.

Clique em “Ambiente de Trabalho” e, em seguida, “Janela”->”Abrir Perspectiva”->”Outro”

Selecione “GIT” e clique em “OK”

Clique em “Clonar um Repositório GIT” e forneça o URI gerado na etapa anterior deste tutorial.

Não se esqueça de marcar “Importar todos os projetos existentes do Eclipse após a clonagem ser concluída”.

Você obterá uma janela como esta

4

Incluir dependências do Java SDK do Watson

No Eclipse IDE, alterne a perspectiva de GIT para Java EE

Você verá seu projeto desta forma

Localize o arquivo “pom.xml” em seu projeto e clique duas vezes.

Localize a guia “Dependências” e clique nela.

Inclua a dependência do Java SDK do Watson

Faça o mesmo para o Apache Commons IO

Clique no “Botão Salvar” (canto superior esquerdo)

Se esta for a primeira vez que você está usando o Maven, levará alguns minutos enquanto o Maven faz download de todas as dependências no repositório local. Caso contrário, isto levará apenas alguns segundos.

5

Executando o Watson Localmente

Em seu Aplicativo IBM Cloud, localize as “variáveis de ambiente” do aplicativo (esquerda)

Copie o conteúdo das credenciais VCAP_SERVICES (no formato JSON) e salve em um arquivo local (/home/leoks/vcap.txt, por exemplo). Iremos usar este arquivo posteriormente.

Agora, volte para o Eclipse IDE.

O padrão gera algumas classes Java por padrão. Vamos modificar um pouco a classe /JavaDBApp/src/main/java/example/servlet/SimpleServlet.java existente.

Mude a classe existente para que ela seja semelhante a isto (use CTRL+SHIFT+O do Eclipse para resolver as importações)

package example.servlet;

import java.io.File;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;

import com.ibm.watson.developer_cloud.speech_to_text.v1.SpeechToText;
import com.ibm.watson.developer_cloud.speech_to_text.v1.model.SpeechResults;
import com.ibm.watson.developer_cloud.util.CredentialUtils;

@WebServlet("/SimpleServlet")
public class SimpleServlet extends HttpServlet {

 private SpeechToText s2t = new SpeechToText();
 
 @Override
 public void init() throws ServletException {
   super.init();
   String vcap = System.getProperty("VCAP_SERVICES");
   if (vcap == null){
     try {
       vcap = FileUtils.readFileToString(new File("/home/leoks/vcap.txt"));
     } catch (IOException e) {
       e.printStackTrace();
     }
   }
   CredentialUtils.setServices(vcap);
   s2t.setApiKey(CredentialUtils.getAPIKey("speech_to_text"));
 }

 public static void main(String[] args) throws ServletException{
   SimpleServlet ss = new SimpleServlet();
   ss.init();
   SpeechResults results = ss.s2t.recognize(new File("/home/leoks/sample.flac"));
   System.out.println(results.getResults().get(0).toString());
 }
 
 private static final long serialVersionUID = 1L;

 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   response.setContentType("text/html");
   response.getWriter().print("Hello World!");
 }

}

É possível obter esta amostra de áudio em https://ibm.box.com/shared/static/p8d80dqg0mi0un69d3bpywszspm38svz.flac

Para obter mais informações sobre Speech to Text e formatos de áudio suportados, verifique este link: http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/speech-to-text/

O resultado esperado é

{
   "final": true,
   "alternatives": [
   {
     "transcript": "learning to use Watson ",
     "confidence": 0.998
   }
 ]}

Agora, vamos mudar o Servlet e implementar seu aplicativo, para que possamos testar o Speech to Text on-line

6

Inclua o serviço do Watson em seu aplicativo

Clique em “Incluir um Serviço ou API”

Escolha uma API do Watson, por exemplo, Speech to Text

Clique no serviço

Em seguida, clique em “criar” e permita que o IBM Cloud prepare o aplicativo novamente.

É possível incluir até 4 serviços diferentes usando o IBM Cloud Trial. Se precisar de mais, entre em contato com o Suporte do IBM Cloud (https://support.ibmcloud.com/ics/support/mylogin.asp?login=bluemix)

7

Juntando Tudo: executando o Watson a partir de um Aplicativo IBM Cloud

Mude o método GET de seu servlet para isto

@Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   String audioUrl = request.getParameter("audioUrl");
   try{
     URL url = new URL(audioUrl);
     File tmp = File.createTempFile("myTmp", ".flac");
     tmp.deleteOnExit();
 
     IOUtils.copy(url.openStream(), new FileOutputStream(tmp));
 
     SpeechResults results = s2t.recognize(tmp);
 
     response.setContentType("application/json");
     response.getWriter().write(results.getResults().get(0).toString());

   }catch(Exception e){
     response.setContentType("text/html");
     e.printStackTrace(response.getWriter());
   }
 }

Clique com o botão direito em seu projeto do Eclipse, escolha “Equipe->Confirmar”

Inclua uma mensagem de confirmação (por exemplo “Primeira confirmação”) e clique em “Confirmar e Realizar Push”, em seguida, em “OK”.

Isto enviará o código ao GIT no JazzHub que, por sua vez, acionará um novo processo de implementação. É possível monitorar o processo acessando a URL do DevOps Service (para este projeto, o link é https://hub.jazz.net/pipeline/leoks/myOwnUniqueAppName). É possível acessar o pipeline de seu projeto a partir do Painel clicando em “Editar Código” (parte superior direita) e, em seguida, em “Desenvolver e Implementar” (parte superior direita).

Vamos testar nosso aplicativo

http://myownuniqueappname.mybluemix.net/SimpleServlet?audioUrl=https%3A%2F%2Fibm.box.com%2Fshared%2Fstatic%2Fp8d80dqg0mi0un69d3bpywszspm38svz.flac

(use um serviço de codificador tal como http://meyerweb.com/eric/tools/dencoder/ para gerar a URL codificada, para que você possa incluir como um parâmetro para a solicitação de http)

É isso!


Recursos para download


Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing
ArticleID=1039955
ArticleTitle=Inicialização rápida de APIs Watson do IBM Cloud usando Java SDK
publish-date=11172016