Assistente virtual de IA usando python

Conteúdo

2. Explicação do código

Por isso criamos nosso próprio assistente virtual.

Notas

  • Todos os códigos estão disponíveis no meu GitHub.
  • Vídeo de demonstração do YouTube e código de vídeo do YouTube também estão disponíveis no meu canal.
  • Os links e pacotes necessários são mencionados abaixo.
  • Compartilhar seria apreciado.

Vamos codificar

2.1. Pacotes e bibliotecas necessários

pip instalar JarvisAI

Este é o mais recente módulo de assistente virtual, criado por mim. Fornece a funcionalidade básica de qualquer assistente virtual. O pré-requisito é apenas Python (> 3.6).

Uso e Recursos

Depois de instalar a biblioteca, você pode importar o módulo:

import JarvisAI
obj = JarvisAI.JarvisAssistant()
resposta = obj.mic_input()
imprimir(resposta)

A funcionalidade é limpa com o nome do método. Você pode verificar o código, como um exemplo.

  1. entrada_microfone
  2. text2speech
  3. apagar
  4. website_opener
  5. enviar correio
  6. tell_me_date
  7. diga_me_tempo
  8. launch_any_app
  9. clima
  10. Notícias
  11. Conte-me

Leia mais sobre isso aqui e você também pode contribuir para este repositório aqui.

2.2. Código-

Importações

importar Jarvis AI
importar importar pprint
importar aleatória

Criação de objeto por JarvisAI de acordo com documentação

obj = JarvisAI.JarvisAssistant()

Criamos esta função 't2s (texto)’. Isso converterá qualquer texto em fala. Todo o programa usará (nós vamos ligar) a esta função para produzir fala a partir de texto.

def t2s(texto):
    obj.text2speech(texto)

Queremos ouvir continuamente a entrada do usuário, então este 'mic_input ()’ tentará obter áudio do microfone do computador continuamente. Ele processará o áudio e retornará o texto na variável 'res'. Podemos usar esta variável 'res’ para executar alguma ação de acordo com a entrada do usuário.

enquanto verdadeiro:
    res = obj.mic_input()

Previsão do tempo: Estamos usando uma expressão regular para corresponder às consultas na entrada do usuário. Se você encontrar 'clima’ o ‘temperatura’ na entrada do usuário 'res', por isso queremos fazer uma previsão do tempo. Não há necessidade de escrever coisas do zero, é só chamar 'obj.weather (cidade = cidade)’.

Você só precisa obter a cidade da entrada do usuário e passá-la para a função meteorológica. Ele informará a previsão do tempo para sua cidade.

Podemos passar este 'weather_res’ voltou para 't2s (clima_res)’ para produzir voz a partir da string 'weather_res'.

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa('clima|temperatura', res):
        cidade = res.split('')[-1]
        weather_res = obj.weather(cidade=cidade)
        imprimir(clima_res)
        t2s(clima_res)

Notícias: De forma semelhante ao anterior, corresponder à palavra 'notícias’ da entrada do usuário 'res'. Coincide, ligue para 'obj.news'.

