Meeting Title: LangFuse Architecture Review Date: 2025-10-27 Meeting participants: Awaish Kumar, Mustafa Raja, Casie Aviles, Samuel Roberts, Uttam Kumaran, Demilade Agboola


WEBVTT

1 00:00:00.000 00:00:02.150 Casie Aviles: If we could ask something like…

2 00:00:06.920 00:00:09.280 Casie Aviles: For example, here,

3 00:00:12.850 00:00:17.870 Casie Aviles: We could ask something like this, and it should be able to, like, use the…

4 00:00:18.860 00:00:21.470 Casie Aviles: The contents of this document to answer.

5 00:00:22.700 00:00:27.739 Casie Aviles: Yeah, so for example, It returned this.

6 00:00:28.540 00:00:29.950 Casie Aviles: So you can see here.

7 00:00:30.460 00:00:32.189 Casie Aviles: So, that’s how it works.

8 00:00:32.630 00:00:37.930 Casie Aviles: This text, this piece of text gets converted into numbers, basically.

9 00:00:38.870 00:00:41.140 Casie Aviles: That’s what Supabase is for.

10 00:00:41.800 00:00:48.040 Casie Aviles: And then we have a tool for that that’s also on N80. So we’re using, like, the built-in tools that

11 00:00:48.640 00:00:50.379 Casie Aviles: N8n offers.

12 00:00:51.510 00:00:57.499 Casie Aviles: And then there’s, like, another piece to that, which is what, I believe, what Oasis more,

13 00:00:57.920 00:01:02.419 Casie Aviles: familiar with, which is the ZIP relational database that we built.

14 00:01:04.030 00:01:12.419 Casie Aviles: So, for that, we also had, like, a lot of tabular data in the past, so that existed in a spreadsheet.

15 00:01:12.660 00:01:18.959 Casie Aviles: So before… We basically just had everything in.

16 00:01:19.380 00:01:24.989 Casie Aviles: So, for example, something like this, this is all in… Google Sheets.

17 00:01:25.090 00:01:32.349 Casie Aviles: So, we had… we basically moved it to Supabase, and we built, like, a relational database.

18 00:01:32.740 00:01:39.180 Casie Aviles: For that, and we’re using a tool, so I’m just gonna quickly try to show you how it looks like.

19 00:01:39.640 00:01:42.779 Casie Aviles: So this is, like, the relational database that we have.

20 00:01:43.070 00:01:49.280 Casie Aviles: Which is composed of, like, assignments, service areas, locations, services, people, and roles, so that’s…

21 00:01:50.230 00:01:53.510 Casie Aviles: An overview of, like, the database that we built them.

22 00:01:54.980 00:01:59.869 Casie Aviles: Yeah, any questions before I continue?

23 00:02:03.510 00:02:05.670 Casie Aviles: Or is everything clear so far?

24 00:02:06.780 00:02:07.200 Demilade Agboola: Go fast.

25 00:02:07.200 00:02:12.209 Uttam Kumaran: So, and so to access… so you run a query to then get that out of Superbase?

26 00:02:12.570 00:02:16.320 Casie Aviles: Yes, exactly. So what we do there, because… because we can’t…

27 00:02:16.500 00:02:20.570 Casie Aviles: like, for example, if you ask Andy a question, it’s not gonna…

28 00:02:20.790 00:02:25.240 Casie Aviles: Immediately query the database that way, so we need to convert

29 00:02:25.530 00:02:32.579 Casie Aviles: it to a SQL query. So that’s where this, blockchain tool that we implemented comes in.

30 00:02:32.890 00:02:40.410 Casie Aviles: And that’s responsible for, basically translating the user query that we have into a SQL query.

31 00:02:40.600 00:02:45.060 Casie Aviles: That then allows us to get the data that we need from

32 00:02:45.640 00:02:47.960 Casie Aviles: From this database that we have here.

33 00:02:48.420 00:02:51.050 Casie Aviles: So that’s how it works, I think, yeah.

34 00:02:52.510 00:02:58.390 Demilade Agboola: Are there, like, templates for the queries, or, like, can people just…

35 00:02:58.590 00:03:05.010 Demilade Agboola: puts complex, like, questions as possible? Or is there a template that you’re giving them to use for that?

36 00:03:06.950 00:03:18.610 Casie Aviles: I think what we’re doing right now is we basically just anticipate the kinds of questions that they’re asking that is going to be related to this.

37 00:03:19.400 00:03:24.529 Casie Aviles: Database, and we basically have, like, a prompt for

38 00:03:25.750 00:03:32.519 Casie Aviles: For this, sorry, this layer, we have another prompt here that Feeds it context about

39 00:03:32.760 00:03:36.690 Casie Aviles: The schema of the database, and then also, like.

40 00:03:37.340 00:03:43.310 Casie Aviles: How does it handle certain queries? So, so that it can… Return, like, the…

41 00:03:44.020 00:03:47.109 Casie Aviles: Like, the ideal answer, or the ideal output.

42 00:03:47.970 00:03:52.979 Casie Aviles: So, for example, we have this system prompt over here.

43 00:03:53.570 00:03:58.970 Casie Aviles: That also, adds, like, examples of queries?

44 00:03:59.660 00:04:03.980 Casie Aviles: That, you know, that should be… like…

45 00:04:05.720 00:04:08.759 Casie Aviles: How it… sorry, let me reword that, like…

46 00:04:09.200 00:04:14.650 Casie Aviles: I also gave it examples for how it should handle certain user input.

47 00:04:14.780 00:04:20.469 Casie Aviles: So, that’s how it works right now. That’s how it’s able to get data from both

48 00:04:20.860 00:04:24.050 Casie Aviles: The relational database, and then the central doc.

49 00:04:27.730 00:04:39.190 Uttam Kumaran: But I guess, my first question is going to be, like, how did we decide on… like…

50 00:04:41.000 00:04:47.710 Uttam Kumaran: Well, I guess this is, like, one question I have here is, like, why are we… Going through windmill.

51 00:04:48.070 00:04:50.480 Uttam Kumaran: to query Supabase.

52 00:04:52.220 00:05:02.780 Casie Aviles: Yeah, so for this, we needed, like, we needed somewhere, somehow, to host this tool, which is using Langchain, and I’m using, like, a Python

53 00:05:03.150 00:05:04.440 Casie Aviles: Script for that.

54 00:05:04.920 00:05:10.560 Casie Aviles: This was, like, like, the main… I guess the main thing here is that it’s…

55 00:05:11.010 00:05:16.449 Casie Aviles: the fastest to set up, given that we’ve been using windmill in the past, although…

56 00:05:17.050 00:05:23.430 Casie Aviles: Yeah, since we’re going to be… we’re considering migrating stuff out… away from Windmill, then…

57 00:05:23.960 00:05:27.790 Casie Aviles: We’ll have to look for another… Way too.

58 00:05:28.050 00:05:30.040 Casie Aviles: Make this tool available.

59 00:05:30.170 00:05:35.709 Casie Aviles: Which is, yeah, essentially a Python code that imports the long-chain library.

60 00:05:39.950 00:05:43.729 Uttam Kumaran: Okay. Yeah, the other thing I’m curious is, like, how many queries are running…

61 00:05:44.760 00:05:48.870 Awaish Kumar: So, does NN have any node?

62 00:05:49.070 00:05:50.750 Awaish Kumar: For running Python scripts?

63 00:05:51.690 00:05:56.199 Casie Aviles: Yes, there is, but the issue there is we can’t have, like, our own…

64 00:05:56.810 00:06:01.429 Casie Aviles: Libraries. We can’t… we could not install libraries before.

65 00:06:01.570 00:06:04.500 Awaish Kumar: So, if we needed, like, launch chain.

66 00:06:04.500 00:06:07.900 Casie Aviles: It’s… it’s… yeah, it’s impossible to, like.

67 00:06:08.030 00:06:11.210 Casie Aviles: install it there, because it’s not allowed by NATN.

68 00:06:13.100 00:06:16.580 Casie Aviles: So we needed… we needed to have it somewhere, like.

69 00:06:16.730 00:06:21.839 Casie Aviles: Windmill, or probably a different solution that allows us to

70 00:06:22.470 00:06:25.000 Casie Aviles: have a custom Python script, yeah.

71 00:06:31.400 00:06:37.390 Uttam Kumaran: Yeah, I guess my other question is, like, I want… how long do these queries typically take, end-to-end?

72 00:06:39.410 00:06:48.879 Casie Aviles: Yeah, so for… For the central dock queries, this can… Take us around 5 seconds.

73 00:06:49.310 00:06:53.810 Casie Aviles: Although this part, this… Can take longer.

74 00:06:54.850 00:06:57.539 Casie Aviles: Around 10 seconds, or 8 seconds.

75 00:06:58.260 00:07:02.990 Casie Aviles: This part, I’ve noticed, is taking a bit longer.

76 00:07:06.040 00:07:08.070 Demilade Agboola: What’s the slowest part of that step?

77 00:07:10.990 00:07:15.890 Demilade Agboola: Well, so there are two steps there, basically, but what’s the slowest part? What’s the slower part of that?

