[[Oracle]], evolved
General tech support, or help with things about technology, internet slang, gadgets/trends, or news

User avatar
Neo
The One
Posts: 11005
Joined: 30 Jan 2004, 16:44
Location: Plano, TX

[[Oracle]], evolved

by Neo » 10 Jun 2020, 19:37

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: 11005
Joined: 30 Jan 2004, 16:44
Location: Plano, TX

Re: [[Oracle]], evolved

by Neo » 29 Sep 2021, 14:45

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: 11005
Joined: 30 Jan 2004, 16:44
Location: Plano, TX

[[Oracle]] rebuild in progress

by Neo » 02 May 2022, 09:11

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: 11005
Joined: 30 Jan 2004, 16:44
Location: Plano, TX

Re: [[Oracle]] rebuild in progress

by Neo » 02 May 2022, 22:11

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]]

User avatar
Neo
The One
Posts: 11005
Joined: 30 Jan 2004, 16:44
Location: Plano, TX

Re: [[Oracle]], evolved

by Neo » 26 Feb 2024, 08:19

Work continues on Oracle, who will soon be called [[Orycle]] everywhere.

I just released a rewrite that started last May to move from CommonJS to ES6 so that I could upgrade some of the packages to use them how they were intended to be used. But there was also a need to combine some logic that needs to be shared across services (e.g. Discord & Slack) and to consolidate the logic into a single processor/server as the single point of communication to external sources (e.g. tsnForums, APIs, etc.).

I finally finished that work to get the new architecture in place, with a MongoDB backend, and local RabbitMQ setup on a new Raspberry Pi 5 with 8GB of memory. The previous codebase was running on a Pi 4 with 4GB. The latest code is only connected to the tsnForums and discord, but connected it to slack should be trivial now that the heavy lift of defining the plugins and functionality is done.

Not all plugins have been replicated though, only: twitch watched channels, twitch watched tags, weather alerts, and tsnForums, with a fallback to Google DialogFlow to handle some limited natural language processing.

It's that Google DialogFlow, though, that I want to replace. Back when I started this rewrite, I was also going to connect it to the "PaLM API" to handle LLMs and use the generative AI tech that was just breaking into public mainstream. But everything moved so fast once the floodgates opened, I couldn't keep up and set it all aside this winter to get a better handle on everything.

Today, though, I start the research into building with the latest iterations of that tech and bringing Generative AI to Orycle to make it more useful. And now that it's got more powerful hardware, I should be able to start working on the real functionality driving it's ORYCLE name soon enough.
"Because I choose to."
[[Neo]]

Who is online

Users browsing this forum: No registered users and 2 guests

It is currently 20 Apr 2024, 20:34