Skip to content

Latest commit

ย 

History

History
362 lines (263 loc) ยท 18.8 KB

readme.md

File metadata and controls

362 lines (263 loc) ยท 18.8 KB

RISKOUT - ๊ตญ๋ฐฉ ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ ํ”Œ๋žซํผ (Risk Management Platform for Military)

ย 


Quick Links


๐Ÿ“– ๋ชฉ์ฐจ (Table of Contents)

  1. โžค ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ (Intro)
  2. โžค ๊ธฐ๋Šฅ ์„ค๋ช… (Features)
  3. โžค ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ๋ฒ• (Getting Started)
  4. โžค ์ปดํ“จํ„ฐ ๊ตฌ์„ฑ / ํ•„์ˆ˜ ์กฐ๊ฑด ์•ˆ๋‚ด (Prequisites)
  5. โžค ๊ธฐ์ˆ  ์Šคํƒ (Techniques Used)
  6. โžค ์„ค์น˜ ์•ˆ๋‚ด (Installation Process)
  7. โžค ํŒ€ ์ •๋ณด (Team Information)
  8. โžค ์ €์ž‘๊ถŒ ๋ฐ ์‚ฌ์šฉ๊ถŒ ์ •๋ณด (Copyleft / End User License)

๐Ÿง ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ (Intro)

๊ตฐ๋Œ€์—๊ฒŒ๋Š” ์—ฌ๋Ÿฌ Risk(์œ„ํ˜‘)์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŒŒ์ด, ํ•ด์ปค, ํ…Œ๋Ÿฌ๋ฆฌ์ŠคํŠธ ๋“ฑ์˜ ์™ธ๋ถ€์ ์ธ ์œ„ํ˜‘๋„ ์กด์žฌํ•˜์ง€๋งŒ, ์‹œ์Šคํ…œ์ด ์ž˜ ๊ตฌ์ถ•๋œ ํ˜„์žฌ์˜ ๊ตฐ๋Œ€์˜ ์‹ค์งˆ์ ์ธ ์œ„ํ˜‘์€ ๊ตฐ์‚ฌ ๊ธฐ๋ฐ€ ์œ ์ถœ, ํ—ˆ์œ„ ๊ธฐ์‚ฌ, ์•…์„ฑ ๊ฒŒ์‹œ๊ธ€ ๋“ฑ์˜ ๋‚ด๋ถ€์ ์ธ ์œ„ํ˜‘๋“ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ตฐ๋Œ€๋Š” ์ด๋Ÿฐ ๋‚ด๋ถ€ ์œ„ํ˜‘์„ ์–ด๋–ป๊ฒŒ ์‹๋ณ„ํ•˜๊ณ  ๊ด€๋ฆฌํ• ๊นŒ์š”?

ํ˜„์žฌ ๊ตฐ๋Œ€๋Š” ์œ ์ถœ๋œ ๊ธฐ๋ฐ€๊ธ€ ๋ฐ ํ—ˆ์œ„๊ธฐ์‚ฌ๋“ฑ์˜ ์•…์„ฑ๊ธ€์„ ์ถ”๋ ค๋‚ด๊ธฐ ์œ„ํ•ด 24์‹œ๊ฐ„๋™์•ˆ ๋ฌดํ•œ์ • ๊ฒ€์ƒ‰ ๋ฐ ์บก์ฒ˜ํ•˜๊ณ  ๊ฐ์ข…์‹ ๋ฌธ์—์„œ ๊ธฐ์‚ฌ๋ฅผ ์ผ์ผํžˆ ์˜ค๋ ค๋ƒ…๋‹ˆ๋‹ค. ๋ชจ์€ ์ž๋ฃŒ๋Š” ์‚ฌ๋žŒ์ด ์ฝ์–ด๋ณด๋ฉด์„œ ๋ฌธ์ œ๊ฐ€ ๋  ๊ธ€์„ ์‹๋ณ„ํ•˜๊ณ , ๋ณด๊ณ ์„œ๋กœ ์ •๋ฆฌํ•ด์„œ ๋Œ€์‘ํŒ€ํ•œํ…Œ ๋„˜๊ธฐ๋Š” ๋“ฑ ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…๋“ค์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ๋†“์น˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜, ๋Œ€์‘์ด ๋Šฆ์–ด์ง€๋Š” ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฐ์‚ฌ๊ธฐ๋ฐ€ ๋ฐ ํ—ˆ์œ„๊ธฐ์‚ฌ๋“ฑ์˜ ์•…์„ฑ๊ธ€์„ ์ž๋™์œผ๋กœ ์‹๋ณ„ํ•˜๊ณ  ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋Š” All-in-One ํ”Œ๋žซํผ์„ ๋งŒ๋“ค์–ด๋ณด์ž. RISKOUT์ด ํƒ„์ƒํ•˜๊ฒŒ ๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

