jonghhhh/fact-worthy-check
๐ FactWorthyCheck Pro
AI-powered Professional Fact-Worthy Claim Detection & Fact-Checking System
FactWorthyCheck Pro๋ ๋จ์ํ ์ง์์๋ต์ ๋์ด, ํ ์คํธ ๋ด์์ ๊ฒ์ฆ ๊ฐ์น๊ฐ ์๋ ์ฃผ์ฅ(Fact-worthy Claims)์ ์ค์ค๋ก ์๋ณํ๊ณ , Google Search Grounding ๊ธฐ์ ์ ํตํด ์ค์๊ฐ ์น ์ฆ๊ฑฐ๋ฅผ ์์งํ์ฌ ์ ๋ฌธ ๊ธฐ์ ํ๋ฅด์๋๋ก ์๊ฒฉํ ํฉํธ์ฒดํฌ๋ฅผ ์ํํ๋ ์๋ํ ์์ด์ ํธ ์์คํ ์ ๋๋ค.
๐ฏ ํ๋ก์ ํธ ์ทจ์ง (Intent)
๊ฐ์ง ๋ด์ค์ ์ ๋ณด ๊ณผ์์ ์๋์ ๋ชจ๋ ๋ฌธ์ฅ์ ๊ฒ์ฆํ๋ ๊ฒ์ ๋นํจ์จ์ ์ ๋๋ค. ๋ณธ ํ๋ก์ ํธ๋ ๋ค์ ์ธ ๊ฐ์ง ๋ชฉ์ ์ ๋ฌ์ฑํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค:
- ์ ํ๊ณผ ์ง์ค: BERT(KcELECTRA) ๋ชจ๋ธ์ ํตํด ๋จ์ ์๊ฒฌ์ด๋ ๊ฐํ์ฌ๊ฐ ์๋, ์ฌํ์ ์ํฅ๋ ฅ์ด ์๊ณ ์ฌ์ค ๊ด๊ณ ํ์ธ์ด ํ์ํ ๋ฌธ์ฅ๋ง ์ ๋ณํฉ๋๋ค.
- ์ค์๊ฐ์ฑ ๋ฐ ๊ทผ๊ฑฐ ์ค์ฌ: LLM์ ๋ด๋ถ ํ์ต ์ง์(Hallucination ์ํ)์ ์์กดํ์ง ์๊ณ , ๋ฐ๋์ ์ค์๊ฐ ๊ฒ์ ๊ฒฐ๊ณผ(2024-2025 ์ต์ ์ ๋ณด)์ ๊ณต์ URL Context๋ฅผ ๊ทผ๊ฑฐ๋ก ์ฌ์ฉํฉ๋๋ค.
- ์ ๋ฌธ์ ์ ๋ขฐ๋: ํฉํธ์ฒดํฌ ์ ๋ฌธ ๊ธฐ์์ ๊ฒ์ฆ ์ ์ฐจ์ 6๋จ๊ณ ํ์ ๊ธฐ์ค์ ์ ์ฉํ์ฌ ํฌ๋ช ํ๊ณ ๋ ผ๋ฆฌ์ ์ธ ๋ฆฌํฌํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๐ ๊ฐ๋ฐ ๊ณผ์ (Development Process)
๋ณธ ํ๋ก์ ํธ๋ ๋จ๊ณ๋ณ ๊ณ ๋ํ ๊ณผ์ ์ ๊ฑฐ์ณ ์์ฑ๋์์ต๋๋ค:
- Check-worthy ๋ชจ๋ธ ๊ตฌ์ถ: CLEF CheckThat! Lab ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ํ๊ตญ์ด์ ํนํ๋
KcELECTRA๊ธฐ๋ฐ์ ์ฃผ์ฅ ๊ฐ์ง ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ (Fine-tuning)ํ์ต๋๋ค. - ์์ด์ ํธ ์ํฌํ๋ก์ฐ ์ค๊ณ:
LangGraph๋ฅผ ๋์ ํ์ฌ '๋ฌธ์ฅ ๋ถ๋ฆฌ โ ํ๋จ โ ๊ฒ์ โ ๊ฒ์ฆ โ ๊ฒฐ๊ณผ ํตํฉ'์ ์ํ ๊ด๋ฆฌ ๋ฃจํ๋ฅผ ๊ตฌํํ์ต๋๋ค. - Skill ํจํด ์ ์ฉ: ๊ฒ์ ๋ฐ ๋ถ์ ๋ก์ง์ ๋
๋ฆฝ์ ์ธ Skill ๋ชจ๋(
WebSearchCollector)๋ก ๋ถ๋ฆฌํ์ฌ ์ฝ๋์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์์ต๋๋ค. - Google Search Grounding ํตํฉ: Gemini์ ๊ณต์ ๊ฒ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ต๋ณ์ ๊ทผ๊ฑฐ๊ฐ ๋๋ ์ค์ URL ์ฃผ์๋ฅผ ๋ฆฌํฌํธ์ ํฌํจ์์ผฐ์ต๋๋ค.
โจ ํต์ฌ ๊ธฐ๋ฅ (Key Features)
- BERT ๊ธฐ๋ฐ ์ฃผ์ฅ ๊ฐ์ง: 90%์ ๊ฐ๊น์ด ์ ํ๋๋ก ํฉํธ์ฒดํฌ๊ฐ ํ์ํ ๋ฌธ์ฅ์ ์๋ ์ ๋ณ.
- Google Search Grounding: ๊ฒ์ ๊ฒฐ๊ณผ์ URL Context๋ฅผ ์ง์ ์ฐธ์กฐํ์ฌ ๊ทผ๊ฑฐ์ ํฌ๋ช ์ฑ ํ๋ณด.
- ์ต์ ์ฑ ์ฐ์ ์ง์นจ: 2024-2025๋ ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ต์ฐ์ ์ ์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ.
- ์ ๋ฌธ ๊ธฐ์ ํ๋ฅด์๋: ์๊ฒฉํ 4๋จ๊ณ ๊ฒ์ฆ ์ ์ฐจ(์ฃผ์ฅ ๋ถํด, ์ฆ๊ฑฐ ํ์ธ, ๊ต์ฐจ ๊ฒ์ฆ, ๋งฅ๋ฝ ํ์ธ) ์ ์ฉ.
- 6๋จ๊ณ ํ์ ์์คํ
:
์ฌ์ค,๋์ฒด๋ก ์ฌ์ค,๋ฐ์ ์ฌ์ค,๋์ฒด๋ก ๊ฑฐ์ง,๊ฑฐ์ง,ํ๋จ ๋ถ๊ฐ.
๐ ์์คํ ์ํคํ ์ฒ (Architecture)
์์ด์ ํธ๋ LangGraph๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ฐจ์ ์ผ๋ก ์๋ํฉ๋๋ค:
- Init: ์ ๋ ฅ ํ ์คํธ๋ฅผ ๋ฌธ์ฅ ๋จ์๋ก ๋ถ๋ฆฌํ๊ณ ์ํ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
- Analyze (Skill): BERT ๋ชจ๋ธ์ด ๊ฐ ๋ฌธ์ฅ์ ํฉํธ์ฒดํฌ ํ์์ฑ(Check-worthy)์ ์ ์ํํฉ๋๋ค.
- Verify (Skill): ๊ฐ์น๊ฐ ๋์ ๋ฌธ์ฅ์ ๋ํด Google Search Grounding์ ๊ฐ๋, ์ต์ ์ ๋ณด์ URL Context๋ฅผ ์์งํฉ๋๋ค.
- Report: ์ ๋ฌธ ๊ธฐ์ ์ง์นจ์ ๋ฐ๋ผ ์ต์ข 6๋จ๊ณ ํ์ ๋ฐ ๊ทผ๊ฑฐ ๋ฆฌํฌํธ๋ฅผ ์์ฑํฉ๋๋ค.
๐ ์์ํ๊ธฐ (Installation & Setup)
1. ํ๊ฒฝ ๊ตฌ์ฑ
Python 3.10 ์ด์ ํ๊ฒฝ์์ ๊ฐ์ํ๊ฒฝ์ ์์ฑํ๊ณ ์์กด์ฑ์ ์ค์นํฉ๋๋ค.
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
pip install -r requirements.txt2. ํ๊ฒฝ ๋ณ์ ์ค์
.env ํ์ผ์ ์์ฑํ๊ณ ํ์ํ API ํค๋ฅผ ์
๋ ฅํฉ๋๋ค.
GEMINI_API_KEY="your_api_key_here"
LLM_MODEL="gemini-2.0-flash"๐ป ์ฌ์ฉ๋ฒ (Usage)
CLI ๋ชจ๋
ํฐ๋ฏธ๋์์ ์ง์ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ํ์ผ์ ์ง์ ํ์ฌ ์คํํฉ๋๋ค.
python main.py --text "๊ฒ์ฆํ๊ณ ์ถ์ ๋ฌธ์ฅ ์
๋ ฅ" --bert-threshold 0.6Web UI ๋ชจ๋
FastAPI ๊ธฐ๋ฐ์ ์น ์ธํฐํ์ด์ค๋ฅผ ์คํํ์ฌ ๋ธ๋ผ์ฐ์ ์์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
python app.py์ดํ http://localhost:8000์ ์ ์ํ์ญ์์ค.
โ๏ธ ํ์ ๊ธฐ์ค ๋ฐ ์ ์ (Verdict Standards)
์ ๋ฌธ ๊ธฐ์ ์์ด์ ํธ๋ ๋ค์ ๊ธฐ์ค์ ๋ฐ๋ผ ์๊ฒฉํ๊ฒ ํ์ ํฉ๋๋ค:
- ์ฌ์ค: ์ถฉ๋ถํ ๊ธ์ ๊ทผ๊ฑฐ๋ง ์กด์ฌํ๊ณ ๋ถ์ ๊ทผ๊ฑฐ๊ฐ ์๋ ๊ฒฝ์ฐ
- ๋์ฒด๋ก ์ฌ์ค: ๊ธ์ ๊ทผ๊ฑฐ๊ฐ ์ฐ์ธํ๋ ์ผ๋ถ ๋ถ์ ๊ทผ๊ฑฐ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ
- ์ฌ์ค ๋ฐ ๊ฑฐ์ง ๋ฐ: ๊ธ์ ๊ณผ ๋ถ์ ๊ทผ๊ฑฐ๊ฐ ์ ๋ฐ์ฉ ํผ์ฌ๋ ๊ฒฝ์ฐ
- ๋์ฒด๋ก ๊ฑฐ์ง: ๋ถ์ ๊ทผ๊ฑฐ๊ฐ ์ฐ์ธํ๋ ์ผ๋ถ ๊ธ์ ๊ทผ๊ฑฐ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ
- ๊ฑฐ์ง: ๋ ผ๋ฆฌ์ ๊ทผ๊ฑฐ๊ฐ ์ ํ ์๋ ๊ฒฝ์ฐ
- ํ๋จ ๋ถ๊ฐ: ์๋ฃ ๋ถ์กฑ ๋๋ ํ์ ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ
๐ ๋ผ์ด์ ์ค
๋ณธ ํ๋ก์ ํธ๋ MIT License๋ฅผ ๋ฐ๋ฆ ๋๋ค.
