Función de ai-structured simplificada + tipado de la entrada
This commit is contained in:
@@ -9,6 +9,7 @@ import { createClient } from "npm:@supabase/supabase-js@2";
|
||||
import type { AIGeneratePlanInput } from "./types.ts";
|
||||
import { z } from "zod";
|
||||
import { systemPrompt } from "./prompts.ts";
|
||||
import { strict } from "node:assert";
|
||||
|
||||
Deno.serve(async (req) => {
|
||||
if (req.method === "OPTIONS") {
|
||||
@@ -136,24 +137,25 @@ Deno.serve(async (req) => {
|
||||
- Descripción del enfoque: ${payload.iaConfig.descripcionEnfoque}
|
||||
- Notas adicionales: ${payload.iaConfig.notasAdicionales ?? "Ninguna"}`;
|
||||
const aiStructuredPayload = {
|
||||
response: {
|
||||
input: [
|
||||
{ role: "system", content: systemPrompt },
|
||||
{ role: "user", content: userPrompt },
|
||||
],
|
||||
model: "gpt-5-nano",
|
||||
input: [
|
||||
{ role: "system", content: systemPrompt },
|
||||
{ role: "user", content: userPrompt },
|
||||
],
|
||||
text: {
|
||||
format: {
|
||||
type: "json_schema",
|
||||
name: `${estructuraPlan?.nombre}`,
|
||||
schema: estructuraPlan?.definicion,
|
||||
strict: true,
|
||||
},
|
||||
},
|
||||
structured: estructuraPlan.definicion,
|
||||
references: {
|
||||
openaiFileIds: payload.iaConfig.archivosReferencia,
|
||||
vectorStoreIds: payload.iaConfig.repositoriosIds,
|
||||
},
|
||||
usarMCP: Boolean(payload.iaConfig?.usarMCP),
|
||||
};
|
||||
|
||||
const aiStructuredFormData = new FormData();
|
||||
aiStructuredFormData.append("payload", JSON.stringify(aiStructuredPayload));
|
||||
aiStructuredFormData.append("options", JSON.stringify(aiStructuredPayload));
|
||||
for (const file of payload.archivosAdjuntos ?? []) {
|
||||
aiStructuredFormData.append("archivos", file);
|
||||
aiStructuredFormData.append("files", file);
|
||||
}
|
||||
|
||||
const { data: aiJson, error } = await supabaseService.functions.invoke(
|
||||
|
||||
Reference in New Issue
Block a user