-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathprompter.py
More file actions
97 lines (76 loc) · 7.24 KB
/
Copy pathprompter.py
File metadata and controls
97 lines (76 loc) · 7.24 KB
1
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import os
# НАСТРОЙКИ
INPUT_DIR = "wiki_final_review" # Папка с файлами от exporter_v7.py
OUTPUT_DIR = "TITAN_PROMPTS_v7" # Папка, куда упадут готовые ТЗ для Гемини
def build_titan_prompts():
print(f"🚀 Запуск генератора ТИТАН-ПРОМПТОВ...")
# 1. Проверки
if not os.path.exists(INPUT_DIR):
print(f"❌ Ошибка: Папка {INPUT_DIR} не найдена. Сначала запусти exporter_v7.py!")
return
if not os.path.exists(OUTPUT_DIR):
os.makedirs(OUTPUT_DIR)
print(f"📁 Создана папка для промптов: {OUTPUT_DIR}")
files = [f for f in os.listdir(INPUT_DIR) if f.endswith(".txt")]
if not files:
print("⚠️ В папке пусто.")
return
count = 0
# 2. Обработка файлов
for filename in files:
# Парсим имя файла: "2.2.1_Орто_Техника_BOPT.txt" -> Код: 2.2.1, Тема: Орто Техника BOPT
try:
parts = filename.replace(".txt", "").split("_", 1)
cat_code = parts[0]
cat_name = parts[1].replace("_", " ") if len(parts) > 1 else "Общая тема"
except:
cat_code = "X.X.X"
cat_name = filename.replace(".txt", "")
# Читаем исходник
with open(os.path.join(INPUT_DIR, filename), "r", encoding="utf-8") as f:
raw_data = f.read()
# 3. ФОРМИРОВАНИЕ УЛЬТИМАТИВНОГО ПРОМПТА
# 3. ФОРМИРОВАНИЕ УЛЬТИМАТИВНОГО ПРОМПТА (ВЕРСИЯ "TITAN-ULTIMATUM")
titan_prompt = (
f"--- УЛЬТИМАТИВНОЕ ЗАДАНИЕ ДЛЯ ВЕДУЩЕГО КЛИНИЦИСТА: БЕЗЛИМИТНЫЙ ОБЪЕМ ---\n\n"
f"РОЛЬ: Ты — легендарный стоматолог-практик, авторитарный наставник. Ты пишешь не статью, а 'ПРАКТИЧЕСКУЮ БИБЛИЮ' для коллег. Твой стиль — суровая конкретика, 'мясо', цифры и биомеханика. \n"
f"ЗАДАЧА: Написать ИСЧЕРПЫВАЮЩУЮ, ГИГАНТСКУЮ монографию по теме: '{cat_name}'.\n\n"
f"=== ЖЕСТКИЕ ЗАПРЕТЫ (ЗА НАРУШЕНИЕ — ШТРАФ) ===\n"
f"1. НИКАКОЙ ИСТОРИИ: Запрещены разделы 'История метода', 'Введение в тему'. Начинай СРАЗУ с первого клинического этапа или протокола.\n"
f"2. НИКАКОЙ ВОДЫ: Вырежи фразы 'это важно', 'существуют разные мнения', 'врачи обсуждали'. Пиши сразу: 'Протокол такой: ...', 'Берем бор артикул ...'.\n"
f"3. ЗАПРЕТ НА СОКРАЩЕНИЕ: Если в RAW DATA ниже представлено 100 фактов — я ожидаю увидеть 100 развернутых параграфов. Запрещено объединять 5 разных лайфхаков в одно общее предложение. \n"
f"4. НИКАКИХ САММАРИ: Статья должна быть в 5-10 раз длиннее, чем входящий текст.\n\n"
f"=== ИНСТРУКЦИЯ ПО РАСШИРЕНИЮ (ЭКСПАНСИЯ) ===\n"
f"Для каждого [ФАКТА] или [КЕЙСА] из базы:\n"
f"• Разверни его: объясни ФИЗИКУ процесса. Почему именно этот торк? Почему этот бор? \n"
f"• Дополни теорией 2024-2025: вплетай данные о силе адгезии в МПа, химическом составе (10-MDP, Bis-GMA), биотипах десны.\n"
f"• Если упомянут бренд (Variolink, Fuji, Osstem) — дай его краткую техническую характеристику.\n\n"
f"=== ИЕРАРХИЯ ИСТОЧНИКОВ ===\n"
f"• 🏆 [ЭТАЛОННЫЙ ВИДЕО-КУРС АДМИНА] — Это костяк. Описывай каждое движение врача из видео. Это твои главные главы.\n"
f"• 🌟 [ЭКСПЕРТНЫЙ КЕЙС] и 📍 [ФАКТ] — Это 'мясо'. Каждый такой блок должен стать подробным подразделом.\n\n"
f"=== РАБОТА С ИЛЛЮСТРАЦИЯМИ (КРИТИЧНО) ===\n"
f"Ты обязан вплетать маркер [IMG_ID] прямо в предложение. \n"
f"• ВАЖНО: Ты должен 'проявить' фото текстом. Опиши словами то, что на нем изображено (описание есть в базе), чтобы врач понимал визуальный нюанс.\n\n"
f"=== СТРУКТУРА 'TITAN' ===\n"
f"Используй 15-20 глубоких разделов. Используй таблицы 'Сравнение материалов' и 'Параметры оборудования'.\n\n"
f"- Глава 'КЛИНИЧЕСКИЕ НЕУДАЧИ И АНАЛИЗ ОШИБОК': детальный разбор всех упомянутых осложнений и их причин.\n"
f"- Глава 'ЭКОНОМИКА ПРОТОКОЛА': анализ цен на материалы, стоимости работ и зарплат.\n"
f"- Глава 'РЕКОМЕНДОВАННАЯ ЛИТЕРАТУРА И ИСТОЧНИКИ': список всех упомянутых книг, вебинаров и авторов (если нет, то ищи в интернете!).\n"
f"ФОРМАТ: Профессиональный Markdown. \n"
f"ВАЖНО: Если текст не влезает в один ответ — ОСТАНОВИСЬ и жди команды 'ПРОДОЛЖАЙ'. Никогда не обрывай и не сокращай финал!\n\n"
f"Обязательно делай статью очень большой и длинной, разбивай её на части!\n"
f"--- МАТЕРИАЛЫ ДЛЯ ТВОЕГО ИССЛЕДОВАНИЯ (RAW DATA) ---\n\n"
f"{raw_data}"
)
# 4. Сохранение
out_filename = f"PROMPT_{filename}"
with open(os.path.join(OUTPUT_DIR, out_filename), "w", encoding="utf-8") as f_out:
f_out.write(titan_prompt)
count += 1
print(f"✅ Промпт готов: {out_filename}")
print("-" * 40)
print(f"🏁 УСПЕХ! Сгенерировано {count} титанических промптов.")
print(f"📂 Папка: {os.path.abspath(OUTPUT_DIR)}")
print("👉 ИНСТРУКЦИЯ: Открывай файл -> Копируй всё (Ctrl+A, Ctrl+C) -> Вставляй в Gemini 3 Pro.")
if __name__ == "__main__":
build_titan_prompts()