Spaces:
Sleeping
Sleeping
Upload app/agent/prompts.py with huggingface_hub
Browse files- app/agent/prompts.py +82 -57
app/agent/prompts.py
CHANGED
|
@@ -1,57 +1,82 @@
|
|
| 1 |
-
SYSTEM_PROMPT = """Ты
|
| 2 |
-
Твоя задача
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
SYSTEM_PROMPT = """Ты — AI-ассистент для заполнения чеклиста созвона с клиентом.
|
| 2 |
+
Твоя задача — задавать вопросы, анализировать ответы и формировать структурированный чеклист.
|
| 3 |
+
Всегда отвечай на русском языке.
|
| 4 |
+
Формат ответа — строго JSON, без лишнего текста."""
|
| 5 |
+
|
| 6 |
+
INITIAL_QUESTIONS_PROMPT = """Сгенерируй 3 начальных вопроса для чеклиста созвона с клиентом.
|
| 7 |
+
Вопросы должны быть открытыми и покрывать основные темы:
|
| 8 |
+
1. Информация о проекте и клиенте
|
| 9 |
+
2. Цели и задачи проекта
|
| 10 |
+
3. Сроки и бюджет
|
| 11 |
+
|
| 12 |
+
Верни JSON массив из 3 объектов:
|
| 13 |
+
[{"id": "q1", "text": "текст вопроса"}, ...]"""
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
def analyze_round_prompt(round_number: int, questions_and_answers: str, previous_summaries: str) -> str:
|
| 17 |
+
return f"""Проанализируй ответы раунда {round_number}.
|
| 18 |
+
|
| 19 |
+
Вопросы и ответы:
|
| 20 |
+
{questions_and_answers}
|
| 21 |
+
|
| 22 |
+
{"Предыдущие резюме раундов:" + chr(10) + previous_summaries if previous_summaries else ""}
|
| 23 |
+
|
| 24 |
+
Создай краткое резюме раунда, выделив:
|
| 25 |
+
- Что было выяснено
|
| 26 |
+
- Что требует уточнения
|
| 27 |
+
- Какие темы ещё не затронуты
|
| 28 |
+
|
| 29 |
+
Верни JSON объект:
|
| 30 |
+
{{"summary": "текст резюме"}}"""
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def next_questions_prompt(round_number: int, all_summaries: str) -> str:
|
| 34 |
+
return f"""На основе анализа предыдущих раундов, сгенерируй 3 уточняющих вопроса для раунда {round_number}.
|
| 35 |
+
|
| 36 |
+
Резюме предыдущих раундов:
|
| 37 |
+
{all_summaries}
|
| 38 |
+
|
| 39 |
+
Вопросы должны:
|
| 40 |
+
- Уточнять неясные моменты из предыдущих ответов
|
| 41 |
+
- Раскрывать незатронутые темы
|
| 42 |
+
- Быть конкретными и направленными
|
| 43 |
+
|
| 44 |
+
Верни JSON массив из 3 объектов:
|
| 45 |
+
[{{"id": "q{(round_number-1)*3+1}", "text": "текст вопроса"}}, ...]"""
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
def generate_checklist_prompt(all_summaries: str, all_qa: str) -> str:
|
| 49 |
+
return f"""На основе всех раундов интервью, создай структурированный чеклист созвона.
|
| 50 |
+
|
| 51 |
+
Резюме всех раундов:
|
| 52 |
+
{all_summaries}
|
| 53 |
+
|
| 54 |
+
Все вопросы и ответы:
|
| 55 |
+
{all_qa}
|
| 56 |
+
|
| 57 |
+
Создай чеклист с категориями. Для каждого пункта укажи статус:
|
| 58 |
+
- "confirmed" — информация получена и подтверждена
|
| 59 |
+
- "needs_clarification" — требует уточнения
|
| 60 |
+
- "not_discussed" — не обсуждалось
|
| 61 |
+
|
| 62 |
+
Верни JSON массив:
|
| 63 |
+
[{{"category": "Информация о проекте", "item": "Название проекта: ...", "status": "confirmed", "notes": "..."}}]"""
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
def generate_markdown_prompt(checklist_json: str, session_id: str) -> str:
|
| 67 |
+
return f"""Преобразуй чеклист в красивый Markdown документ.
|
| 68 |
+
|
| 69 |
+
Чеклист (JSON):
|
| 70 |
+
{checklist_json}
|
| 71 |
+
|
| 72 |
+
ID сессии: {session_id}
|
| 73 |
+
|
| 74 |
+
Формат:
|
| 75 |
+
- Заголовок: "# Чеклист созвона с клиентом"
|
| 76 |
+
- Дата (сегодня)
|
| 77 |
+
- Группировка по категориям (## заголовки)
|
| 78 |
+
- [x] для confirmed, [ ] для needs_clarification и not_discussed
|
| 79 |
+
- Секция "Дополнительные заметки" с notes
|
| 80 |
+
- Подпись: "*Сгенерировано автоматически с помощью AI Checklist Agent*"
|
| 81 |
+
|
| 82 |
+
Верни только Markdown текст, без JSON обёртки."""
|