Alex Mably 33 min

Inside the Intelligence: SupportLogic Machine Learning Architecture


This session will take you through the architectural depths of SupportLogic’s machine learning framework, challenging your preconceived notions and equipping you with the knowledge to harness ML for predictive, actionable insights. We’ll cover the ML engines that drive various parts of the platform, and discuss why technology like gradient boost classifiers and ensemble models benefits support teams.



0:00

>> Yeah, thank you, Ryan, very much for that introduction.

0:05

And thanks to you guys for making the trek down the hall to the gold room for a

0:10

solution

0:11

deep dives.

0:14

Ryan covered this one, but just to give you kind of an outline of what we're

0:19

going to

0:19

cover today.

0:21

So we'll first just have a very late brief overview of AI or support logic

0:28

followed by

0:29

touching on the data pipeline and ML as a service.

0:33

And then after we've kind of chatted about the infrastructure a little bit, we

0:36

'll really

0:36

like dig down into the different ML engines that we have for support logic.

0:43

So those of you who were paying attention to current this morning might notice

0:46

that I

0:46

actually borrowed the slide from his presentation.

0:50

But I do think it's a really good representation of how support logic has been

0:55

invested in

0:55

ML from the very get-go.

0:58

So our signal extraction engine, our kind of first product was backed by what

1:02

at the time

1:03

was state of the NLP.

1:06

The field has moved on a lot since then.

1:08

So as the field has expanded it and more and more advanced and powerful

1:14

solutions have

1:15

become available, support logic has kind of grown with the field.

1:21

So incorporating those new products or those new solutions into new products

1:26

that we're

1:27

able to offer.

1:28

So that brings us right up to 2024 with our summarization engine and our answer

1:33

engine.

1:34

But I think also importantly we're not kind of leaving those legacy products

1:38

behind.

1:39

We're reinvesting in the products that we already have, the services we already

1:43

have.

1:43

So if you were to look at our signal extraction engine today, it's as barely

1:48

recognizable compared

1:50

to our signal extraction engine from 2017.

1:57

And just to kind of illustrate how machine learning is kind of embedded in all

2:03

over our

2:04

products in support logic, what we're going to talk about today touches machine

2:09

learning

2:10

in all of these different areas highlighted by a yellow arrow here.

2:15

So it really is kind of throughout our products and everything you're touching.

2:23

So whenever we're developing a new product or thinking about what we want to

2:27

build as

2:28

support logic, we try and stick to a few kind of general principles around our

2:34

AI.

2:34

So firstly, we believe that AI should be an invisible force.

2:39

I know Krishna likes the electricity metaphor, but I kind of like to think of

2:45

it like a

2:45

smart home.

2:47

Like AI is kind of everywhere.

2:49

It's all around you.

2:50

It's in everything you're touching, but you're never really thinking about it.

2:54

It's just there helping you improve your workflow, second guessing what you're

3:01

going

3:02

to do next.

3:03

And you don't even kind of notice that it's happening.

3:10

Secondly explainability.

3:11

As Ryan touched on in the intro, explainability is a kind of fundamental

3:16

principle with for

3:18

us at support logic.

3:20

Three or four years ago, explainability was like all the rage in AI and then

3:26

that kind

3:27

of disappeared.

3:29

And it's definitely we're seeing the emergence of a lot more kind of black box

3:34

solutions.

3:34

And that is kind of a caveat of these very large language models.

3:39

But whenever it's possible, we still want to stick to an explainability kind of

3:44

paradigm.

3:45

We think it's important that our customers know where those predictions are

3:49

coming from.

3:50

And we think it helps our customers understand their customers and their

3:53

organization if they

3:54

can kind of really dig into their data and these predictions.

4:00

And then thirdly, I have adaptive here.

4:02

So when I'm talking about adaptive, I'm covering kind of a few different areas

4:07

here.

4:08

So firstly, we always want our AI to be improving.

4:11

So we wanted to improve with our customers data, improve with their workflows,