retornará 15 notícias como uma lista de cadeias. Então, podemos pesquisar notícias como 'news_res[0]' e passe para’ t2s (news_res[0]) ‘.

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa('notícias', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(f"eu encontrei {len(news_res)} notícias. Você pode lê-lo. Deixe-me dizer-lhe primeiro 2 deles")
        t2s(news_res[0])
        t2s(news_res[1])

contar quase tudo: Você receberá o primeiro 500 caracteres da Wikipedia e os retornará como uma string. Você pode usar 'obj.tell_me (tema)’.

Deve passar 'tópico’ um 'diga-me (tema = tema)’. O tópico é a palavra-chave que você deseja saber.

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa('fale-me sobre', res):
        tópico = res.split('')[-1]
        wiki_res = obj.tell_me(tema)
        imprimir(wiki_res)
        t2s(wiki_res)

Data e hora: Ele informará a data e hora atuais do seu sistema.

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa('encontro', res):
        data = obj.tell_me_date()
        imprimir(encontro)
        imprimir(t2s(encontro))

E se pesquisa('Tempo', res):
        tempo = obj.tell_me_time()
        imprimir(Tempo)
        t2s(Tempo)

Abra qualquer portal da web: Este 'obj.website_opener (domínio)’ abrir qualquer portal web para você. Você só precisa obter o domínio da entrada do usuário e, em seguida, mover-se para 'obj.website_opener (domínio)’. Ele abrirá o portal web no seu navegador padrão.

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa('aberto', res):
        domínio = res.split('')[-1]
        open_result = obj.website_opener(domínio)
        imprimir(open_result)

Inicie qualquer aplicativo, Toque, etc.

Isso é um pouco complicado., em 'obj.launch_any_app (path_of_app = caminho)’ a função que você precisa para passar o caminho do seu arquivo '.exe'.

Por isso criamos o dicionário 'dict_app’ que tem um 'nome de aplicativo'’ como uma chave e uma "rota"’ como um valor. Podemos usar este "dict_app’ para realizar pesquisas. Se o aplicativo de entrada do usuário existe no dicionário, vamos abri-lo obtendo a rota.

O exemplo a seguir é apenas para Chrome e Epic Games.

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa('lançar', res):
        dict_app = {
            'cromado': 'C:Arquivos do programa (x86)GoogleChromeApplicationchrome.exe',
            'Jogos épicos': 'C:Arquivos do programa (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split('', 1)[1]
        caminho = dict_app.get(aplicativo)
E se caminho é Nenhum:
            t2s('Caminho de aplicação não encontrado')
            imprimir('Caminho de aplicação não encontrado')
outro:
            t2s('Lançamento: ' + aplicativo)
            obj.launch_any_app(path_of_app=caminho)

Saudações e Palestras, você pode criar saudações e conversar assim por enquanto.

Estou trabalhando em https://pypi.org/project/JarvisAI/ para adicionar o tipo de funcionalidade de bate-papo usando Tensorflow. Você pode contribuir para torná-lo melhor.

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa('Olá', res):
        imprimir('Oi')
        t2s('Oi')

E se pesquisa("Como você está", res):
        li = ['bom', 'multar', 'excelente']
        resposta = aleatório.escolha(no)
        imprimir(f"Eu sou {resposta}")
        t2s(f"Eu sou {resposta}")

E se pesquisa(Seu nome|quem é você., res):
        imprimir("Meu nome é Jarvis., Eu sou seu assistente pessoal.")
        t2s("Meu nome é Jarvis., Eu sou seu assistente pessoal.")

Pedir- "O que você pode fazer??’: Aqui estamos simplesmente usando 'obj.t2s ()’ para produzir alguma voz. Se você conhece Python, você vai entender facilmente o seguinte código:

enquanto verdadeiro:
    res = obj.mic_input()

E se pesquisa("O que você pode fazer", res):
        li_commands = {
            "sites abertos": "Exemplo: 'youtube.com aberto",
            "Tempo": "Exemplo: "Que horas são?'",
            "encontro": "Exemplo: 'Que data é?'",
            "aplicativos de lançamento": "Exemplo: 'lançar cromo'",
            "Me conta": "Exemplo: 'Fale-me sobre a Índia'",
            "tempo": "Exemplo: 'que clima/temperatura em Mumbai?'",
            "notícias": "Exemplo: 'Notícias por hoje' ",
        }
        ans = """Eu posso fazer muitas coisas, por exemplo, você pode me perguntar tempo, encontro, tempo em sua cidade,
        Posso abrir sites para você, aplicativo de lançamento e mais. Veja a lista de comandos..."""
        imprimir(Ans)
        pprint.pprint(li_commands)
        t2s(Ans)

3. Completo el código

import JarvisAI
import re
import pprint
import random

obj = JarvisAI.JarvisAssistant()


def t2s(texto):
    obj.text2speech(texto)


enquanto verdadeiro:
    res = obj.mic_input()

    se re.search('clima|temperatura', res):
        cidade = res.split('')[-1]
        weather_res = obj.weather(cidade=cidade)
        imprimir(clima_res)
        t2s(clima_res)

    se re.search('notícias', res):
        news_res = obj.news()
        pprint.pprint(news_res)
        t2s(f"eu encontrei {len(news_res)} notícias. Você pode lê-lo. Deixe-me dizer-lhe primeiro 2 deles")
        t2s(news_res[0])
        t2s(news_res[1])

    se re.search('fale-me sobre', res):
        tópico = res.split('')[-1]
        wiki_res = obj.tell_me(tema)
        imprimir(wiki_res)
        t2s(wiki_res)

    se re.search('encontro', res):
        data = obj.tell_me_date()
        imprimir(encontro)
        imprimir(t2s(encontro))

    se re.search('Tempo', res):
        tempo = obj.tell_me_time()
        imprimir(Tempo)
        t2s(Tempo)

    se re.search('aberto', res):
        domínio = res.split('')[-1]
        open_result = obj.website_opener(domínio)
        imprimir(open_result)

    se re.search('lançar', res):
        dict_app = {
            'cromado': 'C:Arquivos do programa (x86)GoogleChromeApplicationchrome.exe',
            'Jogos épicos': 'C:Arquivos do programa (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
        }

        app = res.split('', 1)[1]
        caminho = dict_app.get(aplicativo)
        se o caminho é Nenhum:
            t2s('Caminho de aplicação não encontrado')
            imprimir('Caminho de aplicação não encontrado')
        outro:
            t2s('Lançamento: ' + aplicativo)
            obj.launch_any_app(path_of_app=caminho)

    se re.search('Olá', res):
        imprimir('Oi')
        t2s('Oi')

    se re.search("Como você está", res):
        li = ['bom', 'multar', 'excelente']
        resposta = aleatório.escolha(no)
        imprimir(f"Eu sou {resposta}")
        t2s(f"Eu sou {resposta}")

    se re.search(Seu nome|quem é você., res):
        imprimir("Meu nome é Jarvis., Eu sou seu assistente pessoal.")
        t2s("Meu nome é Jarvis., Eu sou seu assistente pessoal.")

    se re.search("O que você pode fazer", res):
        li_commands = {
            "sites abertos": "Exemplo: 'youtube.com aberto",
            "Tempo": "Exemplo: "Que horas são?'",
            "encontro": "Exemplo: 'Que data é?'",
            "aplicativos de lançamento": "Exemplo: 'lançar cromo'",
            "Me conta": "Exemplo: 'Fale-me sobre a Índia'",
            "tempo": "Exemplo: 'que clima/temperatura em Mumbai?'",
            "notícias": "Exemplo: 'Notícias por hoje' ",
        }
        ans = """Eu posso fazer muitas coisas, por exemplo, você pode me perguntar tempo, encontro, tempo em sua cidade,
        Posso abrir sites para você, aplicativo de lançamento e mais. Veja a lista de comandos..."""
        imprimir(Ans)
        pprint.pprint(li_commands)
        t2s(Ans)

4. Repositório Github

Puedes utilizar mi código con total libertad. Destaca si te gusta mi trabajo, suscríbete Youtube si amas.

Simplemente clona el repositorio https://github.com/Dipeshpal/Jarvis-Assisant.git

Después ejecute pip instalar -r requisitos.txt

Instalará todo automáticamente.

Solo abre esto Repositório GitHub, léelo y comprenderá cómo puede contribuir.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.