ДЗ: MindsDB та ArkhamMirror — OSINT-аналітика та верифікація
Контекст курсу: Урок-03-Верифікація-та-маніпуляції · Матеріали: Матеріали-Урок-03-Верифікація
Інсталяція Docker (крок за кроком): Гайд-Docker-MindsDB-та-ArkhamMirror
Дисклеймер щодо обсягу ДЗ
- Рівень 2 є опційним: його можна повністю пропустити; для зарахування достатньо рівня 1. Рівень 2 — для тих, хто хоче піти далі (додаткові бали / розширення — за правилами викладача).
Навіщо це OSINT-аналітику
- Рівень 1 — лише MindsDB (обов’язково): ти завантажуєш або робиш ingest даних у самому MindsDB (розслідування або відкриті джерела на кшталт OpenSanctions), далі — SQL, агент, діалог із даними — без Arkham і без підключення до бази Arkham.
- Рівень 2 — Arkham + зв’язок з MindsDB (суворо опційно): ти піднімаєш робочий простір верифікації (ingest документів, зображень, подій), а потім підключаєш MindsDB до PostgreSQL Arkham — єдине місце в цьому ДЗ, де два продукти об’єднуються.
Детальні команди для Linux/macOS і підключення контейнерів — у Гайд-Docker-MindsDB-та-ArkhamMirror.
Етика та вибір кейсу (обов’язково)
- Використовуй матеріали лише з дозволених джерел:
- навчальний / функціональний кейс курсу (якщо викладач його видав), або
- публічно опублікована справа / розслідування / датасет з відкритими документами, зображеннями, таблицями (офіційні релізи, OSINT-звіти, відкриті репозиторії даних).
- Заборонено: витоки, приватні чати, закриті бази, дані, зібрані з порушенням закону або умов використання сервісів.
- У звіті вкажи джерело кейсу (посилання або назву пакета матеріалів курсу) і коротко — чому вважаєш його легальним для навчання.
- Не публікуй паролі, API-ключі, JWT, повний
.env. У скрінах і тексті заміни секрети на***.
Що здавати
Папка dz-mindsdb-arkham-<Прізвище>-<Ініціали>/:
| Файл | Зміст |
|---|---|
README.md | Як відтворити твій сетап з нуля (Docker; без секретів) |
report.md | Відповіді на питання рівня 1 + список джерел кейсу; блок рівня 2 — лише якщо ти його виконував |
screenshots/ | Підписані скріни (див. чеклисти нижче) |
Рівень 1 — MindsDB (обов’язково)
У цьому рівні Arkham не встановлюється і не згадується в технічній частині. Не підключай базу PostgreSQL Arkham до MindsDB на рівні 1.
Дані для аналізу
Ти маєш завантажити (upload) або зробити ingest даних безпосередньо в MindsDB — щоб джерело жило в екосистемі MindsDB (файл у Studio, конектор, CREATE DATABASE / інтеграція згідно документації твоєї версії), а не лише «порахувати CSV у редакторі на диску».
Зміст даних — на вибір одне з двох (див. також «Етика»):
- Матеріал, пов’язаний із розслідуванням (навчальний кейс курсу, публічний OSINT-звіт, твій узгоджений з викладачем сценарій) — у вигляді таблиці, якою можна користуватися в MindsDB після завантаження / ingest.
- Відкриті дані через публічний API або готовий відкритий датасет, наприклад санкційні та PEP-реєстри з OpenSanctions (https://www.opensanctions.org/ — датасети / bulk data / документація API за правилами проєкту), або інший легальний відкритий API (офіційна документація, ключі — лише якщо ToS дозволяє навчальне використання).
Мінімум після ingest: одна логічна сутність для аналізу (наприклад сутності з санкційного зрізу, події таймлайну, об’єкти з довідника) — не менше ~30 рядків у таблиці, доступній для SQL у MindsDB, щоб агрегації мали сенс.
Завдання 1.1 — інсталяція та дані всередині MindsDB
- Підніми MindsDB у Docker на Linux або macOS (див. Гайд-Docker-MindsDB-та-ArkhamMirror, частина 1).
- Виконай upload або ingest згідно попереднього підрозділу; у
report.mdкоротко опиши кроки (що саме завантажив / який конектор або URL, без секретів). - Доказ: скрін MindsDB Studio + скрін, де видно підключене джерело / базу / таблицю після завантаження або ingest + короткий фрагмент
docker logsбез секретів.
Завдання 1.2 — SQL для OSINT-питання
Виконай мінімум два осмислені SQL-запити до своїх даних, наприклад:
- розподіл за типом події / джерелом;
- топ-N об’єктів за частотою;
- фільтр за інтервалом дат (таймлайн).
Доказ: скрін редактора SQL + результат таблиці; у report.md встав текст SQL і одне речення: яке аналітичне питання ти ним закриваєш.
Завдання 1.3 — агент MindsDB і чат по даних
- Налаштуй AI Agent (або еквівалент у твоїй версії MindsDB: agent + підключені data sources / knowledge base згідно UI).
- Проведи діалог мінімум з 5 твоїми питаннями до даних; питання мають бути релевантні OSINT (наприклад: аномалії в часі, неузгодженість джерел, що перевірити далі, які зрізи зробити для звіту).
- Доказ: 2–3 скріни діалогу (без ключів API); у
report.md— перелік твоїх 5 питань текстом.
Питання для report.md (рівень 1)
- Яке одне обмеження агента щодо достовірності ти помітив у діалозі?
- Що ти завжди перевіряв би вручну після відповіді агента в справжньому розслідуванні?
Рівень 2 — ArkhamMirror + MindsDB → база Arkham ( опційно)
Не обов’язково для здачі. Якщо не виконуєш рівень 2 — не встановлюй Arkham і не підключай MindsDB до його бази; здай лише рівень 1.
Тут з’являється Arkham. Єдине об’єднання з MindsDB у цьому ДЗ: MindsDB підключається до PostgreSQL Arkham (див. Гайд-Docker-MindsDB-та-ArkhamMirror, частина 3). На рівні 2 ти не повинен повторювати вимогу «без Arkham» з рівня 1 — це окремий сценарій.
Матеріали кейсу
Завантаж у Arkham пакет матеріалів з функціонального кейсу курсу або з публічно опублікованої справи: документи, зображення (якщо є), інші дозволені файли. Мінімальна кількість: 5 файлів різних типів де це можливо (наприклад PDF + кілька зображень + текстовий експорт).
Доказ: скрін Ingest або Documents з видимою назвою проєкту та списком файлів.
Завдання 2.1 — Arkham у Docker
- Підніми ArkhamMirror через Docker Compose (див. гайд, частина 2).
- Перевір доступність API:
GET /api/health(скрін або безпечний фрагмент JSON у звіті).
Завдання 2.2 — мережа Docker: MindsDB ↔ Postgres Arkham
- Забезпеч, щоб контейнер MindsDB міг резолвити
shattered-postgres(типово:docker network connect shattered-network mindsdb). - Створи в MindsDB інтеграцію
CREATE DATABASE ... ENGINE='postgres' ...до Arkham (хостshattered-postgres, порт 5432, облікові дані з твого.env— у звіті лише маски).
Доказ: скрін SHOW DATABASES; + успішний SELECT (наприклад лімітований з arkham_ingest.jobs або іншої схеми, яка є в твоїй версії).
Завдання 2.3 — агент і OSINT-питання вже по базі Arkham
- Додай до агента MindsDB джерело на базі підключеного Arkham Postgres (таблиці / view, які дозволяє політика доступу MindsDB).
- Проведи діалог мінімум з 5 питаннями, орієнтованими на розслідування: статуси обробки, обсяг матеріалів, проєкти, що ще не проіндексовано / «застрягло», які метадані варто звірити з первинним джерелом тощо.
Доказ: 2–3 скріни чату; у report.md — текст 5 питань.
Критерії оцінювання (орієнтир)
Рівень 2 у таблиці нижче застосовується лише якщо ти його обрав; рівня C немає.
| Критерій | Рівень 1 (обов’язково) | Рівень 2 (опційно) |
|---|---|---|
| Розділення інструментів | Тільки MindsDB, без Arkham і без PG Arkham | Arkham + PG + MindsDB лише як зовнішній SQL/агент |
| Кейс і дані | Ingest/upload у MindsDB; розслідування або відкритий API/датасет (напр. OpenSanctions), з описом джерела | Ті самі вимоги + файли в Arkham |
| Агент + чат | 5+ OSINT-питань до своїх даних | 5+ питань до даних Arkham через MindsDB |
| Відтворюваність | README.md | + мережа Docker задокументована |