[Feature]: `graphify benchmark` measures answer size but never whether the answer is right
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Read the existing graphify benchmark command and the query_graph path it uses; the issue does not name source files or tests. Start by tracing how the benchmark invokes queries and formats its report, then compare that path with the proposed --questions, --json, --depth, and --budget options. Done means JSON and JSONL question files produce the requested file-rank metrics and answer sizes while the benchmark without --questions stays unchanged.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem or use case
graphify benchmark reports how many tokens a query costs versus reading the corpus. Nothing measures whether the answer contains what the question needed, so a change to query scoring, seeding or rendering can make answers smaller and worse and the benchmark calls it a win. Twenty-odd open PRs change how query ranks or renders (#2403, #3284, #3417, #3636, ...), and there is no shared number to compare them by.
I built such a number from a public set with known answers: the 177 SWE-bench Lite issues of django, pytest, sphinx, requests, flask, pylint, seaborn, xarray and astropy, each repo built at the commit its issues were filed against, the issue title as the question and the files the real fix changed as the right answer. query_graph with the MCP defaults (BFS, depth 3, ~2000 tokens), graphify 0.9.85:
| right file is the first file shown | in the first 3 | in the first 5 | anywhere in the answer | |
|---|---|---|---|---|
query_graph |
25% | 34% | 38% | 62% |
| BM25 over the repo's .py files (reference) | 32% | 56% | 64% | 92% in the top 50 |
The same set run against some open query PRs (each applied on its own base, same graphs):
| first 5 | answers carrying "Complete answer over budget" (full issue text as the question) | |
|---|---|---|
| 0.9.85 | 38% | 55 of 177 |
| #2403 (no test-path seeds) | 51% | 38 |
| #3417 (ranking rewrite) | 51% | 146 |
| #3284 | 39% | 61 |
| #3636 | 38% | 55 |
Proposed solution
graphify benchmark --questions FILE: a JSON list or JSON Lines of {"question": ..., "files": [...]}. Each question goes through query_graph as the MCP tool runs it; the report gives how often an expected file is the first file shown, in the first 3 and 5 files, anywhere, and the answer size. --json for raw per-question results, --depth / --budget to match other settings. A project's own history supplies questions: issue titles and the files their fixes changed.
Alternatives considered
A separate harness outside the repo (what produced the tables above): nobody running or reviewing a query change has it, and it drifts from the real query_graph path.
Area
Graph building or querying
Are you willing to submit a PR?
Yes, I can work on this
Compatibility / behavior impact
CLI and docs only. graphify benchmark without --questions is unchanged; no graph, cache, extraction or MCP output change.
Additional context
Questions built from SWE-bench Lite (problem statement title, files of the gold patch), each repo checked out at the most common base commit of its instances. PR right after this issue.
- Lingua principale
- Python
- Stelle
- 124k
- Fork
- 11.9k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Graphify-Labs/graphify
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
Graphify-Labs/graphify#3763 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Graphify-Labs/graphify#3611 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Nix supportAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Graphify-Labs/graphify#3193 · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
Graphify-Labs/graphify#2871 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
Graphify-Labs/graphify#2865 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Graphify-Labs/graphify
Issue simili
-
area:core-platform effort:S priority:P3 status:in-review type:test
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 80/100
randomparity/kdive#3246 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Requantification library converts m/z to mass with the hydrogen-atom mass instead of the proton massApertabug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
nf-core/metaboigniter#130 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
common-workflow-language/cwl-utils#477 ·
I maintainer di solito rispondono entro 1 giorno
-
Add dependabotApertafeat
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 72/100
open-nudge/opentemplate#204 ·
I maintainer di solito rispondono entro 1 giorno
-
github-stale-ci-pr-closer: KV state is double-wrapped, never persists, and hits the depth-32 limitForse già presa @VascoSch92 l’ha presa oggi. Apertapriority:medium ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenHands/extensions#781 ·
I maintainer di solito rispondono entro 1 giorno