@@ -4,7 +4,7 @@ import { Tables } from "./supabase.types.generated";
44import { supabase } from "./supabase.server" ;
55import { slog } from "../modules/observability.server" ;
66import { authorIdSchema } from "./author.shape" ;
7- import { groupBy , uniqBy } from "es-toolkit" ;
7+ import { groupBy , omit , uniqBy } from "es-toolkit" ;
88import TTLCache from "@isaacs/ttlcache" ;
99import { format , hoursToMilliseconds } from "date-fns" ;
1010import { embed } from "ai" ;
@@ -199,12 +199,12 @@ export class PackageService {
199199 ] ) ;
200200
201201 if ( packageFTS . error ) {
202- slog . error ( "Error in searchPackages" , packageFTS . error ) ;
202+ slog . error ( "Error in searchPackages FTS " , packageFTS . error ) ;
203203 throw packageFTS . error ;
204204 }
205205
206206 if ( packageExact . error ) {
207- slog . error ( "Error in searchPackages" , packageExact . error ) ;
207+ slog . error ( "Error in searchPackages Exact " , packageExact . error ) ;
208208 throw packageExact . error ;
209209 }
210210
@@ -217,20 +217,38 @@ export class PackageService {
217217
218218 if ( embeddingSimilarity ) {
219219 if ( embeddingSimilarity . error ) {
220- slog . error ( "Error in searchPackages" , embeddingSimilarity . error ) ;
220+ slog . error (
221+ "Error in searchPackages Embeddings" ,
222+ embeddingSimilarity . error ,
223+ ) ;
221224 }
222225 }
223226
227+ // console.log(
228+ // "embeddingSimilarity",
229+ // embeddingSimilarity?.data?.map((x) => {
230+ // const { source_searchable_content, ...rest } = x;
231+ // return rest;
232+ // }),
233+ // );
234+
224235 // Prefer the exact match over the similarity match.
225236 // Therefore we filter out the similarity match if it's the same as the exact match.
226237 const sources = [
227- ...( embeddingFTS ?. data || [ ] ) ,
228238 ...( embeddingSimilarity ?. data || [ ] ) ,
229- ] . filter ( ( item ) => {
230- const hasExactMatch =
231- packageExact . data && packageExact . data . id === item . cran_package_id ;
232- return ! hasExactMatch ;
233- } ) ;
239+ ...( embeddingFTS ?. data || [ ] ) ,
240+ ]
241+ . filter ( ( item ) => {
242+ const hasExactMatch =
243+ packageExact . data && packageExact . data . id === item . cran_package_id ;
244+ return ! hasExactMatch ;
245+ } )
246+ . map ( ( item ) => {
247+ // Remove the source_searchable_content from the response
248+ // for now, as it's quite a lot of text data that's not
249+ // applied in the UI.
250+ return omit ( item , [ "source_searchable_content" ] ) ;
251+ } ) ;
234252
235253 const lexical = uniqBy ( packageFTS . data , ( item ) => item . id )
236254 . filter ( ( item ) => {
@@ -263,7 +281,7 @@ export class PackageService {
263281 . maybeSingle ( ) ;
264282
265283 if ( error || ! data ) {
266- slog . error ( "Error in searchPackages" , error ) ;
284+ slog . error ( "Error in searchPackages fetching package data " , error ) ;
267285 return null ;
268286 }
269287
0 commit comments