French Ship Madame De Pompadour
Симулятор социальных взаимодействий и генератор историй, создающий научно-фантастические повествования на основе Star Trek. ООП Python/Flask с некоторыми структурами данных, Gemini API, фронтенд React/Vite/Tailwind.
Симулятор космического корабля с использованием ИИ и случайных действий, вдохновлённый Star Trek.
FS Madame de Pompadour — это текстовый нарративный симулятор, создающий динамичные и непредсказуемые истории в научно-фантастической вселенной. Нажимая «Далее», вы продвигаете симуляцию на один ход за раз, наблюдая, как группа персонажей взаимодействует друг с другом на основе комбинации заранее заданных моделей поведения и генеративного ИИ.
Цель — создать «цифровой террариум», где из простых правил и творческой силы ИИ возникают сложные социальные динамики и неожиданные события.
Добро пожаловать на борт FS Madame de Pompadour.
Капитан Пепильо повернулся к матросу Гарольду и рявкнул: «Доложите о дисциплинарных мерах, принятых в отношении Фона».
Капитан Пепильо повернулся к коммуникационной станции и потребовал: «Соедините меня с лейтенантом Дюбуа немедленно».
Тедрик наклонился к матросу Уэйлону и прошептал: «Ты видел, что сделал Фон? Похоже, капитан Пепильо сегодня не в духе», — поправляя форму, чтобы выглядеть презентабельно.
Константин быстро взглянул на матроса Гарольда, затем тихо пробормотал матросу Мохаммеду: «Интересно, что Фон сделал, чтобы так сильно разозлить капитана», — незаметно полируя участок ближайших перил.
Матрос Фон нервно поправил форму, затем, поймав взгляд матроса Иезекииля, пробормотал себе под нос: «Это будет долгий день», — надеясь, что Иезекииль ответит.
Матрос Мохаммед, заметив, как Константин незаметно полирует, взглянул на перила и сказал: «Похоже, им нужна хорошая чистка, не так ли? Может, сделаем этот участок вместе, Константин?»
Матрос Гарольд, отметив напряжённую атмосферу и приказы капитана, небрежно поправил форму и пробормотал матросу Себастьяну: «Похоже, Фон в горячей воде, да? Может, выпьем кофе, чтобы разрядить обстановку, пока обязанности не стали ещё неприятнее?»
Видя напряжение, матрос Уэстли поворачивается к матросу Флину и спрашивает: «Ты слышал, что случилось с Фоном? Похоже, капитан не в духе, может, нам стоит убедиться, что наши станции безупречны».
Капитан Пепильо просит профессионального мнения матроса Гарольда.
Капитан Пепильо поворачивается к матросу Фону и требует: «Фон, немедленно доложите о состоянии вашей станции и систем».
Матрос Уэстли, заметив суровый приказ капитана Фону, быстро поворачивается к матросу Флину и тихо говорит: «Флин, давай проверим складские запасы, думаю, капитан может захотеть, чтобы аварийные пайки были инвентаризированы», — надеясь выглядеть занятым и избежать нежелательного внимания.
Матрос Мохаммед, видя напряжение вокруг капитана Пепильо, тихо подошёл к матросу Иезекиилю и прошептал: «Как думаешь, может, приготовить чистящие средства на случай, если капитану понадобится что-то сделать быстро?»
В этом демонстрационном снимке симуляции FS Madame de Pompadour мы наблюдаем сложную и динамичную социальную экосистему в действии. Система демонстрирует свою способность генерировать возникающее повествование не через заранее написанные сценарии, а позволяя независимым агентам взаимодействовать, создавая богатую и правдоподобную картину жизни на нижних палубах.
Симуляция начинается с чёткого катализатора: высокопоставленное должностное лицо, капитан Пепильо, вносит немедленное напряжение с высокими ставками через прямые приказы. Эта «командная каскад» становится центральной гравитационной точкой для всей социальной экосистемы. Обратите внимание, как его требования не просто запускают индивидуальные скрипты персонажей, а инициируют единое событие высокого давления. Это демонстрирует новый фокус системы на иерархической структуре, где действия одного агента могут диктовать фокус, настроение и стратегическую цель для каждого другого персонажа в общей среде.
Когда приказы капитана распространяются по экипажу, мы видим появление сложных, реактивных социальных стратегий. Члены экипажа не просто продолжают заниматься праздными задачами; они немедленно начинают обрабатывать новую реальность. Обратите внимание, как такие персонажи, как Тедрик и Константин, формируют временные разговорные группы, чтобы сплетничать и анализировать ситуацию, пытаясь осмыслить новую динамику власти. Ещё более впечатляюще, матрос Уэстли демонстрирует более высокий уровень возникающей логики, активно формулируя стратегию выживания — предлагая себе и товарищу выглядеть занятыми официальными задачами, чтобы избежать гнева капитана. Это не запрограммированное поведение, а логический социальный вывод, сгенерированный ИИ в ответ на воспринимаемую угрозу, демонстрирующий надёжную способность к оценке рисков.
Это краткое окно раскрывает мощный двигатель для возникающего повествования, который плавно сочетает профессиональные роли с личной тревогой. Мы видим, как матрос Гарольд вынужден переключиться с непринуждённого шёпота на формальное профессиональное мнение по требованию капитана, иллюстрируя способность системы управлять конфликтующими социальными контекстами. Вся симуляция вращается вокруг центрального конфликта с Фоном, создавая единый нарративный «скороварку», а не набор отдельных тихих драм. Двигатель созрел за пределами простой генерации картины жизни, теперь демонстрируя способность симулировать сложную сеть социальных расчётов, стратегических союзов и возникающего группового мышления в условиях стресса.
FS Madame de Pompadour построена на современной, развязанной веб-архитектуре, разделяющей серверный движок симуляции и клиентский интерфейс для модульности и производительности.
Серверная часть: Python, Flask и Gemini
Всё ядро и логика симуляции находятся в серверной части на Python.
- Python: Естественный выбор благодаря мощной обработке данных и надёжной экосистеме ИИ/МО. Объектно-ориентированный подход позволяет создавать модульные классы
CrewmanиActorManager, которые легко расширять. - Flask: Лёгкий и гибкий веб-фреймворк, используемый для создания API, с которым взаимодействует клиентская часть. Его единственная задача — получить запрос на следующий ход, запустить логику симуляции и вернуть результат.
- Google Gemini: «Призрак в машине». Проект интегрируется с API Gemini для питания своей интеллектуальной системы действий. Когда персонаж решает действовать «интеллектуально», серверная часть отправляет запрос — содержащий контекст корабля, роль персонажа и историю недавних действий — модели Gemini, которая затем возвращает творческое, контекстно-зависимое действие.
Клиентская часть: React, Vite и Tailwind CSS
Пользовательский интерфейс — это быстрое, современное одностраничное приложение (SPA).
- React: Мощная библиотека JavaScript для создания динамических и компонентных пользовательских интерфейсов. Весь журнал событий — это компонент React, который эффективно обновляется по мере получения новых действий от серверной части.
- Vite: Инструмент сборки клиентской части нового поколения, обеспечивающий чрезвычайно быстрый сервер разработки и оптимизированные производственные сборки.
- TypeScript: Используется для добавления статической типизации в код JavaScript, улучшая опыт разработчика и уменьшая количество ошибок.
- Tailwind CSS: CSS-фреймворк, ориентированный на утилиты, который позволяет быстро и последовательно стилизовать непосредственно в HTML, как видно по именам классов компонентов.
Общая архитектура
Поток одного хода прост и эффективен:
- Пользователь нажимает кнопку «Далее» в пользовательском интерфейсе на React.
- Клиентская часть отправляет
fetch-запрос к конечной точке/actionсерверной части, работающей на Flask. - Сервер Flask вызывает Python
ActorManager, который выполняет один ход симуляции, потенциально вызывая API Gemini. - Серверная часть возвращает результирующую строку действия в виде JSON-объекта.
- Клиентская часть на React получает JSON, обновляет своё состояние и отображает новое событие на экране, автоматически прокручивая до последней записи.
