Se usan modelos de openai a partir de variables de entorno

This commit is contained in:
2026-02-16 13:03:15 -06:00
parent e7d7f553a3
commit 1f9a00453d
4 changed files with 30 additions and 6 deletions
+5 -1
View File
@@ -118,6 +118,10 @@ Deno.serve(async (req: Request): Promise<Response> => {
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<Response> => {
: {};
const aiStructuredPayload: StructuredResponseOptions = {
model: "gpt-5-nano",
model: AI_GENERATE_PLAN_MODELO,
input: [
{ role: "system", content: systemPrompt },
{ role: "user", content: userPrompt },
@@ -170,6 +170,14 @@ Deno.serve(async (req: Request): Promise<Response> => {
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<Response> => {
: {};
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<Response> => {
: {};
const aiStructuredPayload: StructuredResponseOptions = {
model: "gpt-5-nano",
model: AI_GENERATE_SUBJECT_INSERT_MODELO,
input: [
{ role: "system", content: systemPrompt },
{ role: "user", content: userPrompt },
@@ -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({
@@ -160,6 +160,11 @@ Deno.serve(async (req: Request): Promise<Response> => {
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<Response> => {
}
const options: StructuredResponseOptions = {
model: "gpt-5-mini",
model: GENERATE_SUBJECT_SUGGESTIONS_MODELO,
input: [
{ role: "system", content: systemPrompt },
{