There are numerous threats to military. There are external threats such as spies, hackers, terrorists, but the actual threats of current well-established military are internal threats such as leaked secrets, fake news, and malicious posts. So how does military identify and manage these?

Currently, military searches and captures leaked documents and fake news 24/7 and manually cuts news from newspapers. The collected data is then read and organized by soldiers into reports, finally handing them over to the response team. Due to the long and complex process, human errors or delayed responses may occur.

So I thought. Let's create an all-in-one platform that can automatically identify and manage malicious risks such as leaked secrets and fake news. That's when RISKOUT was born.

๐Ÿฝ๏ธ ๊ธฐ๋Šฅ ์„ค๋ช… (Features)

3๊ฐ€์ง€ ํ•ต์‹ฌ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์œ„ํ˜‘ ๋Œ€์‹œ๋ณด๋“œ (Risk Dashboard)

์˜ค๋Š˜์˜ ํ‚ค์›Œ๋“œ (Keywords for Today)

์˜ค๋Š˜์˜ ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ข… ๊ธฐ์‚ฌ๊ธ€, ๊ฒŒ์‹œํŒ ๋“ฑ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ธ๊ธ‰ ๋น„์ค‘์ด ๋†“์€ ๋‹จ์–ด๋“ค์„ ์‹œ๊ฐํ™”ํ•œ ์›Œ๋“œ ํด๋ผ์šฐ๋“œ์ž…๋‹ˆ๋‹ค.

words

๊ฐ์ • ํ†ต๊ณ„ ์ฐจํŠธ (Emotion Recognition Chart)

๊ฐ์ • ํ†ต๊ณ„์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ข… SNS ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฌ๋ก ์˜ ๊ฐ์ • ์ƒํƒœ๋ฅผ ๋ถ„์„ํ•˜์—ฌ positive, neutral, negative๋กœ ๋‚˜๋ˆ„์–ด ํ‘œํ˜„ํ•œ ์ฐจํŠธ๋“ค์ž…๋‹ˆ๋‹ค.

emopies