78 00:07:16.460 00:07:21.959 Casie Aviles: Oh, yeah, I believe… yeah, it would have to be this part, the long chain tool.

79 00:07:23.640 00:07:25.560 Casie Aviles: This is the slowest part.

80 00:07:27.080 00:07:30.090 Uttam Kumaran: So this is taking, like, more than 15 seconds?

81 00:07:31.340 00:07:35.890 Casie Aviles: Let me check one of the runs here, there should be…

82 00:07:37.990 00:07:43.020 Casie Aviles: Like, I’ve noticed it’s around 8 to 10 seconds, but… I’m checking here…

83 00:07:46.560 00:07:49.689 Casie Aviles: For example, this one, 10 seconds, yeah, this one.

84 00:07:50.760 00:07:57.439 Demilade Agboola: Yeah, so it takes 10 seconds total, and those long… the longer part is the texticle part.

85 00:07:58.880 00:07:59.480 Casie Aviles: Yeah.

86 00:08:01.770 00:08:02.900 Uttam Kumaran: Okay.

87 00:08:05.050 00:08:05.690 Uttam Kumaran: Okay.

88 00:08:06.860 00:08:13.230 Uttam Kumaran: And is that reflective… is that reflected anywhere? Like, are these met… these metrics are not in real… current real dashboard, right?

89 00:08:15.000 00:08:19.299 Casie Aviles: Yeah, for, like, we don’t really log these in real…

90 00:08:19.610 00:08:22.150 Uttam Kumaran: But we have the overall response time?

91 00:08:22.390 00:08:24.980 Casie Aviles: Yeah, the overall response time, yes.

92 00:08:26.280 00:08:26.810 Uttam Kumaran: Okay.

93 00:08:29.290 00:08:30.040 Uttam Kumaran: Alright.

94 00:08:31.450 00:08:32.090 Awaish Kumar: Hmm.

95 00:08:35.490 00:08:36.549 Uttam Kumaran: Okay, yeah, I mean.

96 00:08:36.559 00:08:38.479 Awaish Kumar: Is there any…

97 00:08:38.480 00:08:39.309 Uttam Kumaran: Okay, go, go.

98 00:08:42.580 00:08:43.370 Casie Aviles: Sorry.

99 00:08:43.690 00:08:50.349 Awaish Kumar: I said, is there any concern we heard from the client that it is taking longer Yes. Other events?

100 00:08:51.900 00:09:00.679 Casie Aviles: I don’t think they’ve flagged it, that this part is taking too long. Most of the flags that they’ve given us is just that

101 00:09:00.840 00:09:02.950 Casie Aviles: There is missing data, or…

102 00:09:03.630 00:09:07.379 Uttam Kumaran: But this is the thing, like, they’re… they’re on the call with a customer.

103 00:09:07.560 00:09:10.699 Awaish Kumar: If something’s taking more than 15 seconds.

104 00:09:12.310 00:09:15.400 Uttam Kumaran: Think about it when you’re on the call and you’re, like, googling something.

105 00:09:15.870 00:09:19.769 Uttam Kumaran: what are you gonna do? You’re gonna stop talking. It’s horrible. So, we need to have…

106 00:09:19.950 00:09:28.380 Uttam Kumaran: like, we need to have a KPI here that’s, like, sub-3 seconds or so, of, like, we need to have a goal of, like, how long

107 00:09:28.740 00:09:35.080 Uttam Kumaran: our longest query is. So, part of the question is, like, what are our P99, what are our, like.

108 00:09:35.340 00:09:37.800 Uttam Kumaran: E95, like, SLAs, right?

109 00:09:38.020 00:09:39.259 Uttam Kumaran: For each of these.

110 00:09:40.350 00:09:44.359 Uttam Kumaran: And how do we start to tag queries that breach those SLAs?

111 00:09:44.640 00:09:46.680 Uttam Kumaran: And kind of dissect them.

112 00:09:48.640 00:09:52.150 Awaish Kumar: Okay, do we have any logs of the…

113 00:09:53.040 00:09:54.090 Uttam Kumaran: Yeah, we do.

114 00:09:55.440 00:10:02.720 Awaish Kumar: Okay, one of the, like, analysis can be done on that. What kind of questions being asked?

115 00:10:03.960 00:10:07.170 Awaish Kumar: And then we can, like, utilize cash.

116 00:10:07.430 00:10:08.510 Awaish Kumar: Basically.

117 00:10:09.370 00:10:11.720 Awaish Kumar: Like, we don’t always have to go through.

118 00:10:11.720 00:10:12.890 Uttam Kumaran: Yes!

119 00:10:13.080 00:10:14.290 Awaish Kumar: I agree.

120 00:10:17.020 00:10:18.490 Uttam Kumaran: I totally agree.

121 00:10:25.600 00:10:27.919 Uttam Kumaran: So, I’m… I’m just gonna start, so…

122 00:10:28.260 00:10:30.179 Uttam Kumaran: I’m gonna just create a running…

123 00:10:30.890 00:10:35.309 Uttam Kumaran: like, potential… well, I’ll just… let me just create another,

124 00:10:39.010 00:10:44.190 Uttam Kumaran: Idea is gonna be, like, Use cash… Okay, great.

125 00:10:44.340 00:10:47.480 Uttam Kumaran: So, I think that, yes, certainly, I think…

126 00:10:48.440 00:10:53.980 Uttam Kumaran: Again, Sam, I think your text-to-SQL discovery needs to align with This one.

127 00:10:54.180 00:11:02.530 Uttam Kumaran: Right? So, ideally, we should… our team should have an opinion on the best text-to-SQL method.

128 00:11:02.810 00:11:07.059 Uttam Kumaran: And we just use that congruently. So I would like us to…

129 00:11:07.070 00:11:11.050 Awaish Kumar: I wouldn’t, propose using cash at a higher level, like.

130 00:11:11.730 00:11:15.069 Uttam Kumaran: Yeah, sorry, I just… I just put this, like, here, but yeah, whatever.

131 00:11:17.650 00:11:19.130 Awaish Kumar: Yeah, I just love that.

132 00:11:20.470 00:11:32.340 Demilade Agboola: Also, quick question. I know you said that the feedback you got was about data. Is it that they ask questions about the data and they get wrong data, or is it that

133 00:11:32.540 00:11:40.900 Demilade Agboola: They get responses… That don’t align with what the business, you know, what is in the business register.

134 00:11:41.660 00:11:47.369 Casie Aviles: It’s more… it’s more of just, missing data, although sometimes if there are, like.

135 00:11:47.520 00:11:50.719 Casie Aviles: Incorrect data, then we would have to go and fix that.

136 00:11:52.360 00:11:59.369 Casie Aviles: But yeah, it’s mostly just missing data that we were not able to include in the database, and…

137 00:11:59.590 00:12:03.640 Casie Aviles: That’s because they have, like, a lot of documents that,

138 00:12:03.950 00:12:09.230 Casie Aviles: We… yeah, they have a lot of documents, and… For that, we…

139 00:12:09.360 00:12:13.320 Casie Aviles: I guess we started with just the available data that we had.

140 00:12:13.950 00:12:15.759 Casie Aviles: Before it was shared to us.

141 00:12:18.030 00:12:22.450 Demilade Agboola: Okay, so it sounds like that’s another step we need to think about, being able to add more.

142 00:12:22.730 00:12:25.480 Demilade Agboola: Mickey Moore… robust.

143 00:12:33.570 00:12:40.299 Samuel Roberts: Yeah, I’d say prior… like, this relational database is relatively recent, because prior to that, it was kind of using the…

144 00:12:40.780 00:12:43.269 Samuel Roberts: That master, spreadsheet.

145 00:12:43.900 00:12:48.040 Samuel Roberts: Which was kind of following the other flow a bit more.

146 00:12:49.410 00:12:57.139 Samuel Roberts: So this is now something that they can update and keep updated, rather than… that master sheet was actually pulling from several other sheets that they were keeping.

147 00:12:57.810 00:12:59.469 Samuel Roberts: Sort of up to date.

148 00:13:00.090 00:13:05.340 Samuel Roberts: So there’s definitely issues both with, like, the retrieval, but also the initial data that they’re…

149 00:13:06.010 00:13:07.530 Samuel Roberts: Keeping up to date or not.

150 00:13:16.540 00:13:17.260 Samuel Roberts: Yeah.

151 00:13:31.750 00:13:33.550 Samuel Roberts: Any other, like, overall questions?

152 00:13:33.550 00:13:36.679 Uttam Kumaran: Yeah, I guess I would even ask, like.

153 00:13:36.680 00:13:39.640 Samuel Roberts: Yeah. I guess I wanna know.

154 00:13:43.610 00:13:47.870 Uttam Kumaran: Alright, I’m just, like, trying to get my thoughts here. So, one question I have is,

155 00:13:48.340 00:13:50.230 Uttam Kumaran: What are we using for embeddings?

156 00:13:50.370 00:13:51.400 Uttam Kumaran: And, like…

157 00:13:54.400 00:13:55.870 Uttam Kumaran: Is that the best?

