Divine Automated In-Game Tickets

Instadev

MySQL & C++ Developer
banned
Instadev Rep
4
0
0
Rep
4
Instadev Vouches
0
0
0
Vouches
0
Posts
338
Likes
152
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 2 90 XP
If I was to create an automated ticket answering system based on dynamic keywords (commands, database, special handlers) - would you guys consider using it and in return provide your data so in the future I could automate it entirely for self-learning purposes?

I'll picture how I expect the system to work initially, since if people agree I will opensource it:
A player makes a ticket in-game. The system has a few pre-defined keywords in its database, and once one (or more) of them match, the system will know what to answer based on answers you've set in advance for a certain keyword.

With enough data, this will eventually be able to replace the majority of GM work with tickets and at the end of the day, allow for enough flexibility for the system to be trained for an independent model that can learn how to tag/create each ticket with keywords and answers.

Is this something you guys would be interested in having? Because if so, I will opensource it and we will need to contribute to this system together for the greater good and complete automation on that regard.
I will obviously add all the needed notifications so you guys will be able to adjust it as you see fit, but the data must have its own dedicated structure which is important to maintain as is!

Post automatically merged:

Many thanks to @PrivateDonut
 
Liked By 2 members :

PrivateDonut

Account Closed
banned
Rep
3
0
0
Rep
3
Vouches
0
0
0
Vouches
0
Posts
533
Likes
444
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 31 71 XP
I think this would greatly improve in-game support on private servers personally.
 

CyberMist Romania

Launcher Master
Mythical
CyberMist Rep
4
1
0
Rep
4
CyberMist Vouches
1
0
0
Vouches
1
Posts
253
Likes
273
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 11 95 XP
That's new oO
 

Nalo

C++, SQL , Lua
Divine
Nalo Rep
0
0
0
Rep
0
Nalo Vouches
0
0
0
Vouches
0
Posts
39
Likes
24
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 1 55 XP
That's definitely something that the community needs, however I'm wondering if it would be possible to merge this kinda system into Discord for a quicker response time and a more comfortable environment to answer tickets...

Regardless it seems like a good idea.
 

Kerpackie

Well-known member
Kerpackie Rep
3
0
0
Rep
3
Kerpackie Vouches
0
0
0
Vouches
0
Posts
164
Likes
130
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 1 105 XP
That's definitely something that the community needs, however I'm wondering if it would be possible to merge this kinda system into Discord for a quicker response time and a more comfortable environment to answer tickets...

Regardless it seems like a good idea.
Definitely possible, and it was actually something I was thinking about myself while building our new ticketing system for Discord.

Begs the question, should this be integrated into an en Emulator directly, or be a standalone API with a library so it can be integrated easier, as if it's a standalone API more robust ticketing systems could be built too, (cross site, such as Discord, Ingame and forum could all be coupled into a single ticketing system)
 

Instadev

MySQL & C++ Developer
banned
Instadev Rep
4
0
0
Rep
4
Instadev Vouches
0
0
0
Vouches
0
Posts
338
Likes
152
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 2 90 XP
Definitely possible, and it was actually something I was thinking about myself while building our new ticketing system for Discord.

Begs the question, should this be integrated into an en Emulator directly, or be a standalone API with a library so it can be integrated easier, as if it's a standalone API more robust ticketing systems could be built too, (cross site, such as Discord, Ingame and forum could all be coupled into a single ticketing system)
The concept is to have answers provided instantly, not to have an extended gm capabilities regarding support.
Assuming you take that instant reply concept and perfect it upon multiple major fields, you eliminate the need to integrate it via Discord. This is exactly why everyone's support is needed as there are a lot of commonly asked issues and every server can have its own utilization of this service. The more data the more accurate this system becomes, and the ability to sync the data for a specific realm could also exist, so you can just select the type of realm you're having and go wild.

I could look into creating an in-game API for Discord at a later stage and for other topics.
 

Instadev

MySQL & C++ Developer
banned
Instadev Rep
4
0
0
Rep
4
Instadev Vouches
0
0
0
Vouches
0
Posts
338
Likes
152
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 2 90 XP
Alrighty, a quick update.
After multiple (some successful, some unsuccessful) attempts to implement a keyword-based algorithm, I figured I exhaust a lot of my efforts on something that is already known to be temporary. Instead, what I need is the AI implemented, and I went on and got one that functions properly.
HOWEVER: I will need EVERYONE's help on this.
I'll explain.

