iisadia commited on
Commit
3c29a3b
Β·
verified Β·
1 Parent(s): 55c5e72

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -26
app.py CHANGED
@@ -63,17 +63,11 @@ def analyze_requirement(requirement):
63
  domain = call_mistral_api(domain_prompt).strip()
64
 
65
  # Use Groq for defect analysis and rewriting
66
- defects_prompt = f"""List ONLY the major defects in the following requirement as comma-separated values (1-2 words each). Valid options: Ambiguity, Vagueness, Incompleteness, Volatility, Unverifiability. Do NOT add explanations:
67
- {requirement}
68
- Defects:"""
69
- defects = defects.split(":")[-1].strip() if ":" in defects else defects
70
- defects = defects.replace("Defects", "").strip()
71
 
72
- rewritten_prompt = f"""Rewrite the following requirement in 1-2 sentences to address defects. Start directly with "The project shall..." without preamble:
73
- {requirement}
74
- Improved:"""
75
- rewritten = rewritten.split(":")[-1].strip() if ":" in rewritten else rewritten
76
- rewritten = rewritten.replace("Rewritten", "").replace("Improved", "").strip()
77
 
78
  return {
79
  "Requirement": requirement,
@@ -157,7 +151,7 @@ st.markdown("""
157
  margin-bottom: 1.5rem;
158
  transition: transform 0.2s;
159
  color: #333333;
160
-
161
  }
162
  .requirement-card:hover {
163
  transform: translateY(-3px);
@@ -168,15 +162,6 @@ st.markdown("""
168
  font-weight: 500;
169
  margin: 0.3rem;
170
  }
171
- .defect-badge {
172
- white-space: nowrap;
173
- margin: 0.2rem 0.3rem !important;
174
- }
175
- .improved-badge {
176
- line-height: 1.5;
177
- text-align: left;
178
- width: 100%;
179
- }
180
  .download-btn {
181
  width: 100%;
182
  padding: 1rem;
@@ -224,12 +209,12 @@ def main():
224
  with st.spinner("πŸ” Analyzing requirements..."):
225
  requirements = [req.strip() for req in input_text.replace("\n", ".").split(".") if req.strip()]
226
  results = []
227
-
228
  progress_bar = st.progress(0)
229
  for i, req in enumerate(requirements):
230
  results.append(analyze_requirement(req))
231
  progress_bar.progress((i+1)/len(requirements))
232
-
233
  st.success("βœ… Analysis Completed!")
234
  time.sleep(0.5)
235
  st.session_state.results = results
@@ -250,15 +235,15 @@ def main():
250
  🏷️ Domain: {result['Domain']}
251
  </div>
252
  </div>
253
-
254
  <div style="margin: 1rem 0;">
255
  <h4>πŸ”Ž Identified Issues</h4>
256
  <div style="display: flex; gap: 0.5rem; flex-wrap: wrap;">
257
- {''.join([f'<div class="analysis-badge defect-badge">⚠️ {d.strip()}</div>'
258
- for d in result['Defects'].split(', ') if d.strip()])
259
  </div>
260
  </div>
261
-
262
  <div style="margin: 1rem 0;">
263
  <h4>✨ Improved Version</h4>
264
  <div class="analysis-badge improved-badge">
 
63
  domain = call_mistral_api(domain_prompt).strip()
64
 
65
  # Use Groq for defect analysis and rewriting
66
+ defects_prompt = f"""List ONLY the major defects in the following requirement (e.g., Ambiguity, Incompleteness, etc.) in 1-2 words each:\n\n{requirement}\n\nDefects:"""
67
+ defects = call_groq_api(defects_prompt).strip()
 
 
 
68
 
69
+ rewritten_prompt = f"""Rewrite the following requirement in 1-2 sentences to address the defects:\n\n{requirement}\n\nRewritten:"""
70
+ rewritten = call_groq_api(rewritten_prompt).strip()
 
 
 
71
 
72
  return {
73
  "Requirement": requirement,
 
151
  margin-bottom: 1.5rem;
152
  transition: transform 0.2s;
153
  color: #333333;
154
+
155
  }
156
  .requirement-card:hover {
157
  transform: translateY(-3px);
 
162
  font-weight: 500;
163
  margin: 0.3rem;
164
  }
 
 
 
 
 
 
 
 
 
165
  .download-btn {
166
  width: 100%;
167
  padding: 1rem;
 
209
  with st.spinner("πŸ” Analyzing requirements..."):
210
  requirements = [req.strip() for req in input_text.replace("\n", ".").split(".") if req.strip()]
211
  results = []
212
+
213
  progress_bar = st.progress(0)
214
  for i, req in enumerate(requirements):
215
  results.append(analyze_requirement(req))
216
  progress_bar.progress((i+1)/len(requirements))
217
+
218
  st.success("βœ… Analysis Completed!")
219
  time.sleep(0.5)
220
  st.session_state.results = results
 
235
  🏷️ Domain: {result['Domain']}
236
  </div>
237
  </div>
238
+
239
  <div style="margin: 1rem 0;">
240
  <h4>πŸ”Ž Identified Issues</h4>
241
  <div style="display: flex; gap: 0.5rem; flex-wrap: wrap;">
242
+ {''.join([f'<div class="analysis-badge defect-badge">⚠️ {d}</div>'
243
+ for d in result['Defects'].split(', ')])}
244
  </div>
245
  </div>
246
+
247
  <div style="margin: 1rem 0;">
248
  <h4>✨ Improved Version</h4>
249
  <div class="analysis-badge improved-badge">