NODEDC_1C/llm_normalizer/backend/dist/routes/presets.js

50 lines
1.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildPresetsRouter = buildPresetsRouter;
const express_1 = require("express");
const nanoid_1 = require("nanoid");
const config_1 = require("../config");
const promptBuilder_1 = require("../services/promptBuilder");
const traceLogger_1 = require("../services/traceLogger");
const http_1 = require("../utils/http");
function buildPresetsRouter() {
const router = (0, express_1.Router)();
router.get("/api/presets", (_req, res) => {
const stored = (0, traceLogger_1.listPresets)();
const builtin = (0, promptBuilder_1.listBuiltinPromptPresets)();
const combined = [...builtin, ...stored];
(0, http_1.ok)(res, {
ok: true,
default_prompt_version: config_1.DEFAULT_PROMPT_VERSION,
presets: combined
});
});
router.post("/api/presets/save", (req, res, next) => {
try {
const body = (req.body ?? {});
const now = new Date().toISOString();
const preset = {
id: body.id ?? `preset-${(0, nanoid_1.nanoid)(8)}`,
name: body.name ?? "Пользовательский пресет",
createdAt: body.createdAt ?? now,
updatedAt: now,
prompt_version: body.prompt_version ?? config_1.DEFAULT_PROMPT_VERSION,
systemPrompt: body.systemPrompt ?? "",
developerPrompt: body.developerPrompt ?? "",
domainPrompt: body.domainPrompt ?? "",
schemaNotes: body.schemaNotes ?? "",
fewShotExamples: body.fewShotExamples ?? ""
};
(0, traceLogger_1.savePreset)(preset);
(0, http_1.created)(res, {
ok: true,
preset
});
}
catch (error) {
next(error);
}
});
return router;
}