4:16

how their

4:16

organization has changed, improve based on the feedback that they're giving us

4:21

as to

4:21

how this is working for them and their organization.

4:26

And then I also am kind of using adaptive to cover like the being able to

4:31

configure

4:31

our AI.

4:32

So we want, we know that in not all instances, is it kind of a one size fits

4:39

all.

4:39

So we want to be able to configure our ML models where possible to, you know,

4:45

our different

4:45

customer needs and requirements and their data.

4:49

So I'll touch on it kind of as we go through every model, but a lot of our

4:54

models are highly

4:55

configurable at, you know, in different places within the kind of training

5:00

inference, the

5:02

data that's being used and things like that.

5:08

To touch very briefly on our data pipeline, this is a very simplified

5:13

representation of

5:15

our data pipeline.

5:16

I hope it doesn't get back to our data platform team.

5:19

This is what I simplified it down to.

5:23

But so the customer data is obviously coming from the CRM and it comes into Sep

5:29

ologic via

5:30

the data pipeline.

5:33

So for kind of the machine learning aspects of this, what's really important

5:38

here is transforming

5:39

the data into universal data schema.

5:41

So we're able to take data from across a number of different CRMs and, you know

5:46

, turn that

5:46

into like a uniform data format that then we can pass through the ML pipeline.

5:52

And the pipeline can be completely naive to what CRM this data came from.

5:57

It doesn't need any information about that.

5:59

It's just sees data and will act on it accordingly without kind of caring where

6:08

it came from.

6:10

And then all of those machine learning, all of the services or the machine

6:15

learning in

6:16

the data pipeline, sorry, is being serviced now by our ML as a service platform

6:24

So ML as a service is something we really invested in, I would say, a couple of

6:30

years

6:30

ago now.

6:32

It's definitely something like a big infrastructure change like this can be a

6:37

pretty hard sell

6:38

at a company level.

6:40

It doesn't result in like a nice new shiny effect in the UI.

6:45

But it does like behind the scenes make our ML much better, much more kind of

6:50

future-proof

6:51

and scalable.

6:52

So previously before ML as a service, we were training a lot of our models

6:58

locally so the

6:59

ML team were training just on their computers locally.

7:03

And then these ML models had to be deployed to the customer VPCs.

7:09

Some of these models had to be deployed to multiple places within the VPCs.

7:14

So that's just from the outset there, you have a risk of like, you know, two

7:19

different

7:20

models being accidentally deployed to one customer VPC or only one.

7:24

It only being updated in one area.

7:27

So you're not having like a uniform ML across the customer environment.

7:37

Also like training locally is very slow.

7:40

It's pretty high risk unless a customer has a staging environment.

7:44

We're pulling data directly from production, which is never really anything you

7:49

want to

7:49

be touching if possible.

7:54

So then moving to ML as a service, we're able to move that training into the

8:00

cloud, which

8:00

means that we can, with the click of a button, we can set off training for a

8:07

new model.

8:08

And then we're still able to keep all of our customer models siloed and like

8:12

segmented

8:13

into their own like tenancy if you like, but they're able to be served through

8:19

a single

8:19

API, a unified API endpoint.

8:24

So this makes it really nice for, you know, we're able to have better

8:28

monitoring.

8:29

Like when we're just, when we are just deploying the machine learning models

8:34

like manually to

8:36

a VPC monitoring and kind of maintaining of that model is really hard.

8:41

But once you have ML as a service, it's much more like available at your

8:45

fingertips to

8:46

monitor and maintain these models.

8:47

It's still less arduous to kind of make sure everything is where it should be

8:52

and looks

8:52

good.

8:54

Yeah, so, and then we, ML as a service basically says this is just an API layer

9:04

and it means

9:06

that we're able to, with like cloud run endpoints, we're able to seamlessly

9:11

kind of update models

9:12

without any customer downtime.

9:15

We're able to roll back those models if we need to, if like the worst case

9:19

happens, it's

