[ home ] [ a / jp / h / lain ] [ b / hum ] [ mu / tech / v / vis / x ] [ meta / nexo ]

/tech/ - Tecnología

No rompas las leyes de Isaac Asimov
Nombre
Email
Comentario
Archivo





[]
Adjuntar
Clave (Para eliminar el post.)

  • Archivos soportados: [ jpg, jpeg, png, gif ] , [ ogg, mp3 ] , [ webm ] & [ pdf ].
  • Adjuntos soportados: [ youtube, vimeo, dailymotion, metacafe & vocaroo ].
  • Tamaño máximo total 20MB.



File: MLcMqzyw_400x400.png (63.44 KB, 240x240) ImgOpsiqdb

63.44 KB

No.2936

Saludos. He estado haciendo chatbots sencillos en Python, pero se me ocurrió que podria ponerlos a conversar entre ellos, es decir, mi chatbot 1 conversando con mi chatbot 2. El asunto es que no se como podria hacerlo. Saben de que manera podria hacerlo? Algun consejo o ejemplo de alguien que ya lo haya hecho.
>>

No.2938

>>2936
Crea un tercer script (por ejemplo, llamado "main.py") que comunique a ambos bots pasando sus diálogos por el argv de cada uno y que también rescate sus respuestas para imprimirlas a la salida estándar y enviarlas al otro bot.
Tendrás que hacer que cada bot revise el argv para detectar si hay un mensaje al que deba responder. Para acceder al argv o los argumentos del programa necesitas el módulo "sys". Por ahí puedes pasar información para comunicar un bot con otro. El tercer script que comunica a ambos bots debe usar el módulo subprocess para que con la función check_output() puedas comunicar a ambos bots. Lo ejemplifico de forma fea pero entendible:

mensaje_bot1 = "hola"
mensaje_bot2 = ""

while True:
print("Bot 1: " + mensaje_bot1)
mensaje_bot2 = str(subprocess.check_output(["python", "bot2.py", mensaje_bot1]))
time.sleep(3)
print("Bot 2: " + mensaje_bot2)
mensaje_bot1 = str(subprocess.check_output(["python", "bot1.py", mensaje_bot2]))
time.sleep(3)
>>

No.2939

>>2938
Por cierto, advierto que check_output() a veces añade caracteres basura a su valor de retorno como comillas innecesarias, así que tendrás que quitarlas.


[Post a Reply]
[ ]
[ home ] [ a / jp / h / lain ] [ b / hum ] [ mu / tech / v / vis / x ] [ meta / nexo ]