diff --git a/supabase/functions/ai-generate-plan/index.ts b/supabase/functions/ai-generate-plan/index.ts index 1db2eef..f370b75 100644 --- a/supabase/functions/ai-generate-plan/index.ts +++ b/supabase/functions/ai-generate-plan/index.ts @@ -118,6 +118,10 @@ Deno.serve(async (req: Request): Promise => { SERVICE_ROLE_KEY, ); + // Model name controlled via env var (single use) + const AI_GENERATE_PLAN_MODELO = Deno.env.get("AI_GENERATE_PLAN_MODELO") ?? + "gpt-5-nano"; + const formData = await req.formData(); const validation = parseAndValidate(formData); if (!validation.success) { @@ -185,7 +189,7 @@ Deno.serve(async (req: Request): Promise => { : {}; const aiStructuredPayload: StructuredResponseOptions = { - model: "gpt-5-nano", + model: AI_GENERATE_PLAN_MODELO, input: [ { role: "system", content: systemPrompt }, { role: "user", content: userPrompt }, diff --git a/supabase/functions/ai-generate-subject/index.ts b/supabase/functions/ai-generate-subject/index.ts index 972ca2c..45457b0 100644 --- a/supabase/functions/ai-generate-subject/index.ts +++ b/supabase/functions/ai-generate-subject/index.ts @@ -170,6 +170,14 @@ Deno.serve(async (req: Request): Promise => { SERVICE_ROLE_KEY, ); + // Model names (override via environment variables) + const AI_GENERATE_SUBJECT_UPDATE_MODELO = Deno.env.get( + "AI_GENERATE_SUBJECT_UPDATE_MODELO", + ) ?? "gpt-5-nano"; + const AI_GENERATE_SUBJECT_INSERT_MODELO = Deno.env.get( + "AI_GENERATE_SUBJECT_INSERT_MODELO", + ) ?? "gpt-5-nano"; + // ----------------------------- // JSON update flow // ----------------------------- @@ -307,7 +315,7 @@ Deno.serve(async (req: Request): Promise => { : {}; const aiStructuredPayload: StructuredResponseOptions = { - model: "gpt-5-nano", + model: AI_GENERATE_SUBJECT_UPDATE_MODELO, input: [ { role: "system", content: systemPrompt }, { role: "user", content: userPrompt }, @@ -540,7 +548,7 @@ Deno.serve(async (req: Request): Promise => { : {}; const aiStructuredPayload: StructuredResponseOptions = { - model: "gpt-5-nano", + model: AI_GENERATE_SUBJECT_INSERT_MODELO, input: [ { role: "system", content: systemPrompt }, { role: "user", content: userPrompt }, diff --git a/supabase/functions/create-chat-conversation/index.ts b/supabase/functions/create-chat-conversation/index.ts index cbb3572..f06bc58 100644 --- a/supabase/functions/create-chat-conversation/index.ts +++ b/supabase/functions/create-chat-conversation/index.ts @@ -29,6 +29,13 @@ app.options( ); const prefix = "/create-chat-conversation"; +// Model names (module-level) — pueden ser sobrescritos por variables de entorno +const CREATE_CHAT_CONVERSATION_NONSTRUCTURED_MODELO = Deno.env.get( + "CREATE_CHAT_CONVERSATION_NONSTRUCTURED_MODELO", +) ?? "gpt-5-nano"; +const CREATE_CHAT_CONVERSATION_STRUCTURED_MODELO = Deno.env.get( + "CREATE_CHAT_CONVERSATION_STRUCTURED_MODELO", +) ?? "gpt-5-nano"; app.get(`${prefix}/health`, (c) => withCors(jsonResponse({ ok: true }))); @@ -241,7 +248,7 @@ app.post(`${prefix}/conversations/:id/messages`, async (c) => { if (!wantsStructured) { await openai.responses.create({ conversation: row.openai_conversation_id, - model: "gpt-5-nano", + model: CREATE_CHAT_CONVERSATION_NONSTRUCTURED_MODELO, input: [ { role: "system", @@ -284,7 +291,7 @@ app.post(`${prefix}/conversations/:id/messages`, async (c) => { const schema = pickSchemaFields(definicion, body.campos); const planForPrompt = safePlanForPrompt(plan); - const model = "gpt-5-nano"; + const model = CREATE_CHAT_CONVERSATION_STRUCTURED_MODELO; const prompt = body.user_prompt ?? body.content; const resp = await openai.responses.create({ diff --git a/supabase/functions/generate-subject-suggestions/index.ts b/supabase/functions/generate-subject-suggestions/index.ts index 027ab06..a6f1eb5 100644 --- a/supabase/functions/generate-subject-suggestions/index.ts +++ b/supabase/functions/generate-subject-suggestions/index.ts @@ -160,6 +160,11 @@ Deno.serve(async (req: Request): Promise => { SERVICE_ROLE_KEY, ); + // Model name controlled via env var + const GENERATE_SUBJECT_SUGGESTIONS_MODELO = Deno.env.get( + "GENERATE_SUBJECT_SUGGESTIONS_MODELO", + ) ?? "gpt-5-mini"; + const { data: plan, error: planError } = await supabaseService .from("planes_estudio") .select("id,nombre,nivel,tipo_ciclo,numero_ciclos,datos") @@ -276,7 +281,7 @@ Deno.serve(async (req: Request): Promise => { } const options: StructuredResponseOptions = { - model: "gpt-5-mini", + model: GENERATE_SUBJECT_SUGGESTIONS_MODELO, input: [ { role: "system", content: systemPrompt }, {