Inspiration
News articles often contain many factual claims, but a simple “true” or “false” label does not explain what is actually wrong. We wanted to build a tool that shows which specific claims require attention, what the available evidence says, and why a particular verdict was reached.
What We Built
FactCheck is a Chrome extension for checking news articles directly in the browser. It can analyze the text of an open article or check a single claim entered by the user.
The system identifies up to three independently checkable claims, searches Google Fact Check Tools and Tavily for relevant evidence, ranks sources by relevance and credibility, compares claims with the retrieved evidence, and displays verdicts, explanations, confidence scores, citations, and source links.
The project consists of:
- a React and TypeScript Chrome extension with a browser side panel;
- a Spring Boot backend that coordinates the fact-checking pipeline;
- a FastAPI model service using Qwen for claim extraction;
- DeBERTa for comparing claims with evidence;
- evidence retrieval through Google Fact Check Tools and Tavily.
OpenAI Build Week
We developed FactCheck during OpenAI Build Week. OpenAI Codex and ChatGPT supported our development process by helping us analyze the repository, design the API architecture, debug integration issues, create tests, and improve the project documentation.
What We Learned
We learned how to connect a browser extension with multiple backend services, design stable API contracts, process model responses, and handle uncertainty in automated fact-checking.
We also learned that an AI-generated verdict should not rely only on a model’s internal knowledge. It should be connected to real, traceable sources and clearly show the evidence used to support or challenge a claim.
Challenges
The main challenge was coordinating several independent components: the Chrome extension, Spring Boot backend, external evidence providers, and AI inference service.
We also had to handle slow model cold starts, unavailable external APIs, missing evidence, differences in source credibility, and invalid model responses.
Another challenge was making the results understandable. Instead of returning only a final label, the system shows the exact claim, evidence excerpts, an explanation, a confidence score, and links to the original sources.
Future Improvements
Future versions could improve multilingual claim extraction, strengthen contextual manipulation detection, add more evidence providers, improve source verification, support analysis history, and provide more detailed explanations when the available evidence is conflicting or inconclusive.
Built With
- chatgpt
- chrome
- deberta
- docker
- fastapi
- google-fact-check-tools
- hugging-face
- java-21
- manifest-v3
- modal
- openai-codex
- python
- qwen
- react
- render
- rest-api
- side-panel-api
- spring-boot
- tavily
- typescript
- vite
Log in or sign up for Devpost to join the conversation.