ДЗ: MindsDB та ArkhamMirror — OSINT-аналітика та верифікація

Навігація курсу: Хаб: ДЗ · Урок: Урок-03

Контекст курсу: Урок-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.


Етика та вибір кейсу (обов’язково)

  1. Використовуй матеріали лише з дозволених джерел:
    • навчальний / функціональний кейс курсу (якщо викладач його видав), або
    • публічно опублікована справа / розслідування / датасет з відкритими документами, зображеннями, таблицями (офіційні релізи, OSINT-звіти, відкриті репозиторії даних).
  2. Заборонено: витоки, приватні чати, закриті бази, дані, зібрані з порушенням закону або умов використання сервісів.
  3. У звіті вкажи джерело кейсу (посилання або назву пакета матеріалів курсу) і коротко — чому вважаєш його легальним для навчання.
  4. Не публікуй паролі, 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 у редакторі на диску».

Зміст даних — на вибір одне з двох (див. також «Етика»):

  1. Матеріал, пов’язаний із розслідуванням (навчальний кейс курсу, публічний OSINT-звіт, твій узгоджений з викладачем сценарій) — у вигляді таблиці, якою можна користуватися в MindsDB після завантаження / ingest.
  2. Відкриті дані через публічний 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)

  1. Яке одне обмеження агента щодо достовірності ти помітив у діалозі?
  2. Що ти завжди перевіряв би вручну після відповіді агента в справжньому розслідуванні?

Рівень 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 ArkhamArkham + PG + MindsDB лише як зовнішній SQL/агент
Кейс і даніIngest/upload у MindsDB; розслідування або відкритий API/датасет (напр. OpenSanctions), з описом джерелаТі самі вимоги + файли в Arkham
Агент + чат5+ OSINT-питань до своїх даних5+ питань до даних Arkham через MindsDB
ВідтворюваністьREADME.md+ мережа Docker задокументована