Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -36,15 +36,6 @@ def call_mistral_api(prompt):
|
|
| 36 |
|
| 37 |
# Function to analyze a single requirement
|
| 38 |
def analyze_requirement(requirement):
|
| 39 |
-
# Define test case expectations
|
| 40 |
-
expected_outcomes = {
|
| 41 |
-
"Type": "Functional or Non-Functional",
|
| 42 |
-
"Stakeholders": "List of stakeholders for the requirement",
|
| 43 |
-
"Domain": "Classify the domain (e.g., Bank, Healthcare)",
|
| 44 |
-
"Defects": "List of major defects or 'No defects' if none",
|
| 45 |
-
"Rewritten": "Concise, defect-free rewritten requirement"
|
| 46 |
-
}
|
| 47 |
-
|
| 48 |
# Detect requirement type
|
| 49 |
type_prompt = f"Classify the following requirement as Functional or Non-Functional:\n\n{requirement}\n\nType:"
|
| 50 |
req_type = call_mistral_api(type_prompt)
|
|
@@ -67,14 +58,13 @@ def analyze_requirement(requirement):
|
|
| 67 |
# Rewrite requirement
|
| 68 |
rewritten = rewrite_requirement(requirement, defects)
|
| 69 |
|
| 70 |
-
# Return both the result and expected outcome comparison
|
| 71 |
return {
|
| 72 |
"Requirement": requirement,
|
| 73 |
-
"Type":
|
| 74 |
-
"Stakeholders":
|
| 75 |
-
"Domain":
|
| 76 |
-
"Defects":
|
| 77 |
-
"Rewritten":
|
| 78 |
}
|
| 79 |
|
| 80 |
# Function to rewrite requirement concisely
|
|
@@ -130,11 +120,11 @@ def generate_pdf_report(results):
|
|
| 130 |
pdf.set_font("Arial", 'B', 14)
|
| 131 |
pdf.multi_cell(200, 10, txt=f"Requirement R{i}: {result['Requirement']}", align='L')
|
| 132 |
pdf.set_font("Arial", size=12)
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
pdf.multi_cell(200, 10, txt="-" * 50, align='L')
|
| 139 |
pdf.ln(5) # Add some space between requirements
|
| 140 |
|
|
@@ -169,8 +159,11 @@ def main():
|
|
| 169 |
st.subheader("Analysis Results")
|
| 170 |
for i, result in enumerate(results, start=1):
|
| 171 |
st.write(f"### Requirement R{i}: {result['Requirement']}")
|
| 172 |
-
|
| 173 |
-
|
|
|
|
|
|
|
|
|
|
| 174 |
st.write("---")
|
| 175 |
|
| 176 |
# Generate and download PDF report
|
|
@@ -185,4 +178,4 @@ def main():
|
|
| 185 |
|
| 186 |
# Run the app
|
| 187 |
if __name__ == "__main__":
|
| 188 |
-
main()
|
|
|
|
| 36 |
|
| 37 |
# Function to analyze a single requirement
|
| 38 |
def analyze_requirement(requirement):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
# Detect requirement type
|
| 40 |
type_prompt = f"Classify the following requirement as Functional or Non-Functional:\n\n{requirement}\n\nType:"
|
| 41 |
req_type = call_mistral_api(type_prompt)
|
|
|
|
| 58 |
# Rewrite requirement
|
| 59 |
rewritten = rewrite_requirement(requirement, defects)
|
| 60 |
|
|
|
|
| 61 |
return {
|
| 62 |
"Requirement": requirement,
|
| 63 |
+
"Type": req_type,
|
| 64 |
+
"Stakeholders": stakeholders,
|
| 65 |
+
"Domain": domain,
|
| 66 |
+
"Defects": defects,
|
| 67 |
+
"Rewritten": rewritten
|
| 68 |
}
|
| 69 |
|
| 70 |
# Function to rewrite requirement concisely
|
|
|
|
| 120 |
pdf.set_font("Arial", 'B', 14)
|
| 121 |
pdf.multi_cell(200, 10, txt=f"Requirement R{i}: {result['Requirement']}", align='L')
|
| 122 |
pdf.set_font("Arial", size=12)
|
| 123 |
+
pdf.multi_cell(200, 10, txt=f"Type: {result['Type']}", align='L')
|
| 124 |
+
pdf.multi_cell(200, 10, txt=f"Stakeholders: {result['Stakeholders']}", align='L')
|
| 125 |
+
pdf.multi_cell(200, 10, txt=f"Domain: {result['Domain']}", align='L')
|
| 126 |
+
pdf.multi_cell(200, 10, txt=f"Defects: {result['Defects']}", align='L')
|
| 127 |
+
pdf.multi_cell(200, 10, txt=f"Rewritten: {result['Rewritten']}", align='L')
|
| 128 |
pdf.multi_cell(200, 10, txt="-" * 50, align='L')
|
| 129 |
pdf.ln(5) # Add some space between requirements
|
| 130 |
|
|
|
|
| 159 |
st.subheader("Analysis Results")
|
| 160 |
for i, result in enumerate(results, start=1):
|
| 161 |
st.write(f"### Requirement R{i}: {result['Requirement']}")
|
| 162 |
+
st.write(f"**Type:** {result['Type']}")
|
| 163 |
+
st.write(f"**Stakeholders:** {result['Stakeholders']}")
|
| 164 |
+
st.write(f"**Domain:** {result['Domain']}")
|
| 165 |
+
st.write(f"**Defects:** {result['Defects']}")
|
| 166 |
+
st.write(f"**Rewritten:** {result['Rewritten']}")
|
| 167 |
st.write("---")
|
| 168 |
|
| 169 |
# Generate and download PDF report
|
|
|
|
| 178 |
|
| 179 |
# Run the app
|
| 180 |
if __name__ == "__main__":
|
| 181 |
+
main()
|