Fechamento do Pós-Doutorado, Atualizações e Próximos Passos

Pós-Doutorado…

Há algum tempo o blog não tem sido atualizado. Entretanto, isso não significa que o projeto ficou parado durante esse tempo. Muito foi feito e muito foi planejado desde a última atualização do blog no inicio do ano de 2014 até agora.

Em março de 2014 iniciei como pesquisador de pós-doutorado (sem contemplação de bolsa de pesquisa) pelo Programa de Pós-Graduação em Engenharia de Automação e Sistemas (PGEAS) da Universidade Federal de Santa Catarina (UFSC), sendo que finalizei essa etapa no mês de Fevereiro do ano corrente.

Entre os objetivos do projeto estava a investigação, seleção e modelagem de processos de negócios que poderiam ser aplicados na arquitetura de Softwares Assistentes Pessoais sob a Arquitetura Orientada a Serviços (SAP/SOA) desenvolvida em meu doutorado.

Investigação, seleção, modelagem e prototipagem…

Devido a algumas necessidades do Departamento de Integração Acadêmica e Profissional (DIP) da UFSC, que concomitou com o andamento do meu projeto de pós-doutorado, foi constatada uma problemática em que os colaboradores responsáveis pelo DIP se encontravam sobrecarregados nas tarefas de responder aos questionamentos e dúvidas para os coordenadores de estágio e aos acadêmicos da instituição. Este problema poderia poder ser resolvido, pelo menos em parte, utilizando a arquitetura de referência desenvolvida em meu doutorado.

Tendo esse cenário como base, a arquitetura foi adaptada para responder aos questionamentos dos colaboradores e acadêmicos com o interfaceamento de um módulo de chatbot. Posteriormente, o assistente poderia também efetuar automaticamente outros processos de negócios para os acadêmicos e colaboradores. Durante todo o período do projeto de pesquisa, foram realizadas reuniões juntamente aos colaboradores do DIP para definição e refinamento dos requisitos, para apresentação da evolução do trabalho e para apresentação de resultados.

Em tempo, foi constatado a necessidade de se remodelar o módulo de conversação para que suportasse trabalhar com contextos/assuntos. Dessa forma, um novo modelo do chatbot foi implementado, gerando um protótipo que foi apresentado na reunião de coordenadores de estágio da UFSC em setembro de 2014.

Manutenção e modificações da implementação existente…

Em paralelo, o servidor do GAP (Gerenciador de Assistentes Pessoais) passou por uma etapa de limpeza de código, conserto de bugs e reimplementação de algoritmos para trabalharem de forma mais eficiente. Algumas partes do código passaram a ser threads, permitindo a alguns códigos do sistema trabalharem em paralelo.

Foram criados arquivos de configuração (config.json) nos programas servidores, incluindo o GAP e o ISAP (Interface Social de Assistentes Pessoais). Isso tornou possível mudanças em algumas configurações dos programas sem a necessidade de alterar e recompilar o código fonte. Para a configuração dos programas com interface web em PHP e serviços web, também foram criados arquivos de configuração, mas utilizando arquivos config.php.

Arisa agora fala via aplicativo no Android…

Nessa semana estive trabalhando em um aplicativo para o sistema operacional Android. Este aplicativo serve como interface de conversação com a Arisa. Para a implementação foram utilizadas as APIs do Google de reconhecimento de voz e de fala. A primeira versão do aplicativo ficou pronta hoje, mas necessita de diversos ajustes antes que o mesmo possa ser disponibilizado no Google Play. Isso possibilitará que qualquer pessoa possa conversar com a Arisa por meio de conversação (fala) via dispositivo móvel com sistema operacional Android.

Próximos passos…

Pretende-se como próximos passos:

  • A criação de uma camada de interpretação de comandos entre o módulo de chatbot e o motor de execução do assistente pessoal;
  • Remodelagem e reimplementação da interface de configuração dos assistentes pessoais, permitindo a modelagem dos comportamentos de forma gráfica;
  • Gerenciamento da agenda do usuário para gerenciamento de compromissos.