9:20

very easy to roll back that model.

9:22

We can slowly upgrade models across customers.

9:26

It's not kind of an all or nothing.

9:28

And that's again with like the click of a button.

9:31

Just rather than having to go in and manually change models for every single

9:37

customer.

9:38

Okay, so we've touched on a little bit of the infrastructure supporting the ML.

9:46

So yeah, now we can start really getting into the models.

9:53

So yeah, as you've heard a lot already today about signals, signals really is

9:58

like foundational

9:59

to support logic.

10:02

I mean, support logic was founded on the belief or the knowledge that there's

10:06

so much information

10:08

in this text content of support tickets that we're just missing.

10:14

So yeah, we are able to, as was discussed earlier, this morning our signals go

10:20

much

10:20

further beyond kind of the positive and the negative that is kind of your

10:24

traditional

10:25

sentiment.

10:27

So we're able to detect up to 30 different signals and then these fall into a

10:31

couple of

10:32

different groups.

10:33

So we do have like a positive group and a negative group, but they have a lot

10:37

of like

10:38

finer grained signals within them.

10:41

And then we also have things like a commercial group looking for signals

10:45

related to commercial

10:46

either in the positive or negative.

10:51

And then looking specifically at our signal extraction engine pipeline.

10:56

So at the beginning of our signal extraction pipeline, text is cleaned and pre

11:00

processed.

11:01

So this is a lot of kind of removing the junk text that we don't want to

11:05

extract signals

11:07

from.

11:08

It's getting the text in like a good shape to be handed to an LLM to make sure

11:13

that LLM

11:14

is going to kind of get the best it can out of the data.

11:19

The text is then embedded at the sentence level by an LLM.

11:24

I do want to point out here that LLM has like become synonymous with JNI now,

11:31

but LLMs have

11:31

been around kind of long before these like newer generative models have been

11:36

kind of

11:37

appeared on the scene.

11:40

And yeah, so every like generative text AI model is an LLM, but not every LLM

11:46

is a generative

11:47

model.

11:48

We're using an LLM here, but it's not like one of the JNI models.

11:55

So yeah, so as I said, the text is embedded at the sentence level, and then it

11:59

's sent

11:59

to a classifier.

12:03

So this is kind of the embedding representation here, and then this is a sigm

12:09

oid layer of

12:10

classifiers.

12:11

So each of these classifiers is able to predict based on the embedded sentence,

12:19

sorry, whether

12:20

or not the signal that it is designated is present in the text data.

12:29

These classifiers are multi-label, which means that you can have multiple

12:34

truths predicted

12:35

through this layer of 40 plus signals.

12:42

And then these classifiers are trained on millions of rows of sentence data so

12:49

that we

12:50

can get an accurate representation of when a signal is present or not present.

12:57

And then the final step in our pipeline is feedback.

12:59

So through our UI, we have the ability for customers to provide feedback on the

13:04

signals

13:04

that they're seeing.

13:07

Customers can also add their own signals.

13:09

They can highlight text and add, label it with their own signal if they think a

13:13

signal

13:14

is missing.

13:16

And then with this feedback data, we sanitize the feedback.

13:21

Unfortunately, customer feedback is not always the cleanest.

13:27

So yeah, we see a lot of duplication signals added and then removed and added

13:33

again, things

13:33

like that.

13:34

Like clean it up and make sure that none of that noisy data is going to get

13:39

into our classifier

13:42

and make sure that the feedback that we have is going to improve the classifier

13:46

and not

13:46

be detrimental to it.

13:49

And then we use various data augmentation techniques.

13:51

So I mentioned earlier that classifiers are trained on millions of rows of data

13:57

So throwing in one sentence, a feedback is probably not going to shift the

14:02

needle very

14:03

much.

14:04

But we're able to use data augmentation to really kind of grow that feedback

14:10

into its

14:11

own little data set so that we can see that it is actually having kind of an

14:14

effect within

14:15

the classifier.

14:16

