se agrega wh en asignaturas y se guardan campos correctamente y ademas se corrige incidencia Agregar contexto de la asignatura al chat #55
This commit is contained in:
@@ -3,7 +3,7 @@ import { corsHeaders, withCors } from "./lib/cors.ts";
|
||||
import { HttpError, jsonResponse } from "./lib/errors.ts";
|
||||
import { getOpenAI } from "./lib/openai.ts";
|
||||
import { getSupabaseServiceClient, requireUser } from "./lib/supabase.ts";
|
||||
import { assertUuid, pickSchemaFields, safePlanForPrompt,pickSchemaAsignaturaFields } from "./lib/plan.ts";
|
||||
import { assertUuid, pickSchemaFields, safePlanForPrompt,pickSchemaAsignaturaFields, safeAsignaturaForPrompt, getAsignaturaSystemPrompt } from "./lib/plan.ts";
|
||||
import { OpenAIService } from "../_shared/openai-service.ts";
|
||||
|
||||
type CreateBody = {
|
||||
@@ -309,8 +309,8 @@ app.post(`${prefix}/conversations/asignatura/:id/messages`, async (c) => {
|
||||
|
||||
const asignatura = (row as any).asignaturas;
|
||||
const definicion = asignatura?.estructuras_asignatura?.definicion;
|
||||
const isStructured = !!definicion && (body.campos?.length ?? 0) > 0;
|
||||
|
||||
const campos = body.campos ?? [];
|
||||
const isStructured = !!definicion && campos.length > 0;
|
||||
// 2. Insertar el mensaje en estado PROCESANDO (para que el front vea el spinner)
|
||||
const { data: mensajeInsertado, error: insertErr } = await supabase
|
||||
.from("asignatura_mensajes_ia")
|
||||
@@ -339,6 +339,8 @@ app.post(`${prefix}/conversations/asignatura/:id/messages`, async (c) => {
|
||||
additionalProperties: false
|
||||
};
|
||||
|
||||
|
||||
|
||||
// 4. Llamada asincrónica con background: true
|
||||
const aiResult = await svc.createStructuredResponse({
|
||||
conversation: row.openai_conversation_id,
|
||||
@@ -353,17 +355,12 @@ app.post(`${prefix}/conversations/asignatura/:id/messages`, async (c) => {
|
||||
text: {
|
||||
format: {
|
||||
type: "json_schema",
|
||||
name: isStructured ? "mejora_asignatura" : "respuesta_basica",
|
||||
name: "mejoras_asignatura",
|
||||
schema: schema
|
||||
}
|
||||
},
|
||||
input: [
|
||||
{
|
||||
role: "system",
|
||||
content: isStructured
|
||||
? `Asistente de asignatura. Datos: ${JSON.stringify(asignatura)}`
|
||||
: "Eres un experto en diseño curricular."
|
||||
},
|
||||
{ role: "system", content: getAsignaturaSystemPrompt(asignatura, campos) },
|
||||
{ role: "user", content: body.content },
|
||||
],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user