Por enquanto é isso. Aguardem que logo teremos novidades…

Novo Módulo de Chat em Funcionamento e Testes

Neste momento, uma nova versão do módulo de conversação (chatbot) da Arisa encontra-se em funcionamento e testes. Nesta versão foi implementado um sistema de conversas orientada a contextos como forma de armazenamento de uma breve memória do assunto em pauta. Para que isso se torne eficiente, ainda é necessário alimentar a base de conhecimento com as novas regras agora em funcionamento.

Também foi efetuada uma otimização na utilização da memória e uma melhoria nos códigos fonte (códigos de programação). Por fim, a interface web para a configuração do chatbot e alimentação da base de conhecimento foi totalmente remodelada, comportando agora o gerenciamento dos contextos e diálogos com múltiplas entradas possíveis relacionadas as múltiplas saídas possíveis.

Novo módulo de chatbot em desenvolvimento

Encontra-se em desenvolvimento uma nova versão do módulo de chatbot, com previsão de entrar em execução até a metade do próximo mês (Junho). Algumas novas funcionalidades, além de melhorias, devem ser acrescentadas nessa etapa, são elas:

  • Conversação orientada a contextos;
  • Armazenamento de uma breve memória de assuntos por usuário;
  • Otimização do uso da memória;
  • Melhoria nos algoritmos para “enxugar” o código;
  • Melhoria na interface web para configuração.

A médio e longo prazo, para uma nova versão, são planejadas as seguintes funcionalidades, já em estudo e desenvolvimento:

  • Gerenciamento de comportamento  BDI (Belief–desire–intention);
  • Aprendizado baseado em percentual de certeza;
  • Aprendizado por pesquisa em referências bibliográficas;
  • Utilização de informações variáveis;
  • Utilização de regras de validação;
  • Criação de funções em LUA.

Novo Comportamento – Rastreio de Objetos nos Correios

Nessa última semana foi adicionado um novo comportamento para a Arisa. Agora ela é capaz de fazer a verificação de rastreio de objetos nos correios.

Para isso foi necessário a criação de um serviço web que analisa se alguma mudança foi feita, a partir de um código de rastreio e, caso alguma situação nova tenha sido verificada, o serviço web, quando invocado, informa tal atualização.

No Gerenciador de Assistentes Pessoais (GAP) foi adicionado o comportamento que utiliza esse serviço web, tornando possível para a Arisa efetuar essa verificação e enviar uma mensagem privada (Gtalk ou SMS) com a atualização.

Um problema encontrado foi que essa verificação era feita com uma frequência alta demais. Tal procedimento poderia fazer com que os correios bloqueassem a solicitação das informações. Para resolver esse problema foi implementada uma operação no serviço web de gerenciamento de data  e hora (datetime) chamado wait. Para a operação é enviado a data e horário da última verificação e uma informação informando o quanto deve ser esperado. Caso o tempo já tenha passado, a operação retorna 0, senão retorna 1.

Com essa operação agora é possível colocar um timeout nos comportamentos no GAP. Isso resolveu o problema do comportamento de verificação de rastreio nos correios, com a configuração um timeout de meia hora para cada verificação.

Arisa de volta ao Twitter

Consegui um tempo para trabalhar na atualização da Arisa para voltar a interagir via Twitter. Foi necessário efetuar algumas modificações para tornar possível para ela trabalhar com a API versão 1.1 do Twitter. Para tal, baixei a última versão a biblioteca twitteroauth.php de Abraham Williams, reprogramei os métodos no GAP de recuperação das informações do resultado das chamadas ao Twitter (antes eu tinha como resultado um documento XML, agora é possível apenas buscar documentos JSON) e, por fim, recriei as chaves de acesso OAuth no site de desenvolvimento de aplicativos do Twitter.

A Arisa pode agora voltar a conversar no Twitter, via mensagens públicas e mensagens diretas (privadas). A próxima etapa é habilitar sua interação via Facebook. Arisa, seja bem vinda de volta ao Twitter.