158 00:13:56.720 00:14:00.739 Uttam Kumaran: Right, like, did we… why did we make the decision we made on embeddings?

159 00:14:01.090 00:14:01.610 Mustafa Raja: Yeah.

160 00:14:01.610 00:14:03.370 Uttam Kumaran: Hmm. Yeah.

161 00:14:03.540 00:14:05.640 Mustafa Raja: Yeah, so.

162 00:14:05.990 00:14:08.759 Uttam Kumaran: Like, how are we… how are we chunking, things like that? Because I guess my…

163 00:14:09.280 00:14:11.010 Uttam Kumaran: My point of view is…

164 00:14:11.630 00:14:16.730 Uttam Kumaran: I would… I would put, like, how is our system better than just using contextual?

165 00:14:17.770 00:14:19.770 Samuel Roberts: That’s what I’m curious about, too.

166 00:14:19.770 00:14:24.800 Uttam Kumaran: So that’s my overall question, like, there’s… cost is one thing, fine.

167 00:14:25.050 00:14:30.100 Uttam Kumaran: But I guess I want to understand, like, what the pros and cons are, so that we can make a…

168 00:14:30.210 00:14:31.369 Uttam Kumaran: Decision here.

169 00:14:32.420 00:14:33.830 Mustafa Raja: So,

170 00:14:33.890 00:14:42.009 Mustafa Raja: My concern with, contextual would be, is it able to update in… update the document in real time, or not?

171 00:14:42.010 00:14:58.670 Mustafa Raja: This, current setup, sort of is real-time, and the reason we implemented, vectors is because, we were, prior to this, putting in the whole document in, in the agent.

172 00:14:58.670 00:15:03.810 Mustafa Raja: As context, and, the documents are, got bigger and bigger, and.

173 00:15:03.810 00:15:20.980 Mustafa Raja: Andy would just take more than 30 seconds, even, to answer some of the queries. So, embeddings did help us solve that. We can dig deeper into the architecture of how we are, making this real-time.

174 00:15:25.470 00:15:28.680 Uttam Kumaran: So, that’s one thing I wanna maybe note down…

175 00:15:32.420 00:15:37.729 Samuel Roberts: Yeah, I’m curious, I… Some of that predates me, so I’m curious what conversations were had around…

176 00:15:37.930 00:15:41.579 Samuel Roberts: Like, contextual versus the way this was done.

177 00:15:42.330 00:15:47.609 Samuel Roberts: Was there a back and forth on that at all?

178 00:15:47.610 00:15:49.990 Uttam Kumaran: No, I mean, when we did this, we had no idea…

179 00:15:49.990 00:15:50.770 Samuel Roberts: Yeah. Okay.

180 00:15:50.770 00:15:52.679 Uttam Kumaran: sort of built it as we go, so I think everything’s.

181 00:15:52.680 00:15:54.050 Samuel Roberts: That’s what I’m wondering, yeah, okay.

182 00:15:54.280 00:15:54.990 Samuel Roberts: Okay, cool.

183 00:15:54.990 00:15:56.900 Uttam Kumaran: Yeah.

184 00:16:00.520 00:16:10.090 Uttam Kumaran: The one point I want to put down here, is… For the decision between, like.

185 00:16:10.840 00:16:22.699 Uttam Kumaran: Idea is, like, homegrown… First contextual… And the contextual questions… How fast can we update?

186 00:16:23.830 00:16:25.110 Uttam Kumaran: the embeddings?

187 00:16:25.530 00:16:28.909 Uttam Kumaran: But I guess my pushback is, like, what needs to be real-time?

188 00:16:30.030 00:16:42.249 Mustafa Raja: Yeah, so, I think the, the CSRs, they update the Google Docs, and then they would test, Andy, and they would want to see the difference.

189 00:16:44.280 00:16:44.790 Casie Aviles: Yeah, when…

190 00:16:44.790 00:16:53.230 Uttam Kumaran: Okay, but I guess we don’t… it’s not necessarily that’s real time, as long as we have some SLA. Yeah, yeah. So I guess the question is here, is like, yeah, how fast can we update the embedded?

191 00:16:53.230 00:17:01.050 Mustafa Raja: Yeah, I think Amber would be, able to answer that better, since she, is mostly in communication with them.

192 00:17:01.400 00:17:10.479 Casie Aviles: Yeah, when… I believe they have, like, working sessions, and whenever they have working sessions, they update Andy, and then they also test Andy in real time.

193 00:17:10.890 00:17:25.089 Casie Aviles: Again, the benefit of this setup is, yeah, it’s able to update it, like, immediately, but yeah, there’s also, of course, there will be trade-offs for that, because this is… we built this, so it’s not using any…

194 00:17:25.369 00:17:27.210 Casie Aviles: Out-of-the-box solutions.

195 00:17:29.220 00:17:29.790 Mustafa Raja: Yeah, and.

196 00:17:29.790 00:17:32.420 Samuel Roberts: The real-time thing is really for them to… oh, go ahead, sorry.

197 00:17:32.720 00:17:52.069 Mustafa Raja: And this recently, this, setup, has started, to generate some issues. I believe with the, the issues are coming from Google itself, so Google Drive and Google Sheets on trigger within it and are throwing, service unavailable error.

198 00:17:52.170 00:18:03.349 Mustafa Raja: I have looked into the community, and they said it’s… most of the people, they are saying that it’s coming from Google, and most likely, Google is really limiting us.

199 00:18:04.890 00:18:05.730 Samuel Roberts: That makes sense.

200 00:18:08.060 00:18:08.670 Uttam Kumaran: Okay.

201 00:18:11.270 00:18:17.670 Uttam Kumaran: So, another problem here is we’re dealing with, like… So, I guess, can we add here, Mustafa, like…

202 00:18:17.910 00:18:20.990 Uttam Kumaran: How you’re doing… the…

203 00:18:21.230 00:18:26.499 Uttam Kumaran: Google stuff, like, whether it’s here, like, what APIs are you using to do this?

204 00:18:27.560 00:18:31.149 Mustafa Raja: Yeah, I can update this diagram, if you want that.

205 00:18:31.670 00:18:37.869 Uttam Kumaran: Yeah, please. Or if we want, I can go through the workflow itself.

206 00:18:38.460 00:18:42.549 Uttam Kumaran: No, no, no, I don’t… we don’t need to go through it. If you just add all the different points here…

207 00:18:42.950 00:18:49.100 Awaish Kumar: And are we concerned about scalability here, or just focusing on growth?

208 00:18:49.600 00:18:51.419 Awaish Kumar: This for one client.

209 00:18:51.420 00:18:58.790 Mustafa Raja: Yeah, yeah, so, they, they are consistently adding new and new, documents, it’s growing.

210 00:18:58.790 00:19:01.820 Uttam Kumaran: Casey, can we add… can we… can we highlight here the other…

211 00:19:02.150 00:19:06.980 Uttam Kumaran: Docs that are coming in, or, like, the wealth of… Docs that are coming in.

212 00:19:09.540 00:19:10.400 Casie Aviles: Yeah, sure.

213 00:19:10.820 00:19:14.789 Mustafa Raja: There would be one more thing,

214 00:19:14.970 00:19:21.050 Mustafa Raja: And the system prompt is very long, and, about 75%

215 00:19:21.180 00:19:35.160 Mustafa Raja: Or 70% of it is, I think cancellation flows. So, I believe we need a better… better place for the cancellation flows to be, rather than in the system prompt itself.

216 00:19:36.330 00:19:40.880 Samuel Roberts: Why did that end up in the system prompt and not? Like, do they not have a document for that, or…

217 00:19:40.880 00:19:49.350 Mustafa Raja: They wanted the exact same thing, I believe. So they don’t want AI to change even a single word of it.

218 00:19:50.730 00:19:51.190 Mustafa Raja: Oh, interesting.

219 00:19:51.190 00:19:51.900 Samuel Roberts: Okay.

220 00:19:51.900 00:19:52.860 Mustafa Raja: That is why.

221 00:19:54.530 00:19:56.630 Mustafa Raja: But we need a better place, because that.

222 00:19:56.630 00:19:57.440 Samuel Roberts: Yeah, yeah.

223 00:19:57.440 00:19:58.160 Mustafa Raja: and…

224 00:19:58.190 00:20:01.699 Samuel Roberts: It’s been bumped. It’s a lot more context than it needs most of the time, yeah.

225 00:20:05.080 00:20:12.719 Awaish Kumar: But, like, do you have to access these documents once, or multiple times? Even if not…

226 00:20:13.020 00:20:22.630 Mustafa Raja: Yeah, yeah. So, so, how quick, yeah, we will be accessing these documents more than once.

227 00:20:23.480 00:20:25.120 Awaish Kumar: Even if it is not updated?

228 00:20:25.660 00:20:30.040 Mustafa Raja: Yeah, yeah, even if it is not updated, we’ll be accessing them a lot.

229 00:20:30.310 00:20:34.359 Mustafa Raja: By documents, we mean, this, vector database.

230 00:20:35.320 00:20:36.130 Samuel Roberts: Yeah, yeah.

