danjung9 commited on
Commit
df068db
·
verified ·
1 Parent(s): f88d811

Update pipelines/requirements_pipe.py

Browse files
Files changed (1) hide show
  1. pipelines/requirements_pipe.py +11 -14
pipelines/requirements_pipe.py CHANGED
@@ -43,25 +43,22 @@ class RAGModel:
43
  docs = self.retriever.search(query)
44
  # Replace with your own synthesis and compliance assessment.
45
  requirements = self.llm.summarize(query=query, docs=docs)
46
- compliant = self._assess_compliance(requirements, docs)
47
  return {
48
  "requirements": requirements,
49
  "compliant": compliant,
50
  }
51
 
52
- def _assess_compliance(self, requirements: str, docs: list[str]) -> bool:
53
- context = "\n\n".join(docs)
54
-
55
- prompt = (
56
- "You are a compliance evaluator. Based on the retrieved documents and the "
57
- "requirements summary, classify compliance.\n\n"
58
- "Return exactly one word: COMPLIANT or NONCOMPLIANT.\n\n"
59
- f"Retrieved Context:\n{context}\n\n"
60
- f"Requirements Summary:\n{requirements}"
61
- )
62
-
63
- decision = self.llm.generate(query=prompt, docs=docs).strip().upper()
64
- return decision == "COMPLIANT"
65
 
66
 
67
  class Router:
 
43
  docs = self.retriever.search(query)
44
  # Replace with your own synthesis and compliance assessment.
45
  requirements = self.llm.summarize(query=query, docs=docs)
46
+ compliant = self._assess_compliance(requirements)
47
  return {
48
  "requirements": requirements,
49
  "compliant": compliant,
50
  }
51
 
52
+ def _assess_compliance(self, requirements: str) -> bool:
53
+ text = requirements.lower()
54
+ non_compliant_markers = [
55
+ "gap",
56
+ "missing",
57
+ "non-compliant",
58
+ "not compliant",
59
+ "fail",
60
+ ]
61
+ return not any(marker in text for marker in non_compliant_markers)
 
 
 
62
 
63
 
64
  class Router: