From e72a3693c1714dd6a78f3f5fc98ff7f676d9329e Mon Sep 17 00:00:00 2001 From: Kush Thaker Date: Tue, 9 Jul 2024 21:07:54 +0530 Subject: chore: add prettier config feat: improve error handling for long documents feat: add chunk id's to db --- apps/web/app/actions/doers.ts | 71 ++++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 31 deletions(-) (limited to 'apps/web') diff --git a/apps/web/app/actions/doers.ts b/apps/web/app/actions/doers.ts index 280ee244..6ce8c230 100644 --- a/apps/web/app/actions/doers.ts +++ b/apps/web/app/actions/doers.ts @@ -7,7 +7,6 @@ import { chatHistory, chatThreads, contentToSpace, - sessions, space, spacesAccess, storedContent, @@ -19,11 +18,9 @@ import { Tweet } from "react-tweet/api"; import { getMetaData } from "@/lib/get-metadata"; import { and, eq, inArray, sql } from "drizzle-orm"; import { LIMITS } from "@/lib/constants"; -import { z } from "zod"; -import { AddFromAPIType, ChatHistory } from "@repo/shared-types"; +import { ChatHistory } from "@repo/shared-types"; import { decipher } from "@/server/encrypt"; import { redirect } from "next/navigation"; -import { ensureAuth } from "../api/ensureAuth"; import { tweetToMd } from "@repo/shared-types/utils"; export const createSpace = async ( @@ -265,6 +262,40 @@ export const createMemory = async (input: { let contentId: number | undefined; + const response = (await vectorSaveResponse.json()) as { + status: string; + chunkedInput: string; + message?: string; + }; + + try { + if (response.status !== "ok") { + if ( + response.status === "error" && + response.message === "no chunks over 20" + ) { + return { + success: false, + data: 0, + error: + "We are unable to process documents this size just yet, try something smaller", + }; + } else { + return { + success: false, + data: 0, + error: `Failed to save to vector store. Backend returned error: ${response.message}`, + }; + } + } + } catch (e) { + return { + success: false, + data: 0, + error: `Failed to save to vector store. Backend returned error: ${e}`, + }; + } + const saveToDbUrl = (metadata.baseUrl.split("#supermemory-user-")[0] ?? metadata.baseUrl) + "#supermemory-user-" + @@ -275,7 +306,7 @@ export const createMemory = async (input: { const insertResponse = await db .insert(storedContent) .values({ - content: pageContent, + content: response.chunkedInput, title: metadata.title, description: metadata.description, url: saveToDbUrl, @@ -349,32 +380,10 @@ export const createMemory = async (input: { ); } - try { - const response = await vectorSaveResponse.json(); - - const expectedResponse = z.object({ status: z.literal("ok") }); - - const parsedResponse = expectedResponse.safeParse(response); - - if (!parsedResponse.success) { - return { - success: false, - data: 0, - error: `Failed to save to vector store. Backend returned error: ${parsedResponse.error.message}`, - }; - } - - return { - success: true, - data: 1, - }; - } catch (e) { - return { - success: false, - data: 0, - error: `Failed to save to vector store. Backend returned error: ${e}`, - }; - } + return { + success: true, + data: 1, + }; }; export const createChatThread = async ( -- cgit v1.2.3 From 0f4453616d9ba684fb53c359cf775718f4ba938b Mon Sep 17 00:00:00 2001 From: Kush Thaker Date: Wed, 10 Jul 2024 00:10:28 +0530 Subject: update Error messages and handling --- apps/web/app/actions/doers.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'apps/web') diff --git a/apps/web/app/actions/doers.ts b/apps/web/app/actions/doers.ts index 6ce8c230..fcbab0f8 100644 --- a/apps/web/app/actions/doers.ts +++ b/apps/web/app/actions/doers.ts @@ -270,15 +270,11 @@ export const createMemory = async (input: { try { if (response.status !== "ok") { - if ( - response.status === "error" && - response.message === "no chunks over 20" - ) { + if (response.status === "error") { return { success: false, data: 0, - error: - "We are unable to process documents this size just yet, try something smaller", + error: response.message, }; } else { return { -- cgit v1.2.3