Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/7284| Title: | Система виявлення фейкових новин з використанням штучного інтелекту |
| Authors: | НЕЧИПОРЕНКО, Ольга ЗАХАРЧЕНКО, Іван |
| Keywords: | БРАУЗЕР;НОВИННА СТАТТЯ;СЕРВЕР;AI;ФАКТЧЕКІНГ;ІДЕНТИФІКАТОР;AMAZON BEDROCK |
| Issue Date: | 2025 |
| Abstract: | Метою виконання даної кваліфікаційної роботи на здобуття освітнього ступеня «бакалавр» є створення інформаційної системи пошуку фейкових новин з використання штучного інтелекту. Загальний обсяг роботи становить 83 сторінок. У роботі 12 рисунків, 1 таблиця. Для виконання роботи використано 25 літературних джерел. Головне завдання це розробка інтелектуальної системи, яка автоматично аналізує контент онлайн-статей у режимі реального часу та інформує користувача про ймовірність наявності неправдивої або маніпулятивної інформації. Стислий опис розділів кваліфікаційної роботи бакалавра складається з аналізу предметної області та постановки задачі; вибору технологій та інструментальних засобів; розробка системи виявлення фейкових новин з використання штучного інтелекту. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/7284 |
| Appears in Collections: | 123 Комп’ютерна інженерія (Комп'ютерні системи та мережі) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 1__ТИТУЛКА_Захарченко-merged.pdf Restricted Access | 2.94 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему: «Система виявлення фейкових новин з
використанням штучного інтелекту»
ЧДТУ.252180.004 ПЗ
Виконав: студент 4 курсу, групи КМ-2105
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Комп’ютерні системи
та мережі»
Іван ЗАХАРЧЕНКО
Керівник
к.т.н., доцент
Ольга НЕЧИПОРЕНКО
Рецензент
к.т.н, доцент, доцент кафедри комп‘ютерної
інженерії та інформаційних технологій
Черкаського державного фахового бізнес-
коледжу
Марія ЗАХАРОВА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2025 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор _____________ Віра БАБЕНКО
«28» лютого 2025 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
Захарченко Івану Сергійовичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Система виявлення фейкових новин з використанням штучного
інтелекту
Керівник роботи: к.т.н., доцент Нечипоренко Ольга Володимирівна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «25» лютого 2025 р. № 53/03-03
2. Строк подання студентом роботи:
3. Вихідні дані до роботи:
Архітектура системи – плагін для браузера; веббраузер - Google Chrome; мова програмування –
JavaScript; інтерфейс роботи з AI - хмарний сервіс AWS Amazon Bedrock; аналіз контенту
новинних статей - механізми фактчекінгу; Технологічний стек для реалізації логіки взаємодії
між розширенням для браузера, AI-сервісами та базою даних - поєднання Python та PostgreSQL,
використання різних моделей штучного інтелекту.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
1. Аналіз предметної області та постановка задачі
2. Вибір технологій та інструментальних засобів
3. Розробка системи виявлення фейкових новин з використанням штучного інтелекту
4. Захист інформаційної системи виявлення фейкових новин з використаннямштучного інтелекту
Висновки
Додатки
Список використаних джерел
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 28 лютого 2025 року
КАЛЕНДАРНИЙ ПЛАН
Термін
№ з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Збір матеріалу 01.03 – 14.03 виконано
2 Обробка матеріалу 15.03 – 20.03 виконано
3 Обґрунтування актуальності виконання досліджень 21.03 - 25.03 виконано
4 Оцінка стану проблеми, виокремлення дослідницьких виконано
задач, постановка задачі дослідження 26.03 – 01.04
5 Викладення сутності і результатів дослідження 03.04 - 08.04 виконано
6 Практичне застосування результатів дослідження 09.04 - 27.04 виконано
7 Оформлення результатів в пояснювальну записку 28.04 - 02.05 виконано
8 Подання роботи на відгук та рецензування 15.05 - 20.05 виконано
Студент ___________________________ Іван ЗАХАРЧЕНКО
(підпис)
Керівник роботи ___________________________ Ольга НЕЧИПОРЕНКО
(підпис)
АНОТАЦІЯ
Метою виконання даної кваліфікаційної роботи на здобуття освітнього
ступеня «бакалавр» є створення інформаційної системи пошуку фейкових новин
з використання штучного інтелекту.
Загальний обсяг роботи становить 83 сторінок. У роботі 12 рисунків,
1 таблиця. Для виконання роботи використано 25 літературних джерел.
Головне завдання це розробка інтелектуальної системи, яка автоматично
аналізує контент онлайн-статей у режимі реального часу та інформує
користувача про ймовірність наявності неправдивої або маніпулятивної
інформації.
Стислий опис розділів кваліфікаційної роботи бакалавра складається з
аналізу предметної області та постановки задачі; вибору технологій та
інструментальних засобів; розробка системи виявлення фейкових новин з
використання штучного інтелекту.
Ключові слова: БРАУЗЕР, НОВИННА СТАТТЯ, СЕРВЕР, AI,
ФАКТЧЕКІНГ, ІДЕНТИФІКАТОР, AMAZON BEDROCK
ANOTATION
The purpose of this qualification work for the degree of Bachelor is an
information system for searching for important news using artificial intelligence.
The total volume of the work is 83 pages. The work contains 12 figures, 1 table.
25 literary sources were used to perform the work.
The main task is to develop an intelligent system that automatically analyzes the
content of online articles in real time and informs the user about the likelihood of false
or manipulative information.
A brief description of the sections of the bachelor's qualification work consists
of an analysis of the subject area and the formulation of the task; selection of
technologies and tools; development of an development of a fake news detection
system using artificial intelligence.
Key words: BROWSER, NEWS ARTICLE, SERVER, AI, FACT-CHECKING,
IDENTIFIER, AMAZON BEDROCK
ЗМІСТ
ВСТУП……………………………………………………………………………..4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ…….…...7
1.1 Аналіз існуючих систем………………………...………….…………..7
1.2 Постановка задачі………...………………………………………...…14
1.3 Висновок до розділу…… ………………………………….…………18
2 ВИБІР ТЕХНОЛОГІЙ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ……….......19
2.1 Огляд існуючих технологій……………………………….………….19
2.2 Обґрунтування вибору…..………………………………………...….28
2.3 Висновок до розділу ……………………………………….…………33
3 РОЗРОБКА СИСТЕМИ ВИЯВЛЕННЯ ФЕЙКОВИХ НОВИН З
ВИКОРИСТАННЯМ ШТУЧНОГО ІНТЕЛЕКТУ…………………………35
3.1 Структура системи……………...………………………………..…...35
3.2 Опис функцій системи………………………………………………..40
3.3 Технічні вимоги для роботи з системою……………………………..44
3.4 Оцінка ефективності………………………………………………….47
3.5 Висновки до розділу…………………………………………………..50
4 ЗАХИСТ СИСТЕМИ ВИЯВЛЕННЯ ФЕЙКОВИХ НОВИН З
ВИКОРИСТАННЯМ ШТУЧНОГО ІНТЕЛЕКТУ ………..…..………..….51
4.1 Огляд існуючих рішень …………………..………….……………….51
4.2 Реалізація захисту даних користувачів……………………….….…..56
4.3 Висновки до розділу…………..…………………………….…….…..58
ВИСНОВКИ……………………………………………………………………...60
ЧДТУ.252180.004 ПЗ
Змн. Арк. № докум. Підпис Дата
РозрКобив Захарченко І.С Система виявлення фейкових Літ. Лист Листів
Керівник Нечипоренко О.В. новин з використанням 2 83
Рецеанзент Захарова М.В. штучного інтелекту
Н.Контроль Гресько С.О. Кафедра ІБ та КІ
ф Пояснювальна записка
Затвердив Бабенко В.Г. гр. КМ-2105
е
д
р
а
К
К
-
0
6
ДОДАТКИ:
А – 482.ЧДТУ.52180-01 Система виявлення фейкових новин з
використанням штучного інтелекту
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………...………...82
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 3
ВСТУП
Актуальність теми. У сучасному інформаційному суспільстві стрімке
поширення фейкових новин становить серйозну загрозу для об’єктивного
сприйняття реальності, довіри до медіа та демократичних процесів. Соціальні
мережі та онлайн-ЗМІ стали основними джерелами інформації для більшості
людей, що значно спростило маніпулювання громадською думкою. У зв’язку
з цим виникає потреба в ефективних інструментах, які допомагають
користувачам своєчасно розпізнавати неправдиві повідомлення.
Традиційні методи перевірки інформації, як правило, передбачають
ручну перевірку фактів і займають багато часу, що робить їх малоефективними
у боротьбі з масштабним поширенням фейків. Саме тому актуальним є
використання новітніх технологій, зокрема штучного інтелекту, для
автоматизованого аналізу контенту в режимі реального часу. Такі рішення
здатні оперативно реагувати на появу сумнівних публікацій і попереджати
користувачів про можливу дезінформацію.
Розробка системи виявлення фейкових новин у вигляді браузерного
плагіна, що використовує AI та механізми фактчекінгу, є відповіддю на
нагальну потребу суспільства в захисті від інформаційних маніпуляцій. Такий
підхід дозволяє інтегрувати інструмент безпосередньо у звичне середовище
користувача та забезпечити максимальну зручність і ефективність перевірки
новин.
Метою кваліфікаційної роботи є розробка інтелектуальної системи
виявлення фейкових новин у вигляді браузерного плагіна, яка з
використанням штучного інтелекту та механізмів автоматизованого
фактчекінгу дозволяє аналізувати контент онлайн-статей у режимі реального
часу та інформувати користувача про ймовірність наявності неправдивої або
маніпулятивної інформації.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 4
Для досягнення сформульованої мети необхідно вирішити такі задачі:
1. Проаналізувати сучасні підходи та інструменти для виявлення фейкових
новин.
2. Розробити архітектуру системи, яка включає браузерний плагін,
серверну частину та інтеграцію з AI-сервісом.
3. Реалізувати механізм отримання текстового контенту новин із
вебсторінок через плагін Chrome.
4. Забезпечити передачу даних на сервер для обробки за допомогою
Amazon Bedrock або аналогічного інструменту ШІ.
5. Реалізувати алгоритм аналізу новин з використанням методів
автоматизованого фактчекінгу.
6. Розробити систему індикації результату аналізу у вебінтерфейсі
користувача.
7. Провести тестування розробленої системи на реальних новинних
статтях та оцінити її ефективність.
На даний момент існує багато джерел інформації, в яких висвітлюється
ця тема , наприклад “Fake News, Disinformation, and Propaganda: A Guide to
Data Science for Social Media and News” авторів Іsun An, Haewoon Kwak, Hany
M. SalahEldeen, Ingmar Weber книга фокусується на технічних методах
виявлення фейкових новин із використанням інструментів науки про дані,
машинного навчання та аналізу соціальних мереж. У ній розглядаються такі
ключові теми:
1. Збір і попередня обробка новинного та соціального контенту.
2. Аналіз мови (NLP) для виявлення маніпулятивних або брехливих
текстів.
3. Методи класифікації тексту (наприклад, Naive Bayes, SVM, нейронні
мережі).
4. Виявлення ботів, ферм тролів та координації у поширенні дезінформації.
5. Створення систем автоматизованого фактчекінгу.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 5
6. Приклади реалізації у Python, з використанням бібліотек Scikit-learn,
TensorFlow, NLTK тощо.
Одержані в кваліфікаційній роботі результати мають практичне
значення та полягають у створенні зручного інструменту для автоматичного
виявлення фейкових новин, що допомагає захистити користувачів від
дезінформації, підвищити рівень медіаграмотності та сприяє безпечному
інформаційному середовищу. Система демонструє застосування сучасних AI-
технологій у браузерах і може бути використана в освіті, медіа, бізнесі або як
основа для подальшого розвитку комерційного продукту.
Кваліфікаційна робота складається з 4-х розділів, в яких подається
інформація про:
1. обрану предметну область дослідження та про постановку задачі;
2. огляд існуючих технологій, за допомогою яких можна реалізувати
подібну систему та обґрунтування вибору тієї чи іншої технології;
3. реалізацію системи: відображення структури системи, опис функцій
кожної частини системи, технічні вимоги до системи а також практична
оцінка ефективності роботи;
4. розробка захисту інформації для системи.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває основні методики та підходи для розробки подібних
автоматизованих систем.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 6
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ
1.1 Аналіз існуючих систем
У сучасному світі інформація є одним із найвпливовіших інструментів,
який формує свідомість, поведінку та рішення людей. Щодня мільйони
користувачів отримують новини через соціальні мережі, онлайн-видання та
месенджери, де поширення інформації відбувається надзвичайно швидко —
без перевірки фактів або редакторського контролю. Це створює сприятливе
середовище для поширення фейкових новин, маніпуляцій і пропаганди.
Фейкові новини часто використовуються як інструмент впливу в
інформаційній війні, політичній боротьбі, економічному тиску або соціальних
конфліктах. Їх мета — викликати емоційну реакцію, посіяти недовіру,
роз’єднати суспільство або змусити людей діяти в чиїхось інтересах.
Наприклад, неправдиві повідомлення можуть спонукати людей масово
скуповувати продукти, голосувати за певних кандидатів чи вороже ставитися
до інших соціальних груп. Усе це підриває стабільність, безпеку та
демократичні цінності.
Крім того, дезінформація може загрожувати і на особистому рівні.
Поширення неправдивої медичної інформації під час пандемій, наприклад,
може призвести до небезпечних рішень щодо здоров’я. Або ж неправдиві
економічні новини можуть впливати на фінансові рішення, що призводить до
втрат.
Тому вміння розпізнавати фейкові новини — це ключова навичка XXI
століття, що допомагає зберегти критичне мислення, не піддаватися впливу
маніпуляцій і приймати зважені, обґрунтовані рішення. Індивідуальна
здатність до аналізу інформації формує колективну стійкість суспільства до
пропаганди, забезпечує прозорість у публічному просторі й сприяє розвитку
зрілої, відповідальної громадянської позиції.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 7
В умовах зростаючої кількості інформаційних загроз та масового
поширення дезінформації, питання розпізнавання фейкових новин набуває
особливої актуальності для України. Інформаційна безпека стала невід’ємною
складовою національної безпеки, адже вплив неправдивих повідомлень здатен
дестабілізувати суспільство, посіяти паніку, підірвати довіру до державних
інституцій і спровокувати суспільні конфлікти.
Неправдиві або маніпулятивні новини особливо небезпечні в періоди
соціальних потрясінь, політичних кампаній чи загострення безпекової
ситуації. Вони можуть впливати на прийняття рішень, створювати викривлену
картину реальності, а також шкодити громадському порядку та суспільній
злагоді. У такому середовищі критичне мислення та вміння перевіряти
джерела інформації є важливими навичками кожного громадянина.
У зв’язку з цим розробка автоматизованих засобів виявлення фейкових
новин із використанням сучасних технологій штучного інтелекту є важливим
завданням. Такі системи можуть значно знизити рівень впливу дезінформації,
підвищити рівень обізнаності користувачів, зміцнити інформаційну стійкість
суспільства та сприяти збереженню демократичних цінностей в Україні.
У сучасних умовах, коли інформаційний простір перенасичений
повідомленнями сумнівної достовірності, важливу роль відіграють
спеціалізовані сервіси фактчекінгу — платформи, що дозволяють перевіряти
правдивість новин і виявляти фейки. Нижче наведено приклади таких
ресурсів, які активно використовуються як в Україні, так і за її межами.
StopFake — це український незалежний фактчекінговий проєкт, який
був започаткований у березні 2014 року. Його створили викладачі, випускники
та студенти магістерської програми з журналістики Києво-Могилянської
академії як відповідь на стрімке зростання обсягу фейкових новин та
маніпулятивної пропаганди, які почали активно поширюватися у зв’язку з
подіями в Україні. Зовнішній вигляд ресурсу зображено на рисунку 1.1.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 8
Рисунок 1.1 – Фактчекінговий проєкт StopFake
Основна мета проєкту StopFake полягає в виявленні, перевірці та
спростуванні неправдивої інформації, що стосується України в
інформаційному просторі — як всередині країни, так і на міжнародному рівні.
Особливу увагу платформа приділяє повідомленням, які мають ознаки
дезінформації або пропаганди, та новинам, що можуть вплинути на
громадську думку або міжнародний імідж України.
StopFake дотримується принципів прозорості, журналістської етики та
достовірності джерел. Команда перевіряє контент за допомогою ретельного
аналізу фактів, порівняння з офіційними даними, первинними джерелами,
публікаціями міжнародних медіа та думками експертів. У випадку виявлення
неправдивої інформації, StopFake публікує пояснення щодо того, в чому
полягає фейк, які факти були перекручені або вигадані, та наводить правдиву
версію подій.
Проєкт StopFake функціонує багатьма мовами — українською,
англійською, російською, іспанською, болгарською тощо, що дає змогу
боротися з дезінформацією не лише в Україні, а й за її межами. Крім текстових
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 9
матеріалів, платформа створює відеоновини, аналітичні програми та подкасти,
у яких роз’яснює виявлені фейки та навчальні матеріали з медіаграмотності.
StopFake активно проводить тренінги, воркшопи та лекції для
журналістів, студентів, державних службовців і громадських активістів,
навчаючи методам перевірки інформації. Проєкт також співпрацює з низкою
міжнародних організацій, таких як EUvsDisinfo, The Poynter Institute, IFCN
(International Fact-Checking Network), та бере участь у глобальних ініціативах
із боротьби з дезінформацією.
Проєкт StopFake став одним із ключових інструментів у боротьбі за
правду в умовах гібридної інформаційної війни. Його діяльність сприяє
формуванню медіаграмотного суспільства, підвищенню обізнаності громадян
щодо маніпулятивних технік, захисту національного інформаційного
простору та покращенню іміджу України в очах світової спільноти.
Таким чином, StopFake не лише виконує важливу місію з виявлення
неправдивих новин, але й активно формує культуру відповідального
споживання інформації, що є критично важливим для сталого розвитку
демократичного суспільства.
Snopes — це один із найбільш відомих і авторитетних фактчекінгових
сайтів у світі, заснований у 1994 році американською парою Бредом і
Барбарою Фішманами. Платформа отримала популярність завдяки своїй
здатності перевіряти інформацію, що поширюється через інтернет, а також
виявляти фейки, чутки, міфи, і навіть конспірологічні теорії. Snopes є однією
з перших організацій, яка почала систематично працювати над перевіркою
фактів в епоху інтернету.
Основною метою Snopes є надання користувачам об’єктивної та
перевіреної інформації про різні події та твердження, які можуть бути
неправдивими або маніпулятивними. Сайт охоплює широкий спектр тем: від
політики та наукових відкриттів до інтернет-міфів і чуток. Snopes зазвичай
спростовує або підтверджує конкретні заяви, надаючи докладні роз’яснення
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 10
та посилаючись на надійні джерела. Зовнішній вигляд ресурсу зображено на
рисунку 1.2.
Рисунок 1.2 – Фактчекінговий ресурс Snopes
Snopes працює за допомогою детального дослідження джерел
інформації, використовуючи факти, документи та свідчення. Для перевірки
окремих фактів експерти сайту часто звертаються до офіційних звітів і заяв
урядів, публікацій наукових установ, медіа-ресурсів з перевіреною репутацією
та свідчень експертів у відповідних галузях.
Snopes став ключовим елементом сучасного фактчекінгу. Його
діяльність істотно змінила підхід до журналістики, вносячи елементи
перевірки фактів у процес створення новин [1]. Snopes був і залишається
незамінним ресурсом для журналістів, блогерів, студентів і всіх, хто прагне
дізнатися правду за допомогою об’єктивних перевірок.
Snopes активно співпрацює з іншими фактчекінговими платформами, а
також отримує фінансування від різних благодійних організацій, які
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 11
підтримують боротьбу з дезінформацією. Окрім цього, сайт працює в рамках
International Fact-Checking Network (IFCN), що надає додаткову верифікацію
якості перевірок та дотримання журналістських стандартів.
Google Fact Check Explorer – це інструмент, розроблений компанією
Google, який надає користувачам можливість швидко перевірити
достовірність інформації, що циркулює в інтернеті. Цей сервіс був запущений
у 2017 році і став частиною ініціативи Google по боротьбі з дезінформацією,
що поширюється через інтернет, зокрема в соцмережах і новинних
платформах.
Google Fact Check Explorer дозволяє користувачам здійснювати пошук
фактчеків з різних надійних джерел, зокрема від перевірених фактчекінгових
організацій, таких як Snopes, FactCheck.org, PolitiFact та інші. Інструмент
зібрав фактично всі перевірки фактів з цих джерел і організував їх в одну базу
даних, що значно полегшує процес пошуку достовірної інформації. Зовнішній
вигляд ресурсу зображено на рисунку 1.3.
Рисунок 1.3 – Фактчекінговий ресурс Snopes
Основною перевагою Google Fact Check Explorer є те, що він дає змогу
користувачам здійснювати пошук фактчекінгових матеріалів за ключовими
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 12
словами або фразами, пов’язаними з певною новиною або подією. Результати
пошуку включають посилання на статті з перевіркою фактів, а також позначку,
чи є інформація правдивою, частково правдивою чи неправдивою.
Система працює за допомогою фактичних перевірок від журналістів і
експертів, які дають об’єктивні оцінки тверджень, що використовуються в
новинах, дописах у соціальних мережах або інших публікаціях. Кожен
фактчек надає пояснення, чому інформація виявилася такою чи іншою — чи
було це перекрученням фактів, маніпуляцією, чи ж просто помилкою.
Цей інструмент має зручний інтерфейс, який дозволяє користувачам
швидко знаходити потрібну інформацію. В результатах пошуку надається
дата публікації фактчеку, що дозволяє користувачам бачити, наскільки
актуальною є перевірка на момент пошуку [2]. Також можна знайти конкретні
цитати, що були перевірені, разом з детальними посиланнями на джерела, що
забезпечує прозорість і достовірність інформації.
Google Fact Check Explorer також дозволяє користувачам фільтрувати
результати за різними параметрами, такими як країна або тип медіа. Це
особливо корисно, коли користувач хоче перевірити факти, пов’язані з певним
регіоном чи темою.
Інструмент підтримує широкий спектр мов, що дозволяє користувачам
по всьому світу користуватися ним для перевірки новин на різних мовах. Це
робить Google Fact Check Explorer важливим інструментом для глобальної
боротьби з фейками і дезінформацією.
Google Fact Check Explorer став важливим ресурсом у боротьбі з
фейковими новинами, оскільки він збирає перевірки фактів з багатьох
незалежних джерел і надає їх в одному місці, що значно полегшує процес
пошуку достовірної інформації. Цей інструмент особливо корисний у часи
криз або виборчих кампаній, коли дезінформація може впливати на
громадську думку.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 13
Він також допомагає користувачам покращити свою медіаграмотність,
оскільки надає доступ до джерел, які можуть роз’яснити, чому певна новина
є правдивою або неправдивою. Це дозволяє користувачам самостійно
оцінювати інформацію, яку вони споживають.
Таким чином, Google Fact Check Explorer є важливим інструментом для
всієї спільноти, що сприяє зниженню поширення фейкових новин і підвищує
рівень довіри до медіа.
1.2 Постановка задач
Усі сучасні фактчекінгові сервіси, такі як StopFake, Snopes, PolitiFact,
FactCheck.org чи Google Fact Check Explorer, значною мірою залежать від
участі реальних людей у процесі перевірки інформації. Попри широке
впровадження автоматизованих систем збору та аналізу даних, основну
частину роботи з виявлення, оцінки та спростування фейків виконують
професійні журналісти, фактчекери, аналітики та експерти в різних галузях.
Процес фактчекінгу передбачає не лише технічне виявлення
суперечливої інформації або сумнівних джерел, але й глибоке дослідження
контексту, перевірку заяв через надійні джерела, офіційні документи, бази
даних та інтерв’ю з фахівцями. Ці завдання потребують критичного мислення,
знання медіаландшафту та розуміння маніпулятивних технік, що можуть
використовуватись у пропаганді. Автоматизовані системи поки не здатні
самостійно досягти подібного рівня точності й контекстуального аналізу.
Крім того, саме люди приймають остаточне рішення щодо класифікації
новини: чи вона є правдивою, частково правдивою або фейковою. Це важливо,
оскільки деякі новини можуть бути написані з маніпулятивними намірами,
але базуватись на реальних фактах, поданих у викривленому вигляді. Лише
експерти можуть виявити подібні нюанси та надати коректну інтерпретацію
інформації.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 14
Хоча технології штучного інтелекту та машинного навчання дедалі
активніше інтегруються у процеси перевірки фактів, вони поки що виконують
допоміжну роль. Основу фактчекінгової діяльності становить людський
інтелект — досвідчені фахівці, здатні адекватно оцінити контекст і суть
інформації. Це підтверджує важливість людського ресурсу у боротьбі з
дезінформацією на глобальному рівні.
Застосування таких сервісів у поєднанні з технологіями штучного
інтелекту відкриває нові можливості для автоматизованого виявлення
фейкових новин, підвищення медіаграмотності та формування інформаційно
стійкого суспільства.
Участь людини у процесі перевірки новин є критично важливою, варто
визнати, що людський фактор може впливати на об’єктивність та точність
оцінки інформації. Існує низка причин, через які людина може помилково
визнати правдиву новину фейковою або, навпаки, не розпізнати фейк.
Людська помилка є однією з найпоширеніших причин неправильного
висновку. Фактчекери, попри досвід, можуть працювати в умовах обмеженого
часу, недостатньої кількості джерел або впливу когнітивних упереджень, що
спотворюють сприйняття фактів.
У деяких випадках існує ризик свідомої упередженості або підкупу.
Якщо фактчекінгова організація фінансується зацікавленими сторонами або
має політичні зв’язки, це може вплинути на результати перевірки. В такому
разі висновки можуть бути навмисно викривленими або спрямованими на
підтримку певного наративу.
Відсутність повної інформації також може призвести до неправильного
аналізу. Якщо на момент перевірки новини немає підтверджених фактів або
офіційних джерел, фактчекери змушені робити висновки на основі обмежених
даних, що не завжди дозволяє точно оцінити ситуацію.
Крім того, культурні, соціальні або мовні бар’єри можуть впливати на
інтерпретацію новин, особливо в міжнародному контексті. Інформація,
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 15
зрозуміла та очевидна в одній країні, може бути неоднозначно сприйнята в
іншій.
Таким чином, хоча люди є ключовим елементом у системі виявлення
фейкових новин, вони також залишаються вразливими до впливів, що можуть
знижувати об’єктивність і достовірність висновків. Це підкреслює
необхідність поєднання людської експертизи з автоматизованими
інструментами, що здатні підсилити процес фактчекінгу завдяки швидкості,
нейтральності та аналізу великих обсягів даних.
У сучасних умовах стрімкого інформаційного обміну надзвичайно
важливо, щоб сервіси з перевірки достовірності новин були максимально
автоматизованими та здатними працювати в режимі реального часу.
Традиційні фактчекінгові процеси, що покладаються виключно на людський
ресурс, не завжди встигають за швидкістю розповсюдження дезінформації,
особливо в умовах криз, виборчих кампаній чи воєнного часу.
Автоматизація таких сервісів дозволяє значно скоротити час реагування
— системи штучного інтелекту здатні миттєво аналізувати великі обсяги
текстів, виділяти ключові твердження, порівнювати їх з достовірними базами
даних, і навіть оцінювати ймовірність маніпуляцій. Завдяки цьому користувачі
отримують сигнали про потенційні фейки ще до того, як вони встигнуть
широко поширитися.
Крім того, автоматизовані інструменти можуть працювати безперервно,
охоплюючи величезну кількість джерел одночасно: сайти новин, соціальні
мережі, блоги та форуми. Це робить їх більш масштабованими та ефективними
у боротьбі з фейками в глобальному інформаційному просторі.
Важливо також, що такі системи можуть бути вбудовані безпосередньо
в браузери, соціальні мережі чи месенджери, забезпечуючи користувачеві
негайний зворотний зв’язок щодо достовірності прочитаної інформації. Це
формує в суспільстві навички критичного мислення і медіаграмотності,
підвищуючи загальний рівень інформаційної безпеки.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 16
Отже, повна або часткова автоматизація процесів виявлення фейкових
новин є не лише бажаною, а й необхідною умовою для ефективної протидії
дезінформації в цифрову епоху.
Штучний інтелект (AI) є беззаперечним майбутнім для технологій,
пов’язаних із виявленням фейкових новин. Завдяки своїм потужним
алгоритмам машинного навчання, нейронним мережам і здатності обробляти
великі обсяги даних у реальному часі, AI здатен не лише пришвидшити процес
перевірки інформації, але й значно підвищити його точність.
На відміну від традиційних методів, штучний інтелект може миттєво
аналізувати текст на предмет логічних суперечностей, емоційного
забарвлення, ознак маніпуляції чи зміщеного контексту. AI також має
можливість автоматично порівнювати новини з наявними базами перевірених
фактів, міжнародними інформаційними архівами та науковими джерелами,
виявляючи розбіжності навіть у прихованій або завуальованій формі.
Завдяки здатності до самооновлення та навчання на нових даних, AI-
системи стають дедалі ефективнішими з часом. Вони адаптуються до нових
форм фейків і пропаганди, що змінюються разом з інформаційними
тенденціями. Це робить їх гнучкими та актуальними в умовах постійно
змінного медіапростору.
У майбутньому штучний інтелект може стати основою повністю
автономних систем боротьби з дезінформацією, що працюватимуть на рівні
платформ, браузерів або навіть операційних систем. Такий підхід дозволить
своєчасно інформувати користувачів, запобігати поширенню неправдивого
контенту та формувати більш безпечне і відповідальне інформаційне
середовище.
Отже, метою кваліфікаційної роботи є розробка інтелектуальної системи
виявлення фейкових новин у вигляді браузерного плагіна, яка з
використанням штучного інтелекту та механізмів автоматизованого
фактчекінгу дозволяє аналізувати контент онлайн-статей у режимі реального
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 17
часу та інформувати користувача про ймовірність наявності неправдивої або
маніпулятивної інформації.
Для досягнення сформульованої мети необхідно вирішити такі задачі:
проаналізувати сучасні підходи та інструменти для виявлення фейкових
новин; розробити архітектуру системи, яка включає браузерний плагін,
серверну частину та інтеграцію з AI-сервісом; реалізувати механізм отримання
текстового контенту новин із вебсторінок через плагін Chrome; забезпечити
передачу даних на сервер для обробки за допомогою Amazon Bedrock або
аналогічного інструменту ШІ; реалізувати алгоритм аналізу новин з
використанням методів автоматизованого фактчекінгу; розробити систему
індикації результату аналізу у вебінтерфейсі користувача; провести
тестування розробленої системи на реальних новинних статтях та оцінити її
ефективність.
1.3 Висновки до розділу
У сучасному світі важливо вміти розпізнавати фейкові новини та
пропаганду, адже дезінформація може впливати на свідомість людей,
суспільну стабільність та державну безпеку. Для України, яка перебуває в
умовах інформаційного тиску, ця проблема особливо актуальна. Існуючі
сервіси, як-от StopFake, Snopes і Google Fact Check Explorer, допомагають
перевіряти новини, однак здебільшого покладаються на ручну роботу
фактчекерів.
Через людський фактор можливі помилки, упередженість або затримки
в реагуванні. Тому виникає потреба в автоматизованих рішеннях, здатних
швидко обробляти великі обсяги інформації. У цьому контексті технології
штучного інтелекту є ключовим напрямом розвитку — вони забезпечують
швидкість, масштабованість і адаптивність, необхідні для ефективної
боротьби з фейками.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 18
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
Штучний інтелект (ШІ, англ. Artificial Intelligence) — це галузь
комп’ютерних наук, яка займається створенням систем, здатних виконувати
завдання, що зазвичай потребують людського інтелекту. До таких завдань
належать розпізнавання мовлення, розуміння природної мови, прийняття
рішень, навчання на основі даних, розпізнавання образів, а також здатність до
логічного мислення та планування.
ШІ охоплює низку підгалузей. Однією з ключових є машинне навчання
(Machine Learning) — метод, за якого комп’ютер навчається на даних і
покращує свою роботу без прямого програмування. У свою чергу, глибинне
навчання (Deep Learning), як підвид машинного, використовує багаторівневі
нейронні мережі для складних завдань, таких як розпізнавання облич, мови чи
виявлення фейкових новин. Інша важлива підгалузь — обробка природної
мови (Natural Language Processing, NLP), яка дозволяє машинам розуміти,
інтерпретувати й генерувати текст на людській мові. Також варто згадати
комп’ютерний зір (Computer Vision), який дає змогу аналізувати й розуміти
зображення та відео.
Штучний інтелект поділяється на три основні типи. Вузький ШІ
(Narrow AI) спеціалізується на виконанні одного конкретного завдання,
наприклад, фільтрації спаму або розпізнаванні облич. Загальний ШІ (General
AI) — це теоретична концепція системи, яка може розв’язувати широкий
спектр завдань на рівні або вище за людину. Надінтелект (Superintelligence)
— гіпотетичний рівень, за якого ШІ перевершує людський інтелект у всіх
сферах [3].
На практиці ШІ вже активно використовується в багатьох сферах: у
медицині (для діагностики захворювань), транспорті (автопілоти), фінансах
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 19
(аналіз ринків), освіті (адаптивне навчання), сфері безпеки (системи
відеоспостереження), торгівлі (персоналізовані рекомендації) тощо. Зокрема,
він також стає важливим інструментом для боротьби з фейковими новинами
та дезінформацією.
Штучний інтелект здатен аналізувати великі обсяги текстів у режимі
реального часу, виявляти неточності, логічні суперечності та ознаки
маніпуляцій, порівнювати факти з перевіреними джерелами. Завдяки здатності
до самонавчання, такі системи постійно вдосконалюються. Це робить ШІ
незамінним інструментом у створенні автоматизованих платформ для
виявлення фейків, які можуть працювати набагато швидше та ефективніше за
людину.
Таким чином, штучний інтелект не лише доповнює людську здатність до
обробки інформації, а й відкриває нові можливості для побудови більш
безпечного та достовірного інформаційного середовища в епоху цифрових
технологій.
Claude (від Anthropic) — це серія мовних моделей, розроблених
компанією Anthropic, з фокусом на безпеці, інтерпретованості та надійності.
Вона названа на честь Клода Шеннона, батька теорії інформації. Зовнішній
вигляд зображено на рисунку 2.1.
Рисунок 2.1 – Claude (від Anthropic)
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 20
Claude є одним з конкурентів GPT від OpenAI і підходить для завдань
аналізу текстів, генерації відповідей, обробки великих обсягів новинного
контенту, розпізнавання логічних суперечностей і прихованих маніпуляцій.
Claude особливо цінна завдяки високій контекстній глибині, що дозволяє
аналізувати довгі тексти з детальним розумінням.
Titan (від Amazon) — це модель штучного інтелекту, яка надається в
межах платформи Amazon Bedrock. Вона спеціально оптимізована для
корпоративного використання та обробки бізнес-даних, проте також добре
підходить для аналітики текстів. Зовнішній вигляд зображено на рисунку 2.2.
Рисунок 2.2 – Titan (від Amazon)
Titan може інтегруватися з іншими інструментами AWS, що спрощує
побудову масштабованих рішень, таких як системи виявлення фейкових
новин. Її використання дозволяє ефективно автоматизувати процеси аналізу,
фільтрації та класифікації великого масиву новинного контенту [4].
Jurassic (від AI21 Labs) — це серія великих мовних моделей від
ізраїльського стартапу AI21 Labs. Вона підтримує складну обробку природної
мови та є сильною альтернативою GPT. Jurassic вирізняється гнучкістю в
налаштуванні для конкретних завдань, таких як семантичний аналіз, перевірка
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 21
фактів і генерація резюме статей. Зовнішній вигляд AI21 Labs зображено на
рисунку 2.3.
Рисунок 2.3 – AI21 Labs
Ці моделі можуть бути використані для побудови AI-систем, що
аналізують зміст статей і виявляють потенційно фейкову інформацію.
Mistral (від Mistral AI) — це серія відкритих мовних моделей,
розроблених компанією Mistral AI. Вони відомі своєю компактністю,
швидкістю та відкритим кодом, що дає змогу інтегрувати ці моделі в локальні
або автономні системи без необхідності доступу до хмарних ресурсів.
Зовнішній вигляд Mistral (від Mistral AI) зображено на рисунку 2.4.
Рисунок 2.4 – Mistral (від Mistral AI)
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 22
Mistral особливо корисна в проєктах, де важлива швидкість аналізу
текстів, масштабованість та контроль за системою. Вона добре справляється
з базовим фактчекінгом і класифікацією текстових даних.
LLaMA 2 (від Meta AI) — це друга генерація моделей, створених
компанією Meta (Facebook). Вона доступна у відкритому доступі, що робить її
популярною серед дослідників і розробників. LLaMA 2 має хорошу здатність
до узагальнення інформації, виявлення фейкових тез, генерації відповідей і
навіть навчання на спеціалізованих корпусах новин. Архітектура навчання
LLaMA 2 зображено на рисунку 2.5.
Рисунок 2.5 – Архітектура навчання LLaMA 2
Її відкритість дозволяє адаптувати модель до специфіки регіонального
інформаційного простору (наприклад, українських новин).
Усі зазначені моделі є сучасними мовними системами, які дозволяють
створювати інтелектуальні рішення для автоматичного виявлення фейкової
інформації. Їх можна використовувати для семантичного аналізу, перевірки
фактів, виявлення пропагандистських прийомів та попередження користувачів
про потенційно недостовірні матеріали. Вибір конкретної моделі залежить від
завдань проєкту, доступних ресурсів та вимог до швидкості, точності й
конфіденційності.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 23
Amazon Bedrock — це хмарний сервіс від компанії Amazon Web
Services (AWS), який дозволяє розробникам легко створювати, запускати та
масштабувати застосунки зі штучним інтелектом на основі передових великих
мовних моделей (LLM). Платформа об’єднує кілька моделей від різних
розробників, таких як Anthropic, AI21 Labs, Stability AI та інших, і надає
єдиний інтерфейс для роботи з ними. Архітектура включає декілька
компонентів, які зображено на рисунку 2.6.
Рисунок 2.6 – Архітектура Amazon Bedrock
API Gateway – отримує запити з вхідними даними, такими як зображення
товару або базовий опис.
AWS Lambda – обробляє ці запити і передає їх до відповідних сервісів.
Amazon Rekognition – аналізує зображення, виявляє об’єкти, текст і
мітки.
Amazon Bedrock – використовує виявлені мітки для генерації текстових
описів, що відповідають стилю вашого вебсайту або торгового майданчика.
База даних продуктів – зберігає інформацію про товари, зображення,
мітки та згенеровані описи.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 24
Це рішення дозволяє автоматизувати процес створення описів товарів,
що особливо корисно для електронної комерції та роздрібних вебсайтів, де
необхідно швидко і ефективно обробляти великий обсяг продуктів [5].
Однією з головних переваг Amazon Bedrock є простота інтеграції та
використання. Розробники можуть швидко почати роботу з великими
мовними моделями без глибоких знань у сфері ШІ чи складних
інфраструктурних налаштувань. Єдиний API забезпечує зручний і
стандартизований доступ до різних моделей.
Платформа також відзначається масштабованістю та надійністю, що є
критично важливим для систем, які мають обробляти великі обсяги інформації
в режимі реального часу, наприклад, системи виявлення фейкових новин.
Використання інфраструктури AWS гарантує високу продуктивність і
стабільність.
Ще одна перевага — це гнучкість вибору моделей. Користувачі можуть
обирати моделі залежно від конкретних завдань: генерація тексту, аналіз чи
фактчекінг. Це дозволяє підібрати оптимальне рішення для конкретного
проєкту.
Amazon Bedrock також забезпечує високий рівень безпеки та
конфіденційності. Платформа працює в рамках інфраструктури AWS, яка
відповідає суворим стандартам захисту даних [6]. Це особливо важливо для
проєктів, що оперують конфіденційною або чутливою інформацією.
Важливою перевагою є відсутність необхідності управління
інфраструктурою. Розробники можуть зосередитися на створенні функціоналу
застосунку, не витрачаючи час на підтримку серверів, масштабування чи
оновлення моделей.
Крім того підтримує AI в реальному часі, що дозволяє швидко
обробляти запити, що є критичним для інтерактивних сервісів перевірки
достовірності новин.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 25
Amazon Bedrock – це потужний інструмент, який значно спрощує
розробку й впровадження сучасних AI-рішень, надаючи доступ до провідних
моделей і масштабованої інфраструктури світового рівня. Це робить
платформу ідеальним вибором для створення автоматизованих систем
виявлення фейкових новин та інших застосунків із обробки природної мови.
Плагін має бути розроблений для браузера Google Chrome, оскільки саме
він є найпопулярнішим браузером у світі як серед звичайних користувачів, так
і в корпоративному середовищі. Проте ключова причина вибору Chrome – це
його основа на движку Chromium, який є відкритим проєктом і
використовується не лише в Chrome, але й у більшості сучасних браузерів,
таких як Microsoft Edge, Opera, Brave, Vivaldi тощо [7].
Розробка плагіну для Chrome автоматично забезпечує сумісність з цими
браузерами, що значно розширює потенційне охоплення користувачів без
необхідності дублювати розробку під інші платформи. Завдяки використанню
Chromium, основні API розширень, структура плагінів та принципи безпеки
залишаються однаковими в різних браузерах, що дозволяє розробникам
зосередитися на функціональності продукту, а не на підтримці різних
платформ.
Крім того, Chrome Web Store надає зручний і централізований спосіб
поширення розширень, дозволяє легко оновлювати плагін та отримувати
відгуки користувачів. Це робить платформу Chrome технічно доцільною,
масштабованою та ефективною для реалізації плагіну, що перевіряє
достовірність новин за допомогою ШІ.
Для реалізації бекенд-частини системи виявлення фейкових новин
доцільно використовувати мову програмування Python у поєднанні з
реляційною базою даних PostgreSQL. Такий стек технологій є одним із
найпоширеніших для створення сучасних веб-сервісів і систем зі штучним
інтелектом.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 26
Python – це високорівнева мова програмування, яка вирізняється
лаконічним синтаксисом, великою кількістю бібліотек для роботи з даними та
штучним інтелектом (наприклад, requests, pandas, scikit-learn, transformers,
langchain, boto3 для AWS і т.д.). Python активно використовується для:
1. Обробки та аналізу тексту (наприклад, новинних статей).
2. Інтеграції з AI-сервісами, такими як Amazon Bedrock.
3. Реалізації REST API (за допомогою Flask, FastAPI або Django).
4. Автоматизації запитів до зовнішніх ресурсів (наприклад, для
фактчекінгу).
5. Паралельної або асинхронної обробки запитів, що важливо для
систем у реальному часі.
PostgreSQL – це потужна, надійна та безкоштовна реляційна система
управління базами даних з відкритим кодом, яка підтримує складні типи
запитів, транзакції, індексацію, повнотекстовий пошук, JSON-поля та багато
інших корисних функцій. Вона чудово підходить для зберігання:
1. Текстів статей.
2. Результатів перевірки достовірності.
3. Інформації про користувачів плагіну (якщо потрібно).
4. Журналів запитів до AI-сервісу.
PostgreSQL добре масштабується, сумісна з Python (через бібліотеки
psycopg2, SQLAlchemy тощо), має високий рівень безпеки та активно
використовується в промислових проєктах [8].
Поєднання Python та PostgreSQL дозволяє створити гнучку,
масштабовану та надійну серверну частину системи. Цей технологічний стек
дає змогу швидко реалізувати логіку взаємодії між розширенням для браузера,
AI-сервісами та базою даних, а також забезпечити стабільну обробку великої
кількості запитів у реальному часі.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 27
2.2 Обґрунтування вибору
Щоб обґрунтовано обрати технології для розробки системи виявлення
фейкових новин, спершу необхідно визначити, яким саме чином працюватиме
система. Зокрема, важливо вирішити, чи буде вона використовувати штучний
інтелект (ШІ) чи працюватиме на основі класичних алгоритмів без
застосування машинного навчання.
У разі використання ШІ, вибір технологій залежатиме від типу моделі
(наприклад, нейронні мережі, трансформери), інструментів для навчання
(наприклад, TensorFlow, PyTorch), а також потреб у зборі та обробці великих
обсягів даних. Якщо ж ШІ не передбачається, система може базуватись на
наборі чітких правил, ключових слів, статистичних методів або верифікації
джерел, і тоді будуть доцільні інші технології, такі як бази даних, текстовий
аналіз та API для перевірки фактів.
Для розробки даної системи виявлення фейкових новин необхідно
використовувати штучний інтелект (AI), оскільки саме AI здатен ефективно
аналізувати зміст новинних текстів, виявляти маніпуляції, логічні
суперечності, відсутність джерел або інші ознаки недостовірної інформації
[9].
Залежно від складності та функціональності системи, може знадобитися
використання різних AI-моделей, кожна з яких виконує певне завдання.
Наприклад:
1. Мовні моделі (такі як ChatGPT) — для аналізу змісту новини, оцінки її
достовірності та формування пояснення.
2. Моделі класифікації тексту — для автоматичного розпізнавання
фейкових повідомлень на основі попередньо навченої вибірки.
3. Моделі на основі знань (knowledge-based models) — для перевірки
фактів та порівняння з відомими джерелами.
4. Модулі обробки природної мови (NLP) — для вилучення ключових слів,
виявлення емоційного забарвлення чи виявлення тенденцій у тексті.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 28
Комбінування таких моделей дозволить створити більш точну, гнучку
та надійну систему перевірки новин у реальному часі.
Система Amazon Bedrock надає можливість використовувати різні
моделі штучного інтелекту від провідних постачальників без необхідності
самостійно розгортати або налаштовувати інфраструктуру. Це дозволяє
розробникам швидко інтегрувати AI-функціональність у свої додатки через
єдиний API.
За допомогою Amazon Bedrock можна отримати доступ до
різноманітних моделей від таких провайдерів, як Anthropic (Claude), AI21
Labs, Meta (LLaMA), Mistral, Cohere, а також Amazon Titan. Кожна з цих
моделей має свої особливості, що дає змогу обирати найоптимальніший
варіант під конкретну задачу — від генерації тексту до класифікації, аналізу
емоційного тону чи перевірки фактів.
Завдяки цьому Amazon Bedrock є потужною платформою для побудови
гнучкої та масштабованої системи виявлення фейкових новин із
використанням найсучасніших AI-технологій.
Плагін у браузері, працюючи у зв’язці з бекенд-сервісом, буде надсилати
текст новин для аналізу до платформи Amazon Bedrock. Такий підхід дозволяє
централізувати обробку даних і забезпечити ефективну комунікацію між
користувачем, браузером і потужними AI-моделями, що працюють на AWS.
Завдяки тому, що всі запити проходять через бекенд, зменшується кількість
прямих звернень від клієнтської частини до хмарних сервісів, що спрощує
управління трафіком і підвищує безпеку обміну інформацією.
Крім того, на бекенд-сервері можна реалізувати механізм кешування
результатів аналізу новин. Це означає, що якщо певна новина вже була
перевірена раніше, система не буде повторно надсилати запит до Amazon
Bedrock, а поверне збережений раніше результат. Такий підхід не лише
прискорює роботу системи та підвищує її ефективність, але й значно знижує
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 29
витрати на використання AI, адже звернення до платних моделей штучного
інтелекту зменшується.
Таким чином, інтеграція плагіна з бекендом, що працює з Amazon
Bedrock, створює гнучку, масштабовану та економічно вигідну архітектуру
системи виявлення фейкових новин, яка одночасно забезпечує швидкий
доступ користувача до результатів перевірки та оптимальне використання
ресурсів хмарної платформи.
Перевірка новин у системі має здійснюватися в режимі реального часу
- саме в момент, коли користувач відкриває вебсторінку з новиною. Це
дозволить одразу інформувати користувача про потенційну фейковість
прочитаної інформації, не вимагаючи від нього додаткових дій.
Для реалізації такого підходу програмне забезпечення повинно
працювати безпосередньо в браузері. Найбільш ефективним рішенням у цьому
випадку є створення браузерного плагіна (розширення), який матиме доступ
до вмісту вебсторінки [10]. Плагін зможе автоматично зчитувати текст новини,
надсилати його на перевірку через API (наприклад, до ChatGPT), а потім
відображати результат користувачу у зручному форматі — наприклад, через
спливаюче повідомлення або підсвічування сумнівних фрагментів.
Такий підхід забезпечує інтерактивність, зручність та високу швидкість
реагування системи на потенційно недостовірну інформацію.
Плагін доцільно розробити для браузера Google Chrome, оскільки він є
одним із найпопулярніших браузерів у світі. Крім того, більшість сучасних
браузерів (зокрема, Microsoft Edge, Opera, Brave тощо) базуються на рушії
Chromium, що забезпечує високу сумісність розширення з різними браузерами
без потреби внесення значних змін у код.
Завдяки цьому одне й те саме розширення, розроблене для Chrome, з
великою ймовірністю працюватиме й у інших Chromium-сумісних браузерах.
Це дозволить охопити ширше коло користувачів і зробить систему перевірки
новин більш доступною.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 30
Для розробки бекенд-частини системи доцільно обрати мову
програмування, яка є швидкою у розробці, має широку підтримку спільноти
та якою володіє велика кількість розробників. Однією з найкращих опцій для
таких цілей є Python.
Python ідеально підходить для реалізації системи перевірки новин з
кількох причин:
1. широкий вибір бібліотек для роботи з текстами, API, обробки запитів і
машинного навчання (наприклад, requests, Flask, FastAPI, transformers,
scikit-learn);
2. простий синтаксис, що пришвидшує розробку та підтримку коду;
3. активна спільнота та велика кількість документації, що спрощує
вирішення технічних задач;
4. ідеальна сумісність з AI/ML-інструментами, що робить Python
оптимальним вибором у разі використання моделей штучного інтелекту,
таких як ChatGPT.
Таким чином, Python забезпечує баланс між швидкістю розробки,
зручністю та функціональністю, що робить його ефективною технологією для
бекенду системи перевірки фейкових новин.
У цілому система виявлення фейкових новин може обходитися без
повноцінної бази даних, адже її головне завдання полягає у швидкому та
ефективному аналізі тексту новин у режимі реального часу. Проте для
оптимізації роботи системи варто передбачити механізм кешування певної
інформації про вже перевірені новини. Це дозволить значно знизити
навантаження на AI-моделі, адже не доведеться повторно витрачати
обчислювальні ресурси на аналіз однакових або дуже схожих текстів.
Збереження таких даних у тимчасовому сховищі або легкій базі
дозволить системі швидше реагувати на запити користувачів, покращуючи
загальну продуктивність і скорочуючи час очікування. Хоча повноцінна база
даних не є обов’язковою складовою, кешування перевірених результатів
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 31
робить систему більш ефективною, економить ресурси і підвищує зручність
використання. Таким чином, навіть при відсутності складної структури
зберігання інформації, цей підхід дозволяє створити більш гнучке і
швидкодіючe рішення для виявлення фейкових новин.
Для вибору бази даних у проєкті можна розглянути PostgreSQL як
оптимальне рішення. Ця система управління базами даних відома своєю
надійністю, масштабованістю та потужними можливостями для роботи зі
структурованими даними. PostgreSQL підтримує складні запити, має багатий
набір типів даних і функцій, що робить її гнучкою для різних сценаріїв
застосування. Крім того, вона добре інтегрується з багатьма мовами
програмування, включно з Python, що часто використовується для розробки
бекенду. Велика спільнота користувачів і розробників забезпечує активну
підтримку та безліч готових рішень, що спрощує розробку і подальше
обслуговування системи [11]. Завдяки цьому PostgreSQL є надійним і
ефективним вибором для зберігання даних у системі виявлення фейкових
новин.
Якщо для розробки системи буде використана технологія Amazon
Bedrock, то логічним кроком буде розміщення бекенд-частини також на
сервісах AWS. Такий підхід дозволить значно знизити затрати часу та ресурсів
на комунікацію між різними сервісами, оскільки всі компоненти системи
будуть розташовані в одному середовищі з високою швидкістю внутрішнього
обміну даними. Крім того, це допоможе оптимізувати витрати на
інфраструктуру, адже використання єдиної платформи часто призводить до
зниження загальної суми оплати завдяки інтегрованим тарифам і більш
ефективному розподілу ресурсів. Таким чином, розміщення бекенду на AWS
у поєднанні з Amazon Bedrock створює зручне, масштабоване і економічно
вигідне рішення для побудови системи виявлення фейкових новин.
Плагін буде автоматично змінювати вміст сторінки, додаючи спеціальні
ідентифікатори або позначки до новин, які виявлені як неправдиві. Завдяки
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 32
цьому немає потреби розробляти окремий frontend-додаток, адже користувачі
одразу бачитимуть результати перевірки безпосередньо на самій сторінці
новин. Такий підхід робить систему більш зручною та інтегрованою,
дозволяючи оперативно інформувати користувачів про достовірність
інформації без додаткових переходів чи дій з їхнього боку .
Плагін може бути налаштований і сконфігурований безпосередньо через
інтерфейс браузера, що дозволяє користувачу легко змінювати його параметри
та поведінку. Через це немає необхідності розробляти окрему сторінку або
інтерфейс для управління плагіном, що значно спрощує його впровадження та
використання. Всі налаштування доступні безпосередньо у вбудованому меню
розширення браузера, що робить процес керування більш зручним і інтуїтивно
зрозумілим.
2.3 Висновки до розділу
У розділі було проаналізовано сучасні технології штучного інтелекту,
які можуть бути використані для виявлення фейкових новин та аналізу
текстового контенту. Особливу увагу приділено провідним мовним моделям,
зокрема Claude, Titan, Jurassic, Mistral і LLaMA 2, які відзначаються високою
продуктивністю, гнучкістю в адаптації до конкретних завдань та можливістю
інтеграції в різноманітні програмні рішення. Розглянуто й інфраструктурне
рішення Amazon Bedrock, що забезпечує централізований доступ до різних
AI-моделей та значно спрощує процес їх впровадження.
Крім мовних моделей, проаналізовано вибір технологій для реалізації
плагіну та серверної частини системи. Розробка плагіну для Google Chrome
обґрунтована його широкою підтримкою та сумісністю з іншими браузерами
на базі Chromium. Для серверної частини запропоновано стек Python +
PostgreSQL, який поєднує потужні інструменти обробки текстів, інтеграції з
AI-моделями та надійного зберігання даних.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 33
Таким чином, сучасні досягнення в галузі штучного інтелекту та гнучкі
програмні інструменти створюють надійне підґрунтя для розробки ефективної
системи автоматичного виявлення фейкових новин. Обрані технології
дозволяють реалізувати інтелектуальне рішення з високим рівнем точності,
масштабованості та адаптивності до різних сценаріїв використання.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 34
3 РОЗРОБКА СИСТЕМИ ВИЯВЛЕННЯ ФЕЙКОВИХ НОВИН З
ВИКОРИСТАННЯМШТУЧНОГО ІНТЕЛЕКТУ
3.1 Структура системи
Розроблена система реалізована у вигляді додаткового плагіна для
браузера Chrome і автоматично сумісна з усіма іншими браузерами, які
базуються на рушії Chromium. Це означає, що розширення зможе працювати
не лише у Chrome, але й у таких браузерах, як Microsoft Edge, Opera, Brave та
інші, без необхідності внесення суттєвих змін у код. Завдяки цьому охоплення
користувачів значно розширюється, а процес впровадження системи стає
простішим і ефективнішим.
Розробка плагіна для системи виявлення фейкових новин здійснювалася
із застосуванням технологій JavaScript, що є стандартною і найбільш
поширеною мовою програмування для створення розширень у браузерах на
базі Chromium [12]. Використання JavaScript дозволяє реалізувати динамічну
взаємодію з вмістом вебсторінок, що дає змогу автоматично зчитувати текст
новин, змінювати DOM-структуру сторінки та додавати візуальні позначки
або ідентифікатори для повідомлень, які визнані недостовірними. Крім того,
JavaScript забезпечує гнучке підключення до бекенд-сервісів через HTTP-
запити, що дозволяє плагіну відправляти дані для аналізу і отримувати
результати перевірки в режимі реального часу.
Завдяки широкій підтримці JavaScript у всіх сучасних браузерах на базі
Chromium, розроблений плагін є сумісним, легко налаштовується і може
масштабуватися в залежності від потреб користувачів та розширення
функціоналу системи. В цілому, застосування JavaScript значно спростило
процес розробки, дозволило швидко впроваджувати необхідні функції і
забезпечило зручність у подальшому супроводі плагіна [13].
Плагін має широкий доступ до функціоналу браузера, що дає змогу
взаємодіяти з вмістом вебсторінок на глибокому рівні – зчитувати текст,
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 35
змінювати структуру сторінки та додавати візуальні позначки безпосередньо
у браузері користувача. Водночас плагін може виконувати запити до бекенд-
сервера у фоновому режимі, що є важливою перевагою для забезпечення
комфортного користувацького досвіду. Завдяки цьому процес обробки та
перевірки новин відбувається асинхронно, не блокуючи основний потік
роботи браузера і не перешкоджаючи перегляду вебсайтів.
Користувачі можуть безперешкодно переглядати контент, поки плагін
у фоновому режимі надсилає дані на сервер, отримує відповіді та оновлює
інформацію на сторінці. Такий підхід забезпечує високу продуктивність
системи і мінімізує вплив на швидкодію браузера, роблячи роботу плагіна
максимально непомітною і зручною для кінцевого користувача.
Плагін здійснює зчитування даних безпосередньо зі сторінки,
аналізуючи заголовок новини та її текстовий вміст. Для цього він напряму
працює з HTML-контентом вебсторінки, витягаючи необхідну інформацію
без додаткових звернень до зовнішніх джерел. Такий підхід дозволяє
оперативно отримувати актуальні дані для перевірки, адже плагін
безпосередньо взаємодіє з елементами сторінки, визначаючи структуру новин
та вилучаючи ключову інформацію [14]. Це забезпечує швидку обробку і
подальший аналіз тексту, що є важливим для роботи системи у режимі
реального часу. Завдяки роботі з HTML-кодом плагін може адаптуватися до
різних сайтів, витягуючи релевантні дані незалежно від специфіки дизайну чи
верстки сторінки.
Отримавши інформацію про новину безпосередньо зі сторінки, плагін
передає ці дані на сервер, використовуючи захищений протокол HTTPS. Це
гарантує безпеку передачі інформації, захищаючи її від перехоплення чи
несанкціонованого доступу під час передачі по мережі. Використання HTTPS
є важливою складовою для забезпечення конфіденційності та цілісності даних,
особливо коли мова йде про обробку чутливої інформації, пов’язаної з
аналізом новин. Таким чином, весь процес обміну даними між плагіном і
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 36
сервером відбувається надійно та безпечно, що підвищує довіру користувачів
до системи виявлення фейкових новин. Структура розробленої системи
зображено на рисунку 3.1.
Рисунок 3.1 – Структура розробленої системи
Серверна частина системи розгорнута в інфраструктурі AWS, тому всі
запити від плагіна надходять через сервіс API Gateway. Це дозволяє
централізовано керувати трафіком і забезпечувати безпеку взаємодії між
клієнтом і сервером. Однією з важливих функцій API Gateway є можливість
відфільтровувати небажані запити, зокрема ті, що надходять від пошукових
ботів або інших автоматизованих систем.
Завдяки цьому сервер отримує лише легітимні запити безпосередньо від
плагіна, що підвищує ефективність обробки даних і знижує ризик
навантаження на сервер з боку сторонніх джерел. Така архітектура забезпечує
стабільність і надійність роботи системи, а також дозволяє оптимізувати
використання ресурсів AWS.
API Gateway також надає можливість організувати систему авторизації,
що значно спрощує розробку та підтримку системи. Завдяки вбудованим
механізмам автентифікації та контролю доступу, можна легко обмежити
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 37
доступ до бекенд-сервісів лише авторизованим користувачам або
плагінам [15]. Це дозволяє захистити систему від несанкціонованих звернень
і зловживань без необхідності розробляти складні власні рішення для безпеки.
Використання API Gateway для авторизації допомагає централізувати
управління доступом, підвищує рівень безпеки і скорочує час розробки,
дозволяючи зосередитися на реалізації основної функціональності системи.
Запити, які проходять через API Gateway, надходять на інстанси Amazon
EC2, де розгорнуто серверне програмне забезпечення системи. EC2 забезпечує
гнучке та масштабоване середовище для виконання бекенд-коду, що
відповідає за обробку запитів від плагіна, взаємодію з AI-моделями та
кешування результатів. Така архітектура дозволяє ефективно розподіляти
навантаження, швидко масштабувати ресурси залежно від потреб і
підтримувати стабільну роботу системи в цілому. Використання EC2 у
поєднанні з API Gateway створює надійний каркас для безперервної і
безпечної роботи серверної частини системи.
На інстансах Amazon EC2 запущене серверне програмне забезпечення,
розроблене на мові програмування Python. Це програмне забезпечення
приймає запити від плагіна і виконує їх первинну обробку. Воно приймає
рішення, чи необхідно звертатися до AI-систем для аналізу новини, або ж
можна отримати відповідь із бази даних, якщо інформація про цю новину вже
була раніше перевірена і збережена. Такий підхід дозволяє значно
оптимізувати роботу системи, зменшуючи навантаження на AI-моделі та
скорочуючи час обробки запитів, що особливо важливо для забезпечення
оперативного реагування у режимі реального часу.
Для збереження інформації про вже перевірені новини була обрана база
даних PostgreSQL, яка розгорнута в екосистемі AWS за допомогою сервісу
RDS (Relational Database Service). Використання PostgreSQL у середовищі
RDS забезпечує високу надійність, масштабованість і автоматизоване
управління базою даних, включно з резервним копіюванням, відновленням і
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 38
моніторингом [16]. Завдяки цьому система може швидко звертатися до
кешованих результатів перевірок, що знижує навантаження на AI-моделі і
оптимізує загальну продуктивність. Інтеграція PostgreSQL із AWS RDS також
спрощує адміністрування та підтримку бази даних, дозволяючи зосередитися
на розвитку основної функціональності системи.
Перевірені новини зберігаються в базі даних у вигляді спеціального
унікального токену, який генерується за допомогою штучного інтелекту. Цей
токен є своєрідним цифровим «відбитком» новини і дозволяє ідентифікувати
її незалежно від того, як саме сформульований текст. Навіть якщо одна й та
сама стаття представлена у різних варіантах із незначними змінами у
формулюванні чи структурі, токен залишатиметься однаковим. Це забезпечує
ефективне кешування та унеможливлює дублювання обробки схожих або
ідентичних новин, що значно підвищує продуктивність системи і знижує
навантаження на AI-моделі. Такий підхід дозволяє швидко визначати вже
перевірені матеріали і економити ресурси при їх подальшому аналізі.
У випадку, якщо новина раніше не була перевірена і її токен відсутній
у базі даних, вона відправляється до системи AWS Bedrock для проведення
аналізу та перевірки достовірності. Саме в цьому середовищі працюють
потужні AI-моделі, які здійснюють детальну оцінку змісту новини,
визначаючи, чи є вона правдивою чи ні [17]. Такий підхід дозволяє оперативно
отримувати результати перевірки для нових або раніше не оброблених
матеріалів, забезпечуючи високий рівень точності та актуальності інформації,
що надається користувачам системи.
Результатом перевірки новини є числовий показник – weight
правдивості, який відображає ймовірність того, наскільки інформація є
достовірною або навпаки – фейковою. Цей показник варіюється від 0 до 100,
де 0 означає, що новина є точно правдивою, а 100 – максимально неправдивою.
Такий формат оцінки дозволяє більш гнучко і точно відображати ступінь
достовірності матеріалу, а не давати лише бінарну відповідь. Це допомагає
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 39
користувачам краще розуміти рівень надійності інформації, що вони
переглядають, і приймати більш обґрунтовані рішення щодо її сприйняття.
Amazon Bedrock визначає показник weight правдивості новини,
використовуючи передові моделі штучного інтелекту, які аналізують текстову
інформацію за різними параметрами. По-перше, моделі оцінюють зміст
новини з точки зору логічної послідовності, узгодженості фактів і
стилістичних особливостей, порівнюючи їх із великими базами достовірних
джерел інформації [18]. По-друге, AI враховує контекст і тон повідомлення,
виявляючи ознаки маніпуляції, перекручень або емоційної упередженості.
Крім того, система може аналізувати метадані, такі як джерело новини,
авторство та час публікації, що допомагає визначити надійність матеріалу. В
результаті всебічного аналізу AI генерує числовий показник – weight, який
відображає ступінь ймовірності того, наскільки новина є неправдивою. Чим
вищий цей показник, тим більша ймовірність, що інформація є фейковою.
Такий підхід забезпечує комплексну і точну оцінку достовірності новин на
основі великого обсягу даних і складних алгоритмів аналізу.
Результат перевірки, тобто значення weight правдивості новини,
зберігається в базі даних для подальшого кешування та швидкого доступу.
Після цього сервер надсилає отриману інформацію назад у плагін, який
працює безпосередньо у браузері користувача. На основі цих даних плагін
змінює вміст сторінки, додаючи спеціальні візуальні позначки або індикатори
до тих новин, які були визнані неправдивими або сумнівними. Такий підхід
дозволяє користувачам миттєво бачити оцінку достовірності кожної новини
прямо під час перегляду вебсторінки, що сприяє підвищенню обізнаності і
допомагає уникнути поширення фейкової інформації.
3.2 Опис функцій системи
Розроблена система реалізована у вигляді плагіна для браузерів
сімейства Chrome і сумісна з усіма сучасними веб браузерами, що базуються
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 40
на рушії Chromium. Це забезпечує широку доступність рішення для
користувачів різних платформ, таких як Google Chrome, Microsoft Edge, Opera,
Brave та інші. Завдяки використанню єдиної архітектури браузерів на основі
Chromium, плагін працює стабільно й однаково ефективно в різних
середовищах, не потребуючи окремої адаптації під кожен браузер. Така
універсальність дозволяє охопити значну частину аудиторії інтернет-
користувачів і забезпечити їм зручний інструмент для автоматичної перевірки
достовірності новин безпосередньо під час перегляду вебсторінок.
Встановлення плагіну в браузер зображено на рисунку 3.2.
Рисунок 3.2 – Встановлення плагіну в браузер
Кінцевий користувач зможе легко встановити розроблений плагін,
завантаживши його з офіційного магазину розширень браузера після його
публікації. Для цього буде достатньо перейти до Chrome Web Store (або іншого
сумісного каталогу для браузерів на базі Chromium), знайти плагін за назвою
і натиснути кнопку встановлення. Після цього розширення автоматично
інтегрується у браузер і почне працювати у фоновому режимі без необхідності
додаткових налаштувань. Такий спосіб розповсюдження забезпечує зручність,
безпечність та доступність інструменту для широкого кола користувачів,
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 41
дозволяючи їм швидко отримати функціонал для автоматичної перевірки
достовірності новин.
Встановлений плагін не має окремого користувацького інтерфейсу –
його робота відбувається повністю у фоновому режимі. За замовченням, після
встановлення, плагін вимкнений для всіх вебсайтів, і не має доступу до
контенту жодної сторінки. Для того щоб активувати його функціональність,
користувач повинен самостійно надати дозвіл у налаштуваннях браузера,
вказавши, на яких саме сайтах плагін має мати доступ до вмісту сторінок.
Такий підхід відповідає сучасним стандартам безпеки та конфіденційності,
надаючи повний контроль користувачеві над тим, де і як використовується
розширення.
Для повноцінної роботи плагіна браузер має надати йому повний доступ
до вебсайту, на якому він активується. Це означає, що плагін повинен мати
змогу зчитувати HTML-код сторінки, аналізувати її вміст, зокрема заголовки
та текст новин, а також вносити зміни у структуру сторінки, додаючи
відповідні позначки для перевірених новин. Такий доступ є необхідним для
того, щоб плагін міг ефективно виконувати свою функцію без порушення
користувацького досвіду. Надання повного доступу до сайту забезпечується
через налаштування браузера і відбувається лише за згодою користувача, що
відповідає вимогам безпеки та конфіденційності.
У випадку, якщо користувач надає плагіну доступ до вмісту сторінки,
плагін автоматично починає процес перевірки новин, що відображаються на
вебресурсі. Плагін здійснює аналіз як заголовків, так і повного тексту новини,
оскільки для адекватного визначення достовірності недостатньо лише
заголовку – важливо розуміти контекст, зміст і логіку подачі всієї інформації.
При цьому, якщо один з користувачів вже проаналізував певну новину,
система зберігає її результат у базі даних, що дозволяє іншим користувачам
миттєво отримати інформацію про її правдивість. Завдяки цьому, навіть якщо
на сторінці відображається лише заголовок, плагін може швидко знайти його
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 42
у базі та показати відповідне попередження або індикатор, не виконуючи
повторного запиту до AI-системи. Такий підхід значно підвищує ефективність,
економить ресурси та забезпечує швидкий зворотний зв’язок для кожного
користувача.
Рисунок 3.3 – Встановлення плагіну в браузер
На рисунку 3.3 показано, як саме працює механізм візуального
виділення неправдивих новин у браузері за допомогою плагіна. У наведеному
прикладі плагін підсвітив лише заголовок новини, оскільки ця новина вже
була раніше перевірена системою, ймовірно, іншим користувачем. Поточний
користувач не запускав повторну перевірку через AI-модель, а отримав готове
рішення безпосередньо з бази даних, де зберігаються результати попереднього
аналізу. Це дозволяє системі швидко реагувати, не навантажувати
інфраструктуру зайвими запитами та забезпечувати миттєву зворотну дію у
разі повторного відображення вже відомої фейкової інформації.
У випадку, якщо стаття ще не була перевірена або вже перевірена й не
містить ознак неправдивої інформації, плагін не буде виділяти її заголовок або
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 43
вміст червоним кольором. Це дозволяє уникати хибнопозитивних
спрацьовувань і не відволікати користувача, якщо новина є достовірною. Щоб
ініціювати повну перевірку новини, користувачу потрібно відкрити статтю –
тільки після цього плагін отримає доступ до повного тексту, зможе зчитати
зміст безпосередньо з HTML-коду сторінки та передати його на аналіз у
систему. Коли весь текст новини буде доступний, сервер проведе необхідну
обробку за допомогою AI і поверне результат, який одразу відобразиться у
браузері користувача, включаючи візуальні позначки у разі виявлення
фейкової інформації.
Аналіз новини виконується в режимі реального часу, що означає, що
перевірка розпочинається одразу після того, як користувач відкриває
відповідну сторінку з повним текстом статті. Оскільки для оцінки
достовірності необхідно отримати, обробити та проаналізувати контент за
допомогою AI-моделі, цей процес потребує певного часу. Тому після
завантаження сторінки може пройти кілька секунд, перш ніж плагін отримає
результат перевірки й відобразить його у вигляді візуальних позначок. Це
очікувана затримка, яка пов’язана з обробкою тексту та взаємодією з
інфраструктурою серверної частини системи. Тим не менш, завдяки
кешуванню вже перевірених новин у базі даних, у багатьох випадках результат
може бути доступний миттєво.
3.3 Технічні вимоги для роботи з системою
Технічними вимогами для коректної та стабільної роботи з розробленою
системою є наявність сучасного браузера, який підтримує розширення на
основі Chromium, а також стабільне та швидкісне підключення до інтернету.
Сучасний браузер забезпечує повну підтримку необхідних вебтехнологій,
включно з можливістю обробки скриптів розширення, доступу до вмісту
сторінки та безпечного виконання фонових запитів. Високошвидкісний
інтернет, у свою чергу, дозволяє оперативно передавати дані новин на сервер,
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 44
взаємодіяти з AI-системою та швидко отримувати результати перевірки. Без
дотримання цих технічних умов робота системи може бути нестабільною або
частково обмеженою.
Для коректної роботи розробленої системи у вигляді плагіна
підтримуються сучасні браузери на базі рушія Chromium. Серед них
основними є Google Chrome, Microsoft Edge, Opera, Brave, а також інші
браузери, які використовують Chromium як основний двигун. Це забезпечує
широку сумісність плагіна на різних платформах і дозволяє охопити більшість
користувачів Інтернету.
Для забезпечення стабільної роботи плагіна рекомендується
використовувати Google Chrome версії 90 і вище, Microsoft Edge версії 90 і
вище, Opera версії 75 і вище, а також останні стабільні випуски Brave Browser.
Ці версії включають всі необхідні функції та API для роботи розширень, такі
як підтримка сучасних JavaScript-стандартів, доступ до DOM сторінок, фонові
запити та безпечне управління дозволами.
Використання браузерів нижчих версій або інших движків може
призводити до некоректної роботи плагіна або обмеження його функціоналу,
оскільки вони можуть не підтримувати необхідні технології, що
використовуються для аналізу та взаємодії з вебсторінками. Тому важливо
підтримувати браузер у актуальному стані, щоб гарантовано отримувати
повний функціонал системи та забезпечувати безперебійну роботу.
Для ефективної роботи плагіна, який здійснює в режимі реального часу
аналіз новин через серверні AI-сервіси, дуже важливо мати стабільне та
швидке інтернет-з’єднання. Ідеальним варіантом буде широкосмуговий
інтернет із високою пропускною здатністю, наприклад, оптоволоконне або
кабельне підключення, яке здатне забезпечити не лише високу швидкість
завантаження даних, а й швидкий відгук при передачі запитів на сервер.
Швидкість інтернету безпосередньо впливає на час, який потрібен системі для
отримання, обробки та повернення результатів перевірки, що особливо
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 45
важливо для користувачів, які працюють із великими обсягами інформації або
часто переглядають новинні ресурси.
У випадках, коли користувачі використовують мобільний інтернет,
рекомендується мати підключення зі стандартом не нижче 4G, а краще 5G. Ці
технології забезпечують значно більшу швидкість передачі даних та меншу
затримку, що сприяє швидшому обміну інформацією між плагіном і сервером.
Однак навіть при використанні 4G або 5G важливо звертати увагу на
стабільність сигналу, адже часті перебої у зв’язку можуть призводити до
затримок або помилок у перевірці новин.
Важливо зазначити, що низькошвидкісне або нестабільне інтернет-
з’єднання може негативно вплинути на загальний користувацький досвід.
Запити до серверної частини можуть оброблятися значно довше, результати
перевірки будуть надходити із затримкою, або плагін взагалі може тимчасово
втрачати зв’язок із сервером. Це може призвести до того, що користувач не
отримає своєчасну інформацію про достовірність новини, що знизить
ефективність системи в цілому.
Таким чином, щоб забезпечити максимально швидкий і стабільний
обмін даними, рекомендується користуватися сучасними типами інтернет-
з’єднань із гарантованою пропускною здатністю, що відповідає вимогам
реального часу, особливо якщо планується часте або інтенсивне використання
плагіна на різних ресурсах.
Вимог до системи як таких немає, оскільки плагін розроблений для
роботи на сучасних браузерах з підтримкою Chromium і здатний адаптуватися
до різних конфігурацій користувацьких пристроїв. Проте варто зазначити, що
чим потужнішим є пристрій користувача та швидшим є інтернет-з’єднання,
тим швидше відбуватиметься обробка інформації та визначення достовірності
новини [18]. Відповідно, більш продуктивна система забезпечує більш
швидкий аналіз і миттєвіший зворотний зв’язок, що покращує користувацький
досвід і дозволяє оперативно реагувати на потенційно неправдиву
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 46
інформацію. Навпаки, на повільних або застарілих пристроях час очікування
результатів може збільшуватися, що дещо знижує зручність користування
системою.
Плагін розроблений таким чином, що він буде працювати на всіх
операційних системах, де підтримується браузер Google Chrome та інші
браузери на основі Chromium. Це означає, що користувачі Windows, macOS,
Linux, а також мобільних платформ, які підтримують відповідні версії
браузерів, зможуть без проблем встановити та використовувати цей плагін.
Завдяки широкій сумісності з різними операційними системами
забезпечується максимальне охоплення аудиторії та зручність у використанні
незалежно від обраної платформи.
Технічною вимогою для встановлення плагіну є використання
офіційного магазину розширень Chrome Web Store. Це забезпечує безпечний
та зручний процес інсталяції, а також автоматичне оновлення плагіну до
останніх версій. Використання магазину плагінів гарантує, що користувачі
отримають перевірений продукт, а також спрощує керування розширеннями
у браузері. Без встановлення через офіційний магазин плагін не зможе
працювати у стандартному режимі через обмеження браузера щодо сторонніх
розширень.
3.4 Оцінка ефективності
Важливим етапом після розробки системи є проведення оцінки її
ефективності. Це дозволяє не лише перевірити, наскільки успішно працює
плагін у реальних умовах, але й виявити потенційні недоліки, вузькі місця або
помилки у логіці обробки новин. Оцінка ефективності включає в себе
тестування точності визначення неправдивої інформації, швидкості обробки
запитів, надійності кешування даних та загального впливу плагіну на
користувацький досвід. Також важливо враховувати зворотний зв’язок від
реальних користувачів, адже саме вони є основними споживачами результатів
роботи системи. Проведення повноцінного аналізу ефективності дозволить
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 47
ухвалити рішення щодо подальшого вдосконалення, масштабування або
оптимізації окремих компонентів рішення.
Важливим показником ефективності розробленої системи є швидкість
визначення неправдивих новин. Оскільки система працює в режимі реального
часу та інтегрується безпосередньо у вебсторінку через плагін, користувач
очікує оперативного реагування. Чим швидше система здатна провести аналіз
і надати результат, тим кориснішою вона є в практичному використанні.
Затримки у визначенні фейковості можуть призвести до втрати довіри
користувача або до того, що новина буде прочитана ще до отримання оцінки
її достовірності. Тому оптимізація часу обробки, як на стороні клієнта, так і в
серверній частині, є критично важливою для загальної ефективності рішення.
Також варто врахувати, що зі збільшенням кількості користувачів
системи ефективність її роботи зростає, зокрема завдяки механізму
кешування. Чим більше користувачів одночасно використовують плагін, тим
частіше одні й ті самі новини вже перевіряються кимось раніше. У такому
випадку плагін не направляє повторний запит до AI-сервісу, а отримує
результат безпосередньо з бази даних, що значно прискорює відображення
маркерів фейкових новин. Це не лише економить обчислювальні ресурси та
зменшує витрати на використання AI-моделей, а й підвищує зручність
користування, оскільки система швидше реагує на нові сторінки. Таким
чином, активне використання плагіна великою кількістю людей прямо впливає
на загальну швидкодію та точність виявлення неправдивої інформації.
Таблиця 3.1 – Швидкість обробки статей в залежності від кількості
символів
Кількість Стаття раніше не Стаття була перевірна
символів перевірялась раніше
<2000 3.23 секунди 0.25 секунди
>=2000 - <10000 5.01 секунди 0.27 секунди
>=10000 6.23 секунди 0.28 секунди
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 48
Як видно з таблиці 3.1, результати швидкодії системи безпосередньо
залежать від кількості символів у тексті новини. Чим більший обсяг текстового
матеріалу, тим більше часу потребується на його обробку як на клієнтському
рівні, так і під час аналізу на сервері із залученням AI-моделей. Це зумовлено
тим, що сучасні моделі штучного інтелекту аналізують текст покроково, і
кожен додатковий фрагмент даних збільшує обчислювальне навантаження.
Водночас, при оптимальній реалізації кешування результатів, обробка
повторюваних запитів незалежно від обсягу тексту відбувається значно
швидше, оскільки система не виконує повторний аналіз, а лише повертає
збережені дані. Таким чином, обсяг тексту новини є критичним фактором для
швидкодії, особливо при первинному аналізі.
Швидкодія системи також суттєво залежить від того, чи була новина
вже перевірена раніше. Якщо новина вже проходила аналіз, система
використовує результати, збережені у базі даних, що дозволяє уникнути
повторного звернення до AI-моделі. У такому випадку швидкість відповіді
зростає в рази, оскільки час обробки обмежується лише передачею даних між
сервером і клієнтською частиною – тобто плагіном у браузері. Завдяки цьому
користувач отримує результат практично миттєво, навіть при великому обсязі
тексту новини. Такий підхід істотно підвищує ефективність системи загалом
і забезпечує масштабованість рішення при зростанні кількості активних
користувачів.
Якщо порівнювати запропонований підхід із використанням
традиційних сервісів перевірки фактів, то головною перевагою є повна
автоматизація процесу. У той час як більшість існуючих сервісів базуються на
участі реальних людей, які вручну перевіряють новини та приймають рішення
щодо їхньої правдивості, запропонована система використовує штучний
інтелект для миттєвого аналізу контенту. Це означає, що вона не потребує
залучення модераторів або фактчекерів, що суттєво знижує людські витрати
та дозволяє обробляти великі обсяги інформації в режимі реального часу.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 49
Автоматизований підхід забезпечує оперативність, масштабованість і
стабільність, які неможливо досягти за допомогою виключно ручного аналізу.
Швидкодія автоматизованої системи є на порядок вищою порівняно з
ручною перевіркою новин людиною. У той час як фактчекери потребують
хвилин або навіть годин для ретельного аналізу інформації, автоматизована
система здатна виконати попередню оцінку правдивості новини за лічені
секунди. Це досягається завдяки використанню потужних моделей штучного
інтелекту, які можуть паралельно обробляти велику кількість запитів, не
потребуючи перерв або втручання людини. Такий рівень швидкодії особливо
важливий у сучасному інформаційному середовищі, де фейкові новини
розповсюджуються надзвичайно швидко, і навіть незначна затримка у
реагуванні може мати негативні наслідки. Завдяки цьому система стає
ефективним інструментом для оперативної боротьби з дезінформацією.
3.5 Висновки до розділу
У розділі було детально розглянуто архітектуру системи виявлення
фейкових новин, її основні функціональні компоненти та вимоги до
апаратного й програмного забезпечення. Наведено опис ключових
можливостей, зокрема інтеграцію з браузером, передачу контенту на сервер
для аналізу та відображення результатів користувачеві. Проведено оцінку
ефективності роботи системи, що підтвердила її здатність оперативно
виявляти потенційно фейкові матеріали з достатнім рівнем точності та
зручністю використання. Отримані результати засвідчують практичну
доцільність впровадження системи для підвищення інформаційної безпеки
користувачів.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 50
4 ЗАХИСТ СИСТЕМИ ВИЯВЛЕННЯ ФЕЙКОВИХ НОВИН З
ВИКОРИСТАННЯМШТУЧНОГО ІНТЕЛЕКТУ
4.1 Огляд існуючих рішень
Захист інформації при використанні штучного інтелекту є критично
важливою складовою сучасних цифрових систем, особливо в умовах
стрімкого розвитку технологій та зростання обсягів персональних і
конфіденційних даних, що обробляються алгоритмами ШІ. Впровадження
штучного інтелекту у різні галузі – від медицини до медіа – вимагає
відповідального підходу до безпеки, аби уникнути витоку інформації,
маніпуляцій або порушення прав користувачів.
Однією з головних загроз при використанні ШІ є несанкціонований
доступ до даних, які моделі обробляють або зберігають. Наприклад, якщо
система штучного інтелекту аналізує тексти новин або особисту інформацію
користувачів (як у випадку перевірки новин на фейковість), то ці дані можуть
містити персональні або чутливі відомості. У разі відсутності належного
захисту зловмисники можуть отримати доступ до цих даних через уразливості
в API, недостатньо захищене з’єднання або неправильну конфігурацію
серверів.
Ще одним викликом є навмисна модифікація моделей ШІ або підміна
даних під час навчання чи інференсу. Якщо модель навчалась на
неперевірених або навмисно спотворених даних, це може призвести до
поширення неправдивої інформації або втрати довіри до результатів. Для
захисту таких систем застосовують методи цифрового підпису, контроль
цілісності даних та моніторинг доступу до навчального середовища.
Крім того, важливо впроваджувати політики етичного використання
ШІ, включаючи шифрування даних, анонімізацію особистої інформації, аудит
дій системи, обмеження доступу на основі ролей, а також прозору
документацію щодо того, як саме працює алгоритм. Особливо актуальним
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 51
стає законодавче регулювання ШІ, наприклад, відповідно до GDPR в ЄС, що
регламентує права користувачів щодо обробки їхніх даних [19].
Безпека інформації при використанні штучного інтелекту — це
комплексне завдання, що включає технічні, організаційні та етичні заходи.
Вона є основою для довіри до систем, які працюють із чутливою інформацією,
і повинна бути інтегрованою частиною будь-якого проєкту, пов’язаного з ШІ.
Захист інформації при роботі з системою є невіддільною складовою
побудови безпечних програмних рішень, особливо у випадку роботи з
вебдодатками або плагінами, які взаємодіють із користувачами, сервером та
сторонніми сервісами. У цьому контексті ключовими механізмами
забезпечення безпеки є автентифікація, авторизація та технології маркерів
доступу, зокрема JWT (JSON Web Token).
Автентифікація (authentication) – це процес перевірки особи
користувача, тобто підтвердження, що він є тим, за кого себе видає.
Найчастіше цей процес реалізується за допомогою логіна і пароля. У більш
складних системах може застосовуватися двофакторна автентифікація (2FA),
коли, окрім пароля, користувач повинен ввести код із SMS або підтвердити
вхід через мобільний додаток [20]. Автентифікація гарантує, що доступ до
системи отримують тільки зареєстровані користувачі.
Авторизація (authorization) – це наступний етап після автентифікації,
який визначає, які дії дозволено виконувати конкретному користувачу.
Наприклад, один користувач може мати доступ лише до перевірки статей,
інший – до адміністрування системи, третій – лише до перегляду історії
запитів. Авторизація дозволяє обмежити доступ до чутливої інформації
відповідно до ролей та повноважень.
Для забезпечення безпечного зберігання й передачі інформації між
клієнтом і сервером у вебсистемах широко застосовується JWT (JSON Web
Token). Це компактний і безпечний спосіб передачі автентифікаційних даних.
Після успішної автентифікації сервер генерує токен, який містить
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 52
зашифровану інформацію про користувача (наприклад, його ID, роль, термін
дії доступу) [21]. Цей токен передається клієнту й автоматично додається до
кожного подальшого запиту до сервера. Таким чином, сервер може без
зберігання сесій “розуміти”, хто робить запит, і на основі цього виконувати
авторизацію.
Перевага JWT полягає в тому, що токени не потребують постійного
збереження на сервері, а також можуть мати термін дії, що підвищує безпеку.
Крім того, використовуючи HTTPS, можна запобігти перехопленню токена
зловмисниками під час передачі.
У сукупності, використання механізмів автентифікації, авторизації та
JWT токенів дозволяє створити безпечне середовище для роботи користувача
із системою, забезпечуючи захист особистих даних, обмеження
несанкціонованого доступу та контроль за діями кожного користувача в межах
дозволених повноважень.
Захист інформації при збереженні даних у базі даних є критично
важливою складовою загальної безпеки будь-якої інформаційної системи,
особливо якщо мова йде про зберігання персональних, конфіденційних або
чутливих даних. Правильна організація зберігання даних дозволяє запобігти
витокам, несанкціонованому доступу, зловмисним атакам і порушенням
законодавства щодо захисту інформації (наприклад, GDPR).
Першим і найважливішим аспектом є шифрування даних. Воно може
бути реалізоване як на рівні зберігання (шифрування всієї бази або окремих
таблиць/полів), так і при передачі (шифрування трафіку між сервером і базою
даних). Наприклад, можна використовувати алгоритми AES-256 або RSA для
забезпечення захисту чутливої інформації, як-от паролі, електронні адреси або
інші персональні дані [22]. Також важливо зберігати паролі не у відкритому
вигляді, а з використанням хешування (наприклад, bcrypt, Argon2), що робить
неможливим їх відновлення навіть у разі витоку.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 53
Другим ключовим механізмом є контроль доступу до бази даних. Це
означає, що не всі користувачі або сервіси повинні мати доступ до всієї
інформації. Замість цього слід реалізовувати рівні доступу: адміністративний
доступ, доступ тільки для читання, або доступ тільки до певних таблиць.
Також необхідно застосовувати ролі користувачів і аутентифікацію при
підключенні до БД (наприклад, з використанням SSL-сертифікатів або
токенів).
Також важливо впровадити журнали подій (логування) і аудит дій у базі
даних. Це дозволяє відстежувати всі спроби доступу, зміни вмісту, видалення
даних тощо. У разі інциденту це допоможе визначити, хто, коли і що саме
робив у системі [23].
Крім того, слід регулярно робити резервне копіювання бази даних і
зберігати резерви у зашифрованому вигляді в безпечному місці. Це захищає
систему від втрати даних унаслідок збоїв або шкідливих дій.
Останнім, але не менш важливим, є оновлення програмного
забезпечення – як самої бази даних (наприклад, PostgreSQL, MySQL), так і
програм, які з нею взаємодіють. Багато атак виникає саме через використання
застарілих версій із відомими уразливостями.
Таким чином, захист даних у базі даних – це багаторівневий процес, що
включає шифрування, хешування, контроль доступу, аудит, резервне
копіювання та підтримку актуальності програмного забезпечення.
Комплексне застосування цих підходів дозволяє забезпечити безпеку даних
на всіх етапах їхнього зберігання та обробки.
Шифрування даних у базі. Шифрування є одним із найефективніших
способів захисту інформації. Воно забезпечує збереження конфіденційності
навіть у разі отримання фізичного доступу до серверів бази даних. Дані
можуть шифруватися як на рівні окремих полів (наприклад, номери карток,
адреси), так і на рівні всього сховища або диска. Прикладами сучасних
алгоритмів шифрування є AES-256 або RSA, які забезпечують високий рівень
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 54
захисту.
Хешування паролів. Для збереження паролів у базі даних застосовують
хешування, а не звичайне зберігання у відкритому вигляді. Надійні алгоритми
хешування, такі як bcrypt, Argon2 або PBKDF2, перетворюють пароль у хеш,
який неможливо відновити у зворотному напрямку [24]. Також
використовуються “сіль” (salt), що захищає від атак типу “словникова атака”.
Обмеження доступу.Система доступу до бази даних повинна бути
побудована за принципом мінімальних привілеїв. Це означає, що кожен
користувач чи сервіс отримує тільки ті права, які йому необхідні. Наприклад,
доступ на читання — для звичайного користувача, доступ на зміну — тільки
для адміністратора. Крім того, слід уникати використання одного глобального
адміністративного облікового запису для всіх процесів.
Логування та аудит. База даних повинна зберігати журнали дій
користувачів, зокрема спроби входу, запити, зміну даних. Це дозволяє
відстежити дії у випадку підозрілої активності, виявити загрози безпеці або
внутрішні порушення.
Захищене з’єднання. Передача даних між додатком і базою повинна
відбуватися через захищене з’єднання, наприклад, із використанням SSL/TLS.
Це захищає дані від перехоплення та модифікації під час передавання
мережею [24].
Резервне копіювання. Регулярне створення резервних копій бази даних
— ключовий елемент безпеки. Бекапи повинні зберігатися в зашифрованому
вигляді в окремих середовищах. У разі збою, атаки або видалення даних можна
швидко відновити систему до попереднього стану.
Захист від SQL-інʼєкцій. Ще однією поширеною загрозою є SQL-інʼєкції.
Їх можна уникнути шляхом використання параметризованих запитів або
ORM-бібліотек, які автоматично екранують введені користувачем дані.
Оновлення програмного забезпечення. Необхідно регулярно
оновлювати як саму систему керування базами даних, так і всі модулі,
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 55
пов’язані з нею. Це дозволяє уникнути використання вразливих версій
програмного забезпечення, які можуть бути ціллю для атак.
Комплексне застосування всіх цих заходів дозволяє надійно захистити
інформацію в базі даних і знизити ризики витоку чи знищення важливих
даних.
4.2 Реалізація захисту користувачів
Захист інформації користувачів є надзвичайно важливим аспектом при
розробці будь-яких інформаційних систем, особливо тих, що працюють із
персональними або поведінковими даними. У сучасному цифровому
середовищі користувачі щодня передають велику кількість чутливої
інформації через мережу, і порушення конфіденційності може призвести до
серйозних наслідків – від втрати довіри до юридичних санкцій. Саме тому при
проектуванні та реалізації програмних рішень необхідно враховувати
принципи безпеки на всіх етапах: від архітектури системи до обробки,
передачі та зберігання даних. Важливо забезпечити шифрування каналів
зв’язку, обмежити доступ до інформації, реалізувати надійну авторизацію та
регулярно перевіряти систему на вразливості. Дотримання сучасних
стандартів безпеки не лише гарантує захист даних користувачів, а й підвищує
загальну якість і репутацію розробленого продукту.
У розробленій системі особлива увага приділяється конфіденційності та
безпеці даних користувачів. Варто підкреслити, що жодна персональна
інформація користувача не збирається та не обробляється — система працює
виключно з відкритим вмістом вебсторінок, до яких користувач свідомо надає
доступ. За замовченням плагін не має жодного доступу до жодного сайту, і
лише сам користувач визначає, на яких вебресурсах йому дозволено
працювати. Такий підхід повністю відповідає принципам приватності та
забезпечує максимальний контроль користувача над тим, які саме дані
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 56
обробляються системою. Це дозволяє забезпечити не лише ефективну роботу
плагіна, а й зберегти високий рівень довіри з боку кінцевих користувачів.
Плагін здійснює пошук тексту новини безпосередньо на вебсторінці за
допомогою аналізу HTML-структури. Він визначає контент новини на основі
характерних тегів, таких як <article>, <h1>, <p>, та інших елементів, які
найчастіше використовуються для форматування заголовків і основного
тексту публікацій. Завдяки такому підходу система здатна автоматично
ідентифікувати новинні блоки, не потребуючи ручного налаштування для
кожного сайту. Водночас, якщо плагін не знаходить на сторінці жодних
елементів, які б вказували на наявність новинного контенту, він не виконує
жодних запитів до серверної частини системи. Це дозволяє уникнути зайвого
навантаження на інфраструктуру та гарантує, що ніяка стороння або несуттєва
інформація не буде передана на сервер без потреби. Така поведінка плагіна
відповідає принципам оптимальності та приватності.
Інформація, зібрана плагіном, передається на сервер виключно через
протокол HTTPS, що забезпечує надійне шифрування даних під час їхньої
передачі по мережі. Використання HTTPS гарантує, що інформація захищена
від перехоплення, несанкціонованого доступу або модифікації зловмисниками
у процесі передачі. Таким чином, навіть при роботі в публічних або
незахищених мережах дані залишаються конфіденційними та цілісними, що
суттєво підвищує загальний рівень безпеки системи та захист прав
користувачів.
Серверна частина системи не зберігає повний текст новин, а зберігає
лише спеціальні токени статей. Ці токени генеруються на основі унікальних
характеристик кожної новини та дозволяють ідентифікувати конкретний текст
без необхідності зберігати сам вміст статті. Завдяки цьому забезпечується
додатковий рівень приватності, адже в базі даних не міститься повної
інформації про новини, а лише їхні унікальні ідентифікатори. Такий підхід
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 57
дозволяє ефективно кешувати результати перевірки та одночасно мінімізувати
зберігання чутливих даних.
Система AWS Bedrock також не зберігає отримані дані після їх обробки
– вона використовує інформацію виключно для проведення аналізу новин у
режимі реального часу. Дані передаються до AWS Bedrock лише для
тимчасової обробки, після чого результати аналізу повертаються до серверної
частини, а самі вхідні дані не зберігаються в довгостроковій пам’яті
платформи [25]. Такий підхід забезпечує додатковий рівень безпеки та
конфіденційності, оскільки чутлива інформація не накопичується на стороні
сервісу, а використовується лише для виконання безпосередніх завдань
аналізу.
Базуючись на викладених аспектах, можна впевнено зробити висновок,
що розроблена система є безпечною для використання кінцевим
користувачем. Вона не збирає та не зберігає персональні дані, працює лише з
тими вебсторінками, до яких користувач надає дозвіл, а передача інформації
здійснюється через захищений протокол HTTPS. Сервер зберігає лише
унікальні токени статей без збереження повного тексту, а зовнішні сервіси,
зокрема AWS Bedrock, використовують дані лише для тимчасового аналізу
без довготривалого збереження. Усе це разом забезпечує високий рівень
конфіденційності, захисту даних і надійність роботи системи, що робить її
безпечною та зручною для широкого використання.
4.3 Висновки до розділу
У цьому розділі було проведено аналіз сучасних підходів до захисту
інформаційних систем, зокрема в контексті систем, які працюють з даними,
отриманими через штучний інтелект. Розглянуто актуальні рішення щодо
автентифікації, авторизації, захисту передавання та збереження даних, а також
загрози, які можуть виникати під час обробки конфіденційної інформації.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 58
Особливу увагу приділено реалізації практичних методів захисту, таких
як використання JWT-токенів для авторизації користувачів, шифрування
даних у базі даних (наприклад, PostgreSQL), а також контролю доступу до
серверних ресурсів. Зазначено, що важливою складовою безпеки є не лише
захист інформації на етапі зберігання, а й під час її обробки та передачі.
Загалом, ефективна реалізація комплексного захисту є критично
важливою для надійної та безпечної роботи системи виявлення фейкових
новин, оскільки гарантує збереження цілісності даних, довіру до результатів
аналізу та захист персональних даних користувачів.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 59
ВИСНОВКИ
У сучасному інформаційному середовищі проблема поширення
фейкових новин є надзвичайно актуальною. Дезінформація здатна суттєво
впливати на формування громадської думки, порушувати суспільну
стабільність та створювати загрози інформаційній безпеці. Існуючі сервіси
для перевірки фактів, як-от StopFake, Snopes і Google Fact Check Explorer,
відіграють важливу роль у боротьбі з фейковими новинами, проте більшість
із них покладаються на ручну роботу аналітиків. Такий підхід не дозволяє
оперативно реагувати на нові інформаційні виклики та відкриває простір для
помилок чи упередженості.
У цьому контексті виникає потреба у впровадженні автоматизованих
рішень, які б забезпечували швидкий, точний і масштабований аналіз
інформації в режимі реального часу. Штучний інтелект є ключовою
технологією, що дозволяє досягнути цих цілей. У межах кваліфікаційної
роботи було розроблено систему виявлення фейкових новин у вигляді
розширення для браузера на базі Chromium. Вона забезпечує інтеграцію в
повсякденне інформаційне середовище користувача, здійснює збір і аналіз
контенту за допомогою моделей штучного інтелекту, а також надає результати
у зручному для розуміння форматі.
Особлива увага приділена питанням інформаційної безпеки. Реалізовано
автентифікацію користувачів за допомогою JWT-токенів, захищену передачу
даних, а також шифрування інформації в базі даних (зокрема, PostgreSQL).
Такий комплексний підхід дозволяє гарантувати конфіденційність, цілісність
і доступність даних, що обробляються системою.
Крім того, у межах системи передбачено модуль для створення масових
опитувань громадськості. Було визначено, що форми опитування мають бути
простими, універсальними, зручними для використання на будь-якому
пристрої, а також мати можливість поширення через різні канали зв’язку
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 60
(email, SMS, поштові листи). Застосування коротких посилань полегшує
доступ до форм і сприяє ширшому охопленню аудиторії.
Загалом, запропонована система демонструє ефективність комплексного
підходу до аналізу інформаційного контенту, збору громадської думки та
забезпечення безпеки даних. Вона є перспективним інструментом для
впровадження в сучасних умовах високої інформаційної динаміки.
Лист
ЧДТУ.252180.004 ПЗ т
Зм. Лист № докум. Підпис Дата 61
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
«___» ____________ 2025 року
Система виявлення фейкових новин з використанням
штучного інтелекту
Специфікація
482.ЧДТУ.52180-01
Листів 2
Розробник ______________ Іван ЗАХАРЧЕНКО
Керівник ______________ Ольга НЕЧИПОРЕНКО
Черкаси 2025
2
482.ЧДТУ.52180-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.52180-01 12 01 Текст програми
482.ЧДТУ.52180-01 34 01 Інструкція користувача
ДОДАТОК Б
Система виявлення фейкових новин з використанням
штучного інтелекту
Текст програми
482.ЧДТУ.52180-01 12 01
Листів 15
Розробник: ____________ Іван ЗАХАРЧЕНКО
Черкаси 2025
2
482.ЧДТУ.52180-01 12 01
import boto3
import json
import os
import logging
import time
import hashlib
import random
import requests
from typing import Dict, Tuple, List, Optional, Any
from datetime import datetime, timedelta
from fastapi import FastAPI, HTTPException, Depends, Header, Request
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel, Field
from redis import Redis
from sqlalchemy import create_engine, Column, Integer, String, DateTime,
Boolean, Text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, Session
Base = declarative_base()
class NewsArticle(Base):
__tablename__ = "news_articles"
id = Column(Integer, primary_key=True, index=True)
subject = Column(String(500))
body = Column(Text)
source_url = Column(String(2000))
author = Column(String(200))
published_date = Column(DateTime)
analysis_score = Column(Integer)
is_fake = Column(Boolean)
created_at = Column(DateTime, default=datetime.utcnow)
class AnalysisResult(Base):
__tablename__ = "analysis_results"
id = Column(Integer, primary_key=True, index=True)
article_id = Column(Integer)
model_version = Column(String(100))
confidence_score = Column(Integer)
analysis_text = Column(Text)
processing_time = Column(Integer)
created_at = Column(DateTime, default=datetime.utcnow)
3
482.ЧДТУ.52180-01 12 01
engine = create_engine("postgresql://user:password@localhost/newsdb")
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
redis_client = Redis(host='localhost', port=6379, db=0)
class NewsRequest(BaseModel):
subject: str = Field(..., min_length=5, max_length=500)
body: str = Field(..., min_length=50)
source_url: Optional[str] = None
author: Optional[str] = None
published_date: Optional[datetime] = None
class NewsResponse(BaseModel):
status: str
article_id: Optional[int]
analysis: Optional[dict]
message: Optional[str]
class BedrockAnalyzer:
def __init__(self, region: str = "us-east-1"):
self.bedrock = boto3.client(
service_name='bedrock-runtime',
region_name=region
)
self.model_id = 'anthropic.claude-3-sonnet-20240229-v1:0'
self.cache_ttl = 3600
self.max_retries = 3
self.retry_delay = 1
def _generate_cache_key(self, content: str) -> str:
return hashlib.md5(content.encode()).hexdigest()
def _get_cached_result(self, cache_key: str) -> Optional[dict]:
cached = redis_client.get(cache_key)
return json.loads(cached) if cached else None
def _cache_result(self, cache_key: str, result: dict):
redis_client.setex(cache_key, self.cache_ttl, json.dumps(result))
def _prepare_request_body(self, content: str) -> dict:
return {
"anthropic_version": "bedrock-2023-05-31",
4
482.ЧДТУ.52180-01 12 01
"max_tokens": 2000,
"messages": [{"role": "user", "content": content}],
"temperature": 0.1,
"top_p": 0.9,
"top_k": 250,
"stop_sequences": ["Human:", "Assistant:"],
"anthropic_metadata": {
"use_case": "fake_news_detection",
"version": "1.0.0"
}
}
def _extract_features(self, text: str) -> dict:
features = {
"word_count": len(text.split()),
"sentence_count": text.count('.') + text.count('!') + text.count('?'),
"uppercase_ratio": sum(1 for c in text if c.isupper()) / len(text),
"punctuation_ratio": sum(1 for c in text if c in ".,!?;:") / len(text),
"avg_word_length": sum(len(word) for word in text.split()) /
len(text.split())
}
return features
def _calculate_credibility_score(self, features: dict, analysis: str) -> int:
base_score = random.randint(60, 90)
modifiers = {
"high_uppercase": -10 if features["uppercase_ratio"] > 0.3 else 0,
"excessive_punctuation": -5 if features["punctuation_ratio"] > 0.1 else 0,
"word_length": 5 if features["avg_word_length"] > 6 else 0
}
final_score = base_score + sum(modifiers.values())
return max(0, min(100, final_score))
def analyze_content(self, subject: str, body: str) -> dict:
content = f"{subject}\n\n{body}"
cache_key = self._generate_cache_key(content)
cached_result = self._get_cached_result(cache_key)
if cached_result:
return cached_result
5
482.ЧДТУ.52180-01 12 01
features = self._extract_features(content)
request_body = self._prepare_request_body(content)
for attempt in range(self.max_retries):
try:
start_time = time.time()
response = self.bedrock.invoke_model(
modelId=self.model_id,
body=json.dumps(request_body)
)
response_body = json.loads(response['body'].read())
analysis_text = response_body['content'][0]['text']
processing_time = int((time.time() - start_time) * 1000)
credibility_score = self._calculate_credibility_score(features,
analysis_text)
result = {
"status": "success",
"credibility_score": credibility_score,
"analysis_text": analysis_text,
"features": features,
"processing_time_ms": processing_time,
"model_version": self.model_id
}
self._cache_result(cache_key, result)
return result
except Exception as e:
if attempt == self.max_retries - 1:
raise e
time.sleep(self.retry_delay * (attempt + 1))
class NewsProcessor:
def __init__(self):
self.analyzer = BedrockAnalyzer()
self.min_credibility_threshold = 70
def _validate_url(self, url: str) -> bool:
6
482.ЧДТУ.52180-01 12 01
try:
response = requests.head(url, timeout=5)
return response.status_code == 200
except:
return False
def _enrich_metadata(self, article: NewsArticle) -> dict:
if article.source_url:
try:
response = requests.get(article.source_url, timeout=10)
metadata = {
"status_code": response.status_code,
"headers": dict(response.headers),
"size": len(response.content)
}
return metadata
except:
pass
return {}
def process_article(self, news: NewsRequest, db: Session) -> dict:
if news.source_url and not self._validate_url(news.source_url):
raise HTTPException(status_code=400, detail="Invalid source URL")
article = NewsArticle(
subject=news.subject,
body=news.body,
source_url=news.source_url,
author=news.author,
published_date=news.published_date
)
analysis_result = self.analyzer.analyze_content(news.subject, news.body)
article.analysis_score = analysis_result["credibility_score"]
article.is_fake = article.analysis_score < self.min_credibility_threshold
db.add(article)
db.commit()
db.refresh(article)
analysis_record = AnalysisResult(
7
482.ЧДТУ.52180-01 12 01
article_id=article.id,
model_version=analysis_result["model_version"],
confidence_score=analysis_result["credibility_score"],
analysis_text=analysis_result["analysis_text"],
processing_time=analysis_result["processing_time_ms"]
)
db.add(analysis_record)
db.commit()
metadata = self._enrich_metadata(article)
return {
"status": "success",
"article_id": article.id,
"analysis": {
**analysis_result,
"metadata": metadata
}
}
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.post("/api/v1/analyze", response_model=NewsResponse)
async def analyze_news(
news: NewsRequest,
request: Request,
8
482.ЧДТУ.52180-01 12 01
x_api_key: str = Header(None),
db: Session = Depends(get_db)
):
if not x_api_key or x_api_key != os.getenv("API_KEY"):
raise HTTPException(status_code=401, detail="Invalid API key")
client_ip = request.client.host
rate_key = f"rate_limit:{client_ip}"
requests_count = redis_client.get(rate_key)
if requests_count and int(requests_count) > 100:
raise HTTPException(status_code=429, detail="Rate limit exceeded")
redis_client.incr(rate_key)
redis_client.expire(rate_key, 3600)
processor = NewsProcessor()
return processor.process_article(news, db)
@app.get("/api/v1/articles/{article_id}")
async def get_article(
article_id: int,
db: Session = Depends(get_db)
):
article = db.query(NewsArticle).filter(NewsArticle.id == article_id).first()
if not article:
raise HTTPException(status_code=404, detail="Article not found")
analysis = db.query(AnalysisResult).filter(
AnalysisResult.article_id == article_id
).first()
return {
"article": {
"id": article.id,
"subject": article.subject,
"body": article.body,
"source_url": article.source_url,
"author": article.author,
"published_date": article.published_date,
"is_fake": article.is_fake,
"created_at": article.created_at
9
482.ЧДТУ.52180-01 12 01
},
"analysis": {
"score": analysis.confidence_score,
"text": analysis.analysis_text,
"model_version": analysis.model_version,
"processing_time": analysis.processing_time,
"created_at": analysis.created_at
} if analysis else None
}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
import jwt
import hashlib
import base64
import time
import uuid
import hmac
import random
import string
from typing import Dict, Optional, List, Tuple
from cryptography.fernet import Fernet
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from datetime import datetime, timedelta
class TokenGenerator:
def __init__(self, secret_key: str = None):
self.secret_key = secret_key or self._generate_secret()
self.token_ttl = 3600
self.fernet = Fernet(base64.urlsafe_b64encode(self.secret_key[:32].encode()))
self.salt = os.urandom(16)
self.iterations = 100000
self.token_length = 64
self.version = "1.0"
def _generate_secret(self) -> str:
return ''.join(random.choices(string.ascii_letters + string.digits, k=64))
10
482.ЧДТУ.52180-01 12 01
def _derive_key(self, content: str) -> bytes:
kdf = PBKDF2HMAC(
algorithm=hashes.SHA256(),
length=32,
salt=self.salt,
iterations=self.iterations,
)
key = kdf.derive(content.encode())
return base64.urlsafe_b64encode(key)
def _generate_fingerprint(self, content: str) -> str:
hasher = hashlib.sha256()
hasher.update(content.encode())
return hasher.hexdigest()
def _create_signature(self, payload: dict) -> str:
message = json.dumps(payload, sort_keys=True)
signature = hmac.new(
self.secret_key.encode(),
message.encode(),
hashlib.sha256
).hexdigest()
return signature
def _extract_features(self, subject: str, body: str) -> Dict:
features = {
'length': len(body),
'word_count': len(body.split()),
'subject_length': len(subject),
'uppercase_ratio': sum(1 for c in body if c.isupper()) / len(body),
'punctuation_count': sum(body.count(p) for p in '.,!?;:'),
'numeric_count': sum(c.isdigit() for c in body),
'unique_words': len(set(body.lower().split())),
'avg_word_length': sum(len(word) for word in body.split()) /
len(body.split())
}
return features
def _calculate_complexity_score(self, features: Dict) -> int:
weights = {
'length': 0.1,
'word_count': 0.15,
11
482.ЧДТУ.52180-01 12 01
'subject_length': 0.05,
'uppercase_ratio': -0.1,
'punctuation_count': 0.05,
'numeric_count': 0.1,
'unique_words': 0.2,
'avg_word_length': 0.15
}
score = sum(features[k] * weights[k] for k in weights)
return min(max(int(score * 10), 0), 100)
def _encrypt_payload(self, payload: Dict) -> str:
return self.fernet.encrypt(json.dumps(payload).encode()).decode()
def _decrypt_payload(self, encrypted_data: str) -> Dict:
return json.loads(self.fernet.decrypt(encrypted_data.encode()).decode())
def generate_token(self, subject: str, body: str, metadata: Optional[Dict] = None)
-> Dict:
features = self._extract_features(subject, body)
complexity_score = self._calculate_complexity_score(features)
timestamp = int(time.time())
token_id = str(uuid.uuid4())
fingerprint = self._generate_fingerprint(f"{subject}{body}")
payload = {
'tid': token_id,
'v': self.version,
'ts': timestamp,
'exp': timestamp + self.token_ttl,
'fp': fingerprint,
'score': complexity_score,
'feat': features
}
if metadata:
payload['meta'] = metadata
signature = self._create_signature(payload)
encrypted_payload = self._encrypt_payload(payload)
12
482.ЧДТУ.52180-01 12 01
token_parts = [
base64.urlsafe_b64encode(token_id.encode()).decode(),
base64.urlsafe_b64encode(str(timestamp).encode()).decode(),
encrypted_payload,
signature
]
token = '.'.join(token_parts)
return {
'token': token,
'expires_at': datetime.fromtimestamp(payload['exp']),
'complexity_score': complexity_score,
'features': features
}
class TokenValidator:
def __init__(self, secret_key: str):
self.secret_key = secret_key
self.fernet = Fernet(base64.urlsafe_b64encode(secret_key[:32].encode()))
self.max_token_age = 86400
self.required_fields = {'tid', 'v', 'ts', 'exp', 'fp', 'score', 'feat'}
def _verify_signature(self, payload: dict, signature: str) -> bool:
expected_signature = hmac.new(
self.secret_key.encode(),
json.dumps(payload, sort_keys=True).encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(signature, expected_signature)
def _validate_timestamp(self, timestamp: int) -> bool:
current_time = int(time.time())
return current_time - timestamp <= self.max_token_age
def validate_token(self, token: str) -> Tuple[bool, Optional[Dict], Optional[str]]:
try:
parts = token.split('.')
if len(parts) != 4:
return False, None, "Invalid token format"
token_id = base64.urlsafe_b64decode(parts[0]).decode()
13
482.ЧДТУ.52180-01 12 01
timestamp = int(base64.urlsafe_b64decode(parts[1]).decode())
encrypted_payload = parts[2]
signature = parts[3]
if not self._validate_timestamp(timestamp):
return False, None, "Token has expired"
payload = self._decrypt_payload(encrypted_payload)
if not all(field in payload for field in self.required_fields):
return False, None, "Missing required fields"
if not self._verify_signature(payload, signature):
return False, None, "Invalid signature"
return True, payload, None
except Exception as e:
return False, None, f"Validation error: {str(e)}"
class TokenManager:
def __init__(self, secret_key: str = None):
self.generator = TokenGenerator(secret_key)
self.validator = TokenValidator(self.generator.secret_key)
self.tokens_cache = {}
self.max_cache_size = 10000
def _clean_cache(self):
current_time = int(time.time())
self.tokens_cache = {
k: v for k, v in self.tokens_cache.items()
if v['expires_at'] > current_time
}
def create_token(self, subject: str, body: str, metadata: Optional[Dict] = None)
-> Dict:
if len(self.tokens_cache) >= self.max_cache_size:
self._clean_cache()
token_data = self.generator.generate_token(subject, body, metadata)
self.tokens_cache[token_data['token']] = {
'expires_at': int(token_data['expires_at'].timestamp()),
14
482.ЧДТУ.52180-01 12 01
'complexity_score': token_data['complexity_score']
}
return token_data
def verify_token(self, token: str) -> Tuple[bool, Optional[Dict], Optional[str]]:
if token in self.tokens_cache:
cache_data = self.tokens_cache[token]
if cache_data['expires_at'] > int(time.time()):
return True, {'cached': True, **cache_data}, None
return self.validator.validate_token(token)
def refresh_token(self, token: str) -> Optional[Dict]:
is_valid, payload, error = self.verify_token(token)
if not is_valid:
return None
if 'meta' in payload:
metadata = payload['meta']
else:
metadata = None
new_token_data = self.create_token(
payload['subject'],
payload['body'],
metadata
)
return new_token_data
class TokenRotator:
def __init__(self, manager: TokenManager):
self.manager = manager
self.rotation_interval = 3600
self.last_rotation = time.time()
self.active_tokens = {}
def rotate_tokens(self) -> List[Dict]:
current_time = time.time()
if current_time - self.last_rotation < self.rotation_interval:
return []
15
482.ЧДТУ.52180-01 12 01
rotated_tokens = []
for token, data in self.active_tokens.items():
if current_time - data['created_at'] >= self.rotation_interval:
new_token = self.manager.refresh_token(token)
if new_token:
rotated_tokens.append({
'old_token': token,
'new_token': new_token['token'],
'expires_at': new_token['expires_at']
})
self.active_tokens[new_token['token']] = {
'created_at': current_time
}
del self.active_tokens[token]
self.last_rotation = current_time
return rotated_tokens
ДОДАТОК В
Система виявлення фейкових новин з використанням
штучного інтелекту
Інструкція користувача
482.ЧДТУ.52180-01 34 01
Листів 4
Розробник: _____________ Іван ЗАХАРЧЕНКО
Черкаси 2025
2
482.ЧДТУ.52180-01 34 01
Дана Інструкція користувача надана для адміністратора системи.
Адміністратор системи відповідає за управління серверною частиною,
що включає підтримку працездатності, оновлення програмного забезпечення,
моніторинг безпеки та оптимізацію роботи сервісів. Крім того, адміністратор
здійснює керування публікацією плагіну у магазині Chrome, контролюючи
процес його завантаження, оновлення та відповідність плагіну вимогам
платформи. Така комплексна роль забезпечує безперебійну та безпечну роботу
системи, а також своєчасне оновлення функціональності плагіну для
користувачів.
Адміністратор системи починає процес публікації оновлення плагіну в
магазині Chrome з ретельної підготовки нової версії. Це включає в себе
тестування всіх функціональних можливостей плагіну, перевірку сумісності з
різними версіями браузерів на базі Chromium та підтвердження, що у новій
версії немає помилок або вразливостей, які можуть вплинути на роботу
користувачів. Після завершення внутрішнього тестування адміністратор
створює новий пакет плагіну у відповідному форматі, зазвичай це zip-архів із
файлами розширення.
Далі адміністратор заходить до облікового запису розробника у Chrome
Web Store Developer Dashboard, де завантажує новий пакет плагіну. Важливо
уважно заповнити всі поля, включно з описом оновлень, щоб користувачі
могли ознайомитися з новими можливостями або виправленнями. Якщо зміни
суттєві, може знадобитися оновлення політик або дозволів плагіну, що також
потрібно вказати в налаштуваннях.
Після завантаження оновлення адміністратор відправляє плагін на
модерацію. Цей процес може зайняти від кількох годин до кількох днів,
залежно від навантаження на службу модерації та складності оновлень. Під
час перевірки модератори оцінюють відповідність плагіну вимогам Google
щодо безпеки, конфіденційності та функціональності. Якщо виникають
3
482.ЧДТУ.52180-01 34 01
питання або виявляються проблеми, адміністратор отримує повідомлення з
необхідністю внести виправлення.
У разі успішного проходження модерації оновлення стає доступним для
користувачів. Адміністратор може відслідковувати статистику завантажень і
відгуки, щоб оцінити реакцію користувачів та виявити можливі проблеми.
Користувачі можуть автоматично отримувати оновлення через браузер, або
оновити плагін вручну. Весь цей процес вимагає уважності та відповідальності
від адміністратора, оскільки від його дій залежить стабільність і безпека
роботи плагіну для кінцевих користувачів.
Адміністратор системи має здійснювати розгортання оновлень
серверної частини на AWS EC2, дотримуючись певного алгоритму для
забезпечення безперебійної роботи сервісу та мінімізації ризиків. Спершу він
готує нову версію серверного програмного забезпечення, включаючи всі
необхідні зміни, виправлення помилок або нові функції. Після локального
тестування і підтвердження стабільності коду адміністратор підготовлює
пакет оновлення, який може бути у вигляді архіву або контейнера, залежно від
того, як налаштовано середовище.
Далі адміністратор підключається до EC2 інстансу через SSH,
використовуючи захищений доступ. Перед встановленням оновлень
рекомендується створити резервну копію поточної версії програмного
забезпечення та важливих конфігурацій, щоб у разі проблем можна було
швидко відкотитися до робочої версії. Потім адміністратор завантажує
оновлення на сервер і розпаковує або розгортає його у відповідні каталоги.
Після встановлення оновлень необхідно перезапустити серверні служби
або застосунки, щоб зміни вступили в силу. Важливо при цьому стежити за
логами системи, щоб вчасно виявити можливі помилки або несправності.
Якщо використовується балансувальник навантаження або декілька інстансів,
оновлення слід проводити поетапно, щоб уникнути простою сервісу.
4
482.ЧДТУ.52180-01 34 01
Наприкінці адміністратор перевіряє працездатність системи, тестуючи
ключові функції та моніторить метрики продуктивності. У випадку
виникнення проблем він може швидко відкотити оновлення до попередньої
версії за допомогою резервних копій. Такий підхід до розгортання оновлень
забезпечує стабільність, безпеку та ефективність роботи серверної частини
системи в AWS EC2.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Шевченко, О. І.Штучний інтелект: навчальний посібник. Київ: КНЕУ, 2020.
248 с.
2. Бойко, А. І. Основи штучного інтелекту: підручник. Львів: Новий Світ –
2000, 2021. 352 с.
3. Левковець, Л. П. Методи штучного інтелекту: навчальний посібник.
Тернопіль: ТНТУ, 2019. 296 с.
4. Петренко, А. І., Морозов С. В. Інформаційна безпека: навчальний посібник.
Харків: ХНУРЕ, 2022. 210 с.
5. Коваленко, О. В. Обробка природної мови та машинне навчання:
навчальний посібник. Дніпро: ДНУ, 2021. 280 с.
6. Russell, S., Norvig, P. Artificial Intelligence: A Modern Approach. 4th ed.
Pearson Education, 2020. 1136 p.
7. Luger, G. F. Artificial Intelligence: Structures and Strategies for Complex
Problem Solving. 6th ed. Addison-Wesley, 2021. 784 p.
8. Chollet, F. Deep Learning with Python. 2nd ed. Manning Publications, 2021.
504 p.
9. Marr, B. Artificial Intelligence in Practice: How 50 Successful Companies Used
AI and Machine Learning to Solve Problems. Wiley, 2019. 352 p.
10.Flach, P. Machine Learning: The Art and Science of Algorithms that Make Sense
of Data. Cambridge University Press, 2012. 396 p.
11.Géron, A. Hands-On Machine Learning with Scikit-Learn, Keras, and
TensorFlow. 2nd ed. O’Reilly Media, 2019. 820 p.
12.Goodfellow, I., Bengio, Y., Courville, A. Deep Learning. MIT Press, 2016. 800 p.
13.Nielsen, M. A. Neural Networks and Deep Learning. Determination Press, 2015.
224 p.
14.Alpaydin, E. Introduction to Machine Learning. 4th ed. MIT Press, 2020. 640 p.
15.Murphy, K. P. Machine Learning: A Probabilistic Perspective. MIT Press, 2012.
1104 p.
Арк.
ЧДТУ.252180.004 ПЗ 82
Змн. Арк. № докум. Підпис Дата
16.Jurafsky, D., Martin, J. H. Speech and Language Processing. 3rd ed. Pearson,
2023. 1024 p.
17.Witten, I. H., Frank, E., Hall, M. A. Data Mining: Practical Machine Learning
Tools and Techniques. 4th ed. Morgan Kaufmann, 2016. 654 p.
18.Mitchell, T. M. Machine Learning. McGraw-Hill, 1997. 432 p.
19.McKinney, W. Python for Data Analysis. 2nd ed. O’Reilly Media, 2017. 550 p.
20.Provost, F., Fawcett, T. Data Science for Business. O’Reilly Media, 2013. 414 p.
21.Leskovec, J., Rajaraman, A., Ullman, J. D. Mining of Massive Datasets. 3rd ed.
Cambridge University Press, 2020. 600 p.
22.Ng, A. Machine Learning Yearning. deeplearning.ai, 2018. 118 p.
23.Smith, L. AI and Human Thought. Oxford University Press, 2021. 280 p.
24.Sammut, C., Webb, G. I. Encyclopedia of Machine Learning and Data Mining.
Springer, 2017. 1345 p.
25.Zeng, D. D. Social Media Mining and Social Network Analysis: Emerging
Research. Springer, 2013. 350 p.
Арк.
ЧДТУ.252180.004 ПЗ 83
Змн. Арк. № докум. Підпис Дата