Critical Review of (what was) Bird Strike Bot
As noted in the update to the previous post, Twitter killed the bot and then I deleted the account.
While in yesterday’s introduction of the Bird Strike Bot, I was proud of the work I undertook, with the help of ChatGPT, to build and deploy a Twitter bot, I still think it is worth taking a critical look at its first couple of weeks to see how well it is performing.
Short answer: 😐
ChatGPT’s Advice
In my first post, I was complimentary of OpenAI’s chat function, but the truth is that it required a lot of back and forth. Some code wouldn’t work, or the settings on my Raspberry Pi would be different, and I would have to go back and ask clarifying questions. And sometimes, it was just plain wrong and then wrong again. It could get very frustrating.
I’m happy to have the support, but it will take some more development/refinement before I pay for it.
ChatGPT’s Drafting
The other aspect of ChatGPT’s underwhelmed performance is the AI’s ability to write tweets. I accept that issues come from a lack of context, and I can’t blame the AI for that. But the system has a general tendency towards, how should I say this…
Click-bait, marketing-speak, hyperbolic b&l!sh*t.
Initially, I designed the program to send the species name and all the relevant stats in a single prompt, with the request to draft a tweet thread. Unfortunately, the thread would become nonsense within a couple of tweets. So then I broke it up into separate prompts, but then context would cause the tweets to be off.
For example, in one tweet, five recorded strikes in ten years would be significant, and in another ten wouldn’t be a worry. Ultimately, I wrote the program to do much of the heavy lifting. It looks at the statistics and delivers a prompt with the context included.
Here is a snippet of the code:
if bird.no_strikes.item() == 1: prompt = f'Please rewrite this tweet with no more than 200 characters, in an interesting way: "Even though the only recorded one wildlife strike in the ten years leading up to 2017, aviation wildlife hazard managers should get to know it."' elif bird.no_strikes.item() < 50: prompt = f'Please rewrite this tweet with no more than 200 characters, in an interesting way: "Even though the has not recorded many wildlife strikes in the ten years leading up to 2017, aviation wildlife hazard managers should get to know it."'
Unfortunately, this results in some repetitive (boring) tweets.
Error Hall of Fame
Other errors are just plain weird.
This one seems to forget the mention of “aviation” in the first tweet and switches the issue to cars:
This one seems to forget that the Mallard was the bird:
My standard conclusion tweet acknowledges that the thread is automatically generated and, sometimes, the AI might miss the mark and that the ATSB data contains plenty of unknowns. ChatGPT generally sticks to the script, but sometimes it takes some liberties:
More Work Needed
Obviously, it’s on me to get this workflow working well, and I’m looking at options. I think I’ll abandon the thread concept (it is getting abused generally) and work harder to get the image included in the tweet. I’m also looking at branching out to other social media platforms.
I like the idea of secretly educating people while they try to avoid work, 😉.
So, please check out the Bird Strike Bot and follow it.
Header image: Pavel Danilyuk (via Pexels)