231 00:20:36.130 00:20:44.719 Mustafa Raja: Not the actual Google document. We don’t access it, we only access it when we need to update the embeddings.

232 00:20:50.610 00:20:52.660 Samuel Roberts: Yeah, Andy never actually hits the documents.

233 00:20:52.660 00:20:54.070 Mustafa Raja: Yeah, yeah. Oh.

234 00:20:54.070 00:20:54.730 Demilade Agboola: Awesome.

235 00:20:54.730 00:20:56.219 Mustafa Raja: But it, it is…

236 00:20:58.710 00:21:01.250 Demilade Agboola: How often are the embeddings updated?

237 00:21:01.400 00:21:02.220 Demilade Agboola: Amy?

238 00:21:05.300 00:21:19.749 Mustafa Raja: I, I’d say, I’d say, they are updated. So, so we have a lot, we do not have only one Google Doc. We have, like, 4 to 5 Google Documents, each document, per department.

239 00:21:19.770 00:21:31.730 Mustafa Raja: So we started with one department only, which was pest, and we then expanded to Central, and then lawn, and then home, and then coverage, and then…

240 00:21:31.740 00:21:42.949 Mustafa Raja: I think, we have a couple more. And then, in the meeting in the morning, Amber said that we have one more document coming in.

241 00:21:43.950 00:21:54.959 Mustafa Raja: So, it really, it really depends on which, which department they are updating, and they have multiple departments, so, it’s almost every day that we are updating.

242 00:21:54.960 00:22:03.849 Uttam Kumaran: I would say this is the problem, alright? So I want to back up, like, they have multiple documents that are coming in that need to be embedded on some SLA,

243 00:22:04.460 00:22:08.829 Uttam Kumaran: Right? But, like, I don’t… I want to get away from this real-time thing.

244 00:22:09.000 00:22:11.749 Mustafa Raja: Like, we don’t… there’s no use case…

245 00:22:11.750 00:22:21.890 Uttam Kumaran: in any company that requires, like, super real time. So I want to remove that as a requirement. What I want to do is… answers need to be accurate, and they need to be timely.

246 00:22:22.010 00:22:37.329 Uttam Kumaran: There can be hours between updating a doc and it making it in, like, that is okay, but, like, what’s not okay is that things… we have to bias towards response time, and we have to bias towards if the knowledge is in there, that it makes it out.

247 00:22:37.690 00:22:39.909 Uttam Kumaran: That’s… those are the two priorities.

248 00:22:40.100 00:22:42.810 Uttam Kumaran: Priority is not… ingestion.

249 00:22:43.160 00:22:45.539 Uttam Kumaran: Edit to… edit to ingestion time.

250 00:22:45.860 00:22:48.980 Uttam Kumaran: If we can achieve that, I’m fine with it, but it’s not a… it’s not…

251 00:22:49.130 00:23:02.330 Uttam Kumaran: the priority. So, second piece is they’re consistently adding more data to this, right? And so, previously, we had two different types of data. We had this rough document, so text, and we had

252 00:23:02.580 00:23:05.290 Uttam Kumaran: The spreadsheet, which was the zip codes.

253 00:23:05.450 00:23:17.270 Uttam Kumaran: So I guess what I’m trying to understand is, like, we’ve separated out now that there’s zip codes coming into this relational database. So my question, Casey, so right now, are they still using that spreadsheet?

254 00:23:17.770 00:23:21.739 Uttam Kumaran: Or, like, are we… are they using your new form?

255 00:23:21.880 00:23:24.389 Uttam Kumaran: to update the relational DB?

256 00:23:25.740 00:23:29.059 Casie Aviles: I don’t think they’re using the forms.

257 00:23:29.750 00:23:37.769 Casie Aviles: And for the spreadsheets, I can still see that there are some CSRs using

258 00:23:37.930 00:23:42.319 Casie Aviles: For example, if I go here… There will be people here.

259 00:23:44.900 00:23:48.359 Casie Aviles: Yeah, so they’re still using this spreadsheet,

260 00:23:48.830 00:23:51.220 Casie Aviles: And yeah, there… although some are also.

261 00:23:51.220 00:23:51.999 Uttam Kumaran: But are those spreads.

262 00:23:52.000 00:23:52.319 Casie Aviles: I should not…

263 00:23:52.320 00:23:54.499 Uttam Kumaran: Updates making it in here today?

264 00:23:55.900 00:23:58.039 Casie Aviles: This budget,

265 00:24:02.170 00:24:07.630 Casie Aviles: I’m not sure about this, if these are getting updated as well.

266 00:24:08.270 00:24:10.770 Casie Aviles: Because to my understanding… I would guess…

267 00:24:10.980 00:24:13.189 Casie Aviles: That they… we would face this out.

268 00:24:13.720 00:24:22.240 Casie Aviles: And then… we would be using, like, the relational database moving forward. So we wanted to kind of…

269 00:24:22.350 00:24:22.950 Casie Aviles: Yeah.

270 00:24:22.950 00:24:27.560 Uttam Kumaran: But, like, but I guess… so, but you… but your answer is not sure.

271 00:24:28.780 00:24:29.460 Casie Aviles: Yeah.

272 00:24:29.460 00:24:34.989 Uttam Kumaran: But I guess this is what I’m saying, that Andy does not have access to that… that spreadsheet anymore, right?

273 00:24:36.330 00:24:43.879 Casie Aviles: Yes, so what we did here is we, based on the data that we just had once, I mean, like a snapshot before.

274 00:24:44.350 00:24:46.360 Casie Aviles: That’s what we took.

275 00:24:46.460 00:24:49.620 Casie Aviles: Which we consolidated in this spreadsheet hub.

276 00:24:50.360 00:24:59.169 Casie Aviles: And… We basically turned that… we used scripts to turn that into a database, and that’s… that’s… and then…

277 00:24:59.290 00:25:06.510 Casie Aviles: moving forward, the idea was for them to start updating the spread, this database, so… Okay.

278 00:25:06.510 00:25:12.559 Uttam Kumaran: Okay, so can we… can we make that process clear here? So we have, like, the, like, OG…

279 00:25:12.850 00:25:14.219 Uttam Kumaran: zip codes.

280 00:25:14.360 00:25:19.830 Uttam Kumaran: We then have the, like, zip code, like, cleaned.

281 00:25:20.770 00:25:21.820 Uttam Kumaran: T-sheet.

282 00:25:22.510 00:25:25.180 Uttam Kumaran: OGs, so this is just, like, the source.

283 00:25:25.670 00:25:28.090 Uttam Kumaran: Zip codes, G-Sheet.

284 00:25:28.420 00:25:29.040 Uttam Kumaran: Yes.

285 00:25:29.680 00:25:31.819 Uttam Kumaran: And then there’s some process…

286 00:25:32.510 00:25:38.439 Uttam Kumaran: in between here… I don’t know, like, what do we use on the other diagram to indicate process and whatever?

287 00:25:39.340 00:25:39.900 Awaish Kumar: Boom.

288 00:25:39.900 00:25:41.700 Uttam Kumaran: But let’s see… yeah.

289 00:25:41.700 00:25:48.709 Awaish Kumar: We have… Did we end up writing, like, creating new forms and directly upgrading to database?

290 00:25:49.280 00:25:49.800 Awaish Kumar: Auto…

291 00:25:49.800 00:25:51.479 Casie Aviles: Yeah, that’s… we did, we did.

292 00:25:51.730 00:25:54.560 Awaish Kumar: So, we are following the new process right now.

293 00:25:56.150 00:26:01.870 Casie Aviles: I believe, Amber has already met with Janice, and…

294 00:26:01.870 00:26:05.239 Uttam Kumaran: But that’s what I’m saying, like, how… how… if, like…

295 00:26:06.160 00:26:09.839 Uttam Kumaran: Have there been questions that zip codes are not showing up?

296 00:26:10.080 00:26:11.410 Uttam Kumaran: Because then, like.

297 00:26:13.100 00:26:17.760 Uttam Kumaran: Like, have any of the triage issues been like, hey, the zip code is not coming, and I made the change?

298 00:26:17.930 00:26:20.849 Uttam Kumaran: And then it would be obvious that if they’re using this or not, right?

299 00:26:21.510 00:26:24.050 Casie Aviles: No, we do have, like, logs for…

300 00:26:24.160 00:26:27.020 Casie Aviles: The usage, but it’s mostly just…

301 00:26:27.280 00:26:34.310 Awaish Kumar: Utam, like, we made a decision that when they fill out the Google Form, and…

302 00:26:34.560 00:26:35.120 Casie Aviles: Help me.

303 00:26:35.340 00:26:39.490 Awaish Kumar: then we have a Python script that will read from that

304 00:26:39.750 00:26:42.889 Awaish Kumar: Data… Yes. And upgrades for database.

305 00:26:43.220 00:26:43.820 Uttam Kumaran: Sure.

306 00:26:44.700 00:26:48.659 Uttam Kumaran: But… Are they… but see, nobody’s using it.

307 00:26:48.660 00:26:52.939 Awaish Kumar: Yeah, but they are not directly going into Google Sheet anyway. They are filling the forms.