The AI I'm using (like all the AIs out there) is TRAINED based on a particular dataset. A dataset is a text file, an excel sheet, or even a database table (probably exported) that has the definitions of what the AI should "memorize". The more data it has, the more accurate it could be.
While I can do my absolute best to try and match my own database (which I create over time), it cannot beat the process of multiple people working on it. Therefore, what I need in order to release a functioning model is this:
- A list of sentences you guys have in mind, with a summary of what is the sentence's category. For example: ("help I bought <item> and it hasn't arrived in my mailbox", "store item delivery"), ("where can I activate my VIP", "VIP activation"). Obviously, these are only examples, but I hope you're getting what I'm trying to achieve.
- A list of grammar mistakes and misspelled words and their true intention. For example: ("u", "you"), ("idc", "i dont care"), ("idk", "i dont know"), ("dunno", "dont know").

This is only a temporary syntax, I'll update it as I progress with its implementation.
For now, every bit helps as I start with literally 0 data in my dataset. I'll, of course, share the results of it in-game when I'm able to make it happen, for now, it's all on a separate console.

This can be a game changer in terms of automating replies under certain circumstances. That being said, this is the first out of many utilization I have in mind when it comes to AI implementation within a private server, so be ready for more.
The results will be shared here along with an implementation tutorial, and are not to be public yet until we have perfected this. Call it an alpha release for premiums only if you will.

This will have part-2 requirements where we will need to automate answers, but I will look into how I can make this a different model that will generate replies based on context each server can define on its own. And yes, I will try and implement a realm-based answer table (or txt file), which can be updated. Not sure if this in particular will need to be trained by the AI as it will be based on categories, but we will see as we progress.

Thanks for your time & efforts, and many thanks to those who will contribute (or consider contributing).
 

Instadev

MySQL & C++ Developer
banned
Instadev Rep
4
0
0
Rep
4
Instadev Vouches
0
0
0
Vouches
0
Posts
338
Likes
152
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 2 90 XP
Updating: the system works magnificently in-game. I will need a general dataset from everyone who's interested in participating.
The dataset is a MySQL table. You may use the table by running this in `world`. I called mine `ticket_dataset`

CREATE TABLE IF NOT EXISTS `ticket_dataset` (
`text` varchar(5000) NOT NULL DEFAULT '',
`category` char(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


INSERT INTO `ticket_dataset` (`text`, `category`) VALUES
('The printer is not working', 'Printer'),
('I am unable to login', 'Login'),
('My internet connection is slow', 'Internet'),
('My computer is freezing', 'Computer'),
('I need help with my software', 'Software'),
('I want to request a new phone', 'Phone'),
('I am experiencing network issues', 'Network'),
('The air conditioning is not working', 'Air conditioning'),
('I need to reset my password', 'Password'),
('I need assistance with my laptop', 'Laptop');

These are only dummy items to test if the system's working. There are some funny results with this specific dataset, lol.

A few words about how I am going to expand this system.
Step 1 will be dataset collection. Now, it goes without saying - each server will have its own individual dataset and it is only natural my dataset might differ from yours as mine has its own specific fields and its own specific items I have a way of handling, same for other systems and features.
Step 2 would be to add a scoring system, which basically means how certain the system is that this support ticket is this category (in percentage of 1 till 100). It's called prediction.
Step 3 would be to add automatic replying & action taking systems based on step 2's scoring system. When reaching a certain % of certainty, take an action (which you will be able to setup in advance).
Step 4 would be making this system self-learning with the ability to learn new categories on its own based on both existing datasets and incoming tickets of uncategorized tickets. Obviously, the system will try hard to score as accurately as it can initially and we will (when this is implemented) be able to tell it if it's right or wrong, and then the model will start kicking in. It learns from mistakes and creates a new "generation" based on that mistake it learned from. A fantastic advancement for sure.

You can see how the evolution of this can be a significant advancement in the private servers scene, but all of this cannot be accomplished by me alone. Would definitely need assistance with that.
I intend to opensource it to WoWEmu's premiums only at this stage. I will update this thread as I progress with additional implementations.

I will try to opensource it this week based on the latest TrinityCore revision there is. I hope you guys are as excited about this as I am, since this can make life so much easier on both - staff members and players, assuming it's as precise as a human is (which obviously will take time).

Submit your datasets to me either on this thread, PMs or on Discord so I can implement & train the algorithm.
 

Instadev

MySQL & C++ Developer
banned
Instadev Rep
4
0
0
Rep
4
Instadev Vouches
0
0
0
Vouches
0
Posts
338
Likes
152
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 2 90 XP




Only a few examples based on (current) dataset:
 
Liked By 1 member :

splicho

Emudevs Founder
Administrator
splicho Rep
6
0
0
Rep
6
splicho Vouches
3
0
0
Vouches
3
Posts
1,003
Likes
1,421
Bits
2 YEARS
2 YEARS OF SERVICE
LEVEL 248 85 XP

3,384

1,270

9,554

428

Top