|
import { LLMResponse } from "@/types" |
|
import { cleanJson } from "./cleanJson" |
|
|
|
export function dirtyLLMJsonParser(input: string): LLMResponse { |
|
|
|
if (input.includes("```")) { |
|
input = input.split("```")[0] |
|
} |
|
|
|
let jsonOrNot = cleanJson(input) |
|
|
|
const jsonData = JSON.parse(jsonOrNot) as LLMResponse |
|
|
|
const results = jsonData.map((item, i) => { |
|
let panel = i |
|
let caption = item.caption ? item.caption.trim() : '' |
|
let instructions = item.instructions ? item.instructions.trim() : '' |
|
if (!instructions && caption) { |
|
instructions = caption |
|
} |
|
if (!caption && instructions) { |
|
caption = instructions |
|
} |
|
return { panel, caption, instructions } |
|
}) |
|
|
|
return results |
|
} |