Join us for the 5th annual Azure Cosmos DB Conf, a free virtual developer event co-hosted by Microsoft and the Azure Cosmos DB community.
Tune in to learn why Azure Cosmos DB is the leading database for the era of AI and modern app development. This year’s event features a dynamic mix of sessions from Microsoft engineers and community experts, showcasing real-world projects, innovative breakthroughs, and hands-on demos.
What to Expect:
* Hear the latest product updates and innovations from the Azure Cosmos DB team.
* Learn how leading companies are using Azure Cosmos DB to build scalable, AI-driven applications.
* Gain insights from technical deep dives and real-world case studies from Microsoft and the developer community.
* Watch hands-on demos and lightning talks covering AI, analytics, security, performance optimization, and more.
* Join our engaging 3-hour live show on April 15, 2025, and explore additional on-demand sessions at your convenience.
This is an event you won’t want to miss—stay tuned for all the latest innovations and expert insights!
Show More Show Less View Video Transcript
22:19
TEST TEST TEST TEST TEST TEST
22:23
TEST TEST TEST TEST TEST TEST
22:23
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST
22:29
TEST TEST TEST TEST TEST TEST
22:29
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST
25:59
test test test test test test
26:03
test test test test test test
26:03
test test test test test test test test test test test test
26:07
test test test test test test
26:07
test test test test test test test test test test test test
26:11
test test test test test test
26:11
test test test test test test test test test test test test
26:15
test test test test test test
26:15
test test test test test test test test test test test test
26:20
test test test test test test
26:20
test test test test test test test test test test test test
26:26
test test test test test test
26:26
test test test test test test test test test test test test
26:33
test test test test test test
26:33
test test test test test test test test test test test test
26:37
test test test test test test
26:37
test test test test test test test test test test test test
26:40
test test test test test test
26:40
test test test test test test test test test test test test
26:45
test test test test test test
26:45
test test test test test test test test test test test test
26:53
test test test test test test
26:53
test test test test test test test test test test test test
26:58
test test test test test test
26:58
test test test test test test test test test test test test
27:04
test test test test test test
27:04
test test test test test test test test test test test test
27:13
test test test test test test
27:13
test test test test test test test test test test test test
27:17
test test test test test test
27:17
test test test test test test test test test test test test
27:23
test test test test test test
27:23
test test test test test test test test test test test test
27:27
test test test test test test
27:27
test test test test test test test test test test test test
27:30
test test test test test test
27:30
test test test test test test test test test test test test
27:35
test test test test test test
27:35
test test test test test test test test test test test test
27:41
test test test test test test
27:41
test test test test test test test test test test test test
27:45
test test test test test test
27:47
test test test test test test test test test test test test
27:50
test test test test test test
27:50
test test test test test test test test test test test test
27:56
test test test test test test
27:56
test test test test test test test test test test test test
28:00
test test test test test test
28:01
test test test test test test test test test test test test
28:06
test test test test test test
28:06
test test test test test test test test test test
34:44
>> hello everybody, welcome to
34:45
>> hello everybody, welcome to
34:45
>> hello everybody, welcome to Azure Cosmos 2025.
34:48
Azure Cosmos 2025.
34:48
Azure Cosmos 2025. My name is Patty.
34:51
My name is Patty.
34:51
My name is Patty. >> And I am Marko.
34:53
>> And I am Marko.
34:53
>> And I am Marko. Co-hosted by Microsoft and
34:55
Co-hosted by Microsoft and
34:55
Co-hosted by Microsoft and Azure Cosmos community.
34:58
Azure Cosmos community.
34:58
Azure Cosmos community. You are going to hear
35:01
You are going to hear
35:01
You are going to hear something, some very exciting
35:02
something, some very exciting
35:02
something, some very exciting things about the latest
35:05
things about the latest
35:05
things about the latest innovations in Azure Cosmos DB,
35:06
innovations in Azure Cosmos DB,
35:06
innovations in Azure Cosmos DB, the database for A.I.
35:12
the database for A.I.
35:12
the database for A.I. >> This event will include
35:13
>> This event will include
35:13
>> This event will include everything from product team
35:14
everything from product team
35:14
everything from product team members, customer stories and
35:15
members, customer stories and
35:15
members, customer stories and real-world use cases.
35:15
real-world use cases.
35:15
real-world use cases. We had over 100 submissions
35:16
We had over 100 submissions
35:16
We had over 100 submissions that we pared down to what you
35:19
that we pared down to what you
35:19
that we pared down to what you will see today.
35:20
will see today.
35:20
will see today. >> Some exciting sessions
35:21
>> Some exciting sessions
35:21
>> Some exciting sessions coming up.
35:22
coming up.
35:22
coming up. For search powered by-
35:26
For search powered by-
35:26
For search powered by- - applications, agent apps, you
35:29
- applications, agent apps, you
35:29
- applications, agent apps, you are going to hear about
35:34
are going to hear about
35:34
are going to hear about serverless and also cost
35:37
serverless and also cost
35:37
serverless and also cost savings.
35:37
savings.
35:37
savings. >> Sounds like we have a big
35:38
>> Sounds like we have a big
35:38
>> Sounds like we have a big show I had.
35:39
show I had.
35:39
show I had. Before we start, I want to
35:40
Before we start, I want to
35:40
Before we start, I want to mention our code of conduct.
35:41
mention our code of conduct.
35:41
mention our code of conduct. We want to create an inclusive
35:42
We want to create an inclusive
35:42
We want to create an inclusive and welcoming space and we hope
35:44
and welcoming space and we hope
35:44
and welcoming space and we hope that the content we have
35:45
that the content we have
35:45
that the content we have reflects that.
35:45
reflects that.
35:45
reflects that. With that, please use the Azure
35:51
With that, please use the Azure
35:51
With that, please use the Azure Cosmos DB YouTube stream chat
35:52
Cosmos DB YouTube stream chat
35:52
Cosmos DB YouTube stream chat to interact, share thoughts,
35:53
to interact, share thoughts,
35:53
to interact, share thoughts, asking questions and please
35:54
asking questions and please
35:54
asking questions and please let us know where you are
35:55
let us know where you are
35:56
let us know where you are watching us from.
35:57
watching us from.
35:57
watching us from. Then please use hashtag Azure
35:59
Then please use hashtag Azure
35:59
Then please use hashtag Azure Cosmos DB where you could be
36:04
Cosmos DB where you could be
36:04
Cosmos DB where you could be featured.
36:04
featured.
36:04
featured. Lastly, check out the resources
36:05
Lastly, check out the resources
36:05
Lastly, check out the resources on our website, our evaluation
36:10
on our website, our evaluation
36:10
on our website, our evaluation form and ways that you can get
36:13
form and ways that you can get
36:13
form and ways that you can get started using Azure Cosmos DB.
36:17
started using Azure Cosmos DB.
36:17
started using Azure Cosmos DB. All sessions will be available
36:22
All sessions will be available
36:25
All sessions will be available on demand.
36:25
on demand.
36:25
on demand. >> Yes, all the sessions will
36:26
>> Yes, all the sessions will
36:27
>> Yes, all the sessions will be available on demand.
36:27
be available on demand.
36:27
be available on demand. Without further ado, we are
36:28
Without further ado, we are
36:28
Without further ado, we are going to get started with the
36:30
going to get started with the
36:30
going to get started with the keynote delivered by the vice
36:31
keynote delivered by the vice
36:31
keynote delivered by the vice president of Azure Cosmos DB
36:32
president of Azure Cosmos DB
36:32
president of Azure Cosmos DB engineering Kirill Gavrylyuk.
36:33
engineering Kirill Gavrylyuk.
36:33
engineering Kirill Gavrylyuk. Before we go there, let's take
36:34
Before we go there, let's take
36:34
Before we go there, let's take a look at a short video entity
36:35
a look at a short video entity
36:35
a look at a short video entity what our customers are doing
36:36
what our customers are doing
36:36
what our customers are doing with Azure Cosmos DB.
36:40
with Azure Cosmos DB.
36:40
with Azure Cosmos DB. >> From worktime to fun time,
36:42
>> From worktime to fun time,
36:42
>> From worktime to fun time, Azure Cosmos DB powers the
36:44
Azure Cosmos DB powers the
36:44
Azure Cosmos DB powers the apps that power your day.
36:45
apps that power your day.
36:45
apps that power your day. Rise and shine with
36:49
Rise and shine with
36:49
Rise and shine with personalized mobile and online
36:49
personalized mobile and online
36:50
personalized mobile and online experiences powered by Azure
36:50
experiences powered by Azure
36:50
experiences powered by Azure Cosmos DB.
36:55
Cosmos DB.
36:55
Cosmos DB. You get your Starbucks coffee
36:57
You get your Starbucks coffee
36:57
You get your Starbucks coffee your way.
36:58
your way.
36:58
your way. Real-time vehicle diagnostics
36:58
Real-time vehicle diagnostics
36:59
Real-time vehicle diagnostics let you know that your
37:01
let you know that your
37:01
let you know that your connected car is low on fuel.
37:03
connected car is low on fuel.
37:03
connected car is low on fuel. Going up.
37:04
Going up.
37:04
Going up. No time to take the stairs?
37:07
No time to take the stairs?
37:08
No time to take the stairs? Pretty active maintenance means
37:08
Pretty active maintenance means
37:08
Pretty active maintenance means a smooth and safe ride to the
37:10
a smooth and safe ride to the
37:10
a smooth and safe ride to the 10th floor.
37:10
10th floor.
37:10
10th floor. Sign in, say hi with consistent
37:12
Sign in, say hi with consistent
37:12
Sign in, say hi with consistent reliability of Microsoft teams
37:15
reliability of Microsoft teams
37:15
reliability of Microsoft teams keeps the collaboration going
37:16
keeps the collaboration going
37:16
keeps the collaboration going wherever you are using Azure
37:19
wherever you are using Azure
37:19
wherever you are using Azure Cosmos DB as the primary data
37:20
Cosmos DB as the primary data
37:21
Cosmos DB as the primary data store.
37:21
store.
37:21
store. Learn something new built on
37:22
Learn something new built on
37:23
Learn something new built on Azure Cosmos DB . Chat DPT is
37:26
Azure Cosmos DB . Chat DPT is
37:27
Azure Cosmos DB . Chat DPT is always ready to answer your
37:28
always ready to answer your
37:29
always ready to answer your questions and converse with
37:31
questions and converse with
37:31
questions and converse with context.
37:31
context.
37:31
context. Secure storage means your
37:33
Secure storage means your
37:33
Secure storage means your voicemails are ready when you
37:34
voicemails are ready when you
37:34
voicemails are ready when you are.
37:37
are.
37:37
are. Order up.
37:38
Order up.
37:38
Order up. What were the groceries you
37:38
What were the groceries you
37:38
What were the groceries you ordered last week?
37:39
ordered last week?
37:39
ordered last week? Walmart makes reorders easy
37:43
Walmart makes reorders easy
37:43
Walmart makes reorders easy with all transactions served by
37:44
with all transactions served by
37:44
with all transactions served by Azure Cosmos DB.
37:45
Azure Cosmos DB.
37:45
Azure Cosmos DB. Check your balance.
37:49
Check your balance.
37:49
Check your balance. For the Fidelity's real-time
37:50
For the Fidelity's real-time
37:50
For the Fidelity's real-time transaction processing means
37:51
transaction processing means
37:53
transaction processing means real-time management.
37:55
real-time management.
37:55
real-time management. Finally, vacation.
37:55
Finally, vacation.
37:55
Finally, vacation. No sitting on the tarmac for
37:56
No sitting on the tarmac for
37:56
No sitting on the tarmac for you.
37:56
you.
37:57
you. Azure Cosmos DB powers fuel
37:59
Azure Cosmos DB powers fuel
37:59
Azure Cosmos DB powers fuel management for JetBlue.
38:03
management for JetBlue.
38:03
management for JetBlue. Your modern life is built on
38:04
Your modern life is built on
38:04
Your modern life is built on modern apps.
38:04
modern apps.
38:05
modern apps. And modern intelligent apps are
38:06
And modern intelligent apps are
38:06
And modern intelligent apps are built on Azure Cosmos DB.
38:13
built on Azure Cosmos DB.
38:13
built on Azure Cosmos DB. >> Hello, hello, welcome to our
38:14
>> Hello, hello, welcome to our
38:14
>> Hello, hello, welcome to our fifth annual Azure Cosmos DB
38:16
fifth annual Azure Cosmos DB
38:16
fifth annual Azure Cosmos DB conference.
38:17
conference.
38:17
conference. The conference for community,
38:19
The conference for community,
38:19
The conference for community, by community.
38:21
by community.
38:21
by community. Used in everyday of our lives.
38:24
Used in everyday of our lives.
38:24
Used in everyday of our lives. It powers many of the apps we
38:27
It powers many of the apps we
38:27
It powers many of the apps we use daily.
38:27
use daily.
38:28
use daily. It powers all of the Microsoft
38:30
It powers all of the Microsoft
38:30
It powers all of the Microsoft cloud apps, the fastest growing
38:33
cloud apps, the fastest growing
38:33
cloud apps, the fastest growing consumer app, ChatGPT.
38:33
consumer app, ChatGPT.
38:34
consumer app, ChatGPT. And there is good reason for
38:35
And there is good reason for
38:35
And there is good reason for it.
38:35
it.
38:35
it. Cosmos DB is A.I.
38:38
Cosmos DB is A.I.
38:38
Cosmos DB is A.I. ready.
38:39
ready.
38:39
ready. It offers built in vector and
38:43
It offers built in vector and
38:43
It offers built in vector and hybrid search.
38:44
hybrid search.
38:44
hybrid search. It transmits mission-critical
38:45
It transmits mission-critical
38:45
It transmits mission-critical apps angst to its active
38:48
apps angst to its active
38:48
apps angst to its active ability with lines of ability
38:51
ability with lines of ability
38:51
ability with lines of ability and millisecond latency
38:54
and millisecond latency
38:54
and millisecond latency guarantees.
38:54
guarantees.
38:54
guarantees. That's right, always available
38:59
That's right, always available
38:59
That's right, always available with multi-region rights gave
39:00
with multi-region rights gave
39:00
with multi-region rights gave you availability no matter what
39:03
you availability no matter what
39:03
you availability no matter what happens.
39:03
happens.
39:03
happens. Your Cosmos DB will be
39:05
Your Cosmos DB will be
39:05
Your Cosmos DB will be available.
39:05
available.
39:05
available. It is serverless.
39:10
It is serverless.
39:10
It is serverless. With two convenient serverless
39:11
With two convenient serverless
39:11
With two convenient serverless pricing models.
39:11
pricing models.
39:11
pricing models. You can pay for transactions or
39:12
You can pay for transactions or
39:13
You can pay for transactions or if you have high transaction
39:14
if you have high transaction
39:14
if you have high transaction rate, you can pay for
39:16
rate, you can pay for
39:16
rate, you can pay for transaction rates with instant
39:17
transaction rates with instant
39:17
transaction rates with instant automatic scaling without
39:19
automatic scaling without
39:19
automatic scaling without limits.
39:19
limits.
39:20
limits. Comes with develop friendly
39:23
Comes with develop friendly
39:23
Comes with develop friendly scheme relief-- serverless
39:29
scheme relief-- serverless
39:29
scheme relief-- serverless model.
39:29
model.
39:29
model. And might I say, it is the
39:30
And might I say, it is the
39:30
And might I say, it is the cheapest, fastest and the best
39:33
cheapest, fastest and the best
39:33
cheapest, fastest and the best DB API among the cloud
39:38
DB API among the cloud
39:38
DB API among the cloud services.
39:39
services.
39:39
services. It integrates really well with
39:40
It integrates really well with
39:40
It integrates really well with Microsoft stock, A.I.
39:40
Microsoft stock, A.I.
39:40
Microsoft stock, A.I. stack, apostolic and data
39:44
stack, apostolic and data
39:44
stack, apostolic and data stack.
39:44
stack.
39:44
stack. Just to highlight a couple of
39:45
Just to highlight a couple of
39:45
Just to highlight a couple of additions since our last Cosmos
39:47
additions since our last Cosmos
39:47
additions since our last Cosmos DB Cosmos conference, we are
39:51
DB Cosmos conference, we are
39:51
DB Cosmos conference, we are sending customers up to 80%
39:54
sending customers up to 80%
39:54
sending customers up to 80% off.
39:54
off.
39:54
off. We rolled out built in vector
39:56
We rolled out built in vector
39:56
We rolled out built in vector search and full deck search.
39:57
search and full deck search.
39:57
search and full deck search. No longer you have to duplicate
39:59
No longer you have to duplicate
40:00
No longer you have to duplicate your data and move data to
40:01
your data and move data to
40:01
your data and move data to another search service.
40:03
another search service.
40:03
another search service. And many other capabilities.
40:05
And many other capabilities.
40:05
And many other capabilities. Take, for example, change fees.
40:08
Take, for example, change fees.
40:08
Take, for example, change fees. I would like to invite Andrew
40:09
I would like to invite Andrew
40:09
I would like to invite Andrew Liu , our peerless group
40:13
Liu , our peerless group
40:13
Liu , our peerless group product manager.
40:14
product manager.
40:14
product manager. Preserving all versions.
40:17
Preserving all versions.
40:17
Preserving all versions. Andrew, please take it away.
40:19
Andrew, please take it away.
40:19
Andrew, please take it away. >> I've got some exciting
40:21
>> I've got some exciting
40:21
>> I've got some exciting updates to share.
40:29
updates to share.
40:29
updates to share. What is Cosmos DB changing?
40:30
What is Cosmos DB changing?
40:30
What is Cosmos DB changing? Why is it interesting?
40:31
Why is it interesting?
40:31
Why is it interesting? The simplest way to think about
40:32
The simplest way to think about
40:32
The simplest way to think about change rate is message queue
40:33
change rate is message queue
40:34
change rate is message queue semantics in a database.
40:36
semantics in a database.
40:37
semantics in a database. A persistent order stream of
40:48
A persistent order stream of
40:48
A persistent order stream of changes from within the cosmos
40:49
changes from within the cosmos
40:49
changes from within the cosmos stream and exposes them in the
40:50
stream and exposes them in the
40:50
stream and exposes them in the order they occur.
40:51
order they occur.
40:51
order they occur. It enables you to build
40:52
It enables you to build
40:52
It enables you to build reactive applications that
40:52
reactive applications that
40:52
reactive applications that respond incrementally to data
40:53
respond incrementally to data
40:53
respond incrementally to data changes.
40:53
changes.
40:53
changes. You can read the change rate
40:54
You can read the change rate
40:54
You can read the change rate multiple ways, whether it is
40:55
multiple ways, whether it is
40:55
multiple ways, whether it is through modes, a full model or
40:57
through modes, a full model or
40:57
through modes, a full model or push model or through
40:58
push model or through
40:58
push model or through integrations like triggering
40:58
integrations like triggering
40:58
integrations like triggering serverless functions.
41:00
serverless functions.
41:00
serverless functions. Reading leverages the
41:00
Reading leverages the
41:01
Reading leverages the distributed back end and reads
41:03
distributed back end and reads
41:03
distributed back end and reads in parallel from each of the
41:09
in parallel from each of the
41:09
in parallel from each of the partitions.
41:10
partitions.
41:10
partitions. They can efficiently create
41:11
They can efficiently create
41:11
They can efficiently create scalable and resilient
41:11
scalable and resilient
41:11
scalable and resilient applications that are tightly
41:14
applications that are tightly
41:14
applications that are tightly accomplished to the continuous
41:15
accomplished to the continuous
41:15
accomplished to the continuous flow of their data.
41:16
flow of their data.
41:16
flow of their data. A frequently asked Western I
41:17
A frequently asked Western I
41:17
A frequently asked Western I get is what can you build with
41:18
get is what can you build with
41:19
get is what can you build with it?
41:19
it?
41:19
it? Common scenarios I have seen
41:21
Common scenarios I have seen
41:21
Common scenarios I have seen are event driven architecture
41:23
are event driven architecture
41:25
are event driven architecture or event sourcing.
41:25
or event sourcing.
41:25
or event sourcing. I'll explain this one a bit.
41:29
I'll explain this one a bit.
41:30
I'll explain this one a bit. An example of event sourcing is
41:31
An example of event sourcing is
41:31
An example of event sourcing is order processing pipelines and
41:32
order processing pipelines and
41:32
order processing pipelines and large-scale e-commerce.
41:33
large-scale e-commerce.
41:33
large-scale e-commerce. Orchestrating many services
41:36
Orchestrating many services
41:36
Orchestrating many services such as checkout, payment,
41:37
such as checkout, payment,
41:37
such as checkout, payment, order notification, fulfillment
41:38
order notification, fulfillment
41:38
order notification, fulfillment can be challenging.
41:41
can be challenging.
41:41
can be challenging. And services need to
41:44
And services need to
41:44
And services need to communicate.
41:44
communicate.
41:44
communicate. That is in and squared scaling
41:46
That is in and squared scaling
41:46
That is in and squared scaling problem.
41:47
problem.
41:47
problem. You can greatly simplifies--
41:50
You can greatly simplifies--
41:50
You can greatly simplifies-- Semper Fi this.
41:51
Semper Fi this.
41:53
Semper Fi this. You can also persist these
41:55
You can also persist these
41:55
You can also persist these orders in a database in order
41:56
orders in a database in order
41:56
orders in a database in order to power experiences by showing
41:57
to power experiences by showing
41:58
to power experiences by showing the order status page.
42:00
the order status page.
42:00
the order status page. Why not just use a message and
42:03
Why not just use a message and
42:03
Why not just use a message and database separately?
42:03
database separately?
42:03
database separately? It is about resiliency.
42:04
It is about resiliency.
42:05
It is about resiliency. When I have a database and
42:07
When I have a database and
42:07
When I have a database and message queue together, when
42:13
message queue together, when
42:13
message queue together, when everything is behaving as
42:13
everything is behaving as
42:13
everything is behaving as expected, life is good.
42:14
expected, life is good.
42:14
expected, life is good. However, what about error
42:15
However, what about error
42:16
However, what about error conditions?
42:16
conditions?
42:17
conditions? The app successfully annexed
42:18
The app successfully annexed
42:18
The app successfully annexed the database but not the
42:19
the database but not the
42:19
the database but not the message queue or vice versa.
42:21
message queue or vice versa.
42:21
message queue or vice versa. They might show an order was
42:23
They might show an order was
42:23
They might show an order was confirmed but failed to make
42:24
confirmed but failed to make
42:24
confirmed but failed to make progress on payment or the
42:32
progress on payment or the
42:32
progress on payment or the customer is left waiting.
42:33
customer is left waiting.
42:33
customer is left waiting. Alternatively, you might
42:34
Alternatively, you might
42:34
Alternatively, you might process a payment and send a
42:35
process a payment and send a
42:35
process a payment and send a fulfillment however it is left
42:36
fulfillment however it is left
42:36
fulfillment however it is left in a pending state.
42:37
in a pending state.
42:37
in a pending state. Lending to a lot of confusion.
42:38
Lending to a lot of confusion.
42:38
Lending to a lot of confusion. As you go and look at all of
42:41
As you go and look at all of
42:41
As you go and look at all of the different, this could
42:42
the different, this could
42:42
the different, this could require a lot of complex error
42:48
require a lot of complex error
42:48
require a lot of complex error handling.
42:48
handling.
42:48
handling. It enables you to reconcile the
42:49
It enables you to reconcile the
42:49
It enables you to reconcile the truth between the database and
42:50
truth between the database and
42:50
truth between the database and the event base.
42:58
the event base.
42:58
the event base. >> When you do that data
43:00
>> When you do that data
43:00
>> When you do that data movement you can go and add
43:01
movement you can go and add
43:01
movement you can go and add additional processing such as
43:03
additional processing such as
43:03
additional processing such as aggregating a procsor to
43:05
aggregating a procsor to
43:05
aggregating a procsor to build leader boards.
43:07
build leader boards.
43:07
build leader boards. Or implement design products
43:08
Or implement design products
43:08
Or implement design products such as global secondary
43:10
such as global secondary
43:10
such as global secondary industries.
43:10
industries.
43:10
industries. What is new here is the change
43:17
What is new here is the change
43:17
What is new here is the change mode.
43:18
mode.
43:18
mode. With all versions and deletes,
43:19
With all versions and deletes,
43:19
With all versions and deletes, this is different from the
43:20
this is different from the
43:20
this is different from the existing mode where we would
43:21
existing mode where we would
43:21
existing mode where we would service every existing update.
43:24
service every existing update.
43:24
service every existing update. It would only get the latest
43:27
It would only get the latest
43:27
It would only get the latest version.
43:27
version.
43:27
version. The advantage of that is if I
43:31
The advantage of that is if I
43:31
The advantage of that is if I update one kilobyte record, it
43:32
update one kilobyte record, it
43:32
update one kilobyte record, it only occupies one kilobyte in
43:33
only occupies one kilobyte in
43:34
only occupies one kilobyte in the database.
43:34
the database.
43:34
the database. There are other cases where you
43:35
There are other cases where you
43:35
There are other cases where you want the complete history.
43:39
want the complete history.
43:39
want the complete history. This gets stored efficiently in
43:41
This gets stored efficiently in
43:41
This gets stored efficiently in the underlying log that powers
43:44
the underlying log that powers
43:44
the underlying log that powers time recovery for backup
43:46
time recovery for backup
43:46
time recovery for backup restore.
43:46
restore.
43:46
restore. If you have use cases like
43:48
If you have use cases like
43:48
If you have use cases like detailed audit logs or
43:50
detailed audit logs or
43:50
detailed audit logs or compliance and you want to add
43:54
compliance and you want to add
43:54
compliance and you want to add resiliency to data processing
43:55
resiliency to data processing
43:55
resiliency to data processing pipelines or you need to be
43:56
pipelines or you need to be
43:56
pipelines or you need to be able to reliably reconstruct
43:57
able to reliably reconstruct
43:57
able to reliably reconstruct past data.
43:58
past data.
43:58
past data. Let's jump into a demo.
44:01
Let's jump into a demo.
44:01
Let's jump into a demo. I have a scenario where I built
44:02
I have a scenario where I built
44:02
I have a scenario where I built on top of the Cosmos DB . A
44:06
on top of the Cosmos DB . A
44:07
on top of the Cosmos DB . A fairly simple game where I can
44:08
fairly simple game where I can
44:08
fairly simple game where I can roll the dice and based off of
44:10
roll the dice and based off of
44:10
roll the dice and based off of that it achievements.
44:13
that it achievements.
44:13
that it achievements. Where it gets commonly used in
44:17
Where it gets commonly used in
44:17
Where it gets commonly used in gaming is of course to power
44:18
gaming is of course to power
44:18
gaming is of course to power multiplayer and social gaming
44:19
multiplayer and social gaming
44:19
multiplayer and social gaming so that you can broadcast
44:20
so that you can broadcast
44:20
so that you can broadcast gaming to other players.
44:21
gaming to other players.
44:21
gaming to other players. As well as to build aggregates
44:22
As well as to build aggregates
44:22
As well as to build aggregates where you stream process the
44:25
where you stream process the
44:25
where you stream process the leaderboard.
44:25
leaderboard.
44:25
leaderboard. And you want to make sure you
44:29
And you want to make sure you
44:29
And you want to make sure you are not-- in order to get short
44:33
are not-- in order to get short
44:33
are not-- in order to get short millisecond response apps, you
44:34
millisecond response apps, you
44:34
millisecond response apps, you want to materialize.
44:36
want to materialize.
44:37
want to materialize. As I look at this game, let's
44:38
As I look at this game, let's
44:38
As I look at this game, let's take a look at how I attach.
44:44
take a look at how I attach.
44:44
take a look at how I attach. First, I'm going to go to my
44:45
First, I'm going to go to my
44:45
First, I'm going to go to my Cosmos DB account.
44:46
Cosmos DB account.
44:46
Cosmos DB account. Enabling is very easy.
44:47
Enabling is very easy.
44:47
Enabling is very easy. I go over to features, there is
44:48
I go over to features, there is
44:48
I go over to features, there is all versions and deletes mode.
44:51
all versions and deletes mode.
44:51
all versions and deletes mode. Now I go into my app.
44:54
Now I go into my app.
44:54
Now I go into my app. And what I'm going to do is
44:55
And what I'm going to do is
44:56
And what I'm going to do is restart the app.
44:58
restart the app.
44:58
restart the app. I'm going to read the change
45:00
I'm going to read the change
45:00
I'm going to read the change feed.
45:00
feed.
45:00
feed. It's actually very
45:01
It's actually very
45:01
It's actually very straightforward.
45:02
straightforward.
45:02
straightforward. This is also new as we have
45:06
This is also new as we have
45:06
This is also new as we have expanded the support of change
45:09
expanded the support of change
45:09
expanded the support of change feed.
45:09
feed.
45:09
feed. I am using the Python to query
45:12
I am using the Python to query
45:12
I am using the Python to query the change feed.
45:13
the change feed.
45:13
the change feed. I'm also going to taking a look
45:19
I'm also going to taking a look
45:19
I'm also going to taking a look to injecting the all versions
45:20
to injecting the all versions
45:20
to injecting the all versions and deletes.
45:20
and deletes.
45:20
and deletes. That gives me the document body
45:23
That gives me the document body
45:23
That gives me the document body as well as the metadata.
45:27
as well as the metadata.
45:27
as well as the metadata. The conditional logic in the
45:29
The conditional logic in the
45:29
The conditional logic in the body of the document.
45:32
body of the document.
45:32
body of the document. If I go and put this side-by-
45:34
If I go and put this side-by-
45:34
If I go and put this side-by- side with my app, as I go and
45:36
side with my app, as I go and
45:37
side with my app, as I go and roll the dice as you can see in
45:41
roll the dice as you can see in
45:41
roll the dice as you can see in real-time I am able to go and
45:43
real-time I am able to go and
45:43
real-time I am able to go and track the events directly from
45:44
track the events directly from
45:44
track the events directly from the change feed.
45:46
the change feed.
45:46
the change feed. We will do a deeper died-- dive
45:50
We will do a deeper died-- dive
45:50
We will do a deeper died-- dive leader at cosmos con.
45:53
leader at cosmos con.
45:53
leader at cosmos con. With that, back to you Kirill.
45:56
With that, back to you Kirill.
45:56
With that, back to you Kirill. >> It simplifies many use cases.
46:02
>> It simplifies many use cases.
46:02
>> It simplifies many use cases. If you have a situation where
46:04
If you have a situation where
46:04
If you have a situation where you have many copies of the
46:05
you have many copies of the
46:05
you have many copies of the data and you are doing double
46:06
data and you are doing double
46:06
data and you are doing double rights, take a look at this.
46:07
rights, take a look at this.
46:07
rights, take a look at this. Cosmos DB offers flexible data
46:10
Cosmos DB offers flexible data
46:10
Cosmos DB offers flexible data model.
46:10
model.
46:10
model. And APIs including popular API.
46:13
And APIs including popular API.
46:13
And APIs including popular API. Cosmos DB is a relatively new
46:16
Cosmos DB is a relatively new
46:16
Cosmos DB is a relatively new operating but rapidly gaining
46:19
operating but rapidly gaining
46:19
operating but rapidly gaining popularity as a faster, cheaper
46:20
popularity as a faster, cheaper
46:20
popularity as a faster, cheaper and better DB.
46:21
and better DB.
46:21
and better DB. It is consistently cheaper.
46:26
It is consistently cheaper.
46:26
It is consistently cheaper. With simple, intuitive pricing.
46:28
With simple, intuitive pricing.
46:29
With simple, intuitive pricing. It is faster and better than
46:30
It is faster and better than
46:30
It is faster and better than the leading DP in many use
46:33
the leading DP in many use
46:33
the leading DP in many use cases.
46:34
cases.
46:34
cases. And it is open source.
46:35
And it is open source.
46:35
And it is open source. That is right.
46:38
That is right.
46:38
That is right. You can run it on premises or
46:40
You can run it on premises or
46:41
You can run it on premises or your environment.
46:41
your environment.
46:41
your environment. No strings attached.
46:47
No strings attached.
46:47
No strings attached. Dynamic scale, the most popular
46:48
Dynamic scale, the most popular
46:48
Dynamic scale, the most popular addition of 2024.
46:51
addition of 2024.
46:51
addition of 2024. It is now adopted by more than
46:53
It is now adopted by more than
46:53
It is now adopted by more than 80% of Cosmos DB users.
46:56
80% of Cosmos DB users.
46:56
80% of Cosmos DB users. Responding instantly to
46:57
Responding instantly to
46:57
Responding instantly to workloads, needs, verification
47:00
workloads, needs, verification
47:00
workloads, needs, verification and region.
47:01
and region.
47:01
and region. If only one is active, only one
47:03
If only one is active, only one
47:03
If only one is active, only one petition is scaled up and you
47:04
petition is scaled up and you
47:04
petition is scaled up and you build only for one petition.
47:07
build only for one petition.
47:07
build only for one petition. Open A.I.
47:07
Open A.I.
47:07
Open A.I. is a great example of
47:11
is a great example of
47:11
is a great example of elasticity and dynamic scale in
47:12
elasticity and dynamic scale in
47:12
elasticity and dynamic scale in action.
47:13
action.
47:13
action. Open A.I.
47:13
Open A.I.
47:13
Open A.I. grew from zero to 400 million
47:15
grew from zero to 400 million
47:16
grew from zero to 400 million weekly active users.
47:18
weekly active users.
47:18
weekly active users. Making it the fastest growing
47:20
Making it the fastest growing
47:20
Making it the fastest growing consumer app ever.
47:21
consumer app ever.
47:21
consumer app ever. More than 200 daily database
47:26
More than 200 daily database
47:26
More than 200 daily database transactions.
47:27
transactions.
47:27
transactions. Cosmos DB is the main database
47:28
Cosmos DB is the main database
47:28
Cosmos DB is the main database used by more than 50 at open
47:31
used by more than 50 at open
47:31
used by more than 50 at open A.I.
47:31
A.I.
47:31
A.I. including ChatGPT itself.
47:32
including ChatGPT itself.
47:33
including ChatGPT itself. What attracted open A.I.
47:35
What attracted open A.I.
47:36
What attracted open A.I. to Cosmos DB is seamless
47:38
to Cosmos DB is seamless
47:38
to Cosmos DB is seamless scalability.
47:38
scalability.
47:39
scalability. No need to worry about servers.
47:42
No need to worry about servers.
47:42
No need to worry about servers. And allowing developers to
47:45
And allowing developers to
47:45
And allowing developers to rapidly change the app, not
47:46
rapidly change the app, not
47:46
rapidly change the app, not worrying about database schema.
47:50
worrying about database schema.
47:50
worrying about database schema. This capability is very
47:51
This capability is very
47:51
This capability is very important today.
47:53
important today.
47:53
important today. Developers will build apps with
47:54
Developers will build apps with
47:54
Developers will build apps with the help of A.I.
47:55
the help of A.I.
47:55
the help of A.I. more and more.
47:56
more and more.
47:57
more and more. Because A.I.
47:59
Because A.I.
47:59
Because A.I. makes it much easier.
48:02
makes it much easier.
48:03
makes it much easier. Developers will do more
48:05
Developers will do more
48:05
Developers will do more factoring's.
48:05
factoring's.
48:05
factoring's. But they are factoring the
48:06
But they are factoring the
48:06
But they are factoring the changes the data model.
48:09
changes the data model.
48:09
changes the data model. If you have to change the
48:10
If you have to change the
48:11
If you have to change the database schema, you are
48:11
database schema, you are
48:11
database schema, you are changing the schema and in the
48:12
changing the schema and in the
48:12
changing the schema and in the application if you are using
48:15
application if you are using
48:15
application if you are using the traditional database.
48:16
the traditional database.
48:16
the traditional database. With Cosmos DB, there is no
48:19
With Cosmos DB, there is no
48:19
With Cosmos DB, there is no schema.
48:20
schema.
48:20
schema. There is no problem.
48:23
There is no problem.
48:23
There is no problem. And you do not need to do data
48:25
And you do not need to do data
48:25
And you do not need to do data migrations between different
48:27
migrations between different
48:27
migrations between different data models.
48:27
data models.
48:27
data models. Cosmos DB now has built in
48:28
Cosmos DB now has built in
48:29
Cosmos DB now has built in vector search and full deck
48:30
vector search and full deck
48:31
vector search and full deck search and hybrid search where
48:31
search and hybrid search where
48:32
search and hybrid search where vector search results.
48:35
vector search results.
48:35
vector search results. What that allows you to do is
48:39
What that allows you to do is
48:39
What that allows you to do is to not duplicate data between
48:41
to not duplicate data between
48:41
to not duplicate data between Cosmos DB and another search
48:44
Cosmos DB and another search
48:44
Cosmos DB and another search service.
48:45
service.
48:45
service. It is serverless and has the
48:46
It is serverless and has the
48:46
It is serverless and has the lowest cost per query and
48:51
lowest cost per query and
48:51
lowest cost per query and lowest latency across all
48:51
lowest latency across all
48:51
lowest latency across all leading vector databases on the
48:53
leading vector databases on the
48:53
leading vector databases on the market.
48:53
market.
48:53
market. Not surprisingly, the main
48:53
Not surprisingly, the main
48:53
Not surprisingly, the main Cosmos DB choice for A.I.
48:57
Cosmos DB choice for A.I.
48:57
Cosmos DB choice for A.I. database in a recent survey by
49:01
database in a recent survey by
49:01
database in a recent survey by Bloomberg.
49:02
Bloomberg.
49:02
Bloomberg. Cosmos DB is used by many A.I.
49:03
Cosmos DB is used by many A.I.
49:03
Cosmos DB is used by many A.I. use cases today.
49:04
use cases today.
49:04
use cases today. The most popular ones.
49:04
The most popular ones.
49:04
The most popular ones. You can find samples for each
49:06
You can find samples for each
49:06
You can find samples for each of these use cases.
49:09
of these use cases.
49:09
of these use cases. Next, I am honored to be joined
49:12
Next, I am honored to be joined
49:12
Next, I am honored to be joined by Kunal Mukerjee, vice
49:13
by Kunal Mukerjee, vice
49:13
by Kunal Mukerjee, vice president at dock you sign who
49:14
president at dock you sign who
49:14
president at dock you sign who will share with us how they are
49:18
will share with us how they are
49:18
will share with us how they are solving a $2 trillion problem
49:20
solving a $2 trillion problem
49:20
solving a $2 trillion problem with the help of Azure Cosmos
49:25
with the help of Azure Cosmos
49:25
with the help of Azure Cosmos DB.
49:25
DB.
49:26
DB. Let us invite Kunal on stage.
49:37
Let us invite Kunal on stage.
49:37
Let us invite Kunal on stage. Great to have you on our show.
49:43
Great to have you on our show.
49:43
Great to have you on our show. Could you tell us briefly about
49:44
Could you tell us briefly about
49:44
Could you tell us briefly about the $2 trillion agreement
49:45
the $2 trillion agreement
49:45
the $2 trillion agreement problem?
49:45
problem?
49:45
problem? >> Thanks, Kirill.
49:46
>> Thanks, Kirill.
49:46
>> Thanks, Kirill. Great to be here.
49:47
Great to be here.
49:47
Great to be here. Let me start with a great
49:48
Let me start with a great
49:48
Let me start with a great obvious fact.
49:48
obvious fact.
49:48
obvious fact. Everyone of assigns documents
49:50
Everyone of assigns documents
49:50
Everyone of assigns documents digitally.
49:50
digitally.
49:50
digitally. Many of them with dock you--
49:56
Many of them with dock you--
49:56
Many of them with dock you-- DocuSign.
49:57
DocuSign.
49:57
DocuSign. We have around 1.6 million
49:58
We have around 1.6 million
49:58
We have around 1.6 million customers who signed documents
49:59
customers who signed documents
49:59
customers who signed documents for signing and a staggering 1
50:03
for signing and a staggering 1
50:04
for signing and a staggering 1 billion.
50:04
billion.
50:04
billion. You heard me right.
50:05
You heard me right.
50:05
You heard me right. Billion with a B. That makes a
50:11
Billion with a B. That makes a
50:11
Billion with a B. That makes a staggering number of documents.
50:12
staggering number of documents.
50:12
staggering number of documents. The sheer scale of that makes
50:15
The sheer scale of that makes
50:15
The sheer scale of that makes it infeasible until now to
50:16
it infeasible until now to
50:16
it infeasible until now to figure out how many documents
50:18
figure out how many documents
50:18
figure out how many documents are coming up for renewal, by
50:22
are coming up for renewal, by
50:22
are coming up for renewal, by which date and would be the
50:23
which date and would be the
50:23
which date and would be the consequences of not acting in a
50:25
consequences of not acting in a
50:25
consequences of not acting in a timely fashion.
50:26
timely fashion.
50:26
timely fashion. To provide a concrete example,
50:27
To provide a concrete example,
50:27
To provide a concrete example, I have found myself locked into
50:31
I have found myself locked into
50:31
I have found myself locked into a lease on both the house and
50:34
a lease on both the house and
50:35
a lease on both the house and car in my past life because I
50:36
car in my past life because I
50:36
car in my past life because I lost track of renewal dates and
50:37
lost track of renewal dates and
50:37
lost track of renewal dates and terms.
50:37
terms.
50:37
terms. As I suspect have many in this
50:42
As I suspect have many in this
50:42
As I suspect have many in this audience.
50:42
audience.
50:42
audience. Now consider that some large
50:43
Now consider that some large
50:43
Now consider that some large enterprises and even
50:45
enterprises and even
50:45
enterprises and even governments have standardized
50:47
governments have standardized
50:47
governments have standardized on DocuSign for digital
50:49
on DocuSign for digital
50:49
on DocuSign for digital signatures on every single of
50:53
signatures on every single of
50:53
signatures on every single of their agreements.
50:54
their agreements.
50:54
their agreements. The sum total of all of that
50:55
The sum total of all of that
50:55
The sum total of all of that scale adds up to a traveling--
50:56
scale adds up to a traveling--
50:56
scale adds up to a traveling-- staggering 2 trillion number.
51:01
staggering 2 trillion number.
51:01
staggering 2 trillion number. >> That's incredible.
51:01
>> That's incredible.
51:01
>> That's incredible. Agreements are fundamental to
51:02
Agreements are fundamental to
51:02
Agreements are fundamental to our lives.
51:03
our lives.
51:03
our lives. This is our relationship
51:04
This is our relationship
51:05
This is our relationship especially for corporate.
51:07
especially for corporate.
51:07
especially for corporate. Precision of search
51:08
Precision of search
51:08
Precision of search recommendations must be
51:09
recommendations must be
51:09
recommendations must be crucial.
51:09
crucial.
51:09
crucial. Where do you store all of this
51:12
Where do you store all of this
51:12
Where do you store all of this data?
51:12
data?
51:12
data? How do you search it?
51:15
How do you search it?
51:16
How do you search it? >> Great question.
51:17
>> Great question.
51:17
>> Great question. We use cosmos and sequel.
51:20
We use cosmos and sequel.
51:20
We use cosmos and sequel. Sequel to catch all of the e-
51:24
Sequel to catch all of the e-
51:24
Sequel to catch all of the e- signature transactions as they
51:24
signature transactions as they
51:24
signature transactions as they happen.
51:25
happen.
51:25
happen. For which we have course need
51:27
For which we have course need
51:27
For which we have course need guarantees.
51:29
guarantees.
51:29
guarantees. Similar to APM.
51:30
Similar to APM.
51:30
Similar to APM. And cost much-- cosmos which
51:36
And cost much-- cosmos which
51:36
And cost much-- cosmos which stores the brains of the
51:37
stores the brains of the
51:37
stores the brains of the agreement by way of the
51:38
agreement by way of the
51:38
agreement by way of the agreement data model that we
51:39
agreement data model that we
51:39
agreement data model that we call ADM.
51:40
call ADM.
51:41
call ADM. Where we store industry and
51:43
Where we store industry and
51:43
Where we store industry and vertical standards and metadata
51:45
vertical standards and metadata
51:45
vertical standards and metadata including metadata about
51:47
including metadata about
51:47
including metadata about individual agreements so as to
51:49
individual agreements so as to
51:50
individual agreements so as to make them actionable and
51:51
make them actionable and
51:51
make them actionable and essentially solve that $2
51:52
essentially solve that $2
51:52
essentially solve that $2 trillion problem you referred
51:53
trillion problem you referred
51:54
trillion problem you referred to earlier.
51:54
to earlier.
51:54
to earlier. We need to vectorized in order
51:56
We need to vectorized in order
51:56
We need to vectorized in order to provide search precision,
51:58
to provide search precision,
51:58
to provide search precision, take into account domain
52:01
take into account domain
52:01
take into account domain jargon, et cetera.
52:02
jargon, et cetera.
52:02
jargon, et cetera. And we are moving away from
52:05
And we are moving away from
52:05
And we are moving away from search systems to cosmos which
52:08
search systems to cosmos which
52:08
search systems to cosmos which provides built in vector and
52:09
provides built in vector and
52:09
provides built in vector and search capability in the same
52:11
search capability in the same
52:11
search capability in the same place.
52:12
place.
52:12
place. >> This is very interesting.
52:18
>> This is very interesting.
52:18
>> This is very interesting. For Cosmos DB specifically,
52:19
For Cosmos DB specifically,
52:19
For Cosmos DB specifically, more and more customers moved
52:20
more and more customers moved
52:20
more and more customers moved to use Cosmos DB for search.
52:24
to use Cosmos DB for search.
52:24
to use Cosmos DB for search. How did you arrive at that
52:25
How did you arrive at that
52:26
How did you arrive at that conclusion?
52:26
conclusion?
52:26
conclusion? >> It's very simple when you
52:27
>> It's very simple when you
52:27
>> It's very simple when you boil it down.
52:31
boil it down.
52:31
boil it down. DocuSign we need to provide
52:32
DocuSign we need to provide
52:32
DocuSign we need to provide performance and availability to
52:34
performance and availability to
52:34
performance and availability to ensure seamless experience.
52:38
ensure seamless experience.
52:38
ensure seamless experience. Documents, summaries, metadata,
52:41
Documents, summaries, metadata,
52:41
Documents, summaries, metadata, et cetera.
52:42
et cetera.
52:42
et cetera. They are all already stored in
52:43
They are all already stored in
52:43
They are all already stored in Cosmos DB.
52:43
Cosmos DB.
52:43
Cosmos DB. We needed an achievable system
52:45
We needed an achievable system
52:45
We needed an achievable system that used the latest data
52:49
that used the latest data
52:49
that used the latest data algorithms, was cost-effective
52:54
algorithms, was cost-effective
52:54
algorithms, was cost-effective and.
52:54
and.
52:54
and. Cosmos with implementation is
52:56
Cosmos with implementation is
52:56
Cosmos with implementation is 60 times cheaper then memory
53:01
60 times cheaper then memory
53:01
60 times cheaper then memory counterparts we evaluated and
53:03
counterparts we evaluated and
53:03
counterparts we evaluated and provides reliability and
53:04
provides reliability and
53:04
provides reliability and security guarantees that we
53:07
security guarantees that we
53:07
security guarantees that we need.
53:08
need.
53:08
need. Semantic retrieval and natural
53:09
Semantic retrieval and natural
53:09
Semantic retrieval and natural language interactions is simply
53:10
language interactions is simply
53:12
language interactions is simply the next step in the evolution
53:13
the next step in the evolution
53:13
the next step in the evolution of database queries.
53:14
of database queries.
53:14
of database queries. >> Thank you so much, Kunal.
53:17
>> Thank you so much, Kunal.
53:17
>> Thank you so much, Kunal. Super grateful to have you as a
53:18
Super grateful to have you as a
53:20
Super grateful to have you as a customer.
53:20
customer.
53:20
customer. Given Schemaless and the scale
53:25
Given Schemaless and the scale
53:25
Given Schemaless and the scale , offering like DocuSign.
53:30
, offering like DocuSign.
53:31
, offering like DocuSign. So precisely these reasons, so
53:32
So precisely these reasons, so
53:32
So precisely these reasons, so do many products.
53:36
do many products.
53:37
do many products. >> Thank you.
53:38
>> Thank you.
53:38
>> Thank you. >> This was and lightning.
53:45
>> This was and lightning.
53:45
>> This was and lightning. Schema flexibility of Cosmos DB
53:46
Schema flexibility of Cosmos DB
53:46
Schema flexibility of Cosmos DB in addition to built in
53:47
in addition to built in
53:47
in addition to built in semantic search really opens up
53:48
semantic search really opens up
53:48
semantic search really opens up new opportunities for the apps
53:49
new opportunities for the apps
53:49
new opportunities for the apps where you don't have to move
53:50
where you don't have to move
53:50
where you don't have to move your data and you get
53:51
your data and you get
53:51
your data and you get serverless retrieval system on
53:54
serverless retrieval system on
53:54
serverless retrieval system on semistructured data.
53:55
semistructured data.
53:55
semistructured data. Now, today happens to be tax
53:56
Now, today happens to be tax
53:56
Now, today happens to be tax day in the United States.
53:58
day in the United States.
53:58
day in the United States. Stressful day for many of you.
54:00
Stressful day for many of you.
54:00
Stressful day for many of you. Let us hear from Vin Kamat,
54:04
Let us hear from Vin Kamat,
54:04
Let us hear from Vin Kamat, principal architect on H&R
54:07
principal architect on H&R
54:07
principal architect on H&R Block with how the reliability
54:08
Block with how the reliability
54:08
Block with how the reliability and elasticity of Cosmos DB
54:09
and elasticity of Cosmos DB
54:09
and elasticity of Cosmos DB help H&R Block navigate the
54:12
help H&R Block navigate the
54:13
help H&R Block navigate the peaks of taxation with ease.
54:14
peaks of taxation with ease.
54:15
peaks of taxation with ease. Let us invite then on stage.
54:24
Let us invite then on stage.
54:24
Let us invite then on stage. >> Hi Vin , thank you so much
54:27
>> Hi Vin , thank you so much
54:27
>> Hi Vin , thank you so much for joining could you describe
54:30
for joining could you describe
54:30
for joining could you describe how H&R Block has utilized to s
54:33
how H&R Block has utilized to s
54:34
how H&R Block has utilized to s A.I.
54:36
A.I.
54:36
A.I. enabled and non-A.I.
54:38
enabled and non-A.I.
54:38
enabled and non-A.I. applications?
54:38
applications?
54:38
applications? What benefits have you
54:41
What benefits have you
54:41
What benefits have you observed?
54:42
observed?
54:42
observed? >> Sure.
54:43
>> Sure.
54:43
>> Sure. We started our journey of cloud
54:46
We started our journey of cloud
54:47
We started our journey of cloud modernization several years
54:49
modernization several years
54:49
modernization several years ago.
54:49
ago.
54:49
ago. We needed a system of services
54:54
We needed a system of services
54:54
We needed a system of services in Azure that all work
54:56
in Azure that all work
54:56
in Azure that all work together.
54:57
together.
54:57
together. So one of the obvious ways to
55:00
So one of the obvious ways to
55:00
So one of the obvious ways to do that is to use cloud
55:03
do that is to use cloud
55:03
do that is to use cloud services.
55:03
services.
55:03
services. And we started using Azure
55:05
And we started using Azure
55:05
And we started using Azure Cosmos DB.
55:07
Cosmos DB.
55:07
Cosmos DB. And one of the reasons is
55:09
And one of the reasons is
55:10
And one of the reasons is because it offers Schemaless
55:13
because it offers Schemaless
55:13
because it offers Schemaless data model with domain specific
55:19
data model with domain specific
55:19
data model with domain specific data enabling application and
55:20
data enabling application and
55:20
data enabling application and scaling features.
55:20
scaling features.
55:20
scaling features. Those were really important for
55:21
Those were really important for
55:21
Those were really important for most of the mission-critical
55:23
most of the mission-critical
55:23
most of the mission-critical tech systems.
55:25
tech systems.
55:25
tech systems. Modernized text systems.
55:28
Modernized text systems.
55:28
Modernized text systems. The other applications that we
55:29
The other applications that we
55:29
The other applications that we started to work on in the past
55:33
started to work on in the past
55:33
started to work on in the past few years, we started to also
55:37
few years, we started to also
55:37
few years, we started to also use Cosmos DB for storing
55:40
use Cosmos DB for storing
55:40
use Cosmos DB for storing various types of other data
55:43
various types of other data
55:43
various types of other data specific to A.I.
55:48
specific to A.I.
55:48
specific to A.I. applications.
55:48
applications.
55:48
applications. So the benefits, they are
55:53
So the benefits, they are
55:53
So the benefits, they are primarily around enhanced
55:57
primarily around enhanced
55:57
primarily around enhanced scalability, operational
56:01
scalability, operational
56:01
scalability, operational efficiency, cloud option which
56:02
efficiency, cloud option which
56:02
efficiency, cloud option which is going to be accelerated as
56:03
is going to be accelerated as
56:03
is going to be accelerated as we move to rapid application.
56:04
we move to rapid application.
56:04
we move to rapid application. All of that enabled us to move
56:08
All of that enabled us to move
56:08
All of that enabled us to move faster to the cloud and then
56:10
faster to the cloud and then
56:10
faster to the cloud and then sustain that and mature in that
56:13
sustain that and mature in that
56:13
sustain that and mature in that space.
56:14
space.
56:14
space. One of the other things I would
56:15
One of the other things I would
56:15
One of the other things I would like to highlight is it really
56:16
like to highlight is it really
56:16
like to highlight is it really enabled our event driven
56:19
enabled our event driven
56:19
enabled our event driven architecture and the fantastic
56:22
architecture and the fantastic
56:22
architecture and the fantastic document support provides the
56:23
document support provides the
56:23
document support provides the ability to store high volumes
56:26
ability to store high volumes
56:26
ability to store high volumes of data.
56:26
of data.
56:26
of data. Which is really important for a
56:28
Which is really important for a
56:28
Which is really important for a company like us.
56:31
company like us.
56:31
company like us. >> That's really awesome.
56:34
>> That's really awesome.
56:34
>> That's really awesome. Can you share specific examples
56:36
Can you share specific examples
56:36
Can you share specific examples of how Cosmos DB enhance your
56:38
of how Cosmos DB enhance your
56:38
of how Cosmos DB enhance your A.I.
56:38
A.I.
56:38
A.I. apps such as the tax assist
56:41
apps such as the tax assist
56:41
apps such as the tax assist feature and client
56:44
feature and client
56:44
feature and client satisfaction?
56:45
satisfaction?
56:45
satisfaction? >> Absolutely.
56:50
>> Absolutely.
56:50
>> Absolutely. We launched AI tax a couple
56:52
We launched AI tax a couple
56:52
We launched AI tax a couple seasons ago and since then, we
56:58
seasons ago and since then, we
56:58
seasons ago and since then, we have seen an incremental uplift.
57:04
have seen an incremental uplift.
57:04
have seen an incremental uplift. Compared to those that did not.
57:05
Compared to those that did not.
57:05
Compared to those that did not. We have also seen convergence
57:09
We have also seen convergence
57:10
We have also seen convergence rates.
57:10
rates.
57:10
rates. So the AI tax assist , the
57:12
So the AI tax assist , the
57:12
So the AI tax assist , the persistence and the backbone
57:13
persistence and the backbone
57:13
persistence and the backbone for it is Azure Cosmos DB.
57:15
for it is Azure Cosmos DB.
57:16
for it is Azure Cosmos DB. So we use all kinds of the
57:21
So we use all kinds of the
57:21
So we use all kinds of the Azure Patty Chow services AI
57:25
Azure Patty Chow services AI
57:25
Azure Patty Chow services AI services.
57:26
services.
57:26
services. A key enabler in providing
57:28
A key enabler in providing
57:29
A key enabler in providing storage and data.
57:32
storage and data.
57:32
storage and data. So like I said, chat history,
57:33
So like I said, chat history,
57:33
So like I said, chat history, user prompts, user feedback,
57:36
user prompts, user feedback,
57:36
user prompts, user feedback, benchmark testing data.
57:37
benchmark testing data.
57:37
benchmark testing data. All of that is supported by the
57:40
All of that is supported by the
57:40
All of that is supported by the storage that we have.
57:42
storage that we have.
57:42
storage that we have. In Cosmos DB.
57:44
In Cosmos DB.
57:44
In Cosmos DB. The Azure system makes it
57:51
The Azure system makes it
57:51
The Azure system makes it seamless to experiment with
57:52
seamless to experiment with
57:52
seamless to experiment with particular apps and with a
57:53
particular apps and with a
57:53
particular apps and with a partnership with Microsoft we
57:53
partnership with Microsoft we
57:53
partnership with Microsoft we have close collaboration and
57:56
have close collaboration and
57:56
have close collaboration and especially product support that
57:57
especially product support that
57:57
especially product support that also accelerates a solution.
58:04
also accelerates a solution.
58:04
also accelerates a solution. >> Very delightful to see the
58:07
>> Very delightful to see the
58:07
>> Very delightful to see the success with together
58:08
success with together
58:08
success with together investment using our platform.
58:11
investment using our platform.
58:11
investment using our platform. How has the transition from SQL
58:13
How has the transition from SQL
58:13
How has the transition from SQL server to Cosmos DB impacted
58:17
server to Cosmos DB impacted
58:17
server to Cosmos DB impacted the performance and scalability
58:18
the performance and scalability
58:18
the performance and scalability of your app particularly
58:19
of your app particularly
58:19
of your app particularly during peak tax season?
58:21
during peak tax season?
58:21
during peak tax season? >> We still have many tax
58:23
>> We still have many tax
58:23
>> We still have many tax systems that still use SQL for
58:29
systems that still use SQL for
58:29
systems that still use SQL for critical operations.
58:29
critical operations.
58:29
critical operations. But we have modern tax platform
58:33
But we have modern tax platform
58:33
But we have modern tax platform systems that use Cosmos DB.
58:36
systems that use Cosmos DB.
58:36
systems that use Cosmos DB. Because of its high
58:39
Because of its high
58:39
Because of its high scalability, navigating peaks
58:40
scalability, navigating peaks
58:40
scalability, navigating peaks of the tax season is not that
58:43
of the tax season is not that
58:43
of the tax season is not that difficult anymore.
58:45
difficult anymore.
58:47
difficult anymore. We have supporting volumes,
58:49
We have supporting volumes,
58:50
We have supporting volumes, from 400 to 1 million depending
58:52
from 400 to 1 million depending
58:52
from 400 to 1 million depending on the scalability and also
58:55
on the scalability and also
58:55
on the scalability and also that enables us to prepare
58:56
that enables us to prepare
58:56
that enables us to prepare millions of tax returns during
58:58
millions of tax returns during
58:58
millions of tax returns during the very short period of time.
59:00
the very short period of time.
59:00
the very short period of time. It becomes really important to
59:02
It becomes really important to
59:02
It becomes really important to us to ensure that the
59:05
us to ensure that the
59:05
us to ensure that the flexibility and operational
59:06
flexibility and operational
59:06
flexibility and operational efficiency along with the
59:07
efficiency along with the
59:07
efficiency along with the scalability, make sure that the
59:11
scalability, make sure that the
59:11
scalability, make sure that the peak season goes without a
59:13
peak season goes without a
59:13
peak season goes without a hitch.
59:14
hitch.
59:14
hitch. So there are some things to pay
59:18
So there are some things to pay
59:18
So there are some things to pay attention to for scaling and
59:21
attention to for scaling and
59:21
attention to for scaling and partitioning but other than
59:24
partitioning but other than
59:24
partitioning but other than that when you are matured
59:25
that when you are matured
59:25
that when you are matured enough to do that, it all
59:26
enough to do that, it all
59:26
enough to do that, it all becomes part of the operations.
59:29
becomes part of the operations.
59:29
becomes part of the operations. >> That's great.
59:31
>> That's great.
59:31
>> That's great. And today is tax day.
59:34
And today is tax day.
59:35
And today is tax day. So this is the peak.
59:38
So this is the peak.
59:38
So this is the peak. How has cosmos been working out
59:39
How has cosmos been working out
59:39
How has cosmos been working out for you?
59:39
for you?
59:39
for you? >> It's been fantastic.
59:44
>> It's been fantastic.
59:44
>> It's been fantastic. We had a great tax season.
59:45
We had a great tax season.
59:45
We had a great tax season. We look forward to finishing it
59:46
We look forward to finishing it
59:49
We look forward to finishing it really strong.
59:49
really strong.
59:49
really strong. And as I mentioned, lots of
59:50
And as I mentioned, lots of
59:50
And as I mentioned, lots of things have come together.
59:52
things have come together.
59:52
things have come together. Focusing on quality and
59:54
Focusing on quality and
59:54
Focusing on quality and resiliency.
59:55
resiliency.
59:55
resiliency. Over the past several years, we
59:56
Over the past several years, we
59:56
Over the past several years, we have made sure that we serve
1:00:00
have made sure that we serve
1:00:00
have made sure that we serve our clients, tax and Associates
1:00:02
our clients, tax and Associates
1:00:02
our clients, tax and Associates through hard work.
1:00:06
through hard work.
1:00:06
through hard work. The associates always work and
1:00:08
The associates always work and
1:00:08
The associates always work and make sure that we serve our
1:00:09
make sure that we serve our
1:00:09
make sure that we serve our clients first.
1:00:10
clients first.
1:00:10
clients first. In order to do that, we need to
1:00:12
In order to do that, we need to
1:00:12
In order to do that, we need to have a very robust system in
1:00:17
have a very robust system in
1:00:17
have a very robust system in the cloud.
1:00:18
the cloud.
1:00:18
the cloud. That can serve them during
1:00:19
That can serve them during
1:00:19
That can serve them during peaks of the taxi especially
1:00:22
peaks of the taxi especially
1:00:22
peaks of the taxi especially April 15th.
1:00:23
April 15th.
1:00:23
April 15th. A couple of things I would like
1:00:24
A couple of things I would like
1:00:24
A couple of things I would like to mention is that when you
1:00:28
to mention is that when you
1:00:28
to mention is that when you look at some of the
1:00:32
look at some of the
1:00:32
look at some of the capabilities, one of the things
1:00:34
capabilities, one of the things
1:00:34
capabilities, one of the things that it has helped us do is
1:00:37
that it has helped us do is
1:00:37
that it has helped us do is streamline data-gathering
1:00:39
streamline data-gathering
1:00:40
streamline data-gathering processes.
1:00:40
processes.
1:00:40
processes. And that really helps our tax
1:00:44
And that really helps our tax
1:00:44
And that really helps our tax growth and engineering teams.
1:00:49
growth and engineering teams.
1:00:49
growth and engineering teams. And I'm really excited about
1:00:54
And I'm really excited about
1:00:54
And I'm really excited about looking ahead, all the
1:00:55
looking ahead, all the
1:00:55
looking ahead, all the capabilities that are recently
1:00:56
capabilities that are recently
1:00:56
capabilities that are recently part of the Cosmos DB feature
1:00:59
part of the Cosmos DB feature
1:00:59
part of the Cosmos DB feature list.
1:00:59
list.
1:00:59
list. Especially vector search and
1:01:02
Especially vector search and
1:01:02
Especially vector search and support, the auto indexing data,
1:01:08
support, the auto indexing data,
1:01:09
support, the auto indexing data, another thing that we are
1:01:10
another thing that we are
1:01:10
another thing that we are looking forward to.
1:01:11
looking forward to.
1:01:12
looking forward to. And real-time data.
1:01:15
And real-time data.
1:01:15
And real-time data. Four different capabilities
1:01:16
Four different capabilities
1:01:16
Four different capabilities that we are looking to
1:01:18
that we are looking to
1:01:18
that we are looking to experiment and in future
1:01:23
experiment and in future
1:01:23
experiment and in future hopefully.
1:01:23
hopefully.
1:01:23
hopefully. >> We are excited too.
1:01:26
>> We are excited too.
1:01:26
>> We are excited too. Thank you so much for joining
1:01:27
Thank you so much for joining
1:01:28
Thank you so much for joining our show and being our
1:01:28
our show and being our
1:01:29
our show and being our customer.
1:01:29
customer.
1:01:29
customer. >> Thank you.
1:01:30
>> Thank you.
1:01:30
>> Thank you. >> This was really great
1:01:32
>> This was really great
1:01:32
>> This was really great example, how Cosmos DB
1:01:33
example, how Cosmos DB
1:01:33
example, how Cosmos DB elasticity helps customers
1:01:35
elasticity helps customers
1:01:35
elasticity helps customers scale for the peak dynamic.
1:01:38
scale for the peak dynamic.
1:01:38
scale for the peak dynamic. No over provision of resources
1:01:41
No over provision of resources
1:01:41
No over provision of resources required.
1:01:41
required.
1:01:41
required. And help built in AI
1:01:42
And help built in AI
1:01:42
And help built in AI capabilities help H&R lock
1:01:47
capabilities help H&R lock
1:01:47
capabilities help H&R lock improve.
1:01:48
improve.
1:01:48
improve. We have only briefly touched
1:01:49
We have only briefly touched
1:01:49
We have only briefly touched the surface area of use cases
1:01:50
the surface area of use cases
1:01:50
the surface area of use cases today with Cosmos DB.
1:01:53
today with Cosmos DB.
1:01:53
today with Cosmos DB. I hope you will enjoy the
1:01:54
I hope you will enjoy the
1:01:54
I hope you will enjoy the conference and learned
1:01:55
conference and learned
1:01:55
conference and learned something new today.
1:01:56
something new today.
1:01:56
something new today. With that, let me invite Patty
1:01:59
With that, let me invite Patty
1:01:59
With that, let me invite Patty and Marko back on stage.
1:02:01
and Marko back on stage.
1:02:01
and Marko back on stage. >> Thank you, Kirill.
1:02:02
>> Thank you, Kirill.
1:02:03
>> Thank you, Kirill. This was amazing.
1:02:05
This was amazing.
1:02:05
This was amazing. Looking at the chat, we have
1:02:07
Looking at the chat, we have
1:02:07
Looking at the chat, we have some fans.
1:02:07
some fans.
1:02:07
some fans. We want to say hi from London,
1:02:13
We want to say hi from London,
1:02:13
We want to say hi from London, Kevin from Kenya, then we have
1:02:17
Kevin from Kenya, then we have
1:02:17
Kevin from Kenya, then we have from South Africa and from New
1:02:22
from South Africa and from New
1:02:22
from South Africa and from New York City.
1:02:23
York City.
1:02:23
York City. Hi there.
1:02:23
Hi there.
1:02:23
Hi there. I am glad that you guys are
1:02:25
I am glad that you guys are
1:02:25
I am glad that you guys are enjoying the show.
1:02:26
enjoying the show.
1:02:26
enjoying the show. And so Kirill, this was
1:02:30
And so Kirill, this was
1:02:30
And so Kirill, this was amazing.
1:02:30
amazing.
1:02:30
amazing. It was really interesting for
1:02:31
It was really interesting for
1:02:31
It was really interesting for me to see how DocuSign is
1:02:34
me to see how DocuSign is
1:02:34
me to see how DocuSign is storing all the documents and
1:02:36
storing all the documents and
1:02:36
storing all the documents and the metadata and summaries as
1:02:37
the metadata and summaries as
1:02:37
the metadata and summaries as well as the vector data in
1:02:39
well as the vector data in
1:02:39
well as the vector data in actual Cosmos DB . I am always
1:02:45
actual Cosmos DB . I am always
1:02:45
actual Cosmos DB . I am always really excited about real-time,
1:02:48
really excited about real-time,
1:02:48
really excited about real-time, anything real-time really.
1:02:52
anything real-time really.
1:02:52
anything real-time really. Really fantastic to see
1:02:53
Really fantastic to see
1:02:53
Really fantastic to see Andrew's demo and the
1:02:58
Andrew's demo and the
1:02:58
Andrew's demo and the improvements.
1:02:58
improvements.
1:02:58
improvements. Patty, what is your feedback
1:03:02
Patty, what is your feedback
1:03:02
Patty, what is your feedback about the keynote?
1:03:03
about the keynote?
1:03:03
about the keynote? >> First of all, Andrew's demo
1:03:05
>> First of all, Andrew's demo
1:03:05
>> First of all, Andrew's demo is amazing.
1:03:05
is amazing.
1:03:05
is amazing. Andrew always has great demos.
1:03:07
Andrew always has great demos.
1:03:07
Andrew always has great demos. I really love the H&R Block
1:03:11
I really love the H&R Block
1:03:11
I really love the H&R Block segment and I loved learning
1:03:12
segment and I loved learning
1:03:12
segment and I loved learning how dynamic scaling can help
1:03:13
how dynamic scaling can help
1:03:13
how dynamic scaling can help everybody do their taxes with
1:03:14
everybody do their taxes with
1:03:14
everybody do their taxes with reliability and ease while
1:03:17
reliability and ease while
1:03:17
reliability and ease while saving costs.
1:03:18
saving costs.
1:03:18
saving costs. >> By the way, Patty, have you
1:03:21
>> By the way, Patty, have you
1:03:21
>> By the way, Patty, have you done your taxes yet?
1:03:23
done your taxes yet?
1:03:24
done your taxes yet? >> No comment!
1:03:25
>> No comment!
1:03:25
>> No comment! But anyways.
1:03:25
But anyways.
1:03:25
But anyways. Let us know what you think.
1:03:29
Let us know what you think.
1:03:29
Let us know what you think. Please keep chatting, keep
1:03:33
Please keep chatting, keep
1:03:33
Please keep chatting, keep posting.
1:03:33
posting.
1:03:33
posting. >> We really want to hear your
1:03:34
>> We really want to hear your
1:03:35
>> We really want to hear your feedback.
1:03:35
feedback.
1:03:35
feedback. Please leave comments there.
1:03:37
Please leave comments there.
1:03:38
Please leave comments there. And also by the way, by the end
1:03:39
And also by the way, by the end
1:03:40
And also by the way, by the end of this day, this conference,
1:03:40
of this day, this conference,
1:03:41
of this day, this conference, we are also going to have a
1:03:42
we are also going to have a
1:03:42
we are also going to have a closing keynote delivered by
1:03:44
closing keynote delivered by
1:03:44
closing keynote delivered by H&R Block.
1:03:44
H&R Block.
1:03:45
H&R Block. So stay tuned.
1:03:46
So stay tuned.
1:03:46
So stay tuned. >> You're right.
1:03:50
>> You're right.
1:03:50
>> You're right. We have a lot of great talks
1:03:51
We have a lot of great talks
1:03:51
We have a lot of great talks coming up.
1:03:51
coming up.
1:03:51
coming up. First, let's hear from Andrew
1:03:52
First, let's hear from Andrew
1:03:52
First, let's hear from Andrew Evans from Carmax.
1:03:55
Evans from Carmax.
1:03:55
Evans from Carmax. >> I am the principal engineer
1:03:57
>> I am the principal engineer
1:03:57
>> I am the principal engineer at Carmax.
1:03:58
at Carmax.
1:03:58
at Carmax. And lead on a team that owns an
1:04:00
And lead on a team that owns an
1:04:00
And lead on a team that owns an appraisal application used
1:04:04
appraisal application used
1:04:04
appraisal application used nationwide.
1:04:04
nationwide.
1:04:04
nationwide. To appraise vehicles that we
1:04:05
To appraise vehicles that we
1:04:05
To appraise vehicles that we can buy from customers.
1:04:09
can buy from customers.
1:04:09
can buy from customers. My main responsibility is our
1:04:10
My main responsibility is our
1:04:10
My main responsibility is our production support and managing
1:04:13
production support and managing
1:04:14
production support and managing our team.
1:04:14
our team.
1:04:14
our team. My day-to-day role is as
1:04:15
My day-to-day role is as
1:04:15
My day-to-day role is as mentoring and supporting my
1:04:16
mentoring and supporting my
1:04:16
mentoring and supporting my team members as well as making
1:04:17
team members as well as making
1:04:17
team members as well as making difficult decisions for the
1:04:21
difficult decisions for the
1:04:21
difficult decisions for the application.
1:04:22
application.
1:04:24
application. We are using Cosmos DB to track
1:04:25
We are using Cosmos DB to track
1:04:25
We are using Cosmos DB to track appraisal data in our
1:04:28
appraisal data in our
1:04:28
appraisal data in our application.
1:04:28
application.
1:04:28
application. Appraisals are how we value
1:04:29
Appraisals are how we value
1:04:29
Appraisals are how we value vehicles that we intake.
1:04:30
vehicles that we intake.
1:04:30
vehicles that we intake. The appraisals provide how we
1:04:33
The appraisals provide how we
1:04:33
The appraisals provide how we control the stress purchase
1:04:37
control the stress purchase
1:04:37
control the stress purchase those.
1:04:37
those.
1:04:37
those. We use collections in Cosmos DB
1:04:38
We use collections in Cosmos DB
1:04:38
We use collections in Cosmos DB to store the data as it moves
1:04:45
to store the data as it moves
1:04:45
to store the data as it moves through.
1:04:49
through.
1:04:50
through. My team has had a good
1:04:51
My team has had a good
1:04:51
My team has had a good experience with Cosmos DB.
1:04:52
experience with Cosmos DB.
1:04:52
experience with Cosmos DB. We have found that it is easy
1:04:53
We have found that it is easy
1:04:53
We have found that it is easy to interact with and used to
1:04:56
to interact with and used to
1:04:56
to interact with and used to query our application data.
1:04:57
query our application data.
1:04:57
query our application data. We also use Cosmos DB in
1:04:58
We also use Cosmos DB in
1:04:59
We also use Cosmos DB in conjunction with other services
1:04:59
conjunction with other services
1:04:59
conjunction with other services in Azure . I have personally
1:05:01
in Azure . I have personally
1:05:01
in Azure . I have personally utilized the Azure Cosmos DB
1:05:08
utilized the Azure Cosmos DB
1:05:09
utilized the Azure Cosmos DB for queries and updates on data
1:05:10
for queries and updates on data
1:05:10
for queries and updates on data at Carmax.
1:05:10
at Carmax.
1:05:10
at Carmax. In my previous presentation, I
1:05:11
In my previous presentation, I
1:05:11
In my previous presentation, I presented how we utilized
1:05:12
presented how we utilized
1:05:12
presented how we utilized scripts to automate
1:05:13
scripts to automate
1:05:13
scripts to automate interactions with cosmos DB.
1:05:14
interactions with cosmos DB.
1:05:14
interactions with cosmos DB. A great way to interact with
1:05:16
A great way to interact with
1:05:16
A great way to interact with the data.
1:05:16
the data.
1:05:17
the data. >> Thank you, Carmax and Andrew
1:05:18
>> Thank you, Carmax and Andrew
1:05:18
>> Thank you, Carmax and Andrew Evans.
1:05:18
Evans.
1:05:18
Evans. Really interesting to see how
1:05:19
Really interesting to see how
1:05:19
Really interesting to see how they interact with data to
1:05:22
they interact with data to
1:05:22
they interact with data to improve their business.
1:05:25
improve their business.
1:05:25
improve their business. To me, it's always fun to hear
1:05:28
To me, it's always fun to hear
1:05:28
To me, it's always fun to hear how customers are implementing
1:05:30
how customers are implementing
1:05:31
how customers are implementing application with other
1:05:36
application with other
1:05:36
application with other services.
1:05:36
services.
1:05:36
services. And personally I am also a big
1:05:41
And personally I am also a big
1:05:41
And personally I am also a big fan of Python, so it was great
1:05:42
fan of Python, so it was great
1:05:43
fan of Python, so it was great to hear they're using Python
1:05:45
to hear they're using Python
1:05:45
to hear they're using Python SDK.
1:05:46
SDK.
1:05:46
SDK. I want to remind you of the CTA
1:05:49
I want to remind you of the CTA
1:05:49
I want to remind you of the CTA and everything going on right
1:05:53
and everything going on right
1:05:53
and everything going on right now.
1:05:53
now.
1:05:53
now. So please leave your comments
1:05:54
So please leave your comments
1:05:54
So please leave your comments in the YouTube chat, go to the
1:05:55
in the YouTube chat, go to the
1:05:56
in the YouTube chat, go to the resources page and please,
1:06:01
resources page and please,
1:06:01
resources page and please, please, please leave us
1:06:01
please, please leave us
1:06:02
please, please leave us feedback using the evaluation
1:06:02
feedback using the evaluation
1:06:02
feedback using the evaluation form.
1:06:02
form.
1:06:03
form. And also, please use the
1:06:03
And also, please use the
1:06:04
And also, please use the hashtag Azure Cosmos DB on
1:06:06
hashtag Azure Cosmos DB on
1:06:06
hashtag Azure Cosmos DB on social.
1:06:06
social.
1:06:06
social. You will be able to find all
1:06:09
You will be able to find all
1:06:09
You will be able to find all the talks on demand.
1:06:14
the talks on demand.
1:06:14
the talks on demand. Patty, what is going to happen
1:06:15
Patty, what is going to happen
1:06:15
Patty, what is going to happen next?
1:06:15
next?
1:06:15
next? >> We have a great start to the
1:06:17
>> We have a great start to the
1:06:17
>> We have a great start to the conference.
1:06:17
conference.
1:06:17
conference. But now, Dr. James from our
1:06:18
But now, Dr. James from our
1:06:18
But now, Dr. James from our team will show us how he
1:06:23
team will show us how he
1:06:23
team will show us how he planning scale AI.
1:06:24
planning scale AI.
1:06:24
planning scale AI. Let's take a look.
1:06:26
Let's take a look.
1:06:27
Let's take a look. >> I am a product manager in
1:06:28
>> I am a product manager in
1:06:28
>> I am a product manager in Azure Cosmos DB.
1:06:30
Azure Cosmos DB.
1:06:30
Azure Cosmos DB. Today, we will talk about how
1:06:31
Today, we will talk about how
1:06:32
Today, we will talk about how Microsoft powers semantic
1:06:35
Microsoft powers semantic
1:06:35
Microsoft powers semantic similarity search with some of
1:06:36
similarity search with some of
1:06:36
similarity search with some of the largest applications in the
1:06:37
the largest applications in the
1:06:37
the largest applications in the world using Microsoft a unique
1:06:39
world using Microsoft a unique
1:06:40
world using Microsoft a unique vector index developed right
1:06:40
vector index developed right
1:06:41
vector index developed right here at Microsoft.
1:06:43
here at Microsoft.
1:06:43
here at Microsoft. Before we get started, let's
1:06:44
Before we get started, let's
1:06:44
Before we get started, let's have a quick recap of what
1:06:50
have a quick recap of what
1:06:50
have a quick recap of what approximate nearest neighbor
1:06:50
approximate nearest neighbor
1:06:50
approximate nearest neighbor search is with vector search.
1:06:51
search is with vector search.
1:06:51
search is with vector search. Imagine you have a database
1:06:52
Imagine you have a database
1:06:52
Imagine you have a database with hundreds of thousands or
1:06:53
with hundreds of thousands or
1:06:53
with hundreds of thousands or even billions of documents.
1:06:54
even billions of documents.
1:06:54
even billions of documents. You create representations of
1:06:55
You create representations of
1:06:55
You create representations of these data using an A.I.
1:06:56
these data using an A.I.
1:06:56
these data using an A.I. model like one from June 24.
1:07:01
model like one from June 24.
1:07:01
model like one from June 24. You can have a query or user
1:07:08
You can have a query or user
1:07:08
You can have a query or user question and conduct search
1:07:09
question and conduct search
1:07:09
question and conduct search against all of those vector
1:07:10
against all of those vector
1:07:10
against all of those vector points to find the documents
1:07:11
points to find the documents
1:07:11
points to find the documents that are most in line with that
1:07:13
that are most in line with that
1:07:13
that are most in line with that question.
1:07:13
question.
1:07:13
question. You might want to do an exact
1:07:15
You might want to do an exact
1:07:15
You might want to do an exact search over all documents in
1:07:17
search over all documents in
1:07:17
search over all documents in the database but this becomes
1:07:21
the database but this becomes
1:07:21
the database but this becomes really slow.
1:07:22
really slow.
1:07:22
really slow. Instead, we use approximate
1:07:22
Instead, we use approximate
1:07:22
Instead, we use approximate methods and approximate nearest
1:07:24
methods and approximate nearest
1:07:24
methods and approximate nearest neighbor search.
1:07:25
neighbor search.
1:07:25
neighbor search. And make a trade-off between
1:07:26
And make a trade-off between
1:07:26
And make a trade-off between the recall and accuracy and the
1:07:29
the recall and accuracy and the
1:07:29
the recall and accuracy and the speed of the search.
1:07:31
speed of the search.
1:07:31
speed of the search. Now, in Microsoft there is a
1:07:33
Now, in Microsoft there is a
1:07:33
Now, in Microsoft there is a lot of really unique scenarios.
1:07:38
lot of really unique scenarios.
1:07:38
lot of really unique scenarios. There is between the cloud
1:07:40
There is between the cloud
1:07:40
There is between the cloud environment or cloud
1:07:40
environment or cloud
1:07:40
environment or cloud implications from web search
1:07:41
implications from web search
1:07:41
implications from web search and ads and recommendations to
1:07:44
and ads and recommendations to
1:07:44
and ads and recommendations to enterprise scale email search
1:07:48
enterprise scale email search
1:07:48
enterprise scale email search and Outlook.
1:07:48
and Outlook.
1:07:48
and Outlook. Document search and even
1:07:49
Document search and even
1:07:49
Document search and even applications like Windows
1:07:51
applications like Windows
1:07:51
applications like Windows copilot.
1:07:51
copilot.
1:07:51
copilot. There is a variety of different
1:07:53
There is a variety of different
1:07:53
There is a variety of different index sizes which means that we
1:07:54
index sizes which means that we
1:07:56
index sizes which means that we have to be able to search
1:07:59
have to be able to search
1:07:59
have to be able to search efficiently no matter what the
1:08:00
efficiently no matter what the
1:08:00
efficiently no matter what the size or scale the application
1:08:05
size or scale the application
1:08:05
size or scale the application or use case.
1:08:06
or use case.
1:08:06
or use case. Many of these also experienced
1:08:07
Many of these also experienced
1:08:07
Many of these also experienced tons and tons of updates.
1:08:08
tons and tons of updates.
1:08:08
tons and tons of updates. Insertions or deletions of
1:08:13
Insertions or deletions of
1:08:13
Insertions or deletions of vectors into the index itself.
1:08:14
vectors into the index itself.
1:08:14
vectors into the index itself. We need a solution that is able
1:08:16
We need a solution that is able
1:08:16
We need a solution that is able to provide robust results and
1:08:18
to provide robust results and
1:08:18
to provide robust results and high accuracy even when those
1:08:19
high accuracy even when those
1:08:19
high accuracy even when those modifications to the index
1:08:23
modifications to the index
1:08:23
modifications to the index itself.
1:08:23
itself.
1:08:23
itself. And finally, we need to be able
1:08:25
And finally, we need to be able
1:08:25
And finally, we need to be able to have really low latency
1:08:26
to have really low latency
1:08:26
to have really low latency search and handle high
1:08:27
search and handle high
1:08:27
search and handle high frequency of these map--
1:08:33
frequency of these map--
1:08:33
frequency of these map-- massively popular applications.
1:08:33
massively popular applications.
1:08:34
massively popular applications. This has been a challenge for a
1:08:35
This has been a challenge for a
1:08:35
This has been a challenge for a lot of vector indexing
1:08:36
lot of vector indexing
1:08:36
lot of vector indexing technologies.
1:08:41
technologies.
1:08:41
technologies. The demands on Microsoft
1:08:42
The demands on Microsoft
1:08:42
The demands on Microsoft spurred the need for a new type
1:08:44
spurred the need for a new type
1:08:44
spurred the need for a new type of vector index.
1:08:44
of vector index.
1:08:44
of vector index. This started the project.
1:08:46
This started the project.
1:08:46
This started the project. Aims to solve multiple
1:08:48
Aims to solve multiple
1:08:48
Aims to solve multiple problems.
1:08:48
problems.
1:08:48
problems. The first is that traditional
1:08:53
The first is that traditional
1:08:53
The first is that traditional victory that just vector index
1:08:54
victory that just vector index
1:08:54
victory that just vector index is need a lot of memory.
1:08:59
is need a lot of memory.
1:09:00
is need a lot of memory. DiskANN leverages compressed
1:09:00
DiskANN leverages compressed
1:09:00
DiskANN leverages compressed vectors that are stored in an
1:09:01
vectors that are stored in an
1:09:01
vectors that are stored in an uncompressed vectors on high-
1:09:04
uncompressed vectors on high-
1:09:04
uncompressed vectors on high- speed SSD's to be able to do
1:09:06
speed SSD's to be able to do
1:09:06
speed SSD's to be able to do cost-effective vector scratch
1:09:08
cost-effective vector scratch
1:09:09
cost-effective vector scratch at any scale.
1:09:10
at any scale.
1:09:10
at any scale. A lot of updates, insertions,
1:09:15
A lot of updates, insertions,
1:09:15
A lot of updates, insertions, modifications and deletions to
1:09:16
modifications and deletions to
1:09:16
modifications and deletions to the vector index.
1:09:18
the vector index.
1:09:18
the vector index. Tend to make the performance
1:09:24
Tend to make the performance
1:09:25
Tend to make the performance degree. That is the accuracy
1:09:26
degree. That is the accuracy
1:09:26
degree. That is the accuracy can degrade over time.
1:09:26
can degrade over time.
1:09:27
can degrade over time. So we typically require a full
1:09:28
So we typically require a full
1:09:28
So we typically require a full index rebuild which can also be
1:09:29
index rebuild which can also be
1:09:29
index rebuild which can also be expensive and take time.
1:09:31
expensive and take time.
1:09:31
expensive and take time. The third problem is most
1:09:32
The third problem is most
1:09:32
The third problem is most vector indexes are not designed
1:09:35
vector indexes are not designed
1:09:35
vector indexes are not designed for filtered or hybrid queries.
1:09:38
for filtered or hybrid queries.
1:09:39
for filtered or hybrid queries. So this could result in low
1:09:40
So this could result in low
1:09:40
So this could result in low recall or high complexity or
1:09:44
recall or high complexity or
1:09:44
recall or high complexity or latency.
1:09:49
latency.
1:09:49
latency. Incomes Microsoft DiskANN.
1:09:50
Incomes Microsoft DiskANN.
1:09:50
Incomes Microsoft DiskANN. A technology that was developed
1:09:51
A technology that was developed
1:09:51
A technology that was developed at Microsoft research and we
1:09:53
at Microsoft research and we
1:09:53
at Microsoft research and we are really excited it is in
1:09:54
are really excited it is in
1:09:54
are really excited it is in Azure Cosmos DB and generally
1:09:56
Azure Cosmos DB and generally
1:09:56
Azure Cosmos DB and generally available for Dexter-- vector
1:10:03
available for Dexter-- vector
1:10:03
available for Dexter-- vector indexing capabilities.
1:10:03
indexing capabilities.
1:10:03
indexing capabilities. When you insert vectors into
1:10:04
When you insert vectors into
1:10:04
When you insert vectors into Azure Cosmos DB we have
1:10:05
Azure Cosmos DB we have
1:10:05
Azure Cosmos DB we have compressed vectors through and
1:10:06
compressed vectors through and
1:10:06
compressed vectors through and these are kept in RAM of the
1:10:10
these are kept in RAM of the
1:10:10
these are kept in RAM of the Cosmos DB for faxed access.
1:10:15
Cosmos DB for faxed access.
1:10:15
Cosmos DB for faxed access. Used to create a complex graft
1:10:17
Used to create a complex graft
1:10:17
Used to create a complex graft data structure.
1:10:21
data structure.
1:10:21
data structure. These are stored on high-speed
1:10:22
These are stored on high-speed
1:10:22
These are stored on high-speed SSD's which make up the
1:10:23
SSD's which make up the
1:10:23
SSD's which make up the backbone of the Azure Cosmos DB
1:10:29
backbone of the Azure Cosmos DB
1:10:29
backbone of the Azure Cosmos DB architecture.
1:10:29
architecture.
1:10:30
architecture. Make it really efficient at
1:10:30
Make it really efficient at
1:10:31
Make it really efficient at building the graph and also
1:10:37
building the graph and also
1:10:37
building the graph and also it's very easy and cost-
1:10:38
it's very easy and cost-
1:10:38
it's very easy and cost- effective to search and has
1:10:38
effective to search and has
1:10:39
effective to search and has fast convergence of search.
1:10:39
fast convergence of search.
1:10:39
fast convergence of search. So combined, this makes vector
1:10:44
So combined, this makes vector
1:10:44
So combined, this makes vector search very cost-effective.
1:10:47
search very cost-effective.
1:10:47
search very cost-effective. It leverages the unlimited
1:10:48
It leverages the unlimited
1:10:48
It leverages the unlimited scale capacity of cosmos DB as
1:10:50
scale capacity of cosmos DB as
1:10:50
scale capacity of cosmos DB as well, providing low latency
1:10:52
well, providing low latency
1:10:52
well, providing low latency robust vector search at scale.
1:10:58
robust vector search at scale.
1:10:59
robust vector search at scale. Now Azure Cosmos DB is actually
1:11:00
Now Azure Cosmos DB is actually
1:11:00
Now Azure Cosmos DB is actually very well-suited for vector
1:11:04
very well-suited for vector
1:11:04
very well-suited for vector search scenarios.
1:11:04
search scenarios.
1:11:04
search scenarios. It offers very flexible data
1:11:06
It offers very flexible data
1:11:06
It offers very flexible data model, you don't have to figure-
1:11:08
model, you don't have to figure-
1:11:08
model, you don't have to figure- - worry about a fixed schema.
1:11:12
- worry about a fixed schema.
1:11:12
- worry about a fixed schema. We have tons of customers
1:11:13
We have tons of customers
1:11:14
We have tons of customers storing history, user
1:11:15
storing history, user
1:11:15
storing history, user interactions, but also e-
1:11:17
interactions, but also e-
1:11:17
interactions, but also e- commerce data.
1:11:18
commerce data.
1:11:18
commerce data. Transactional data, operational
1:11:20
Transactional data, operational
1:11:20
Transactional data, operational data from PDFs and images of
1:11:24
data from PDFs and images of
1:11:24
data from PDFs and images of operational data from other
1:11:26
operational data from other
1:11:26
operational data from other applications.
1:11:26
applications.
1:11:26
applications. So there is really a lot of
1:11:29
So there is really a lot of
1:11:29
So there is really a lot of flexibility.
1:11:29
flexibility.
1:11:29
flexibility. Furthermore, Azure Cosmos DB
1:11:33
Furthermore, Azure Cosmos DB
1:11:33
Furthermore, Azure Cosmos DB for no SQL is enterprise ready.
1:11:35
for no SQL is enterprise ready.
1:11:35
for no SQL is enterprise ready. High elasticity and hyper
1:11:37
High elasticity and hyper
1:11:37
High elasticity and hyper scale.
1:11:38
scale.
1:11:39
scale. Low latency reads and writes.
1:11:42
Low latency reads and writes.
1:11:42
Low latency reads and writes. Continuous store for disaster
1:11:47
Continuous store for disaster
1:11:47
Continuous store for disaster recovery.
1:11:47
recovery.
1:11:47
recovery. Multi-region replication and
1:11:48
Multi-region replication and
1:11:48
Multi-region replication and also all the security features
1:11:49
also all the security features
1:11:49
also all the security features you have come to know and love
1:11:52
you have come to know and love
1:11:52
you have come to know and love from Azure such as virtual
1:11:53
from Azure such as virtual
1:11:53
from Azure such as virtual networks and customer
1:11:56
networks and customer
1:11:56
networks and customer management.
1:11:56
management.
1:11:56
management. Cosmos DB also features a lot
1:11:59
Cosmos DB also features a lot
1:11:59
Cosmos DB also features a lot of usability and functional
1:12:01
of usability and functional
1:12:01
of usability and functional deployment methods that make it
1:12:03
deployment methods that make it
1:12:03
deployment methods that make it really powerful for any
1:12:04
really powerful for any
1:12:05
really powerful for any application to develop.
1:12:08
application to develop.
1:12:08
application to develop. From a serverless model so pay-
1:12:09
From a serverless model so pay-
1:12:09
From a serverless model so pay- as-you-go or pay as you use to
1:12:12
as-you-go or pay as you use to
1:12:13
as-you-go or pay as you use to provisional model with instant
1:12:13
provisional model with instant
1:12:14
provisional model with instant and dynamic capabilities.
1:12:17
and dynamic capabilities.
1:12:17
and dynamic capabilities. It also features many levels of
1:12:20
It also features many levels of
1:12:20
It also features many levels of built in multi-tenancy.
1:12:25
built in multi-tenancy.
1:12:25
built in multi-tenancy. And also offers multiple
1:12:27
And also offers multiple
1:12:27
And also offers multiple consistency levels.
1:12:27
consistency levels.
1:12:27
consistency levels. Combined, Azure Cosmos DB for
1:12:30
Combined, Azure Cosmos DB for
1:12:30
Combined, Azure Cosmos DB for no SQL is the best vector
1:12:35
no SQL is the best vector
1:12:35
no SQL is the best vector score-- store for any
1:12:40
score-- store for any
1:12:40
score-- store for any application needs.
1:12:40
application needs.
1:12:41
application needs. Being able to store your vector
1:12:42
Being able to store your vector
1:12:42
Being able to store your vector index and vectors together with
1:12:43
index and vectors together with
1:12:43
index and vectors together with original data is a game
1:12:44
original data is a game
1:12:44
original data is a game changer.
1:12:44
changer.
1:12:44
changer. It removes the need to your
1:12:54
It removes the need to your
1:12:54
It removes the need to your metadata into a dedicated
1:12:55
metadata into a dedicated
1:12:55
metadata into a dedicated vector database.
1:12:55
vector database.
1:12:55
vector database. You can keep your vectors and
1:12:56
You can keep your vectors and
1:12:56
You can keep your vectors and data together and it will
1:12:57
data together and it will
1:12:57
data together and it will simplify your application
1:12:58
simplify your application
1:12:58
simplify your application architecture and reduce cost.
1:12:59
architecture and reduce cost.
1:12:59
architecture and reduce cost. Because of the flexibility of
1:13:00
Because of the flexibility of
1:13:00
Because of the flexibility of cosmos DB query syntax you can
1:13:01
cosmos DB query syntax you can
1:13:01
cosmos DB query syntax you can add any filters that you like.
1:13:07
add any filters that you like.
1:13:07
add any filters that you like. To your vector searches.
1:13:08
To your vector searches.
1:13:09
To your vector searches. Perform filtered vector search
1:13:10
Perform filtered vector search
1:13:10
Perform filtered vector search at any scale.
1:13:14
at any scale.
1:13:14
at any scale. We also offer multiple vector
1:13:17
We also offer multiple vector
1:13:17
We also offer multiple vector indexing options from flat or
1:13:19
indexing options from flat or
1:13:19
indexing options from flat or exact search, quantized flat
1:13:21
exact search, quantized flat
1:13:21
exact search, quantized flat and then finally the DiskANN
1:13:25
and then finally the DiskANN
1:13:25
and then finally the DiskANN index which is really great
1:13:27
index which is really great
1:13:28
index which is really great from index at scale.
1:13:29
from index at scale.
1:13:29
from index at scale. And we have thousands of
1:13:32
And we have thousands of
1:13:32
And we have thousands of customers today holding a
1:13:32
customers today holding a
1:13:33
customers today holding a diverse range of scenarios.
1:13:33
diverse range of scenarios.
1:13:33
diverse range of scenarios. All powered by data in Cosmos
1:13:39
All powered by data in Cosmos
1:13:39
All powered by data in Cosmos DB.
1:13:40
DB.
1:13:40
DB. Storing operational and vector
1:13:40
Storing operational and vector
1:13:40
Storing operational and vector data together is a huge value
1:13:42
data together is a huge value
1:13:42
data together is a huge value proposition for these
1:13:44
proposition for these
1:13:44
proposition for these customers.
1:13:44
customers.
1:13:44
customers. Built on top of this, many
1:13:49
Built on top of this, many
1:13:49
Built on top of this, many customers retrieve next-
1:13:49
customers retrieve next-
1:13:49
customers retrieve next- generation leveraging Victor
1:13:54
generation leveraging Victor
1:13:54
generation leveraging Victor similarity search.
1:13:55
similarity search.
1:13:55
similarity search. Cosmos DB is also very popular
1:13:56
Cosmos DB is also very popular
1:13:56
Cosmos DB is also very popular as a conversational history
1:13:58
as a conversational history
1:13:58
as a conversational history store for a conversational
1:13:59
store for a conversational
1:13:59
store for a conversational context and for LLM
1:14:05
context and for LLM
1:14:05
context and for LLM optimization.
1:14:06
optimization.
1:14:06
optimization. This builds on these two
1:14:07
This builds on these two
1:14:07
This builds on these two concepts were you are storing
1:14:08
concepts were you are storing
1:14:08
concepts were you are storing conversational history and you
1:14:10
conversational history and you
1:14:10
conversational history and you can leverage previous responses
1:14:13
can leverage previous responses
1:14:13
can leverage previous responses using a simple vector search
1:14:14
using a simple vector search
1:14:14
using a simple vector search rather than feeding more data
1:14:16
rather than feeding more data
1:14:16
rather than feeding more data to the large language model.
1:14:18
to the large language model.
1:14:18
to the large language model. This saves you in consumption
1:14:24
This saves you in consumption
1:14:25
This saves you in consumption cost so cost your large liquid
1:14:26
cost so cost your large liquid
1:14:26
cost so cost your large liquid model which reduce overall cost
1:14:27
model which reduce overall cost
1:14:27
model which reduce overall cost and can save on the latency in
1:14:28
and can save on the latency in
1:14:28
and can save on the latency in your applications.
1:14:29
your applications.
1:14:29
your applications. And of course, all of these are
1:14:31
And of course, all of these are
1:14:31
And of course, all of these are very applicable to AI agents as
1:14:35
very applicable to AI agents as
1:14:35
very applicable to AI agents as well.
1:14:35
well.
1:14:35
well. They need to retrieve data,
1:14:36
They need to retrieve data,
1:14:36
They need to retrieve data, store data, need to save a
1:14:41
store data, need to save a
1:14:41
store data, need to save a checkpoint for the agent and
1:14:46
checkpoint for the agent and
1:14:46
checkpoint for the agent and agent applications.
1:14:46
agent applications.
1:14:46
agent applications. So Cosmos DB is a great storage
1:14:49
So Cosmos DB is a great storage
1:14:49
So Cosmos DB is a great storage layer for these transactional
1:14:50
layer for these transactional
1:14:50
layer for these transactional workloads as well as for
1:14:53
workloads as well as for
1:14:53
workloads as well as for retrieval.
1:14:53
retrieval.
1:14:53
retrieval. Let's take a look at some
1:14:55
Let's take a look at some
1:14:55
Let's take a look at some examples of vector search in
1:14:58
examples of vector search in
1:14:58
examples of vector search in practice in Cosmos DB.
1:15:02
practice in Cosmos DB.
1:15:02
practice in Cosmos DB. Executing a vector search is
1:15:03
Executing a vector search is
1:15:03
Executing a vector search is really simple.
1:15:04
really simple.
1:15:05
really simple. As I mentioned, part of our
1:15:08
As I mentioned, part of our
1:15:08
As I mentioned, part of our query syntax.
1:15:08
query syntax.
1:15:08
query syntax. So performing a simple vector
1:15:09
So performing a simple vector
1:15:09
So performing a simple vector search is pretty easy.
1:15:13
search is pretty easy.
1:15:13
search is pretty easy. In this example query, I am
1:15:14
In this example query, I am
1:15:14
In this example query, I am selecting the top 10 most
1:15:18
selecting the top 10 most
1:15:18
selecting the top 10 most similar documents projecting a
1:15:19
similar documents projecting a
1:15:19
similar documents projecting a name field.
1:15:19
name field.
1:15:19
name field. Also projecting Victor
1:15:24
Also projecting Victor
1:15:24
Also projecting Victor similarity.
1:15:25
similarity.
1:15:25
similarity. So I am giving score as an
1:15:26
So I am giving score as an
1:15:26
So I am giving score as an alias.
1:15:26
alias.
1:15:26
alias. And I am ordering by vector
1:15:30
And I am ordering by vector
1:15:30
And I am ordering by vector distance.
1:15:30
distance.
1:15:30
distance. That's really important.
1:15:32
That's really important.
1:15:32
That's really important. This sorts the results in order
1:15:36
This sorts the results in order
1:15:36
This sorts the results in order of the similarity score from
1:15:37
of the similarity score from
1:15:37
of the similarity score from most at the top to least
1:15:38
most at the top to least
1:15:41
most at the top to least similar down below.
1:15:42
similar down below.
1:15:42
similar down below. If I want to do a filtered
1:15:44
If I want to do a filtered
1:15:44
If I want to do a filtered vector search, I can just add
1:15:45
vector search, I can just add
1:15:45
vector search, I can just add aware clause just as I would in
1:15:46
aware clause just as I would in
1:15:46
aware clause just as I would in any other query.
1:15:48
any other query.
1:15:48
any other query. It is just that simple.
1:15:51
It is just that simple.
1:15:51
It is just that simple. I can even do customized
1:15:56
I can even do customized
1:15:57
I can even do customized search.
1:15:57
search.
1:15:57
search. So I could in this example
1:15:59
So I could in this example
1:15:59
So I could in this example select the top 10 documents and
1:16:04
select the top 10 documents and
1:16:04
select the top 10 documents and go to project all properties of
1:16:05
go to project all properties of
1:16:05
go to project all properties of those documents.
1:16:05
those documents.
1:16:06
those documents. I will add a filter as well,
1:16:08
I will add a filter as well,
1:16:08
I will add a filter as well, giving the property that
1:16:11
giving the property that
1:16:11
giving the property that contains the vectors of my
1:16:14
contains the vectors of my
1:16:14
contains the vectors of my documents.
1:16:14
documents.
1:16:14
documents. Also giving the query vector
1:16:17
Also giving the query vector
1:16:17
Also giving the query vector that I want to compare against.
1:16:19
that I want to compare against.
1:16:19
that I want to compare against. I am saying false or true here,
1:16:24
I am saying false or true here,
1:16:24
I am saying false or true here, false means that I will use the
1:16:26
false means that I will use the
1:16:26
false means that I will use the vector index and true means I
1:16:27
vector index and true means I
1:16:27
vector index and true means I want exact search.
1:16:27
want exact search.
1:16:27
want exact search. And defining search list size
1:16:31
And defining search list size
1:16:31
And defining search list size multiplier.
1:16:31
multiplier.
1:16:31
multiplier. The hyper perimeter of my
1:16:33
The hyper perimeter of my
1:16:33
The hyper perimeter of my search.
1:16:33
search.
1:16:33
search. Basically if I want my search
1:16:36
Basically if I want my search
1:16:36
Basically if I want my search to execute faster, I can lower
1:16:37
to execute faster, I can lower
1:16:38
to execute faster, I can lower this number.
1:16:38
this number.
1:16:38
this number. If I want I search to be more
1:16:42
If I want I search to be more
1:16:42
If I want I search to be more accurate, I can increase this
1:16:43
accurate, I can increase this
1:16:43
accurate, I can increase this number.
1:16:43
number.
1:16:43
number. This finds more candidate
1:16:45
This finds more candidate
1:16:45
This finds more candidate vectors in the vector search
1:16:48
vectors in the vector search
1:16:48
vectors in the vector search itself.
1:16:48
itself.
1:16:49
itself. So there is that trade-off.
1:16:52
So there is that trade-off.
1:16:52
So there is that trade-off. There is always a trade-off
1:16:53
There is always a trade-off
1:16:53
There is always a trade-off between latency and accuracy.
1:16:57
between latency and accuracy.
1:16:57
between latency and accuracy. So this is a really easy
1:16:58
So this is a really easy
1:16:58
So this is a really easy parameter for me to tune if I
1:17:01
parameter for me to tune if I
1:17:01
parameter for me to tune if I want more accuracy in my search
1:17:02
want more accuracy in my search
1:17:02
want more accuracy in my search or maybe a little bit lower
1:17:03
or maybe a little bit lower
1:17:03
or maybe a little bit lower latency as well.
1:17:06
latency as well.
1:17:06
latency as well. Now let's take a look at some
1:17:09
Now let's take a look at some
1:17:09
Now let's take a look at some numbers.
1:17:10
numbers.
1:17:10
numbers. So these charts show query
1:17:14
So these charts show query
1:17:14
So these charts show query latency.
1:17:14
latency.
1:17:14
latency. For vector search on the
1:17:18
For vector search on the
1:17:18
For vector search on the Wikipedia data set.
1:17:20
Wikipedia data set.
1:17:20
Wikipedia data set. These are 768 vector that are
1:17:23
These are 768 vector that are
1:17:23
These are 768 vector that are created from the coherent.
1:17:27
created from the coherent.
1:17:27
created from the coherent. On the left, we can see the
1:17:29
On the left, we can see the
1:17:29
On the left, we can see the latency.
1:17:31
latency.
1:17:31
latency. So milliseconds on the Y-axis.
1:17:33
So milliseconds on the Y-axis.
1:17:33
So milliseconds on the Y-axis. And then the P 50, P 95 and P
1:17:36
And then the P 50, P 95 and P
1:17:36
And then the P 50, P 95 and P 99 latencies here.
1:17:39
99 latencies here.
1:17:39
99 latencies here. We can see different scenarios
1:17:41
We can see different scenarios
1:17:41
We can see different scenarios as well.
1:17:42
as well.
1:17:42
as well. For 100,000 vectors, 1 million
1:17:44
For 100,000 vectors, 1 million
1:17:44
For 100,000 vectors, 1 million vectors and 10 million vectors.
1:17:47
vectors and 10 million vectors.
1:17:47
vectors and 10 million vectors. So what's really interesting is
1:17:48
So what's really interesting is
1:17:48
So what's really interesting is we can see that the vector
1:17:53
we can see that the vector
1:17:53
we can see that the vector search is the latency is quite
1:17:55
search is the latency is quite
1:17:55
search is the latency is quite low, 10 million in 40 lichens--
1:17:59
low, 10 million in 40 lichens--
1:17:59
low, 10 million in 40 lichens-- milliseconds is really amazing.
1:18:01
milliseconds is really amazing.
1:18:01
milliseconds is really amazing. We can see the corresponding
1:18:03
We can see the corresponding
1:18:03
We can see the corresponding requesting.
1:18:07
requesting.
1:18:07
requesting. So we, the P 99 level we have
1:18:11
So we, the P 99 level we have
1:18:11
So we, the P 99 level we have 100,000 vectors, a search on
1:18:14
100,000 vectors, a search on
1:18:14
100,000 vectors, a search on this cost about 30.
1:18:15
this cost about 30.
1:18:15
this cost about 30. And at the 10 million scale
1:18:18
And at the 10 million scale
1:18:18
And at the 10 million scale cost about a little over 70.
1:18:20
cost about a little over 70.
1:18:20
cost about a little over 70. We are going like 100 times
1:18:22
We are going like 100 times
1:18:22
We are going like 100 times more vectors that we are
1:18:23
more vectors that we are
1:18:23
more vectors that we are searching against and yet the
1:18:25
searching against and yet the
1:18:25
searching against and yet the query cost only doubled, only
1:18:29
query cost only doubled, only
1:18:29
query cost only doubled, only practically doubles.
1:18:30
practically doubles.
1:18:30
practically doubles. This is really amazing.
1:18:32
This is really amazing.
1:18:33
This is really amazing. We can be really robust and
1:18:35
We can be really robust and
1:18:35
We can be really robust and very large-scale vector
1:18:40
very large-scale vector
1:18:40
very large-scale vector scourges best researchers.
1:18:40
scourges best researchers.
1:18:40
scourges best researchers. Because of the efficiency of
1:18:41
Because of the efficiency of
1:18:41
Because of the efficiency of DiskANN and the Cosmos DB.
1:18:46
DiskANN and the Cosmos DB.
1:18:46
DiskANN and the Cosmos DB. Okay, let's take a look at some
1:18:47
Okay, let's take a look at some
1:18:47
Okay, let's take a look at some of the costs for the scenario.
1:18:49
of the costs for the scenario.
1:18:49
of the costs for the scenario. Imagine you are inserting 10
1:18:52
Imagine you are inserting 10
1:18:52
Imagine you are inserting 10 million vectors of 768
1:18:54
million vectors of 768
1:18:54
million vectors of 768 dimensions into Azure Cosmos DB
1:18:55
dimensions into Azure Cosmos DB
1:18:55
dimensions into Azure Cosmos DB for no SQL server list.
1:18:57
for no SQL server list.
1:18:57
for no SQL server list. And we are going to perform 1
1:18:59
And we are going to perform 1
1:18:59
And we are going to perform 1 million vector searches on this
1:19:01
million vector searches on this
1:19:01
million vector searches on this data.
1:19:02
data.
1:19:02
data. So the insertions of these
1:19:03
So the insertions of these
1:19:03
So the insertions of these vectors at $.25 per 1 million
1:19:07
vectors at $.25 per 1 million
1:19:07
vectors at $.25 per 1 million are you in the service model
1:19:10
are you in the service model
1:19:10
are you in the service model and at a cost of 65 request
1:19:12
and at a cost of 65 request
1:19:12
and at a cost of 65 request units per insert brings us to
1:19:14
units per insert brings us to
1:19:14
units per insert brings us to about 163 daughters-- $163.
1:19:19
about 163 daughters-- $163.
1:19:19
about 163 daughters-- $163. $.25 per gigabyte per month to
1:19:23
$.25 per gigabyte per month to
1:19:23
$.25 per gigabyte per month to about $23 per month.
1:19:24
about $23 per month.
1:19:24
about $23 per month. Then we conduct 1 million
1:19:28
Then we conduct 1 million
1:19:29
Then we conduct 1 million vector searches at about 60 RU
1:19:30
vector searches at about 60 RU
1:19:30
vector searches at about 60 RU per search.
1:19:31
per search.
1:19:32
per search. This is roughly $15 for total
1:19:35
This is roughly $15 for total
1:19:35
This is roughly $15 for total cost around $201.
1:19:37
cost around $201.
1:19:37
cost around $201. That is incredibly cheap for
1:19:39
That is incredibly cheap for
1:19:39
That is incredibly cheap for vector search on Azure Cosmos
1:19:42
vector search on Azure Cosmos
1:19:42
vector search on Azure Cosmos DB with all of the great
1:19:43
DB with all of the great
1:19:44
DB with all of the great enterprise ready features that
1:19:44
enterprise ready features that
1:19:44
enterprise ready features that you get in a globally
1:19:47
you get in a globally
1:19:47
you get in a globally distributed database like Azure
1:19:49
distributed database like Azure
1:19:49
distributed database like Azure Cosmos DB.
1:19:52
Cosmos DB.
1:19:52
Cosmos DB. Let's see how this scales also.
1:19:55
Let's see how this scales also.
1:19:55
Let's see how this scales also. So, here we have some plots on
1:19:57
So, here we have some plots on
1:19:57
So, here we have some plots on vector search from the data
1:20:01
vector search from the data
1:20:01
vector search from the data set.
1:20:01
set.
1:20:01
set. On the left-hand we have a
1:20:05
On the left-hand we have a
1:20:05
On the left-hand we have a scale of 1 million vectors and
1:20:08
scale of 1 million vectors and
1:20:08
scale of 1 million vectors and on the right-hand column we
1:20:09
on the right-hand column we
1:20:09
on the right-hand column we have a scale of 100 million
1:20:11
have a scale of 100 million
1:20:11
have a scale of 100 million vectors.
1:20:11
vectors.
1:20:11
vectors. The top charts show latency and
1:20:13
The top charts show latency and
1:20:13
The top charts show latency and the bottom charts show request
1:20:15
the bottom charts show request
1:20:16
the bottom charts show request units.
1:20:17
units.
1:20:17
units. We can see the latency on the
1:20:20
We can see the latency on the
1:20:20
We can see the latency on the server-side in blue or on the
1:20:22
server-side in blue or on the
1:20:22
server-side in blue or on the client side in green.
1:20:24
client side in green.
1:20:24
client side in green. On the spectrum of different
1:20:26
On the spectrum of different
1:20:26
On the spectrum of different scenarios where we are
1:20:28
scenarios where we are
1:20:28
scenarios where we are increasing search.
1:20:29
increasing search.
1:20:29
increasing search. This is that search list size
1:20:31
This is that search list size
1:20:31
This is that search list size multiplier I mentioned.
1:20:33
multiplier I mentioned.
1:20:33
multiplier I mentioned. Basically changing this to get
1:20:35
Basically changing this to get
1:20:35
Basically changing this to get higher recall every step.
1:20:37
higher recall every step.
1:20:37
higher recall every step. So we can see that search is
1:20:41
So we can see that search is
1:20:41
So we can see that search is 50, relatively fast.
1:20:42
50, relatively fast.
1:20:43
50, relatively fast. The P 99 latency on 1 billion
1:20:46
The P 99 latency on 1 billion
1:20:46
The P 99 latency on 1 billion vectors is under 50
1:20:47
vectors is under 50
1:20:47
vectors is under 50 milliseconds on Cosmos DB back
1:20:48
milliseconds on Cosmos DB back
1:20:48
milliseconds on Cosmos DB back end.
1:20:50
end.
1:20:50
end. Maybe around 75 or 80
1:20:53
Maybe around 75 or 80
1:20:53
Maybe around 75 or 80 milliseconds on the client
1:20:54
milliseconds on the client
1:20:54
milliseconds on the client side.
1:20:54
side.
1:20:54
side. That is really fast.
1:21:01
That is really fast.
1:21:01
That is really fast. As we increase L search and
1:21:02
As we increase L search and
1:21:02
As we increase L search and want to increase the accuracy,
1:21:03
want to increase the accuracy,
1:21:03
want to increase the accuracy, we can see the latency also
1:21:09
we can see the latency also
1:21:10
we can see the latency also increases.
1:21:10
increases.
1:21:10
increases. Even at the L search of 200
1:21:11
Even at the L search of 200
1:21:11
Even at the L search of 200 which gives us a recall of
1:21:12
which gives us a recall of
1:21:12
which gives us a recall of nearly 94% we still have our P
1:21:14
nearly 94% we still have our P
1:21:14
nearly 94% we still have our P 99 server-side latency under
1:21:15
99 server-side latency under
1:21:15
99 server-side latency under 100 milliseconds and client
1:21:18
100 milliseconds and client
1:21:18
100 milliseconds and client side latency around 140
1:21:22
side latency around 140
1:21:23
side latency around 140 milliseconds.
1:21:23
milliseconds.
1:21:23
milliseconds. That's super, super fast for
1:21:23
That's super, super fast for
1:21:24
That's super, super fast for vector search on 1 billion
1:21:26
vector search on 1 billion
1:21:26
vector search on 1 billion vector scale.
1:21:26
vector scale.
1:21:26
vector scale. We have even more optimizations
1:21:27
We have even more optimizations
1:21:28
We have even more optimizations in the pipeline to bring those
1:21:29
in the pipeline to bring those
1:21:29
in the pipeline to bring those latencies down even further.
1:21:30
latencies down even further.
1:21:30
latencies down even further. We are really excited.
1:21:36
We are really excited.
1:21:36
We are really excited. Okay.
1:21:36
Okay.
1:21:36
Okay. Speaking of optimizations and
1:21:37
Speaking of optimizations and
1:21:37
Speaking of optimizations and new features, let's what is
1:21:42
new features, let's what is
1:21:42
new features, let's what is coming next?
1:21:43
coming next?
1:21:43
coming next? So, we have performance
1:21:45
So, we have performance
1:21:45
So, we have performance improvements that are
1:21:46
improvements that are
1:21:46
improvements that are continuously rolling out to
1:21:47
continuously rolling out to
1:21:47
continuously rolling out to both DiskANN and the Cosmos DB
1:21:52
both DiskANN and the Cosmos DB
1:21:52
both DiskANN and the Cosmos DB back end to make your vector
1:21:53
back end to make your vector
1:21:53
back end to make your vector searches at scale even more
1:21:55
searches at scale even more
1:21:55
searches at scale even more cost-effective and faster.
1:21:56
cost-effective and faster.
1:21:56
cost-effective and faster. We are also giving you the
1:21:58
We are also giving you the
1:21:58
We are also giving you the ability to configure and change
1:21:59
ability to configure and change
1:21:59
ability to configure and change your vector indexes so you can
1:22:02
your vector indexes so you can
1:22:02
your vector indexes so you can do experimentation on what is
1:22:03
do experimentation on what is
1:22:03
do experimentation on what is right for your scenario or
1:22:04
right for your scenario or
1:22:04
right for your scenario or modify it as your scenario
1:22:07
modify it as your scenario
1:22:08
modify it as your scenario scales.
1:22:08
scales.
1:22:08
scales. Coming soon, we are also
1:22:09
Coming soon, we are also
1:22:09
Coming soon, we are also launching what we are calling
1:22:13
launching what we are calling
1:22:13
launching what we are calling started disc-- DiskANN.
1:22:16
started disc-- DiskANN.
1:22:16
started disc-- DiskANN. Essentially unique vector
1:22:17
Essentially unique vector
1:22:17
Essentially unique vector indexes for every property
1:22:19
indexes for every property
1:22:19
indexes for every property value of a document.
1:22:21
value of a document.
1:22:21
value of a document. So I mentioned that you have a
1:22:27
So I mentioned that you have a
1:22:27
So I mentioned that you have a tenant I.D.
1:22:28
tenant I.D.
1:22:28
tenant I.D. specified as your shard key and
1:22:29
specified as your shard key and
1:22:29
specified as your shard key and you can isolate that to just
1:22:30
you can isolate that to just
1:22:30
you can isolate that to just that category or just that
1:22:33
that category or just that
1:22:33
that category or just that tenant.
1:22:33
tenant.
1:22:33
tenant. This makes the vector search
1:22:36
This makes the vector search
1:22:36
This makes the vector search muck-- much faster, more cost-
1:22:39
muck-- much faster, more cost-
1:22:39
muck-- much faster, more cost- effective and higher accuracy.
1:22:41
effective and higher accuracy.
1:22:42
effective and higher accuracy. We are soon also launching
1:22:46
We are soon also launching
1:22:46
We are soon also launching filter DiskANN which leverages
1:22:46
filter DiskANN which leverages
1:22:47
filter DiskANN which leverages new algorithms for improving
1:22:47
new algorithms for improving
1:22:47
new algorithms for improving vector search with query
1:22:49
vector search with query
1:22:49
vector search with query filters to make them faster and
1:22:54
filters to make them faster and
1:22:54
filters to make them faster and more effective.
1:22:54
more effective.
1:22:54
more effective. You may also already know that
1:22:57
You may also already know that
1:22:57
You may also already know that in addition to vector search,
1:22:58
in addition to vector search,
1:22:59
in addition to vector search, we also have fulltext search
1:23:04
we also have fulltext search
1:23:04
we also have fulltext search and ranking that allows you to
1:23:05
and ranking that allows you to
1:23:05
and ranking that allows you to search using fulltext index for
1:23:06
search using fulltext index for
1:23:06
search using fulltext index for keywords and terms.
1:23:06
keywords and terms.
1:23:07
keywords and terms. We are soon adding a lot more
1:23:08
We are soon adding a lot more
1:23:08
We are soon adding a lot more features to this and we are
1:23:09
features to this and we are
1:23:10
features to this and we are really excited we are going to
1:23:12
really excited we are going to
1:23:12
really excited we are going to be announcing general
1:23:13
be announcing general
1:23:13
be announcing general availability of fulltext search
1:23:14
availability of fulltext search
1:23:14
availability of fulltext search and ranking in Azure Cosmos DB
1:23:17
and ranking in Azure Cosmos DB
1:23:17
and ranking in Azure Cosmos DB at the Microsoft build
1:23:18
at the Microsoft build
1:23:18
at the Microsoft build conference.
1:23:19
conference.
1:23:19
conference. At the end of May.
1:23:24
At the end of May.
1:23:24
At the end of May. So we are really excited.
1:23:25
So we are really excited.
1:23:25
So we are really excited. There's going to be really
1:23:26
There's going to be really
1:23:27
There's going to be really great new features coming along
1:23:28
great new features coming along
1:23:28
great new features coming along with it so join us on Microsoft
1:23:29
with it so join us on Microsoft
1:23:29
with it so join us on Microsoft build to learn more.
1:23:31
build to learn more.
1:23:31
build to learn more. We also have search in Azure
1:23:33
We also have search in Azure
1:23:33
We also have search in Azure Cosmos DB.
1:23:35
Cosmos DB.
1:23:35
Cosmos DB. A combination of vector
1:23:37
A combination of vector
1:23:37
A combination of vector similarities search and for
1:23:39
similarities search and for
1:23:39
similarities search and for fulltext scoring bringing even
1:23:40
fulltext scoring bringing even
1:23:40
fulltext scoring bringing even more relevant results.
1:23:41
more relevant results.
1:23:41
more relevant results. It is really easy to execute in
1:23:46
It is really easy to execute in
1:23:46
It is really easy to execute in our query language and this is
1:23:47
our query language and this is
1:23:47
our query language and this is also going to be generally
1:23:48
also going to be generally
1:23:48
also going to be generally available at the Microsoft
1:23:49
available at the Microsoft
1:23:49
available at the Microsoft build 2025 conference in May.
1:23:53
build 2025 conference in May.
1:23:53
build 2025 conference in May. We are also excited to be
1:23:54
We are also excited to be
1:23:54
We are also excited to be teaming up with Microsoft logic
1:23:58
teaming up with Microsoft logic
1:23:58
teaming up with Microsoft logic apps team.
1:23:58
apps team.
1:23:58
apps team. Everybody knows logic apps,
1:23:59
Everybody knows logic apps,
1:23:59
Everybody knows logic apps, very powerful resource in Mani
1:24:02
very powerful resource in Mani
1:24:02
very powerful resource in Mani Jaman for for these work flows
1:24:05
Jaman for for these work flows
1:24:05
Jaman for for these work flows that you want to operate
1:24:09
that you want to operate
1:24:09
that you want to operate continuously.
1:24:10
continuously.
1:24:10
continuously. We are taking it to the next
1:24:11
We are taking it to the next
1:24:11
We are taking it to the next level by building templates
1:24:12
level by building templates
1:24:12
level by building templates that allow you to do document
1:24:13
that allow you to do document
1:24:13
that allow you to do document processing so essentially being
1:24:14
processing so essentially being
1:24:14
processing so essentially being able to do and extract
1:24:16
able to do and extract
1:24:16
able to do and extract information from documents.
1:24:18
information from documents.
1:24:18
information from documents. Process the data, chunk it,
1:24:22
Process the data, chunk it,
1:24:22
Process the data, chunk it, create vector in beddings from
1:24:24
create vector in beddings from
1:24:24
create vector in beddings from those chunks and create those in
1:24:31
those chunks and create those in
1:24:31
those chunks and create those in Azure Cosmos DB for vector and
1:24:33
Azure Cosmos DB for vector and
1:24:33
Azure Cosmos DB for vector and fulltext search.
1:24:33
fulltext search.
1:24:33
fulltext search. This is going to be really
1:24:34
This is going to be really
1:24:34
This is going to be really powerful.
1:24:35
powerful.
1:24:35
powerful. Any operational data you have
1:24:36
Any operational data you have
1:24:36
Any operational data you have you can be rest assured it will
1:24:37
you can be rest assured it will
1:24:37
you can be rest assured it will be searchable in Azure Cosmos
1:24:38
be searchable in Azure Cosmos
1:24:38
be searchable in Azure Cosmos DB and stored securely.
1:24:43
DB and stored securely.
1:24:43
DB and stored securely. You may be wondering how you
1:24:44
You may be wondering how you
1:24:44
You may be wondering how you can get started with vector
1:24:48
can get started with vector
1:24:48
can get started with vector search or where you can go for
1:24:49
search or where you can go for
1:24:50
search or where you can go for examples.
1:24:50
examples.
1:24:50
examples. We have a fantastic samples
1:24:58
We have a fantastic samples
1:24:58
We have a fantastic samples gallery.
1:24:59
gallery.
1:24:59
gallery. A.k.a..MS/tran01/AI you can ga
1:25:03
A.k.a..MS/tran01/AI you can ga
1:25:03
A.k.a..MS/tran01/AI you can ga filter just for generative A.I.
1:25:05
filter just for generative A.I.
1:25:05
filter just for generative A.I. and you can find everything
1:25:09
and you can find everything
1:25:09
and you can find everything from to
1:25:11
from to
1:25:11
from to managing vector search and even
1:25:13
managing vector search and even
1:25:13
managing vector search and even multiagent applications.
1:25:14
multiagent applications.
1:25:14
multiagent applications. With examples in swarm.
1:25:18
With examples in swarm.
1:25:18
With examples in swarm. And if you have never used
1:25:21
And if you have never used
1:25:21
And if you have never used Cosmos DB before, you can get
1:25:23
Cosmos DB before, you can get
1:25:23
Cosmos DB before, you can get started for free.
1:25:23
started for free.
1:25:23
started for free. Just check out try Cosmos and
1:25:27
Just check out try Cosmos and
1:25:27
Just check out try Cosmos and you can get started on a
1:25:29
you can get started on a
1:25:29
you can get started on a lifetime account and you can do
1:25:30
lifetime account and you can do
1:25:30
lifetime account and you can do a vector search on that account
1:25:34
a vector search on that account
1:25:34
a vector search on that account as well.
1:25:34
as well.
1:25:34
as well. A lot of great options for you
1:25:36
A lot of great options for you
1:25:36
A lot of great options for you to get started and to use Azure
1:25:37
to get started and to use Azure
1:25:37
to get started and to use Azure Cosmos DB for your AI
1:25:39
Cosmos DB for your AI
1:25:39
Cosmos DB for your AI applications.
1:25:40
applications.
1:25:40
applications. >> Thank you, James.
1:25:43
>> Thank you, James.
1:25:43
>> Thank you, James. As always, fun to listen to
1:25:44
As always, fun to listen to
1:25:45
As always, fun to listen to James presentations about
1:25:45
James presentations about
1:25:45
James presentations about vector search.
1:25:47
vector search.
1:25:47
vector search. And now, Justine from our team
1:25:49
And now, Justine from our team
1:25:49
And now, Justine from our team is going to do a deep dive into-
1:25:55
is going to do a deep dive into-
1:25:55
is going to do a deep dive into- - let's take a look.
1:26:00
- let's take a look.
1:26:00
- let's take a look. >> Hi, I am Justine Cocchi,
1:26:01
>> Hi, I am Justine Cocchi,
1:26:01
>> Hi, I am Justine Cocchi, program manager on the Cosmos
1:26:05
program manager on the Cosmos
1:26:05
program manager on the Cosmos DB team.
1:26:05
DB team.
1:26:05
DB team. A persistent record of changes
1:26:07
A persistent record of changes
1:26:07
A persistent record of changes to items in the order that they
1:26:09
to items in the order that they
1:26:09
to items in the order that they occur.
1:26:10
occur.
1:26:10
occur. Commonly used for patterns like
1:26:12
Commonly used for patterns like
1:26:12
Commonly used for patterns like auditing or data present.
1:26:17
auditing or data present.
1:26:17
auditing or data present. Whether that be in cosmos DB.
1:26:22
Whether that be in cosmos DB.
1:26:22
Whether that be in cosmos DB. The change feed offers
1:26:23
The change feed offers
1:26:23
The change feed offers different features depending on
1:26:24
different features depending on
1:26:24
different features depending on the mode that you read in.
1:26:26
the mode that you read in.
1:26:26
the mode that you read in. This mode you can read the
1:26:28
This mode you can read the
1:26:28
This mode you can read the latest update for each item.
1:26:31
latest update for each item.
1:26:31
latest update for each item. This mode has infinite meaning
1:26:33
This mode has infinite meaning
1:26:33
This mode has infinite meaning you can reach all the way to
1:26:36
you can reach all the way to
1:26:36
you can reach all the way to the beginning.
1:26:36
the beginning.
1:26:36
the beginning. The next mode is-- here you can
1:26:40
The next mode is-- here you can
1:26:41
The next mode is-- here you can get every current update in the
1:26:43
get every current update in the
1:26:43
get every current update in the operation for every item.
1:26:46
operation for every item.
1:26:47
operation for every item. In this mode, if you have two
1:26:48
In this mode, if you have two
1:26:48
In this mode, if you have two updates of the same item, the
1:26:54
updates of the same item, the
1:26:54
updates of the same item, the next time you read change feed
1:26:55
next time you read change feed
1:26:55
next time you read change feed you will get the update for
1:26:56
you will get the update for
1:26:56
you will get the update for both of those items.
1:26:57
both of those items.
1:26:57
both of those items. Rather than just the latest
1:26:58
Rather than just the latest
1:26:58
Rather than just the latest update.
1:26:58
update.
1:26:58
update. Changes in this mode are
1:27:01
Changes in this mode are
1:27:01
Changes in this mode are continuous backup here which
1:27:04
continuous backup here which
1:27:04
continuous backup here which means you can read anything
1:27:06
means you can read anything
1:27:06
means you can read anything that happened in that.
1:27:11
that happened in that.
1:27:11
that happened in that. For a lot of changes coming in,
1:27:12
For a lot of changes coming in,
1:27:12
For a lot of changes coming in, change feed is able to parallel
1:27:16
change feed is able to parallel
1:27:16
change feed is able to parallel across so that you can read
1:27:17
across so that you can read
1:27:18
across so that you can read your changes even faster and
1:27:19
your changes even faster and
1:27:19
your changes even faster and ensure that you are keeping up
1:27:20
ensure that you are keeping up
1:27:20
ensure that you are keeping up with the volume of changes.
1:27:22
with the volume of changes.
1:27:22
with the volume of changes. Let's imagine we have a
1:27:25
Let's imagine we have a
1:27:25
Let's imagine we have a container with three physical
1:27:28
container with three physical
1:27:28
container with three physical locations.
1:27:28
locations.
1:27:28
locations. This container is positioned by
1:27:29
This container is positioned by
1:27:29
This container is positioned by city.
1:27:30
city.
1:27:30
city. I can create three change feed
1:27:34
I can create three change feed
1:27:34
I can create three change feed workers to process changes from
1:27:35
workers to process changes from
1:27:35
workers to process changes from each position independently.
1:27:37
each position independently.
1:27:37
each position independently. That way, each change feed
1:27:39
That way, each change feed
1:27:39
That way, each change feed worker gets an ordered list of
1:27:43
worker gets an ordered list of
1:27:43
worker gets an ordered list of changes.
1:27:43
changes.
1:27:44
changes. Now, managing the information
1:27:46
Now, managing the information
1:27:46
Now, managing the information can be a bit challenging.
1:27:48
can be a bit challenging.
1:27:48
can be a bit challenging. There is several different ways
1:27:49
There is several different ways
1:27:49
There is several different ways to read change feed that help
1:27:51
to read change feed that help
1:27:51
to read change feed that help you manage it.
1:27:53
you manage it.
1:27:53
you manage it. The first is change feed
1:27:55
The first is change feed
1:27:55
The first is change feed processing.
1:27:55
processing.
1:27:55
processing. Gives you control over how you
1:27:57
Gives you control over how you
1:27:57
Gives you control over how you read the change feed and
1:28:00
read the change feed and
1:28:00
read the change feed and operates configuration options
1:28:01
operates configuration options
1:28:01
operates configuration options for things like how frequently
1:28:04
for things like how frequently
1:28:04
for things like how frequently you are checking for change.
1:28:05
you are checking for change.
1:28:05
you are checking for change. It doesn't have the complexity
1:28:07
It doesn't have the complexity
1:28:07
It doesn't have the complexity of needing to manage
1:28:10
of needing to manage
1:28:10
of needing to manage checkpoints, error handling or
1:28:12
checkpoints, error handling or
1:28:12
checkpoints, error handling or scaling across change feed
1:28:13
scaling across change feed
1:28:13
scaling across change feed workers.
1:28:14
workers.
1:28:14
workers. All of that is handled for you
1:28:21
All of that is handled for you
1:28:21
All of that is handled for you automatically.
1:28:23
automatically.
1:28:23
automatically. It is one of the easiest ways
1:28:24
It is one of the easiest ways
1:28:24
It is one of the easiest ways to get started with the change
1:28:27
to get started with the change
1:28:27
to get started with the change feed.
1:28:27
feed.
1:28:27
feed. There is also the change feed
1:28:30
There is also the change feed
1:28:30
There is also the change feed pull model.
1:28:30
pull model.
1:28:30
pull model. Gives you the most control over
1:28:32
Gives you the most control over
1:28:32
Gives you the most control over how and when you read the
1:28:33
how and when you read the
1:28:33
how and when you read the change feed.
1:28:33
change feed.
1:28:33
change feed. However, it can be complex.
1:28:38
However, it can be complex.
1:28:38
However, it can be complex. Let's imagine a real-world
1:28:39
Let's imagine a real-world
1:28:39
Let's imagine a real-world application in the retail
1:28:41
application in the retail
1:28:41
application in the retail space.
1:28:41
space.
1:28:41
space. I have some business
1:28:45
I have some business
1:28:46
I have some business requirements, I want to create
1:28:47
requirements, I want to create
1:28:47
requirements, I want to create a fulfillment system that helps
1:28:48
a fulfillment system that helps
1:28:48
a fulfillment system that helps me track orders happening for
1:28:50
me track orders happening for
1:28:50
me track orders happening for my business.
1:28:51
my business.
1:28:51
my business. I also want to be able to
1:28:52
I also want to be able to
1:28:52
I also want to be able to coordinate order status updates
1:28:53
coordinate order status updates
1:28:53
coordinate order status updates across my clients for shipping,
1:28:55
across my clients for shipping,
1:28:55
across my clients for shipping, payments and delivery.
1:28:58
payments and delivery.
1:28:58
payments and delivery. Let's see how the change feed
1:28:59
Let's see how the change feed
1:28:59
Let's see how the change feed processor can help us to build
1:29:02
processor can help us to build
1:29:02
processor can help us to build those requirements.
1:29:02
those requirements.
1:29:02
those requirements. I'm going to switch over to a
1:29:04
I'm going to switch over to a
1:29:04
I'm going to switch over to a Visual Studio where I have--
1:29:08
Visual Studio where I have--
1:29:08
Visual Studio where I have-- you will notice the first thing
1:29:09
you will notice the first thing
1:29:09
you will notice the first thing I do is initialize.
1:29:11
I do is initialize.
1:29:11
I do is initialize. The client is the entry point
1:29:15
The client is the entry point
1:29:15
The client is the entry point for the Cosmos DB account and
1:29:16
for the Cosmos DB account and
1:29:16
for the Cosmos DB account and helps you communicate with all
1:29:17
helps you communicate with all
1:29:17
helps you communicate with all of the containers and data in
1:29:18
of the containers and data in
1:29:18
of the containers and data in your account.
1:29:19
your account.
1:29:19
your account. I am authenticating with the
1:29:20
I am authenticating with the
1:29:20
I am authenticating with the default credentials which uses
1:29:21
default credentials which uses
1:29:25
default credentials which uses Microsoft I.D.
1:29:27
Microsoft I.D.
1:29:27
Microsoft I.D. application.
1:29:27
application.
1:29:27
application. Once I have my client, I can
1:29:29
Once I have my client, I can
1:29:29
Once I have my client, I can actually create connections
1:29:32
actually create connections
1:29:32
actually create connections from there.
1:29:32
from there.
1:29:32
from there. The first container is the
1:29:37
The first container is the
1:29:37
The first container is the container that I will be
1:29:38
container that I will be
1:29:38
container that I will be monitoring for changes and in
1:29:39
monitoring for changes and in
1:29:39
monitoring for changes and in my scenario.
1:29:39
my scenario.
1:29:40
my scenario. I also have the lead container
1:29:43
I also have the lead container
1:29:43
I also have the lead container that helps the change feed
1:29:46
that helps the change feed
1:29:47
that helps the change feed processor for processing
1:29:50
processor for processing
1:29:50
processor for processing changes.
1:29:50
changes.
1:29:50
changes. This is how we can manage check
1:29:53
This is how we can manage check
1:29:54
This is how we can manage check waiting and the order of
1:29:54
waiting and the order of
1:29:55
waiting and the order of changes that have been
1:29:56
changes that have been
1:29:57
changes that have been processed.
1:30:00
processed.
1:30:00
processed. Now, notice I am creating my
1:30:01
Now, notice I am creating my
1:30:01
Now, notice I am creating my builder with all versions and
1:30:03
builder with all versions and
1:30:03
builder with all versions and deletes.
1:30:03
deletes.
1:30:03
deletes. To make sure that I get every
1:30:07
To make sure that I get every
1:30:07
To make sure that I get every order status update from
1:30:10
order status update from
1:30:10
order status update from application.
1:30:10
application.
1:30:10
application. [Option is transitioning--
1:30:17
[Option is transitioning--
1:30:18
[Option is transitioning-- captioners transitioning]
1:30:27
In this example I will print
1:30:31
In this example I will print
1:30:31
In this example I will print out metadata, let's go ahead
1:30:34
out metadata, let's go ahead
1:30:35
out metadata, let's go ahead and see what this looks like.
1:30:37
and see what this looks like.
1:30:38
and see what this looks like. I have my application already
1:30:38
I have my application already
1:30:39
I have my application already running and I also have the
1:30:42
running and I also have the
1:30:42
running and I also have the data Explorer pulled up.
1:30:43
data Explorer pulled up.
1:30:43
data Explorer pulled up. This is my order container and
1:30:45
This is my order container and
1:30:45
This is my order container and I have my orders listed here.
1:30:50
I have my orders listed here.
1:30:50
I have my orders listed here. If I was to simulate one of my
1:30:51
If I was to simulate one of my
1:30:51
If I was to simulate one of my micro services and make updates
1:30:52
micro services and make updates
1:30:52
micro services and make updates to this data, let's say to ship
1:30:54
to this data, let's say to ship
1:30:54
to this data, let's say to ship and let me update this.
1:30:56
and let me update this.
1:30:56
and let me update this. We can see the change
1:31:01
We can see the change
1:31:01
We can see the change application will pick up the
1:31:02
application will pick up the
1:31:02
application will pick up the change in print a new order
1:31:04
change in print a new order
1:31:04
change in print a new order status.
1:31:07
status.
1:31:07
status. Thank you so much and if you're
1:31:08
Thank you so much and if you're
1:31:09
Thank you so much and if you're interested in using change feed
1:31:10
interested in using change feed
1:31:10
interested in using change feed get started by checking out --.
1:31:16
get started by checking out --.
1:31:16
get started by checking out --. >> Wow, thank you, Justine.
1:31:19
>> Wow, thank you, Justine.
1:31:19
>> Wow, thank you, Justine. It is really cool to see how
1:31:21
It is really cool to see how
1:31:21
It is really cool to see how change feeds is powering
1:31:24
change feeds is powering
1:31:24
change feeds is powering everything from personalized
1:31:25
everything from personalized
1:31:25
everything from personalized retail to instant insights.
1:31:28
retail to instant insights.
1:31:28
retail to instant insights. That is a great example of
1:31:29
That is a great example of
1:31:29
That is a great example of Azure power and operational
1:31:32
Azure power and operational
1:31:32
Azure power and operational workflows that need to scale
1:31:34
workflows that need to scale
1:31:34
workflows that need to scale and react fast.
1:31:35
and react fast.
1:31:35
and react fast. >> Definitely one of my
1:31:36
>> Definitely one of my
1:31:36
>> Definitely one of my favorite uses for Azure
1:31:38
favorite uses for Azure
1:31:38
favorite uses for Azure cosmos.
1:31:39
cosmos.
1:31:39
cosmos. By the way, we have some social
1:31:43
By the way, we have some social
1:31:43
By the way, we have some social media posts, let's take a look
1:31:45
media posts, let's take a look
1:31:45
media posts, let's take a look at this one from Ryan, he is
1:31:46
at this one from Ryan, he is
1:31:46
at this one from Ryan, he is currently following hashtag
1:31:52
currently following hashtag
1:31:52
currently following hashtag Azure Cosmos and encourage
1:31:55
Azure Cosmos and encourage
1:31:55
Azure Cosmos and encourage people to share the lifestream.
1:31:59
people to share the lifestream.
1:32:00
people to share the lifestream. >> Thank you, Brian and is
1:32:01
>> Thank you, Brian and is
1:32:01
>> Thank you, Brian and is always please continue to drop
1:32:03
always please continue to drop
1:32:03
always please continue to drop in to the chat on our YouTube
1:32:10
in to the chat on our YouTube
1:32:10
in to the chat on our YouTube stream, check out our resources
1:32:11
stream, check out our resources
1:32:11
stream, check out our resources page in our evaluation form.
1:32:12
page in our evaluation form.
1:32:12
page in our evaluation form. >> Okay.
1:32:13
>> Okay.
1:32:13
>> Okay. I mentioned the realtime apps
1:32:14
I mentioned the realtime apps
1:32:14
I mentioned the realtime apps is one of my favorite use cases
1:32:16
is one of my favorite use cases
1:32:16
is one of my favorite use cases but so is this one.
1:32:18
but so is this one.
1:32:18
but so is this one. Next we are heading into the
1:32:20
Next we are heading into the
1:32:20
Next we are heading into the world of Jen A.I.
1:32:21
world of Jen A.I.
1:32:21
world of Jen A.I. apps and intelligent agents
1:32:24
apps and intelligent agents
1:32:24
apps and intelligent agents and we learn how to build a
1:32:26
and we learn how to build a
1:32:26
and we learn how to build a retail copilot with Azure A.I.
1:32:30
retail copilot with Azure A.I.
1:32:30
retail copilot with Azure A.I. , let's take a look.
1:32:32
, let's take a look.
1:32:32
, let's take a look. >> Hello, I am a senior A.I.
1:32:36
>> Hello, I am a senior A.I.
1:32:37
>> Hello, I am a senior A.I. advocate on the relations team
1:32:41
advocate on the relations team
1:32:41
advocate on the relations team at Microsoft and I'm excited to
1:32:42
at Microsoft and I'm excited to
1:32:42
at Microsoft and I'm excited to be here to take you on a
1:32:43
be here to take you on a
1:32:44
be here to take you on a developer journey as we -- now
1:32:48
developer journey as we -- now
1:32:48
developer journey as we -- now this is a short form of a talk
1:32:50
this is a short form of a talk
1:32:50
this is a short form of a talk that we have been taking up on
1:32:51
that we have been taking up on
1:32:51
that we have been taking up on a 75 minute workshop and
1:32:53
a 75 minute workshop and
1:32:53
a 75 minute workshop and thousands of developers.
1:32:54
thousands of developers.
1:32:54
thousands of developers. We did it by deconstructing --.
1:32:58
We did it by deconstructing --.
1:32:58
We did it by deconstructing --. If you have a second check out
1:33:00
If you have a second check out
1:33:00
If you have a second check out the QR code or the URL and go
1:33:03
the QR code or the URL and go
1:33:03
the QR code or the URL and go check it out and see if you can
1:33:08
check it out and see if you can
1:33:08
check it out and see if you can exploit by yourself.
1:33:10
exploit by yourself.
1:33:10
exploit by yourself. Today I will split the stock
1:33:11
Today I will split the stock
1:33:11
Today I will split the stock into three sections.
1:33:12
into three sections.
1:33:12
into three sections. First we will spend time
1:33:17
First we will spend time
1:33:17
First we will spend time knowing what it is, how it is
1:33:18
knowing what it is, how it is
1:33:18
knowing what it is, how it is connected and how we go about
1:33:20
connected and how we go about
1:33:20
connected and how we go about building it.
1:33:21
building it.
1:33:21
building it. We will then focus on
1:33:22
We will then focus on
1:33:22
We will then focus on interactive demos and
1:33:23
interactive demos and
1:33:23
interactive demos and expiration of the code base to
1:33:25
expiration of the code base to
1:33:25
expiration of the code base to go through the workload.
1:33:27
go through the workload.
1:33:27
go through the workload. Finally, I will leave time to
1:33:28
Finally, I will leave time to
1:33:29
Finally, I will leave time to think about how you can use the
1:33:30
think about how you can use the
1:33:31
think about how you can use the sample as a sandbox to explore
1:33:33
sample as a sandbox to explore
1:33:33
sample as a sandbox to explore ideas for Azure cosmos DB
1:33:36
ideas for Azure cosmos DB
1:33:36
ideas for Azure cosmos DB features. Let's get started by
1:33:41
features. Let's get started by
1:33:41
features. Let's get started by talking about the application
1:33:42
talking about the application
1:33:42
talking about the application scenario, what exactly is it?
1:33:47
scenario, what exactly is it?
1:33:47
scenario, what exactly is it? You might be familiar with this
1:33:48
You might be familiar with this
1:33:48
You might be familiar with this web application on the right
1:33:49
web application on the right
1:33:49
web application on the right side.
1:33:50
side.
1:33:50
side. This is an enterprise retailer
1:33:53
This is an enterprise retailer
1:33:53
This is an enterprise retailer that sells camping and hiking
1:33:55
that sells camping and hiking
1:33:55
that sells camping and hiking equipment.
1:33:56
equipment.
1:33:56
equipment. The chat is there customer
1:33:57
The chat is there customer
1:33:57
The chat is there customer support chat A.I..
1:33:58
support chat A.I..
1:33:58
support chat A.I.. When they built it they had
1:34:00
When they built it they had
1:34:00
When they built it they had four requirements, first, they
1:34:04
four requirements, first, they
1:34:04
four requirements, first, they wanted to make sure it was
1:34:05
wanted to make sure it was
1:34:05
wanted to make sure it was conversational.
1:34:06
conversational.
1:34:06
conversational. The customer should be able to
1:34:07
The customer should be able to
1:34:07
The customer should be able to come to this chat site and chat
1:34:10
come to this chat site and chat
1:34:10
come to this chat site and chat with the website about what
1:34:14
with the website about what
1:34:14
with the website about what products are available in
1:34:15
products are available in
1:34:15
products are available in natural language.
1:34:17
natural language.
1:34:17
natural language. Second, the responses need to
1:34:19
Second, the responses need to
1:34:19
Second, the responses need to be grounded.
1:34:22
be grounded.
1:34:22
be grounded. If a user asks, what should I
1:34:23
If a user asks, what should I
1:34:23
If a user asks, what should I buy for a trip to Lussier?
1:34:24
buy for a trip to Lussier?
1:34:24
buy for a trip to Lussier? They should get responses
1:34:26
They should get responses
1:34:26
They should get responses featuring products in the
1:34:29
featuring products in the
1:34:29
featuring products in the catalog.
1:34:30
catalog.
1:34:30
catalog. Third, it needs to be
1:34:31
Third, it needs to be
1:34:31
Third, it needs to be contextual.
1:34:31
contextual.
1:34:31
contextual. That means it needs to
1:34:33
That means it needs to
1:34:33
That means it needs to understand there is a chat
1:34:34
understand there is a chat
1:34:34
understand there is a chat history but the consumer might
1:34:37
history but the consumer might
1:34:37
history but the consumer might have previous purchases that
1:34:38
have previous purchases that
1:34:38
have previous purchases that are relevant and so on.
1:34:41
are relevant and so on.
1:34:41
are relevant and so on. And most important of all, it
1:34:43
And most important of all, it
1:34:43
And most important of all, it needs to be safe.
1:34:45
needs to be safe.
1:34:45
needs to be safe. We all know there are
1:34:47
We all know there are
1:34:48
We all know there are techniques like jailbreaking
1:34:50
techniques like jailbreaking
1:34:50
techniques like jailbreaking people use prompts to change
1:34:51
people use prompts to change
1:34:51
people use prompts to change the behavior of a chat A.I.
1:34:53
the behavior of a chat A.I.
1:34:53
the behavior of a chat A.I. in ways not intended.
1:34:57
in ways not intended.
1:34:57
in ways not intended. One of the things you want to
1:34:58
One of the things you want to
1:34:58
One of the things you want to make sure is that we can
1:34:59
make sure is that we can
1:34:59
make sure is that we can protect against jailbreaking
1:35:00
protect against jailbreaking
1:35:00
protect against jailbreaking and also take the time we need
1:35:02
and also take the time we need
1:35:02
and also take the time we need to make sure the responses are
1:35:04
to make sure the responses are
1:35:04
to make sure the responses are of good quality and safety.
1:35:06
of good quality and safety.
1:35:06
of good quality and safety. As you can see, with our demo,
1:35:10
As you can see, with our demo,
1:35:10
As you can see, with our demo, when you build this app it will
1:35:13
when you build this app it will
1:35:13
when you build this app it will have built in guardrails to
1:35:14
have built in guardrails to
1:35:14
have built in guardrails to prevent things like
1:35:15
prevent things like
1:35:15
prevent things like jailbreaking.
1:35:16
jailbreaking.
1:35:16
jailbreaking. But before that, let's take a
1:35:20
But before that, let's take a
1:35:20
But before that, let's take a look at our data sources.
1:35:25
look at our data sources.
1:35:25
look at our data sources. We have two kinds of data
1:35:26
We have two kinds of data
1:35:26
We have two kinds of data sources and we did this on
1:35:27
sources and we did this on
1:35:28
sources and we did this on purpose so you can explore
1:35:28
purpose so you can explore
1:35:29
purpose so you can explore structured and unstructured
1:35:30
structured and unstructured
1:35:30
structured and unstructured data.
1:35:31
data.
1:35:31
data. Our product catalog sits in
1:35:34
Our product catalog sits in
1:35:34
Our product catalog sits in Azure A.I.
1:35:34
Azure A.I.
1:35:34
Azure A.I. search and has structured data
1:35:36
search and has structured data
1:35:36
search and has structured data varied you can go to the data
1:35:39
varied you can go to the data
1:35:39
varied you can go to the data folder and look at the product
1:35:42
folder and look at the product
1:35:42
folder and look at the product information folder to find a
1:35:43
information folder to find a
1:35:43
information folder to find a list of products.
1:35:45
list of products.
1:35:45
list of products. 20 product items, a healthy
1:35:46
20 product items, a healthy
1:35:46
20 product items, a healthy sample, in product categories
1:35:50
sample, in product categories
1:35:50
sample, in product categories and columns like price, name,
1:35:52
and columns like price, name,
1:35:52
and columns like price, name, brand, description.
1:35:53
brand, description.
1:35:53
brand, description. We also have a second set of
1:35:55
We also have a second set of
1:35:56
We also have a second set of data.
1:35:57
data.
1:35:57
data. This is unstructured data.
1:35:59
This is unstructured data.
1:36:00
This is unstructured data. This represents our customer
1:36:01
This represents our customer
1:36:01
This represents our customer data.
1:36:05
data.
1:36:05
data. We have 12 customer profiles.
1:36:06
We have 12 customer profiles.
1:36:06
We have 12 customer profiles. You can go into the data folder
1:36:07
You can go into the data folder
1:36:07
You can go into the data folder under customer info, we have 12
1:36:09
under customer info, we have 12
1:36:09
under customer info, we have 12 customer profiles.
1:36:10
customer profiles.
1:36:10
customer profiles. Each profile gives you
1:36:11
Each profile gives you
1:36:11
Each profile gives you information on the customer and
1:36:13
information on the customer and
1:36:13
information on the customer and has two to three purchase
1:36:14
has two to three purchase
1:36:14
has two to three purchase orders needed from the site.
1:36:17
orders needed from the site.
1:36:17
orders needed from the site. With this data we want to build
1:36:23
With this data we want to build
1:36:23
With this data we want to build a chat A.I.
1:36:24
a chat A.I.
1:36:24
a chat A.I. grounded in this data.
1:36:24
grounded in this data.
1:36:25
grounded in this data. How do we do it?
1:36:26
How do we do it?
1:36:29
How do we do it? The answer is with generation,
1:36:31
The answer is with generation,
1:36:31
The answer is with generation, I won't go into too much detail
1:36:32
I won't go into too much detail
1:36:32
I won't go into too much detail because you are probably
1:36:33
because you are probably
1:36:33
because you are probably familiar with this design
1:36:34
familiar with this design
1:36:34
familiar with this design pattern but let's take a quick
1:36:35
pattern but let's take a quick
1:36:35
pattern but let's take a quick look at the flow so we
1:36:36
look at the flow so we
1:36:36
look at the flow so we understand how this maps our
1:36:37
understand how this maps our
1:36:37
understand how this maps our architecture later.
1:36:38
architecture later.
1:36:38
architecture later. Typically, when we use this
1:36:40
Typically, when we use this
1:36:41
Typically, when we use this model, if it goes directly to
1:36:44
model, if it goes directly to
1:36:44
model, if it goes directly to the model it will give answers
1:36:47
the model it will give answers
1:36:47
the model it will give answers that are based on publicly
1:36:48
that are based on publicly
1:36:49
that are based on publicly available information.
1:36:49
available information.
1:36:49
available information. If I ask, --, it will come back
1:36:54
If I ask, --, it will come back
1:36:54
If I ask, --, it will come back with the publicly available one.
1:36:56
with the publicly available one.
1:36:57
with the publicly available one. But if I were to grounded in my
1:36:59
But if I were to grounded in my
1:36:59
But if I were to grounded in my data, we use retrieval,
1:37:04
data, we use retrieval,
1:37:04
data, we use retrieval, generation, we take the quarry
1:37:05
generation, we take the quarry
1:37:05
generation, we take the quarry and send it to an information
1:37:06
and send it to an information
1:37:06
and send it to an information retrieval service, which in
1:37:07
retrieval service, which in
1:37:07
retrieval service, which in vector is the quarry, find
1:37:08
vector is the quarry, find
1:37:09
vector is the quarry, find matching results and return
1:37:10
matching results and return
1:37:10
matching results and return that has knowledge, as part of
1:37:12
that has knowledge, as part of
1:37:13
that has knowledge, as part of the retrieval step.
1:37:14
the retrieval step.
1:37:14
the retrieval step. We then augment the original
1:37:16
We then augment the original
1:37:16
We then augment the original question to create an enhanced
1:37:18
question to create an enhanced
1:37:18
question to create an enhanced model prop that contains the
1:37:21
model prop that contains the
1:37:21
model prop that contains the question as well is retrieved
1:37:22
question as well is retrieved
1:37:22
question as well is retrieved knowledge, as well as
1:37:23
knowledge, as well as
1:37:23
knowledge, as well as instructions which we then feed
1:37:26
instructions which we then feed
1:37:26
instructions which we then feed to the large language model.
1:37:28
to the large language model.
1:37:28
to the large language model. Allowing them to generate a
1:37:29
Allowing them to generate a
1:37:29
Allowing them to generate a response.
1:37:29
response.
1:37:29
response. Which magically is now grounded
1:37:32
Which magically is now grounded
1:37:33
Which magically is now grounded in that data.
1:37:34
in that data.
1:37:34
in that data. This is the chat architecture
1:37:37
This is the chat architecture
1:37:37
This is the chat architecture and you can almost see, the user
1:37:44
and you can almost see, the user
1:37:45
and you can almost see, the user -- starting with Azure open
1:37:52
-- starting with Azure open
1:37:52
-- starting with Azure open A.I.
1:37:52
A.I.
1:37:52
A.I. service, which takes the
1:37:54
service, which takes the
1:37:54
service, which takes the vectorized quarry and sends it
1:37:59
vectorized quarry and sends it
1:37:59
vectorized quarry and sends it to search, it can also send it
1:38:01
to search, it can also send it
1:38:01
to search, it can also send it to Cosmos DB, get back
1:38:02
to Cosmos DB, get back
1:38:02
to Cosmos DB, get back knowledge, enhance the prompt ,
1:38:03
knowledge, enhance the prompt ,
1:38:03
knowledge, enhance the prompt , fetid back to the chat
1:38:04
fetid back to the chat
1:38:04
fetid back to the chat completion message which gets
1:38:04
completion message which gets
1:38:05
completion message which gets the response which goes back
1:38:06
the response which goes back
1:38:06
the response which goes back out.
1:38:06
out.
1:38:06
out. Simple, right?
1:38:08
Simple, right?
1:38:08
Simple, right? Not so fast.
1:38:11
Not so fast.
1:38:12
Not so fast. This is actually really
1:38:13
This is actually really
1:38:13
This is actually really complicated.
1:38:15
complicated.
1:38:15
complicated. You may have heard the term Jen
1:38:17
You may have heard the term Jen
1:38:17
You may have heard the term Jen A.I.
1:38:17
A.I.
1:38:17
A.I. ops where the application
1:38:18
ops where the application
1:38:18
ops where the application lifecycle is
1:48:41
SO IF YOU GO THROUGH OUR
1:48:42
SO IF YOU GO THROUGH OUR
1:48:42
SO IF YOU GO THROUGH OUR WORKSHOP, WHAT WE DO IS WE
1:48:43
WORKSHOP, WHAT WE DO IS WE
1:48:43
WORKSHOP, WHAT WE DO IS WE ACTUALLY THEN FIX THAT BY
1:48:46
ACTUALLY THEN FIX THAT BY
1:48:46
ACTUALLY THEN FIX THAT BY PROVIDING THE NAME OF OUR
1:48:48
PROVIDING THE NAME OF OUR
1:48:48
PROVIDING THE NAME OF OUR DEPLOYMENT AND HAVE END POINT
1:48:49
DEPLOYMENT AND HAVE END POINT
1:48:49
DEPLOYMENT AND HAVE END POINT SETUP TO USE IN VARIABLES WE'VE
1:48:51
SETUP TO USE IN VARIABLES WE'VE
1:48:51
SETUP TO USE IN VARIABLES WE'VE ALREADY CREATED.
1:48:51
ALREADY CREATED.
1:48:51
ALREADY CREATED. SO NOW LET'S GO AHEAD AND RUN
1:48:55
SO NOW LET'S GO AHEAD AND RUN
1:48:55
SO NOW LET'S GO AHEAD AND RUN THIS AGAIN.
1:48:56
THIS AGAIN.
1:48:56
THIS AGAIN. SO THIS IS EQUAL ITERATION.
1:48:57
SO THIS IS EQUAL ITERATION.
1:48:57
SO THIS IS EQUAL ITERATION. YOU -- AND NOW YOU FIX THE
1:49:00
YOU -- AND NOW YOU FIX THE
1:49:00
YOU -- AND NOW YOU FIX THE ISSUES THAT IT HAD, AND YOU CAN
1:49:03
ISSUES THAT IT HAD, AND YOU CAN
1:49:03
ISSUES THAT IT HAD, AND YOU CAN -- SO THIS IS VERSION 1. SO
1:49:05
-- SO THIS IS VERSION 1. SO
1:49:05
-- SO THIS IS VERSION 1. SO WHEN I RUN IT THIS TIME --
1:49:16
WHEN I RUN IT THIS TIME --
1:49:16
WHEN I RUN IT THIS TIME -- LET'S TRY THIS AGAIN.
1:49:17
LET'S TRY THIS AGAIN.
1:49:17
LET'S TRY THIS AGAIN. ALL RIGHT.
1:49:18
ALL RIGHT.
1:49:20
ALL RIGHT. IF YOU CAN SEE THE RESULTS
1:49:22
IF YOU CAN SEE THE RESULTS
1:49:22
IF YOU CAN SEE THE RESULTS HERE, NOW STAY INSIDE CODE, I
1:49:25
HERE, NOW STAY INSIDE CODE, I
1:49:25
HERE, NOW STAY INSIDE CODE, I WAS ABLE TO RUN THIS PROMPTEE,
1:49:26
WAS ABLE TO RUN THIS PROMPTEE,
1:49:26
WAS ABLE TO RUN THIS PROMPTEE, CONFIGURE IT TO TALK TO THE
1:49:28
CONFIGURE IT TO TALK TO THE
1:49:28
CONFIGURE IT TO TALK TO THE MODEL, AND IT USED THIS IN THE
1:49:30
MODEL, AND IT USED THIS IN THE
1:49:30
MODEL, AND IT USED THIS IN THE SYSTEM CONTEXT AND USED THIS AS
1:49:33
SYSTEM CONTEXT AND USED THIS AS
1:49:33
SYSTEM CONTEXT AND USED THIS AS MY INSTRUCTIONS AND ANSWERED
1:49:34
MY INSTRUCTIONS AND ANSWERED
1:49:34
MY INSTRUCTIONS AND ANSWERED THIS QUESTION WHICH IS WHAT CAN
1:49:37
THIS QUESTION WHICH IS WHAT CAN
1:49:37
THIS QUESTION WHICH IS WHAT CAN YOU TELL ME ABOUT YOUR TENTS.
1:49:37
YOU TELL ME ABOUT YOUR TENTS.
1:49:37
YOU TELL ME ABOUT YOUR TENTS. AND AS YOU CAN SEE IT FOLLOWED
1:49:41
AND AS YOU CAN SEE IT FOLLOWED
1:49:41
AND AS YOU CAN SEE IT FOLLOWED THE INSTRUCTIONS.
1:49:41
THE INSTRUCTIONS.
1:49:41
THE INSTRUCTIONS. I'M HELPING THIS PERSON, USING
1:49:43
I'M HELPING THIS PERSON, USING
1:49:43
I'M HELPING THIS PERSON, USING THEIR NAME TO ADDRESS THEM.
1:49:44
THEIR NAME TO ADDRESS THEM.
1:49:44
THEIR NAME TO ADDRESS THEM. IT'S STILL NOT GROUNDED IN MY
1:49:45
IT'S STILL NOT GROUNDED IN MY
1:49:45
IT'S STILL NOT GROUNDED IN MY DATA.
1:49:45
DATA.
1:49:45
DATA. BUT THIS IS HOW WE CAN START
1:49:48
BUT THIS IS HOW WE CAN START
1:49:48
BUT THIS IS HOW WE CAN START ITERATING.
1:49:48
ITERATING.
1:49:48
ITERATING. THE NEXT STEP WE'RE GOING TO DO
1:49:51
THE NEXT STEP WE'RE GOING TO DO
1:49:51
THE NEXT STEP WE'RE GOING TO DO IS WE'RE GOING TO TAKE THE
1:49:52
IS WE'RE GOING TO TAKE THE
1:49:52
IS WE'RE GOING TO TAKE THE SAMPLE INPUT AND MOVE IT INTO A
1:49:55
SAMPLE INPUT AND MOVE IT INTO A
1:49:55
SAMPLE INPUT AND MOVE IT INTO A FILE.
1:49:55
FILE.
1:49:55
FILE. NOW YOU'RE BEGINNING TO SEE
1:49:56
NOW YOU'RE BEGINNING TO SEE
1:49:56
NOW YOU'RE BEGINNING TO SEE DATA THAT HAS THE SHAPE OF THE
1:50:00
DATA THAT HAS THE SHAPE OF THE
1:50:00
DATA THAT HAS THE SHAPE OF THE KIND OF DATA THAT YOU WOULD
1:50:03
KIND OF DATA THAT YOU WOULD
1:50:03
KIND OF DATA THAT YOU WOULD ACTUALLY FIND IN COSMOS DB.
1:50:05
ACTUALLY FIND IN COSMOS DB.
1:50:05
ACTUALLY FIND IN COSMOS DB. HERE IS MY CUSTOMER,
1:50:07
HERE IS MY CUSTOMER,
1:50:07
HERE IS MY CUSTOMER, UNSTRUCTURED DATA THAT, IS MY
1:50:08
UNSTRUCTURED DATA THAT, IS MY
1:50:08
UNSTRUCTURED DATA THAT, IS MY CUSTOMER INPUT, THERE ARE THE
1:50:09
CUSTOMER INPUT, THERE ARE THE
1:50:09
CUSTOMER INPUT, THERE ARE THE ORDERS.
1:50:09
ORDERS.
1:50:09
ORDERS. I CAN NOW GO AHEAD AND ITERATE
1:50:13
I CAN NOW GO AHEAD AND ITERATE
1:50:13
I CAN NOW GO AHEAD AND ITERATE ON THAT CHAT PROMPTEE TO USE
1:50:15
ON THAT CHAT PROMPTEE TO USE
1:50:15
ON THAT CHAT PROMPTEE TO USE THIS FILE AS THE DATA.
1:50:17
THIS FILE AS THE DATA.
1:50:17
THIS FILE AS THE DATA. NOW, BY DOING THIS, I'VE
1:50:19
NOW, BY DOING THIS, I'VE
1:50:19
NOW, BY DOING THIS, I'VE IMMEDIATELY MOVED AWAY, I'VE
1:50:20
IMMEDIATELY MOVED AWAY, I'VE
1:50:20
IMMEDIATELY MOVED AWAY, I'VE STARTED SHAPING THE DATA.
1:50:21
STARTED SHAPING THE DATA.
1:50:21
STARTED SHAPING THE DATA. SO NOW BY HAVING IT TAKE THE
1:50:24
SO NOW BY HAVING IT TAKE THE
1:50:24
SO NOW BY HAVING IT TAKE THE INPUTS FROM A JAY FILE, I
1:50:27
INPUTS FROM A JAY FILE, I
1:50:28
INPUTS FROM A JAY FILE, I CONTINUE TO TEST MY PROMPTEE
1:50:28
CONTINUE TO TEST MY PROMPTEE
1:50:28
CONTINUE TO TEST MY PROMPTEE TEMPLATE, BUT KNOW THAT DOWN
1:50:30
TEMPLATE, BUT KNOW THAT DOWN
1:50:30
TEMPLATE, BUT KNOW THAT DOWN THE LINE I CAN CONNECT TO AN
1:50:33
THE LINE I CAN CONNECT TO AN
1:50:33
THE LINE I CAN CONNECT TO AN API TO GET THAT DATA
1:50:34
API TO GET THAT DATA
1:50:34
API TO GET THAT DATA DYNAMICALLY DURING MY ORGANIZE
1:50:37
DYNAMICALLY DURING MY ORGANIZE
1:50:37
DYNAMICALLY DURING MY ORGANIZE STRAITION STEP.
1:50:38
STRAITION STEP.
1:50:38
STRAITION STEP. SO HERE MY SAMPLE FILE IS
1:50:41
SO HERE MY SAMPLE FILE IS
1:50:41
SO HERE MY SAMPLE FILE IS CONNECTED TO A VERY SIMPLE
1:50:44
CONNECTED TO A VERY SIMPLE
1:50:44
CONNECTED TO A VERY SIMPLE CUSTOMER RECORD.
1:50:44
CUSTOMER RECORD.
1:50:44
CUSTOMER RECORD. I'VE ALSO NOW ENHANCED MY
1:50:46
I'VE ALSO NOW ENHANCED MY
1:50:46
I'VE ALSO NOW ENHANCED MY PROMPT TEMPLATE TO USE THIS
1:50:49
PROMPT TEMPLATE TO USE THIS
1:50:49
PROMPT TEMPLATE TO USE THIS INFORMATION IN MEANINGFUL WAYS,
1:50:50
INFORMATION IN MEANINGFUL WAYS,
1:50:50
INFORMATION IN MEANINGFUL WAYS, AND I'VE GIVEN INSTRUCTIONS FOR
1:50:51
AND I'VE GIVEN INSTRUCTIONS FOR
1:50:51
AND I'VE GIVEN INSTRUCTIONS FOR THE MODEL TO ANSWER THE
1:50:55
THE MODEL TO ANSWER THE
1:50:55
THE MODEL TO ANSWER THE QUESTION GROUNDED IN THIS
1:50:56
QUESTION GROUNDED IN THIS
1:50:56
QUESTION GROUNDED IN THIS CONTEXT.
1:50:56
CONTEXT.
1:50:56
CONTEXT. SO NOTE THAT I'M STILL TAKING
1:50:58
SO NOTE THAT I'M STILL TAKING
1:50:59
SO NOTE THAT I'M STILL TAKING DATA FROM A SAMPLE FILE, BUT
1:51:01
DATA FROM A SAMPLE FILE, BUT
1:51:02
DATA FROM A SAMPLE FILE, BUT IT'S BEGINNING TO RESPOND TO
1:51:04
IT'S BEGINNING TO RESPOND TO
1:51:04
IT'S BEGINNING TO RESPOND TO THE WAY IN WHICH I AM
1:51:06
THE WAY IN WHICH I AM
1:51:06
THE WAY IN WHICH I AM ENGINEERING MY PROMPT TEMPLATE.
1:51:07
ENGINEERING MY PROMPT TEMPLATE.
1:51:07
ENGINEERING MY PROMPT TEMPLATE. IN THE NEXT STEP, I CAN KEEP
1:51:08
IN THE NEXT STEP, I CAN KEEP
1:51:08
IN THE NEXT STEP, I CAN KEEP GOING, SO WE CAN KIND OF GO
1:51:11
GOING, SO WE CAN KIND OF GO
1:51:11
GOING, SO WE CAN KIND OF GO THROUGH THIS WHOLE THING IF YOU
1:51:13
THROUGH THIS WHOLE THING IF YOU
1:51:13
THROUGH THIS WHOLE THING IF YOU LIKE.
1:51:13
LIKE.
1:51:13
LIKE. BUT THE NEXT STEP, WHAT WE'RE
1:51:14
BUT THE NEXT STEP, WHAT WE'RE
1:51:14
BUT THE NEXT STEP, WHAT WE'RE GOING TO DO IS WE'RE REALLY
1:51:16
GOING TO DO IS WE'RE REALLY
1:51:16
GOING TO DO IS WE'RE REALLY ADDING SAFETY.
1:51:16
ADDING SAFETY.
1:51:17
ADDING SAFETY. SO IN THIS PARTICULAR CASE, I'M
1:51:17
SO IN THIS PARTICULAR CASE, I'M
1:51:17
SO IN THIS PARTICULAR CASE, I'M GOING TO LOOK AT THIS AND SAY,
1:51:19
GOING TO LOOK AT THIS AND SAY,
1:51:19
GOING TO LOOK AT THIS AND SAY, ALL RIGHT, I'VE ACTUALLY -- I'M
1:51:23
ALL RIGHT, I'VE ACTUALLY -- I'M
1:51:23
ALL RIGHT, I'VE ACTUALLY -- I'M GOING TO CHANGE THIS TO -- NOW,
1:51:26
GOING TO CHANGE THIS TO -- NOW,
1:51:26
GOING TO CHANGE THIS TO -- NOW, YOU'LL SEE WHY IN A MINUTE.
1:51:28
YOU'LL SEE WHY IN A MINUTE.
1:51:28
YOU'LL SEE WHY IN A MINUTE. IT'S A SAMPLE THAT ACTUALLY
1:51:36
IT'S A SAMPLE THAT ACTUALLY
1:51:36
IT'S A SAMPLE THAT ACTUALLY PUTS A JAILBREAKING STYLE
1:51:37
PUTS A JAILBREAKING STYLE
1:51:37
PUTS A JAILBREAKING STYLE INPUT.
1:51:37
INPUT.
1:51:37
INPUT. SO HERE ALL I'VE DONE IS SAYING
1:51:38
SO HERE ALL I'VE DONE IS SAYING
1:51:38
SO HERE ALL I'VE DONE IS SAYING IS THIS KIND OF ALLOWING ME TO
1:51:41
IS THIS KIND OF ALLOWING ME TO
1:51:41
IS THIS KIND OF ALLOWING ME TO WORK WITH PROMPTS THAT COULD
1:51:42
WORK WITH PROMPTS THAT COULD
1:51:42
WORK WITH PROMPTS THAT COULD JAILBREAK MY CONTENT.
1:51:43
JAILBREAK MY CONTENT.
1:51:43
JAILBREAK MY CONTENT. SO IF I GO BACK TO WHERE I WAS
1:51:45
SO IF I GO BACK TO WHERE I WAS
1:51:45
SO IF I GO BACK TO WHERE I WAS BEFORE, AND I TRY TO USE THAT
1:51:49
BEFORE, AND I TRY TO USE THAT
1:51:49
BEFORE, AND I TRY TO USE THAT INPUT, YOU WILL NOTICE THAT IT
1:51:53
INPUT, YOU WILL NOTICE THAT IT
1:51:53
INPUT, YOU WILL NOTICE THAT IT WILL IN FACT ALLOW IT TO SAY
1:51:56
WILL IN FACT ALLOW IT TO SAY
1:51:56
WILL IN FACT ALLOW IT TO SAY HARMFUL THINGS.
1:51:56
HARMFUL THINGS.
1:51:56
HARMFUL THINGS. LET'S SEE IF THAT JUST RUNS.
1:51:58
LET'S SEE IF THAT JUST RUNS.
1:51:58
LET'S SEE IF THAT JUST RUNS. THERE YOU GO.
1:51:59
THERE YOU GO.
1:51:59
THERE YOU GO. SO YOU'LL NOTICE THAT I ASKED
1:52:00
SO YOU'LL NOTICE THAT I ASKED
1:52:00
SO YOU'LL NOTICE THAT I ASKED IT IN THE PROMPT TO TELL ME
1:52:03
IT IN THE PROMPT TO TELL ME
1:52:03
IT IN THE PROMPT TO TELL ME ABOUT ITS RULES AND USE BAD
1:52:05
ABOUT ITS RULES AND USE BAD
1:52:05
ABOUT ITS RULES AND USE BAD EMOJIS, AND I DID THAT BECAUSE
1:52:06
EMOJIS, AND I DID THAT BECAUSE
1:52:06
EMOJIS, AND I DID THAT BECAUSE I DIDN'T HAVE ANY SAFETY GUARD
1:52:08
I DIDN'T HAVE ANY SAFETY GUARD
1:52:08
I DIDN'T HAVE ANY SAFETY GUARD RAILS.
1:52:08
RAILS.
1:52:08
RAILS. NOW WHEN I MOVE TO THE NEXT
1:52:11
NOW WHEN I MOVE TO THE NEXT
1:52:11
NOW WHEN I MOVE TO THE NEXT ITERATION WHERE I'VE PUT THE
1:52:12
ITERATION WHERE I'VE PUT THE
1:52:12
ITERATION WHERE I'VE PUT THE SAFETY GUARD RAILS IN, IF I NOW
1:52:13
SAFETY GUARD RAILS IN, IF I NOW
1:52:13
SAFETY GUARD RAILS IN, IF I NOW TRY TO RUN THIS WITH THE SAME
1:52:15
TRY TO RUN THIS WITH THE SAME
1:52:15
TRY TO RUN THIS WITH THE SAME INPUT, YOU WILL NOTICE THAT IT
1:52:17
INPUT, YOU WILL NOTICE THAT IT
1:52:17
INPUT, YOU WILL NOTICE THAT IT WILL NOT ALLOW IT.
1:52:18
WILL NOT ALLOW IT.
1:52:18
WILL NOT ALLOW IT. SO LET'S KIND OF WAIT UNTIL
1:52:20
SO LET'S KIND OF WAIT UNTIL
1:52:20
SO LET'S KIND OF WAIT UNTIL THIS IS DONE, AND IT'LL SAY,
1:52:21
THIS IS DONE, AND IT'LL SAY,
1:52:21
THIS IS DONE, AND IT'LL SAY, I'M SORRY, JOHN, I CAN'T SHARE
1:52:23
I'M SORRY, JOHN, I CAN'T SHARE
1:52:23
I'M SORRY, JOHN, I CAN'T SHARE THIS INFORMATION.
1:52:24
THIS INFORMATION.
1:52:24
THIS INFORMATION. SO THIS GIVES YOU KIND OF A
1:52:26
SO THIS GIVES YOU KIND OF A
1:52:26
SO THIS GIVES YOU KIND OF A REALLY GOOD SENSE FOR HOW WE
1:52:29
REALLY GOOD SENSE FOR HOW WE
1:52:29
REALLY GOOD SENSE FOR HOW WE CAN START IDEAATING RIGHT IN
1:52:30
CAN START IDEAATING RIGHT IN
1:52:30
CAN START IDEAATING RIGHT IN THE BROWSER, AND AT THE SAME
1:52:31
THE BROWSER, AND AT THE SAME
1:52:31
THE BROWSER, AND AT THE SAME TIME WE'RE USING A SAMPLE OF
1:52:33
TIME WE'RE USING A SAMPLE OF
1:52:33
TIME WE'RE USING A SAMPLE OF DATA THAT WE WOULD FIND IN
1:52:35
DATA THAT WE WOULD FIND IN
1:52:35
DATA THAT WE WOULD FIND IN COSMOS DB LATER.
1:52:36
COSMOS DB LATER.
1:52:36
COSMOS DB LATER. BUT YOU'RE ASKING YOURSELF THIS
1:52:37
BUT YOU'RE ASKING YOURSELF THIS
1:52:37
BUT YOU'RE ASKING YOURSELF THIS IS A PROMPTEE ASSET RUNNING IN
1:52:39
IS A PROMPTEE ASSET RUNNING IN
1:52:39
IS A PROMPTEE ASSET RUNNING IN A VSO RUN TIME.
1:52:40
A VSO RUN TIME.
1:52:40
A VSO RUN TIME. HOW DO I MAKE THIS WORK IN A
1:52:44
HOW DO I MAKE THIS WORK IN A
1:52:44
HOW DO I MAKE THIS WORK IN A CODE WORK FLOW?
1:52:45
CODE WORK FLOW?
1:52:45
CODE WORK FLOW? TO DO THAT, PROMPTEE ACTUALLY
1:52:47
TO DO THAT, PROMPTEE ACTUALLY
1:52:47
TO DO THAT, PROMPTEE ACTUALLY HAS A BUILT-IN CAPABILITY THAT
1:52:48
HAS A BUILT-IN CAPABILITY THAT
1:52:48
HAS A BUILT-IN CAPABILITY THAT WILL ALLOW YOU TO CONVERT IT TO
1:52:50
WILL ALLOW YOU TO CONVERT IT TO
1:52:50
WILL ALLOW YOU TO CONVERT IT TO CODE.
1:52:51
CODE.
1:52:51
CODE. SO YOU WILL BE ABLE TO GET A
1:52:52
SO YOU WILL BE ABLE TO GET A
1:52:52
SO YOU WILL BE ABLE TO GET A PYTHON VERSION OF THE SAME CODE
1:52:54
PYTHON VERSION OF THE SAME CODE
1:52:54
PYTHON VERSION OF THE SAME CODE THAT YOU CAN THEN RUN TO GET
1:53:01
THAT YOU CAN THEN RUN TO GET
1:53:01
THAT YOU CAN THEN RUN TO GET THE RESULTS THAT YOU WANT.
1:53:04
THE RESULTS THAT YOU WANT.
1:53:04
THE RESULTS THAT YOU WANT. WITH THAT WE KIND OF GET -- YOU
1:53:21
WITH THAT WE KIND OF GET -- YOU
1:53:21
WITH THAT WE KIND OF GET -- YOU CAN REPLACE THE LOADING OF THE
1:53:23
CAN REPLACE THE LOADING OF THE
1:53:23
CAN REPLACE THE LOADING OF THE FILE WITH THE CALLS TO
2:04:04
>> Currently most companies
2:04:09
>> Currently most companies
2:04:09
>> Currently most companies using only use their own agent
2:04:13
using only use their own agent
2:04:13
using only use their own agent but I truly believe our agents
2:04:15
but I truly believe our agents
2:04:15
but I truly believe our agents are much more powerful to
2:04:16
are much more powerful to
2:04:16
are much more powerful to cooperate together.
2:04:28
cooperate together.
2:04:28
cooperate together. I am envisioning agents to be
2:04:30
I am envisioning agents to be
2:04:30
I am envisioning agents to be rented out to other companies at
2:04:32
rented out to other companies at
2:04:32
rented out to other companies at integrate into their system,
2:04:34
integrate into their system,
2:04:34
integrate into their system, negotiation, negotiating about
2:04:37
negotiation, negotiating about
2:04:37
negotiation, negotiating about contracts and building together
2:04:40
contracts and building together
2:04:40
contracts and building together on joint projects.
2:04:42
on joint projects.
2:04:42
on joint projects. And this is why closely followed
2:04:45
And this is why closely followed
2:04:45
And this is why closely followed A.I.
2:04:46
A.I.
2:04:46
A.I. agent protocols.
2:04:46
agent protocols.
2:04:46
agent protocols. Continuously adapting our
2:04:47
Continuously adapting our
2:04:47
Continuously adapting our system with the help of Azure
2:04:50
system with the help of Azure
2:04:50
system with the help of Azure Cosmos database preparing us to
2:04:52
Cosmos database preparing us to
2:04:52
Cosmos database preparing us to be ready when one of these
2:04:55
be ready when one of these
2:04:55
be ready when one of these protocols becomes ready.
2:04:56
protocols becomes ready.
2:04:56
protocols becomes ready. And with the recent
2:04:57
And with the recent
2:04:57
And with the recent announcements I believe this is
2:05:02
announcements I believe this is
2:05:02
announcements I believe this is the number one contestant.
2:05:08
the number one contestant.
2:05:09
the number one contestant. With that I want to close, I
2:05:10
With that I want to close, I
2:05:10
With that I want to close, I provided more resources about
2:05:11
provided more resources about
2:05:11
provided more resources about different agent to call
2:05:11
different agent to call
2:05:12
different agent to call responses and with that I wish
2:05:13
responses and with that I wish
2:05:13
responses and with that I wish you all the best for the rest
2:05:15
you all the best for the rest
2:05:15
you all the best for the rest of the conference, enjoy.
2:05:18
of the conference, enjoy.
2:05:19
of the conference, enjoy. >> Thank you , really
2:05:21
>> Thank you , really
2:05:21
>> Thank you , really interesting stuff, I really
2:05:23
interesting stuff, I really
2:05:23
interesting stuff, I really loved the story about how to be
2:05:30
loved the story about how to be
2:05:30
loved the story about how to be on the copilot experience
2:05:31
on the copilot experience
2:05:31
on the copilot experience starting from the scenario to a
2:05:32
starting from the scenario to a
2:05:32
starting from the scenario to a quick start and then following
2:05:35
quick start and then following
2:05:35
quick start and then following best practices to go to a
2:05:37
best practices to go to a
2:05:37
best practices to go to a prototype to production.
2:05:38
prototype to production.
2:05:38
prototype to production. The AIA gent topic is always
2:05:40
The AIA gent topic is always
2:05:40
The AIA gent topic is always very interesting and I've
2:05:42
very interesting and I've
2:05:42
very interesting and I've always been wondering how the
2:05:43
always been wondering how the
2:05:43
always been wondering how the agents actually communicate
2:05:43
agents actually communicate
2:05:43
agents actually communicate with each other.
2:05:45
with each other.
2:05:45
with each other. Now there is the model context
2:05:47
Now there is the model context
2:05:47
Now there is the model context protocol which makes that
2:05:49
protocol which makes that
2:05:49
protocol which makes that possible.
2:05:51
possible.
2:05:51
possible. What about you, Patty, what did
2:05:53
What about you, Patty, what did
2:05:53
What about you, Patty, what did you like about the session?
2:05:57
you like about the session?
2:05:57
you like about the session? >> I especially liked Nitya's
2:06:03
>> I especially liked Nitya's
2:06:04
>> I especially liked Nitya's workshop, after this I can
2:06:04
workshop, after this I can
2:06:05
workshop, after this I can essentially get started and I
2:06:05
essentially get started and I
2:06:06
essentially get started and I cannot wait.
2:06:07
cannot wait.
2:06:07
cannot wait. >> Me neither, hands-on
2:06:08
>> Me neither, hands-on
2:06:08
>> Me neither, hands-on experience, right.
2:06:10
experience, right.
2:06:10
experience, right. By the way, let's go back to
2:06:11
By the way, let's go back to
2:06:12
By the way, let's go back to social media.
2:06:12
social media.
2:06:12
social media. This time we have a social
2:06:16
This time we have a social
2:06:16
This time we have a social media post from Dennis.
2:06:18
media post from Dennis.
2:06:18
media post from Dennis. He is saying he tuned in,
2:06:20
He is saying he tuned in,
2:06:20
He is saying he tuned in, soaking up this Azure Cosmos
2:06:25
soaking up this Azure Cosmos
2:06:25
soaking up this Azure Cosmos DB, the innovations in real-
2:06:26
DB, the innovations in real-
2:06:26
DB, the innovations in real- world use cases being
2:06:28
world use cases being
2:06:28
world use cases being showcased.
2:06:28
showcased.
2:06:28
showcased. Yes, it has been an amazing
2:06:30
Yes, it has been an amazing
2:06:30
Yes, it has been an amazing start for Azure Cosmos DB ,
2:06:33
start for Azure Cosmos DB ,
2:06:33
start for Azure Cosmos DB , lots of insights.
2:06:36
lots of insights.
2:06:37
lots of insights. Please keep the comments
2:06:37
Please keep the comments
2:06:37
Please keep the comments coming.
2:06:37
coming.
2:06:37
coming. Use the YouTube chat and leave
2:06:40
Use the YouTube chat and leave
2:06:40
Use the YouTube chat and leave your comments and also give us
2:06:41
your comments and also give us
2:06:41
your comments and also give us feedback using the evaluation
2:06:45
feedback using the evaluation
2:06:45
feedback using the evaluation form.
2:06:45
form.
2:06:45
form. >> Yes.
2:06:46
>> Yes.
2:06:46
>> Yes. Thank you, Dennis.
2:06:46
Thank you, Dennis.
2:06:47
Thank you, Dennis. Last year we talked a lot about
2:06:51
Last year we talked a lot about
2:06:51
Last year we talked a lot about cost optimization and the
2:06:52
cost optimization and the
2:06:52
cost optimization and the release of dynamic scaling.
2:06:54
release of dynamic scaling.
2:06:54
release of dynamic scaling. And now we will share about how
2:07:01
And now we will share about how
2:07:01
And now we will share about how our friends at QVC are going to
2:07:02
our friends at QVC are going to
2:07:02
our friends at QVC are going to build a centralized data help
2:07:03
build a centralized data help
2:07:03
build a centralized data help with Azure Cosmos DB , first
2:07:05
with Azure Cosmos DB , first
2:07:06
with Azure Cosmos DB , first let's hear how -- is helping
2:07:09
let's hear how -- is helping
2:07:10
let's hear how -- is helping the world of gaming stay
2:07:10
the world of gaming stay
2:07:11
the world of gaming stay secure.
2:07:11
secure.
2:07:11
secure. Let's take a look.
2:07:14
Let's take a look.
2:07:14
Let's take a look. >> My name is Mike Calvin, the
2:07:15
>> My name is Mike Calvin, the
2:07:15
>> My name is Mike Calvin, the CTO at connect if I and we
2:07:17
CTO at connect if I and we
2:07:17
CTO at connect if I and we build an anti-money laundering
2:07:20
build an anti-money laundering
2:07:20
build an anti-money laundering compliance field for the gaming
2:07:21
compliance field for the gaming
2:07:21
compliance field for the gaming industry, for the largest
2:07:27
industry, for the largest
2:07:27
industry, for the largest casinos and gaming
2:07:28
casinos and gaming
2:07:28
casinos and gaming organizations in the country.
2:07:28
organizations in the country.
2:07:28
organizations in the country. I am responsible for the entire
2:07:30
I am responsible for the entire
2:07:30
I am responsible for the entire technology team.
2:07:30
technology team.
2:07:30
technology team. I'm also the principal
2:07:31
I'm also the principal
2:07:31
I'm also the principal architect for the platform and
2:07:34
architect for the platform and
2:07:34
architect for the platform and first-line Dakotas back in 2021.
2:07:43
first-line Dakotas back in 2021.
2:07:44
first-line Dakotas back in 2021. We are using Azure Cosmos DB as
2:07:45
We are using Azure Cosmos DB as
2:07:45
We are using Azure Cosmos DB as our operational data store ,
2:07:49
our operational data store ,
2:07:49
our operational data store , millions of transactions a day
2:07:50
millions of transactions a day
2:07:50
millions of transactions a day into our platform, analyzing
2:07:51
into our platform, analyzing
2:07:51
into our platform, analyzing members of the dishes activity
2:07:53
members of the dishes activity
2:07:53
members of the dishes activity and then processing and getting
2:07:57
and then processing and getting
2:07:58
and then processing and getting the final of those
2:07:58
the final of those
2:07:58
the final of those transactions.
2:07:58
transactions.
2:07:59
transactions. We have a very -- Cosmos DB has
2:08:07
We have a very -- Cosmos DB has
2:08:07
We have a very -- Cosmos DB has in an awesome solution for us
2:08:08
in an awesome solution for us
2:08:08
in an awesome solution for us to be able to scale up,
2:08:12
to be able to scale up,
2:08:12
to be able to scale up, horizontally, as needed and
2:08:14
horizontally, as needed and
2:08:14
horizontally, as needed and manage costs as well, scaling
2:08:16
manage costs as well, scaling
2:08:16
manage costs as well, scaling back down to smaller sizes when
2:08:19
back down to smaller sizes when
2:08:19
back down to smaller sizes when we are not ingesting that data
2:08:20
we are not ingesting that data
2:08:20
we are not ingesting that data from our clients.
2:08:31
from our clients.
2:08:31
from our clients. >> We utilize a ton of benefit
2:08:32
>> We utilize a ton of benefit
2:08:33
>> We utilize a ton of benefit from Cosmos DB, everything from
2:08:33
from Cosmos DB, everything from
2:08:34
from Cosmos DB, everything from ultra to high-performance.
2:08:34
ultra to high-performance.
2:08:34
ultra to high-performance. From anywhere in the world.
2:08:37
From anywhere in the world.
2:08:37
From anywhere in the world. Hyper scalability.
2:08:38
Hyper scalability.
2:08:38
Hyper scalability. We have gone from databases,
2:08:41
We have gone from databases,
2:08:41
We have gone from databases, measured in single digit data
2:08:43
measured in single digit data
2:08:43
measured in single digit data bites to multiple terabytes in
2:08:46
bites to multiple terabytes in
2:08:46
bites to multiple terabytes in about a year and a half.
2:08:48
about a year and a half.
2:08:48
about a year and a half. We have been able to scale very
2:08:50
We have been able to scale very
2:08:50
We have been able to scale very quickly on cosmos and dramatic
2:08:53
quickly on cosmos and dramatic
2:08:53
quickly on cosmos and dramatic huge developer impact, without
2:08:56
huge developer impact, without
2:08:56
huge developer impact, without having to deal with the
2:08:59
having to deal with the
2:08:59
having to deal with the complexities of relational
2:09:00
complexities of relational
2:09:00
complexities of relational databases and operational
2:09:02
databases and operational
2:09:02
databases and operational systems, so, it has made our
2:09:06
systems, so, it has made our
2:09:06
systems, so, it has made our developers faster, our
2:09:07
developers faster, our
2:09:07
developers faster, our deployments more reliable and
2:09:08
deployments more reliable and
2:09:08
deployments more reliable and our platform as performative as
2:09:12
our platform as performative as
2:09:12
our platform as performative as it possibly can be.
2:09:13
it possibly can be.
2:09:13
it possibly can be. >> Hello, I am Simon and I'm a
2:09:18
>> Hello, I am Simon and I'm a
2:09:18
>> Hello, I am Simon and I'm a lead software developer at --,
2:09:20
lead software developer at --,
2:09:20
lead software developer at --, Novo noticed has a lot of
2:09:24
Novo noticed has a lot of
2:09:24
Novo noticed has a lot of factories around the world,
2:09:25
factories around the world,
2:09:25
factories around the world, almost 100 factory lines in the
2:09:26
almost 100 factory lines in the
2:09:26
almost 100 factory lines in the plan is to -- over the next
2:09:28
plan is to -- over the next
2:09:28
plan is to -- over the next couple of years.
2:09:31
couple of years.
2:09:31
couple of years. We are expanding a lot and we
2:09:33
We are expanding a lot and we
2:09:33
We are expanding a lot and we need to keep that in mind when
2:09:34
need to keep that in mind when
2:09:34
need to keep that in mind when building software.
2:09:35
building software.
2:09:35
building software. Even though we have a
2:09:36
Even though we have a
2:09:37
Even though we have a predictable usage, it will grow
2:09:37
predictable usage, it will grow
2:09:37
predictable usage, it will grow steadily over time.
2:09:39
steadily over time.
2:09:39
steadily over time. What I'm here to talk about
2:09:41
What I'm here to talk about
2:09:41
What I'm here to talk about today is how our team uses
2:09:42
today is how our team uses
2:09:42
today is how our team uses Cosmos DB and how we have been
2:09:46
Cosmos DB and how we have been
2:09:46
Cosmos DB and how we have been able to reduce cost as a side
2:09:48
able to reduce cost as a side
2:09:48
able to reduce cost as a side effect of introducing new
2:09:48
effect of introducing new
2:09:48
effect of introducing new features in our line of
2:09:50
features in our line of
2:09:50
features in our line of business.
2:09:51
business.
2:09:53
business. So, first I will talk a little
2:09:55
So, first I will talk a little
2:09:55
So, first I will talk a little bit about our application, what
2:09:56
bit about our application, what
2:09:56
bit about our application, what is it used for, who are the
2:09:58
is it used for, who are the
2:09:58
is it used for, who are the uses and what does it bring?
2:10:03
uses and what does it bring?
2:10:03
uses and what does it bring? Then I will tell you something
2:10:04
Then I will tell you something
2:10:04
Then I will tell you something about the evolution of the app
2:10:06
about the evolution of the app
2:10:06
about the evolution of the app from a simple POC to the full-
2:10:08
from a simple POC to the full-
2:10:08
from a simple POC to the full- scale solution, being used out
2:10:09
scale solution, being used out
2:10:09
scale solution, being used out of the factories.
2:10:11
of the factories.
2:10:11
of the factories. Then I will go to the data
2:10:12
Then I will go to the data
2:10:12
Then I will go to the data modeling, the capacity mode and
2:10:13
modeling, the capacity mode and
2:10:13
modeling, the capacity mode and finally touch on the
2:10:16
finally touch on the
2:10:16
finally touch on the achievements we have made.
2:10:18
achievements we have made.
2:10:18
achievements we have made. Okay.
2:10:21
Okay.
2:10:21
Okay. The checklist here is a line of
2:10:24
The checklist here is a line of
2:10:24
The checklist here is a line of business applications being used
2:10:27
business applications being used
2:10:27
business applications being used by the arbitrators on the
2:10:28
by the arbitrators on the
2:10:28
by the arbitrators on the factory lines that I mentioned
2:10:29
factory lines that I mentioned
2:10:29
factory lines that I mentioned in the introduction.
2:10:31
in the introduction.
2:10:31
in the introduction. The application help the
2:10:32
The application help the
2:10:32
The application help the arbitrators coordinate work
2:10:38
arbitrators coordinate work
2:10:38
arbitrators coordinate work when they are doing the best
2:10:39
when they are doing the best
2:10:39
when they are doing the best changeover and the best
2:10:40
changeover and the best
2:10:40
changeover and the best changeovers the process being
2:10:40
changeovers the process being
2:10:41
changeovers the process being done when we go from producing
2:10:42
done when we go from producing
2:10:42
done when we go from producing run product to another.
2:10:43
run product to another.
2:10:43
run product to another. So, he could be on the line
2:10:44
So, he could be on the line
2:10:44
So, he could be on the line will repack a product and then
2:10:45
will repack a product and then
2:10:45
will repack a product and then we pack a product for Spain.
2:10:49
we pack a product for Spain.
2:10:50
we pack a product for Spain. The packing and labeling and
2:10:51
The packing and labeling and
2:10:51
The packing and labeling and everything is different we have
2:10:52
everything is different we have
2:10:52
everything is different we have to clear the line, clean it and
2:10:54
to clear the line, clean it and
2:10:54
to clear the line, clean it and make sure it is ready for the
2:10:55
make sure it is ready for the
2:10:55
make sure it is ready for the next bench.
2:10:56
next bench.
2:10:56
next bench. This could for example be six
2:11:01
This could for example be six
2:11:01
This could for example be six others to coordinate between
2:11:02
others to coordinate between
2:11:02
others to coordinate between maybe 50 and 100 different
2:11:04
maybe 50 and 100 different
2:11:04
maybe 50 and 100 different tasks.
2:11:04
tasks.
2:11:04
tasks. This you can imagine will take
2:11:05
This you can imagine will take
2:11:05
This you can imagine will take a long time and while the
2:11:07
a long time and while the
2:11:07
a long time and while the operators do their task, the
2:11:11
operators do their task, the
2:11:11
operators do their task, the line is standing still and when
2:11:13
line is standing still and when
2:11:13
line is standing still and when the line is standing still we
2:11:14
the line is standing still we
2:11:14
the line is standing still we don't produce products.
2:11:17
don't produce products.
2:11:17
don't produce products. By making this solution that
2:11:18
By making this solution that
2:11:18
By making this solution that can coordinate all of the tasks
2:11:19
can coordinate all of the tasks
2:11:19
can coordinate all of the tasks between the arbitrators we can
2:11:21
between the arbitrators we can
2:11:21
between the arbitrators we can actually reduce the total time
2:11:22
actually reduce the total time
2:11:22
actually reduce the total time it takes to do a best
2:11:24
it takes to do a best
2:11:24
it takes to do a best changeover but more importantly
2:11:25
changeover but more importantly
2:11:25
changeover but more importantly we can also reduce the number
2:11:27
we can also reduce the number
2:11:27
we can also reduce the number of mistakes or deviations that
2:11:28
of mistakes or deviations that
2:11:29
of mistakes or deviations that might occur.
2:11:29
might occur.
2:11:29
might occur. When you do these best
2:11:30
When you do these best
2:11:30
When you do these best changeovers and mistake
2:11:31
changeovers and mistake
2:11:31
changeovers and mistake automations can occur, and if
2:11:34
automations can occur, and if
2:11:34
automations can occur, and if it does and it is critical we
2:11:37
it does and it is critical we
2:11:37
it does and it is critical we may have to scrap the entire
2:11:38
may have to scrap the entire
2:11:38
may have to scrap the entire branch and that could be worth
2:11:40
branch and that could be worth
2:11:40
branch and that could be worth millions of dollars.
2:11:41
millions of dollars.
2:11:41
millions of dollars. So, just to recap.
2:11:43
So, just to recap.
2:11:43
So, just to recap. We have a simple app, you can
2:11:46
We have a simple app, you can
2:11:46
We have a simple app, you can call the checklist that
2:11:49
call the checklist that
2:11:49
call the checklist that contains metadata and a list of
2:11:50
contains metadata and a list of
2:11:50
contains metadata and a list of tasks that the arbitrator does
2:11:51
tasks that the arbitrator does
2:11:51
tasks that the arbitrator does eight during this order.
2:11:54
eight during this order.
2:11:54
eight during this order. On the picture you can see one
2:11:56
On the picture you can see one
2:11:56
On the picture you can see one of the arbitrators using our app
2:11:59
of the arbitrators using our app
2:11:59
of the arbitrators using our app , to the left you can see a
2:12:00
, to the left you can see a
2:12:01
, to the left you can see a screenshot of the app.
2:12:01
screenshot of the app.
2:12:01
screenshot of the app. It looks really simple and that
2:12:05
It looks really simple and that
2:12:05
It looks really simple and that is the point but there is
2:12:07
is the point but there is
2:12:07
is the point but there is actually a lot going on behind
2:12:08
actually a lot going on behind
2:12:08
actually a lot going on behind the scenes.
2:12:09
the scenes.
2:12:09
the scenes. Let me take you through the
2:12:10
Let me take you through the
2:12:10
Let me take you through the evolution of the app, from a
2:12:12
evolution of the app, from a
2:12:12
evolution of the app, from a simple POC to the scalable app
2:12:13
simple POC to the scalable app
2:12:14
simple POC to the scalable app we have today.
2:12:15
we have today.
2:12:15
we have today. This diagram shows the original
2:12:17
This diagram shows the original
2:12:17
This diagram shows the original POC and the assumptions we had,
2:12:22
POC and the assumptions we had,
2:12:22
POC and the assumptions we had, that this solution can reduce
2:12:24
that this solution can reduce
2:12:25
that this solution can reduce the best changeover and reduce
2:12:26
the best changeover and reduce
2:12:26
the best changeover and reduce deviations.
2:12:27
deviations.
2:12:27
deviations. The POC was actually very basic
2:12:31
The POC was actually very basic
2:12:31
The POC was actually very basic , just consisted of a swift
2:12:32
, just consisted of a swift
2:12:33
, just consisted of a swift application, and some metadata.
2:12:36
application, and some metadata.
2:12:36
application, and some metadata. This was done in a simple way
2:12:40
This was done in a simple way
2:12:40
This was done in a simple way to reduce the development time
2:12:41
to reduce the development time
2:12:41
to reduce the development time and allow us to move fast.
2:12:45
and allow us to move fast.
2:12:45
and allow us to move fast. As it turned out and as I
2:12:47
As it turned out and as I
2:12:47
As it turned out and as I alluded to before it could
2:12:48
alluded to before it could
2:12:48
alluded to before it could actually prove our assumptions,
2:12:50
actually prove our assumptions,
2:12:50
actually prove our assumptions, we got a go to build something
2:12:57
we got a go to build something
2:12:57
we got a go to build something that is scalable, maintainable
2:12:58
that is scalable, maintainable
2:12:58
that is scalable, maintainable and extendable and even though
2:13:00
and extendable and even though
2:13:00
and extendable and even though the POC worked at had basic
2:13:01
the POC worked at had basic
2:13:01
the POC worked at had basic flaws.
2:13:02
flaws.
2:13:02
flaws. For example, the most obvious
2:13:03
For example, the most obvious
2:13:03
For example, the most obvious is that the clients have to
2:13:08
is that the clients have to
2:13:08
is that the clients have to call to get updates.
2:13:09
call to get updates.
2:13:09
call to get updates. Every five seconds the app
2:13:10
Every five seconds the app
2:13:10
Every five seconds the app would ask for the -- it puts a
2:13:19
would ask for the -- it puts a
2:13:19
would ask for the -- it puts a lot of load on the back end and
2:13:21
lot of load on the back end and
2:13:21
lot of load on the back end and does not scale.
2:13:22
does not scale.
2:13:22
does not scale. If you have 5000 clients, our
2:13:23
If you have 5000 clients, our
2:13:23
If you have 5000 clients, our back end would have a problem.
2:13:24
back end would have a problem.
2:13:24
back end would have a problem. So, to fix this issue we
2:13:26
So, to fix this issue we
2:13:26
So, to fix this issue we introduced a shipment update.
2:13:35
introduced a shipment update.
2:13:35
introduced a shipment update. So, the back end will simply
2:13:36
So, the back end will simply
2:13:36
So, the back end will simply just broadcast events to the
2:13:37
just broadcast events to the
2:13:37
just broadcast events to the clients whenever something
2:13:38
clients whenever something
2:13:38
clients whenever something happens.
2:13:39
happens.
2:13:39
happens. So, for example, that could be
2:13:40
So, for example, that could be
2:13:40
So, for example, that could be when the back end when somebody
2:13:43
when the back end when somebody
2:13:43
when the back end when somebody completes the task, the
2:13:46
completes the task, the
2:13:46
completes the task, the broadcast task completed.
2:13:48
broadcast task completed.
2:13:48
broadcast task completed. And then at the time Azure did
2:13:53
And then at the time Azure did
2:13:53
And then at the time Azure did not have a reliable sub-
2:13:54
not have a reliable sub-
2:13:54
not have a reliable sub- protocol.
2:13:54
protocol.
2:13:54
protocol. So, all the events, oh, can we
2:13:57
So, all the events, oh, can we
2:13:57
So, all the events, oh, can we do the slide again?
2:14:04
do the slide again?
2:14:04
do the slide again? Okay.
2:14:07
Okay.
2:14:07
Okay. So, to fix this issue we
2:14:09
So, to fix this issue we
2:14:09
So, to fix this issue we introduced --.
2:14:12
introduced --.
2:14:12
introduced --. Instead of letting the clients
2:14:16
Instead of letting the clients
2:14:16
Instead of letting the clients pull for updates the back end
2:14:17
pull for updates the back end
2:14:18
pull for updates the back end simply broadcast events to the
2:14:20
simply broadcast events to the
2:14:20
simply broadcast events to the client.
2:14:20
client.
2:14:20
client. For example the back end would
2:14:21
For example the back end would
2:14:21
For example the back end would broadcast an event every time a
2:14:23
broadcast an event every time a
2:14:23
broadcast an event every time a task is completed.
2:14:24
task is completed.
2:14:24
task is completed. At the time Azure pops up
2:14:31
At the time Azure pops up
2:14:31
At the time Azure pops up there is no reliable sub-
2:14:32
there is no reliable sub-
2:14:32
there is no reliable sub- protocol and we cannot trust
2:14:33
protocol and we cannot trust
2:14:33
protocol and we cannot trust the events would reach the
2:14:34
the events would reach the
2:14:35
the events would reach the clients or that they would
2:14:35
clients or that they would
2:14:36
clients or that they would reach in the right order.
2:14:36
reach in the right order.
2:14:37
reach in the right order. The clients was thought to call
2:14:38
The clients was thought to call
2:14:38
The clients was thought to call the back end to get the latest
2:14:40
the back end to get the latest
2:14:40
the back end to get the latest data every time they got an
2:14:42
data every time they got an
2:14:42
data every time they got an event but it would still be
2:14:44
event but it would still be
2:14:44
event but it would still be fast enough to give the
2:14:45
fast enough to give the
2:14:45
fast enough to give the operators a realtime experience.
2:14:47
operators a realtime experience.
2:14:47
operators a realtime experience. So, when an operator pushes
2:14:49
So, when an operator pushes
2:14:49
So, when an operator pushes tasks off on the screen than
2:14:52
tasks off on the screen than
2:14:52
tasks off on the screen than all the other operators would
2:14:53
all the other operators would
2:14:53
all the other operators would see it immediately.
2:14:54
see it immediately.
2:14:54
see it immediately. So, even though this design was
2:14:57
So, even though this design was
2:14:57
So, even though this design was not optimal, the introduction
2:14:58
not optimal, the introduction
2:14:58
not optimal, the introduction pops up and later on it would
2:15:03
pops up and later on it would
2:15:03
pops up and later on it would end up being a really big
2:15:04
end up being a really big
2:15:04
end up being a really big benefit for us in cost
2:15:07
benefit for us in cost
2:15:07
benefit for us in cost optimization.
2:15:12
optimization.
2:15:12
optimization. So, the next iteration and the
2:15:13
So, the next iteration and the
2:15:13
So, the next iteration and the one we have today introduces
2:15:14
one we have today introduces
2:15:14
one we have today introduces Cosmos DB.
2:15:15
Cosmos DB.
2:15:15
Cosmos DB. During the development of new
2:15:16
During the development of new
2:15:16
During the development of new features, we realize that our
2:15:19
features, we realize that our
2:15:19
features, we realize that our data fits very well into this
2:15:23
data fits very well into this
2:15:23
data fits very well into this model where the data is being
2:15:24
model where the data is being
2:15:24
model where the data is being normalized.
2:15:25
normalized.
2:15:25
normalized. Our data structure was almost
2:15:30
Our data structure was almost
2:15:30
Our data structure was almost over-engineered and -- was kind
2:15:32
over-engineered and -- was kind
2:15:32
over-engineered and -- was kind of a pain.
2:15:32
of a pain.
2:15:32
of a pain. We actually prefer the
2:15:33
We actually prefer the
2:15:33
We actually prefer the flexibility of having this
2:15:37
flexibility of having this
2:15:37
flexibility of having this structure and if you like it
2:15:38
structure and if you like it
2:15:38
structure and if you like it increases our development
2:15:39
increases our development
2:15:39
increases our development speed.
2:15:39
speed.
2:15:39
speed. And at the same time Microsoft
2:15:41
And at the same time Microsoft
2:15:41
And at the same time Microsoft took out Azure reliable
2:15:45
took out Azure reliable
2:15:45
took out Azure reliable protocol as a preview and that
2:15:46
protocol as a preview and that
2:15:46
protocol as a preview and that had a major impact on all of
2:15:48
had a major impact on all of
2:15:48
had a major impact on all of our Cosmos DB usage . Now we
2:15:51
our Cosmos DB usage . Now we
2:15:51
our Cosmos DB usage . Now we can actually rely on messages
2:15:52
can actually rely on messages
2:15:52
can actually rely on messages getting to the client and in
2:15:54
getting to the client and in
2:15:54
getting to the client and in the right order. Instead of
2:15:57
the right order. Instead of
2:15:57
the right order. Instead of sending events to the client,
2:15:59
sending events to the client,
2:16:00
sending events to the client, we simply send the entire
2:16:01
we simply send the entire
2:16:01
we simply send the entire checklist data to every client
2:16:03
checklist data to every client
2:16:03
checklist data to every client and because of this we can also
2:16:05
and because of this we can also
2:16:05
and because of this we can also limit the number of operations
2:16:07
limit the number of operations
2:16:07
limit the number of operations that we actually have to do in
2:16:10
that we actually have to do in
2:16:11
that we actually have to do in the database.
2:16:12
the database.
2:16:13
the database. So, you can imagine having 1000
2:16:16
So, you can imagine having 1000
2:16:16
So, you can imagine having 1000 client, the 5000, every time
2:16:20
client, the 5000, every time
2:16:20
client, the 5000, every time someone to complete the task we
2:16:21
someone to complete the task we
2:16:21
someone to complete the task we still only do one Cosmos DB
2:16:24
still only do one Cosmos DB
2:16:24
still only do one Cosmos DB operation.
2:16:27
operation.
2:16:27
operation. And then at the back end would
2:16:29
And then at the back end would
2:16:29
And then at the back end would broadcast everything to the
2:16:30
broadcast everything to the
2:16:30
broadcast everything to the front end.
2:16:33
front end.
2:16:33
front end. So, data modeling.
2:16:37
So, data modeling.
2:16:37
So, data modeling. When we started out with Cosmos
2:16:38
When we started out with Cosmos
2:16:38
When we started out with Cosmos DB we initially considered
2:16:39
DB we initially considered
2:16:39
DB we initially considered using Cosmos DB for --
2:16:42
using Cosmos DB for --
2:16:42
using Cosmos DB for -- because all tasks in the task
2:16:44
because all tasks in the task
2:16:44
because all tasks in the task list have a specific order and
2:16:46
list have a specific order and
2:16:46
list have a specific order and some depend on other tasks.
2:16:47
some depend on other tasks.
2:16:47
some depend on other tasks. One of the benefits you saw in
2:16:50
One of the benefits you saw in
2:16:51
One of the benefits you saw in the database would be that we
2:16:55
the database would be that we
2:16:55
the database would be that we could use it to determine the
2:16:57
could use it to determine the
2:16:57
could use it to determine the most optimal task to perform
2:16:58
most optimal task to perform
2:16:58
most optimal task to perform next.
2:16:58
next.
2:16:58
next. When we thought about it we
2:16:59
When we thought about it we
2:16:59
When we thought about it we actually thought that maybe in
2:17:01
actually thought that maybe in
2:17:01
actually thought that maybe in the future the task would not
2:17:04
the future the task would not
2:17:04
the future the task would not be depending on each other and
2:17:05
be depending on each other and
2:17:05
be depending on each other and maybe some task would not be
2:17:09
maybe some task would not be
2:17:09
maybe some task would not be performed by an operator.
2:17:14
performed by an operator.
2:17:14
performed by an operator. We went away from this idea and
2:17:16
We went away from this idea and
2:17:16
We went away from this idea and went with Cosmos DB and
2:17:17
went with Cosmos DB and
2:17:17
went with Cosmos DB and initially we thought it would
2:17:20
initially we thought it would
2:17:20
initially we thought it would be a good idea and have a
2:17:28
be a good idea and have a
2:17:28
be a good idea and have a document with all the metadata
2:17:29
document with all the metadata
2:17:29
document with all the metadata with the checklist.
2:17:34
with the checklist.
2:17:34
with the checklist. When we did some experiments we
2:17:35
When we did some experiments we
2:17:35
When we did some experiments we actually found out that this
2:17:36
actually found out that this
2:17:36
actually found out that this model had a really high request
2:17:40
model had a really high request
2:17:40
model had a really high request consumption and having all
2:17:41
consumption and having all
2:17:41
consumption and having all tasks in a single document
2:17:42
tasks in a single document
2:17:42
tasks in a single document would be much better.
2:17:43
would be much better.
2:17:43
would be much better. That is what we ended up with,
2:17:46
That is what we ended up with,
2:17:47
That is what we ended up with, single document that just
2:17:47
single document that just
2:17:47
single document that just represents an entire checklist
2:17:48
represents an entire checklist
2:17:48
represents an entire checklist and all of the tasks involved
2:17:50
and all of the tasks involved
2:17:50
and all of the tasks involved in the checklist.
2:17:51
in the checklist.
2:17:51
in the checklist. It is a better solution because
2:17:53
It is a better solution because
2:17:53
It is a better solution because we can easily cover the data in
2:17:59
we can easily cover the data in
2:17:59
we can easily cover the data in a single document that contains
2:18:00
a single document that contains
2:18:00
a single document that contains all the information we need.
2:18:01
all the information we need.
2:18:01
all the information we need. And also the cost list request
2:18:03
And also the cost list request
2:18:03
And also the cost list request units can carry one of these
2:18:05
units can carry one of these
2:18:05
units can carry one of these documents.
2:18:06
documents.
2:18:06
documents. This model has one drawback
2:18:07
This model has one drawback
2:18:07
This model has one drawback though compared to having
2:18:09
though compared to having
2:18:09
though compared to having multiple small documents.
2:18:11
multiple small documents.
2:18:11
multiple small documents. There is a higher risk of
2:18:12
There is a higher risk of
2:18:12
There is a higher risk of getting concurrent up dates on
2:18:14
getting concurrent up dates on
2:18:14
getting concurrent up dates on the documents.
2:18:15
the documents.
2:18:15
the documents. Imagine two operators often to
2:18:16
Imagine two operators often to
2:18:16
Imagine two operators often to solve the task at the same time
2:18:21
solve the task at the same time
2:18:21
solve the task at the same time , this could result in two
2:18:22
, this could result in two
2:18:22
, this could result in two concurrent patch
2:18:23
concurrent patch
2:18:23
concurrent patch the documents.
2:18:24
the documents.
2:18:24
the documents. So, that could be a problem.
2:18:29
So, that could be a problem.
2:18:29
So, that could be a problem. So, if there was a concurrency
2:18:31
So, if there was a concurrency
2:18:31
So, if there was a concurrency issue then it will rise again.
2:18:33
issue then it will rise again.
2:18:33
issue then it will rise again. The developers are happy, the
2:18:34
The developers are happy, the
2:18:34
The developers are happy, the performance is good and the
2:18:38
performance is good and the
2:18:38
performance is good and the cost is actually pretty low.
2:18:41
cost is actually pretty low.
2:18:41
cost is actually pretty low. Next up we have to choose the
2:18:44
Next up we have to choose the
2:18:44
Next up we have to choose the right capacity model.
2:18:48
right capacity model.
2:18:48
right capacity model. So, the graph here shows our
2:18:49
So, the graph here shows our
2:18:49
So, the graph here shows our consumption of a regular week.
2:18:55
consumption of a regular week.
2:18:55
consumption of a regular week. It may look a little spiky but
2:18:56
It may look a little spiky but
2:18:56
It may look a little spiky but if you zoom in on the second
2:18:58
if you zoom in on the second
2:18:58
if you zoom in on the second interval it really is not.
2:18:59
interval it really is not.
2:18:59
interval it really is not. Our estimate is that we would
2:19:00
Our estimate is that we would
2:19:00
Our estimate is that we would consume 2.5 million request
2:19:01
consume 2.5 million request
2:19:01
consume 2.5 million request units and use maybe 400,000
2:19:05
units and use maybe 400,000
2:19:05
units and use maybe 400,000 database operations per month.
2:19:08
database operations per month.
2:19:08
database operations per month. Of course this will grow all
2:19:09
Of course this will grow all
2:19:09
Of course this will grow all the time as we get more factual
2:19:11
the time as we get more factual
2:19:11
the time as we get more factual lines.
2:19:11
lines.
2:19:11
lines. We have to keep that in mind.
2:19:13
We have to keep that in mind.
2:19:13
We have to keep that in mind. We have three options for the
2:19:15
We have three options for the
2:19:15
We have three options for the capacity model.
2:19:16
capacity model.
2:19:16
capacity model. We can choose --, ultra scaling
2:19:21
We can choose --, ultra scaling
2:19:21
We can choose --, ultra scaling or --.
2:19:22
or --.
2:19:22
or --. So, with provision throughout
2:19:27
So, with provision throughout
2:19:27
So, with provision throughout but it has a minimum of 400
2:19:29
but it has a minimum of 400
2:19:29
but it has a minimum of 400 requesting roots per second
2:19:30
requesting roots per second
2:19:30
requesting roots per second which is equivalent to about 1
2:19:31
which is equivalent to about 1
2:19:31
which is equivalent to about 1 million request units per
2:19:32
million request units per
2:19:32
million request units per month.
2:19:32
month.
2:19:32
month. Way more than we need.
2:19:36
Way more than we need.
2:19:36
Way more than we need. If you set the request units to
2:19:37
If you set the request units to
2:19:37
If you set the request units to 400 per second then I think we
2:19:39
400 per second then I think we
2:19:39
400 per second then I think we would rarely hit the rate limit
2:19:42
would rarely hit the rate limit
2:19:42
would rarely hit the rate limit and the rate limit happens if
2:19:43
and the rate limit happens if
2:19:43
and the rate limit happens if we exceeded the provision and
2:19:46
we exceeded the provision and
2:19:46
we exceeded the provision and according to the pricing
2:19:47
according to the pricing
2:19:47
according to the pricing calculator this will cost us
2:19:49
calculator this will cost us
2:19:49
calculator this will cost us $24 per month. Then you have
2:19:53
$24 per month. Then you have
2:19:53
$24 per month. Then you have ultra scaling.
2:19:55
ultra scaling.
2:19:55
ultra scaling. Ultra scaling is difficult to
2:19:57
Ultra scaling is difficult to
2:19:57
Ultra scaling is difficult to predict and it is optimal if
2:19:59
predict and it is optimal if
2:19:59
predict and it is optimal if you have usage that changes a
2:20:00
you have usage that changes a
2:20:00
you have usage that changes a lot but it can also be useful
2:20:03
lot but it can also be useful
2:20:03
lot but it can also be useful if you have consumption below
2:20:05
if you have consumption below
2:20:05
if you have consumption below 400 request units per second.
2:20:07
400 request units per second.
2:20:08
400 request units per second. We estimated that maybe we
2:20:11
We estimated that maybe we
2:20:11
We estimated that maybe we would have the cost by using
2:20:13
would have the cost by using
2:20:13
would have the cost by using ultra scaling because if we set
2:20:16
ultra scaling because if we set
2:20:16
ultra scaling because if we set the maximum to 1000 request
2:20:17
the maximum to 1000 request
2:20:17
the maximum to 1000 request units and we can help it will
2:20:21
units and we can help it will
2:20:21
units and we can help it will actually scale down to maybe
2:20:22
actually scale down to maybe
2:20:22
actually scale down to maybe 100 request units per second.
2:20:24
100 request units per second.
2:20:24
100 request units per second. But again I am guessing and I
2:20:26
But again I am guessing and I
2:20:26
But again I am guessing and I have not really done the
2:20:27
have not really done the
2:20:27
have not really done the calculations on our existing
2:20:28
calculations on our existing
2:20:28
calculations on our existing usage.
2:20:28
usage.
2:20:28
usage. The final option is serverless
2:20:32
The final option is serverless
2:20:32
The final option is serverless and this is a consumption-based
2:20:36
and this is a consumption-based
2:20:36
and this is a consumption-based plan where you pay for the
2:20:38
plan where you pay for the
2:20:38
plan where you pay for the request units you consume.
2:20:38
request units you consume.
2:20:38
request units you consume. So, are estimated consumption
2:20:41
So, are estimated consumption
2:20:41
So, are estimated consumption is 2.5 million request units
2:20:42
is 2.5 million request units
2:20:42
is 2.5 million request units per month and that is actually
2:20:45
per month and that is actually
2:20:45
per month and that is actually less than $1.00 per month, that
2:20:49
less than $1.00 per month, that
2:20:49
less than $1.00 per month, that is not a lot at all.
2:20:51
is not a lot at all.
2:20:51
is not a lot at all. And another advantage with
2:20:55
And another advantage with
2:20:55
And another advantage with serverless as we do not hit the
2:20:57
serverless as we do not hit the
2:20:57
serverless as we do not hit the rate limit.
2:20:59
rate limit.
2:20:59
rate limit. This just seems like the
2:21:00
This just seems like the
2:21:00
This just seems like the perfect choice for us.
2:21:01
perfect choice for us.
2:21:01
perfect choice for us. And in fact if we look at our
2:21:04
And in fact if we look at our
2:21:04
And in fact if we look at our bill, this is our latest bill
2:21:05
bill, this is our latest bill
2:21:05
bill, this is our latest bill and I'm sorry, the prices are
2:21:09
and I'm sorry, the prices are
2:21:09
and I'm sorry, the prices are in Danish but I think you can
2:21:10
in Danish but I think you can
2:21:10
in Danish but I think you can see what is going on here.
2:21:12
see what is going on here.
2:21:12
see what is going on here. You pay around 70 per month,
2:21:22
You pay around 70 per month,
2:21:22
You pay around 70 per month, the request units, the data
2:21:23
the request units, the data
2:21:23
the request units, the data storage, the network traffic,
2:21:25
storage, the network traffic,
2:21:26
storage, the network traffic, so, that is really cheap.
2:21:29
so, that is really cheap.
2:21:29
so, that is really cheap. So, just to sum it up, as I
2:21:32
So, just to sum it up, as I
2:21:32
So, just to sum it up, as I mentioned, we have done all of
2:21:36
mentioned, we have done all of
2:21:36
mentioned, we have done all of these changes either to improve
2:21:38
these changes either to improve
2:21:38
these changes either to improve performance or implement new
2:21:39
performance or implement new
2:21:40
performance or implement new features, nothing here has been
2:21:44
features, nothing here has been
2:21:44
features, nothing here has been made for cost optimization,
2:21:46
made for cost optimization,
2:21:46
made for cost optimization, except to choose the capacity
2:21:48
except to choose the capacity
2:21:48
except to choose the capacity mode.
2:21:48
mode.
2:21:48
mode. But we actually ended up with a
2:21:50
But we actually ended up with a
2:21:50
But we actually ended up with a good reaction anyway.
2:21:53
good reaction anyway.
2:21:53
good reaction anyway. We went from a database that
2:21:57
We went from a database that
2:21:57
We went from a database that would set us back $240 per month
2:21:58
would set us back $240 per month
2:21:59
would set us back $240 per month to Cosmos DB that cost less
2:22:00
to Cosmos DB that cost less
2:22:00
to Cosmos DB that cost less than a buck per month, and we
2:22:05
than a buck per month, and we
2:22:06
than a buck per month, and we multiplied the savings by four
2:22:06
multiplied the savings by four
2:22:07
multiplied the savings by four because we have four
2:22:08
because we have four
2:22:08
because we have four environments.
2:22:11
environments.
2:22:11
environments. And then a fun fact, actually,
2:22:15
And then a fun fact, actually,
2:22:15
And then a fun fact, actually, a Azure alert is $.10 per
2:22:21
a Azure alert is $.10 per
2:22:21
a Azure alert is $.10 per month, that is mind blowing, we
2:22:22
month, that is mind blowing, we
2:22:22
month, that is mind blowing, we pay the same for our customers
2:22:23
pay the same for our customers
2:22:23
pay the same for our customers in the database as we would be
2:22:24
in the database as we would be
2:22:24
in the database as we would be paying for just one alert, the
2:22:26
paying for just one alert, the
2:22:26
paying for just one alert, the request units with would
2:22:33
request units with would
2:22:33
request units with would actually double our database
2:22:34
actually double our database
2:22:34
actually double our database cost.
2:22:34
cost.
2:22:34
cost. And then, really interesting,
2:22:38
And then, really interesting,
2:22:38
And then, really interesting, an add-on when you are using
2:22:39
an add-on when you are using
2:22:39
an add-on when you are using Cosmos DB and the serverless
2:22:41
Cosmos DB and the serverless
2:22:41
Cosmos DB and the serverless option , Azure database
2:22:43
option , Azure database
2:22:43
option , Azure database flexible server consumes a lot
2:22:45
flexible server consumes a lot
2:22:45
flexible server consumes a lot of CO2 and the serverless does
2:22:49
of CO2 and the serverless does
2:22:49
of CO2 and the serverless does not.
2:22:49
not.
2:22:49
not. We can actually reduce our
2:22:50
We can actually reduce our
2:22:50
We can actually reduce our carbon footprint by 22% by
2:22:52
carbon footprint by 22% by
2:22:52
carbon footprint by 22% by getting rid of the post-risk
2:22:57
getting rid of the post-risk
2:22:58
getting rid of the post-risk database.
2:22:58
database.
2:22:58
database. It is not like we're talking
2:22:59
It is not like we're talking
2:22:59
It is not like we're talking tons of CO2 here, it is kilos
2:23:00
tons of CO2 here, it is kilos
2:23:00
tons of CO2 here, it is kilos but I still think, it is not a
2:23:03
but I still think, it is not a
2:23:03
but I still think, it is not a lot but it is something anyway.
2:23:06
lot but it is something anyway.
2:23:06
lot but it is something anyway. Okay.
2:23:08
Okay.
2:23:09
Okay. This is the key take away from
2:23:10
This is the key take away from
2:23:10
This is the key take away from today and I know it may be a
2:23:12
today and I know it may be a
2:23:13
today and I know it may be a hot take because I have talked
2:23:14
hot take because I have talked
2:23:14
hot take because I have talked with a lot of developers and
2:23:15
with a lot of developers and
2:23:15
with a lot of developers and architects that says that
2:23:16
architects that says that
2:23:16
architects that says that Cosmos DB is too expensive and
2:23:18
Cosmos DB is too expensive and
2:23:18
Cosmos DB is too expensive and that is reason enough to stay
2:23:19
that is reason enough to stay
2:23:19
that is reason enough to stay away but I think it depends.
2:23:21
away but I think it depends.
2:23:21
away but I think it depends. If you have a use case in
2:23:25
If you have a use case in
2:23:25
If you have a use case in architecture that enables you
2:23:26
architecture that enables you
2:23:26
architecture that enables you to control how you interact
2:23:27
to control how you interact
2:23:27
to control how you interact with the database, then the
2:23:29
with the database, then the
2:23:29
with the database, then the serverless model is actually
2:23:30
serverless model is actually
2:23:31
serverless model is actually really inexpensive.
2:23:31
really inexpensive.
2:23:32
really inexpensive. Could we have done some and
2:23:33
Could we have done some and
2:23:33
Could we have done some and different like using cash?
2:23:34
different like using cash?
2:23:34
different like using cash? Yes, I think we could.
2:23:37
Yes, I think we could.
2:23:37
Yes, I think we could. I think we could have done many
2:23:38
I think we could have done many
2:23:38
I think we could have done many different things and we probably
2:23:41
different things and we probably
2:23:41
different things and we probably also could host the post-risk
2:23:42
also could host the post-risk
2:23:43
also could host the post-risk database in another way.
2:23:45
database in another way.
2:23:45
database in another way. We are using the general-
2:23:45
We are using the general-
2:23:46
We are using the general- purpose instance of the post
2:23:49
purpose instance of the post
2:23:50
purpose instance of the post -risk database, maybe you could
2:23:51
-risk database, maybe you could
2:23:51
-risk database, maybe you could scale it down to something
2:23:52
scale it down to something
2:23:52
scale it down to something smaller but I still think it
2:23:54
smaller but I still think it
2:23:54
smaller but I still think it will not get us down to $.10
2:23:55
will not get us down to $.10
2:23:55
will not get us down to $.10 per month.
2:23:57
per month.
2:23:57
per month. So, we are actually running
2:23:59
So, we are actually running
2:23:59
So, we are actually running this production line of
2:24:01
this production line of
2:24:01
this production line of business application on factory
2:24:02
business application on factory
2:24:02
business application on factory lines, it is scalable, it is
2:24:06
lines, it is scalable, it is
2:24:06
lines, it is scalable, it is extremely fast and we pay less
2:24:07
extremely fast and we pay less
2:24:08
extremely fast and we pay less than $1.00 per month for the
2:24:09
than $1.00 per month for the
2:24:09
than $1.00 per month for the database.
2:24:09
database.
2:24:09
database. That is all I have today, thank
2:24:13
That is all I have today, thank
2:24:13
That is all I have today, thank you for sticking around until
2:24:14
you for sticking around until
2:24:14
you for sticking around until the end of the presentation and
2:24:15
the end of the presentation and
2:24:15
the end of the presentation and enjoy the rest of the Cosmos DB
2:24:16
enjoy the rest of the Cosmos DB
2:24:17
enjoy the rest of the Cosmos DB conference.
2:24:18
conference.
2:24:18
conference. >> Hi , I am -- a solutions
2:24:23
>> Hi , I am -- a solutions
2:24:23
>> Hi , I am -- a solutions architect and today I will be
2:24:25
architect and today I will be
2:24:26
architect and today I will be talking about a product data
2:24:26
talking about a product data
2:24:27
talking about a product data hub we have built with in QVC,
2:24:32
hub we have built with in QVC,
2:24:32
hub we have built with in QVC, Azure Cosmos DB, some of our
2:24:33
Azure Cosmos DB, some of our
2:24:34
Azure Cosmos DB, some of our architecture and we plan to
2:24:35
architecture and we plan to
2:24:35
architecture and we plan to use some things in the future
2:24:37
use some things in the future
2:24:37
use some things in the future as well.
2:24:38
as well.
2:24:39
as well. So, just a brief about QVC, we
2:24:42
So, just a brief about QVC, we
2:24:43
So, just a brief about QVC, we are a telemarketing company, we
2:24:44
are a telemarketing company, we
2:24:44
are a telemarketing company, we sell our products through
2:24:46
sell our products through
2:24:47
sell our products through television channels.
2:24:47
television channels.
2:24:47
television channels. We have about like 20 channels,
2:24:53
We have about like 20 channels,
2:24:53
We have about like 20 channels, on QVC, we also sell our
2:24:56
on QVC, we also sell our
2:24:57
on QVC, we also sell our products to Hutchinson as well,
2:25:02
products to Hutchinson as well,
2:25:02
products to Hutchinson as well, we are in a lot of different
2:25:03
we are in a lot of different
2:25:03
we are in a lot of different markets including the U.S.,
2:25:04
markets including the U.S.,
2:25:04
markets including the U.S., Germany, Japan and others.
2:25:05
Germany, Japan and others.
2:25:05
Germany, Japan and others. So, as a retailer who sells
2:25:07
So, as a retailer who sells
2:25:07
So, as a retailer who sells products, right, so, the
2:25:11
products, right, so, the
2:25:11
products, right, so, the product data becomes essentially
2:25:15
product data becomes essentially
2:25:15
product data becomes essentially like a central data source that
2:25:17
like a central data source that
2:25:17
like a central data source that is needed for our operations.
2:25:27
is needed for our operations.
2:25:27
is needed for our operations. -- We need really good realtime
2:25:33
-- We need really good realtime
2:25:33
-- We need really good realtime ability -- [ Inaudible -
2:25:38
ability -- [ Inaudible -
2:25:38
ability -- [ Inaudible - muffled ] -- marketing and a
2:25:44
muffled ] -- marketing and a
2:25:44
muffled ] -- marketing and a lot of other sources.
2:25:45
lot of other sources.
2:25:45
lot of other sources. So, we have a really unique use
2:25:48
So, we have a really unique use
2:25:48
So, we have a really unique use case for product data and some
2:25:50
case for product data and some
2:25:50
case for product data and some of the information is on the
2:25:52
of the information is on the
2:25:52
of the information is on the slide but it is, we need a very
2:25:58
slide but it is, we need a very
2:25:58
slide but it is, we need a very reliable, high performance
2:26:00
reliable, high performance
2:26:00
reliable, high performance system that can provide product
2:26:03
system that can provide product
2:26:03
system that can provide product information that can be shared
2:26:04
information that can be shared
2:26:04
information that can be shared across different channels and
2:26:05
across different channels and
2:26:05
across different channels and make it available for us, very
2:26:08
make it available for us, very
2:26:08
make it available for us, very quickly.
2:26:08
quickly.
2:26:08
quickly. So, this gives us like a view of
2:26:14
So, this gives us like a view of
2:26:14
So, this gives us like a view of our product data using Cosmos
2:26:16
our product data using Cosmos
2:26:16
our product data using Cosmos DB . If you look at the diagram
2:26:19
DB . If you look at the diagram
2:26:19
DB . If you look at the diagram shown on the right, the product
2:26:21
shown on the right, the product
2:26:21
shown on the right, the product data hub, which is created using
2:26:23
data hub, which is created using
2:26:24
data hub, which is created using Cosmos becomes a central hub
2:26:27
Cosmos becomes a central hub
2:26:27
Cosmos becomes a central hub and you will see like various
2:26:29
and you will see like various
2:26:29
and you will see like various channels.
2:26:31
channels.
2:26:32
channels. We are branching out into
2:26:35
We are branching out into
2:26:35
We are branching out into different platforms and
2:26:36
different platforms and
2:26:37
different platforms and basically all the product data
2:26:40
basically all the product data
2:26:40
basically all the product data dates we have across our
2:26:42
dates we have across our
2:26:42
dates we have across our channels, streaming channels,
2:26:44
channels, streaming channels,
2:26:44
channels, streaming channels, station channels, like
2:26:49
station channels, like
2:26:49
station channels, like marketing recommendations, all
2:26:50
marketing recommendations, all
2:26:50
marketing recommendations, all of that, -- using our product
2:26:54
of that, -- using our product
2:26:54
of that, -- using our product David data hub using Cosmos.
2:26:59
David data hub using Cosmos.
2:26:59
David data hub using Cosmos. It is the same information from
2:27:02
It is the same information from
2:27:02
It is the same information from -- systems that are available
2:27:05
-- systems that are available
2:27:05
-- systems that are available in Azure.
2:27:12
in Azure.
2:27:12
in Azure. Topics, descriptions, data,
2:27:13
Topics, descriptions, data,
2:27:13
Topics, descriptions, data, factory, -- to push the data
2:27:20
factory, -- to push the data
2:27:21
factory, -- to push the data out to Cosmos and from there
2:27:24
out to Cosmos and from there
2:27:24
out to Cosmos and from there -- why did we choose Cosmos?
2:27:30
-- why did we choose Cosmos?
2:27:30
-- why did we choose Cosmos? It has an excellent global
2:27:32
It has an excellent global
2:27:32
It has an excellent global distribution in the global
2:27:33
distribution in the global
2:27:33
distribution in the global application across various
2:27:36
application across various
2:27:36
application across various regions.
2:27:39
regions.
2:27:39
regions. -- [ Inaudible - muffled ] --
2:27:44
-- [ Inaudible - muffled ] --
2:27:44
-- [ Inaudible - muffled ] -- data will be available in all
2:27:46
data will be available in all
2:27:46
data will be available in all of these different channels.
2:27:49
of these different channels.
2:27:49
of these different channels. We can publish it out.
2:27:54
We can publish it out.
2:27:54
We can publish it out. The Cosmos DB is also like a
2:27:56
The Cosmos DB is also like a
2:27:56
The Cosmos DB is also like a source, a place where we store
2:27:59
source, a place where we store
2:27:59
source, a place where we store our sourcing data and it has
2:28:02
our sourcing data and it has
2:28:02
our sourcing data and it has excellent connectivity to Azure
2:28:06
excellent connectivity to Azure
2:28:06
excellent connectivity to Azure services, our plan is to expand
2:28:07
services, our plan is to expand
2:28:07
services, our plan is to expand those services . We are
2:28:14
those services . We are
2:28:14
those services . We are extremely happy with all the
2:28:15
extremely happy with all the
2:28:15
extremely happy with all the capabilities we get out of
2:28:16
capabilities we get out of
2:28:16
capabilities we get out of Cosmos , you know, we plan to
2:28:18
Cosmos , you know, we plan to
2:28:20
Cosmos , you know, we plan to expand our product data by
2:28:23
expand our product data by
2:28:23
expand our product data by making Cosmos central to all
2:28:27
making Cosmos central to all
2:28:27
making Cosmos central to all of that established
2:28:28
of that established
2:28:28
of that established information.
2:28:29
information.
2:28:29
information. From there, one of the things
2:28:38
From there, one of the things
2:28:38
From there, one of the things we want to expand are the A.I.
2:28:40
we want to expand are the A.I.
2:28:40
we want to expand are the A.I. capabilities.
2:28:45
capabilities.
2:28:45
capabilities. Like third-party solutions and
2:28:47
Like third-party solutions and
2:28:47
Like third-party solutions and we want to do is you want to
2:28:49
we want to do is you want to
2:28:49
we want to do is you want to start building these Azure open
2:28:55
start building these Azure open
2:28:55
start building these Azure open A.I.
2:28:55
A.I.
2:28:55
A.I. and then you know, basically
2:28:56
and then you know, basically
2:28:56
and then you know, basically like tied to some of these
2:29:00
like tied to some of these
2:29:01
like tied to some of these areas, like a creating product
2:29:02
areas, like a creating product
2:29:02
areas, like a creating product descriptions based on visuals,
2:29:08
descriptions based on visuals,
2:29:08
descriptions based on visuals, creating personalized building
2:29:09
creating personalized building
2:29:09
creating personalized building experiences using information
2:29:10
experiences using information
2:29:10
experiences using information from analytics and creating
2:29:14
from analytics and creating
2:29:14
from analytics and creating personalized experiences.
2:29:17
personalized experiences.
2:29:17
personalized experiences. Answering broad questions
2:29:18
Answering broad questions
2:29:18
Answering broad questions regarding our products.
2:29:21
regarding our products.
2:29:21
regarding our products. And ultimately the goal is to
2:29:27
And ultimately the goal is to
2:29:27
And ultimately the goal is to take all this information, the
2:29:31
take all this information, the
2:29:31
take all this information, the information within Cosmos and
2:29:35
information within Cosmos and
2:29:35
information within Cosmos and to provide a guided shopping
2:29:37
to provide a guided shopping
2:29:37
to provide a guided shopping experience for all of our
2:29:38
experience for all of our
2:29:39
experience for all of our users.
2:29:39
users.
2:29:39
users. >> [ Captioners transitioning
2:29:42
>> [ Captioners transitioning
2:29:42
>> [ Captioners transitioning ]
2:29:52
>> Thanks once again.
2:29:53
>> Thanks once again.
2:29:53
>> Thanks once again. I.
2:29:56
I.
2:29:56
I. >> Hi.
2:29:57
>> Hi.
2:29:57
>> Hi. I get to work as senior manager
2:30:01
I get to work as senior manager
2:30:01
I get to work as senior manager of research software
2:30:01
of research software
2:30:02
of research software engineering team in Kansas City.
2:30:06
engineering team in Kansas City.
2:30:06
engineering team in Kansas City. I'm fortunate to work with
2:30:08
I'm fortunate to work with
2:30:08
I'm fortunate to work with multiple teams who provide
2:30:09
multiple teams who provide
2:30:09
multiple teams who provide service.
2:30:23
service.
2:30:24
service. >> For researchers.
2:30:29
>> For researchers.
2:30:29
>> For researchers. Data from these devices and --
2:30:39
Data from these devices and --
2:30:39
Data from these devices and -- [ Music ]
2:30:42
[ Music ]
2:30:42
[ Music ] >> By leveraging cost we
2:30:46
>> By leveraging cost we
2:30:46
>> By leveraging cost we collect a variety of data site
2:30:47
collect a variety of data site
2:30:47
collect a variety of data site and one platform that integrate
2:30:50
and one platform that integrate
2:30:50
and one platform that integrate the processes to transform
2:30:54
the processes to transform
2:30:54
the processes to transform these data sets into meaningful
2:30:55
these data sets into meaningful
2:30:55
these data sets into meaningful information.
2:30:57
information.
2:30:57
information. They increase our productivity
2:30:58
They increase our productivity
2:30:58
They increase our productivity and made it possible for us to
2:30:59
and made it possible for us to
2:30:59
and made it possible for us to integrate with other platforms
2:31:01
integrate with other platforms
2:31:01
integrate with other platforms downstream.
2:31:03
downstream.
2:31:03
downstream. >> Thank you.
2:31:09
>> Thank you.
2:31:09
>> Thank you. So, one of the takeaways in
2:31:10
So, one of the takeaways in
2:31:10
So, one of the takeaways in this previous section was how
2:31:13
this previous section was how
2:31:13
this previous section was how customers have been able to
2:31:14
customers have been able to
2:31:14
customers have been able to reduce their database costs with
2:31:15
reduce their database costs with
2:31:16
reduce their database costs with Azure Cosmos DB.
2:31:19
Azure Cosmos DB.
2:31:19
Azure Cosmos DB. What was interesting was the
2:31:20
What was interesting was the
2:31:20
What was interesting was the difference between the models,
2:31:22
difference between the models,
2:31:22
difference between the models, I found that very interesting.
2:31:24
I found that very interesting.
2:31:24
I found that very interesting. By the way, we had Paul in the
2:31:27
By the way, we had Paul in the
2:31:27
By the way, we had Paul in the chat.
2:31:30
chat.
2:31:30
chat. The question was are you
2:31:31
The question was are you
2:31:31
The question was are you developing GEN A.I.
2:31:32
developing GEN A.I.
2:31:32
developing GEN A.I. applications with Azure Cosmos
2:31:33
applications with Azure Cosmos
2:31:33
applications with Azure Cosmos DB ? It seems like 57% of the
2:31:38
DB ? It seems like 57% of the
2:31:38
DB ? It seems like 57% of the audience at the time said yes.
2:31:40
audience at the time said yes.
2:31:40
audience at the time said yes. GEN A.I.
2:31:41
GEN A.I.
2:31:41
GEN A.I. seems to be a popular topic.
2:31:44
seems to be a popular topic.
2:31:45
seems to be a popular topic. We had 28 votes at that point.
2:31:49
We had 28 votes at that point.
2:31:49
We had 28 votes at that point. So, folks, I want to keep
2:31:52
So, folks, I want to keep
2:31:52
So, folks, I want to keep commenting our session and
2:31:55
commenting our session and
2:31:55
commenting our session and topics, so please use the
2:31:57
topics, so please use the
2:31:57
topics, so please use the YouTube chat, also go to the
2:32:00
YouTube chat, also go to the
2:32:00
YouTube chat, also go to the resources page. Again, I want
2:32:02
resources page. Again, I want
2:32:02
resources page. Again, I want to remind you all we really
2:32:03
to remind you all we really
2:32:03
to remind you all we really appreciate your feed back.
2:32:06
appreciate your feed back.
2:32:07
appreciate your feed back. Please fill in the evaluation
2:32:08
Please fill in the evaluation
2:32:08
Please fill in the evaluation form, we want to make this
2:32:10
form, we want to make this
2:32:10
form, we want to make this event better next year.
2:32:13
event better next year.
2:32:13
event better next year. >> Coming up next we will dive
2:32:15
>> Coming up next we will dive
2:32:15
>> Coming up next we will dive into the creative uses of A.I.
2:32:16
into the creative uses of A.I.
2:32:16
into the creative uses of A.I. with Cosmos DB.
2:32:20
with Cosmos DB.
2:32:20
with Cosmos DB. There is generative art and
2:32:21
There is generative art and
2:32:21
There is generative art and real-time enterprise apps with
2:32:22
real-time enterprise apps with
2:32:22
real-time enterprise apps with Cosmos -- and stick around for
2:32:27
Cosmos -- and stick around for
2:32:27
Cosmos -- and stick around for the closing keynote featuring
2:32:29
the closing keynote featuring
2:32:29
the closing keynote featuring our friends from H&R Block.
2:32:31
our friends from H&R Block.
2:32:31
our friends from H&R Block. Let's take a look.
2:32:33
Let's take a look.
2:32:34
Let's take a look. >> Hi.
2:32:34
>> Hi.
2:32:34
>> Hi. My name is -- I'm the coding
2:32:38
My name is -- I'm the coding
2:32:38
My name is -- I'm the coding consultant and today I'm very
2:32:41
consultant and today I'm very
2:32:41
consultant and today I'm very happy to be back to Azure
2:32:42
happy to be back to Azure
2:32:42
happy to be back to Azure Cosmos DB conference . This was
2:32:45
Cosmos DB conference . This was
2:32:45
Cosmos DB conference . This was one of my very first when I was
2:32:49
one of my very first when I was
2:32:49
one of my very first when I was just starting to be a public
2:32:50
just starting to be a public
2:32:50
just starting to be a public speaker and today I have a
2:32:53
speaker and today I have a
2:32:53
speaker and today I have a session called turning data.
2:32:56
session called turning data.
2:32:56
session called turning data. Before we will dive in I want
2:32:58
Before we will dive in I want
2:32:58
Before we will dive in I want to give an introduction of the
2:33:02
to give an introduction of the
2:33:02
to give an introduction of the session in general what I am
2:33:03
session in general what I am
2:33:03
session in general what I am doing this and generative art
2:33:06
doing this and generative art
2:33:06
doing this and generative art and all the other stuff.
2:33:10
and all the other stuff.
2:33:10
and all the other stuff. I am also Microsoft MVP and my
2:33:12
I am also Microsoft MVP and my
2:33:12
I am also Microsoft MVP and my technology field is Azure
2:33:13
technology field is Azure
2:33:13
technology field is Azure Cosmos DB . I worked with this
2:33:17
Cosmos DB . I worked with this
2:33:17
Cosmos DB . I worked with this for quite some years and I'm
2:33:20
for quite some years and I'm
2:33:20
for quite some years and I'm really happy I could integrate
2:33:21
really happy I could integrate
2:33:21
really happy I could integrate it not only with my clients and
2:33:23
it not only with my clients and
2:33:24
it not only with my clients and work but also with my home.
2:33:26
work but also with my home.
2:33:26
work but also with my home. Today's session is about me
2:33:30
Today's session is about me
2:33:30
Today's session is about me combining my hobby with my
2:33:32
combining my hobby with my
2:33:32
combining my hobby with my daily work, with my actual
2:33:34
daily work, with my actual
2:33:34
daily work, with my actual professional job.
2:33:38
professional job.
2:33:38
professional job. I always loved making art but
2:33:39
I always loved making art but
2:33:39
I always loved making art but never got a chance to go to the
2:33:41
never got a chance to go to the
2:33:41
never got a chance to go to the art school.
2:33:42
art school.
2:33:42
art school. Instead I have applied physics
2:33:44
Instead I have applied physics
2:33:44
Instead I have applied physics in university.
2:33:44
in university.
2:33:45
in university. After that, I became a software
2:33:47
After that, I became a software
2:33:47
After that, I became a software developer and I didn't have
2:33:50
developer and I didn't have
2:33:50
developer and I didn't have enough time to actually do art
2:33:52
enough time to actually do art
2:33:52
enough time to actually do art or explore some creative things.
2:33:57
or explore some creative things.
2:33:58
or explore some creative things. So, after working and getting
2:33:59
So, after working and getting
2:33:59
So, after working and getting myself pretty skilled in
2:34:01
myself pretty skilled in
2:34:01
myself pretty skilled in software development I decided
2:34:02
software development I decided
2:34:02
software development I decided that I'm not ready to give up
2:34:05
that I'm not ready to give up
2:34:05
that I'm not ready to give up my dream and idea of becoming
2:34:07
my dream and idea of becoming
2:34:07
my dream and idea of becoming an artist and I want to explore
2:34:09
an artist and I want to explore
2:34:09
an artist and I want to explore it using my professional skills.
2:34:12
it using my professional skills.
2:34:13
it using my professional skills. So, I started building a tool
2:34:15
So, I started building a tool
2:34:15
So, I started building a tool to bring my habit into my work
2:34:18
to bring my habit into my work
2:34:18
to bring my habit into my work but before I started doing this
2:34:19
but before I started doing this
2:34:19
but before I started doing this I had quite a journey.
2:34:20
I had quite a journey.
2:34:20
I had quite a journey. The last year I had a chance to
2:34:23
The last year I had a chance to
2:34:23
The last year I had a chance to work with the CNC machine and
2:34:26
work with the CNC machine and
2:34:26
work with the CNC machine and this is what you can see in the
2:34:27
this is what you can see in the
2:34:27
this is what you can see in the picture.
2:34:27
picture.
2:34:27
picture. A CNC machine is typically used
2:34:29
A CNC machine is typically used
2:34:29
A CNC machine is typically used for wood carving, or you can
2:34:32
for wood carving, or you can
2:34:32
for wood carving, or you can have the same for laser cutters.
2:34:36
have the same for laser cutters.
2:34:36
have the same for laser cutters. You can also put a pen in there
2:34:37
You can also put a pen in there
2:34:37
You can also put a pen in there and use it as a machine.
2:34:40
and use it as a machine.
2:34:40
and use it as a machine. What you see on the picture is
2:34:42
What you see on the picture is
2:34:42
What you see on the picture is one of my first art business I
2:34:44
one of my first art business I
2:34:44
one of my first art business I did.
2:34:46
did.
2:34:46
did. I had to learn quite some
2:34:47
I had to learn quite some
2:34:47
I had to learn quite some programs that I had no
2:34:49
programs that I had no
2:34:49
programs that I had no knowledge in and no skills like
2:34:50
knowledge in and no skills like
2:34:50
knowledge in and no skills like 3-D max and sketch up to do
2:34:56
3-D max and sketch up to do
2:34:56
3-D max and sketch up to do actual visualization and
2:34:58
actual visualization and
2:34:58
actual visualization and extracting the image for the
2:35:01
extracting the image for the
2:35:01
extracting the image for the future printing.
2:35:03
future printing.
2:35:03
future printing. It was quite some struggle for
2:35:04
It was quite some struggle for
2:35:04
It was quite some struggle for me but I kept experimenting and
2:35:05
me but I kept experimenting and
2:35:05
me but I kept experimenting and trying different things and
2:35:06
trying different things and
2:35:07
trying different things and different colors.
2:35:09
different colors.
2:35:09
different colors. This was one of my other pieces
2:35:10
This was one of my other pieces
2:35:10
This was one of my other pieces and it is kind of messy, but I
2:35:14
and it is kind of messy, but I
2:35:14
and it is kind of messy, but I did enjoy the process of
2:35:16
did enjoy the process of
2:35:16
did enjoy the process of creating it.
2:35:17
creating it.
2:35:17
creating it. I started using some acrylic
2:35:21
I started using some acrylic
2:35:21
I started using some acrylic paint and all this stuff.
2:35:24
paint and all this stuff.
2:35:24
paint and all this stuff. I kept working on this because
2:35:25
I kept working on this because
2:35:25
I kept working on this because it was giving me combining art,
2:35:30
it was giving me combining art,
2:35:30
it was giving me combining art, creativity and also technology.
2:35:37
creativity and also technology.
2:35:37
creativity and also technology. The next pieces I did was
2:35:39
The next pieces I did was
2:35:39
The next pieces I did was actually addicting.
2:35:41
actually addicting.
2:35:41
actually addicting. It's to related art pieces.
2:35:43
It's to related art pieces.
2:35:43
It's to related art pieces. As you can see, they are
2:35:45
As you can see, they are
2:35:45
As you can see, they are related by the concept and
2:35:47
related by the concept and
2:35:47
related by the concept and Russia stroke and the only
2:35:50
Russia stroke and the only
2:35:50
Russia stroke and the only thing different is the graphics
2:35:52
thing different is the graphics
2:35:52
thing different is the graphics and color.
2:35:56
and color.
2:35:56
and color. This was a breaking point for
2:35:58
This was a breaking point for
2:35:58
This was a breaking point for me because in the picture from
2:35:59
me because in the picture from
2:35:59
me because in the picture from the right side, from my left
2:36:00
the right side, from my left
2:36:00
the right side, from my left side, you can see the red and
2:36:03
side, you can see the red and
2:36:03
side, you can see the red and black brush stroke and that is
2:36:07
black brush stroke and that is
2:36:07
black brush stroke and that is what I like.
2:36:08
what I like.
2:36:08
what I like. The interception of the brush
2:36:10
The interception of the brush
2:36:10
The interception of the brush stroke. I started exploring it
2:36:14
stroke. I started exploring it
2:36:14
stroke. I started exploring it more and more and started
2:36:17
more and more and started
2:36:17
more and more and started working on more art pieces.
2:36:19
working on more art pieces.
2:36:19
working on more art pieces. This is the result I got.
2:36:25
This is the result I got.
2:36:25
This is the result I got. Different colors and different
2:36:25
Different colors and different
2:36:26
Different colors and different combinations and shapes, I even
2:36:28
combinations and shapes, I even
2:36:28
combinations and shapes, I even made a present for my mom.
2:36:30
made a present for my mom.
2:36:30
made a present for my mom. This in the background was a
2:36:32
This in the background was a
2:36:32
This in the background was a present for my mom.
2:36:35
present for my mom.
2:36:35
present for my mom. I was sending it to her place.
2:36:37
I was sending it to her place.
2:36:37
I was sending it to her place. The last picture was one of my
2:36:40
The last picture was one of my
2:36:40
The last picture was one of my very experimental pieces, it
2:36:43
very experimental pieces, it
2:36:43
very experimental pieces, it actually in real life also has
2:36:44
actually in real life also has
2:36:44
actually in real life also has different structures if you
2:36:45
different structures if you
2:36:45
different structures if you turn it around you will see
2:36:49
turn it around you will see
2:36:49
turn it around you will see also nice textures.
2:36:49
also nice textures.
2:36:49
also nice textures. You can see my background there
2:36:51
You can see my background there
2:36:52
You can see my background there is another piece not displayed
2:36:53
is another piece not displayed
2:36:54
is another piece not displayed on the presentation, but also
2:36:56
on the presentation, but also
2:36:56
on the presentation, but also one of my recent ones.
2:37:01
one of my recent ones.
2:37:01
one of my recent ones. So, the thing is, I really
2:37:02
So, the thing is, I really
2:37:02
So, the thing is, I really enjoy doing this, and I had an
2:37:04
enjoy doing this, and I had an
2:37:04
enjoy doing this, and I had an opportunity to do some 3-D
2:37:07
opportunity to do some 3-D
2:37:07
opportunity to do some 3-D graphic visualization
2:37:08
graphic visualization
2:37:08
graphic visualization improvement skills but also use
2:37:09
improvement skills but also use
2:37:09
improvement skills but also use brushes and acrylic paint and
2:37:12
brushes and acrylic paint and
2:37:12
brushes and acrylic paint and do some creative work.
2:37:19
do some creative work.
2:37:19
do some creative work. However, I don't have that much
2:37:20
However, I don't have that much
2:37:20
However, I don't have that much time because each of the pieces
2:37:21
time because each of the pieces
2:37:21
time because each of the pieces takes at least 12 to 24 hours
2:37:22
takes at least 12 to 24 hours
2:37:22
takes at least 12 to 24 hours because it is paint and a lot
2:37:24
because it is paint and a lot
2:37:24
because it is paint and a lot of work to do.
2:37:25
of work to do.
2:37:25
of work to do. I didn't have time to put even
2:37:27
I didn't have time to put even
2:37:27
I didn't have time to put even more time in improving my skills
2:37:28
more time in improving my skills
2:37:29
more time in improving my skills but I wanted to do more things
2:37:31
but I wanted to do more things
2:37:31
but I wanted to do more things like that.
2:37:32
like that.
2:37:33
like that. So, I decided I can use my
2:37:34
So, I decided I can use my
2:37:34
So, I decided I can use my professional skills and combine
2:37:37
professional skills and combine
2:37:37
professional skills and combine it with my creativity and do
2:37:38
it with my creativity and do
2:37:38
it with my creativity and do some art pieces together.
2:37:39
some art pieces together.
2:37:39
some art pieces together. I started exploring barometric
2:37:43
I started exploring barometric
2:37:43
I started exploring barometric art and generative art.
2:37:48
art and generative art.
2:37:48
art and generative art. Before saying how I combined
2:37:48
Before saying how I combined
2:37:49
Before saying how I combined this and how I used it in my
2:37:50
this and how I used it in my
2:37:50
this and how I used it in my project I want to explain the
2:37:52
project I want to explain the
2:37:52
project I want to explain the difference between those things.
2:37:53
difference between those things.
2:37:54
difference between those things. Algorithmic art, you can use
2:37:59
Algorithmic art, you can use
2:37:59
Algorithmic art, you can use different forms.
2:37:59
different forms.
2:37:59
different forms. It's not necessarily have to be
2:38:01
It's not necessarily have to be
2:38:01
It's not necessarily have to be one, but if you take those two
2:38:03
one, but if you take those two
2:38:03
one, but if you take those two lines and you iterate with them
2:38:04
lines and you iterate with them
2:38:05
lines and you iterate with them in the loop and provide an angle
2:38:09
in the loop and provide an angle
2:38:10
in the loop and provide an angle as a result you will have --
2:38:17
as a result you will have --
2:38:17
as a result you will have -- output.
2:38:19
output.
2:38:19
output. That's what is called
2:38:22
That's what is called
2:38:22
That's what is called algorithmic art.
2:38:25
algorithmic art.
2:38:25
algorithmic art. The math here is procedural and
2:38:27
The math here is procedural and
2:38:27
The math here is procedural and not necessarily formal, but the
2:38:30
not necessarily formal, but the
2:38:30
not necessarily formal, but the outcome will always be the same
2:38:31
outcome will always be the same
2:38:31
outcome will always be the same no matter how many times you
2:38:33
no matter how many times you
2:38:33
no matter how many times you run this. This is the example I
2:38:38
run this. This is the example I
2:38:38
run this. This is the example I used it to create this
2:38:41
used it to create this
2:38:41
used it to create this visualization and this is the
2:38:42
visualization and this is the
2:38:42
visualization and this is the output.
2:38:44
output.
2:38:44
output. Very simple but already looks
2:38:45
Very simple but already looks
2:38:45
Very simple but already looks quite nice.
2:38:46
quite nice.
2:38:46
quite nice. However, for complicated shapes
2:38:51
However, for complicated shapes
2:38:51
However, for complicated shapes like the ones you saw before on
2:38:53
like the ones you saw before on
2:38:53
like the ones you saw before on previous slides you need a bit
2:38:55
previous slides you need a bit
2:38:55
previous slides you need a bit more than just two lines of
2:38:57
more than just two lines of
2:38:57
more than just two lines of code.
2:38:58
code.
2:38:58
code. Barometric art is based on
2:39:02
Barometric art is based on
2:39:02
Barometric art is based on equations. Parametric equations
2:39:05
equations. Parametric equations
2:39:06
equations. Parametric equations is exactly what you use when
2:39:08
is exactly what you use when
2:39:08
is exactly what you use when you want to create 2-D or 3-D
2:39:10
you want to create 2-D or 3-D
2:39:10
you want to create 2-D or 3-D graphics.
2:39:12
graphics.
2:39:13
graphics. This is based on functions
2:39:14
This is based on functions
2:39:14
This is based on functions where the shape is driven by
2:39:17
where the shape is driven by
2:39:17
where the shape is driven by one or more parameters.
2:39:19
one or more parameters.
2:39:19
one or more parameters. You can see on the screen this
2:39:20
You can see on the screen this
2:39:21
You can see on the screen this is exactly what I will be using
2:39:23
is exactly what I will be using
2:39:23
is exactly what I will be using in my project, in my
2:39:25
in my project, in my
2:39:25
in my project, in my visualization for rendering and
2:39:27
visualization for rendering and
2:39:27
visualization for rendering and creating. The thing is, what is
2:39:31
creating. The thing is, what is
2:39:31
creating. The thing is, what is the difference between
2:39:32
the difference between
2:39:32
the difference between barometric art and algorithmic
2:39:34
barometric art and algorithmic
2:39:34
barometric art and algorithmic art is you are putting as a
2:39:36
art is you are putting as a
2:39:36
art is you are putting as a function of time, as you can see
2:39:41
function of time, as you can see
2:39:42
function of time, as you can see -- so, what it means the
2:39:48
-- so, what it means the
2:39:48
-- so, what it means the essence of this barometric art
2:39:49
essence of this barometric art
2:39:49
essence of this barometric art is shapes defined by formulas
2:39:52
is shapes defined by formulas
2:39:52
is shapes defined by formulas but they are transformed. The
2:39:55
but they are transformed. The
2:39:56
but they are transformed. The next one, this is the examples
2:40:00
next one, this is the examples
2:40:00
next one, this is the examples of the barometric equations I
2:40:03
of the barometric equations I
2:40:03
of the barometric equations I used for creating very nice
2:40:04
used for creating very nice
2:40:04
used for creating very nice visuals. It was, for me, and
2:40:07
visuals. It was, for me, and
2:40:07
visuals. It was, for me, and inspiration when I was creating
2:40:10
inspiration when I was creating
2:40:10
inspiration when I was creating my project.
2:40:10
my project.
2:40:10
my project. It was also an inspiration when
2:40:15
It was also an inspiration when
2:40:15
It was also an inspiration when I was just starting to do all
2:40:16
I was just starting to do all
2:40:16
I was just starting to do all these pieces because I do like
2:40:17
these pieces because I do like
2:40:17
these pieces because I do like symmetry and I like the shapes.
2:40:18
symmetry and I like the shapes.
2:40:18
symmetry and I like the shapes. The next step here is
2:40:20
The next step here is
2:40:20
The next step here is generative art.
2:40:21
generative art.
2:40:21
generative art. We know a lot about generative
2:40:24
We know a lot about generative
2:40:24
We know a lot about generative art especially taking into
2:40:25
art especially taking into
2:40:25
art especially taking into account all the modern
2:40:27
account all the modern
2:40:27
account all the modern technologies we can generate a
2:40:30
technologies we can generate a
2:40:30
technologies we can generate a picture using the model and
2:40:33
picture using the model and
2:40:33
picture using the model and this will be generative art.
2:40:35
this will be generative art.
2:40:35
this will be generative art. That's not what I was
2:40:36
That's not what I was
2:40:36
That's not what I was interested in.
2:40:38
interested in.
2:40:38
interested in. I wanted to use barometric
2:40:39
I wanted to use barometric
2:40:39
I wanted to use barometric equations and algorithms and
2:40:40
equations and algorithms and
2:40:40
equations and algorithms and create generative art based on
2:40:43
create generative art based on
2:40:43
create generative art based on description tools. What makes
2:40:48
description tools. What makes
2:40:48
description tools. What makes my art generative or for
2:40:49
my art generative or for
2:40:49
my art generative or for example the code you can see on
2:40:51
example the code you can see on
2:40:51
example the code you can see on the screen is a little
2:40:53
the screen is a little
2:40:53
the screen is a little randomization of parameters.
2:40:54
randomization of parameters.
2:40:54
randomization of parameters. Those four lines, they make the
2:40:59
Those four lines, they make the
2:40:59
Those four lines, they make the result unpredictable.
2:41:04
result unpredictable.
2:41:04
result unpredictable. Anytime you refresh the page
2:41:05
Anytime you refresh the page
2:41:05
Anytime you refresh the page for example or when you re-
2:41:06
for example or when you re-
2:41:06
for example or when you re- render the code it's going to
2:41:07
render the code it's going to
2:41:07
render the code it's going to be a different shape, different
2:41:08
be a different shape, different
2:41:08
be a different shape, different result.
2:41:10
result.
2:41:10
result. You will never be able to
2:41:13
You will never be able to
2:41:13
You will never be able to predict outcome unless you're
2:41:14
predict outcome unless you're
2:41:14
predict outcome unless you're very good at math.
2:41:18
very good at math.
2:41:19
very good at math. You set the roles and let the
2:41:20
You set the roles and let the
2:41:20
You set the roles and let the system surprising.
2:41:21
system surprising.
2:41:21
system surprising. That was exactly what I wanted
2:41:22
That was exactly what I wanted
2:41:22
That was exactly what I wanted to achieve.
2:41:23
to achieve.
2:41:23
to achieve. I wanted a system in my project
2:41:27
I wanted a system in my project
2:41:27
I wanted a system in my project to help me create my pieces I
2:41:29
to help me create my pieces I
2:41:29
to help me create my pieces I will not be able to greet
2:41:30
will not be able to greet
2:41:30
will not be able to greet myself because I already have
2:41:34
myself because I already have
2:41:35
myself because I already have how to build things.
2:41:36
how to build things.
2:41:36
how to build things. I will never experiment in a way
2:41:39
I will never experiment in a way
2:41:40
I will never experiment in a way that can be experimented with
2:41:42
that can be experimented with
2:41:42
that can be experimented with code in generative art.
2:41:47
code in generative art.
2:41:47
code in generative art. So, just a few words about the
2:41:50
So, just a few words about the
2:41:50
So, just a few words about the concept of the project.
2:41:51
concept of the project.
2:41:51
concept of the project. I wanted to take the data, I
2:41:57
I wanted to take the data, I
2:41:57
I wanted to take the data, I had a couple iterations of this
2:41:59
had a couple iterations of this
2:41:59
had a couple iterations of this project and in the first
2:42:00
project and in the first
2:42:00
project and in the first iteration I thought I can take
2:42:03
iteration I thought I can take
2:42:03
iteration I thought I can take an environmental data, for
2:42:04
an environmental data, for
2:42:04
an environmental data, for example, data from I.T.
2:42:06
example, data from I.T.
2:42:06
example, data from I.T. devices like temperature or
2:42:07
devices like temperature or
2:42:07
devices like temperature or humidity and transform this data
2:42:10
humidity and transform this data
2:42:10
humidity and transform this data in this small, short
2:42:12
in this small, short
2:42:12
in this small, short descriptions and use algorithms
2:42:16
descriptions and use algorithms
2:42:16
descriptions and use algorithms to generate small
2:42:18
to generate small
2:42:18
to generate small visualizations.
2:42:19
visualizations.
2:42:19
visualizations. I thought this would be nice
2:42:20
I thought this would be nice
2:42:20
I thought this would be nice experiment.
2:42:25
experiment.
2:42:25
experiment. That was for my first situation
2:42:26
That was for my first situation
2:42:26
That was for my first situation and it didn't really go quite
2:42:27
and it didn't really go quite
2:42:27
and it didn't really go quite well because even if I wanted
2:42:31
well because even if I wanted
2:42:31
well because even if I wanted to generate something very
2:42:31
to generate something very
2:42:31
to generate something very simple it was still quite hard
2:42:37
simple it was still quite hard
2:42:37
simple it was still quite hard to define which function and
2:42:38
to define which function and
2:42:38
to define which function and which algorithm to use in which
2:42:39
which algorithm to use in which
2:42:39
which algorithm to use in which case.
2:42:40
case.
2:42:40
case. I decided since I had found for
2:42:42
I decided since I had found for
2:42:42
I decided since I had found for myself I really liked the shape
2:42:46
myself I really liked the shape
2:42:47
myself I really liked the shape I decided to keep it very
2:42:48
I decided to keep it very
2:42:48
I decided to keep it very simple and focused to one shape.
2:42:51
simple and focused to one shape.
2:42:51
simple and focused to one shape. Taking this input, in my case
2:42:52
Taking this input, in my case
2:42:52
Taking this input, in my case I'm providing short prompts,
2:42:54
I'm providing short prompts,
2:42:54
I'm providing short prompts, like for example I want to see
2:42:57
like for example I want to see
2:42:57
like for example I want to see a shape that looks like a flower
2:42:59
a shape that looks like a flower
2:42:59
a shape that looks like a flower or a shape that looks like a
2:43:01
or a shape that looks like a
2:43:01
or a shape that looks like a star.
2:43:02
star.
2:43:02
star. Maybe mention the color scheme.
2:43:05
Maybe mention the color scheme.
2:43:05
Maybe mention the color scheme. This will be more than enough.
2:43:07
This will be more than enough.
2:43:07
This will be more than enough. This user input will be taken
2:43:11
This user input will be taken
2:43:11
This user input will be taken and sent -- based on this
2:43:15
and sent -- based on this
2:43:15
and sent -- based on this information it will generate
2:43:19
information it will generate
2:43:19
information it will generate for me our description.
2:43:23
for me our description.
2:43:23
for me our description. It will be not very long, just
2:43:24
It will be not very long, just
2:43:24
It will be not very long, just one or two or three sentences.
2:43:26
one or two or three sentences.
2:43:26
one or two or three sentences. It's going to give a bit more
2:43:28
It's going to give a bit more
2:43:28
It's going to give a bit more details of the final view of
2:43:30
details of the final view of
2:43:30
details of the final view of the art.
2:43:33
the art.
2:43:33
the art. For example, the ship that
2:43:34
For example, the ship that
2:43:34
For example, the ship that looks like a flower it will
2:43:40
looks like a flower it will
2:43:40
looks like a flower it will just give more details of how
2:43:41
just give more details of how
2:43:41
just give more details of how it should be twisted, what
2:43:42
it should be twisted, what
2:43:42
it should be twisted, what color should be used on
2:43:43
color should be used on
2:43:43
color should be used on someone.
2:43:43
someone.
2:43:43
someone. Based on that information it's
2:43:46
Based on that information it's
2:43:46
Based on that information it's going to have very strict.
2:43:51
going to have very strict.
2:43:51
going to have very strict. It is really hard to achieve
2:43:53
It is really hard to achieve
2:43:53
It is really hard to achieve because -- make mistakes and
2:43:55
because -- make mistakes and
2:43:55
because -- make mistakes and give different outputs but so
2:43:58
give different outputs but so
2:43:58
give different outputs but so far it was working fine for me.
2:44:01
far it was working fine for me.
2:44:01
far it was working fine for me. The last step is visualization
2:44:02
The last step is visualization
2:44:02
The last step is visualization of the Taurus not. So that was
2:44:08
of the Taurus not. So that was
2:44:08
of the Taurus not. So that was the concept.
2:44:09
the concept.
2:44:09
the concept. Let's have a look into more
2:44:12
Let's have a look into more
2:44:12
Let's have a look into more technical details.
2:44:12
technical details.
2:44:13
technical details. As I said this will be user
2:44:15
As I said this will be user
2:44:15
As I said this will be user input and I will have a little
2:44:18
input and I will have a little
2:44:18
input and I will have a little page.
2:44:20
page.
2:44:20
page. I will have input fields and
2:44:23
I will have input fields and
2:44:23
I will have input fields and when I will be clicking on it I
2:44:26
when I will be clicking on it I
2:44:26
when I will be clicking on it I will send the request to my
2:44:27
will send the request to my
2:44:27
will send the request to my generative API to generate our
2:44:32
generative API to generate our
2:44:32
generative API to generate our description.
2:44:34
description.
2:44:34
description. I also have A.I.
2:44:36
I also have A.I.
2:44:36
I also have A.I. project and I have their tool
2:44:40
project and I have their tool
2:44:41
project and I have their tool models.
2:44:41
models.
2:44:41
models. I have text three large model
2:44:42
I have text three large model
2:44:43
I have text three large model for creating generative and I
2:44:45
for creating generative and I
2:44:45
for creating generative and I have GPT only for completion for
2:44:49
have GPT only for completion for
2:44:49
have GPT only for completion for generating my art descriptions
2:44:50
generating my art descriptions
2:44:50
generating my art descriptions and creating my configuration.
2:44:55
and creating my configuration.
2:44:55
and creating my configuration. I will send a request and after
2:44:58
I will send a request and after
2:44:58
I will send a request and after this I will create a prompt and
2:45:00
this I will create a prompt and
2:45:00
this I will create a prompt and send it to GPT to get the
2:45:03
send it to GPT to get the
2:45:03
send it to GPT to get the description. Generate the
2:45:07
description. Generate the
2:45:07
description. Generate the design, generate the
2:45:08
design, generate the
2:45:08
design, generate the description and actual
2:45:09
description and actual
2:45:09
description and actual configuration.
2:45:09
configuration.
2:45:09
configuration. I will save it and the design
2:45:13
I will save it and the design
2:45:13
I will save it and the design itself I will send to Azure
2:45:15
itself I will send to Azure
2:45:15
itself I will send to Azure Cosmos DB and I will give back
2:45:18
Cosmos DB and I will give back
2:45:18
Cosmos DB and I will give back to my UI for its configuration.
2:45:21
to my UI for its configuration.
2:45:21
to my UI for its configuration. I am generating them because I
2:45:26
I am generating them because I
2:45:26
I am generating them because I want to be able to find similar
2:45:27
want to be able to find similar
2:45:27
want to be able to find similar items by user description.
2:45:30
items by user description.
2:45:30
items by user description. I can be experimenting with a
2:45:32
I can be experimenting with a
2:45:32
I can be experimenting with a flowerlike shape and I want to
2:45:35
flowerlike shape and I want to
2:45:35
flowerlike shape and I want to find similar items to the shape.
2:45:38
find similar items to the shape.
2:45:38
find similar items to the shape. I will be using vector search,
2:45:40
I will be using vector search,
2:45:40
I will be using vector search, providing similarities for it
2:45:43
providing similarities for it
2:45:43
providing similarities for it and beginning similar art so I
2:45:46
and beginning similar art so I
2:45:46
and beginning similar art so I can choose the one I like the
2:45:48
can choose the one I like the
2:45:48
can choose the one I like the most. This is going to be the
2:45:50
most. This is going to be the
2:45:50
most. This is going to be the last step.
2:45:51
last step.
2:45:51
last step. Let's do a demo and actually
2:45:54
Let's do a demo and actually
2:45:54
Let's do a demo and actually have a look at how this works.
2:45:56
have a look at how this works.
2:45:56
have a look at how this works. So, first of all I will walk
2:45:59
So, first of all I will walk
2:45:59
So, first of all I will walk you through quickly through the
2:46:02
you through quickly through the
2:46:02
you through quickly through the code and show you what I
2:46:03
code and show you what I
2:46:04
code and show you what I implemented.
2:46:05
implemented.
2:46:05
implemented. There is my generative API.
2:46:08
There is my generative API.
2:46:08
There is my generative API. I tried to keep it as simple as
2:46:10
I tried to keep it as simple as
2:46:10
I tried to keep it as simple as possible, just one project was
2:46:12
possible, just one project was
2:46:12
possible, just one project was the controller and services.
2:46:14
the controller and services.
2:46:14
the controller and services. So, I have generate design,
2:46:19
So, I have generate design,
2:46:19
So, I have generate design, design and search similar
2:46:21
design and search similar
2:46:21
design and search similar designs.
2:46:25
designs.
2:46:25
designs. -- If you go there we can see
2:46:31
-- If you go there we can see
2:46:31
-- If you go there we can see that we are doing exactly what
2:46:32
that we are doing exactly what
2:46:32
that we are doing exactly what I mentioned of what I showed in
2:46:34
I mentioned of what I showed in
2:46:34
I mentioned of what I showed in the slide generating in beddings
2:46:36
the slide generating in beddings
2:46:37
the slide generating in beddings and generating design
2:46:38
and generating design
2:46:38
and generating design integration.
2:46:40
integration.
2:46:40
integration. If you go inside we will see
2:46:43
If you go inside we will see
2:46:43
If you go inside we will see very straightforward.
2:46:47
very straightforward.
2:46:47
very straightforward. Generation service, in beddings
2:46:50
Generation service, in beddings
2:46:50
Generation service, in beddings , I'm not using those to
2:46:53
, I'm not using those to
2:46:53
, I'm not using those to generate my configuration.
2:46:55
generate my configuration.
2:46:56
generate my configuration. I will be using the database
2:46:57
I will be using the database
2:46:57
I will be using the database for later for finding similar
2:46:59
for later for finding similar
2:47:00
for later for finding similar items.
2:47:03
items.
2:47:03
items. Generating is more complicated
2:47:06
Generating is more complicated
2:47:06
Generating is more complicated because it has its uses two
2:47:07
because it has its uses two
2:47:07
because it has its uses two different prompts.
2:47:07
different prompts.
2:47:07
different prompts. If you will have a look, those
2:47:10
If you will have a look, those
2:47:10
If you will have a look, those two lines generate our
2:47:11
two lines generate our
2:47:12
two lines generate our description and those two
2:47:14
description and those two
2:47:14
description and those two lines, they generate an actual
2:47:18
lines, they generate an actual
2:47:18
lines, they generate an actual configuration.
2:47:21
configuration.
2:47:21
configuration. If you go have a look on the
2:47:23
If you go have a look on the
2:47:23
If you go have a look on the prompt itself you can see the
2:47:24
prompt itself you can see the
2:47:24
prompt itself you can see the first prompt is quite simple.
2:47:25
first prompt is quite simple.
2:47:25
first prompt is quite simple. You are an assistant, transform
2:47:28
You are an assistant, transform
2:47:28
You are an assistant, transform creative art prompts into vivid
2:47:30
creative art prompts into vivid
2:47:31
creative art prompts into vivid artistic visual descriptions.
2:47:33
artistic visual descriptions.
2:47:33
artistic visual descriptions. I'm providing some information
2:47:34
I'm providing some information
2:47:34
I'm providing some information and context of how I want this
2:47:38
and context of how I want this
2:47:38
and context of how I want this to be generated, how long
2:47:40
to be generated, how long
2:47:40
to be generated, how long should it be and I'm also
2:47:42
should it be and I'm also
2:47:42
should it be and I'm also providing the input.
2:47:44
providing the input.
2:47:44
providing the input. So far, it was generating the
2:47:45
So far, it was generating the
2:47:45
So far, it was generating the results but I'm not sure if
2:47:48
results but I'm not sure if
2:47:48
results but I'm not sure if this will be enough for me
2:47:50
this will be enough for me
2:47:50
this will be enough for me because later on I want to use
2:47:52
because later on I want to use
2:47:52
because later on I want to use the description as an art
2:47:54
the description as an art
2:47:54
the description as an art concept.
2:47:56
concept.
2:47:56
concept. For this probably I will need
2:47:57
For this probably I will need
2:47:57
For this probably I will need to check more.
2:47:59
to check more.
2:47:59
to check more. For now, it was doing a pretty
2:48:00
For now, it was doing a pretty
2:48:01
For now, it was doing a pretty good job.
2:48:01
good job.
2:48:01
good job. The second prompt you can see
2:48:05
The second prompt you can see
2:48:05
The second prompt you can see is quite long.
2:48:08
is quite long.
2:48:08
is quite long. So far, I didn't have a single
2:48:10
So far, I didn't have a single
2:48:10
So far, I didn't have a single time I got output not as I need.
2:48:17
time I got output not as I need.
2:48:18
time I got output not as I need. So, the prompt saying you are --
2:48:24
So, the prompt saying you are --
2:48:25
So, the prompt saying you are -- in the torus knot
2:48:26
in the torus knot
2:48:26
in the torus knot configuration.
2:48:27
configuration.
2:48:27
configuration. There is certain rules of how
2:48:29
There is certain rules of how
2:48:29
There is certain rules of how the configuration should be
2:48:31
the configuration should be
2:48:31
the configuration should be created.
2:48:32
created.
2:48:32
created. The thing is, this is and I
2:48:37
The thing is, this is and I
2:48:37
The thing is, this is and I need very strict output.
2:48:38
need very strict output.
2:48:38
need very strict output. I needed to be exactly but
2:48:41
I needed to be exactly but
2:48:41
I needed to be exactly but besides this this is not the
2:48:43
besides this this is not the
2:48:43
besides this this is not the most collocated part of it.
2:48:46
most collocated part of it.
2:48:46
most collocated part of it. The complicated part is all the
2:48:47
The complicated part is all the
2:48:47
The complicated part is all the properties are related to each
2:48:49
properties are related to each
2:48:49
properties are related to each other, so as you can see, for
2:48:53
other, so as you can see, for
2:48:53
other, so as you can see, for example, B and Q is the very
2:48:55
example, B and Q is the very
2:48:55
example, B and Q is the very base of generating torus knot
2:48:57
base of generating torus knot
2:48:57
base of generating torus knot because if they are the same
2:49:01
because if they are the same
2:49:01
because if they are the same numbers or they are not prime
2:49:03
numbers or they are not prime
2:49:03
numbers or they are not prime numbers the result will not be
2:49:04
numbers the result will not be
2:49:04
numbers the result will not be very pleasing or nice.
2:49:05
very pleasing or nice.
2:49:05
very pleasing or nice. I am providing some additional
2:49:09
I am providing some additional
2:49:09
I am providing some additional roles as well. As you can see
2:49:14
roles as well. As you can see
2:49:14
roles as well. As you can see they must be prime numbers, not
2:49:15
they must be prime numbers, not
2:49:15
they must be prime numbers, not equal and have to be less than
2:49:18
equal and have to be less than
2:49:18
equal and have to be less than cute.
2:49:19
cute.
2:49:19
cute. I can add more and more post to
2:49:21
I can add more and more post to
2:49:21
I can add more and more post to this but I want to give a
2:49:23
this but I want to give a
2:49:23
this but I want to give a little freedom to align and
2:49:27
little freedom to align and
2:49:27
little freedom to align and even if the result is not
2:49:28
even if the result is not
2:49:28
even if the result is not satisfying it is still a good
2:49:29
satisfying it is still a good
2:49:29
satisfying it is still a good experiment.
2:49:31
experiment.
2:49:31
experiment. This is how the second prompt
2:49:33
This is how the second prompt
2:49:33
This is how the second prompt looks like.
2:49:34
looks like.
2:49:34
looks like. If you go back here you can see
2:49:38
If you go back here you can see
2:49:38
If you go back here you can see I'm generating this
2:49:39
I'm generating this
2:49:39
I'm generating this configuration and I am just
2:49:41
configuration and I am just
2:49:41
configuration and I am just returning it back yeah.
2:49:46
returning it back yeah.
2:49:46
returning it back yeah. As you can see here.
2:49:49
As you can see here.
2:49:49
As you can see here. I am overwriting a few
2:49:50
I am overwriting a few
2:49:50
I am overwriting a few properties because I wanted to
2:49:52
properties because I wanted to
2:49:52
properties because I wanted to do a bit more experiments have
2:49:53
do a bit more experiments have
2:49:54
do a bit more experiments have a bit more control over this.
2:50:00
a bit more control over this.
2:50:00
a bit more control over this. The result is going to be just
2:50:01
The result is going to be just
2:50:01
The result is going to be just a bit more unpredictable.
2:50:02
a bit more unpredictable.
2:50:02
a bit more unpredictable. After this I am sending the
2:50:04
After this I am sending the
2:50:04
After this I am sending the result in Cosmos DB and I'm
2:50:09
result in Cosmos DB and I'm
2:50:09
result in Cosmos DB and I'm returning the configuration.
2:50:12
returning the configuration.
2:50:12
returning the configuration. When I want to find similar
2:50:13
When I want to find similar
2:50:13
When I want to find similar items what I do is I'm using
2:50:16
items what I do is I'm using
2:50:16
items what I do is I'm using the same user input.
2:50:17
the same user input.
2:50:17
the same user input. I'm sending those requests, one
2:50:21
I'm sending those requests, one
2:50:21
I'm sending those requests, one to generate design and the
2:50:22
to generate design and the
2:50:22
to generate design and the second one to find similar
2:50:23
second one to find similar
2:50:23
second one to find similar items.
2:50:26
items.
2:50:26
items. What I'm doing is the same
2:50:27
What I'm doing is the same
2:50:27
What I'm doing is the same thing.
2:50:28
thing.
2:50:28
thing. I'm generating because I don't
2:50:35
I'm generating because I don't
2:50:35
I'm generating because I don't have it yet at this point save
2:50:37
have it yet at this point save
2:50:37
have it yet at this point save already in the database or
2:50:37
already in the database or
2:50:38
already in the database or something.
2:50:38
something.
2:50:38
something. I have only user inp
2:50:39
I have only user inp
2:50:39
I have only user inp Those vectors, I'm getting all
2:50:40
Those vectors, I'm getting all
2:50:40
Those vectors, I'm getting all similar items using the vector
2:50:44
similar items using the vector
2:50:45
similar items using the vector distance function which is, in
2:50:48
distance function which is, in
2:50:48
distance function which is, in my configuration, but it's an
2:50:50
my configuration, but it's an
2:50:50
my configuration, but it's an offset to zero 75.
2:50:52
offset to zero 75.
2:50:52
offset to zero 75. If you want to have almost
2:50:55
If you want to have almost
2:50:55
If you want to have almost exact items you need to
2:50:57
exact items you need to
2:50:57
exact items you need to increase these to almost 0.99.
2:51:01
increase these to almost 0.99.
2:51:01
increase these to almost 0.99. For me, I want it to get
2:51:03
For me, I want it to get
2:51:03
For me, I want it to get everything that looks like or
2:51:06
everything that looks like or
2:51:06
everything that looks like or reminds me of certain user
2:51:07
reminds me of certain user
2:51:07
reminds me of certain user input.
2:51:08
input.
2:51:08
input. I lowered it.
2:51:13
I lowered it.
2:51:14
I lowered it. Yeah.
2:51:14
Yeah.
2:51:14
Yeah. I'm getting all the results and
2:51:15
I'm getting all the results and
2:51:15
I'm getting all the results and I am transforming them because
2:51:17
I am transforming them because
2:51:17
I am transforming them because I don't need vectors on my UI.
2:51:20
I don't need vectors on my UI.
2:51:20
I don't need vectors on my UI. I am excluding them and
2:51:22
I am excluding them and
2:51:22
I am excluding them and receiving back. There is not
2:51:25
receiving back. There is not
2:51:25
receiving back. There is not configuration and user.
2:51:27
configuration and user.
2:51:27
configuration and user. This is basically it. This is
2:51:29
This is basically it. This is
2:51:29
This is basically it. This is the main logic.
2:51:34
the main logic.
2:51:34
the main logic. The main method we have here is
2:51:35
The main method we have here is
2:51:35
The main method we have here is getting all the items from the
2:51:36
getting all the items from the
2:51:36
getting all the items from the container and I did it mostly
2:51:37
container and I did it mostly
2:51:37
container and I did it mostly for testing purposes.
2:51:39
for testing purposes.
2:51:39
for testing purposes. Yeah.
2:51:39
Yeah.
2:51:39
Yeah. I'm not using it that often.
2:51:45
I'm not using it that often.
2:51:45
I'm not using it that often. I'm going to do a very quick
2:51:47
I'm going to do a very quick
2:51:47
I'm going to do a very quick walk-through of the UI.
2:51:49
walk-through of the UI.
2:51:49
walk-through of the UI. This is the reapplication. So,
2:51:58
This is the reapplication. So,
2:51:58
This is the reapplication. So, I have two pages.
2:51:58
I have two pages.
2:51:58
I have two pages. One is a homepage and one is a
2:52:00
One is a homepage and one is a
2:52:00
One is a homepage and one is a gallery page.
2:52:01
gallery page.
2:52:01
gallery page. As you can see, I have a
2:52:03
As you can see, I have a
2:52:03
As you can see, I have a default configuration because I
2:52:04
default configuration because I
2:52:04
default configuration because I don't want to open the page to
2:52:06
don't want to open the page to
2:52:06
don't want to open the page to nothing.
2:52:08
nothing.
2:52:08
nothing. Here I am calling my points to
2:52:11
Here I am calling my points to
2:52:11
Here I am calling my points to create a design and get similar
2:52:13
create a design and get similar
2:52:13
create a design and get similar items based on the user input
2:52:15
items based on the user input
2:52:15
items based on the user input and then I'm rendering the
2:52:16
and then I'm rendering the
2:52:16
and then I'm rendering the torus knot shape. This file
2:52:22
torus knot shape. This file
2:52:22
torus knot shape. This file has all the logic and all the
2:52:25
has all the logic and all the
2:52:25
has all the logic and all the math with all the effects and I
2:52:30
math with all the effects and I
2:52:30
math with all the effects and I spend I think most of the time
2:52:31
spend I think most of the time
2:52:31
spend I think most of the time building this project. I spend
2:52:33
building this project. I spend
2:52:33
building this project. I spend building this component.
2:52:37
building this component.
2:52:38
building this component. I basically reverse engineered
2:52:41
I basically reverse engineered
2:52:41
I basically reverse engineered and it was much more complicated
2:52:43
and it was much more complicated
2:52:43
and it was much more complicated than what I thought from the
2:52:45
than what I thought from the
2:52:45
than what I thought from the beginning.
2:52:45
beginning.
2:52:45
beginning. The configuration part, on
2:52:48
The configuration part, on
2:52:48
The configuration part, on those properties, all those
2:52:54
those properties, all those
2:52:54
those properties, all those properties implemented as a
2:52:55
properties implemented as a
2:52:55
properties implemented as a side effect for the torus knot
2:52:57
side effect for the torus knot
2:52:57
side effect for the torus knot shape . It's not going to be
2:52:59
shape . It's not going to be
2:52:59
shape . It's not going to be just straight, it'll have twists
2:53:02
just straight, it'll have twists
2:53:02
just straight, it'll have twists , certain lumps and all the
2:53:05
, certain lumps and all the
2:53:05
, certain lumps and all the other stuff.
2:53:06
other stuff.
2:53:06
other stuff. You will see the result in a
2:53:08
You will see the result in a
2:53:08
You will see the result in a couple of seconds.
2:53:10
couple of seconds.
2:53:10
couple of seconds. If you ever feel interested in
2:53:13
If you ever feel interested in
2:53:13
If you ever feel interested in having to look at actual
2:53:14
having to look at actual
2:53:14
having to look at actual limitation on the slides in a
2:53:18
limitation on the slides in a
2:53:19
limitation on the slides in a couple of minutes you will see
2:53:20
couple of minutes you will see
2:53:20
couple of minutes you will see the QR code to the repository.
2:53:21
the QR code to the repository.
2:53:21
the QR code to the repository. Let's go now to the portal just
2:53:22
Let's go now to the portal just
2:53:23
Let's go now to the portal just for second because I want to
2:53:25
for second because I want to
2:53:25
for second because I want to show how I set up the Azure
2:53:28
show how I set up the Azure
2:53:28
show how I set up the Azure Cosmos DB.
2:53:28
Cosmos DB.
2:53:29
Cosmos DB. I have my account created and
2:53:31
I have my account created and
2:53:31
I have my account created and I have my database and
2:53:35
I have my database and
2:53:35
I have my database and container where I store my
2:53:36
container where I store my
2:53:36
container where I store my designs.
2:53:37
designs.
2:53:37
designs. I also have to enable a
2:53:40
I also have to enable a
2:53:40
I also have to enable a feature.
2:53:41
feature.
2:53:41
feature. Vector search, I enabled it.
2:53:44
Vector search, I enabled it.
2:53:44
Vector search, I enabled it. Otherwise it will not be working
2:53:47
Otherwise it will not be working
2:53:47
Otherwise it will not be working . If you go to the container
2:53:50
. If you go to the container
2:53:50
. If you go to the container itself you will also need to
2:53:52
itself you will also need to
2:53:52
itself you will also need to set out the policy to make sure
2:53:57
set out the policy to make sure
2:53:57
set out the policy to make sure you will be able to save
2:54:00
you will be able to save
2:54:00
you will be able to save embeddings and do the vector
2:54:01
embeddings and do the vector
2:54:01
embeddings and do the vector search on your data . Let's
2:54:02
search on your data . Let's
2:54:02
search on your data . Let's have a quick look on the items
2:54:05
have a quick look on the items
2:54:05
have a quick look on the items itself.
2:54:06
itself.
2:54:06
itself. I already played a little bit
2:54:09
I already played a little bit
2:54:09
I already played a little bit with the application.
2:54:10
with the application.
2:54:10
with the application. That is if you will have a look
2:54:12
That is if you will have a look
2:54:12
That is if you will have a look inside the file, so that's --
2:54:17
inside the file, so that's --
2:54:17
inside the file, so that's -- sorry.
2:54:21
sorry.
2:54:21
sorry. That's how the torus knot
2:54:23
That's how the torus knot
2:54:23
That's how the torus knot design looks like.
2:54:24
design looks like.
2:54:24
design looks like. They have the user input, a
2:54:27
They have the user input, a
2:54:27
They have the user input, a generated description, a few
2:54:29
generated description, a few
2:54:29
generated description, a few sentences and we have -- yes.
2:54:35
sentences and we have -- yes.
2:54:35
sentences and we have -- yes. We have the torus knot
2:54:38
We have the torus knot
2:54:39
We have the torus knot configuration.
2:54:39
configuration.
2:54:39
configuration. This is a serialized object
2:54:41
This is a serialized object
2:54:41
This is a serialized object because I cannot store an object
2:54:45
because I cannot store an object
2:54:45
because I cannot store an object as vector data.
2:54:46
as vector data.
2:54:46
as vector data. I had to make --. I have vectors
2:54:51
I had to make --. I have vectors
2:54:51
I had to make --. I have vectors and I'm using for similarity
2:54:53
and I'm using for similarity
2:54:53
and I'm using for similarity search.
2:54:54
search.
2:54:55
search. Let's have a look at the
2:54:56
Let's have a look at the
2:54:56
Let's have a look at the application itself.
2:54:58
application itself.
2:54:58
application itself. This is how it looks like.
2:54:59
This is how it looks like.
2:54:59
This is how it looks like. This is pretty simple for now.
2:55:02
This is pretty simple for now.
2:55:02
This is pretty simple for now. What I am showing all the
2:55:04
What I am showing all the
2:55:04
What I am showing all the results I have in the container
2:55:07
results I have in the container
2:55:07
results I have in the container I'm hiding all the other torus
2:55:11
I'm hiding all the other torus
2:55:11
I'm hiding all the other torus knot because, for now, I don't
2:55:14
knot because, for now, I don't
2:55:14
knot because, for now, I don't have a pre-saved result.
2:55:15
have a pre-saved result.
2:55:15
have a pre-saved result. Each of those cells is actually
2:55:19
Each of those cells is actually
2:55:19
Each of those cells is actually rendering the torus knot.
2:55:22
rendering the torus knot.
2:55:22
rendering the torus knot. I decided to hide a few of them
2:55:25
I decided to hide a few of them
2:55:25
I decided to hide a few of them just to make sure the
2:55:26
just to make sure the
2:55:26
just to make sure the presentation, but if you click
2:55:28
presentation, but if you click
2:55:28
presentation, but if you click on this you will see and you
2:55:36
on this you will see and you
2:55:36
on this you will see and you can see it looks quite nice and
2:55:37
can see it looks quite nice and
2:55:37
can see it looks quite nice and interesting and I can
2:55:37
interesting and I can
2:55:38
interesting and I can definitely use some of them to
2:55:39
definitely use some of them to
2:55:39
definitely use some of them to create art pieces later on.
2:55:41
create art pieces later on.
2:55:41
create art pieces later on. Okay.
2:55:43
Okay.
2:55:43
Okay. Let's have a look on how it's
2:55:44
Let's have a look on how it's
2:55:45
Let's have a look on how it's actually being generated.
2:55:47
actually being generated.
2:55:47
actually being generated. For example, this is
2:55:50
For example, this is
2:55:50
For example, this is configuration you saw.
2:55:54
configuration you saw.
2:55:54
configuration you saw. I can say flowerlike shape and
2:55:58
I can say flowerlike shape and
2:55:58
I can say flowerlike shape and I will click generate.
2:56:01
I will click generate.
2:56:01
I will click generate. It is taking a little bit of
2:56:03
It is taking a little bit of
2:56:03
It is taking a little bit of time because we are generating
2:56:06
time because we are generating
2:56:06
time because we are generating the embedding.
2:56:07
the embedding.
2:56:07
the embedding. We get the results and we even
2:56:10
We get the results and we even
2:56:10
We get the results and we even get some related visuals.
2:56:14
get some related visuals.
2:56:14
get some related visuals. As you can see it is most lines.
2:56:18
As you can see it is most lines.
2:56:18
As you can see it is most lines. This one looks much better than
2:56:21
This one looks much better than
2:56:21
This one looks much better than the actual outcome.
2:56:25
the actual outcome.
2:56:25
the actual outcome. This is basically how it works.
2:56:32
This is basically how it works.
2:56:32
This is basically how it works. I can do more. It looks like a
2:56:40
I can do more. It looks like a
2:56:40
I can do more. It looks like a start.
2:56:40
start.
2:56:41
start. I'm not sure what it will
2:56:42
I'm not sure what it will
2:56:42
I'm not sure what it will generate or if I have more of
2:56:43
generate or if I have more of
2:56:43
generate or if I have more of those. Okay.
2:56:48
those. Okay.
2:56:48
those. Okay. I have more related visuals.
2:56:50
I have more related visuals.
2:56:51
I have more related visuals. For some reason I got the same
2:56:52
For some reason I got the same
2:56:52
For some reason I got the same result so I guess that can
2:56:57
result so I guess that can
2:56:57
result so I guess that can happen.
2:56:57
happen.
2:56:57
happen. We also get a related visual
2:57:00
We also get a related visual
2:57:00
We also get a related visual shape that looks like a star.
2:57:05
shape that looks like a star.
2:57:05
shape that looks like a star. So, yet we can also see more
2:57:06
So, yet we can also see more
2:57:06
So, yet we can also see more items were added here.
2:57:08
items were added here.
2:57:08
items were added here. It was just generated two times
2:57:12
It was just generated two times
2:57:12
It was just generated two times . It's fine.
2:57:15
. It's fine.
2:57:15
. It's fine. So, at this point that is the
2:57:18
So, at this point that is the
2:57:18
So, at this point that is the demo and I will go back to my
2:57:21
demo and I will go back to my
2:57:21
demo and I will go back to my presentation.
2:57:24
presentation.
2:57:24
presentation. Here you go.
2:57:31
Here you go.
2:57:31
Here you go. There is the QR code to my
2:57:32
There is the QR code to my
2:57:32
There is the QR code to my repository if you want a closer
2:57:33
repository if you want a closer
2:57:33
repository if you want a closer look to the code itself, to the
2:57:35
look to the code itself, to the
2:57:35
look to the code itself, to the logic and how it works.
2:57:35
logic and how it works.
2:57:36
logic and how it works. Thank you very much for your
2:57:37
Thank you very much for your
2:57:37
Thank you very much for your attention.
2:57:37
attention.
2:57:37
attention. Here is my Instagram because
2:57:39
Here is my Instagram because
2:57:39
Here is my Instagram because there I will be posting more of
2:57:40
there I will be posting more of
2:57:40
there I will be posting more of my artwork and also linked in
2:57:43
my artwork and also linked in
2:57:43
my artwork and also linked in and Twitter.
2:57:44
and Twitter.
2:57:44
and Twitter. Thank you for your attention.
2:57:49
Thank you for your attention.
2:57:49
Thank you for your attention. >> -- Today we are going to
2:57:56
>> -- Today we are going to
2:57:56
>> -- Today we are going to talk about as the backbone for
2:57:59
talk about as the backbone for
2:58:00
talk about as the backbone for and enabled enterprise
2:58:02
and enabled enterprise
2:58:02
and enabled enterprise application.
2:58:03
application.
2:58:03
application. We will get started with
2:58:07
We will get started with
2:58:07
We will get started with talking about the journey we
2:58:08
talking about the journey we
2:58:08
talking about the journey we are at so far.
2:58:10
are at so far.
2:58:10
are at so far. >> If you really look at H&R
2:58:12
>> If you really look at H&R
2:58:12
>> If you really look at H&R Block in text business -- we
2:58:20
Block in text business -- we
2:58:20
Block in text business -- we took a journey a few years ago.
2:58:25
took a journey a few years ago.
2:58:25
took a journey a few years ago. The idea was to write H&R block
2:58:29
The idea was to write H&R block
2:58:29
The idea was to write H&R block clients by composing -- as we
2:58:36
clients by composing -- as we
2:58:36
clients by composing -- as we tried to do that we set two big
2:58:42
tried to do that we set two big
2:58:42
tried to do that we set two big goals.
2:58:44
goals.
2:58:44
goals. Number one is being entirely --.
2:58:50
Number one is being entirely --.
2:58:51
Number one is being entirely --. We wanted to build. The second
2:58:56
We wanted to build. The second
2:58:56
We wanted to build. The second piece of this was to have a
2:59:01
piece of this was to have a
2:59:01
piece of this was to have a clearly defined boundary context
2:59:05
clearly defined boundary context
2:59:05
clearly defined boundary context . We wanted to extend that to
2:59:09
. We wanted to extend that to
2:59:09
. We wanted to extend that to the data.
2:59:11
the data.
2:59:11
the data. With those goals in mind we
2:59:15
With those goals in mind we
2:59:15
With those goals in mind we looked at the technology
2:59:16
looked at the technology
2:59:16
looked at the technology landscape and what we found we
2:59:23
landscape and what we found we
2:59:23
landscape and what we found we landed on doing services. To
2:59:33
landed on doing services. To
2:59:33
landed on doing services. To extend all the way to the data
2:59:37
extend all the way to the data
2:59:37
extend all the way to the data we chose -- so, let's look. We
2:59:45
we chose -- so, let's look. We
2:59:45
we chose -- so, let's look. We look at the journey we set out.
2:59:53
look at the journey we set out.
2:59:53
look at the journey we set out. With Cosmos it doesn't really
2:59:57
With Cosmos it doesn't really
2:59:57
With Cosmos it doesn't really have the schema where it would
3:00:00
have the schema where it would
3:00:00
have the schema where it would learn and adopt as we took the
3:00:04
learn and adopt as we took the
3:00:04
learn and adopt as we took the journey meaning we didn't have
3:00:07
journey meaning we didn't have
3:00:07
journey meaning we didn't have to wait all the way.
3:00:13
to wait all the way.
3:00:13
to wait all the way. -- This feature allowed for
3:00:21
-- This feature allowed for
3:00:21
-- This feature allowed for developers to focus on the
3:00:24
developers to focus on the
3:00:24
developers to focus on the capabilities. This is one of
3:00:32
capabilities. This is one of
3:00:32
capabilities. This is one of the greatest features we had.
3:00:36
the greatest features we had.
3:00:36
the greatest features we had. The second piece of this, which
3:00:39
The second piece of this, which
3:00:39
The second piece of this, which was very important, was H&R
3:00:42
was very important, was H&R
3:00:42
was very important, was H&R Block is a tax business. We
3:00:47
Block is a tax business. We
3:00:47
Block is a tax business. We don't really have that much
3:00:49
don't really have that much
3:00:49
don't really have that much going on in terms. Even during
3:00:54
going on in terms. Even during
3:00:54
going on in terms. Even during the tax season what we really
3:00:58
the tax season what we really
3:00:58
the tax season what we really wanted was a system where we
3:01:01
wanted was a system where we
3:01:01
wanted was a system where we cannot only scale out just to
3:01:05
cannot only scale out just to
3:01:05
cannot only scale out just to compute but Cosmos -- we used
3:01:11
compute but Cosmos -- we used
3:01:11
compute but Cosmos -- we used that. The other big piece was
3:01:20
that. The other big piece was
3:01:20
that. The other big piece was we had systems and other systems
3:01:28
we had systems and other systems
3:01:29
we had systems and other systems just pretty much. We were able
3:01:35
just pretty much. We were able
3:01:35
just pretty much. We were able to successfully have our lead
3:01:37
to successfully have our lead
3:01:38
to successfully have our lead systems looking at -- and not
3:01:47
systems looking at -- and not
3:01:47
systems looking at -- and not been back. The feature of
3:01:52
been back. The feature of
3:01:52
been back. The feature of Cosmos that is globally
3:01:54
Cosmos that is globally
3:01:54
Cosmos that is globally distributed allowed us to do
3:01:55
distributed allowed us to do
3:01:55
distributed allowed us to do that.
3:01:57
that.
3:01:57
that. Now, let's look at the lessons
3:02:02
Now, let's look at the lessons
3:02:02
Now, let's look at the lessons we learned in the journey.
3:02:04
we learned in the journey.
3:02:04
we learned in the journey. The first one -- we had
3:02:12
The first one -- we had
3:02:12
The first one -- we had documents. We found we were not
3:02:18
documents. We found we were not
3:02:18
documents. We found we were not able to write the document.
3:02:20
able to write the document.
3:02:20
able to write the document. This is not possible, this is
3:02:24
This is not possible, this is
3:02:24
This is not possible, this is in addition. If you were to use
3:02:30
in addition. If you were to use
3:02:31
in addition. If you were to use on something else this would
3:02:32
on something else this would
3:02:32
on something else this would work.
3:02:33
work.
3:02:33
work. The other piece of this is the
3:02:35
The other piece of this is the
3:02:35
The other piece of this is the way Cosmos partitioning works
3:02:37
way Cosmos partitioning works
3:02:37
way Cosmos partitioning works is if you have a document that
3:02:40
is if you have a document that
3:02:40
is if you have a document that is more than 10K the way that
3:02:45
is more than 10K the way that
3:02:45
is more than 10K the way that they work this out is compress
3:02:47
they work this out is compress
3:02:47
they work this out is compress the document, so no promise
3:02:51
the document, so no promise
3:02:51
the document, so no promise there.
3:02:52
there.
3:02:52
there. The scaling down I was referring
3:02:56
The scaling down I was referring
3:02:56
The scaling down I was referring is what we run into.
3:03:02
is what we run into.
3:03:02
is what we run into. When you are scaling down you
3:03:04
When you are scaling down you
3:03:04
When you are scaling down you can only scale down to 10% of
3:03:07
can only scale down to 10% of
3:03:07
can only scale down to 10% of the maximum to what you have
3:03:10
the maximum to what you have
3:03:10
the maximum to what you have done.
3:03:10
done.
3:03:11
done. The flow when we went down that
3:03:13
The flow when we went down that
3:03:14
The flow when we went down that was more than what we need.
3:03:18
was more than what we need.
3:03:18
was more than what we need. So, that's the way it works.
3:03:25
So, that's the way it works.
3:03:25
So, that's the way it works. The final piece I would like to
3:03:26
The final piece I would like to
3:03:27
The final piece I would like to call out is a clear
3:03:28
call out is a clear
3:03:28
call out is a clear understanding. The consistent
3:03:31
understanding. The consistent
3:03:32
understanding. The consistent models and highest one is a
3:03:37
models and highest one is a
3:03:37
models and highest one is a strong consistency and the one
3:03:38
strong consistency and the one
3:03:38
strong consistency and the one at the bottom.
3:03:40
at the bottom.
3:03:41
at the bottom. We picked up somewhere. The
3:03:44
We picked up somewhere. The
3:03:44
We picked up somewhere. The higher the consistency the more
3:03:46
higher the consistency the more
3:03:49
higher the consistency the more -- what we found is trying to
3:03:58
-- what we found is trying to
3:03:58
-- what we found is trying to look for the data.
3:04:01
look for the data.
3:04:01
look for the data. We couldn't find it.
3:04:05
We couldn't find it.
3:04:05
We couldn't find it. The way we figured this out is
3:04:08
The way we figured this out is
3:04:08
The way we figured this out is a system I.D.
3:04:08
a system I.D.
3:04:09
a system I.D. we share and we were able to
3:04:12
we share and we were able to
3:04:12
we share and we were able to work around that.
3:04:15
work around that.
3:04:15
work around that. Overall, the experience was
3:04:19
Overall, the experience was
3:04:19
Overall, the experience was great. This is our third year.
3:04:22
great. This is our third year.
3:04:22
great. This is our third year. We have been really good.
3:04:25
We have been really good.
3:04:25
We have been really good. With that, I will let Vin go
3:04:29
With that, I will let Vin go
3:04:29
With that, I will let Vin go over what some of our journey in
3:04:33
over what some of our journey in
3:04:34
over what some of our journey in the A.I.
3:04:35
the A.I.
3:04:35
the A.I. space.
3:04:36
space.
3:04:36
space. >> Thanks Mani . Glad you could
3:04:41
>> Thanks Mani . Glad you could
3:04:41
>> Thanks Mani . Glad you could join us today.
3:04:43
join us today.
3:04:43
join us today. I would like to start off with
3:04:45
I would like to start off with
3:04:45
I would like to start off with starting with our journey in
3:04:47
starting with our journey in
3:04:47
starting with our journey in the A.I.
3:04:47
the A.I.
3:04:47
the A.I. enabled app space.
3:04:50
enabled app space.
3:04:50
enabled app space. This is going to be a fast-
3:04:52
This is going to be a fast-
3:04:52
This is going to be a fast- paced session here. I have
3:04:56
paced session here. I have
3:04:56
paced session here. I have limited time.
3:04:57
limited time.
3:04:57
limited time. I do want to talk about our
3:04:58
I do want to talk about our
3:04:58
I do want to talk about our journey as we first started to
3:05:03
journey as we first started to
3:05:03
journey as we first started to get into the generative A.I.
3:05:04
get into the generative A.I.
3:05:04
get into the generative A.I. space.
3:05:07
space.
3:05:07
space. For customers, we launched
3:05:10
For customers, we launched
3:05:10
For customers, we launched almost two years ago A.I.
3:05:14
almost two years ago A.I.
3:05:14
almost two years ago A.I. tax assessed which is a
3:05:14
tax assessed which is a
3:05:15
tax assessed which is a capability that lets DIY
3:05:16
capability that lets DIY
3:05:16
capability that lets DIY clients ask task -- tax related
3:05:20
clients ask task -- tax related
3:05:20
clients ask task -- tax related questions and get quick answers
3:05:22
questions and get quick answers
3:05:22
questions and get quick answers 24/7. This was an important
3:05:26
24/7. This was an important
3:05:26
24/7. This was an important piece to help center capability
3:05:31
piece to help center capability
3:05:31
piece to help center capability into something that was
3:05:32
into something that was
3:05:32
into something that was interactive and will speak to
3:05:33
interactive and will speak to
3:05:34
interactive and will speak to other folks in a little bit.
3:05:37
other folks in a little bit.
3:05:37
other folks in a little bit. We also rolled out in
3:05:39
We also rolled out in
3:05:39
We also rolled out in production self-help capability
3:05:42
production self-help capability
3:05:42
production self-help capability for our tax pros to help them
3:05:44
for our tax pros to help them
3:05:44
for our tax pros to help them with technical and tax issues
3:05:47
with technical and tax issues
3:05:47
with technical and tax issues that may provide them a summary
3:05:51
that may provide them a summary
3:05:51
that may provide them a summary of resolution.
3:05:52
of resolution.
3:05:52
of resolution. We also did a whole bunch of
3:05:55
We also did a whole bunch of
3:05:55
We also did a whole bunch of experiments and there are
3:05:58
experiments and there are
3:05:58
experiments and there are several on the road map.
3:06:05
several on the road map.
3:06:05
several on the road map. We probably launched somewhere
3:06:06
We probably launched somewhere
3:06:06
We probably launched somewhere around the same time in tax
3:06:07
around the same time in tax
3:06:07
around the same time in tax assessed a secure GPT app. We
3:06:15
assessed a secure GPT app. We
3:06:15
assessed a secure GPT app. We also did multiple dueling
3:06:17
also did multiple dueling
3:06:17
also did multiple dueling experiments such as testing
3:06:23
experiments such as testing
3:06:23
experiments such as testing evaluation capabilities so that
3:06:25
evaluation capabilities so that
3:06:25
evaluation capabilities so that the testers can evaluate.
3:06:28
the testers can evaluate.
3:06:28
the testers can evaluate. All of this experience prepares
3:06:31
All of this experience prepares
3:06:31
All of this experience prepares us really well for what's to
3:06:35
us really well for what's to
3:06:35
us really well for what's to come in the future. We went from
3:06:44
come in the future. We went from
3:06:44
come in the future. We went from primary a search experience to
3:06:47
primary a search experience to
3:06:48
primary a search experience to an A.I.
3:06:48
an A.I.
3:06:49
an A.I. infused search experience.
3:06:49
infused search experience.
3:06:49
infused search experience. When you look at how we used to
3:06:52
When you look at how we used to
3:06:52
When you look at how we used to do in the past and this still
3:06:54
do in the past and this still
3:06:54
do in the past and this still exists, but if you want to ask
3:06:57
exists, but if you want to ask
3:06:57
exists, but if you want to ask a question how to claim a credit
3:06:59
a question how to claim a credit
3:06:59
a question how to claim a credit you would get a whole bunch of
3:07:01
you would get a whole bunch of
3:07:01
you would get a whole bunch of questions and you would have to
3:07:04
questions and you would have to
3:07:04
questions and you would have to sift through them and see where
3:07:05
sift through them and see where
3:07:05
sift through them and see where the answer is.
3:07:08
the answer is.
3:07:08
the answer is. From there, we went to this
3:07:12
From there, we went to this
3:07:12
From there, we went to this where you can ask a question
3:07:13
where you can ask a question
3:07:14
where you can ask a question and get a response immediately.
3:07:16
and get a response immediately.
3:07:16
and get a response immediately. Now, it also has chat history
3:07:19
Now, it also has chat history
3:07:19
Now, it also has chat history and a whole bunch of other
3:07:20
and a whole bunch of other
3:07:20
and a whole bunch of other capabilities including follow-
3:07:21
capabilities including follow-
3:07:21
capabilities including follow- up questions, which are pretty
3:07:23
up questions, which are pretty
3:07:23
up questions, which are pretty handy.
3:07:26
handy.
3:07:26
handy. All of this was done over the
3:07:27
All of this was done over the
3:07:27
All of this was done over the period of time -- all of that
3:07:33
period of time -- all of that
3:07:33
period of time -- all of that was possible because you didn't
3:07:35
was possible because you didn't
3:07:35
was possible because you didn't have to worry too much about
3:07:37
have to worry too much about
3:07:37
have to worry too much about assistance here which is where
3:07:40
assistance here which is where
3:07:41
assistance here which is where -- comes in.
3:07:42
-- comes in.
3:07:42
-- comes in. I'll just quickly go through.
3:07:47
I'll just quickly go through.
3:07:47
I'll just quickly go through. We are on the.net Cosmos DB
3:07:52
We are on the.net Cosmos DB
3:07:52
We are on the.net Cosmos DB integration was really simple
3:07:56
integration was really simple
3:07:56
integration was really simple considering what was available
3:07:57
considering what was available
3:07:57
considering what was available to us and infrastructure and
3:08:01
to us and infrastructure and
3:08:01
to us and infrastructure and open A.I.
3:08:01
open A.I.
3:08:01
open A.I. service, at Gateway, all of the
3:08:07
service, at Gateway, all of the
3:08:07
service, at Gateway, all of the usual suspects like I said.
3:08:08
usual suspects like I said.
3:08:08
usual suspects like I said. All of this enabled us to
3:08:11
All of this enabled us to
3:08:11
All of this enabled us to double up and apply this in
3:08:13
double up and apply this in
3:08:13
double up and apply this in record time. It also allowed us
3:08:18
record time. It also allowed us
3:08:18
record time. It also allowed us an incremental uplift in client
3:08:22
an incremental uplift in client
3:08:22
an incremental uplift in client satisfaction and prevention, so
3:08:26
satisfaction and prevention, so
3:08:26
satisfaction and prevention, so this is been in production for
3:08:27
this is been in production for
3:08:27
this is been in production for two tax seasons now including
3:08:28
two tax seasons now including
3:08:28
two tax seasons now including this one.
3:08:28
this one.
3:08:28
this one. If you look at this height level
3:08:31
If you look at this height level
3:08:31
If you look at this height level concept Joel architecture
3:08:33
concept Joel architecture
3:08:33
concept Joel architecture diagram you will see design
3:08:37
diagram you will see design
3:08:37
diagram you will see design time capabilities, from multiple
3:08:38
time capabilities, from multiple
3:08:38
time capabilities, from multiple contents including tax Institute
3:08:42
contents including tax Institute
3:08:42
contents including tax Institute which is for content we process
3:08:46
which is for content we process
3:08:46
which is for content we process and just. We have pipelines
3:08:50
and just. We have pipelines
3:08:50
and just. We have pipelines that enable usfor storage, and
3:08:54
that enable usfor storage, and
3:08:54
that enable usfor storage, and indexing service that uses the
3:08:56
indexing service that uses the
3:08:56
indexing service that uses the embedding model and we prepare
3:08:59
embedding model and we prepare
3:09:00
embedding model and we prepare an index in the search.
3:09:04
an index in the search.
3:09:04
an index in the search. As the user comes in we use --
3:09:11
As the user comes in we use --
3:09:11
As the user comes in we use -- we embed it, search the
3:09:18
we embed it, search the
3:09:18
we embed it, search the retrieval part of the pattern
3:09:19
retrieval part of the pattern
3:09:20
retrieval part of the pattern and do the generation part.
3:09:25
and do the generation part.
3:09:25
and do the generation part. Assemble custom prompt is what
3:09:26
Assemble custom prompt is what
3:09:26
Assemble custom prompt is what is finally being sent to the
3:09:28
is finally being sent to the
3:09:28
is finally being sent to the GPT model is what we are using.
3:09:34
GPT model is what we are using.
3:09:34
GPT model is what we are using. If you look at it, this is a
3:09:36
If you look at it, this is a
3:09:36
If you look at it, this is a pretty simple high-level
3:09:36
pretty simple high-level
3:09:36
pretty simple high-level diagram.
3:09:37
diagram.
3:09:37
diagram. If you unpack this there are so
3:09:39
If you unpack this there are so
3:09:39
If you unpack this there are so many capabilities that need to
3:09:41
many capabilities that need to
3:09:42
many capabilities that need to be built including the
3:09:43
be built including the
3:09:43
be built including the evaluation pieces.
3:09:43
evaluation pieces.
3:09:43
evaluation pieces. All of the data, it's stored in
3:09:47
All of the data, it's stored in
3:09:47
All of the data, it's stored in Cosmos DB . Why did we pick
3:09:52
Cosmos DB . Why did we pick
3:09:52
Cosmos DB . Why did we pick Cosmos DB?
3:09:54
Cosmos DB?
3:09:54
Cosmos DB? One of the number one reasons
3:09:56
One of the number one reasons
3:09:56
One of the number one reasons why we picked it is because of
3:10:00
why we picked it is because of
3:10:00
why we picked it is because of developer productivity.
3:10:01
developer productivity.
3:10:01
developer productivity. It all depends on what is your
3:10:04
It all depends on what is your
3:10:04
It all depends on what is your custom stack that is familiar
3:10:06
custom stack that is familiar
3:10:06
custom stack that is familiar to developers and the team and
3:10:10
to developers and the team and
3:10:10
to developers and the team and with your stack, it was a no-
3:10:15
with your stack, it was a no-
3:10:15
with your stack, it was a no- brainer.
3:10:17
brainer.
3:10:17
brainer. The rapid development also help
3:10:19
The rapid development also help
3:10:19
The rapid development also help us tremendously.
3:10:22
us tremendously.
3:10:22
us tremendously. Mani talked about scalability ,
3:10:24
Mani talked about scalability ,
3:10:24
Mani talked about scalability , et cetera.
3:10:26
et cetera.
3:10:26
et cetera. So, what are the kind of things
3:10:30
So, what are the kind of things
3:10:30
So, what are the kind of things you can use it for?
3:10:32
you can use it for?
3:10:33
you can use it for? All of these, this is data that
3:10:36
All of these, this is data that
3:10:36
All of these, this is data that you can store in Cosmos DB.
3:10:40
you can store in Cosmos DB.
3:10:40
you can store in Cosmos DB. Eventually being able to run
3:10:41
Eventually being able to run
3:10:41
Eventually being able to run vector search, et cetera.
3:10:45
vector search, et cetera.
3:10:45
vector search, et cetera. What happens is once you have
3:10:47
What happens is once you have
3:10:47
What happens is once you have data, today we use -- for
3:10:54
data, today we use -- for
3:10:54
data, today we use -- for several other experiments and
3:10:59
several other experiments and
3:10:59
several other experiments and on the road map you can think
3:11:00
on the road map you can think
3:11:00
on the road map you can think about what is possible.
3:11:02
about what is possible.
3:11:02
about what is possible. This is why I spent a little
3:11:04
This is why I spent a little
3:11:04
This is why I spent a little bit of time developing the demo
3:11:05
bit of time developing the demo
3:11:05
bit of time developing the demo of answering that question as
3:11:06
of answering that question as
3:11:06
of answering that question as to what is possible when the use
3:11:09
to what is possible when the use
3:11:09
to what is possible when the use Cosmos DB.
3:11:12
Cosmos DB.
3:11:12
Cosmos DB. With that, we will get into a
3:11:14
With that, we will get into a
3:11:14
With that, we will get into a quick demo.
3:11:16
quick demo.
3:11:16
quick demo. In the demo we are going to
3:11:18
In the demo we are going to
3:11:18
In the demo we are going to explore what I call functional
3:11:21
explore what I call functional
3:11:21
explore what I call functional observing.
3:11:23
observing.
3:11:23
observing. This is not your typical
3:11:24
This is not your typical
3:11:24
This is not your typical infrastructure observability or
3:11:27
infrastructure observability or
3:11:27
infrastructure observability or app observability, this is
3:11:28
app observability, this is
3:11:28
app observability, this is about data.
3:11:30
about data.
3:11:30
about data. If you have data and you want
3:11:32
If you have data and you want
3:11:32
If you have data and you want to run analytics are so many
3:11:33
to run analytics are so many
3:11:33
to run analytics are so many ways to do it.
3:11:35
ways to do it.
3:11:35
ways to do it. One of the questions I asked
3:11:37
One of the questions I asked
3:11:37
One of the questions I asked myself is what if you could use
3:11:38
myself is what if you could use
3:11:38
myself is what if you could use A.I.
3:11:38
A.I.
3:11:38
A.I. to do this?
3:11:39
to do this?
3:11:39
to do this? I'll quickly switch to the demo
3:11:45
I'll quickly switch to the demo
3:11:45
I'll quickly switch to the demo here.
3:11:48
here.
3:11:48
here. So, with chat transcript
3:11:51
So, with chat transcript
3:11:51
So, with chat transcript analytics what I did is I
3:11:54
analytics what I did is I
3:11:54
analytics what I did is I cleared it a bunch of
3:11:56
cleared it a bunch of
3:11:56
cleared it a bunch of educational sample data for
3:12:00
educational sample data for
3:12:00
educational sample data for conversations that could happen
3:12:02
conversations that could happen
3:12:02
conversations that could happen between a tax assistant and
3:12:05
between a tax assistant and
3:12:05
between a tax assistant and customer, the user.
3:12:11
customer, the user.
3:12:11
customer, the user. If you look at this, this is
3:12:12
If you look at this, this is
3:12:12
If you look at this, this is all sample data, simulated
3:12:14
all sample data, simulated
3:12:14
all sample data, simulated synthetic data and this is just
3:12:18
synthetic data and this is just
3:12:18
synthetic data and this is just an explorer of the data.
3:12:21
an explorer of the data.
3:12:21
an explorer of the data. Can you tell me all the federal
3:12:23
Can you tell me all the federal
3:12:23
Can you tell me all the federal tax finding and assistant comes
3:12:26
tax finding and assistant comes
3:12:26
tax finding and assistant comes back with a response.
3:12:28
back with a response.
3:12:28
back with a response. None of this is from real data.
3:12:30
None of this is from real data.
3:12:30
None of this is from real data. This is synthetic data we use
3:12:33
This is synthetic data we use
3:12:33
This is synthetic data we use to test possible hypotheses of
3:12:36
to test possible hypotheses of
3:12:36
to test possible hypotheses of how we can improve expedience.
3:12:39
how we can improve expedience.
3:12:39
how we can improve expedience. I will look through a few more.
3:12:43
I will look through a few more.
3:12:43
I will look through a few more. You can see how I generated
3:12:47
You can see how I generated
3:12:47
You can see how I generated about 20 of them I believe.
3:12:50
about 20 of them I believe.
3:12:50
about 20 of them I believe. Some expressed frustration,
3:12:55
Some expressed frustration,
3:12:55
Some expressed frustration, some are annoyed, some are
3:12:56
some are annoyed, some are
3:12:56
some are annoyed, some are happy, it all depends.
3:12:57
happy, it all depends.
3:12:57
happy, it all depends. All of this data is stowed in a
3:13:00
All of this data is stowed in a
3:13:00
All of this data is stowed in a chat transcript DB. If we look
3:13:05
chat transcript DB. If we look
3:13:05
chat transcript DB. If we look here, this is a very simple
3:13:07
here, this is a very simple
3:13:07
here, this is a very simple data model for the chat
3:13:08
data model for the chat
3:13:08
data model for the chat transcripts.
3:13:10
transcripts.
3:13:10
transcripts. The assistant says this and so
3:13:12
The assistant says this and so
3:13:12
The assistant says this and so forth.
3:13:16
forth.
3:13:16
forth. Out here you can see the
3:13:17
Out here you can see the
3:13:18
Out here you can see the embeddings of the conversation.
3:13:22
embeddings of the conversation.
3:13:22
embeddings of the conversation. You can Google it and see the
3:13:26
You can Google it and see the
3:13:26
You can Google it and see the embeddings.
3:13:28
embeddings.
3:13:28
embeddings. They are similar to extract
3:13:32
They are similar to extract
3:13:32
They are similar to extract information. So, I can go
3:13:44
information. So, I can go
3:13:44
information. So, I can go through some additional chat
3:13:47
through some additional chat
3:13:47
through some additional chat transcripts here, but you get
3:13:48
transcripts here, but you get
3:13:49
transcripts here, but you get the idea.
3:13:49
the idea.
3:13:49
the idea. Let's switch back to the app
3:13:55
Let's switch back to the app
3:13:55
Let's switch back to the app and I will show you what the
3:13:56
and I will show you what the
3:13:57
and I will show you what the goal is here.
3:13:57
goal is here.
3:13:58
goal is here. The goal is to generate
3:13:58
The goal is to generate
3:13:58
The goal is to generate something like this.
3:14:02
something like this.
3:14:02
something like this. How to run analysis on the
3:14:03
How to run analysis on the
3:14:03
How to run analysis on the transcript data.
3:14:05
transcript data.
3:14:05
transcript data. I run some analysis already. I
3:14:07
I run some analysis already. I
3:14:07
I run some analysis already. I sampled the data because if you
3:14:12
sampled the data because if you
3:14:12
sampled the data because if you have millions of transcripts
3:14:13
have millions of transcripts
3:14:13
have millions of transcripts running all of them becomes
3:14:15
running all of them becomes
3:14:15
running all of them becomes very challenging and takes a
3:14:16
very challenging and takes a
3:14:16
very challenging and takes a lot of time.
3:14:19
lot of time.
3:14:19
lot of time. I will sample the data to
3:14:22
I will sample the data to
3:14:22
I will sample the data to demonstrate and showcase what
3:14:23
demonstrate and showcase what
3:14:23
demonstrate and showcase what is possible.
3:14:23
is possible.
3:14:23
is possible. In this case you can see I
3:14:29
In this case you can see I
3:14:29
In this case you can see I analyzed, the top topic was
3:14:34
analyzed, the top topic was
3:14:34
analyzed, the top topic was home office deduction. What
3:14:38
home office deduction. What
3:14:38
home office deduction. What were the common theme points?
3:14:40
were the common theme points?
3:14:40
were the common theme points? This app uses generative A.I.
3:14:44
This app uses generative A.I.
3:14:44
This app uses generative A.I. , specifically the -- model
3:14:47
, specifically the -- model
3:14:47
, specifically the -- model that is better at reasoning, is
3:14:49
that is better at reasoning, is
3:14:49
that is better at reasoning, is used to decide given this
3:14:54
used to decide given this
3:14:54
used to decide given this transcript messages and a bunch
3:14:57
transcript messages and a bunch
3:14:58
transcript messages and a bunch of transcripts, how can we
3:15:02
of transcripts, how can we
3:15:02
of transcripts, how can we extract this information that
3:15:03
extract this information that
3:15:03
extract this information that we are really looking for?
3:15:07
we are really looking for?
3:15:07
we are really looking for? Why are we doing this?
3:15:08
Why are we doing this?
3:15:08
Why are we doing this? To improve expedience and find
3:15:09
To improve expedience and find
3:15:09
To improve expedience and find out what we can do to make it
3:15:10
out what we can do to make it
3:15:10
out what we can do to make it better.
3:15:10
better.
3:15:11
better. We have sentiment analysis,
3:15:12
We have sentiment analysis,
3:15:12
We have sentiment analysis, popular topics, user
3:15:13
popular topics, user
3:15:13
popular topics, user expectations, what our users
3:15:16
expectations, what our users
3:15:17
expectations, what our users actually expecting out of this
3:15:18
actually expecting out of this
3:15:18
actually expecting out of this interaction?
3:15:19
interaction?
3:15:19
interaction? What are some key insights?
3:15:21
What are some key insights?
3:15:21
What are some key insights? I can go back and look at some
3:15:25
I can go back and look at some
3:15:25
I can go back and look at some older ones and see what were
3:15:27
older ones and see what were
3:15:27
older ones and see what were the common pinpoints, popular
3:15:30
the common pinpoints, popular
3:15:30
the common pinpoints, popular topics, because if you know
3:15:33
topics, because if you know
3:15:33
topics, because if you know what the popular topics are we
3:15:35
what the popular topics are we
3:15:35
what the popular topics are we can spend more time improving
3:15:37
can spend more time improving
3:15:37
can spend more time improving that content. Now, I need to
3:15:41
that content. Now, I need to
3:15:41
that content. Now, I need to stop your because this is a
3:15:43
stop your because this is a
3:15:43
stop your because this is a good read out.
3:15:45
good read out.
3:15:45
good read out. I will quickly show you how
3:15:47
I will quickly show you how
3:15:47
I will quickly show you how that works.
3:15:50
that works.
3:15:50
that works. If I click in-depth analysis
3:15:51
If I click in-depth analysis
3:15:51
If I click in-depth analysis it's going to pick up 10
3:15:52
it's going to pick up 10
3:15:52
it's going to pick up 10 transcripts and start to
3:15:55
transcripts and start to
3:15:55
transcripts and start to analyze each of those
3:15:57
analyze each of those
3:15:57
analyze each of those individual transcripts and
3:15:58
individual transcripts and
3:15:58
individual transcripts and create analytics for that
3:15:59
create analytics for that
3:15:59
create analytics for that transcript.
3:16:02
transcript.
3:16:02
transcript. Once you have a bunch of
3:16:03
Once you have a bunch of
3:16:03
Once you have a bunch of analytics it puts them
3:16:04
analytics it puts them
3:16:04
analytics it puts them altogether and goes to the next
3:16:05
altogether and goes to the next
3:16:05
altogether and goes to the next step which is to aggregate the
3:16:07
step which is to aggregate the
3:16:07
step which is to aggregate the desert and present that
3:16:13
desert and present that
3:16:13
desert and present that information.
3:16:15
information.
3:16:15
information. That is what we saw in the
3:16:18
That is what we saw in the
3:16:18
That is what we saw in the dashboard panel.
3:16:19
dashboard panel.
3:16:19
dashboard panel. You also have some analytics
3:16:20
You also have some analytics
3:16:20
You also have some analytics about what was average messages
3:16:23
about what was average messages
3:16:23
about what was average messages for conversation, what was the
3:16:28
for conversation, what was the
3:16:28
for conversation, what was the duration, how long were they
3:16:29
duration, how long were they
3:16:29
duration, how long were they on, things like that.
3:16:30
on, things like that.
3:16:30
on, things like that. This is really helpful for us
3:16:31
This is really helpful for us
3:16:31
This is really helpful for us to understand how things are
3:16:33
to understand how things are
3:16:33
to understand how things are working when you have A.I.
3:16:37
working when you have A.I.
3:16:37
working when you have A.I. assisted expedience.
3:16:38
assisted expedience.
3:16:39
assisted expedience. This may be enough but what if
3:16:43
This may be enough but what if
3:16:43
This may be enough but what if I have more questions?
3:16:44
I have more questions?
3:16:44
I have more questions? What would I do?
3:16:48
What would I do?
3:16:48
What would I do? For that, we have a chat
3:16:51
For that, we have a chat
3:16:51
For that, we have a chat assistant.
3:16:51
assistant.
3:16:51
assistant. This is a little bit of meta-
3:16:53
This is a little bit of meta-
3:16:54
This is a little bit of meta- because you have chat
3:16:56
because you have chat
3:16:56
because you have chat transcripts and you want to
3:16:57
transcripts and you want to
3:16:57
transcripts and you want to chat about those.
3:16:59
chat about those.
3:16:59
chat about those. Here are some examples. I can
3:17:03
Here are some examples. I can
3:17:03
Here are some examples. I can click on one of these and ask
3:17:05
click on one of these and ask
3:17:05
click on one of these and ask this question. Provide an
3:17:08
this question. Provide an
3:17:08
this question. Provide an analysis of the questions about
3:17:11
analysis of the questions about
3:17:11
analysis of the questions about I.R.A.
3:17:12
I.R.A.
3:17:12
I.R.A. benefits please.
3:17:13
benefits please.
3:17:13
benefits please. One of the goals with this demo
3:17:16
One of the goals with this demo
3:17:16
One of the goals with this demo was to build a generative A.I.
3:17:21
was to build a generative A.I.
3:17:21
was to build a generative A.I. capability to act like an
3:17:25
capability to act like an
3:17:26
capability to act like an autonomous agent who is
3:17:28
autonomous agent who is
3:17:28
autonomous agent who is entirely analyzing the question
3:17:30
entirely analyzing the question
3:17:31
entirely analyzing the question , what kind of data do I need
3:17:32
, what kind of data do I need
3:17:32
, what kind of data do I need to answer that question, go
3:17:34
to answer that question, go
3:17:34
to answer that question, go ahead and do the data gathering
3:17:39
ahead and do the data gathering
3:17:39
ahead and do the data gathering , review and so on and so forth.
3:17:41
, review and so on and so forth.
3:17:41
, review and so on and so forth. If I expand this I can see how
3:17:44
If I expand this I can see how
3:17:44
If I expand this I can see how things are happening.
3:17:50
things are happening.
3:17:50
things are happening. Each step is producing what is
3:17:54
Each step is producing what is
3:17:55
Each step is producing what is going on under the hood.
3:17:56
going on under the hood.
3:17:56
going on under the hood. You can see these are available
3:17:59
You can see these are available
3:17:59
You can see these are available to the system -- sorry, it is
3:18:03
to the system -- sorry, it is
3:18:03
to the system -- sorry, it is still working on it.
3:18:06
still working on it.
3:18:06
still working on it. The expand and collapse isn't
3:18:07
The expand and collapse isn't
3:18:07
The expand and collapse isn't happening.
3:18:08
happening.
3:18:08
happening. I'll show what happens in the
3:18:10
I'll show what happens in the
3:18:10
I'll show what happens in the end.
3:18:10
end.
3:18:10
end. In the end I get an analysis
3:18:13
In the end I get an analysis
3:18:13
In the end I get an analysis depending on the question, the
3:18:18
depending on the question, the
3:18:18
depending on the question, the volume, what is the frequency,
3:18:21
volume, what is the frequency,
3:18:21
volume, what is the frequency, message distribution?
3:18:23
message distribution?
3:18:23
message distribution? All of this is planned in these
3:18:26
All of this is planned in these
3:18:26
All of this is planned in these earlier steps.
3:18:29
earlier steps.
3:18:29
earlier steps. We are using the capability to
3:18:32
We are using the capability to
3:18:32
We are using the capability to ask those questions.
3:18:34
ask those questions.
3:18:34
ask those questions. I will quickly run through the
3:18:35
I will quickly run through the
3:18:35
I will quickly run through the code for you to see it, but you
3:18:38
code for you to see it, but you
3:18:38
code for you to see it, but you can see all of these steps are
3:18:42
can see all of these steps are
3:18:42
can see all of these steps are autonomously occurring that the
3:18:45
autonomously occurring that the
3:18:45
autonomously occurring that the agent is taking place.
3:18:46
agent is taking place.
3:18:46
agent is taking place. The agent is deciding how do I
3:18:51
The agent is deciding how do I
3:18:51
The agent is deciding how do I decide to answer this question?
3:18:52
decide to answer this question?
3:18:52
decide to answer this question? What kind of data do I need?
3:18:55
What kind of data do I need?
3:18:55
What kind of data do I need? What kind of tools are at my
3:18:56
What kind of tools are at my
3:18:56
What kind of tools are at my disposal to answer the question?
3:18:57
disposal to answer the question?
3:18:58
disposal to answer the question? Even after it gathers the data
3:19:00
Even after it gathers the data
3:19:00
Even after it gathers the data it formulates a response that
3:19:03
it formulates a response that
3:19:03
it formulates a response that is meaningful.
3:19:06
is meaningful.
3:19:06
is meaningful. If you look at the inside
3:19:08
If you look at the inside
3:19:08
If you look at the inside generation step and
3:19:11
generation step and
3:19:11
generation step and clarification, vector search
3:19:15
clarification, vector search
3:19:15
clarification, vector search that happens, I made it very
3:19:19
that happens, I made it very
3:19:19
that happens, I made it very elaborate here for the
3:19:20
elaborate here for the
3:19:20
elaborate here for the technical audience so you can
3:19:22
technical audience so you can
3:19:22
technical audience so you can see some of the plug-ins
3:19:24
see some of the plug-ins
3:19:24
see some of the plug-ins functions are being called here.
3:19:28
functions are being called here.
3:19:28
functions are being called here. Let me jump back to the code
3:19:30
Let me jump back to the code
3:19:30
Let me jump back to the code really quick.
3:19:32
really quick.
3:19:32
really quick. I will quickly go through two
3:19:33
I will quickly go through two
3:19:33
I will quickly go through two projects here in this solution.
3:19:36
projects here in this solution.
3:19:36
projects here in this solution. First is the transcript
3:19:37
First is the transcript
3:19:37
First is the transcript generator.
3:19:38
generator.
3:19:38
generator. I have a simple system prompt
3:19:42
I have a simple system prompt
3:19:42
I have a simple system prompt that was able to generate those
3:19:43
that was able to generate those
3:19:43
that was able to generate those educational examples.
3:19:44
educational examples.
3:19:44
educational examples. I have an example I provided and
3:19:49
I have an example I provided and
3:19:50
I have an example I provided and I have a Cosmos DB service
3:19:52
I have a Cosmos DB service
3:19:52
I have a Cosmos DB service able to upload the transcript,
3:19:59
able to upload the transcript,
3:19:59
able to upload the transcript, set up indexing policy, stuff
3:20:01
set up indexing policy, stuff
3:20:01
set up indexing policy, stuff that we talked about and using
3:20:06
that we talked about and using
3:20:07
that we talked about and using a new capability that was
3:20:07
a new capability that was
3:20:07
a new capability that was released late last year that is
3:20:10
released late last year that is
3:20:10
released late last year that is best for performance and
3:20:11
best for performance and
3:20:12
best for performance and scalability if you have more
3:20:13
scalability if you have more
3:20:13
scalability if you have more than 1000 vectors. We are using
3:20:17
than 1000 vectors. We are using
3:20:17
than 1000 vectors. We are using the cosine similarity here, the
3:20:19
the cosine similarity here, the
3:20:19
the cosine similarity here, the dimensions are 3072 using the
3:20:23
dimensions are 3072 using the
3:20:23
dimensions are 3072 using the large model. Let me quickly
3:20:28
large model. Let me quickly
3:20:28
large model. Let me quickly switch back to the app.
3:20:29
switch back to the app.
3:20:29
switch back to the app. In the app what is happening is
3:20:32
In the app what is happening is
3:20:32
In the app what is happening is we have two semantic plug-ins
3:20:38
we have two semantic plug-ins
3:20:38
we have two semantic plug-ins and each of them provide a
3:20:39
and each of them provide a
3:20:39
and each of them provide a bunch of capabilities. Get
3:20:41
bunch of capabilities. Get
3:20:41
bunch of capabilities. Get conversation stats, message
3:20:46
conversation stats, message
3:20:46
conversation stats, message distribution, conversation time
3:20:47
distribution, conversation time
3:20:49
distribution, conversation time metric, get interaction
3:20:51
metric, get interaction
3:20:51
metric, get interaction patterns.
3:20:53
patterns.
3:20:53
patterns. We have a vector search plug-in
3:20:59
We have a vector search plug-in
3:20:59
We have a vector search plug-in that is able to search similar
3:21:00
that is able to search similar
3:21:00
that is able to search similar transcripts, so on and so
3:21:01
transcripts, so on and so
3:21:01
transcripts, so on and so forth.
3:21:01
forth.
3:21:01
forth. If I switch back to the Cosmos
3:21:11
If I switch back to the Cosmos
3:21:11
If I switch back to the Cosmos DB interface during the
3:21:15
DB interface during the
3:21:15
DB interface during the analysis we produce these
3:21:17
analysis we produce these
3:21:17
analysis we produce these comprehensive analysis earlier
3:21:19
comprehensive analysis earlier
3:21:19
comprehensive analysis earlier saw.
3:21:20
saw.
3:21:20
saw. The first step was to create
3:21:24
The first step was to create
3:21:24
The first step was to create these analytics. The second step
3:21:28
these analytics. The second step
3:21:28
these analytics. The second step was to aggregate them, which is
3:21:30
was to aggregate them, which is
3:21:31
was to aggregate them, which is what we did.
3:21:33
what we did.
3:21:33
what we did. That's what you saw.
3:21:35
That's what you saw.
3:21:35
That's what you saw. Things like what were the
3:21:37
Things like what were the
3:21:37
Things like what were the pinpoints, this was aggregated
3:21:39
pinpoints, this was aggregated
3:21:40
pinpoints, this was aggregated and analytics.
3:21:41
and analytics.
3:21:41
and analytics. All of this was created by the
3:21:45
All of this was created by the
3:21:45
All of this was created by the application using these tools
3:21:48
application using these tools
3:21:48
application using these tools and functions.
3:21:50
and functions.
3:21:50
and functions. I will go over some of the
3:21:51
I will go over some of the
3:21:51
I will go over some of the problems of the agent.
3:21:54
problems of the agent.
3:21:54
problems of the agent. Starting with the chat agent
3:21:55
Starting with the chat agent
3:21:55
Starting with the chat agent service as the request comes in
3:22:02
service as the request comes in
3:22:02
service as the request comes in we are able to use the chat
3:22:03
we are able to use the chat
3:22:03
we are able to use the chat hub.
3:22:04
hub.
3:22:04
hub. This is the entry point of the
3:22:09
This is the entry point of the
3:22:09
This is the entry point of the messages, once the message
3:22:10
messages, once the message
3:22:10
messages, once the message comes in.
3:22:11
comes in.
3:22:11
comes in. We start the step-by-step
3:22:13
We start the step-by-step
3:22:13
We start the step-by-step process and send out what we
3:22:19
process and send out what we
3:22:19
process and send out what we call as the reasoning
3:22:20
call as the reasoning
3:22:20
call as the reasoning transparency.
3:22:24
transparency.
3:22:24
transparency. In order to provide
3:22:25
In order to provide
3:22:25
In order to provide transparency to the user as to
3:22:26
transparency to the user as to
3:22:26
transparency to the user as to what is happening you have to
3:22:27
what is happening you have to
3:22:27
what is happening you have to notify the client. In this
3:22:29
notify the client. In this
3:22:29
notify the client. In this case, it is the user. So, this
3:22:34
case, it is the user. So, this
3:22:34
case, it is the user. So, this chat agent service eventually
3:22:36
chat agent service eventually
3:22:37
chat agent service eventually ends up using step by step
3:22:44
ends up using step by step
3:22:44
ends up using step by step actions in order to execute and
3:22:51
actions in order to execute and
3:22:51
actions in order to execute and how to find an answer.
3:22:55
how to find an answer.
3:22:55
how to find an answer. All of this, if you look at the
3:22:58
All of this, if you look at the
3:22:58
All of this, if you look at the evolution from here what you
3:22:59
evolution from here what you
3:22:59
evolution from here what you can do is you can put this into
3:23:01
can do is you can put this into
3:23:01
can do is you can put this into a loop.
3:23:04
a loop.
3:23:04
a loop. Until you have a final response
3:23:07
Until you have a final response
3:23:07
Until you have a final response you are looping through the
3:23:08
you are looping through the
3:23:08
you are looping through the analysis phase, the planning
3:23:09
analysis phase, the planning
3:23:09
analysis phase, the planning phase and final -- page.
3:23:13
phase and final -- page.
3:23:13
phase and final -- page. All that's happening is using
3:23:17
All that's happening is using
3:23:17
All that's happening is using the vector search plug-in.
3:23:20
the vector search plug-in.
3:23:20
the vector search plug-in. When all of these are put
3:23:21
When all of these are put
3:23:21
When all of these are put together you can imagine if you
3:23:23
together you can imagine if you
3:23:24
together you can imagine if you put the data from Cosmos DB
3:23:27
put the data from Cosmos DB
3:23:27
put the data from Cosmos DB and A.I.
3:23:30
and A.I.
3:23:30
and A.I. using the open A.I.
3:23:31
using the open A.I.
3:23:31
using the open A.I. service, generative A.I.
3:23:32
service, generative A.I.
3:23:32
service, generative A.I. models what actually is
3:23:33
models what actually is
3:23:33
models what actually is possible?
3:23:36
possible?
3:23:36
possible? You can have this run every
3:23:37
You can have this run every
3:23:38
You can have this run every night.
3:23:40
night.
3:23:41
night. Improve the accuracy of the
3:23:43
Improve the accuracy of the
3:23:43
Improve the accuracy of the generated analytics and make
3:23:46
generated analytics and make
3:23:46
generated analytics and make informed decisions to improve
3:23:48
informed decisions to improve
3:23:48
informed decisions to improve the experience for the user.
3:23:50
the experience for the user.
3:23:50
the experience for the user. This is not domain specific.
3:23:55
This is not domain specific.
3:23:55
This is not domain specific. This can be applied to any data
3:23:57
This can be applied to any data
3:23:57
This can be applied to any data that exists in Cosmos DB.
3:24:01
that exists in Cosmos DB.
3:24:01
that exists in Cosmos DB. Based on structured,
3:24:02
Based on structured,
3:24:02
Based on structured, unstructured data can be
3:24:04
unstructured data can be
3:24:04
unstructured data can be analyzed on when you put A.I.
3:24:07
analyzed on when you put A.I.
3:24:07
analyzed on when you put A.I. and data together.
3:24:08
and data together.
3:24:08
and data together. Thank you.
3:24:09
Thank you.
3:24:09
Thank you. Hope you had a good time with
3:24:13
Hope you had a good time with
3:24:14
Hope you had a good time with our session here and I expect
3:24:20
our session here and I expect
3:24:20
our session here and I expect you'll go back and experiment
3:24:24
you'll go back and experiment
3:24:24
you'll go back and experiment with how to put data and A.I.
3:24:26
with how to put data and A.I.
3:24:26
with how to put data and A.I. together.
3:24:26
together.
3:24:26
together. Before we go, I do want to
3:24:29
Before we go, I do want to
3:24:29
Before we go, I do want to highlight that today is April
3:24:32
highlight that today is April
3:24:32
highlight that today is April 15th. It is tax day. If you
3:24:38
15th. It is tax day. If you
3:24:38
15th. It is tax day. If you haven't yet filed your taxes,
3:24:39
haven't yet filed your taxes,
3:24:39
haven't yet filed your taxes, file it with H&R Block.
3:24:42
file it with H&R Block.
3:24:42
file it with H&R Block. You can file it however you
3:24:43
You can file it however you
3:24:43
You can file it however you want, from home, in person or
3:24:45
want, from home, in person or
3:24:45
want, from home, in person or drop off, multiple options are
3:24:46
drop off, multiple options are
3:24:46
drop off, multiple options are available.
3:24:46
available.
3:24:46
available. We have a mobile banking
3:24:51
We have a mobile banking
3:24:51
We have a mobile banking platform.
3:24:51
platform.
3:24:52
platform. Feel free to check it out, see
3:24:53
Feel free to check it out, see
3:24:53
Feel free to check it out, see you next time, thank you.
3:24:55
you next time, thank you.
3:24:55
you next time, thank you. >> Thank you guys for watching
3:24:56
>> Thank you guys for watching
3:24:56
>> Thank you guys for watching us.
3:24:57
us.
3:24:57
us. Reach out to us.
3:24:59
Reach out to us.
3:24:59
Reach out to us. This has been a great experience
3:25:01
This has been a great experience
3:25:02
This has been a great experience using the new Cosmos DB . Thank
3:25:05
using the new Cosmos DB . Thank
3:25:05
using the new Cosmos DB . Thank you.
3:25:07
you.
3:25:07
you. >> Thank you H&R Block and
3:25:11
>> Thank you H&R Block and
3:25:11
>> Thank you H&R Block and thank you, everyone.
3:25:14
thank you, everyone.
3:25:14
thank you, everyone. This pretty much, you know, is
3:25:15
This pretty much, you know, is
3:25:15
This pretty much, you know, is about the end of Azure Cosmos
3:25:18
about the end of Azure Cosmos
3:25:18
about the end of Azure Cosmos for 2025.
3:25:20
for 2025.
3:25:20
for 2025. It's been an exciting day.
3:25:23
It's been an exciting day.
3:25:23
It's been an exciting day. We are so appreciative of you
3:25:24
We are so appreciative of you
3:25:24
We are so appreciative of you staying with us.
3:25:25
staying with us.
3:25:25
staying with us. >> I want to give a huge shout
3:25:28
>> I want to give a huge shout
3:25:28
>> I want to give a huge shout out to all the speakers,
3:25:29
out to all the speakers,
3:25:30
out to all the speakers, contributors and everybody who
3:25:32
contributors and everybody who
3:25:32
contributors and everybody who made this event possible.
3:25:33
made this event possible.
3:25:33
made this event possible. >> We have really learned a lot
3:25:35
>> We have really learned a lot
3:25:35
>> We have really learned a lot about different scenarios for
3:25:43
about different scenarios for
3:25:43
about different scenarios for Azure Cosmos DB.
3:25:43
Azure Cosmos DB.
3:25:43
Azure Cosmos DB. Everything is about a guy these
3:25:44
Everything is about a guy these
3:25:44
Everything is about a guy these days so we talked about
3:25:45
days so we talked about
3:25:45
days so we talked about copilots and so on. Very
3:25:52
copilots and so on. Very
3:25:52
copilots and so on. Very important optimization, lots of
3:25:55
important optimization, lots of
3:25:55
important optimization, lots of best practices and one of the
3:25:58
best practices and one of the
3:25:58
best practices and one of the interesting topics was how to
3:25:59
interesting topics was how to
3:25:59
interesting topics was how to use Cosmos DB and A.I.
3:26:01
use Cosmos DB and A.I.
3:26:01
use Cosmos DB and A.I. together to create art.
3:26:04
together to create art.
3:26:04
together to create art. It is really interesting and
3:26:05
It is really interesting and
3:26:05
It is really interesting and fascinating to see how A.I.
3:26:10
fascinating to see how A.I.
3:26:10
fascinating to see how A.I. is now in all these enterprise
3:26:11
is now in all these enterprise
3:26:11
is now in all these enterprise apps and stories we keep
3:26:13
apps and stories we keep
3:26:13
apps and stories we keep hearing.
3:26:14
hearing.
3:26:14
hearing. >> If you want to catch any of
3:26:15
>> If you want to catch any of
3:26:15
>> If you want to catch any of these presentations on your own
3:26:16
these presentations on your own
3:26:16
these presentations on your own time, all sessions will be
3:26:17
time, all sessions will be
3:26:17
time, all sessions will be available on demand plus some
3:26:19
available on demand plus some
3:26:19
available on demand plus some new sessions. Brian will be
3:26:23
new sessions. Brian will be
3:26:23
new sessions. Brian will be talking about accelerating real-
3:26:24
talking about accelerating real-
3:26:24
talking about accelerating real- time analytics with Cosmos DB
3:26:25
time analytics with Cosmos DB
3:26:25
time analytics with Cosmos DB and GP you advanced.
3:26:28
and GP you advanced.
3:26:28
and GP you advanced. We will cover seamless and
3:26:29
We will cover seamless and
3:26:29
We will cover seamless and ration of Azure Cosmos DB with
3:26:33
ration of Azure Cosmos DB with
3:26:33
ration of Azure Cosmos DB with service and, lastly, I will
3:26:36
service and, lastly, I will
3:26:36
service and, lastly, I will talk about getting started with
3:26:40
talk about getting started with
3:26:40
talk about getting started with -- and open source which is the
3:26:42
-- and open source which is the
3:26:42
-- and open source which is the open source engine --
3:26:45
open source engine --
3:26:46
open source engine -- >> I'm so excited about this
3:26:50
>> I'm so excited about this
3:26:50
>> I'm so excited about this specifically.
3:26:51
specifically.
3:26:51
specifically. I was so excited about the
3:26:53
I was so excited about the
3:26:53
I was so excited about the release we did in January. I'm
3:26:57
release we did in January. I'm
3:26:57
release we did in January. I'm definitely going to watch her
3:26:58
definitely going to watch her
3:26:58
definitely going to watch her session again.
3:26:59
session again.
3:26:59
session again. By the way, open source is
3:27:04
By the way, open source is
3:27:04
By the way, open source is something develors love.
3:27:05
something develors love.
3:27:05
something develors love. We just had Paul in the chat
3:27:07
We just had Paul in the chat
3:27:07
We just had Paul in the chat about which you are using to
3:27:10
about which you are using to
3:27:10
about which you are using to develop with Azure Cosmos DB .
3:27:13
develop with Azure Cosmos DB .
3:27:13
develop with Azure Cosmos DB . I was really happy to see that
3:27:15
I was really happy to see that
3:27:16
I was really happy to see that Python is a clear second there.
3:27:20
Python is a clear second there.
3:27:20
Python is a clear second there. We have quite a lot of C sharp
3:27:21
We have quite a lot of C sharp
3:27:21
We have quite a lot of C sharp developers, Python is a very
3:27:23
developers, Python is a very
3:27:24
developers, Python is a very interesting for us and we
3:27:27
interesting for us and we
3:27:27
interesting for us and we actually go to different Python
3:27:28
actually go to different Python
3:27:28
actually go to different Python events these days.
3:27:31
events these days.
3:27:31
events these days. Also, I want to remind you that
3:27:32
Also, I want to remind you that
3:27:32
Also, I want to remind you that there is still a chance for you
3:27:34
there is still a chance for you
3:27:34
there is still a chance for you to give us, please go to the
3:27:38
to give us, please go to the
3:27:38
to give us, please go to the evaluation form and give us
3:27:40
evaluation form and give us
3:27:40
evaluation form and give us feedback and help us to continue
3:27:43
feedback and help us to continue
3:27:44
feedback and help us to continue exceptional content for next
3:27:46
exceptional content for next
3:27:49
exceptional content for next year.
3:27:50
year.
3:27:50
year. >> Please, I encourage you to
3:27:51
>> Please, I encourage you to
3:27:51
>> Please, I encourage you to continue learning more about
3:27:52
continue learning more about
3:27:52
continue learning more about Azure Cosmos DB and stay
3:27:53
Azure Cosmos DB and stay
3:27:53
Azure Cosmos DB and stay involved in the community.
3:27:56
involved in the community.
3:27:56
involved in the community. With that I wanted to thank you
3:27:59
With that I wanted to thank you
3:27:59
With that I wanted to thank you for being an amazing co-host
3:28:01
for being an amazing co-host
3:28:01
for being an amazing co-host today.
3:28:02
today.
3:28:02
today. >> It's been a pleasure working
3:28:03
>> It's been a pleasure working
3:28:03
>> It's been a pleasure working with you and hosting you.
3:28:07
with you and hosting you.
3:28:07
with you and hosting you. >> Yeah.
3:28:08
>> Yeah.
3:28:09
>> Yeah. Goodbye everybody.
3:28:10
Goodbye everybody.
3:28:10
Goodbye everybody. See you next year.
3:28:11
See you next year.
3:28:11
See you next year. Thank you for coming.
3:28:14
Thank you for coming.
3:28:14
Thank you for coming. >> Have a great rest of the
3:28:15
>> Have a great rest of the
3:28:15
>> Have a great rest of the week.
3:28:15
week.
3:28:15
week. Thank you.
3:28:16
Thank you.
3:28:16
Thank you. Bye.
3:28:16
Bye.
3:28:16
Bye. >> Thanks for being a part of
3:28:18
>> Thanks for being a part of
3:28:18
>> Thanks for being a part of Azure Cosmos DB 2025.
3:28:21
Azure Cosmos DB 2025.
3:28:21
Azure Cosmos DB 2025. >> We will see you next year.
3:28:24
>> We will see you next year.
3:28:24
>> We will see you next year. >> Thank you.
3:28:26
>> Thank you.
3:28:26
>> Thank you. >> Thank you.
3:28:28
>> Thank you.
3:28:28
>> Thank you. >> See you in 2026.
3:28:37
>> See you in 2026.
3:28:37
>> See you in 2026. [ Music ]