>> Good question.

14:17

[INAUDIBLE]

14:18

>> Sorry?

14:19

>> I want to have a good question for you.

14:22

>> Yes, sure, I guess.

14:23

>> [INAUDIBLE]

14:24

>> Okay, we are creating some custom signal-sized data.

14:27

>> [INAUDIBLE]

14:34

>> So if we create extra signals, the extra sent human signals, when you do

14:41

custom, then you select feedback.

14:42

And then we post like a text and write a bit of a negative something else.

14:47

>> Mm-hm.

14:48

>> So that gets removed from our system, which you think that is not relevant

14:53

or it will

14:53

just go in trouble?

14:58

>> It will affect the classifiers, which will affect your system.

15:03

>> Okay, so moving on to the scoring engine.

15:10

The scoring engine is kind of the natural progression after the signals.

15:14

All of our schools are built on top of very strong foundation of signals.

15:19

But they also include a lot of metadata coming from kind of the case or account

15:25

level as

15:25

well.

15:28

So it might be kind of, or like one way to think about how we're building these

15:36

signals

15:37

is like it might be nice if we could just take the sentiment scores, right?

15:40

We have, so say for account health score, we have all these cases.

15:44

All these cases have a sentiment score.

15:46

And like why can't we just average the sentiment score and then we have an

15:50

account health score?

15:53

And that would be fantastic.

15:55

But unfortunately, the central limit theorem dictates that if you start to

16:00

average a large

16:01

quantity of numbers, they will converge into a normal distribution, which what

16:07

that basically

16:07

means for the end user is you're going to see a bunch of scores that sit around

16:12

our baseline

16:13

for sentiment, which is 70.

16:15

And you're not going to see variation across customers.

16:18

And if you kind of think of an example of that, say you have three cases with

16:22

sentiment

16:23

of like 10, 20, and 90, that's going to average to 40.

16:28

If you have three cases with sentiment of 35, 40, 45, that's also going to

16:33

average to 40.

16:34

But there's obviously very different things at play between like one set of

16:39

cases and

16:39

the other set of cases.

16:42

So one of the things we do is use cumulative distribution function.

16:47

This is able to kind of recognize the changes, anomalies, like differences that

16:52

are happening

16:53

in the cases from one time period to the next.

16:58

CDF is actually commonly used underlying anomaly detection itself.

17:03

So we're able to use cumulative distribution function, look at how these

17:07

different inputs

17:08

to scores are changing, and then kind of weight them and allow them to

17:12

influence the final

17:14

score in different ways.

17:17

So kind of that example I gave is mostly applicable to account health scores,

17:23

but all

17:23

of our scoring, so customer effort score, auto QA score, sentiment score,

17:28

attention score,

17:29

is all powered by kind of a complex set of weighted heuristics.

17:36

And so we talked about being able to configure our ML at the beginning.

17:42

So these account health scores is one area where we have configuration

17:47

available.

17:48

So if you as a customer are more interested in how, or you think the escal

17:54

ations have

17:55

a stronger impact on your account health scores than you think we're giving it

18:01

in our

18:01

algorithm, we can actually customize that.

18:05

So there's various different kind of groups of signals.

18:10

Escalations would fall into, I believe, business impact.

18:13

So we could adjust at a customer level the weight of the business impact score

18:18

and reduce

18:18

the weight of some of the other scores so that then the Econ Health scores that

18:23

a customer

18:24

would see in their system would be more influenced by escalations than

18:33

previously.

18:35

Okay, so our prediction engine.

18:38

So we heard a lot this morning about how we have lots of customers who are

18:42

really drastically

18:44

reducing their escalations, and that is in no small part to our escalation

18:49

model.

18:50

So our escalation model is actually a gradient-boosted classifier, so that's

18:54

kind of represented

18:55

in the diagram here.

18:57

And what that means is that it's basically a sequential, like a series of

19:03

decision trees

19:05

or decision stumps.

19:06

So this is a decision tree.

19:07

