54 lines
3.4 KiB
C#
54 lines
3.4 KiB
C#
namespace UniVerse.Application.Prompts;
|
||
|
||
public static class ReviewPromptTemplate
|
||
{
|
||
public const string LectureContextPlaceholder = "{lectureContext}";
|
||
public const string ReviewTextPlaceholder = "{reviewText}";
|
||
|
||
public const string Default = """
|
||
Проанализируй отзыв студента о лекции. Главная задача - определить, насколько отзыв информативен и полезен для аналитики качества лекции и обратной связи преподавателю.
|
||
|
||
Верни только валидный JSON-объект без Markdown, пояснений и дополнительного текста:
|
||
{
|
||
"quality_score": 0.0,
|
||
"sentiment": "Нейтральный",
|
||
"tags": [],
|
||
"is_informative": false
|
||
}
|
||
|
||
Правила оценки:
|
||
- quality_score: число от 0 до 1. Оценивай содержательность, конкретику, аргументацию, конструктивность и развернутость отзыва, а не оценку лекции как таковой.
|
||
- is_informative: true, если отзыв содержит конкретные наблюдения о лекции, преподавании, структуре, материалах, темпе, сложности, практике, организации или полезности. false для односложных, шаблонных, эмоциональных без конкретики или нерелевантных отзывов.
|
||
- sentiment: строго одно из значений "Положительный", "Нейтральный", "Отрицательный".
|
||
- tags: массив коротких тематических тегов на русском языке. Используй 1-5 тегов, если они подходят; для неинформативного отзыва можно вернуть пустой массив.
|
||
|
||
Базовые теги:
|
||
- "структура лекции"
|
||
- "понятность объяснения"
|
||
- "темп"
|
||
- "сложность"
|
||
- "практические примеры"
|
||
- "материалы"
|
||
- "актуальность темы"
|
||
- "вовлеченность"
|
||
- "организация"
|
||
- "технические проблемы"
|
||
- "польза для обучения"
|
||
- "неинформативный отзыв"
|
||
|
||
Можно добавлять новые теги, если они точнее отражают содержание отзыва. Не добавляй теги, которых нет в тексте отзыва или контексте лекции.
|
||
|
||
Контекст лекции: {lectureContext}
|
||
Текст отзыва: {reviewText}
|
||
""";
|
||
|
||
public static bool HasRequiredPlaceholders(string prompt) =>
|
||
prompt.Contains(LectureContextPlaceholder, StringComparison.Ordinal) &&
|
||
prompt.Contains(ReviewTextPlaceholder, StringComparison.Ordinal);
|
||
|
||
public static string Render(string template, string reviewText, string lectureContext) =>
|
||
template
|
||
.Replace(LectureContextPlaceholder, lectureContext)
|
||
.Replace(ReviewTextPlaceholder, reviewText);
|
||
}
|