308 00:26:53.410 00:26:54.579 Uttam Kumaran: No, no, no, they’re not.

309 00:26:54.970 00:26:59.400 Samuel Roberts: Yeah, I don’t know if I believe… yeah, I don’t think so. I think there’s probably a combination of…

310 00:27:00.130 00:27:09.360 Uttam Kumaran: So, Casey, I guess what I’m seeing here is your… yeah, so it’s clear that no one here is updated, but Casey, are you using the form during triage?

311 00:27:09.870 00:27:13.140 Casie Aviles: Yeah, yeah, look at… these are all my usage.

312 00:27:13.140 00:27:15.550 Uttam Kumaran: So I guess that’s what I meant to make clear, is that…

313 00:27:15.550 00:27:16.040 Samuel Roberts: Yeah.

314 00:27:16.040 00:27:18.209 Uttam Kumaran: Or using it during triage.

315 00:27:18.470 00:27:20.929 Uttam Kumaran: But the CSRs are not using this right now.

316 00:27:21.730 00:27:22.590 Casie Aviles: Yeah.

317 00:27:24.160 00:27:26.879 Uttam Kumaran: So, this is all, like, a one-time thing.

318 00:27:27.430 00:27:28.590 Uttam Kumaran: That happened, like, on the.

319 00:27:28.590 00:27:34.259 Samuel Roberts: CSRs the ones making changes, or is it only a handful of them? Like the, like Janice and Yvette, I don’t…

320 00:27:34.570 00:27:45.519 Casie Aviles: Yeah, I believe it’s just… we start with just Yvette and Janice to have it… to have it updated. I’m not sure if we have more people that are expected to use it.

321 00:27:48.480 00:27:55.050 Uttam Kumaran: Okay, so then one thing, can we update in the diagram? So I added, like, something here for the input form, so can you link?

322 00:27:55.170 00:27:59.419 Uttam Kumaran: that input form here, and then how does the input form get into Superbase?

323 00:28:00.900 00:28:07.450 Casie Aviles: Yeah, so for that, what happens is there’s, like, an innateent form that

324 00:28:07.960 00:28:10.400 Casie Aviles: They have access to, and then…

325 00:28:11.010 00:28:12.960 Casie Aviles: It’s… It’s not a Google form?

326 00:28:13.540 00:28:19.459 Casie Aviles: No, no, it’s, it’s an NA10 form that we use, and then for that.

327 00:28:19.870 00:28:27.020 Casie Aviles: It, it basically goes through an NATEN workflow, and it creates, like, an update

328 00:28:27.390 00:28:33.289 Casie Aviles: To… depending on, like, the operation that we have, so if it’s an insert, then it’s going to be an insert operation.

329 00:28:33.560 00:28:40.389 Casie Aviles: And then, yeah, there are, like, SQL queries there that will basically make it easier to just

330 00:28:40.590 00:28:42.050 Casie Aviles: add assignments.

331 00:28:42.350 00:28:47.339 Casie Aviles: to the… To at least just the assignments table here.

332 00:28:48.100 00:28:50.059 Casie Aviles: So I can… I’ll link those.

333 00:28:52.010 00:28:56.930 Uttam Kumaran: I see. Okay, so this is a huge… Issue.

334 00:28:57.450 00:29:01.929 Uttam Kumaran: So one is, like, this thing is still not deprecated, like, the zip code…

335 00:29:02.780 00:29:07.110 Uttam Kumaran: G-shaped thing, right? So, that is another thing that has to happen.

336 00:29:07.300 00:29:11.110 Uttam Kumaran: is, like, we need to deprecate this.

337 00:29:12.950 00:29:13.620 Samuel Roberts: Yes.

338 00:29:15.150 00:29:20.690 Uttam Kumaran: Second piece is… this is my question to you, Awash. Is Superbase the right thing here?

339 00:29:20.990 00:29:21.740 Uttam Kumaran: like…

340 00:29:22.580 00:29:30.590 Uttam Kumaran: My… my ask is, why don’t you just shove all this stuff into DuckDB, and then put it right wherever the N8N thing is running?

341 00:29:32.540 00:29:38.429 Uttam Kumaran: Like, why… why even have this go through the cloud? It’s like… Couple hundred rows.

342 00:29:38.770 00:29:46.130 Awaish Kumar: Yes, that’s true. But, like, we need a… like…

343 00:29:46.460 00:29:52.320 Awaish Kumar: storage, and I don’t know… and at N, like, are we using any machines there?

344 00:29:52.320 00:29:58.049 Uttam Kumaran: That’s my next point, is like, why have this whole thing? Why don’t we run this on Heroku? Or…

345 00:29:58.820 00:30:02.220 Uttam Kumaran: So we can keep the DuckDB, file.

346 00:30:03.490 00:30:08.589 Uttam Kumaran: Right where the worker is, and so when you run the query, it’s just hitting a file there.

347 00:30:08.740 00:30:16.800 Uttam Kumaran: Versus having to do, like, 5 different trips, so that’s probably more of a question for… you and Sam.

348 00:30:16.920 00:30:17.530 Uttam Kumaran: like.

349 00:30:17.530 00:30:17.960 Samuel Roberts: Yeah.

350 00:30:17.960 00:30:27.240 Uttam Kumaran: how feasible is this to move this shit to something else? My point is that we should move this to Google, and I want to move it onto clients’ Google.

351 00:30:30.840 00:30:32.360 Samuel Roberts: Move it to clients, cool.

352 00:30:32.360 00:30:32.720 Uttam Kumaran: Like.

353 00:30:32.720 00:30:35.260 Samuel Roberts: So, like, instead of an NAN thing in general, or the…

354 00:30:35.300 00:30:38.920 Uttam Kumaran: Yeah, I wanted to move to their GCP instance, not an NAN.

355 00:30:40.040 00:30:40.780 Samuel Roberts: Yeah.

356 00:30:41.610 00:30:43.169 Awaish Kumar: That’s possible, right?

357 00:30:48.090 00:30:52.330 Samuel Roberts: I mean, yeah, I mean, that would take a bit of, like, re-architecting NNN.

358 00:30:52.470 00:30:55.229 Samuel Roberts: And, and re… well, yeah.

359 00:30:55.770 00:30:58.879 Samuel Roberts: Like, the bulk of NA to N here, so… go ahead.

360 00:30:58.880 00:31:02.540 Uttam Kumaran: But even if we were to talk about just this piece, you could move all this to…

361 00:31:03.210 00:31:08.430 Uttam Kumaran: a DuckDB file, Sitting on, like, one of their… on, like, a GCP.

362 00:31:08.430 00:31:11.789 Samuel Roberts: Oh, the actual, just, the zip relational stuff? Yeah, I think that could…

363 00:31:11.790 00:31:14.979 Uttam Kumaran: Again, like, I was sort of just, like, throwing ideas out.

364 00:31:15.440 00:31:22.970 Samuel Roberts: Yeah, I think part of it is Andy’s already in it, and NNN talks to Subabase, well, we needed a better store for all of.

365 00:31:22.970 00:31:25.929 Uttam Kumaran: Well, I just, like, don’t know why we gotta go to the cloud.

366 00:31:26.870 00:31:32.449 Uttam Kumaran: like… Meaning… it’s just a couple of rows. You can create a DuckDB,

367 00:31:32.670 00:31:38.060 Uttam Kumaran: File, and run a query, and, like, literally, like, 9 milliseconds.

368 00:31:38.060 00:31:38.950 Awaish Kumar: Oh…

369 00:31:41.030 00:31:50.160 Samuel Roberts: query is really the issue. The issue is the generating the query. I don’t think, like, there might be a little bit of… yeah, there’s definitely transit time with Superbase and stuff, but I get what you’re saying. I don’t think…

370 00:31:50.390 00:31:52.629 Samuel Roberts: The issue here is the text to SQL.

371 00:31:53.180 00:31:56.439 Samuel Roberts: Superbase is gonna be quick, too. It’s the slowest step. It’s the slowest step.

372 00:31:57.670 00:32:03.660 Casie Aviles: Yeah, it’s the conversion from user input to… Sql.

373 00:32:03.850 00:32:07.449 Samuel Roberts: Then, okay, so then, let me talk to me about this tool, like, how… what it…

374 00:32:07.580 00:32:11.020 Uttam Kumaran: what model are we using for the Texas SQL?

375 00:32:12.640 00:32:16.170 Casie Aviles: Yeah, we’re using… Yeah, we’re using our Azure, yeah.

376 00:32:18.230 00:32:19.500 Uttam Kumaran: You’re using Azure 4.0?

377 00:32:19.980 00:32:20.720 Casie Aviles: Yeah.

378 00:32:24.050 00:32:27.030 Uttam Kumaran: Oh, then we should probably just use, like, Phi Mini or something.

379 00:32:27.480 00:32:28.599 Uttam Kumaran: Or for many.

380 00:32:30.140 00:32:32.550 Uttam Kumaran: So we just need to use a much faster model, then.

381 00:32:34.280 00:32:36.120 Uttam Kumaran: So that’s another consideration.

382 00:32:37.120 00:32:38.510 Casie Aviles: Yeah, we could try that.