A decision stump would just be the first bit with just like one split.

19:12

And all of them individually are very bad at their job.

19:17

But when you kind of add them up sequentially, they become greater than the sum

19:20

of their parts.

19:22

And how that works is you train this first model and it will detect some very

19:28

simple

19:29

pattern in the data, and it will be able to predict maybe a couple of the cases

19:33

or a couple

19:34

of the samples of data.

19:37

And then you take the prediction residuals, which is just a fancy way of saying

19:41

the ones

19:42

that got wrong, and you weight those errors so that the next model is able to

19:46

kind of

19:46

correct the errors of the previous decision tree.

19:53

And so there's a few shown here, but this can be hundreds or thousands of

19:58

decision trees

20:00

running in a sequence.

20:02

And at the end of it, you have what actually is a very powerful and very good

20:09

model.

20:09

One of the kind of features of gradient-boosted classifiers is that they have a

20:14

lot of model

20:15

capacity, which means they can learn very complex, uncomvoluted patterns in

20:21

data, very complex

20:22

decision boundaries.

20:24

And that's perfect for escalation prediction.

20:26

There's so many nuances to data or to a case that can result in escalation.

20:32

So having a model like this that can really adapt to all of those nuances is

20:37

great.

20:38

It does come with a caveat that it needs a lot of data to train on, to not kind

20:42

of

20:43

overfit and focus too much on some simplistic patterns they're seeing and not

20:48

generalized

20:49

to the whole environment.

20:54

So the data that this has trained on is historical escalation data.

20:58

So we look at customers' historical data, cases that have escalated, cases that

21:03

haven't

21:03

escalated.

21:04

We actually use time series analysis to break up those cases into chunks of

21:09

time.

21:10

So obviously in the lifespan of a case, there's so much that's happening.

21:14

So what happens on day one at a case might be nothing to do with why it

21:18

escalated on

21:19

day 45.

21:20

So we want to look at discrete time intervals throughout the case.

21:24

So we're able to learn what a case looks like before it escalates, or way

21:30

before it

21:30

escalates, as well as right up to the boundary of escalation.

21:35

We also include our customer feedback here as well if we have customer feedback

21:40

So obviously when we're onboarding new customers, we're just looking at

21:44

historical data.

21:45

But as our customers are using the escalation model and giving their feedback

21:50

on it, we

21:51

also incorporate those labels into the training data in the same way.

21:54

So a new model will incorporate customer feedback as well.

22:01

And then so at inference, we're taking a case at that kind of snapshot in time.

22:09

And we're looking across like 70 features that this model has learned the

22:14

weights for.

22:15

And we're applying those weights at inference to see if we think a case is

22:19

likely to escalate

22:20

in the next time period.

22:26

Okay, so our recommendation engine, intelligent case assignments.

22:34

So this is also actually a group of different models, a selection of different

22:39

models, but

22:40

this is not an ensemble model.

22:42

Instead, this is allowing us to assign cases based on a number of different

22:48

factors based

22:49

on the agent and the case at the time.

22:52

So in no order of favoritism, we have a skill score.

22:58

So our skill score is actually made up of an agent skills model, a case skills

23:02

model,

23:02

and then a skill match model.

23:04

So for a case skills model, we're again training on historical data and we're

23:09

able to learn

23:11

from how a case opens the skills that it will need at the end of the case.

23:18

So if a case opens and it contains certain phrases or it contains certain

23:24

skills already,

23:26

we're able to learn from historical data the probability that at the end of

23:31

that case,

23:31

it's going to require like these extra skills.

23:35

And so sometimes we see really strong relationships and we're able to stay with

23:39

very high probability,

23:40

you know, like this case opened with skill A. So we're almost guaranteed that

23:45

we're going

23:45

to see skill B by the time it closes, but maybe we'll see skill C as well.

23:52

And then for our agent skills, we're just extracting the agent skills from the

23:55

cases

23:55

that they have handled.

23:57

