Spaces:
Running
Running
Download app.py from itssoumyad/graphrag-codeaudit: direct link, hf CLI and curl.
- Browser
- Download file 1.74 kB
-
https://huggingface.co/spaces/itssoumyad/graphrag-codeaudit/resolve/main/app.py
- Command line
-
hf download hf://spaces/itssoumyad/graphrag-codeaudit/app.py
-
curl -L -o app.py https://huggingface.co/spaces/itssoumyad/graphrag-codeaudit/resolve/main/app.py
1.74 kB
| # SPDX-License-Identifier: MIT | |
| import json | |
| from pathlib import Path | |
| import gradio as gr | |
| from graphrag_audit.communities import LeidenDetector | |
| from graphrag_audit.eval import run_evaluation | |
| from graphrag_audit.extract import extract_repository | |
| from graphrag_audit.graph import KnowledgeGraph | |
| from graphrag_audit.query import GraphRAG | |
| from graphrag_audit.summarize import summarize_communities | |
| ROOT = Path(__file__).resolve().parent / "sample_repo" | |
| CORPUS = extract_repository(ROOT) | |
| GRAPH = KnowledgeGraph().from_corpus(CORPUS) | |
| HIERARCHY = LeidenDetector().detect(GRAPH) | |
| REPORTS = summarize_communities(HIERARCHY, CORPUS) | |
| RAG = GraphRAG(CORPUS, GRAPH, REPORTS) | |
| METRICS = run_evaluation(str(ROOT), n=100) | |
| def ask(question, mode): | |
| result = RAG.query(question, mode=mode) | |
| return json.dumps({ | |
| "answer": result.answer, | |
| "citations": result.citations, | |
| "communities": result.communities, | |
| "method": HIERARCHY.method, | |
| "communities_total": len(HIERARCHY.communities), | |
| "eval": {"graph": METRICS["graph"], "flat": METRICS["flat"], "win_rate": METRICS["win_rate"]}, | |
| }, indent=2) | |
| with gr.Blocks(title="GraphRAG CodeAudit Explorer") as demo: | |
| gr.Markdown("# GraphRAG CodeAudit Explorer\nAsk a local or global question over the synthetic sample repository.") | |
| question = gr.Textbox(label="Question", value="What security risks exist in auth.py?") | |
| mode = gr.Radio(["global", "local"], value="global", label="Search mode") | |
| button = gr.Button("Ask") | |
| output = gr.Code(label="GraphRAG response", language="json") | |
| button.click(ask, inputs=[question, mode], outputs=output) | |
| demo.load(ask, inputs=[question, mode], outputs=output) | |
| if __name__ == "__main__": | |
| demo.launch() | |