Skip to content

Commit 83efc32

Browse files
committed
enhacement(shopify): Add more context to the chunk_html of product
reviews. + bugfix: don't index title in the tagset
1 parent eb36f9c commit 83efc32

2 files changed

Lines changed: 20 additions & 9 deletions

File tree

clients/trieve-shopify-extension/app/api/judgeMe.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,30 @@
1-
import { sdkFromKey, validateTrieveAuth } from "app/auth";
1+
import { validateTrieveAuth } from "app/auth";
22
import { getTrieveBaseUrlEnv } from "app/env.server";
33
import { tryCatch } from "app/loaders";
44
import { Hono } from "hono";
55
import { nanoid } from "nanoid";
66
import { ChunkReqPayload } from "trieve-ts-sdk";
77

8-
type Review = {
8+
type JudgeMeReviewer = {
9+
id: string;
10+
email: string;
11+
name: string;
12+
external_id: number;
13+
phone?: string;
14+
tags?: string[];
15+
accepts_marketing?: boolean;
16+
unsubscribed_at?: string;
17+
};
18+
19+
type JudgeMeReview = {
920
id: number;
1021
title: string;
1122
body: string;
1223
rating: number;
1324
product_external_id: number;
14-
// reviewer: [Object];
25+
reviewer: JudgeMeReviewer;
1526
source: string;
16-
curated: string;
27+
curated: "not-yet" | "ok" | "spam";
1728
published: boolean;
1829
hidden: boolean;
1930
verified: string;
@@ -151,7 +162,6 @@ export const judgeMe = new Hono()
151162
let page = 1;
152163
const perPage = 100;
153164
let isDone = false;
154-
155165
while (!isDone) {
156166
const params = new URLSearchParams({
157167
page: page.toString(),
@@ -177,7 +187,7 @@ export const judgeMe = new Hono()
177187
const reviews = (await response.json()) as {
178188
current_page: number;
179189
per_page: number;
180-
reviews: Review[];
190+
reviews: JudgeMeReview[];
181191
};
182192

183193
if (reviews.reviews.length === 0) {
@@ -186,6 +196,7 @@ export const judgeMe = new Hono()
186196
}
187197

188198
const chunks = reviews.reviews.map(transformReviewToChunk);
199+
console.log(`Sending ${JSON.stringify(chunks)} chunks to Trieve`);
189200

190201
fetch(`${getTrieveBaseUrlEnv()}/api/chunk`, {
191202
method: "POST",
@@ -259,10 +270,11 @@ export const judgeMe = new Hono()
259270
return c.json({ reviewCount: 0 });
260271
});
261272

262-
const transformReviewToChunk = (review: Review): ChunkReqPayload => {
273+
const transformReviewToChunk = (review: JudgeMeReview): ChunkReqPayload => {
263274
return {
264-
chunk_html: review.title + "\n\n" + review.body,
275+
chunk_html: `This is a Review from: ${review.reviewer.name} from ${review.created_at}. This review was given a rating of ${review.rating}/5.\n\n<h1>${review.title}</h1>\n\n<p>${review.body}.</p>`,
265276
group_tracking_ids: [review.product_external_id.toString()],
277+
upsert_by_tracking_id: true,
266278
metadata: {
267279
rating: review.rating,
268280
},

clients/trieve-shopify-extension/app/processors/getProducts.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@ export function createChunkFromProductWebhook(
193193
if (typeof tags === "string") {
194194
tags = tags.split(",").map((tag) => tag.trim());
195195
}
196-
tags.push(...variantTitle.split(" / "));
197196

198197
if (crawlOptions.scrape_options?.tag_regexes) {
199198
const tagMatches = new Set<string>();

0 commit comments

Comments
 (0)