back to indexWe accidentally made an AI platform: Jamie Turner

00:00:00.000 |
So, originally I had this very fancy title for this talk, Deterministic Workflow, and 00:00:19.320 |
But what I really want to title it is we accidentally made an AI platform, and what are we going 00:00:26.840 |
This is true mission, my company, is to replace traditional back-end engineering, all the 00:00:33.600 |
kind of stuff that we do on back-end engineering, generative AI, by the way, thinks that fate 00:00:36.920 |
limiting is one of those things, it's kind of cool. 00:00:43.720 |
So we glue things to things, we configure stuff for different systems. 00:00:48.900 |
We map data formats constantly, and a lot of times teams are spending a lot of their time, 00:00:53.560 |
like half their time on this stuff, it has nothing to do with your product, your users 00:01:00.320 |
So we want to replace all this stuff with a high-level API, kind of functional interface 00:01:04.880 |
that feels native to your application, similar to something like Firebase or Parse before it. 00:01:10.780 |
So if you were doing this in the 2020s, and it was a design exercise, what would you replace 00:01:18.120 |
Well, for us, we took heavy inspiration from React, and really more generally, the way that 00:01:23.620 |
kind of all applications are starting to have this functional reactive data flow relationship 00:01:28.580 |
If you're not familiar with React, here's a little baby example. 00:01:32.580 |
You can create a state variable, it has the setter. 00:01:36.080 |
And what React really empowers is it makes sure that whenever that state changes, all the places 00:01:41.860 |
that depend on it are updated, re-rendered, refreshed. 00:01:46.660 |
And so in this case, our app would have "Hi, Olivia," in all caps. 00:01:50.400 |
The problem is this paradigm breaks down when the server gets involved, the server doesn't 00:01:55.100 |
You still have to pull the server, you have to invalidate caches, you have to invent your 00:02:02.220 |
So Convex has queries and mutations, like other frameworks you may be familiar with. 00:02:06.960 |
But in Convex's case, it completely tracks pervasively data flow and dependencies through 00:02:13.280 |
And so it extends the reactive paradigm into the backend. 00:02:19.680 |
These are these universally subscribable entities that applications can get updates from as soon 00:02:27.640 |
So you might say, "What does this have to do with AI?" 00:02:31.260 |
So what it has to do with is that some of the reacting entities are actually server-side 00:02:37.580 |
This may be a kind of architecture you've thought through before or played with. 00:02:41.380 |
So something like a note-taker, maybe you're doing automatic speech recognition and then 00:02:45.920 |
you summarize it and you generate embeddings and find related notes or whatever. 00:02:50.240 |
And along the way to these different checkpoints, the application sometimes needs to be brought 00:02:56.140 |
Show the summary, show related notes, et cetera. 00:02:59.600 |
But in practice, we find that apps are actually a lot more sophisticated than this. 00:03:02.580 |
This is a developer named Web Dev Cody who's building an application on Convex that kind 00:03:07.200 |
of generates a first project plan given a prompt. 00:03:10.300 |
So in this case, he is an app to track recipes. 00:03:14.720 |
And when he hits create plan, he's running on Convex, this is sort of like, "Let's get 00:03:21.640 |
Let's get first features requests, color palettes, icon ideas." 00:03:26.340 |
All of these, as you can imagine, are kind of concurrent chains that are running in the background. 00:03:31.280 |
And all of them kind of flow into the application as they have results. 00:03:35.040 |
It ends up that Convex is kind of combination of like seamlessly syncing state between these 00:03:39.640 |
back-end steps and the application is incredibly useful for a lot of generative AI apps. 00:03:45.460 |
And for that reason, post-ChatGPT boom, like 90-plus percent of projects on Convex are generative 00:03:56.880 |
So the first thing we did is we got a lot of feedback from developers that one of those 00:04:01.120 |
steps was always vector indexing, or quite often vector indexing. 00:04:04.880 |
So the developer said, "This is how you make a schema on Convex. 00:04:07.500 |
It's just TypeScript, type completions, all that good stuff." 00:04:10.700 |
They said, "Well, you already allow us to add indexes to our fields like this. 00:04:18.440 |
We rolled that out late last year, and it's being used very broadly now by projects on Convex. 00:04:24.980 |
The second thing we just did, which is just kind of announcing right now, is we started 00:04:32.360 |
Discount program, kind of access to startup-only forums and events and stuff like that. 00:04:37.920 |
And the first batch, we just admitted tons and tons of generative AI companies in it. 00:04:42.360 |
So again, this is sort of like the most engaged, excited customers right now. 00:04:49.440 |
And then very soon, we're releasing these kind of high-level components. 00:04:52.240 |
We have this Convex components framework, which kind of encapsulates whole state machines in 00:04:58.420 |
You can easily drop into your app to have your back-end encompass these sophisticated workflows 00:05:02.800 |
that we've co-developed with customers very easily and rapidly. 00:05:08.860 |
If you're building something cool and generative AI, and you want to sort of ship with confidence