383 00:32:39.770 00:32:41.389 Casie Aviles: Yeah, let’s see…

384 00:32:44.380 00:32:48.440 Uttam Kumaran: So… consider… smaller…

385 00:32:48.440 00:32:54.270 Awaish Kumar: I… like, have we used this, like, tool in a local environment?

386 00:32:54.950 00:32:56.339 Awaish Kumar: On a local machine?

387 00:32:57.360 00:33:02.289 Casie Aviles: No, it was the… I… Have it directly here, and…

388 00:33:02.730 00:33:04.250 Casie Aviles: And mill, this is where I built it.

389 00:33:04.250 00:33:08.489 Awaish Kumar: In the windmill, like, in Windmill or Dexter, there’s a problem that,

390 00:33:08.760 00:33:12.520 Awaish Kumar: It also involves the time to, like.

391 00:33:13.030 00:33:14.039 Uttam Kumaran: Turn it on.

392 00:33:14.040 00:33:16.880 Awaish Kumar: Yeah, it’s one of the infrastructure, like, and then…

393 00:33:16.880 00:33:21.800 Samuel Roberts: Oh, is it, like, it’s not, like, importing it every time or anything, right? It’s, like, it’s… it’s all…

394 00:33:22.050 00:33:25.030 Samuel Roberts: I don’t know what the startup, the cold start… is it? Okay.

395 00:33:25.270 00:33:30.100 Awaish Kumar: So then it might be, yeah. So it, like, creates an instance, and then…

396 00:33:30.530 00:33:31.260 Samuel Roberts: Right.

397 00:33:31.500 00:33:34.090 Awaish Kumar: Up the… and then runs the script, so…

398 00:33:34.750 00:33:35.370 Samuel Roberts: Okay.

399 00:33:35.370 00:33:36.150 Awaish Kumar: So bubble.

400 00:33:36.840 00:33:41.959 Uttam Kumaran: Yeah, so that’s… I guess that’s what I’m saying, is, like, we should move this entire thing

401 00:33:42.400 00:33:45.979 Uttam Kumaran: to, like, one, like, worker inside Google.

402 00:33:46.250 00:33:47.600 Uttam Kumaran: Inside their Google.

403 00:33:49.350 00:33:54.069 Awaish Kumar: Yeah, it’s possible, we can use a compute instance and do all of this there.

404 00:33:56.620 00:34:02.399 Uttam Kumaran: That’s what I would vote for, and then all you need to do is… the form, all it can… all it needs to do is

405 00:34:03.100 00:34:08.289 Uttam Kumaran: pull down… the DuckDB, update it, or all it needs to do is go and

406 00:34:08.469 00:34:10.520 Uttam Kumaran: run an insert in the DuckDB.

407 00:34:11.300 00:34:13.799 Samuel Roberts: Yeah. I mean, that’s what it’s doing now, just in Superbase.

408 00:34:15.600 00:34:31.139 Uttam Kumaran: Yeah, but I guess, yeah, exactly. But I guess what I’m saying is you should… these three things should be within one thing, right? Right now, it’s all… I don’t… this is in Windmill, this is Supabase, and this is in NHN, and then this is Google Chat, like…

409 00:34:31.230 00:34:35.770 Uttam Kumaran: There is certainly spin-up time and lag between each of these.

410 00:34:36.080 00:34:41.949 Uttam Kumaran: Like, I really think you can… it’s… this system, I feel like you can achieve probably less than 2 seconds.

411 00:34:42.310 00:34:43.940 Uttam Kumaran: Probably even faster.

412 00:34:45.710 00:34:46.250 Samuel Roberts: from…

413 00:34:46.250 00:34:50.720 Uttam Kumaran: I don’t… I think you’re… I think we’re overestimating how fast this should take.

414 00:34:51.030 00:34:53.169 Uttam Kumaran: Guys, it’s like 4 tables.

415 00:34:54.060 00:34:55.820 Uttam Kumaran: If you use… if you use…

416 00:34:56.110 00:35:04.010 Uttam Kumaran: for mini or a faster model, it should be able to generate the SQL pretty fast. Generate the SQL, issue it, and then the main time should be here.

417 00:35:08.060 00:35:12.129 Samuel Roberts: My guess is that is where most of the main time is, because from my experience using Mendine.

418 00:35:13.710 00:35:17.589 Samuel Roberts: This is… I mean, perhaps 10 seconds, but I don’t…

419 00:35:18.390 00:35:24.440 Samuel Roberts: I don’t know that to be… I definitely see Andy being a little slower than that in general, so I’m not sure what people are…

420 00:35:24.730 00:35:26.669 Samuel Roberts: Waiting on, necessarily.

421 00:35:27.980 00:35:31.390 Uttam Kumaran: I feel like we’ve at least arrived at something here. Let’s talk about…

422 00:35:31.800 00:35:36.770 Uttam Kumaran: the right side, I know we’re just a little bit over, but just to close pull things out.

423 00:35:37.220 00:35:41.059 Uttam Kumaran: Where am I?

424 00:35:42.160 00:35:45.119 Uttam Kumaran: Just to close a couple things out, so…

425 00:35:46.490 00:35:55.060 Uttam Kumaran: I think this is where, like, Awash and Sam, it’s up to you guys to think about, like… there’s… I’ve always had a couple of questions, like, one…

426 00:35:55.530 00:36:00.060 Uttam Kumaran: The format of these… this is where you guys need to consider the user.

427 00:36:00.390 00:36:05.299 Samuel Roberts: Like, is the format of these central documents the best way to store… to…

428 00:36:05.520 00:36:15.280 Uttam Kumaran: have people update it, right? The second piece is, how are you chunking and moving this to Supabase?

429 00:36:16.630 00:36:18.120 Uttam Kumaran: Right? Like…

430 00:36:18.300 00:36:26.680 Uttam Kumaran: I guess what I’m asking is, like, what opinions were… how were we deciding on chunk sizes, the actual embeddings model to use?

431 00:36:27.070 00:36:27.580 Awaish Kumar: like, huh?

432 00:36:27.580 00:36:34.629 Uttam Kumaran: Are… like, are there any measurements on accuracy? And then, lastly, even these, I’m like…

433 00:36:35.160 00:36:42.100 Uttam Kumaran: we can put a vector… you can… you can run a vector DB in… Google…

434 00:36:42.990 00:36:47.220 Uttam Kumaran: like, using Chroma or using something else, so we don’t have to use Supabase here.

435 00:36:47.640 00:36:48.570 Uttam Kumaran: You know?

436 00:36:48.870 00:36:51.000 Uttam Kumaran: So, like, I guess my question is, like.

437 00:36:51.210 00:36:56.720 Uttam Kumaran: I want to know, like, what are the inaccurate… what are the inaccuracies we’re seeing, and…

438 00:36:58.590 00:37:04.899 Uttam Kumaran: Like, how were the decisions made through this to do, like, a true agentic, like, search?

439 00:37:05.810 00:37:11.389 Awaish Kumar: I think it… yeah, it was just used because, like, some of the tools we were familiar with.

440 00:37:11.670 00:37:12.860 Uttam Kumaran: Yeah, yeah, yeah, yeah.

441 00:37:12.860 00:37:13.470 Awaish Kumar: Alright, so…

442 00:37:13.470 00:37:15.350 Uttam Kumaran: I know, yeah, for sure.

443 00:37:16.120 00:37:20.649 Uttam Kumaran: But I guess my question… I’m questioning, like, okay, now that we’re taking a step back, like.

444 00:37:20.890 00:37:21.510 Samuel Roberts: Yeah.

445 00:37:21.810 00:37:26.139 Uttam Kumaran: My vote, especially given how open source everything is in this world, is to

446 00:37:26.670 00:37:30.319 Uttam Kumaran: Shove it all in to one… to where the worker is.

447 00:37:30.870 00:37:38.139 Uttam Kumaran: Like, I get the easeability, the usability of, like, Superbase and things like that, but I’m kind of concerned that, like.

448 00:37:38.300 00:37:44.809 Uttam Kumaran: we’re using so many tools. The other big piece here is, like, I would rather this all be in Mastra.

449 00:37:45.380 00:37:46.670 Uttam Kumaran: On LaneFuse.

450 00:37:46.670 00:37:47.319 Samuel Roberts: So, yeah.

451 00:37:47.320 00:37:53.809 Uttam Kumaran: using our typical thing, right? So, but… again, I know that’s a bigger piece, but that is probably, frankly.

452 00:37:54.760 00:37:57.859 Uttam Kumaran: maybe… so this is where, like, I think we need to decide on, like, what…

453 00:37:58.380 00:38:00.260 Samuel Roberts: What things to tackle first.

454 00:38:00.260 00:38:02.970 Uttam Kumaran: The other question I have here is, like, how are we doing routing?

455 00:38:03.800 00:38:04.890 Mustafa Raja: Oh. Right.

456 00:38:04.890 00:38:07.960 Uttam Kumaran: Like, how are we… where is the split happening?

457 00:38:08.850 00:38:16.330 Mustafa Raja: That would be happening here, before, before, and, yeah, this.

