Chatbot em Python
Publicado por Fernando (última atualização em 17/09/2015)
[ Hits: 11.906 ]
Homepage: https://github.com/phoemur/
Este script escrito em Python 3 faz login em um canal de IRC e fica aguardando. Ele responderá a mensagens privadas, simulando uma conversa, utilizando o protocolo do chatbot ALICE: http://alice.pandorabots.com/
O A.L.I.C.E (Artificial Linguistic Internet Computer Entity) é um chatterbot criado na Lehigh University por Richard S. Wallace, ativada em 1995, sendo um dos robôs mais populares da atualidade. É um projeto da internet que faz parte do Projeto Pandora. Este projeto envolve a criação de bots de todos os tipos, especialmente aqueles em bate-papo.
Este script em particular pega a resposta via HTTP e joga para o IRC e vice-versa. Edite o script para configurar o canal e o nickname desejados. Depois entre no canal com seu cliente favorito e converse com o robô (APENAS EM INGLÊS).
#!/usr/bin/env python3 import os import re import socket import time import urllib.request import urllib.parse import http.cookiejar from random import randint # SETTINGS SERVER = 'irc.freenode.net' PORT = 6667 CHANNEL = '##slackware' NICK = 'chatbot_test' class chatter(object): def __init__(self): self.url='http://sheepridge.pandorabots.com/pandora/talk?botid=b69b8d517e345aba&skin=custom_input' self.cj = http.cookiejar.CookieJar() self.opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(self.cj)) self.opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201'), ('Accept', 'text/html, text/plain, text/css, text/sgml, */*;q=0.01'), ('Cache-Control', 'no-cache')] def talk(self, m): self.data = {'input': str(m)} with self.opener.open(self.url, urllib.parse.urlencode(self.data).encode('UTF-8')) as url: content = url.read().decode('UTF-8') repl = re.search('<b>A.L.I.C.E.:</b> (.*)<br/>', content) return str(repl.group(1)) def main(): # Create socket and log in s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((SERVER, PORT)) s.send('NICK {}\r\n'.format(NICK).encode('ISO-8859-1')) s.send('USER {} {} {} .:\n'.format(NICK, NICK, NICK).encode('ISO-8859-1')) s.send('JOIN {}\r\n'.format(CHANNEL).encode('ISO-8859-1')) time.sleep(2) print(s.recv(1024).decode('ISO-8859-1')) # Mainloop chatbot = chatter() while True: msg = s.recv(4096).decode('ISO-8859-1') if len(msg) > 0: print(msg) if msg[0:4] == 'PING': s.send(msg.replace('PING', 'PONG').encode('ISO-8859-1')) if re.search('PRIVMSG {} :'.format(NICK), msg): try: subject = msg.split('!')[0].lstrip(':') question = msg.split(':')[2].rstrip() answer = chatbot.talk(question) if re.search('[Jj]udge', answer): answer = re.sub('[Jj]udge', subject, answer) time.sleep(randint(3, 12)) s.send('PRIVMSG {} :{}\r\n'.format(subject, answer).encode('ISO-8859-1')) except: continue if __name__ == '__main__': main()
Descubra seu IP através do MeuIP
Script que obtém informações disponibilizadas a bots pelos sites
Google scan com interface gráfica
Nenhum comentário foi encontrado.
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando e usando o Dconf Editor, o "regedit" para Linux
Como instalar o navegador TOR no seu Linux
Instalando Zoom Client no Ubuntu 24.04 LTS
Encriptografa... as particoes com LUKS, o que poderia dar errado? (0)
Qual a relevancia dos valores de bogomips com os Mhz e Ghz[DUVIDA] (2)