Venus Chat Bot: Difference between revisions

From Futuragora Wiki
Line 201: Line 201:
</pre>
</pre>


==Astriscos==
==Asteriscos==


São palavras ou grupos de palavras que de um forma genérica seja por primeira ou ultima palavra da frase encaminham sempre para a mesma resposta (que podem ser varias alternadas) ver comando <li>
São palavras ou grupos de palavras que de um forma genérica seja por primeira ou última palavra da frase encaminham sempre para a mesma resposta (que podem ser varias alternadas - ver comando <li> ). Podem ser verbos ou adjectivos.


<pre>
<pre>

Revision as of 16:59, 9 October 2019

codename: Venus Assistente Virtual

Projecto (página): https://futuragora.pt/portfolio/inteligencia-artificial-aiml/

Servidor: Program-O

Venus AIML at Github: https://github.com/roltel/aiml-pt-pt-futuragora-venus/tree/master/branches/venus

Chat with Venus: https://futuragora.pt/venus | admin: https://futuragora.pt/programo/admin

A Vénus

A Vénus é uma assistente virtual desenvolvida para ter a capacidade de conversar em linguagem natural portuguesa e facilitar o acesso a informação assim como realizar automatísmos.

É um chatbot/ai criado pela Futuragora que contém uma compilação linguística em Português de 60 milhares de entradas. Foi desenvolvida para esclarecer e informar sobre conteúdos, ser uma companheira, realizar pesquisas, fazer telefonemas, agendar eventos, calcular, automatizar processos, comandar circuitos electrónicos ou robôs.

É exactamente o vislumbre das funções esperadas pela larga imaginação da ficção científica agora tornadas realidade.

A Vénus é a maior base de dados de conversação em linguagem natural de português de Portugal. O Português é a sexta língua mais falada no mundo e existe uma falta de projectos que sustentem o futuro da língua de Camões dentro dos avanços tecnológicos que se avizinham.

Pretende-se mapear e preservar a conversação em linguagem natural portuguesa. Actualmente a maioria das aplicações, softwares e ferramentas são redigidos em inglês. Com o nosso projeto pretendemos garantir que a lingua portuguesa se manterá activa devido a sua integração em sistemas de inteligência artifical.

Especificação Técnica

Conversação natural Portuguesa em AIML:

Módulo de perfil português com 40 categorias;

Módulo de compatibilidade de acentos e caracteres especiais; (em debug)

Consciência Virtual de 60.000 Categorias;

5000 categorias em linguagem natural portuguesa (de Portugal);

Módulo de autoaprendizagem; (em testes)

Servidor api para chat;

Avançadas

Output audio em língua portuguesa;

Input audio em linguagem natural portuguesa;

Pesquisas na internet pelo google;

Informação contida na Wikipedia;

Dicionario em Português de Portugal; (em testes)

Contactos e Gestão de Contactos; (em testes)

Emails; (em testes)

Notícias;

Assistente a Cliente;

Program-O

O Program-O é o motor que lê os ficheiros aiml e está escrito em php/mysql. https://github.com/Program-O/Program-O/wiki/Installation-Guide

Instalação FA: https://futuragora.pt/venus/programo/chatbot/conversation_start.php

Venus Text

https://futuragora.pt/venus/venus.php https://futuragora.pt/Program-O/gui/plain/venus.php

Venus Falante TTS

https://futuragora.pt/Program-O/gui/plain/venusaudio.php

Foi desenvolvida uma versão da Venus AIML usando o TTS (text-to-speech) do google. Com ela poderá obter as respostas em linguagem natural audio, mas com a condicionante de ser em "brasileiro" uma vez que o google tts ainda não tem em Português de Portugal.

Google TTS on Program-O

Cada vez que é realizada uma query ao servidor do Program-o essa query é gravada num txt. De seguida o "inotifywait" reconhece que o ficheiro foi alterado:

cd /home/futuragora/public_html/Program-O/gui/plain

while [[ 1 ]]; do inotifywait -e modify ./testve.txt; ./venusaudioupdate.sh; done

O ficheiro é enviado para o Google TTS atráves da API onde a voz é processada num script que fica disponível para emissão.

Script ssml

O script ssml tem um formato especial para ser reconhecido pelo TTS do google. Para automatizar esse processo um outro script de bash agarra no ficheiro de texto gerado acima e e inseres no ficheiro ssml que é envido para o google TTS.

Venus Radio

Inserido no projecto do boletim informativo e do opensenses é possível emitir para o canal 3 da banda do cidadão usando a Vénus. Quando é processado o texto o audio é enviado para o Piradio que liga o relé e emite o audio venusradio.mp3.

Wiki Search

https://en.wikipedia.org/w/api.php?action=opensearch&search=zyz&limit=1&namespace=0&format=jsonfm

Usando o módulo do proprio program-O, a Venus passou a ter todo o conhecimento da wikipedia. A Tag é:

 
<wiki><star/></wiki>

Poderá perguntar "wiki palavra" ou usar os seguintes inicios de pergunta:

1. ONDE FICA * | SABES ONDE FICA *

2. ONDE É *

3. QUANDO FOI _

4. QUEM É _ -> interfere

5. QUEM FOI _

6. O QUE É * | O QUE É QUE É *

7. CONHECES *

O QUE SABES SOBRE


Google search

SRAI TAG

Esta tag é tipo o "go to" remetendo para uma categoria ja existente.

<srai>TEXTO</srai>

Usado apenas a </srai> repete um asterisko no user input.

Comandos especiais