458 00:38:16.330 00:38:18.410 Uttam Kumaran: Okay, can we indicate that on this.

459 00:38:19.330 00:38:23.199 Samuel Roberts: Oh, really? So, like, the different queries are going two different places in Indy?

460 00:38:23.200 00:38:33.740 Mustafa Raja: So, we are filtering the vector database based on, the, department.

461 00:38:34.420 00:38:36.660 Mustafa Raja: The question is relating to.

462 00:38:37.070 00:38:40.480 Uttam Kumaran: And a filter passes in through to Andy, like a filter parameter.

463 00:38:40.790 00:38:41.520 Mustafa Raja: Yeah.

464 00:38:41.980 00:38:46.789 Uttam Kumaran: Can you put, can you put, like, a thing in here for that, like… some type of…

465 00:38:46.790 00:38:47.740 Mustafa Raja: Whatever.

466 00:38:48.160 00:38:53.280 Uttam Kumaran: And then… yeah, I guess my other question is, like,

467 00:38:56.200 00:39:02.120 Uttam Kumaran: Yeah, I guess, like, what… oh yeah, we have… okay, we have this vetting model update. So, other question here is, like.

468 00:39:02.540 00:39:08.919 Uttam Kumaran: Yeah, like, how often… Are the embeddings?

469 00:39:10.010 00:39:12.040 Uttam Kumaran: Getting updated.

470 00:39:12.650 00:39:15.319 Uttam Kumaran: And then my other question is this RAG tool?

471 00:39:15.920 00:39:29.199 Uttam Kumaran: So I also have a question on, like, what can… I guess I’m… I’m interested in, like, what… what is the RAG tool? Like, from what I know about RAG, there’s just so many different parameters, so I’m interested in, like, what configurations we have.

472 00:39:31.010 00:39:41.330 Uttam Kumaran: We have on the vector… RAG tool, right? Like, are we using… metadata…

473 00:39:42.090 00:39:42.680 Mustafa Raja: Yeah, we are using it.

474 00:39:42.680 00:39:44.800 Uttam Kumaran: 8 times…

475 00:39:45.990 00:39:49.980 Uttam Kumaran: Yeah, so we’re using the native, so this is another thing where we need an opinion, is like, is that good or bad?

476 00:39:50.960 00:39:51.700 Samuel Roberts: Yeah.

477 00:39:54.240 00:39:54.930 Uttam Kumaran: So they’re so…

478 00:39:54.930 00:39:55.690 Mustafa Raja: So, I guess, like, less.

479 00:39:56.170 00:39:57.010 Uttam Kumaran: Yeah, go ahead.

480 00:39:57.010 00:40:09.229 Mustafa Raja: One other limitations is that, so, vector database in NA10, how the metadata filters are only AND-based. They are not OR-based.

481 00:40:09.230 00:40:23.510 Mustafa Raja: So let’s say, we want, the routing fee… routing agent feels that, okay, this could be from multiple departments, and it wants to look in all of them. A vector database isn’t able to do that. It’s an AND filter.

482 00:40:23.510 00:40:32.110 Mustafa Raja: And that isn’t going to work at all. If it were in our, we would have been able to do that, and this limitation is only in NE10.

483 00:40:32.280 00:40:35.430 Mustafa Raja: It isn’t coming from Superbase, it is coming from Nitin.

484 00:40:35.430 00:40:36.010 Samuel Roberts: Yeah.

485 00:40:41.180 00:40:42.550 Samuel Roberts: Okay, I think that…

486 00:40:43.870 00:40:48.469 Uttam Kumaran: So I guess, like, let’s round out, like, this conversation, and then I can… we can think about…

487 00:40:49.120 00:40:51.520 Uttam Kumaran: We could probably do another’s… yeah, go ahead.

488 00:40:51.610 00:40:58.580 Awaish Kumar: all of this can go in a GCP, because Sumabase is just a fancy postcard.

489 00:40:58.580 00:40:59.410 Uttam Kumaran: grass.

490 00:40:59.410 00:41:00.010 Awaish Kumar: Right.

491 00:41:00.010 00:41:03.129 Samuel Roberts: Yeah. Postgres and the PGVector extension, and…

492 00:41:03.130 00:41:05.260 Uttam Kumaran: Yeah, yeah, yeah, yeah. Can be replicated.

493 00:41:05.640 00:41:06.320 Mustafa Raja: Yeah.

494 00:41:06.690 00:41:07.920 Awaish Kumar: In GCP.

495 00:41:10.810 00:41:15.049 Uttam Kumaran: And the other thing I didn’t mention here is they’re asking us to do that anyways.

496 00:41:17.180 00:41:18.609 Samuel Roberts: Oh, they want it on theirs?

497 00:41:19.240 00:41:23.250 Uttam Kumaran: Yeah, mainly because…

498 00:41:25.320 00:41:31.240 Uttam Kumaran: In Texas, if you… if we manage any of their services, we have to incur sales tax.

499 00:41:31.740 00:41:33.750 Uttam Kumaran: And so they emailed me about it, being like.

500 00:41:34.010 00:41:35.710 Samuel Roberts: Oh, okay.

501 00:41:36.560 00:41:40.920 Uttam Kumaran: And I’m like, oh shit, I guess we are sort of technically managing your stuff.

502 00:41:40.920 00:41:41.490 Samuel Roberts: Yeah.

503 00:41:41.790 00:41:50.230 Uttam Kumaran: So I was like, we can move it onto yours, but my… we don’t… again, I could just provision all their own stuff, but I wanted to see it as an opportunity to, like.

504 00:41:51.280 00:41:53.539 Uttam Kumaran: Get this… make this a little bit better.

505 00:41:53.750 00:41:57.880 Uttam Kumaran: So, thinking about these aspects, I guess, Sam, Awash.

506 00:41:58.350 00:42:04.059 Uttam Kumaran: or done a lot of your case yourself, like, what’s the… what’s the lowest hanging fruit thing we should go after in the next couple?

507 00:42:06.340 00:42:10.000 Uttam Kumaran: Again, here, I want to remind everyone of the goals here.

508 00:42:10.330 00:42:14.360 Uttam Kumaran: Increased accuracy, Decreased timing.

509 00:42:14.950 00:42:16.939 Awaish Kumar: And I wanna also…

510 00:42:16.940 00:42:21.830 Uttam Kumaran: Decrease the amount of triage issues, like, that our team has to take.

511 00:42:22.870 00:42:25.990 Uttam Kumaran: Right? Like, I don’t want Casey filling out an NNN form.

512 00:42:26.270 00:42:28.310 Uttam Kumaran: Too smart for that.

513 00:42:28.480 00:42:31.710 Uttam Kumaran: I want to push that onto their team, so…

514 00:42:32.870 00:42:37.519 Uttam Kumaran: And then I want to observe, like, kind of observability into the whole platform.

515 00:42:41.000 00:42:46.880 Uttam Kumaran: And then the last… sorry, one more… one more goal is I just want to have clear,

516 00:42:47.080 00:42:51.539 Uttam Kumaran: Understanding of why we made each architecture decision.

517 00:42:51.660 00:42:52.400 Uttam Kumaran: Right.

518 00:42:54.830 00:42:59.660 Uttam Kumaran: So, how do… what do you guys think is, like, a first, like, Kind of a couple short-term…

519 00:43:01.260 00:43:07.640 Uttam Kumaran: ideas, and then I can write this up, and… and yeah, but curious, like, gut instinct on, like, what we should work on first.

520 00:43:09.430 00:43:10.370 Awaish Kumar: Wow.

521 00:43:12.620 00:43:18.120 Awaish Kumar: like… Observability is the easiest part.

522 00:43:19.940 00:43:21.029 Awaish Kumar: Because we just.

523 00:43:21.030 00:43:24.630 Samuel Roberts: You say that, but N89 might not be that easy.

524 00:43:24.630 00:43:25.060 Uttam Kumaran: Yeah.

525 00:43:25.060 00:43:28.229 Samuel Roberts: That leads to, like, moving it in, which then becomes less of an easy part.

526 00:43:28.720 00:43:34.369 Awaish Kumar: Yeah, it doesn’t mean that we have to build some fancy dashboards, it’s just that we have alerts, triggers, notifications…

527 00:43:35.690 00:43:39.810 Awaish Kumar: To quickly, like, Resolve the issues if there are any.

528 00:43:42.150 00:43:44.449 Samuel Roberts: Sure, sure. Like, overall, yeah, yeah.

529 00:43:47.850 00:43:58.570 Samuel Roberts: My question, I guess, is also, like, with the triage, is… like, Casey, is that you, like, going to the form because the thing isn’t getting updated because they’re still using the sheet? Because that seems…

530 00:43:58.920 00:44:05.650 Samuel Roberts: Yeah. Low-hanging, deprecate that sheet, force them into that, which I know is issue with, like… But that’s a process change, right?

531 00:44:05.650 00:44:11.270 Uttam Kumaran: So I should… I’m just gonna go to Amber and say, any zip code changes need to go through the form.

532 00:44:12.020 00:44:12.620 Samuel Roberts: Yeah.

