[[Oracle]], evolved

General tech support, or help with things about technology, internet slang, gadgets/trends, or news
Post Reply
User avatar
Neo
The One
Posts: 10940
Joined: 30 Jan 2004, 16:44
Location: Plano, TX
Contact:

[[Oracle]], evolved

Post by Neo »

This person does not exist. This is an AI-generated face, from https://thispersondoesnotexist.com/. And this is the face I'm using to represent [[Oracle]].

Back in November 2019, I had an idea to turn [[Oracle]] into a JARVIS-like assistant for doing my work-related, repetitive tasks, but I wanted to make it a natural language interface, like...well, JARVIS.

I realize that there is a huge difference in programming an AI bot and conversing with it, switching contexts of work, play, and daily needs... vs scripting Paul Betany to read as a disembodied voice actor. And in doing so I also realized that there are probably hundreds of people working on the Google Assistant as their day-in-day-out jobs.

I did manage to get a near fully functional work interaction programmed, asking her to "deploy <some version> to <some environment> <some type> servers"... some examples:
  • Update Dev Web Servers to 4.2.1.3
  • Deploy 4.0.1.2 on the dev UI servers
  • ...and variations of that
...where [[Oracle]] can parse out the action (deploy, update) and the environment (dev, QA, production, demo), and the server types (web, app, database, edge) to a specific version (1.2.3.4 style) no matter what order you put it in. And that's all well and good... getting her to recognize what I was asking in context turned out to be the easier part... fulfilling the request turned out to be the ethically & technically tricky part, since I was asking her to do a work-related task, on a non-work-hosted server.

So, instead of going further down that path, I turned the natural language part towards Discord for a test run of generating an omnipresent bot in the channel. She'll take @-mentions, and depending on the statement, reply accordingly...and for specific users (like me) she'll recognize additional statements (like the deploy script).

Recently it has gotten me thinking though, if we can do more with the tsnGuild site, and do more with the Discord bot, as daunting of a task as it is, I would like to fully integrate [[Oracle]] with tsn, discord, twitch, slack, twitter, facebook... everything that I can... and then:
  • Allow users to come to tsn and set up their desired notifications & channels from [[Oracle]]
  • Allow users to attach their social media & chat services to their tsn account so [[Oracle]] knows who is who
And then the possibilities are endless...
  • You want to be notified on Twitter when a specific tsn member goes live on Twitch, done.
  • You want [[Oracle]] to notify your social media when you go live on Twitch, done.
  • You want to know when someone posts, replies, messages you on tsn? No problem...where do you want it?
  • You want to send an instant message to someone directly, but don't know what services they actually pay attention to? [[Oracle]] does.
  • ...and literally anything else that the APIs will let you do once you know who is making the request, and who they are on the specific service.
I tried to get started on a Twitch Extension last night, and immediately got overwhelmed with it, because I have no idea what Twitch Extensions do. So I scaled it back to a registering a Twitch App that does a website integration, since I'll probably be writing an API to do these types of things, that is triggered from the natural language processor to send the relevant pieces of information to the right services.

It feels quite complicated, and it feels quite burdensome... so much so I already just want to go play video games instead of thinking about it after just writing this down. But I am curious about anyone else's thoughts... and even any other cool integrations/ideas that might be possible.
"Because I choose to."
[[Neo]]
User avatar
Neo
The One
Posts: 10940
Joined: 30 Jan 2004, 16:44
Location: Plano, TX
Contact:

Re: [[Oracle]], evolved

Post by Neo »

Brief update here... the Oracle Assistant is available in the tsn Discord server, and I've started a Slack version, but I haven't gotten anywhere with it. Even some of the Discord functionality has broken because some of the APIs have changed, and I haven't bothered to develop against it.

But we do have this "Chat Bot" thing at work that is honestly pretty terrible, and its failures have made me consider what would one expect a chat-bot or virtual assistant to do to help with work. I've also got this consideration of Google Assistant + Discord + Slack bots as separate services and separate Oracle instances all running on the same server (which is now a Raspberry Pi 4 on my desk)...and what if they could communication between each other.

It turns out that this might end up doing for me what tsn originally did. With tsn, I learned php, web design, database administration and basic server administration. That was enough to propel me through the last 20 years of work after just a few up-front years of work (though it was around the clock, late nights, and shirked actual-work responsibilities during my hourly jobs that didn't fit my desired career path). With [[Oracle]] I have the opportunity to learn nodejs servers, ESB communications between the bots, natural language processing & fulfillment, and even React for some front-end capabilities on Node.

I am reluctant to do any work on it related to my current job, even though I know I could deliver a better integration than the current bot we have, and better use-cases, because then I'd have to turn over the bot work to the company. But, maybe I could build out some use-cases on the side where it uses the 3rd party API, as bad as it is, for a proof of concept and then sell some portion of that integration capabilities back to the company.

All just thoughts, as I try to figure out where my career path is headed, since 20 years is a long time to coast on some forum reverse engineering and webpage development in an ever-changing landscape.
"Because I choose to."
[[Neo]]
User avatar
Neo
The One
Posts: 10940
Joined: 30 Jan 2004, 16:44
Location: Plano, TX
Contact:

[[Oracle]] rebuild in progress

Post by Neo »

Welp, it looks like Discord has decided to move Bots away from message processing and into slash-commands. Which means all message processing is disabled for their bots, and I'll be required to use slash-commands. This really feels like a step backward from what was a "natural language" bot to a "command-driven" bot.

I guess it'll be ok, since I've already learned how to do what I wanted to do with that, but I still wish i could have a fallback to natural language processing. Instead I'll just use this required rewrite to learn TypeScript...after all, the point of tsn, Oracle, and thepizzy is to learn new things in a practical way.

So while I did finish putting in the tsn9 extension an ability to fire an event when someone posts on the forums (like this one, where I'll go check it fires for a new post) I have to rewrite the Oracle side to pull messages out of the queue of events and post them to places (Discord, Slack... twitter? facebook? 1-1 messages?).
"Because I choose to."
[[Neo]]
User avatar
Neo
The One
Posts: 10940
Joined: 30 Jan 2004, 16:44
Location: Plano, TX
Contact:

Re: [[Oracle]] rebuild in progress

Post by Neo »

Welp, it looks like I won't be learning TypeScript this time. Instead it was just a change in how they construct user mentions where they removed an exclamation mark from the hidden text. Now Oracle is back up and running, and pulling events from the forums, and displaying them in discord.

After a couple more tests this thing should be ready to go.
"Because I choose to."
[[Neo]]
Post Reply