Update app.py
Browse files
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
|
67 |
-
|
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
|
73 |
-
|
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
|
258 |
-
for d in result['Defects'].split(', ')
|
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">
|