From cf8f7d0ce3987cad0a8069941b26bceb802810a2 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Wed, 29 Jan 2025 12:36:13 -0300 Subject: [PATCH] Update analyzeSchemaAndPrompt.ts (#1108) --- .../completions/analyzeSchemaAndPrompt.ts | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/apps/api/src/lib/extract/completions/analyzeSchemaAndPrompt.ts b/apps/api/src/lib/extract/completions/analyzeSchemaAndPrompt.ts index b44fc5cf..1ed7decf 100644 --- a/apps/api/src/lib/extract/completions/analyzeSchemaAndPrompt.ts +++ b/apps/api/src/lib/extract/completions/analyzeSchemaAndPrompt.ts @@ -6,6 +6,7 @@ import { buildAnalyzeSchemaUserPrompt, } from "../build-prompts"; import OpenAI from "openai"; +import { logger } from "../../../lib/logger"; const openai = new OpenAI(); export async function analyzeSchemaAndPrompt( @@ -75,20 +76,34 @@ export async function analyzeSchemaAndPrompt( }, }); - const { isMultiEntity, multiEntityKeys, reasoning, keyIndicators } = - checkSchema.parse(result.choices[0].message.parsed); - const tokenUsage: TokenUsage = { promptTokens: result.usage?.prompt_tokens ?? 0, completionTokens: result.usage?.completion_tokens ?? 0, totalTokens: result.usage?.total_tokens ?? 0, model: model, }; + + try { + const { isMultiEntity, multiEntityKeys, reasoning, keyIndicators } = + checkSchema.parse(result.choices[0].message.parsed); + return { + isMultiEntity, + multiEntityKeys, + reasoning, + keyIndicators, + tokenUsage, + }; + } catch (e) { + logger.warn("(analyzeSchemaAndPrompt) Error parsing schema analysis", { + error: e, + }); + } + return { - isMultiEntity, - multiEntityKeys, - reasoning, - keyIndicators, + isMultiEntity: false, + multiEntityKeys: [], + reasoning: "", + keyIndicators: [], tokenUsage, }; }