34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
// ./plan_mensajes_ia/index.ts
|
|
import { getSupabaseServiceClient } from "../_shared/supabase.ts";
|
|
|
|
export async function handlePlanMensajesResponse(response: any) {
|
|
const supabase = getSupabaseServiceClient();
|
|
const { mensaje_id, is_structured } = response.metadata;
|
|
|
|
// Extraer el texto de la respuesta (usando tu lógica de filtrado de output)
|
|
const outputText = response.output_text || ""; // Ajustar según cómo venga el objeto
|
|
const respuestaJSON = JSON.parse(outputText || "{}");
|
|
|
|
const is_refusal = !!respuestaJSON.is_refusal || respuestaJSON["is-refusal"] === true;
|
|
|
|
let recommendations = [];
|
|
if (is_structured) {
|
|
recommendations = Object.entries(respuestaJSON)
|
|
.filter(([k]) => k !== "ai-message" && k !== "is-refusal")
|
|
.map(([campo, valor]) => ({
|
|
campo_afectado: campo,
|
|
texto_mejora: valor,
|
|
aplicada: false,
|
|
}));
|
|
}
|
|
|
|
await supabase
|
|
.from("plan_mensajes_ia")
|
|
.update({
|
|
respuesta: respuestaJSON["ai-message"] || "",
|
|
propuesta: { recommendations },
|
|
is_refusal,
|
|
estado: "COMPLETADO",
|
|
})
|
|
.eq("id", mensaje_id);
|
|
} |