Navya-Sree commited on
Commit
16feebe
·
verified ·
1 Parent(s): 573fe84

Create src/rragent/orchestrator.py

Browse files
Files changed (1) hide show
  1. src/rragent/orchestrator.py +27 -0
src/rragent/orchestrator.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from rragent.schema import TraceEvent
2
+ from rragent.agents.parser_agent import parse_jd_and_resumes
3
+ from rragent.agents.matcher_agent import match_and_score
4
+ from rragent.agents.evidence_agent import attach_evidence
5
+ from rragent.agents.fairness_agent import fairness_check
6
+ from rragent.agents.narrator_agent import narrate
7
+
8
+ def run_pipeline(jd_text: str, candidates: list[dict], weights: dict) -> dict:
9
+ trace: list[TraceEvent] = []
10
+
11
+ jd_struct, cand_struct, ev = parse_jd_and_resumes(jd_text, candidates)
12
+ trace.append(ev)
13
+
14
+ scored, ev = match_and_score(jd_struct, cand_struct, weights)
15
+ trace.append(ev)
16
+
17
+ scored, ev = attach_evidence(jd_struct, scored)
18
+ trace.append(ev)
19
+
20
+ scored, ev = fairness_check(scored)
21
+ trace.append(ev)
22
+
23
+ ranked, ev = narrate(jd_struct, scored)
24
+ trace.append(ev)
25
+
26
+ trace_dicts = [t.to_dict() for t in trace]
27
+ return {"ranked": ranked, "trace": trace_dicts}