fix(bot): parse nested openai responses payloads

This commit is contained in:
2026-03-11 02:43:22 +04:00
parent 714d2a985d
commit 43285e590b
6 changed files with 246 additions and 25 deletions

View File

@@ -1,3 +1,5 @@
import { extractOpenAiResponseText, parseJsonFromResponseText } from './openai-responses'
export type PurchaseInterpretationDecision = 'purchase' | 'clarification' | 'not_purchase'
export interface PurchaseInterpretation {
@@ -133,17 +135,20 @@ export function createOpenAiPurchaseInterpreter(
}
const payload = (await response.json()) as {
output_text?: string
output_text?: string | null
output?: Array<{
content?: Array<{
text?: string | { value?: string | null } | null
}> | null
}> | null
}
if (!payload.output_text) {
const responseText = extractOpenAiResponseText(payload)
if (!responseText) {
return null
}
let parsedJson: OpenAiStructuredResult
try {
parsedJson = JSON.parse(payload.output_text) as OpenAiStructuredResult
} catch {
const parsedJson = parseJsonFromResponseText<OpenAiStructuredResult>(responseText)
if (!parsedJson) {
return null
}