Ideas en bits

Sueñan los androides con twits eléctricos?

book

Pensaba armar una nota explicando lo facil que es armar un bot en twitter y de como complementarlo con una API copada, pero despues de una interaccion casual, tambien quiero hablar un poco sobre la famosa IA.

Pero vamos por partes

Twitter Bot

Esta idea nacio robando tomando como ejemplo lo que hizo el gran @fermezz con el bot de star-wars, y utilizando en este caso datos de la api de Marvel.

Como "tuitear" desde un script?

Super facil con python, solo necesitamos:

  1. Obtener una API key en Twitter con nuestra cuenta
    • En este link se explica muy sencillo
  2. Utilizar una libreria que nos "ayude" con esto.

Una vez que obtuvimos las credenciales para Twitter, utilizar la libreria es muy sencilla

auth = tweepy.OAuthHandler(consumer_api_key, consumer_api_secret_key)
auth.set_access_token(access_token, access_token_secret)

twitter_api = tweepy.API(auth)

# Enviar un Tweet
twitter_api.update_status("Hola Granola")

alt

  • Bien Hecho!

Marvel API

Los queridisimos amigos de Marvel tienen una API publica muy interesante con toda la base de datos de su maravilloso mundo. Y de nuevo, super sencillo de utilizar, el "how to" esta en este link.

Quizas lo unico mas complejo es crear el hash md5 que se tiene que agregar en cada llamada, pero de nuevo, con python y un par de librerias estandar es super simple.

import hashlib
import requests
import time

# 1. Obtener public y private key del sitio de Marvel
public_key = '<Marvel Public Key>'
private_key = '<Marvel Private Key>'

# 2. Definir un timestamp para ejecutar la llamada
ts = str(time.time())

# 3. Creamos el hash md5 con el lineamiento que nos indico Marvel
# ts - a timestamp (or other long string which can change on a request-by-request basis)
# hash - a md5 digest of the ts parameter, your private key and your public key (e.g. md5(ts+privateKey+publicKey)

hash_code = hashlib.md5(f'{ts}{private_key}{public_key}'.encode('utf-8')).hexdigest()

# 4. Llamar a algun endpoint indicado en la documentaction. Por ejemplo el de personajes

marvel_url = f'http://gateway.marvel.com/v1/public/characters?ts={ts}&hash={hash_code}&apikey={public_key}'
# Listo! 
response = requests.get(marvel_url)

alt

Twitteando como un campeon

Ahora si, tenemos una forma de twittear desde un script, y una fuente de datos para escribir cosas interesantes. Solo resta combinar ambas cosas, y armar un Twitt con algo de sentido.

Voy a pasar por alto como dejar corriendo el bot, y como estructurar el codigo porque creo que con esto viene lo lindo de armar cosas a gusto propio, pero de todas maneras abajo dejo links del repo que hoy esta twitteando esto:

[twitter https://twitter.com/marvelibot/status/1272970289970888707]

Y la IA ?

Pensamiento super corto, y casi una filosofia barata y zapatos de goma, pero, cuando empece a hacer unas pruebas con el bot arme unos twitts con algo de informacion, y agregando una pregunta del estilo:

Did you know about <Aqui va un personaje>?

Y entre esos twitts recibi una mencion, que era una respuesta automaica de otro bot. Con lo que mi corazon ñoño se emociono un poco al pensar en una pequeña escala, algo parecido a lo que le habia pasado a la IA de la pelicula HER en el momento que se "van" con otras IAs a leer, aprender, discutir de cosas en tiempos que para la vida humana serian imposibles.

En fin, como dije, pensamiento muy cortito pero que se genero probando cosas muy simples, y cuya documentacion esta disponible para todo mundo en nuestra biblioteca de Alejandria moderna.

Adios!

Links

Repo del bot darkaico/marvel-bot