TECHDEV · Công cụ open-source
factfence
Trợ lý AI giờ viết một cách đầy tự tin về những số liệu thống kê chưa bao giờ đúng: một tỷ lệ phần trăm nghe có vẻ hợp lý, một báo cáo có tên hẳn hoi, một link bị 404 — hoặc tệ hơn, một link tới một trang thật nhưng chưa bao giờ chứa con số đó. Người review lướt qua chúng vì mỗi claim trông như có nguồn. factfence là một CLI nhỏ, không phụ thuộc thư viện, đọc một file markdown hoặc text, tách ra mọi claim định lượng, fetch từng nguồn trích dẫn, và cho biết trang được trích dẫn có thực sự chứa các con số hay không. Chạy mất khoảng mười giây và chỉ cho bạn đúng ba câu đáng nghi nhất.
Python 3.10+ · Không phụ thuộc thư viện nào · MIT
Nó làm được gì
Với một file như thế này (một đoạn văn AI soạn điển hình):
According to the 2026 State of DevTools Survey, 73% of developers say
AI-generated code needs human review before merging
([survey](http://127.0.0.1:18347/source-a.html)).
Some teams claim 99.9% of AI suggestions are production-ready, citing an
internal study (http://127.0.0.1:18347/source-b.html).
It is often repeated that 60% of all code will be AI-written by 2027,
though nobody cites a source.Đầu vào chép nguyên từ README của factfence ("What it does"). factfence báo cáo (đầu ra thật từ examples/run-demo.sh):
[✓ SUPPORTED]
According to the 2026 State of DevTools Survey, 73% of developers say AI-
generated code needs human review before merging
([survey](http://127.0.0.1:18347/source-a.html)).
↳ http://127.0.0.1:18347/source-a.html
HTTP 200, matched 73%
cited page contains 73%
[? UNVERIFIED]
Some teams claim 99.9% of AI suggestions are production-ready, citing an
internal study (http://127.0.0.1:18347/source-b.html).
↳ http://127.0.0.1:18347/source-b.html
HTTP 200
cited page(s) fetched but contain none of the claim's numbers
[! UNCITED]
It is often repeated that 60% of all code will be AI-written by 2027,
though nobody cites a source.
quantitative claim with no citation — verify by hand
6 claim(s) checked: 2 supported, 1 cited, 1 unverified, 1 broken, 1 uncited. 3 need review.Đầu ra chép nguyên từng ký tự từ README của factfence (đầu ra thật từ examples/run-demo.sh).
Năm phán quyết
| Phán quyết | Ý nghĩa |
|---|---|
SUPPORTED | Trang được trích dẫn tải được và chứa các con số của claim. |
CITED | Một khẳng định không có nguồn ("các nghiên cứu cho thấy…") nhưng có link hoạt động — không có gì định lượng để đối chiếu. |
UNVERIFIED | Trang được trích dẫn tải được nhưng không chứa các con số. Hình dạng ảo giác AI kinh điển. |
BROKEN | Mọi link được trích dẫn đều lỗi (404, timeout, DNS). |
UNCITED | Một claim định lượng hoàn toàn không có trích dẫn. |
Bảng phán quyết chép nguyên từ README của factfence ("The five verdicts").
Bắt đầu nhanh
# zero dependencies — Python 3.10+ stdlib only
git clone https://github.com/techdevfun/factfence.git
cd factfence
# 1. point it at any AI-generated text
python3 -m factfence draft.md
# 2. read the verdicts (exit code 1 = something needs review)
# 3. pipe it into CI
python3 -m factfence --json draft.md | python3 -m json.toolCác lệnh chép nguyên từ README của factfence ("Quick start"). Hoặc cài thành lệnh: pip install ., rồi factfence draft.md.
Nó hoạt động thế nào
- Extract — bỏ qua code block, tách văn bản thành câu, và các câu có số mạnh (phần trăm, tiền, số lượng lớn, hệ số, tỷ lệ) trở thành claim statistic; các câu "studies show…" / "according to…" trở thành claim assertion. Trích dẫn được nhận dạng dưới dạng link inline, link tham chiếu, footnote, và URL trần.
- Fetch — mỗi URL duy nhất được fetch một lần (timeout 8s, giới hạn 1.5MB, user-agent lịch sự), rút gọn về text thuần, và chuẩn hoá theo đúng cách số của claim được chuẩn hoá.
- Verify — một claim được coi là
SUPPORTEDnếu bất kỳ trang nào fetch được chứa bất kỳ số đặc trưng nào của nó. Phán quyết tốt nhất thắng khi có nhiều URL được trích dẫn.
Mã thoát: 0 sạch · 1 có gì cần review · 2 lỗi sử dụng/IO — nên factfence --json draft.md đưa thẳng vào CI được.
Hành vi lấy từ README của factfence ("How it works"), không phải đoạn chép nguyên.
Đây KHÔNG phải gì — và đối thủ hơn chúng ta ở đâu
- factfence chủ đích không phán xét một nguồn có đúng hay không — chỉ xem các con số có xuất hiện trong đó hay không. Một claim
SUPPORTEDvẫn có thể sai; công cụ bắt lỗi phổ biến hơn nhiều: các con số tự tin nhưng trích dẫn chết, không liên quan, hoặc bị mất. - Các công cụ kiểm tra trích dẫn hiện có (Citely, CiteProof, các công cụ xác minh DOI học thuật) chủ yếu xác minh tài liệu tham chiếu có tồn tại — nhắm tới danh mục tham khảo và hồ sơ pháp lý, thường là dịch vụ web trả phí. factfence hỏi câu hỏi hẹp hơn cho văn bản đời thường: trang được trích dẫn có chứa đúng các con số không? — dưới dạng một CLI miễn phí, cục bộ, chạy offline được, chạy trước khi bạn bấm publish.
- Hãy luôn tự đọc nguồn trước khi đăng một con số. factfence xác minh sự hỗ trợ trích dẫn, không phải sự thật.
Mã nguồn + README trên GitHub → · Báo lỗi → · ask@techdev.fun
Giới hạn
- Tách câu theo heuristic; tập trung tiếng Anh. Bảng biểu, PDF, và văn bản không phải tiếng Anh nằm ngoài phạm vi.
- So khớp số là theo văn bản, không phải theo ngữ nghĩa: "a 73% increase" sẽ không khớp với một trang viết "rose by nearly three quarters".
- Các trang sau tường đăng nhập, app render bằng JS, và PDF không kiểm tra được (báo là lỗi fetch, không phải phán quyết về sự thật).
- Nó xác minh sự hỗ trợ trích dẫn, không phải sự thật. Hãy luôn tự đọc nguồn trước khi đăng một con số.
Giới hạn lấy từ chính mục "Honest limitations" của README factfence.
Roadmap — chưa triển khai
- Chế độ
--offline(báo cáo sự hiện diện trích dẫn mà không fetch) - Phân giải định danh DOI / arXiv
- Hỗ trợ ô trong bảng markdown
- So khớp "diễn đạt số" không dùng LLM tuỳ chọn (73% ≈ "nearly three quarters")
Roadmap chép từ README của factfence; cả bốn mục vẫn là checkbox mở ở upstream.
Giấy phép
MIT — xem LICENSE trong repository.
Công cụ liên quan
Các công cụ mã nguồn mở khác của TECHDEV: sessguard, runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, ggufit, leaseguard, jsonfold
Đóng góp ý kiến
Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.