feat: per-user feedback AI prompt template with placeholder keys
This commit is contained in:
+49
-1
@@ -12,6 +12,11 @@
|
||||
.shorts-list { display:flex; flex-direction:column; gap:6px; width:100%; max-height:220px; overflow:auto; padding:2px 0; }
|
||||
.shorts-list .item { display:flex; gap:8px; align-items:flex-start; }
|
||||
.shorts-list .item label { flex:1; font-size:13px; line-height:1.3; color:var(--text); cursor:pointer; }
|
||||
.fb-modal-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
|
||||
.fb-modal-head h3 { margin:0; }
|
||||
.fb-keys { display:flex; flex-direction:column; gap:6px; }
|
||||
.fb-keys .fb-key { display:flex; gap:10px; align-items:baseline; font-size:13px; line-height:1.35; }
|
||||
.fb-keys code { background:rgba(127,127,127,.12); border:1px solid var(--border); border-radius:6px; padding:1px 6px; font-size:12px; white-space:nowrap; }
|
||||
</style>
|
||||
</head>
|
||||
<body data-page="feedback">
|
||||
@@ -56,7 +61,10 @@
|
||||
|
||||
<div class="modal-overlay" id="feedbackModal">
|
||||
<div class="edit-modal" style="max-width:680px">
|
||||
<h3 id="fbModalTitle">Добавить отзыв</h3>
|
||||
<div class="fb-modal-head">
|
||||
<h3 id="fbModalTitle">Добавить отзыв</h3>
|
||||
<button type="button" class="icon-btn" id="fbPromptBtn" title="Настройки ИИ-промпта"><i data-lucide="settings"></i></button>
|
||||
</div>
|
||||
<form id="fbForm" class="settings-stack" autocomplete="off">
|
||||
<input type="hidden" id="fbId">
|
||||
<div class="settings-stack-grid">
|
||||
@@ -122,6 +130,46 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-overlay" id="fbPromptModal">
|
||||
<div class="edit-modal" style="max-width:720px">
|
||||
<div class="fb-modal-head">
|
||||
<h3>Настройки ИИ-промпта</h3>
|
||||
<button type="button" class="icon-btn" id="fbPromptClose" title="Закрыть"><i data-lucide="x"></i></button>
|
||||
</div>
|
||||
<div class="settings-stack">
|
||||
<div class="settings-field">
|
||||
<label>Модель по умолчанию</label>
|
||||
<select id="fbDefaultModel" class="settings-input"></select>
|
||||
<div class="hint">Подставляется в поле «Модель ИИ» при добавлении отзыва. Пусто — активная модель системы</div>
|
||||
</div>
|
||||
<div class="settings-field">
|
||||
<label>Шаблон промпта</label>
|
||||
<textarea id="fbPromptText" class="settings-input" rows="14" maxlength="8000" placeholder="Загрузка…"></textarea>
|
||||
<div class="hint"><span id="fbPromptCount">0 / 8000</span> · Пусто — используется системный шаблон</div>
|
||||
</div>
|
||||
<div class="settings-field">
|
||||
<label>Ключи подстановки в шаблон</label>
|
||||
<div class="fb-keys">
|
||||
<div class="fb-key"><code>{group}</code><span>название группы</span></div>
|
||||
<div class="fb-key"><code>{date}</code><span>дата занятия (ГГГГ-ММ-ДД)</span></div>
|
||||
<div class="fb-key"><code>{resident}</code><span>фамилия и имя резидента</span></div>
|
||||
<div class="fb-key"><code>{topic}</code><span>тема занятия</span></div>
|
||||
<div class="fb-key"><code>{past_review}</code><span>прошлый отзыв, или «нет», если его нет</span></div>
|
||||
<div class="fb-key"><code>{shorts}</code><span>выбранные короткие сообщения: «- дата – тема – текст»</span></div>
|
||||
<div class="fb-key"><code>{context}</code><span>стандартный блок контекста занятия целиком: группа, дата, резидент, тема, прошлый отзыв, короткие сообщения</span></div>
|
||||
<div class="fb-key"><code>{text}</code><span>черновик текста отзыва из формы</span></div>
|
||||
</div>
|
||||
<div class="hint">Если шаблон содержит хотя бы один ключ — данные подставляются по ним, и автоматический блок «КОНТЕКСТ» в конец промпта не добавляется. Без ключей блок «КОНТЕКСТ» добавляется в конец автоматически.</div>
|
||||
</div>
|
||||
<div class="ai-status" id="fbPromptStatus" hidden></div>
|
||||
<div class="card-foot" style="justify-content:flex-end;gap:8px">
|
||||
<button type="button" class="btn-primary ghost" id="fbPromptReset">Сбросить</button>
|
||||
<button type="button" class="btn-primary" id="fbPromptSave">Сохранить</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="vendor/lucide.min.js"></script>
|
||||
<script src="js/datetime.js"></script>
|
||||
<script src="admin.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user