/
TurGG
/
IRA
Обзор
Документация
Войти
/
TurGG
/
IRA
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
comparison_LLM/interview.py
80 строк
3 KB
Monsi
Update intrerview
22 дек 2025, 18:52
22 дек 2025, 18:52
b4271a5
Код
Авторство
О чём код?
from prompts import SYSTEM_PROMPT, PROMPT_TZ from gpt_4o_mini import appeal_to_ai from grok_3 import appeal_to_grok from ds_v3_0324 import appeal_to_ds CHECKLIST = [ "Бизнес-цель проекта", "Проблема, которую решаем", "Основные пользователи системы", "Отчёты и данные, которые должны быть в системе", "Ключевые метрики успеха", "Ограничения и риски" ] def multiline_input(end_marker="END"): print(f"(Введите текст. Для завершения введите {end_marker})") lines = [] while True: line = input() if line.strip() == end_marker: break lines.append(line) return "\n".join(lines) def normalize_ai_response(text: str) -> str: if "?" in text: return text.split("?")[0].strip() + "?" return text.strip() def run_interview(): print("Интервью началось. Расскажите о своем проекте:") project_desc = multiline_input() messages = [ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": f"Контекст проекта:\n{project_desc}"} ] answers = {} for step_name in CHECKLIST: step_prompt = ( f"Текущий этап интервью: {step_name}.\n" f"Задай один вопрос, чтобы прояснить этот пункт." ) messages.append({"role": "user", "content": step_prompt}) response = appeal_to_ds(messages) response = normalize_ai_response(response) print(f"\nAI ({step_name}): {response}") messages.append({"role": "assistant", "content": response}) user_input = multiline_input() if user_input.lower() == "stop": print("\nИнтервью остановлено пользователем.") return answers[step_name] = user_input messages.append({"role": "user", "content": user_input}) generation_tz(project_desc, answers) print("\nИнтервью завершено.") def generation_tz(project_desc, answers): messages = [ {"role": "system", "content": PROMPT_TZ}, {"role": "user", "content": f"Контекст проекта:\n{project_desc}"}, {"role": "user", "content": f"Ответы на вопросы:\n{answers}"} ] tz = appeal_to_ds(messages) print("Итоговое ТЗ") print(tz) if __name__ == "__main__": run_interview()