argdown-feedback / backend /pipelines.py
Gregor Betz
initial code commit
129298c
raw
history blame
1.87 kB
import pprint
from argdown_feedback.tasks.base import Evaluation
from argdown_feedback.verifiers.base import CompositeHandler
from argdown_feedback.verifiers.core.infreco_handler import InfRecoCompositeHandler, NoPropInlineDataHandler, HasGistHandler
from argdown_feedback.verifiers.core.logreco_handler import LogRecoCompositeHandler
from argdown_feedback.verifiers.core.content_check_handler import HasArgdownHandler
from argdown_feedback.verifiers.processing_handler import DefaultProcessingHandler
from argdown_feedback.verifiers.verification_request import VerificationRequest
def run_verification_pipeline(inputs, verifier_id):
if verifier_id == "log_reco":
return run_log_reco(inputs)
return "Not implemented"
def run_log_reco(inputs):
if not inputs:
return "No input provided"
infreco_handler = InfRecoCompositeHandler()
infreco_handler.handlers = [
h for h in infreco_handler.handlers
if not isinstance(h, NoPropInlineDataHandler) and not isinstance(h, HasGistHandler)
]
handler = CompositeHandler(
handlers=[
DefaultProcessingHandler(),
HasArgdownHandler(),
infreco_handler,
LogRecoCompositeHandler(),
]
)
request = VerificationRequest(inputs=inputs)
result = handler.process(request)
evaluation = Evaluation.from_verification_request(result)
report_lines = []
report_lines.append("## Verification Results\n")
if evaluation.is_valid:
report_lines.append("✅ All clear. No issues detected in the input.")
else:
report_lines.append("❌ The input is flawed.")
report_lines.append("\n### Issues\n")
for k,v in evaluation.metrics.items():
if v is not None:
report_lines.append(f"‼️ {v}\n")
return "\n".join(report_lines)