Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Чи встигнеш переїхати на інший берег Дніпра за 3 години: прогноз атаки на Київ з публічних Telegram-каналів, живий сайт і чати з ШІ. KSE AI Agentic School.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Kyianyn Routine: чи встигнеш переїхати на інший берег за 3 години Сайт щогодини відповідає киянам «Так», «Ризиковано» або «Ні» на питання: чи встигнеш переїхати на інший берег Дніпра, поки в наступні 3 години на Київ не полетять дрони чи ракети. Для суддів KSE AI Agentic School тут увесь шлях проєкту, зробленого разом з Claude Code: дані, модель, сайт і чати з ШІ. Відкрити сайт | Як це працює (презентація, 12 розділів) | Чати з ШІ | Завдання檢視完整 README ↗
Сайт щогодини відповідає киянам «Так», «Ризиковано» або «Ні» на питання: чи встигнеш переїхати на інший берег Дніпра, поки в наступні 3 години на Київ не полетять дрони чи ракети. Для суддів KSE AI Agentic School тут увесь шлях проєкту, зробленого разом з Claude Code: дані, модель, сайт і чати з ШІ.
Відкрити сайт | Як це працює (презентація, 12 розділів) | Чати з ШІ | Завдання
flowchart LR
A["Telegram: 10 каналів і єТривога"] --> B["Jev розмічає пости"]
B --> C["silver: тривоги, атаки, хвилі дронів"]
C --> D["7 сигналів на кожну годину"]
D --> E["модель logit_signals"]
E --> F["ймовірність атаки на 3 години"]
F --> G["сайт: Так, Ризиковано або Ні"]
R["щосуботи о 12:00: навчання на минулих годинах"] --> E
t.me/s; єТривогу читає лише для того, щоб не пропустити початок тривоги.Увесь проєкт зроблено в Claude Code за 7 сесій, з 10 по 12 жовтня 2026. Головний агент (Claude Opus) ділив роботу на шматки: кожен шматок будував окремий агент, а приймав свіжий агент, який лише читав. Він починав з «не пройдено», сам запускав перевірки, підкладав вхід, на якому перевірка мусить впасти, і читав рядки вручну. Моделі шукали 4 агенти-дослідники, 2 судді і 3 скептики (ADR-0009), дані перед моделюванням перевіряли 5 агентів аудиту (ADR-0007), сигнали підготовки удару перечитали 309 агентів Haiku (HISTORY.md). Автор ставив питання, ухвалював рішення і сумнівався в результатах.
Чати. Повний експорт без секретів (ADR-0014), як читати: chats/README.md, усі підряд: all-chats.md (3.9 МБ, GitHub показує його лише як текст). У перших шести сесіях 109 повідомлень автора.
Де автор зупинив або виправив ШІ.
Розділ 12 презентації називає п'ять помилок ШІ, які зловили й виправили: таблиця порівняння показувала тестові дані на кожному запуску; 15 хибних годин удару; переписані пости, що починали події раніше; питання про поріг; тест на витік, що не бачив даних у змінних програми. Повний список з тим, хто зловив і де записано: HISTORY.md, «Помилки і як їх виправлено». Рішення автора: про дані, у моделюванні.
Що пішло не так. Перше питання, ракетний удар у наступні 3 години, мало замало подій: 9 атак на тестових даних, і жодна модель не довела, що краща за просте правило. Нічна модель попередила лише про 2 з 7 ракетних ночей. ШІ помилявся: вигадав ціль, показував тестові числа щоразу, просив обрати поріг руками.
Як змінили підхід. Правила вибору записували до чисел, тестові дані відкривали один раз, кожен шматок приймав свіжий агент, мітку звіряли з незалежними джерелами. Питання міняли, коли відповідь не давала людині рішення.
Чому фінал кращий. Він відповідає на питання, з яким можна щось зробити; на свіжих даних він так само чесний, як на старих (після «низький ризик» тихо у 83% випадків на обох наборах); і працює наживо.
Linux, Python 3.11 або новіший (перевірено на 3.14.4). Версії пакетів зафіксовано в pyproject.toml.
git clone https://github.com/yegqr/kyianyn-routine
cd kyianyn-routine
python3 -m venv .venv
.venv/bin/pip install -e .
Усі команди з кореня репозиторію. Час виміряно 2026-10-11 на цій машині, тести 2026-10-12.
| Що | Команда | Час |
|---|---|---|
| тести (92) | choom -n 500 -- .venv/bin/python -I -m unittest discover -s tests | 79 с |
| поділ на навчальні і тестові дані | .venv/bin/python -I -m airalerts.evaluation.split | менше 1 с |
| моделі ударів | .venv/bin/python -I -m airalerts.strikes.<naive|share_table|logistic|lgbm> | до 4 с кожна |
| моделі ночей | .venv/bin/python -I -m airalerts.nights.<rules|stats|ml> | до 13 с |
| моделі спокою | .venv/bin/python -I -m airalerts.quiet.<baselines|linear|trees> | до 21 с |
| оцінювач ударів | .venv/bin/python -I -m airalerts.strikes.score final | 36 с |
| оцінювач ночей | .venv/bin/python -I -m airalerts.nights.score final | 3 с |
| оцінювач спокою | .venv/bin/python -I -m airalerts.quiet.score final | 57 с |
| прогноз для людини | .venv/bin/python -I -m airalerts.quiet.forecast ["YYYY-MM-DD HH:MM" | day YYYY-MM-DD] | 1.5 с |
choom -n 500 -- лише знижує пріоритет процесу, коли системі бракує пам'яті; без нього команда та сама.data/predictions/ (не в git), потім оцінювач читає їх і рахує всім однакові мірила.final рахує і тестові дані; так згенеровано три таблиці в reports/, і повтор відтворив їх байт у байт. Без аргументу оцінювач рахує лише навчальні дані і переписує таблицю в reports/; check NAME друкує одну модель проти опорної.test_gold_hourly, test_nights) читає silver, тож на чистій копії спершу треба зібрати bronze і silver (ARCHITECTURE.md, «Як запустити», пункти 1..2). Без кешу відповідей Jev це коштує гроші і дає трохи інші числа (DATASET.md).Приклад прогнозу (.venv/bin/python -I -m airalerts.quiet.forecast "2026-09-18 17:00"):
Київ, 2026-09-18 17:00: прогноз на 17:00..20:00
Зараз: тихо.
Наступні 3 години: швидше неспокійно, високий ризик.
Ймовірність, що прилетять дрони або ракети: 54%.
Чому: годин від останньої атаки 1 (+); запуски хвиль дронів за 3 год 10 (+); година доби 17:00 (-).
Що сталося насправді: неспокійно: дрони, ракети.
Живий сайт (ARCHITECTURE.md, «Живий сайт»; циклу потрібен ключ Jev у змінній TYPESAFE_API_KEY):
| Що | Команда | Коли |
|---|---|---|
| створити живі дані | .venv/bin/python -I -m airalerts.live.datadir init data/live | один раз |
| цикл | AIRALERTS_DATA=data/live .venv/bin/python -I -m airalerts.live.cycle --out /var/www/kyianyn-routine | таймер, кожні 5 хв |
| перенавчання | AIRALERTS_DATA=data/live .venv/bin/python -I -m airalerts.live.model train | таймер, субота 12:00 за Києвом |
| живі сигнали проти gold | .venv/bin/python -I -m airalerts.live.features check | після зміни коду |
| чати з ШІ | .venv/bin/python -I scripts/chats/export.py --deny <список приватних слів> | перед публікацією (chats/README.md) |
Лише місто Київ, щоб спершу перевірити ідею на одному місті; з травня 2026, бо після масованого обстрілу 14 травня діє новий режим атак (METHODOLOGY.md, розділи 1..2).
| Джерело | Що дає | Як | Наживо |
|---|---|---|---|
| Telegram КМВА @VA_Kyiv і єТривога | тривоги по Києву, початок і кінець до хвилини | публічна сторінка t.me/s, шаблон тексту | так |
| 7 київських каналів (КМВА, Кличко, монітори) | мітки «ракетний удар», «ракетна загроза», «дрони на Київ» за годинами | t.me/s і Jev | так |
| 6 моніторингових каналів | сигнали підготовки: стратегічна авіація, МіГ-31К, хвилі ударних дронів | t.me/s і Jev | так |
| Open-Meteo, модель ECMWF IFS | прогноз погоди з часом видачі | JSON API | ні |
| власний модуль | сонце і місяць над Києвом | код, без мережі | ні |
| таблиця 100 дат, Kremlin, Вікіпедія, Telegram ОП | символічні дати, візити, саміти, переговори | CSV, HTML, MediaWiki API | ні |
| dronestrikemap.com | удари по Росії і запуски по Україні, день відомий через 30 год | JSON API | ні |
Деталі кожного джерела: PARSING.md. Чому наживо лише Telegram: погода, політика, дати й удари по Росії прогнозу не допомагають (sources.md). Усього 17 каналів, 163 042 пости (HANDOFF.md); 36 006 платних викликів Jev, $9.06 (HISTORY.md).
Три рівні (ADR-0002): bronze (джерела як є), silver (11 таблиць, у кожного рядка available_at, коли він став відомим), gold (таблиця на питання: рядок на момент рішення t, сигнали лише з того, що відомо до t, ціль після t). Заморожена версія gold з контрольними сумами: DATASET.md.
| Таблиця gold | Етап | Рядки | Ціль | Частка цілі на навчальних даних |
|---|---|---|---|---|
kyiv_hourly | 1 | 3909 годин | ракетний удар у [t, t + 3 год) | 107 з 2890 (3.7%) |
kyiv_nightly | 2 | 159 ночей | ракетний удар з 22:00 до 08:00 | 23 з 117 (19.7%) |
kyiv_quiet | 3, 4 | 3909 годин | дрони, ракетна загроза чи удар у наступні 3 год | 975 з 2890 (33.7%) |
Перевірка (VERIFICATION.md):
tests/test_gold_hourly.py);Відомі вади (DATASET.md): дронова мітка правильна приблизно у 80% годин (20 з 25 прочитаних); одна тривога склеєна і в даних триває 17.6 год; ручні виправлення мітки зроблено після подій, у живому сайті їх немає.
Поділ і правила (ADR-0008): тестові дані це останні 6 тижнів, з 2026-08-29 12:00 за Києвом; їх відкривали один раз на кожне питання. Усе обирали на навчальних даних (у звітах «розробка»): 8 тижнів з 2026-07-04, модель щоразу вчиться на минулому і прогнозує наступний тиждень. Правила, задані наперед: до 6 варіантів налаштувань на модель, список до запуску; переможець з найкращим BSS на навчальних даних, але простіший, якщо він гірший менш ніж на 0.01; межі ризику за правилом з навчальних даних.
Кожне наступне питання з'являлось, коли попереднє давало відповідь, з якою людина нічого не може зробити (HISTORY.md, по етапах, там вони звуться епохами). Частка за 7 днів тут найпростіший прогноз без моделі: яка частка 3-годинних вікон за останні 7 днів мала атаку; цю частку він каже для кожної години.
| Етап | Питання | Що вийшло на тестових даних | Детально |
|---|---|---|---|
| 1. Удари | ракетний удар по Києву в наступні 3 год, щогодини | 7 з 7 нічних атак моделі попередили, коли атака вже починалась; обидві денні пропустили; кращої за частку за 7 днів не доведено | ADR-0009, таблиця |
| 2. Ночі | о 22:00: спати в коридорі чи в кімнаті | не передбачити: переможець попередив про 2 з 7 ракетних ночей; тримається лише «ніч після ракетної ночі тиха» (23 з 23 на навчальних, 6 з 7 на тестових) | ADR-0010, таблиця |
| 3. Спокійні години | чи буде атака на Київ у наступні 3 год, дрони теж | тишу не гарантує, але після «низький ризик» тихо у 83% випадків, як і на навчальних | ADR-0011, таблиця, model.md |
| 4. Що важить | що найбільше впливає на прогноз і що парсити наживо | найбільше важать хвилі дронів з курсом на Київ; парсити 10 каналів Telegram, а погоду, політику, дати й удари по Росії ні | importance.md, sources.md |
| Фінал | живий сайт щогодини відповідає, чи встигнеш переїхати на інший берег, тобто чи буде тихо наступні 3 години |
Фінальна модель logit_signals на тихих годинах (model.md, розділ 10):
| Навчальні дані | Тестові дані | |
|---|---|---|
| годин, з них з атакою в наступні 3 год | 1067, 31% | 412, 71% |
| BSS | 0.094 [0.045, 0.148] | 0.284 [0.189, 0.370] |
| ROC AUC | 0.684 [0.621, 0.746] | 0.749 [0.594, 0.837] |
| після «низький ризик» атаки не було | 83% | 83% |
| після «високий ризик» атака була | 49% | 80% |
| попередила про атаки | 80% | 98% |
| каже «низький ризик» | 37% годин | 7% годин |
Коротко про кожен етап:
kyianyn-routine.isakov.fyi відповідає на одне питання і показує ймовірність, живу мапу і що зараз ходить через Дніпро: метро, міська електричка і мости для авто (crossing.md). Нової моделі немає: та сама логістична регресія етапу 3 з тими самими межами 19.7% і 30% (ADR-0012).
t.me/s, мітки Jev, silver, сигнали моделі і JSON для сайту. Живі сигнали на історії збігаються з gold kyiv_quiet на всіх 3909 годинах (тест).Що працює.
reports/ байт у байт.Де межі.
Практична цінність. Прогноз не дозвіл виходити з укриття. Він каже, чи ризик у наступні 3 години нижчий чи вищий за звичайний, з причинами: «зараз хвилі дронів летять на Київ» або «атака щойно була». Офіційна тривога в наступні 3 години після «низький ризик» була у 17% випадків на тестових даних (5 з 29), після «високий ризик» у 74% (forecast.md).
src/airalerts/ код пакета
paths db telegram jev спільне: шляхи, DuckDB, Telegram, клієнт Jev з кешем
silver/ gold/ рівні даних; gold: kyiv_hourly, kyiv_nightly, kyiv_quiet
evaluation/ поділ за часом, мірила, перевірка тиждень за тижнем, інтервали
strikes/ етап 1: naive, share_table, logistic, lgbm, score
nights/ етап 2: rules, stats, ml, score
quiet/ етап 3: baselines, linear, trees, score, forecast
live/ живий сайт: забір, сигнали, модель, JSON, цикл
scripts/
bronze/ збирачі сирих даних (лише стандартна бібліотека Python)
verify/ зовнішня перевірка мітки і сигналів, аудит gold
analysis/ аналіз тестових даних, важливості і частоти перенавчання, лише друк
site/ дані для презентації (мапа, довіра, прогнози) і викладка сайту
chats/ експорт чатів з ШІ з маскуванням секретів
site/ статичний сайт: головна і презентація
deploy/ systemd, nginx
tests/ витік, поділ, моделі кожного етапу, живий сайт (92 тести)
chats/ чати з Claude Code, 7 сесій
data/ gold і verification у git; bronze, silver, predictions, live ні
reports/ таблиці порівняння, пишуть лише оцінювачі
docs/ документи нижче; docs/img: картинки цього файлу
| модель етапу 3 наживо, межі ті самі |
| ADR-0012, ADR-0013 |