So we look at the cases that an agent has held and actually contributed to and

24:03

we extract

24:04

those skills.

24:05

And then we're using kind of a weighted distribution to give a different

24:11

expertise level to the

24:13

agents. So if an agent has a held or like worked on a lot of cases with a

24:19

certain skill,

24:21

they would get a higher expertise level and another agent.

24:24

But we use like an inverse frequency weight.

24:27

So if every agent has handled a lot of cases with a certain skill, they should

24:33

all be reduced

24:34

because it's like we're kind of having the system know that that's not maybe a

24:39

very important

24:40

skill.

24:41

So if a single agent has the skill, it's not really a defining factor for them.

24:46

So a very common skill if even if all agents have it should have a lower

24:51

probability.

24:53

And then we have the skill match.

24:54

So that's basically taking the case skills, both those extracted and the

24:58

probability of

24:59

the ones we've predicted to appear on a case and the agent skills.

25:03

And then we're doing some probabilistic matching to try and find kind of the

25:07

best agent for

25:08

the case based on the skills that are there, the skills the agents have, the

25:12

expertise

25:13

level and the probabilities.

25:18

We also look at customer history.

25:19

So this is, does this agent have a good rapport with this requester, with this

25:25

account?

25:26

We look at the history again of the agents and the cases they've held for this

25:30

account.

25:32

And we use the case performance model to basically rate how well the agent

25:36

performed on the

25:37

case.

25:38

We only look at the period of time that there are signs to the case.

25:41

You know, if an agent gets handed an escalated case, we don't want that to be a

25:45

negative impact

25:46

to the score.

25:48

But if an agent is holding a case and it gets escalated, then maybe it would be

25:51

a negative

25:52

impact to the score.

25:54

And so once we have the case performance for all of the cases held by an agent

26:00

for the

26:00

account, we roll that up into a customer history score.

26:06

We also have a bandwidth calculation.

26:09

So bandwidth is looking at the agent backlog and their availability even take

26:13

on a case

26:14

at that time.

26:16

So obviously not all cases are equal in the amount of time and effort they're

26:22

going to

26:23

take.

26:24

So bandwidth is very customizable based on the status and the priority of the

26:28

case.

26:29

So if an agent is holding 20 cases but 19 of them are pending, they probably

26:37

still have

26:38

pretty high capacity still.

26:40

But if they're holding 20 cases and they're all open, they're probably pretty

26:46

busy.

26:46

Agent backlog is also tuned to an individual customer's data.

26:52

So we have to know what's like normal for a customer.

26:56

You know, we have some customers where just the way they handle their backlogs

27:01

and their

27:02

system, it's not unusual for an agent to be holding 50 cases.

27:09

We have some customers where if an agent is holding 50 cases, we're on fire.

27:14

Like something's gone very wrong.

27:16

So we need the system to know that so that we don't just have a hard cut

27:20

threshold where

27:21

we say this is a lot of cases because that's not the case across all of our

27:25

different customers.

27:28

We're also looking at the incoming case as well.

27:30

So we want to make sure that we know the size of the incoming case, the kind of

27:35

effort

27:35

that that case is going to take to solve.

27:38

So we can see from an agent's backlog, you know, they have a little bit of time

27:41

but they

27:42

don't have enough time for this case.

27:43

This is a big case.

27:45

You know, maybe this other agent who has a little bit more time has time for a

27:51

big case.

27:53

And then finally, we have a time overlap.

27:55

So this is a time series analysis model.

27:59

So we are using time series analysis to predict the times that the request of

28:04

the ticket is

28:05

going to be online.

28:06

And then we're either using time series analysis or a shifts feature to know

28:10

when the agent

28:11

is going to be online.

28:12

And then we're able to match up those two time series and find the kind of

28:18

amount of

28:19

overlap that the agent and request are going to have in the next 24 hours.

28:24

So that's kind of an important thing to note.

28:26

Like it's not for the next week, it's just for the next 24 hours.

28:33

