# Создайте небольшую модель с Gemini

[English](README.md) · [Рабочий резервный блокнот](https://colab.research.google.com/github/hydrosolutions/zarafshan-taqsim-course/blob/main/06_gemini_rescue_ru.ipynb) · [Карточка API TaqSim](API_CARD_RU.md)

**Сначала — демонстрация ведущего, затем — самостоятельное задание по желанию.** Цель — ясно описать водную систему и проверить созданную модель, а не стать программистом. Gemini готовит черновик; за связи, единицы, правило распределения и интерпретацию отвечаете вы.

Расширяем предыдущий пример «водохранилище и одно хозяйство» до двух хозяйств, используя небольшие условные числа. Это не данные Зарафшана и не точное повторение предыдущей игры.

## Начните с пустого блокнота

1. Откройте [Google Colab](https://colab.research.google.com/), создайте новый блокнот, назовите и сохраните свою копию.
2. Откройте помощника Gemini, доступного вашей учётной записи. Интерфейс и доступность могут различаться. Если помощника нет, работайте с ведущим или используйте резервный блокнот. Код можно переносить в ячейки Colab вручную.
3. Передайте Gemini запрос ниже **и полный текст [карточки API](API_CARD_RU.md)**. Работайте по одной ячейке: прочитайте, выполните, проверьте результат.
4. Если возникла проблема, откройте резервный блокнот в соседней вкладке и сравните нужную ячейку. Не заменяйте упражнение большим фрагментом непонятного кода.

Блокнот сочетает пояснения и исполняемый код. Python — язык кода. Переменная даёт значению имя; список хранит несколько значений; функция — повторно используемая инструкция. Выполняйте ячейки сверху вниз. Редактирование ячейки само по себе ничего не пересчитывает. Перезапуск среды удаляет значения из памяти: снова выполните установку и следующие ячейки. Красный текст ошибки требует проверки.

## Запрос 1 — сначала согласуйте систему

> Помоги создать небольшую модель TaqSim v0.1.4 в пустом блокноте Google Colab. Я начинающий в Python. Используй приложенную карточку API; не выдумывай классы и методы. Сначала повтори описание системы, нарисуй направленную сеть и перечисли допущения. Пока не пиши код.
>
> Река → водохранилище → узел распределения → хозяйства A и B → конечный узел ниже по течению. Шесть месячных шагов. Все значения воды — объёмы в миллионах кубических метров (млн м³) за шаг, а не расходы в м³/с. Приток [8, 4, 2, 0, 10, 2]. Вместимость 20, начальный запас 6, мёртвый объём 0. Нет испарения, фильтрации и задержек. A нужно 4 в месяц, B — 3. Выпускать не больше общей потребности 7 и доступного запаса после поступления притока. Направлять 4/7 к A и 3/7 к B. Хозяйства потребляют воду в пределах потребности; efficiency и consumption_fraction равны 1. Избыток идёт вниз по течению. Перелив также поступает в узел распределения. Для каждого сравнения создавай новую модель. Это учебный пример, не эксплуатационная модель.

**Проверьте:** совпадают ли стрелки с вашей схемой? Равное обеспечение — это равные объёмы или равные доли потребности? Здесь выбраны равные доли потребности.

## Запрос 2 — создайте, выполните, покажите баланс

> Создавай по одной короткой ячейке и объясняй простыми словами. Установи закреплённую версию по карточке API. Собери входные данные вместе, оставь код видимым. Создай и проверь сеть. Покажи по месяцам приток, конечный запас, выпуск, перелив, потребление и дефицит каждого хозяйства, сток вниз по течению и ошибку баланса. Построй графики запаса и дефицита. Проверь каждый месяц: начальный запас + приток = конечный запас + потребление A + потребление B + сток вниз по течению. Проверь допустимые пределы запаса. Успешное выполнение не доказывает правильность допущений.

**Независимый ответ:** конечный запас [7, 4, 0, 0, 3, 0]; выпуск [7, 7, 6, 0, 7, 5]. Месяц 1: 6 + 8 − 7 = 7; A получает 4, B — 3. Месяц 3: доступно только 6; A получает 24/7, B — 18/7. Общее потребление — 32, общий дефицит — 10. Сравнивайте неокруглённые числа с небольшим численным допуском.

## Запрос 3 — найдите намеренную ошибку

> Выполни отдельный расчёт с распределением 50/50 под названием «равное обеспечение». Остальные условия не меняй. Соответствует ли это исходному намерению удовлетворять одинаковую долю потребности каждого хозяйства? Покажи доли удовлетворённой потребности и баланс воды. Объясни различие. Исходную модель пока не меняй.

Модель выполняется, баланс сходится, но решение иное. При выпуске 7 хозяйство A получает 3,5 при потребности 4; B потребляет 3, а 0,5 уходит вниз по течению. Один лишь баланс не выявляет ошибку в смысле правила.

> Исправь распределение на одинаковые доли потребности: 4/7 и 3/7. Запусти с исходным начальным запасом. Сохрани проверки баланса и ручного расчёта, покажи, что исправление работает. Если проверка не проходит, объясни причину до изменения кода. Не ослабляй проверки ради успешного выполнения.

## Задание по желанию — измените одно условие

Выберите меньший приток, другой начальный запас, приоритет одному хозяйству или минимальный сток вниз по течению. Для двух последних вариантов нужно точно определить правило; минимум вниз по течению требует нового правила распределения. Сначала предскажите результат.

> Я хочу изменить [одно условие]. Сначала объясни, какие допущения, связи и проверки нужно изменить и кто, по моему ожиданию, выиграет или получит меньше воды. Затем внеси минимальное изменение, выполни расчёт с исходного состояния и сравни с базовым вариантом. Сохрани баланс; рассчитай новый небольшой пример вручную, если исходный численный ответ больше не применим.

В конце объясните соседу свою схему, один результат, одну проверку и одно ограничение. Если времени мало, достаточно правильно объяснить подготовленный результат.

## Подготовка ведущего

Заранее проверьте доступ к Colab и Gemini и установку пакетов. Держите резервный блокнот под рукой. Явно запросите вариант 50/50: не рассчитывайте на случайную ошибку Gemini. Ответы помощника меняются; ручной расчёт и проверки остаются опорой. Упражнение не означает готовность к самостоятельному сопровождению модели или передачу институциональной ответственности.