Estes comandos especiais vão beber dados que são actualizados a cada hora, como noticias, dados de sensores e outra informação dinamica.

CITA -> dá uma citação (40 citações famosas)

NOTICIAS -> Passa as 3 ultimas noticias.

FAS1 -> Reporta os dados so Fasensor21.

METEO -> Dá a previsão do tempo para amanhã.

UV -> Reporta os raios ultra violetas para hoje e para amanhã.

FADEV -> Links da FA para devs.

FUTURAI ->

FALERT -> Emissão em audio da FA com dados actualizados.

BEACON -> Emissão em audio do beacon 333 da Futuragora.

Colecta de dados externos

DIZ-ME AS NOTICIAS -> 5 ultima noticias do observador

DIZ-ME O TEMPO -> Em Lisboa

DIZ-ME CRIPTOMEDA ->

DEIXAR MENSAGEM PARA -> VOICEMAIL MIKE05

EUROMILHOES ->

NOTICIAS -> Formulario para carregar as noticias e novidades sobre os radios. data.

Relay controlo on Program-O

RE1 ON -> Ligar relay1. RE1 OFF -> Desligar relay1.

AIML

Alice Portuguese Translation

Tradução AIML da Futuragora. Baseado no alice 1.7. 60.000 Categorias. O perfil da Venus está principalmente no ficheiro venus.aiml. Aí tem VENUS VENUS2 (contactos), VENUS3 e VENUS4 (conversa).

https://github.com/roltel/aiml-pt-pt-futuragora-venus

Ensinar a Venus com novo AIML

Quando estiver a conversar e o bot não tiver resposta, ou a resposta for demasiado disparatada deverá escrever: APRENDER frase de resposta. Semanalmente as categorias são confirmadas e as novas respostas estarão disponíveis na Vénus.

Venus: OI
User: Como és?
Venus: Não sei.
User: APRENDER Sou muito linda.

Asteriscos

São palavras ou grupos de palavras que de um forma genérica seja por primeira ou última palavra da frase encaminham sempre para a mesma resposta (que podem ser varias alternadas - ver comando

  • ). Podem ser verbos ou adjectivos.
    ESTOU *
    
    VAMOS * 
    


    AIML substitutions

    (EM DESENVOLVIMENTO)

    Letras que são encaminhadas para sem acentos: ã á à â é ê í ó õ ô ú

    Usar sempre o cedilha "ç"

    Para resolver o problema com alguns acentos nomeadamente se o utilizador não ter de escrever os acentos todos, fizemos as substituições acima. Se escrever sem acento ele assume igual a com acento.

    "EU QUERIA" > "QUERIA"
    "EU GOSTO" > GOSTO - Remover todos os "eu gosto", substituir por "gosto" e no final fazer um reencaminhamento para o "gosto".
    "EU NAO GOSTO" > "NAO GOSTO"
    "EU JA" > "JA"
    "EU TOCO" > "TOCO"
    "EU ODEIO" > "ODEIO"
    "EU NAO SOU" > "NAO SOU"
    "EU PENSEI" > "PENSEI"
    "EU ESTOU" > "ESTOU"
    "EU SOU" > "SOU"
    "EU ESTOU" > "ESTOU"
    "EU SINTO-ME" > "SINTO-ME"
    "EU PENSEI" > "PENSEI"
    "EU VOU" > "VOU"
    "EU FUI" > "FUI"
    "EU NAO GOSTO" > "NAO GOSTO"
    

    AIML ON Bash

    Versão da vénus via terminal (consola linux)

    #!/bin/bash 
    # assistant.sh
    echo "Venus Virtual Assistant version 0.1.2"
    echo "Choose your assistant:"
    echo "1 - Venus (Portugues)"
    echo "2 - Fresco:"
    venus="1"
    fresco="2"
    echo -n "Select assistant: " 
    read assistant
    if [ $assistant  == $venus ]
    then
    bot="Venus"
    elif
    [ $assistant  == $fresco ]
    then
    bot="Fresco"
    fi
    ./venusa.sh
    

    IRC BOT

    Eggdrop install error tcl:

    ./configure --with-tclinc=/usr/include/tcl8.6/tcl.h --with-tcllib=/usr/lib/x86_64-linux-gnu/libtcl8.6.so


    Desenvolvimento

    Os desenvolvimento do projecto são mantidos no servidor da Associação Futuragora: http://futuragora.pt/projetos/venus-a-assistente-pessoal-da-futuragora/

    Resumo de Actividades:

    2019 Setembro

    2019 Junho - Venus Radio

    2018 Dezembro - Venus Falante

    2018 Março - Módulo wiki, testes


    Março 2015 - Importação total para o novo motor

    Setembro 2014 - Revisão e merge com elementos da cybora

    Fevereiro 2014 - Migração para Program-O

    Janeiro 2014 - Correção de bugs

    Abril 2013 - Desactivação de serviços por bugs

    Janeiro 2012 - Nova imagem da Futuragora, nova cara;

    Dezembro 2012 - 50 novas categorias para o fresco bot;

    Setembro 2012 - Tradução automatizada usando o google translator de todos os ficheiros da alicebot versão 01/12;

    Julho 2012 - Lançamento da Venus, Assistente Pessoal;

    Junho 2012 - Testes aiml em Português;

    Abril 2012 - Lançamento Jacque Fresco Bot lançado (FAQ sobre rbe - #50);

    Fevereiro 2012 - Levantamento de AIML em Português;

    Dezembro 2011 - Servidor Charlibot running;

    Setembro 2011 - Java tests;

    Junho 2010 - Testes em php/mysql


    Mais no Terminai