And then on top of all of these scores, we have a recent assignment penalty.

28:37

So our recent assignment penalty is designed to make sure we are dispersing our

28:43

assignments.

28:44

So we don't want, you know, an agent that has a lot of experience, has a really

28:49

high

28:49

skill score.

28:51

We don't want to penalize them for that by assigning them a lot of cases.

28:55

An agent that's very efficient with like turning through their backlog.

28:59

We don't want to penalize them by just continuously assigning them cases as

29:02

soon as they shift

29:03

another case.

29:05

So we have a recent assignment penalty.

29:07

It acts with a time decay and a customizable weight so that you can kind of

29:12

decide for

29:13

how long and to what extent you want the agents to be kind of like iced out a

29:18

little

29:19

bit in the scores before they come back up to the regular score.

29:26

And also all of this is configurable.

29:29

So if, you know, the most important thing for your assignments is that you just

29:34

need kind

29:35

of a warm body to send an email, then we would increase the weight of time we

29:40

have a lab

29:40

and bandwidth and we would just get anyone who is available onto that ticket so

29:45

they

29:45

can start working on it.

29:47

If instead, sorry, if instead your priority is really for like you want the

29:52

best agent

29:53

to be taking on this case, then we would increase the weight of the skill score

29:57

and maybe that

29:58

agent isn't like online right now or isn't available but when they come online

30:03

they can

30:03

pick up the case and that's going to be preferable for the customer.

30:12

And then last but not least, we have our generation, generative and answer

30:18

engine.

30:19

So we've touched a little bit this morning on summarization.

30:23

So right now we have summarization at the case, account and knowledge source

30:30

level.

30:30

And I believe Chris will be talking later about summarization at like a case

30:36

cohort level.

30:38

And all of this summarization is right now powered by our LLM service.

30:45

I did realize putting this together that I said everyone conflates Gennai with

30:50

LLM and

30:51

we actually have done it here.

30:53

We are guilty of that too.

30:55

But yeah, so our LLM service is actually really a Gennai service.

31:01

The kind of purpose of this service is to take a lot of the heavy lifting away

31:08

from the

31:09

UI or the products that want to use Gennai.

31:12

So this LLM service can take multiple different inputs and it knows how to

31:17

format and structure

31:18

that input for whichever different service it's using.

31:22

So I think this was also covered this morning but these three summarizations

31:27

that we have

31:28

right now, they use three different endpoints.

31:32

So we're using anthropic for one, Mistro for another and OpenAI model for

31:38

another one.

31:39

So we don't want for that to be the case that would involve at the product

31:47

level to have

31:49

so many different formats of data and to meet all the different requirements of

31:54

all of these

31:56

different services.

31:57

But we can abstract that away into the LLM service and that means that

32:02

basically the product

32:03

or the UI can just send its payload and the LLM service decides what that needs

32:08

to look

32:08

like, which model that's going to, which prompts that's going to use.

32:13

So it's powered by a state-of-the-art prompt management system that we built in

32:19

-house.

32:19

So the really nice thing about this prompt management system is again

32:24

customizable.

32:25

So we're building a library of prompts.

32:28

We're always adding prompts as we have new use cases come through and through

32:33

again the

32:34

click of a button we can update the prompt for a specific summarization use

32:39

case for

32:40

a specific customer without being a lot of downtime.

32:46

There's obviously it takes time in the prompt engineering phase to develop and

32:51

research

32:51

that prompt.

32:52

But once we have the prompt, we don't need to wait for a release cycle.

32:56

It can just be almost instantaneously used within the product.

33:03

Okay.

33:06

So hopefully I've given you a good kind of demonstration that we have ML and AI

33:13

throughout

33:14

our products and nearly everything that you're touching and interacting with

33:21

when using

33:21

support logic.

33:22

Good job, Alex.

33:23

[applause] [end of transcript]

33:24

Good job, Alex.

33:25

[applause] [end of transcript]

33:27

(applause)

33:30

(applause)