์˜ค๋Š˜์˜ ํŠธ๋ Œ๋“œ (Today's Top Trend)

์˜ค๋Š˜์˜ ํŠธ๋ Œ๋“œ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋‚  ๊ฐ€์žฅ ๋งŽ์ด ์–ธ๊ธ‰๋œ ๊ธฐ์‚ฌ๋“ค์„ ์„ ์ •ํ•˜์—ฌ FactCheck๋ฅผ ํ†ตํ•ด ์ง„์‹ค ์ถ”์ •, ์ค‘๋ฆฝ ์ถ”์ •, ํ—ˆ์œ„ ์ถ”์ •์œผ๋กœ ํŒ๋ณ„ ๋ฐ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

trend

๋‚˜๋ผ๋ณ„ ์ด๋ฒคํŠธ (Events by Country)

๋‚˜๋ผ๋ณ„ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตญ์ œ ๊ธฐ์‚ฌ๋“ค์„ ๋ถ„์„ํ•ด ๊ตญ๊ฐ€๋ณ„ ์ด๋ฒคํŠธ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ง€๋„์ž…๋‹ˆ๋‹ค.

events

๊ธฐ์‚ฌ ๋ณ€ํ™”๋Ÿ‰ (Article Variation)

๊ธฐ์‚ฌ ๋ณ€ํ™”๋Ÿ‰์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ ๊ธฐ์‚ฌ๋Ÿ‰๋“ค์„ ๋Œ€์กฐํ•˜์—ฌ ๊ธฐ์‚ฌ๋Ÿ‰์˜ ๋ณ€ํ™”๋ฅผ ์‹œ๊ฐํ™”ํ•œ ์ฐจํŠธ์ž…๋‹ˆ๋‹ค.

num_articles

์œ„ํ˜‘ ํƒ์ง€ (Risk Detection)

ํƒ์ง€ ํ˜„ํ™ฉ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ฐ€ ์œ ์ถœ ๋ฐ ํ—ˆ์œ„๊ธฐ์‚ฌ๋“ฑ์˜ ์•…์„ฑ๊ธ€๋“ค์„ ์ธ๊ณต์ง€๋Šฅ์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๋น ๋ฅด๊ฒŒ ๋Œ€์‘ํ• ์ˆ˜ ์žˆ๋„๋ก ์š”์•ฝ๋œ ๋‚ด์šฉ ๋ฐ ๊ธ€์˜ ์ถœ์ฒ˜ ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

detect

๊ฐœ์ฒด ์ธ์‹ ํ•„ํ„ฐ (NER Filter)

๊ฐœ์ฒด ์ธ์‹ ํ•„ํ„ฐ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ฒด๋ช… ์ธ์‹(Named Entity Recognition) ๊ธฐ์ˆ ๋กœ ์‚ฌ๋žŒ, ์กฐ์ง, ์‹œ๊ฐ„ ๋“ฑ์˜ ์œ ํ˜•๋“ค์„ ์ถ”์ถœ, ๋ณด๋‹ค ์„ธ๋ถ€์ ์ธ ๋ถ„์„์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ner

์ž๋™ ๋ณด๊ณ ์„œ ์ƒ์„ฑ (Automated Report Generation)

๋ณด๊ณ ์„œ ์ƒ์„ฑ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•œ ์œ„ํ˜‘๋“ค์„ ํด๋ฆญ ๋ช‡๋ฒˆ๋งŒ์œผ๋กœ ์ž๋™์œผ๋กœ ์ •๋ˆ ๋ฐ ์š”์•ฝํ•˜์—ฌ ๋ณด๊ณ ์„œ์˜ ํ˜•ํƒœ๋กœ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ๋ณด๊ณ ์„œ๋Š” PDF๋กœ ์ถœ๋ ฅ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

report

report_full

โšก ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ๋ฒ• (Getting Started)

๋กœ๊ทธ์ธ ํ•˜์‹  ํ›„:

์ถ•ํ•˜ํ•ด์š”! RISKOUT์˜ ์œ ์ €๊ฐ€ ๋˜์…จ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๐ŸŽ‰

๐Ÿด ์ปดํ“จํ„ฐ ๊ตฌ์„ฑ / ํ•„์ˆ˜ ์กฐ๊ฑด ์•ˆ๋‚ด (Prerequisites)

๐ŸŒ Browser

Chrome Chrome IE Internet Explorer Edge Edge Safari Safari Firefox Firefox
Yes 11+ Yes Yes Yes

๐Ÿ’พ Versions

Pytorch Pytorch react React Django Django ๐Ÿƒ Mongo DB ๐Ÿณ Docker โ“‚๏ธ MUI
1.9.0+ 17.0.2+ 3.0.7+ 4.4+ 20.10.x+ 5.0.1+

๐Ÿงฑ ๊ธฐ์ˆ  ์Šคํƒ (Technique Used)

techstack

AI

  • Colab์œผ๋กœ AI ๋ชจ๋ธ ํ•™์Šต:
    • KoBERT โ€” ๊ฐ์„ฑ๋ถ„์„, ๊ฐ€์งœ๋‰ด์ŠคํŒ๋ณ„, ๋ณด๊ณ ์„œ์š”์•ฝ์— ์‚ฌ์šฉ.
    • DistilKoBERT โ€” Named Entity Recognition(๊ฐœ์ฒด๋ช…์ธ์‹)์— ์‚ฌ์šฉ.
  • ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ์…‹:
    • Naver-nsmc โ€” ๊ฐ์„ฑ๋ถ„์„๋ชจ๋ธ์— ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ์…‹.
    • Dacon ๋ฌธ์„œ์š”์•ฝ โ€” ํ•œ๊ตญ์–ด ๋ฌธ์„œ ์ถ”์ถœ์š”์•ฝ์— ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ์…‹.
    • SNU Factcheck โ€” ๊ฐ€์งœ๋‰ด์Šค ํŒ๋ณ„์— ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ์…‹.
    • Naver NLP Challenge 2018 โ€” Named Entity Recognition(๊ฐœ์ฒด๋ช…์ธ์‹)์— ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ์…‹.
  • Pytorch ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•œ ๋”ฅ๋Ÿฌ๋‹ ๋นŒ๋“œ:
    • Transformers โ€” NLP๋ชจ๋ธ์˜ ์•„ํ‚คํ…์ฒ˜ ์ œ๊ณต.
    • FastAPI โ€” AI ๊ธฐ๋Šฅ API ๊ตฌํ˜„.

Backend

  • DRF๋ฅผ ํ†ตํ•œ ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•:
    • Mongo DB โ€” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•.
  • Beautiful Soup ์ด์šฉํ•˜์—ฌ ํฌ๋กค๋ง:
    • Crawler โ€” ๊ฐ์ข… ์˜คํ”ˆ๊ฒŒ์‹œํŒ, SNS, ๋‰ด์Šค์‚ฌ์ดํŠธ์—์„œ ์–ธ์–ด๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉ.

Frontend

  • React๋ฅผ ์ด์šฉํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌ์ถ•:
    • MUI โ€” MUI(Material UI) ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ.
    • React router โ€” ์ปดํฌ๋„ŒํŠธ ๋„ค๋น„๊ฒŒ์ด์…˜์— ์‚ฌ์šฉ.
  • Recoil์„ ํ†ตํ•œ ๋ฆฌ์•กํŠธ ์ƒํƒœ ๊ด€๋ฆฌ:
    • Atom โ€” ์ปดํฌ๋„ŒํŠธ ์ƒํƒœ ๋‹จ์œ„ ๋ถ„๋ฆฌ๊ธฐ๋Šฅ ์‚ฌ์šฉ.
    • Selector โ€” Atom์— ์˜์กดํ•˜๋Š” ๋™์ ์ธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๊ธฐ๋Šฅ ์‚ฌ์šฉ.

๐Ÿ“ ์„ค์น˜ ์•ˆ๋‚ด (Installation Process)

๋จผ์ €, node.js, yarn, docker, ๊ทธ๋ฆฌ๊ณ  docker-compose๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”. node.js๋Š” ๋ฒ„์ „ 14.x์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ Clone ํ•ฉ๋‹ˆ๋‹ค.

git clone https://github.com/osamhack2021/ai_web_RISKOUT_BTS

Secret ํŒŒ์ผ๋“ค์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

Secret ํŒŒ์ผ ์ž‘์„ฑ์— ๊ด€ํ•ด์„œ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

./run.sh

http://localhost:8002๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๐ŸŽ‰

๐Ÿ’๐Ÿปโ€โ™€๏ธ๐Ÿ’๐Ÿปโ€โ™‚๏ธ ํŒ€ ์ •๋ณด (Team Information)

Profile Name Role Github E-mail
์ด๋ฏผ์„
(ํŒ€์žฅ)
Product Manager
AI Developer
์กฐ์ •ํ™˜ AI Developer
์„œ๋ช…๊ทผ Frontend Engineer
๊น€ํƒœ์› Backend Engineer
์ด์›๋นˆ Frontend Engineer
๋ฐ•์šฉ์ค€ Backend Engineer
์„œ์ข…์ฐฌ Frontend Engineer

๐Ÿ“œ ์ €์ž‘๊ถŒ ๋ฐ ์‚ฌ์šฉ๊ถŒ ์ •๋ณด (Copyleft / End User License)

ํ”„๋กœ์ ํŠธ RISKOUT์€ GPL 3.0 License๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.