Meeting Title: AI Service Office Hours Block Date: 2026-04-03 Meeting participants: Casie Aviles, Samuel Roberts
WEBVTT
1 00:00:28.330 ⇒ 00:00:29.340 Samuel Roberts: Hey.
2 00:00:32.340 ⇒ 00:00:33.639 Casie Aviles: Oh, hey, Sam. Hey, Sam.
3 00:00:35.350 ⇒ 00:00:39.000 Samuel Roberts: Yeah, sorry, we gotta figure out a good system for, like,
4 00:00:39.540 ⇒ 00:00:49.209 Samuel Roberts: like, when someone needs office hours, because I like having them blocked off, but I never… I’m never sure which days, like, I should hop on and check or not, so maybe we’ll have to figure out a good way to, like…
5 00:00:49.840 ⇒ 00:00:55.089 Samuel Roberts: Alert everyone by, like, 10 or 15 minutes before, maybe.
6 00:00:55.470 ⇒ 00:00:56.560 Casie Aviles: Oh, okay.
7 00:00:56.690 ⇒ 00:00:57.280 Casie Aviles: Yeah.
8 00:00:57.280 ⇒ 00:01:04.869 Samuel Roberts: I’m just trying to think, like, a good way so that we know, because I… I want to come to this, like, ready. And I think you’re ready today. I think, you know, you have stuff. I just don’t want it to be, like…
9 00:01:05.470 ⇒ 00:01:06.310 Samuel Roberts: You know.
10 00:01:06.420 ⇒ 00:01:07.559 Samuel Roberts: Just hang out time.
11 00:01:07.560 ⇒ 00:01:08.100 Casie Aviles: Mhmes.
12 00:01:08.100 ⇒ 00:01:17.959 Samuel Roberts: If you need… if we need to get something done, let’s do it, kind of thing, and I like having the time blocked off, but… but anyway, I was looking… pulling up Linear with that ticket.
13 00:01:18.540 ⇒ 00:01:25.080 Samuel Roberts: So, I think I might owe you some things for that?
14 00:01:25.860 ⇒ 00:01:29.129 Samuel Roberts: Okay. Which ta- hold on one second.
15 00:01:29.560 ⇒ 00:01:30.609 Samuel Roberts: I think I have all the.
16 00:01:30.610 ⇒ 00:01:32.110 Casie Aviles: Bye.
17 00:01:32.110 ⇒ 00:01:37.939 Samuel Roberts: Yeah, I’m trying to remember, does it show what it’s blocked by ons? It doesn’t let me open it,
18 00:01:38.980 ⇒ 00:01:40.149 Samuel Roberts: Just trying to get it up.
19 00:01:40.400 ⇒ 00:01:44.759 Samuel Roberts: Yeah, it’s blocked by… me, probably?
20 00:01:46.400 ⇒ 00:01:54.490 Samuel Roberts: Yeah, I think… yeah, so that first one, I have to deal with, getting it kind of ready for you to run with.
21 00:01:55.270 ⇒ 00:01:58.759 Samuel Roberts: Okay. So, the…
22 00:02:02.130 ⇒ 00:02:07.430 Samuel Roberts: I’m just trying to think what else we can…
23 00:02:07.780 ⇒ 00:02:10.100 Samuel Roberts: how quickly I can get that out for you.
24 00:02:10.669 ⇒ 00:02:17.809 Samuel Roberts: Do you have any questions about this? Because, like, I can try to answer a few things now, but I think more will be clear once I get stuff together.
25 00:02:18.880 ⇒ 00:02:22.540 Casie Aviles: Yeah, so I think my only question is, like.
26 00:02:23.970 ⇒ 00:02:30.540 Casie Aviles: like, how would I go about pulling the data? Like, is that some… documented somewhere, or…
27 00:02:30.540 ⇒ 00:02:40.010 Samuel Roberts: Yeah, that’s… I think there’s a… there might be a branch. I was gonna put together, like, a slightly cleaner code, because right now it’s in, like, several scripts.
28 00:02:40.580 ⇒ 00:02:48.510 Samuel Roberts: And I was gonna put together a README on that, as well as part of the other previous ticket that’s blocking it.
29 00:02:48.770 ⇒ 00:02:59.250 Samuel Roberts: So… Let me… Basically, I can give you a quick rundown now, if that’s cool. Might even.
30 00:02:59.250 ⇒ 00:02:59.680 Casie Aviles: Okay.
31 00:02:59.680 ⇒ 00:03:06.369 Samuel Roberts: to have it recorded now. Problem is, I haven’t touched it in a little while, so it might be a minute of me figuring out
32 00:03:06.620 ⇒ 00:03:11.259 Samuel Roberts: where everything still is, but, we can make that work. Let me…
33 00:03:11.840 ⇒ 00:03:12.670 Casie Aviles: Yeah, no problem.
34 00:03:13.620 ⇒ 00:03:16.109 Samuel Roberts: Just one second, I got a couple of messages here.
35 00:03:22.160 ⇒ 00:03:28.740 Samuel Roberts: let me jump into… oh, it’s in the other repo, that’s really good.
36 00:03:30.950 ⇒ 00:03:33.520 Samuel Roberts: So let me open up ABC…
37 00:03:36.520 ⇒ 00:03:39.479 Samuel Roberts: Let me just share my screen now, I guess.
38 00:03:41.740 ⇒ 00:03:47.720 Samuel Roberts: And then… okay, so basically…
39 00:03:50.150 ⇒ 00:03:52.510 Samuel Roberts: Oh, wait, am I on the right branch here? Let’s see…
40 00:03:58.330 ⇒ 00:04:01.340 Samuel Roberts: Integration progress, but I’m way behind.
41 00:04:03.070 ⇒ 00:04:05.540 Samuel Roberts: 8x8 ingesting the mute.
42 00:04:10.320 ⇒ 00:04:15.080 Samuel Roberts: Sorry, one sec, it’s, I had a different branch out, and so now things are, like, not…
43 00:04:15.080 ⇒ 00:04:16.810 Casie Aviles: Oh, yeah, no problem.
44 00:04:16.810 ⇒ 00:04:19.780 Samuel Roberts: let me check it out, because I was trying to figure out the…
45 00:04:22.250 ⇒ 00:04:24.550 Samuel Roberts: I’m gonna discard that, and then I’m gonna…
46 00:04:24.710 ⇒ 00:04:29.180 Samuel Roberts: Yeah, the last one hasn’t been touched since March 7… March 17th, so it’s like…
47 00:04:29.770 ⇒ 00:04:31.900 Samuel Roberts: Package lock is messed up too, of course.
48 00:04:33.270 ⇒ 00:04:34.219 Samuel Roberts: Try this again.
49 00:04:35.560 ⇒ 00:04:38.260 Samuel Roberts: Okay, good, now we’re on there, and I can…
50 00:04:38.400 ⇒ 00:04:45.580 Samuel Roberts: Cool, okay. Let me… so I think I have some local stuff still that I’ll sync up, because I was the only one really touching it, so I wasn’t too worried.
51 00:04:46.710 ⇒ 00:04:48.210 Samuel Roberts: Let me share this now.
52 00:04:49.110 ⇒ 00:04:53.300 Samuel Roberts: So the, the, the high level is,
53 00:04:56.560 ⇒ 00:04:58.640 Samuel Roberts: Effectively, there’s a…
54 00:05:02.020 ⇒ 00:05:06.599 Samuel Roberts: Alright, so there’s an 8x8 ingestion folder inside.
55 00:05:07.710 ⇒ 00:05:12.049 Samuel Roberts: the, repo, okay? So…
56 00:05:12.660 ⇒ 00:05:19.549 Samuel Roberts: Going way back to, like, November, I had just done a bunch of stuff in a temp folder just to try to, you know, test stuff.
57 00:05:19.740 ⇒ 00:05:28.200 Samuel Roberts: This is a little more structured, but only somewhat, and I had actually used Codex for this. Let me pull up Codex, too.
58 00:05:30.380 ⇒ 00:05:37.690 Samuel Roberts: But effectively, there’s… there’s an API, there’s an… it’s a… not…
59 00:05:38.440 ⇒ 00:05:41.570 Samuel Roberts: super well documented, which is frustrating.
60 00:05:41.570 ⇒ 00:05:44.710 Casie Aviles: Yeah, from 8x8, right, we were trying to pull data.
61 00:05:44.710 ⇒ 00:05:47.579 Samuel Roberts: Yeah, so I’m trying to remember the best, so…
62 00:05:48.570 ⇒ 00:05:53.370 Samuel Roberts: There’s some stuff here… I’m trying to see if this README is up to date or not.
63 00:05:56.720 ⇒ 00:06:02.980 Samuel Roberts: Okay, yeah, so the Google Cloud we had set up, we needed a key, a secret, the base URL, and the region.
64 00:06:03.400 ⇒ 00:06:10.160 Samuel Roberts: I don’t think that’s right, but, basically, there’s some code here for doing… A few different things.
65 00:06:11.580 ⇒ 00:06:22.900 Samuel Roberts: But I want to actually get into, like, how it does it more than, like, all of these little commands right now. I’m just trying to see if anything was noted here, and I don’t think it was. Okay, so the,
66 00:06:23.930 ⇒ 00:06:28.049 Samuel Roberts: The main idea here is that there’s two…
67 00:06:28.250 ⇒ 00:06:30.340 Samuel Roberts: Endpoints that have to get hit.
68 00:06:31.040 ⇒ 00:06:37.170 Samuel Roberts: Let’s jump in here, because I put together a little CLI for doing it.
69 00:06:37.320 ⇒ 00:06:42.950 Samuel Roberts: I’m just trying to see where the actual code runs now, so I can walk you through it. Or, the other option here is I can just…
70 00:06:43.430 ⇒ 00:06:51.130 Samuel Roberts: push the code, and you can maybe have Cursor look through it again. Actually, let me see if Codex has my old chat histories real quick.
71 00:06:58.550 ⇒ 00:07:02.110 Samuel Roberts: Okay… This might not be that helpful.
72 00:07:02.610 ⇒ 00:07:06.219 Samuel Roberts: So effectively, let me… let me pull… hold on. You’re only seeing cursor right now, right?
73 00:07:06.890 ⇒ 00:07:08.740 Casie Aviles: Yes, I can see cursor.
74 00:07:09.080 ⇒ 00:07:12.560 Samuel Roberts: Okay, yeah, let me… let me share it so I can do Codex, too.
75 00:07:16.980 ⇒ 00:07:19.619 Samuel Roberts: Okay, are you seeing this little codex window?
76 00:07:20.300 ⇒ 00:07:22.599 Casie Aviles: Yeah, I see it now.
77 00:07:22.820 ⇒ 00:07:26.129 Samuel Roberts: Okay, so yeah, this is, like, a month ago, it looks like, here.
78 00:07:26.270 ⇒ 00:07:31.460 Samuel Roberts: So I was playing around with Codex, which is… I don’t know if you’ve used Codex at all, the app.
79 00:07:33.640 ⇒ 00:07:37.490 Casie Aviles: No, I just tested it once, but not…
80 00:07:37.490 ⇒ 00:07:45.080 Samuel Roberts: Yeah, yeah. That’s sort of what I was doing here, but… so basically, it’s just, like, instead of it being an IDE, it’s just the chat, and you can view diffs…
81 00:07:45.300 ⇒ 00:07:45.810 Samuel Roberts: Right.
82 00:07:46.190 ⇒ 00:07:51.880 Samuel Roberts: you can commit and do all this stuff. So instead of… and it’s actually interesting, Cursor now has this agents window.
83 00:07:52.340 ⇒ 00:07:56.259 Samuel Roberts: That’s very similar. So things that I think are starting to move away from, like.
84 00:07:57.100 ⇒ 00:08:05.089 Samuel Roberts: full IDE and more just chat, kind of like… but that’s what Codex kind of was showing at first a few months ago, but,
85 00:08:05.910 ⇒ 00:08:10.139 Samuel Roberts: What I had done here was mostly chat with it about
86 00:08:10.640 ⇒ 00:08:13.240 Samuel Roberts: Let’s go way back to the beginning real quick so I can show you.
87 00:08:13.540 ⇒ 00:08:19.750 Samuel Roberts: I had done a bunch of work in another folder, and I put together this plan,
88 00:08:20.740 ⇒ 00:08:22.659 Samuel Roberts: This might be the best thing to read, so…
89 00:08:23.760 ⇒ 00:08:27.449 Samuel Roberts: We basically have to do a bulk download of these transcripts.
90 00:08:28.380 ⇒ 00:08:35.329 Samuel Roberts: Okay, the issue becomes, we need to…
91 00:08:35.640 ⇒ 00:08:38.810 Samuel Roberts: Figure out which transcripts are the right ones.
92 00:08:39.490 ⇒ 00:08:47.289 Samuel Roberts: And so there’s a metadata… Endpoint we have to hit, and do all this filtering, basically.
93 00:08:48.000 ⇒ 00:08:48.480 Casie Aviles: Okay.
94 00:08:48.480 ⇒ 00:08:53.309 Samuel Roberts: Because there’s a lot of stuff in 8x8. So, like, every call, including…
95 00:08:53.530 ⇒ 00:09:04.059 Samuel Roberts: like, outbound stuff that we don’t care about here. It also does some interesting things where, as it moves through the flow from, like.
96 00:09:04.300 ⇒ 00:09:08.230 Samuel Roberts: They call, like, someone calls ABC, gets reception.
97 00:09:08.430 ⇒ 00:09:12.039 Samuel Roberts: They say, I have a lawn issue, and they get transferred somewhere, right?
98 00:09:12.740 ⇒ 00:09:17.289 Samuel Roberts: So those are, like, two different entries, and we have to kind of eventually tie them together.
99 00:09:17.810 ⇒ 00:09:23.040 Samuel Roberts: But… the work that I had done here was effectively…
100 00:09:23.230 ⇒ 00:09:33.470 Samuel Roberts: Hit this endpoint to figure out which… Objects match the… Call center recording object type.
101 00:09:33.700 ⇒ 00:09:37.119 Samuel Roberts: and the transcription object type, okay?
102 00:09:37.570 ⇒ 00:09:43.319 Samuel Roberts: And then you can kind of filter by time, so this is how I was able to pull, like, one day, one week kind of thing.
103 00:09:44.130 ⇒ 00:09:50.819 Samuel Roberts: Then, you take those IDs, And you hit this other bulk download endpoint.
104 00:09:52.700 ⇒ 00:09:56.269 Samuel Roberts: And that creates a job on the server.
105 00:09:56.500 ⇒ 00:09:59.560 Samuel Roberts: To put those together into a zip that gets downloaded.
106 00:10:00.140 ⇒ 00:10:00.680 Samuel Roberts: Okay.
107 00:10:00.680 ⇒ 00:10:04.120 Casie Aviles: Okay, and we have to, like, process this SIP.
108 00:10:05.240 ⇒ 00:10:24.550 Samuel Roberts: Yeah, so I have some stuff… there’s a lot in here that does things already, it’s just not super… it’s stitched together in, like, a little way that I could run it myself, so that’s why I feel like if you just point cursor to it, it will be helpful. But I want to just give you the high level now, but basically, you hit this endpoint, and then it does a job, but you have to check when it’s done, right?
109 00:10:24.870 ⇒ 00:10:25.660 Casie Aviles: Yeah.
110 00:10:25.980 ⇒ 00:10:29.469 Samuel Roberts: So it doesn’t just download when it’s done there. So you basically have this polling, you have the.
111 00:10:29.470 ⇒ 00:10:29.900 Casie Aviles: get in there.
112 00:10:29.900 ⇒ 00:10:32.179 Samuel Roberts: Once it’s done, you can download the zip.
113 00:10:33.830 ⇒ 00:10:39.899 Samuel Roberts: you can then unzip it, and let me see if I have stuff in here. Yeah, so, like, here is…
114 00:10:40.180 ⇒ 00:10:42.229 Samuel Roberts: This is just this test.zip.
115 00:10:42.400 ⇒ 00:10:44.290 Samuel Roberts: And then if I were to…
116 00:10:44.670 ⇒ 00:10:49.319 Samuel Roberts: unzip that, and I was doing this all in code, too, that’s why I think this one’s here, but if I open this…
117 00:10:50.180 ⇒ 00:10:53.920 Samuel Roberts: you’ll see it’s just that JSON from the other one, so that’s what was in the zip folder.
118 00:10:54.290 ⇒ 00:10:55.220 Casie Aviles: I see.
119 00:10:55.490 ⇒ 00:10:59.699 Samuel Roberts: And so this is how the transcripts come in, and if you see here, it’s like…
120 00:11:00.400 ⇒ 00:11:02.529 Samuel Roberts: Well, let me see if I can pretty print this.
121 00:11:06.190 ⇒ 00:11:09.130 Samuel Roberts: Maybe just saving it will do it? I don’t know. I never…
122 00:11:09.450 ⇒ 00:11:24.389 Samuel Roberts: Okay, maybe we won’t, but you can kind of… I’m assuming you can kind of tell, like, this results is the main thing here, and then there’s an array of words, and then that words has all of the chat, okay, for, like, a bunch of stuff. So you can see, like.
123 00:11:24.600 ⇒ 00:11:28.110 Samuel Roberts: It shows when and start, and then the word high, and then…
124 00:11:28.350 ⇒ 00:11:33.399 Samuel Roberts: Miss Selena, hi, this Janiece, with… like, so, like, you have to kind of stitch this together.
125 00:11:34.650 ⇒ 00:11:35.099 Casie Aviles: That’s what I think.
126 00:11:35.100 ⇒ 00:11:36.689 Samuel Roberts: I think this part is here.
127 00:11:38.950 ⇒ 00:11:39.390 Casie Aviles: Oops.
128 00:11:39.390 ⇒ 00:11:45.670 Samuel Roberts: So, what I had… so, like, this is what gets downloaded. Yeah, timestamps, I think, inside the call, right?
129 00:11:45.670 ⇒ 00:11:46.460 Casie Aviles: Okay.
130 00:11:47.060 ⇒ 00:11:53.309 Samuel Roberts: So, I think there’s a little bit more work to figure out that, but what I was able to do here, and let me…
131 00:11:54.360 ⇒ 00:12:01.280 Samuel Roberts: see if it’s here. So I was able to stitch this all together, I went back and forth a bunch trying to figure out the downloads…
132 00:12:01.640 ⇒ 00:12:06.299 Samuel Roberts: We were getting some timeouts where it wasn’t, doing things right.
133 00:12:06.550 ⇒ 00:12:11.860 Samuel Roberts: So you see there’s a little bit of a CLI here that I could pass in the filter, where I want to save it.
134 00:12:12.000 ⇒ 00:12:14.710 Samuel Roberts: How many objects for testing purposes, right?
135 00:12:17.900 ⇒ 00:12:23.510 Samuel Roberts: So then, we have to build the transcript, and I’m trying to see if I have an example here…
136 00:12:24.920 ⇒ 00:12:28.350 Samuel Roberts: So this initial test was some of the stuff I had run before.
137 00:12:29.000 ⇒ 00:12:39.259 Samuel Roberts: Just trying to figure out the APIs. So this is… this is older, but you can kind of see… no, it’s not even accurate anymore, because I copied things over, but,
138 00:12:40.530 ⇒ 00:12:42.880 Samuel Roberts: that’s where I kind of fed stuff to…
139 00:12:44.860 ⇒ 00:12:48.630 Samuel Roberts: codecs to figure out how to use the API from what I had done previously.
140 00:12:49.650 ⇒ 00:12:55.029 Samuel Roberts: And so, once that’s downloaded, I’m just trying to see if I have data here… yeah, okay, here we go. So…
141 00:12:55.240 ⇒ 00:12:58.750 Samuel Roberts: I was doing these things in batches,
142 00:13:00.130 ⇒ 00:13:03.050 Samuel Roberts: And so, you can see this is what gets pulled.
143 00:13:03.500 ⇒ 00:13:05.529 Samuel Roberts: For the metadata.
144 00:13:06.400 ⇒ 00:13:24.080 Samuel Roberts: So this is just a new line JSON, so it’s like JSONL is the other way to call it, where basically it’s not technically properly formatted JSON, because there’s no, like… oh, where are we going here? There’s no commas at the end of the line and stuff.
145 00:13:25.860 ⇒ 00:13:28.659 Samuel Roberts: But each line itself is valid JSON.
146 00:13:29.120 ⇒ 00:13:40.020 Samuel Roberts: Right. So, here it shows you the ID, the transcription, because we filtered by that, oops, the mime type, and then this object name is actually what we have to fetch.
147 00:13:42.050 ⇒ 00:13:49.730 Samuel Roberts: And then there’s a bunch of other stuff here, customer ID, user ID, stored by… like, we’re gonna wanna save all this, and we were doing some of that there.
148 00:13:50.090 ⇒ 00:13:59.990 Samuel Roberts: Because… Basically, once that’s downloaded, we do these batch Boulders…
149 00:14:01.940 ⇒ 00:14:07.850 Samuel Roberts: And you can see here, this is the transcription text that I’ve calculated for…
150 00:14:08.920 ⇒ 00:14:18.720 Samuel Roberts: batch 0, which is one of these, which you can see all this stuff, so this is me trying to do… There’s a lot going on here, which is why I need to kind of synthesize it for you, but.
151 00:14:18.720 ⇒ 00:14:19.790 Casie Aviles: Yeah, effectively.
152 00:14:20.930 ⇒ 00:14:21.670 Samuel Roberts: Sorry.
153 00:14:22.310 ⇒ 00:14:27.400 Casie Aviles: Yeah, I was… just based on what I’m seeing right now, there is a lot going on. But, yeah, yeah.
154 00:14:27.400 ⇒ 00:14:28.220 Samuel Roberts: Yeah, yeah.
155 00:14:28.220 ⇒ 00:14:29.100 Casie Aviles: good, yeah.
156 00:14:29.750 ⇒ 00:14:35.940 Samuel Roberts: So I think, I think what I’ll do is I will put together a little README that’s updating, because basically what I had done in…
157 00:14:36.190 ⇒ 00:14:39.609 Samuel Roberts: Codex… in fact, let me just ask Codex here, because this was…
158 00:14:40.120 ⇒ 00:14:46.740 Samuel Roberts: I can probably have it put together for me right now, but basically, I was building a project, that I could run
159 00:14:47.540 ⇒ 00:14:49.880 Samuel Roberts: Just a command to…
160 00:14:51.080 ⇒ 00:14:59.989 Samuel Roberts: have a few different options here. So, in this dist folder, we have a bunch of JSON… or a bunch of JavaScript that got compiled from this TypeScript.
161 00:15:00.510 ⇒ 00:15:06.660 Samuel Roberts: Right? And so this dry run… basically handles…
162 00:15:06.880 ⇒ 00:15:11.449 Samuel Roberts: Fetching all this stuff, pushing it to the line, so we can check the…
163 00:15:12.170 ⇒ 00:15:16.379 Samuel Roberts: This might not be the best way to read it. Let me go back down to here. So this, this TypeScript…
164 00:15:16.980 ⇒ 00:15:19.679 Samuel Roberts: Is kind of doing most of the work.
165 00:15:22.230 ⇒ 00:15:22.930 Samuel Roberts: So…
166 00:15:22.930 ⇒ 00:15:23.310 Casie Aviles: Okay.
167 00:15:23.310 ⇒ 00:15:31.720 Samuel Roberts: running this main function, which is processing the inputs, so I can say how I want it, zip, and all this other stuff.
168 00:15:31.980 ⇒ 00:15:36.080 Samuel Roberts: And then the actual logic is…
169 00:15:38.260 ⇒ 00:15:40.619 Samuel Roberts: Not in the Rosa Push interaction.
170 00:15:41.160 ⇒ 00:15:46.470 Samuel Roberts: file type… Oh, this might be after I already downloaded the file.
171 00:15:47.690 ⇒ 00:15:50.619 Samuel Roberts: So this is where it gets a little confusing, because there’s several different steps.
172 00:15:51.000 ⇒ 00:15:59.349 Samuel Roberts: That I need to clean up. There’s also all the OAuth stuff for authenticating. I will clean this up for you, as part of that ticket.
173 00:15:59.460 ⇒ 00:16:06.650 Samuel Roberts: And then… But effectively, what happens, high level, is we make a call to this endpoint, we…
174 00:16:06.800 ⇒ 00:16:10.319 Samuel Roberts: can filter a bunch of things, I’m trying to see…
175 00:16:11.680 ⇒ 00:16:16.129 Samuel Roberts: Yeah, so, like, list transcription objects here, this is, like, the basic filter we’re using.
176 00:16:17.160 ⇒ 00:16:23.519 Samuel Roberts: It’s a little ugly, because of the way their API works, but basically what I was able to find is that we want transcriptions.
177 00:16:23.850 ⇒ 00:16:26.230 Samuel Roberts: We want call center recordings.
178 00:16:27.170 ⇒ 00:16:28.930 Samuel Roberts: We want them inbound?
179 00:16:29.040 ⇒ 00:16:32.169 Samuel Roberts: Instead of outbound, because we want,
180 00:16:33.250 ⇒ 00:16:42.479 Samuel Roberts: just the service calls coming in, and then we can figure out the time period that we want to do. So that’s what this is basically doing. So then you can see here, it fetches it.
181 00:16:42.790 ⇒ 00:16:49.250 Samuel Roberts: It kind of, figures it all out from the… what the response comes back.
182 00:16:49.460 ⇒ 00:16:55.539 Samuel Roberts: If it has stuff… We keep going, and then we just return the objects.
183 00:16:55.960 ⇒ 00:16:59.579 Samuel Roberts: And so then, where this gets used…
184 00:17:01.190 ⇒ 00:17:07.760 Samuel Roberts: is not there. So, oh, the CSS client’s what’s getting used, that’s right. Sorry, one sec.
185 00:17:09.900 ⇒ 00:17:12.079 Samuel Roberts: Pipeline here’s a good one, probably.
186 00:17:15.319 ⇒ 00:17:18.639 Samuel Roberts: So, like, process batch is kind of what I was doing.
187 00:17:18.760 ⇒ 00:17:24.310 Samuel Roberts: where I was starting a bulk download based on the meta IDs from the batch that we’re passing in.
188 00:17:24.700 ⇒ 00:17:25.950 Samuel Roberts: If that makes sense.
189 00:17:26.200 ⇒ 00:17:30.059 Samuel Roberts: So, first we fetch the metadata for…
190 00:17:30.750 ⇒ 00:17:34.689 Samuel Roberts: And there’s a little bit of a balancing act here between
191 00:17:35.170 ⇒ 00:17:41.590 Samuel Roberts: Getting the metadata for a given time period, and then you can only download so many in a batch.
192 00:17:42.000 ⇒ 00:17:46.500 Casie Aviles: Yeah, I remember Tim mentioned something about rate limits to it for…
193 00:17:46.500 ⇒ 00:17:55.549 Samuel Roberts: Yeah, yeah, I didn’t have too much problem with that. What I had problems with was more how long it took to do the bulk processing.
194 00:17:55.750 ⇒ 00:17:56.380 Casie Aviles: I see.
195 00:17:56.380 ⇒ 00:18:03.479 Samuel Roberts: So, if you get one piece of metadata with one ID, You fetch that one…
196 00:18:03.730 ⇒ 00:18:06.600 Samuel Roberts: As part of the bulk download, it’s pretty quick.
197 00:18:06.780 ⇒ 00:18:20.929 Samuel Roberts: And so then I was trying to test out, let’s do 10 of them, let’s do 100 of them, let’s do 100 of them in parallel. Let’s do… you know, how many can I… how… like, where’s the balancing act between asking for… because there’s a lot of them here. Let me actually open up,
198 00:18:22.080 ⇒ 00:18:28.650 Samuel Roberts: I don’t know if I have it here, but… actually, it would be too complicated for me to get into the BigQuery right now, but,
199 00:18:32.690 ⇒ 00:18:38.019 Samuel Roberts: Yeah, there’s a lot of, like, just research I was doing here, trying to figure out what the endpoints would even accept.
200 00:18:39.300 ⇒ 00:18:47.700 Samuel Roberts: like, the time format and things like that, the inbound, all that stuff. So I kind of have worked all that out. There’s a little bit more to figure out in terms of, like, optimizing.
201 00:18:48.510 ⇒ 00:18:53.700 Samuel Roberts: The… the process, but effectively…
202 00:18:55.770 ⇒ 00:18:58.720 Samuel Roberts: what I did was I wrote it all to BigQuery.
203 00:18:58.940 ⇒ 00:19:02.230 Casie Aviles: Oh, so this will write it directly to BigQuery.
204 00:19:02.230 ⇒ 00:19:11.670 Samuel Roberts: That’s the idea. I think I had it in a few different stages, so I could just do it all locally at first, and then I put some into BigQuery, which you might have seen if you were in the…
205 00:19:12.120 ⇒ 00:19:13.900 Samuel Roberts: BigQuery instance at all.
206 00:19:14.190 ⇒ 00:19:17.780 Samuel Roberts: That’s the stuff that I think Amber took a look at.
207 00:19:18.050 ⇒ 00:19:18.840 Casie Aviles: Come back.
208 00:19:19.260 ⇒ 00:19:34.590 Samuel Roberts: It’s just, like, a month of data, or maybe less than a month of data, because a month of data is a lot. That’s kind of what I was finding, is that they get a ton of calls, and because they’re all broken up, like here, for example, this is a part of a script that’s, you know, requesting a page.
209 00:19:34.710 ⇒ 00:19:37.989 Samuel Roberts: And it was going into the thousands, tens of thousands, you know?
210 00:19:39.590 ⇒ 00:19:43.889 Samuel Roberts: So it’s, like, a lot to process. I’m trying to see if there’s any other good
211 00:19:44.350 ⇒ 00:19:50.880 Samuel Roberts: info here. Yeah, page… you can only get 100 at a time, so you have to just keep hitting it and getting more and more and more and more.
212 00:19:53.110 ⇒ 00:20:00.879 Samuel Roberts: So I will put together a little bit more for you. I just wanted to give you a quick rundown of, like, fetch the metadata, start the bulk download.
213 00:20:01.260 ⇒ 00:20:05.400 Samuel Roberts: Pull it, get the bulk download, extract the data.
214 00:20:06.020 ⇒ 00:20:10.589 Samuel Roberts: Process the data, because we also need to do some of the,
215 00:20:11.840 ⇒ 00:20:18.670 Samuel Roberts: redaction sort of stuff. So this is looking for, like, if anyone mentions…
216 00:20:18.860 ⇒ 00:20:22.170 Samuel Roberts: Their credit card info, or any other kind of,
217 00:20:22.170 ⇒ 00:20:25.129 Casie Aviles: Oh, we need to anchor those as well.
218 00:20:25.680 ⇒ 00:20:28.880 Samuel Roberts: Yeah, and so that’s actually… I don’t know if you saw the email that just came in.
219 00:20:29.130 ⇒ 00:20:29.900 Casie Aviles: Oh, yeah, yeah.
220 00:20:30.620 ⇒ 00:20:40.739 Samuel Roberts: So that’s the stuff where, like, we need to then figure out, potentially, and I still haven’t quite got clarity on that from Pranav, in terms of, like, what is in scope for us.
221 00:20:41.310 ⇒ 00:20:52.029 Samuel Roberts: But basically, like, if… once we do this redaction of ideas, if we see something, we’ll be able to flag it to ABC and their SOC endpoint.
222 00:20:52.640 ⇒ 00:20:53.260 Samuel Roberts: And if…
223 00:20:53.510 ⇒ 00:21:00.349 Samuel Roberts: If it’s fine, we will just pass it through to Evolve as part of our process, but for now, I’m not worrying about that too much.
224 00:21:02.550 ⇒ 00:21:12.950 Samuel Roberts: I will, like I said, put together a little bit better of a README here, and then… but yeah, so basically, like I said, so then we do the redaction, we probably compile the transcript.
225 00:21:13.260 ⇒ 00:21:16.460 Samuel Roberts: So that… because, like I said, it reads,
226 00:21:18.400 ⇒ 00:21:21.119 Samuel Roberts: It reads, like, that’s not the right one.
227 00:21:21.290 ⇒ 00:21:23.150 Samuel Roberts: It wasn’t this, it wasn’t…
228 00:21:29.510 ⇒ 00:21:35.739 Samuel Roberts: Oh, these are just too big to load. Oh, no, okay. That’s just my cursor freezing.
229 00:21:38.340 ⇒ 00:21:41.170 Samuel Roberts: So here’s some more information.
230 00:21:41.170 ⇒ 00:21:42.420 Casie Aviles: Okay. You can see, like.
231 00:21:42.420 ⇒ 00:21:45.800 Samuel Roberts: So I took all this, and I kind of put it into a…
232 00:21:46.680 ⇒ 00:21:52.370 Samuel Roberts: transcript entry, and then I compile all that. I’m trying to see if I have a good example of one of those…
233 00:21:54.720 ⇒ 00:21:58.219 Samuel Roberts: I don’t think I do. Just, like, a test example,
234 00:21:59.630 ⇒ 00:22:04.090 Samuel Roberts: Yeah, I don’t have it here, but, you know, you imagine, like, once you do all this, you can figure out.
235 00:22:04.400 ⇒ 00:22:10.880 Samuel Roberts: Who the caller is… You can figure out who the
236 00:22:11.180 ⇒ 00:22:14.920 Samuel Roberts: Collee is, so that’s, like, who the agent is.
237 00:22:15.380 ⇒ 00:22:20.369 Samuel Roberts: So all that information should be there, we just kind of have to start processing it so it’s like a usable transcript.
238 00:22:21.330 ⇒ 00:22:23.710 Samuel Roberts: And then…
239 00:22:24.190 ⇒ 00:22:34.969 Samuel Roberts: probably do, like, a summary as well for Evolve eventually, and for us to kind of figure out what people are talking about and match that to, like, Andy’s stuff eventually.
240 00:22:34.970 ⇒ 00:22:42.050 Casie Aviles: I see. So, we have to go through, like, multiple other steps in order to build this, right?
241 00:22:42.720 ⇒ 00:22:50.439 Samuel Roberts: Yeah. Exactly, and that’s what I’ll… I’ll put all that together. I think, like, this kind of comes from the,
242 00:22:51.390 ⇒ 00:22:52.800 Samuel Roberts: Like, up to…
243 00:22:53.100 ⇒ 00:22:58.339 Samuel Roberts: Here, I think, is some of the metadata stuff, so, like, that’s what you get from the first pass.
244 00:22:59.020 ⇒ 00:23:06.170 Samuel Roberts: And then this downloaded JSON is me just adding on the stuff that we downloaded for that specific call.
245 00:23:06.170 ⇒ 00:23:06.790 Casie Aviles: Hmm.
246 00:23:07.200 ⇒ 00:23:11.989 Samuel Roberts: And you can see it’s, like, a lot like that, it’s all the way down to here. And so,
247 00:23:12.320 ⇒ 00:23:16.880 Samuel Roberts: But, like I said, I found that some of these weren’t,
248 00:23:17.850 ⇒ 00:23:25.720 Samuel Roberts: Let’s actually look at this one real quick. Good morning, thank you for holding, you’ve reached the law… it’s probably law and department, but it doesn’t get it perfect every time either.
249 00:23:25.720 ⇒ 00:23:26.190 Casie Aviles: Yeah, it’s there.
250 00:23:26.190 ⇒ 00:23:32.399 Samuel Roberts: transcription. So, you see that, good morning, and then here, it’s like, yes, ma’am, Kara, I sure can, what’s your address?
251 00:23:34.050 ⇒ 00:23:39.149 Samuel Roberts: So that’s the… oh my goodness, I completely forgot about that. This is only half the conversation.
252 00:23:40.040 ⇒ 00:23:44.890 Casie Aviles: Oh… Is there, like, a particular reason why we have just.
253 00:23:44.890 ⇒ 00:23:48.779 Samuel Roberts: Yeah, I think so. I think it’s just the way it did the transcription.
254 00:23:48.930 ⇒ 00:23:57.950 Samuel Roberts: it… Like, yes, of course, and then here, let’s see… So this was… Let’s just look for…
255 00:23:59.180 ⇒ 00:24:03.790 Samuel Roberts: The agent name here is like, good morning, thank you…
256 00:24:05.760 ⇒ 00:24:10.139 Samuel Roberts: And your last name. Yeah, I had to, like, kind of see that each of these…
257 00:24:10.480 ⇒ 00:24:11.880 Samuel Roberts: Where’s the call?
258 00:24:13.410 ⇒ 00:24:18.130 Samuel Roberts: call ID, There’s gonna be, kind of, two of these.
259 00:24:18.950 ⇒ 00:24:20.259 Samuel Roberts: So here’s another one.
260 00:24:20.430 ⇒ 00:24:22.919 Samuel Roberts: And so you have to eventually match them up.
261 00:24:23.150 ⇒ 00:24:26.810 Samuel Roberts: Which gets annoying, but once we figured it out.
262 00:24:26.960 ⇒ 00:24:31.340 Samuel Roberts: once I figured it out, it wasn’t crazy to make it work. I’m just trying to see if I can show you the…
263 00:24:31.880 ⇒ 00:24:35.739 Samuel Roberts: Good morning, thank you for choosing the Law Department at ABC. My name is Michelle, how may I help you?
264 00:24:36.470 ⇒ 00:24:40.569 Samuel Roberts: I’m trying to see if there’s anything here that’ll show the… be in your area.
265 00:24:42.240 ⇒ 00:24:46.890 Samuel Roberts: Yeah, there’s definitely a… maybe it’s this one, filtered metadata…
266 00:24:48.120 ⇒ 00:24:53.649 Samuel Roberts: Okay, yeah, this is a good example here, so… This is, like, filtered,
267 00:24:55.130 ⇒ 00:25:02.380 Samuel Roberts: by the fact that, like, this ID… Is the same as…
268 00:25:02.980 ⇒ 00:25:04.859 Samuel Roberts: The one right below it, right?
269 00:25:06.050 ⇒ 00:25:09.580 Samuel Roberts: And so, when we get to further down…
270 00:25:13.650 ⇒ 00:25:17.009 Samuel Roberts: Hmm… I’m just trying to show you where it…
271 00:25:17.780 ⇒ 00:25:22.440 Samuel Roberts: Olive Garden agent ID channel… yeah, I see it here, it is, Channel Right.
272 00:25:23.450 ⇒ 00:25:24.790 Samuel Roberts: Channel left.
273 00:25:26.010 ⇒ 00:25:26.810 Casie Aviles: Hmm.
274 00:25:27.420 ⇒ 00:25:32.539 Samuel Roberts: And so that’s where it is, I don’t know if I’ve added it here or not.
275 00:25:33.980 ⇒ 00:25:37.339 Samuel Roberts: But, like, you see, like, it’s coming from the same recording file, right?
276 00:25:39.610 ⇒ 00:25:46.740 Samuel Roberts: it used Whisper, we saw, so tenant ID, agent name, so it’s the same agent, inbound, same queue.
277 00:25:47.030 ⇒ 00:25:52.739 Samuel Roberts: Same start point, but different word counts, because one is the customer, and one is the agent.
278 00:25:54.900 ⇒ 00:25:57.509 Samuel Roberts: I’m just trying to see if this has it here.
279 00:25:58.030 ⇒ 00:25:59.270 Samuel Roberts: Channel name…
280 00:26:00.200 ⇒ 00:26:06.030 Samuel Roberts: Old duration. Transfer from, this is the other thing. Remember I was saying that we see the reception calls and everything, too?
281 00:26:06.030 ⇒ 00:26:06.670 Casie Aviles: Yeah.
282 00:26:07.510 ⇒ 00:26:10.370 Samuel Roberts: This shows you which call it came from, because it’s…
283 00:26:10.370 ⇒ 00:26:11.000 Casie Aviles: Probably not.
284 00:26:11.000 ⇒ 00:26:12.430 Samuel Roberts: them together… oops, sorry.
285 00:26:12.430 ⇒ 00:26:12.930 Casie Aviles: Let me see…
286 00:26:12.930 ⇒ 00:26:24.160 Samuel Roberts: transfer to queue, so there’s a lot of information here that I was trying to figure out as I was doing it, and I have a better understanding now after being on that call with Evolve and ABC about the different queues and stuff.
287 00:26:24.910 ⇒ 00:26:33.009 Samuel Roberts: But I’m just trying to see, this goes forever, transcript… yeah, so this is just the metadata that you get from each one. But, my point is that there’s two of them for each call.
288 00:26:33.920 ⇒ 00:26:34.830 Casie Aviles: Hmm. So…
289 00:26:35.300 ⇒ 00:26:40.160 Samuel Roberts: It’s a little, you know… they have individual IDs, because they’re separate objects.
290 00:26:41.170 ⇒ 00:26:45.449 Samuel Roberts: But the object name, if we see right here…
291 00:26:45.450 ⇒ 00:26:46.470 Casie Aviles: Same thing.
292 00:26:46.470 ⇒ 00:26:47.839 Samuel Roberts: Is the same, and then…
293 00:26:49.080 ⇒ 00:26:59.210 Samuel Roberts: There’s another one, there’s another one, and there’s another one. I don’t remember if I filtered all this right. I don’t know what this file is offhand, but it’s just a lot, and we gotta kind of stitch them together.
294 00:26:59.870 ⇒ 00:27:04.699 Samuel Roberts: So, like I said, I just want to give you kind of an overview. I will get this together…
295 00:27:04.960 ⇒ 00:27:09.550 Samuel Roberts: In a better, state as part of that first ticket.
296 00:27:09.820 ⇒ 00:27:15.229 Samuel Roberts: But effectively, yeah, I can even put together a diagram, probably, that will help, like…
297 00:27:15.390 ⇒ 00:27:17.250 Samuel Roberts: My idea for the pipeline.
298 00:27:17.760 ⇒ 00:27:24.849 Casie Aviles: Okay, yeah, that would be helpful. But this is good, like, you know, I was able to understand at least a high level of how it’s.
299 00:27:24.850 ⇒ 00:27:34.129 Samuel Roberts: Okay, yeah, I mean, honestly, like, again, it’s been a while since I looked at it, so I apologize if it’s not clear enough, but it is… there’s several steps and little edge cases everywhere.
300 00:27:35.730 ⇒ 00:27:40.780 Samuel Roberts: And what I had been using, because it’s… I like using Bun when I’m just doing simple script stuff.
301 00:27:41.730 ⇒ 00:27:44.870 Samuel Roberts: Because I can just run TypeScript that way.
302 00:27:45.590 ⇒ 00:27:51.199 Samuel Roberts: But… I was also using Node, so I was building it with a build step.
303 00:27:51.350 ⇒ 00:27:54.640 Samuel Roberts: Which might be overkill, but…
304 00:27:54.900 ⇒ 00:27:57.700 Samuel Roberts: We do need to also… this was just rough.
305 00:27:58.100 ⇒ 00:28:00.699 Samuel Roberts: Scripts, so we can probably reuse some of this stuff.
306 00:28:01.130 ⇒ 00:28:04.820 Samuel Roberts: But we do need to put it into kind of a more of a… structured.
307 00:28:07.520 ⇒ 00:28:13.069 Samuel Roberts: either, like, a CLI that an agent can run, or a cron job can run.
308 00:28:13.520 ⇒ 00:28:15.270 Samuel Roberts: Or,
309 00:28:15.850 ⇒ 00:28:20.859 Samuel Roberts: Just a, probably, that’s probably the best thing, just a function that can take in time inputs, maybe.
310 00:28:21.010 ⇒ 00:28:23.949 Samuel Roberts: And that way it can run, like, every day and put in the new stuff.
311 00:28:25.030 ⇒ 00:28:30.340 Casie Aviles: Yeah, yeah, that’s, like, the goal, right? The state that we wanted to be in.
312 00:28:30.920 ⇒ 00:28:36.669 Samuel Roberts: Yeah, yeah, so I think my idea for the end goal is basically, yeah, there’ll be, like, a cron job that runs, you know.
313 00:28:37.040 ⇒ 00:28:49.149 Samuel Roberts: I don’t know exactly, and the volume of data here is a little, I don’t quite remember the scale, but it’s a lot, so I’m thinking running it every week, like, I think is kind of what’s outlined, might be…
314 00:28:50.190 ⇒ 00:28:52.790 Samuel Roberts: Too much at once, and just take a long time.
315 00:28:53.510 ⇒ 00:28:58.240 Samuel Roberts: So maybe once a day, you know, middle of the night or something.
316 00:28:59.540 ⇒ 00:29:04.379 Samuel Roberts: we can run the last day, because even that, I think when I was… like, here I was trying to do…
317 00:29:05.280 ⇒ 00:29:08.980 Samuel Roberts: just January 2026, and this has…
318 00:29:11.330 ⇒ 00:29:16.020 Samuel Roberts: Over 30,000 lines, so that’s about 15,000 calls, roughly.
319 00:29:16.750 ⇒ 00:29:21.780 Samuel Roberts: But, remember, some of these are related to each other.
320 00:29:22.000 ⇒ 00:29:24.039 Samuel Roberts: In addition to being doubled?
321 00:29:25.160 ⇒ 00:29:33.539 Samuel Roberts: So, there’s a little bit of, like, we might have to map out the whole queue flow, we might have to figure that out, and then we can stitch the whole transcript together kind of thing.
322 00:29:35.080 ⇒ 00:29:40.460 Samuel Roberts: little more exploration to do, but overall, like, let me actually see if I can get the BigQuery stuff.
323 00:29:42.760 ⇒ 00:29:46.300 Samuel Roberts: working. So let me get into there.
324 00:29:47.680 ⇒ 00:29:53.250 Samuel Roberts: BigQuery… Trying to remember the best way to…
325 00:29:53.900 ⇒ 00:29:56.010 Samuel Roberts: No, that’s not the account I want, I want it.
326 00:30:03.890 ⇒ 00:30:15.590 Samuel Roberts: So then, in here… In the BigQuery… We’re not any…
327 00:30:16.020 ⇒ 00:30:17.480 Samuel Roberts: Can’t remember which one I did here.
328 00:30:18.210 ⇒ 00:30:19.040 Samuel Roberts: Mmm…
329 00:30:23.080 ⇒ 00:30:26.670 Samuel Roberts: Analytics… I thought there was something here, date range…
330 00:30:28.400 ⇒ 00:30:29.529 Casie Aviles: Oh, the… that’s…
331 00:30:29.530 ⇒ 00:30:35.379 Samuel Roberts: Oh, it’s just a query, right, right, now I’m saying, now I’m realizing what I’m looking at. Okay, yeah, that’s recent, I just want to go to datasets, sorry.
332 00:30:35.680 ⇒ 00:30:36.270 Casie Aviles: I hate this.
333 00:30:36.270 ⇒ 00:30:39.890 Samuel Roberts: Okay, so then this becomes the,
334 00:30:41.920 ⇒ 00:30:44.259 Samuel Roberts: Test dataset… are there any dates here I can see?
335 00:30:46.010 ⇒ 00:30:53.920 Samuel Roberts: I’m just gonna, rock transcripts, maybe? Yeah, okay. So this, again, this is me, like, over a month ago,
336 00:30:54.690 ⇒ 00:30:58.800 Samuel Roberts: just trying to figure out how best to get stuff into BigQuery, so…
337 00:30:59.110 ⇒ 00:31:06.049 Samuel Roberts: you can see, all I was doing was dumping the metadata and the downloaded JSON.
338 00:31:06.500 ⇒ 00:31:06.880 Casie Aviles: Okay.
339 00:31:06.880 ⇒ 00:31:07.360 Samuel Roberts: So…
340 00:31:07.360 ⇒ 00:31:08.010 Casie Aviles: Oh, okay.
341 00:31:08.090 ⇒ 00:31:11.550 Samuel Roberts: At the time, I was thinking we should process it.
342 00:31:12.500 ⇒ 00:31:16.270 Samuel Roberts: And that’s why I have some of those scripts to, like, generate a transcript and stuff.
343 00:31:16.730 ⇒ 00:31:21.219 Samuel Roberts: But Utam said, just get it into BigQuery, and then we can do all the kind of…
344 00:31:21.740 ⇒ 00:31:23.459 Samuel Roberts: Analysis we need.
345 00:31:24.980 ⇒ 00:31:30.889 Samuel Roberts: for what we need now, I think we probably want to do a little more than just dump this, right?
346 00:31:31.810 ⇒ 00:31:32.640 Casie Aviles: Hmm.
347 00:31:32.870 ⇒ 00:31:39.269 Samuel Roberts: Because this is basically the first call that we get, is all the metadata, some of which is already stored as columns here.
348 00:31:40.020 ⇒ 00:31:44.260 Samuel Roberts: And then this is that… Transcript by word thing.
349 00:31:45.450 ⇒ 00:31:52.149 Samuel Roberts: So, but as you can also see here, like, this is the same as this, this is right and left, right, left and right, left and right, like…
350 00:31:52.380 ⇒ 00:31:54.589 Samuel Roberts: So, this was me just dumping the data.
351 00:31:54.880 ⇒ 00:31:55.329 Casie Aviles: I think.
352 00:31:55.330 ⇒ 00:31:57.729 Samuel Roberts: I think we should do a little more work.
353 00:31:58.260 ⇒ 00:32:00.119 Samuel Roberts: with the LLM ahead of time.
354 00:32:01.740 ⇒ 00:32:11.309 Samuel Roberts: That being said, we could do some of it just in BigQuery. I know less BigQuery than I do, like, TypeScript, so I’m not sure where the best place for that is.
355 00:32:11.880 ⇒ 00:32:18.800 Samuel Roberts: In terms of where in the process it should go. I think storing the raw data is also just good to have, but…
356 00:32:19.050 ⇒ 00:32:21.440 Samuel Roberts: I didn’t mean to do that, I meant to go…
357 00:32:22.740 ⇒ 00:32:27.419 Samuel Roberts: That was the raw transcripts, and then I think we… oh, I keep hitting the wrong button, sorry about that.
358 00:32:27.770 ⇒ 00:32:28.299 Casie Aviles: No problem.
359 00:32:28.300 ⇒ 00:32:31.769 Samuel Roberts: I forget the back button goes all the way back.
360 00:32:33.210 ⇒ 00:32:35.490 Samuel Roberts: Is this it? That’s not it.
361 00:32:39.150 ⇒ 00:32:44.220 Samuel Roberts: But… I think it was… I did more than just that, but maybe it’s just…
362 00:32:45.540 ⇒ 00:32:47.460 Samuel Roberts: Yeah, it’s just a thousand, I think.
363 00:32:48.990 ⇒ 00:32:53.239 Samuel Roberts: Yeah, okay. So, I was just getting stuff in here, and this is, again.
364 00:32:54.810 ⇒ 00:32:58.859 Samuel Roberts: It was ingested 12-16, but this is literally January 1st.
365 00:32:58.860 ⇒ 00:33:00.409 Casie Aviles: If you go to the…
366 00:33:00.780 ⇒ 00:33:05.189 Samuel Roberts: If we go to the very beginning, or the very end, if we can, I guess let’s just jump all the way…
367 00:33:05.730 ⇒ 00:33:11.260 Samuel Roberts: This is all the way through… part of January 2nd.
368 00:33:16.100 ⇒ 00:33:20.319 Samuel Roberts: So, it’s a thousand entries, and that’s barely a… barely a day, you know?
369 00:33:21.200 ⇒ 00:33:22.270 Casie Aviles: I see.
370 00:33:22.880 ⇒ 00:33:26.170 Samuel Roberts: a lot to process. I think there’s a little bit to think about in terms of
371 00:33:26.820 ⇒ 00:33:33.249 Samuel Roberts: The overall architecture, which I have ideas about and the scripts kind of follow, but needs to be hardened.
372 00:33:33.610 ⇒ 00:33:40.799 Samuel Roberts: And then, where we do some of the processing for, like, summaries, or…
373 00:33:41.510 ⇒ 00:33:43.930 Samuel Roberts: Pulling out insights and things like that, so…
374 00:33:44.760 ⇒ 00:33:49.590 Samuel Roberts: I’m kind of thinking we’ll store the raw data just to have it, but we also probably want a, like.
375 00:33:49.870 ⇒ 00:33:53.439 Samuel Roberts: Stitch Together entry for each of these.
376 00:33:55.410 ⇒ 00:34:03.050 Samuel Roberts: And then probably a stitched-together entry for, like, the whole transfer process, from, like, reception to CSR to another CSR, however that goes.
377 00:34:05.190 ⇒ 00:34:08.949 Samuel Roberts: But like I said, I will put together something, I have a ticket there,
378 00:34:09.199 ⇒ 00:34:13.090 Samuel Roberts: And hopefully that will be a little more clear,
379 00:34:14.190 ⇒ 00:34:16.869 Samuel Roberts: And then the agent, hopefully Cursor can just run with that.
380 00:34:18.500 ⇒ 00:34:19.210 Casie Aviles: Okay, okay.
381 00:34:19.889 ⇒ 00:34:21.090 Samuel Roberts: But that’s the idea.
382 00:34:21.270 ⇒ 00:34:22.690 Samuel Roberts: So that’s kind of my brain dump.
383 00:34:23.489 ⇒ 00:34:27.729 Casie Aviles: Yeah, okay, so, yeah, this is, this is helpful, yeah, thank you, Sam. Okay.
384 00:34:27.730 ⇒ 00:34:32.730 Samuel Roberts: Yeah, yeah. Sorry, I should have had this ticket probably done already, but I was kind of busy yesterday, so…
385 00:34:32.730 ⇒ 00:34:40.190 Casie Aviles: Yeah, no problem. I think it’s fine, like, I don’t think it’s urgent right now, right? It’s just due today, but I don’t think.
386 00:34:40.190 ⇒ 00:34:49.430 Samuel Roberts: Yeah, I think, well, partly because when the tickets got in, I think I had already had due dates set, so I appreciate that you’re noticing that and worrying about it, but yeah.
387 00:34:49.870 ⇒ 00:34:55.250 Samuel Roberts: I think Pranav has some stuff to do, I have some stuff to do, and then I’m hoping…
388 00:34:55.489 ⇒ 00:34:57.330 Samuel Roberts: We can kind of hit the ground running.
389 00:34:57.720 ⇒ 00:35:01.539 Samuel Roberts: He and I have to talk, like, allocation stuff on Monday as well.
390 00:35:02.080 ⇒ 00:35:02.860 Casie Aviles: Okay.
391 00:35:03.210 ⇒ 00:35:06.729 Samuel Roberts: Because, like, between… he was doing a bunch of eating, kind of getting it up and running.
392 00:35:06.970 ⇒ 00:35:10.859 Samuel Roberts: But we might… Need some work there, too.
393 00:35:10.990 ⇒ 00:35:14.980 Samuel Roberts: That you and I might be jumping into a little bit here and there, especially with Mustafa out.
394 00:35:15.440 ⇒ 00:35:16.870 Casie Aviles: Yeah.
395 00:35:16.870 ⇒ 00:35:25.510 Samuel Roberts: So, I’m thinking we’ll have a better picture Monday, but if I can get this out, at least you can start exploring, because it might take a little bit to…
396 00:35:26.840 ⇒ 00:35:34.259 Samuel Roberts: Either… map it out, figure it out, use the agent. Like, definitely, I don’t know,
397 00:35:34.780 ⇒ 00:35:39.390 Samuel Roberts: you know, I was using Codex for this, and I was… I basically wrote no code.
398 00:35:40.280 ⇒ 00:35:44.890 Samuel Roberts: So that… yeah, this is the first time I just let things run, but again, I was just exploring.
399 00:35:45.100 ⇒ 00:35:46.810 Samuel Roberts: So,
400 00:35:47.290 ⇒ 00:35:55.539 Samuel Roberts: we probably want to be a little more in the code, maybe, but I’m also… I want to start thinking about what we can hand off to cloud agents and let them try to put together and…
401 00:35:55.870 ⇒ 00:35:57.019 Samuel Roberts: And test out.
402 00:35:58.010 ⇒ 00:36:01.500 Casie Aviles: Yeah, I think, for me, I would, yeah, I would also like…
403 00:36:01.680 ⇒ 00:36:12.739 Casie Aviles: to see if it could, like, handle one ticket and then get it completed. But I think… so, for us, do we… where do we come in there? Like, do we… do we do, like, the testing?
404 00:36:15.350 ⇒ 00:36:21.729 Samuel Roberts: Yeah, I think… let me… let me see, I forget exactly the tickets that I put together for this, so…
405 00:36:21.840 ⇒ 00:36:25.050 Samuel Roberts: So yeah, the first one… is…
406 00:36:25.830 ⇒ 00:36:30.410 Samuel Roberts: document it all, which is kind of what I need to do with the stuff already.
407 00:36:30.760 ⇒ 00:36:35.510 Samuel Roberts: And then that blocks the pull and validate one week of transcripts.
408 00:36:35.830 ⇒ 00:36:40.139 Samuel Roberts: So that, I think, I had said, was human plus AI.
409 00:36:44.810 ⇒ 00:36:51.019 Samuel Roberts: But I don’t… that is also blocking build department CSI metadata mapping, yeah. So there’s… there’s a…
410 00:36:51.160 ⇒ 00:36:58.470 Samuel Roberts: These tickets are… relatively… have a decent amount of context, but I think…
411 00:36:59.130 ⇒ 00:37:03.749 Samuel Roberts: we’ll kind of see the limit of how much we can push to AI.
412 00:37:03.750 ⇒ 00:37:04.080 Casie Aviles: Okay.
413 00:37:04.080 ⇒ 00:37:07.630 Samuel Roberts: I… I think my gut is that there will be…
414 00:37:08.750 ⇒ 00:37:13.139 Samuel Roberts: More local cursor work while we’re developing.
415 00:37:13.300 ⇒ 00:37:14.170 Samuel Roberts: And then…
416 00:37:14.170 ⇒ 00:37:15.080 Casie Aviles: Yeah.
417 00:37:15.080 ⇒ 00:37:18.320 Samuel Roberts: Once we kind of have the system in place.
418 00:37:18.510 ⇒ 00:37:21.579 Samuel Roberts: We can probably throw a little bit more to the cloud agents.
419 00:37:24.190 ⇒ 00:37:27.130 Samuel Roberts: But we still have to get the environment and stuff set up for that anyway, so…
420 00:37:27.540 ⇒ 00:37:32.689 Samuel Roberts: I think my thought is that we can use cursor and agent mode a little bit more.
421 00:37:32.900 ⇒ 00:37:36.889 Samuel Roberts: Especially if I can get, like, good documentation that we can feed in.
422 00:37:37.740 ⇒ 00:37:43.260 Samuel Roberts: And then we’ll just kind of run the agents, see how it does, test it out.
423 00:37:43.500 ⇒ 00:37:49.440 Samuel Roberts: Make sure the parts all fit together, and then figure out, like, where to… deploy this.
424 00:37:49.720 ⇒ 00:37:52.110 Samuel Roberts: So that the cron can run once we have that.
425 00:37:54.340 ⇒ 00:37:55.070 Samuel Roberts: Yeah.
426 00:37:55.390 ⇒ 00:38:01.369 Casie Aviles: Okay, yeah, sounds good. Yeah, I think that’s all I had, but yeah, thank you, Sam, for the…
427 00:38:01.550 ⇒ 00:38:02.189 Casie Aviles: Okay. Even if…
428 00:38:02.190 ⇒ 00:38:09.029 Samuel Roberts: Yeah, sorry it’s not quite more structured yet. Yeah, yeah, totally, totally. I will get more together, and hopefully have more for you in the next few hours, once I get to that.
429 00:38:09.810 ⇒ 00:38:10.350 Casie Aviles: Okay.
430 00:38:11.650 ⇒ 00:38:13.429 Casie Aviles: Yeah. Alright, thank you.
431 00:38:13.970 ⇒ 00:38:15.249 Samuel Roberts: Alright, thanks, Casey. Appreciate it.
432 00:38:15.280 ⇒ 00:38:21.110 Casie Aviles: I guess I may just have, like, some PRs later, but… Yeah.
433 00:38:21.110 ⇒ 00:38:24.929 Samuel Roberts: Right, yeah, what if you… you were doing, the feedback stuff?
434 00:38:25.930 ⇒ 00:38:30.000 Casie Aviles: It’s mostly just… Yeah, it’s mostly just…
435 00:38:30.190 ⇒ 00:38:34.809 Casie Aviles: Making sure the… what do you call this? That the prompts are working.
436 00:38:35.330 ⇒ 00:38:41.419 Casie Aviles: And it’s just mostly getting data that’s not showing up, to show up, basically.
437 00:38:42.830 ⇒ 00:38:43.420 Samuel Roberts: Okay.
438 00:38:43.850 ⇒ 00:38:45.000 Casie Aviles: Yeah.
439 00:38:45.760 ⇒ 00:38:49.480 Samuel Roberts: Yeah, I would say, are there PRs in there right now, or…
440 00:38:49.950 ⇒ 00:38:51.159 Samuel Roberts: Or they will be.
441 00:38:51.440 ⇒ 00:38:55.179 Casie Aviles: No, they will be, like, one is for…
442 00:38:55.880 ⇒ 00:39:01.530 Casie Aviles: Yeah, it was a script that I worked on, which was related to categorization, but yeah.
443 00:39:01.920 ⇒ 00:39:05.600 Samuel Roberts: Cool, okay. Alright, yeah, if I don’t… Just ping me when they’re…
444 00:39:05.750 ⇒ 00:39:09.259 Samuel Roberts: in there, in case I missed the notification.
445 00:39:09.630 ⇒ 00:39:12.920 Samuel Roberts: And I’ll try to get them in as quick as I can, so…
446 00:39:14.040 ⇒ 00:39:14.770 Casie Aviles: Alright.
447 00:39:15.680 ⇒ 00:39:16.500 Samuel Roberts: Alright.
448 00:39:17.010 ⇒ 00:39:17.889 Samuel Roberts: Cool, cool.
449 00:39:18.020 ⇒ 00:39:18.730 Samuel Roberts: Let me know if you need it.
450 00:39:18.730 ⇒ 00:39:19.100 Casie Aviles: Thank you.
451 00:39:19.100 ⇒ 00:39:21.389 Samuel Roberts: I’ll be here, ping me, ping me whenever you need.
452 00:39:21.790 ⇒ 00:39:22.950 Casie Aviles: Okay. Thank you, Sam.
453 00:39:22.950 ⇒ 00:39:24.679 Samuel Roberts: Alright, yeah, thanks, Luffy.
454 00:39:24.940 ⇒ 00:39:25.700 Samuel Roberts: Bye.