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.
You Might Also Like
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)