How pruthvig1998/sach-check works
Sach accepts forwarded text, screenshots, or voice; identifies claims, searches official evidence, validates source judgments, applies conservative verdict rules, and returns a cited multilingual card. The graph also preserves its standalone link/scam checks, sharing and public evidence views, and Telegram entry point. Some subsystem links are documented in the README or SOURCE INDEX rather than shown in sampled function bodies; those citations are noted on the edges.
Main entry points: web.py Web API · pipeline.py Check orchestration · retrieve.py Evidence retrieval · telegram_bot.py Telegram bot
Components 23
User entry points
- Web API
sach/web.py - Telegram bot
sach/telegram_bot.py
Claim checking
- Text and claims
sach/extract.py - Screenshot OCR
sach/ocr.py - Language handling
sach/lang.py - Claim translation
sach/gtranslate.py - Check orchestration
sach/pipeline.py - Published verdict match
sach/match.py
Evidence and judgment
- Evidence retrieval
sach/retrieve.py - PIB local index
sach/index.py - Web search
sach/search.py - Page fetching
sach/fetch.py - Source judgment
sach/llm.py - Stance validation
sach/stance.py
Verdicts and sharing
- Hard verdict rules
sach/verdict.py - Verdict card
sach/card.py - Evidence ledger
sach/ledger.py - Share results
sach/share.py
Safety and engagement
- Link checker
sach/linkcheck.py - Scam warnings
sach/scamsigns.py - Voice input
sach/voice.py - Impact and trends
sach/impact.py
Other components
- Forward sender
Connections 32
- Forward sender → Web API: submits forward
- Forward sender → Telegram bot: sends message
- Web API → Check orchestration: runs check
sach/web.py - Web API → Screenshot OCR: handles image
sach/web.py - Web API → Link checker: routes check
sach/web.py - Web API → Scam warnings: gets warnings
sach/web.py - Web API → Voice input: serves voice
sach/web.py - Telegram bot → Check orchestration: runs check
sach/telegram_bot.py - Screenshot OCR → Text and claims: extracts text
sach/ocr.py - Check orchestration → Text and claims: extracts claims
sach/pipeline.py - Check orchestration → Language handling: detects language
sach/pipeline.py - Check orchestration → Published verdict match: tries match
sach/pipeline.py - Check orchestration → Claim translation: translates claim
sach/pipeline.py - Check orchestration → Evidence retrieval: retrieves evidence
sach/pipeline.py - Evidence retrieval → PIB local index: ranks releases
sach/retrieve.py - Evidence retrieval → Web search: searches sources
sach/retrieve.py - Evidence retrieval → Page fetching: fetches pages
sach/retrieve.py - Evidence retrieval → Source judgment: judges sources
- Source judgment → Stance validation: validates stance
sach/llm.py - Check orchestration → Hard verdict rules: decides claim
sach/pipeline.py - Check orchestration → Verdict card: renders result
sach/pipeline.py - Check orchestration → Evidence ledger: records check
sach/pipeline.py - Web API → Share results: serves permalinks
sach/web.py - Web API → Evidence ledger: serves ledger
sach/web.py - Web API → Impact and trends: serves impact
sach/web.py - Web API → Published verdict match: shows match details
sach/web.py - Web API → Source judgment: provides check service
sach/web.py - Web API → Telegram bot: routes bot requests
sach/web.py - Web API → Scam warnings: shows warnings
sach/web.py - Web API → Voice input: accepts speech
- Verdict card → Forward sender: returns cited verdict
- Forward sender → Link checker: checks link or ID