533 00:44:12.930 00:44:16.950 Uttam Kumaran: Right? So how often, Casey, have you done a full refresh of the…

534 00:44:17.720 00:44:20.150 Uttam Kumaran: Of the zip code thing… yet?

535 00:44:20.610 00:44:24.510 Casie Aviles: No, it’s not a full refresh, it’s mostly just…

536 00:44:24.510 00:44:25.140 Samuel Roberts: Yeah.

537 00:44:25.620 00:44:29.189 Casie Aviles: Yeah, it’s mostly just, inserting, like, new assignments.

538 00:44:30.350 00:44:33.060 Casie Aviles: Adding… adding new inspectors, and then…

539 00:44:33.060 00:44:36.019 Uttam Kumaran: But I guess, why… why aren’t they doing it?

540 00:44:37.390 00:44:38.260 Uttam Kumaran: it, like…

541 00:44:39.170 00:44:48.239 Uttam Kumaran: You could say, like, I don’t know. I’m just trying to, like, narrow… I’m just trying to narrow if there’s anything on our side. Otherwise, my… I’m just gonna go to Amber and say, like, hey.

542 00:44:48.550 00:44:51.649 Uttam Kumaran: These 10 triage tickets could have been done.

543 00:44:52.480 00:44:54.310 Uttam Kumaran: By them, using the form.

544 00:44:55.190 00:44:58.210 Casie Aviles: Yeah, that… that… I’m not sure. Like, they.

545 00:44:58.210 00:45:03.470 Uttam Kumaran: Can you, can you send me, like, a bunch of the triage tickets that could have been done via the form?

546 00:45:04.740 00:45:06.339 Casie Aviles: Okay, yeah, I’ll…

547 00:45:06.340 00:45:12.079 Uttam Kumaran: Just send it in the ABC channel, and then I’ll direct Amber to do that. Okay, so that’s at least, like, one win.

548 00:45:12.190 00:45:16.770 Uttam Kumaran: And then, second win on that, I’m gonna have… tell her to mark that sheet as read-only.

549 00:45:20.370 00:45:21.010 Casie Aviles: Okay.

550 00:45:21.430 00:45:28.149 Uttam Kumaran: This is where I’m just not clear on, like, why people are still using that sheet, if we should’ve… we already said, don’t stop using that. So, okay, great.

551 00:45:28.370 00:45:31.660 Uttam Kumaran: I think important. And then…

552 00:45:32.050 00:45:33.450 Awaish Kumar: Response time?

553 00:45:34.520 00:45:40.600 Awaish Kumar: Easier to… easier to measure it and show it To them, like, we…

554 00:45:40.790 00:45:43.910 Awaish Kumar: We improve the most time from this to this.

555 00:45:46.750 00:45:47.280 Mustafa Raja: Realtime.

556 00:45:47.280 00:45:53.569 Samuel Roberts: The overall getting logged with, because this is all getting… all of these requests are getting logged somewhere, I think Snowflake, right?

557 00:45:56.540 00:45:58.289 Samuel Roberts: Is that including the response times?

558 00:45:58.680 00:46:00.980 Casie Aviles: Yeah, yeah, for Andy, like, the overall.

559 00:46:00.980 00:46:03.649 Samuel Roberts: Yeah, the overall, like, yeah, end-to-end, right?

560 00:46:04.190 00:46:07.720 Casie Aviles: Yes, but it’s not, like, fine-grained, like…

561 00:46:07.980 00:46:10.549 Samuel Roberts: No, no, no, I just didn’t know if we had… I figured we had at least…

562 00:46:10.860 00:46:15.629 Samuel Roberts: The overall, and that can… we can then probably filter that by, like, what they’re asking sometimes.

563 00:46:16.180 00:46:16.860 Casie Aviles: Okay.

564 00:46:17.480 00:46:19.799 Samuel Roberts: But yeah, we can definitely add more,

565 00:46:23.660 00:46:24.460 Samuel Roberts: Okay.

566 00:46:30.610 00:46:30.865 Uttam Kumaran: Huh?

567 00:46:31.260 00:46:38.029 Uttam Kumaran: I feel pretty good, so I guess, like, maybe I’ll just do a quick, like, around the horn, like, how do you guys think this format is?

568 00:46:38.390 00:46:41.999 Uttam Kumaran: Like, is there any way we could have been a little bit more organized, or…

569 00:46:42.280 00:46:43.410 Uttam Kumaran: What do you guys think?

570 00:46:47.110 00:46:48.329 Mustafa Raja: This has been good.

571 00:46:49.860 00:46:56.250 Awaish Kumar: I think the format was good, and we just need to exact… deliverables.

572 00:46:56.250 00:46:57.450 Uttam Kumaran: Okay.

573 00:47:01.320 00:47:06.879 Demilade Agboola: It’s also, like, good, because, like, I had an idea what was going on in the ABC project, so it was good to get some insights into.

574 00:47:06.880 00:47:07.310 Samuel Roberts: goodness.

575 00:47:11.130 00:47:11.780 Uttam Kumaran: Great.

576 00:47:12.300 00:47:17.679 Uttam Kumaran: Yeah, I think it’s clear to me how, like, we should probably have, like, a clear area for ideas.

577 00:47:18.220 00:47:18.660 Samuel Roberts: a question.

578 00:47:19.650 00:47:23.870 Uttam Kumaran: Basically, the outputs of this is gonna be a mix of spikes, it’s gonna be a mix of tickets.

579 00:47:24.110 00:47:33.169 Uttam Kumaran: And it’s gonna be some documentation, so that’s, like, sort of, like, what I want to arrive on. So, yeah, let me take this with Rico, I’ll take this transcript and sort of put together a little bit of a doc.

580 00:47:33.360 00:47:36.350 Uttam Kumaran: I think there’s easily a couple spikes to run.

581 00:47:37.790 00:47:45.630 Uttam Kumaran: there’s gonna be one spike on, like, what’s the level of effort to move Andy to GCP. There’s gonna be one spike on…

582 00:47:46.430 00:47:53.270 Uttam Kumaran: The right side of the piece, there’s one spike, continuing spike on, like, consolidating

583 00:47:53.410 00:48:07.090 Uttam Kumaran: Texas SQL and that to DuckDB, so a couple spikes will be the outputs, and then, if needed, we can do another architecture review once we have those ready to kind of propose a new architecture diagram.

584 00:48:10.170 00:48:10.950 Uttam Kumaran: Okay.

585 00:48:11.970 00:48:16.180 Uttam Kumaran: Alright, guys. Thank you, this is really helpful. So, tomorrow we have.

586 00:48:16.660 00:48:17.540 Awaish Kumar: Summonia.

587 00:48:18.240 00:48:24.249 Uttam Kumaran: Tomorrow, we have one on Insomnia, so if everybody can be there, we’ll do a similar thing, be a little bit more organized.

588 00:48:24.530 00:48:26.879 Uttam Kumaran: And then, I don’t know if we have…

589 00:48:28.370 00:48:33.530 Uttam Kumaran: I may… like, yeah, I know we’re doing one thing on Looker migration for urban stems, but that’s not…

590 00:48:33.870 00:48:39.340 Uttam Kumaran: somewhat like this, but I’m gonna see whether we can… oh, we need to do Eden Cogg’s one, Demolade.

591 00:48:42.620 00:48:43.320 Demilade Agboola: Yeah.

592 00:48:43.650 00:48:44.040 Demilade Agboola: Beautiful.

593 00:48:44.820 00:48:47.339 Uttam Kumaran: do that at some point next week, I don’t know.

594 00:48:50.900 00:48:53.889 Uttam Kumaran: I’ll think about it. I have our… I have our conversation, so…

595 00:48:56.640 00:48:59.869 Uttam Kumaran: And then one architecture I want to do…

596 00:49:00.080 00:49:03.490 Uttam Kumaran: After a few spikes is the alerting across clients.

597 00:49:03.780 00:49:05.109 Uttam Kumaran: For data quality.

598 00:49:06.220 00:49:07.750 Demilade Agboola: Yeah, that’ll be a good one, too.

599 00:49:08.200 00:49:08.770 Uttam Kumaran: Okay.

600 00:49:09.830 00:49:19.130 Uttam Kumaran: Okay, alright. Thank you guys. Sorry, I know it’s been a heavy meeting day, so hopefully you guys aren’t in more meetings. But I appreciate the time today.

601 00:49:19.740 00:49:20.430 Mustafa Raja: Thank you.

602 00:49:21.490 00:49:23.140 Samuel Roberts: Yeah, this was true. Thank you.

603 00:49:23.140 00:49:23.650 Uttam Kumaran: Right.

604 00:49:24.170 00:49:24.760 Uttam Kumaran: Thank you, guys.

605 00:49:25.000 00:49:25.400 Demilade Agboola: nuts.

606 00:49:25.400 00:49:25.840 Mustafa Raja: Thank you.

607 00:49:25.840 00:49:26.469 Demilade Agboola: It does.

608 00:49:26.620 00:49:27.210 Mustafa Raja: pal. Bye.

609 00:49:27.210 00:49:27.800 Uttam Kumaran: Okay, bye.