iisadia commited on
Commit
7d587e9
·
verified ·
1 Parent(s): 395ca0b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -5
app.py CHANGED
@@ -3,6 +3,7 @@ import requests
3
  from fpdf import FPDF
4
  import os
5
  import time
 
6
 
7
  # Mistral API key (replace with your key or use environment variable)
8
  api_key = os.getenv("MISTRAL_API_KEY", "gz6lDXokxgR6cLY72oomALWcm7vhjRzQ")
@@ -82,20 +83,40 @@ def rewrite_requirement(requirement, defects):
82
  response = call_mistral_api(prompt)
83
  return response.strip()
84
 
85
- # Function to generate a PDF report
86
  def generate_pdf_report(results):
87
  pdf = FPDF()
88
  pdf.add_page()
89
  pdf.set_font("Arial", size=12)
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  for i, result in enumerate(results, start=1):
 
92
  pdf.cell(200, 10, txt=f"Requirement R{i}: {result['Requirement']}", ln=True)
 
93
  pdf.cell(200, 10, txt=f"Type: {result['Type']}", ln=True)
94
  pdf.cell(200, 10, txt=f"Stakeholders: {result['Stakeholders']}", ln=True)
95
  pdf.cell(200, 10, txt=f"Domain: {result['Domain']}", ln=True)
96
  pdf.cell(200, 10, txt=f"Defects: {result['Defects']}", ln=True)
97
  pdf.cell(200, 10, txt=f"Rewritten: {result['Rewritten']}", ln=True)
98
  pdf.cell(200, 10, txt="-" * 50, ln=True)
 
99
 
100
  pdf_output = "requirements_report.pdf"
101
  pdf.output(pdf_output)
@@ -104,11 +125,10 @@ def generate_pdf_report(results):
104
  # Streamlit app
105
  def main():
106
  st.title("Requirement Analysis Tool")
107
- st.markdown("**Team Name:** Sadia, Areeba, Rabbia, Tesmia")
108
- st.markdown("**LLM Model:** Mistral")
109
 
110
  # Input requirements manually
111
- st.markdown("### Enter Requirements")
112
  input_text = st.text_area("Enter your requirements (one per line or separated by periods):")
113
  requirements = []
114
  if input_text:
@@ -148,4 +168,4 @@ def main():
148
 
149
  # Run the app
150
  if __name__ == "__main__":
151
- main()
 
3
  from fpdf import FPDF
4
  import os
5
  import time
6
+ from datetime import datetime
7
 
8
  # Mistral API key (replace with your key or use environment variable)
9
  api_key = os.getenv("MISTRAL_API_KEY", "gz6lDXokxgR6cLY72oomALWcm7vhjRzQ")
 
83
  response = call_mistral_api(prompt)
84
  return response.strip()
85
 
86
+ # Function to generate a PDF report with professional formatting
87
  def generate_pdf_report(results):
88
  pdf = FPDF()
89
  pdf.add_page()
90
  pdf.set_font("Arial", size=12)
91
 
92
+ # Add watermark
93
+ pdf.set_font("Arial", 'B', 50)
94
+ pdf.set_text_color(230, 230, 230) # Light gray color for watermark
95
+ pdf.rotate(45) # Rotate the text for watermark effect
96
+ pdf.text(60, 150, "AI Powered Requirement Analysis")
97
+ pdf.rotate(0) # Reset rotation
98
+
99
+ # Add title and date/time
100
+ pdf.set_font("Arial", 'B', 16)
101
+ pdf.set_text_color(0, 0, 0) # Black color for title
102
+ pdf.cell(200, 10, txt="AI Powered Requirement Analysis and Defect Detection using LLM Model Mistral", ln=True, align='C')
103
+ pdf.set_font("Arial", size=12)
104
+ pdf.cell(200, 10, txt=f"Report Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='C')
105
+ pdf.ln(10) # Add some space
106
+
107
+ # Add requirements analysis
108
+ pdf.set_font("Arial", size=12)
109
  for i, result in enumerate(results, start=1):
110
+ pdf.set_font("Arial", 'B', 14)
111
  pdf.cell(200, 10, txt=f"Requirement R{i}: {result['Requirement']}", ln=True)
112
+ pdf.set_font("Arial", size=12)
113
  pdf.cell(200, 10, txt=f"Type: {result['Type']}", ln=True)
114
  pdf.cell(200, 10, txt=f"Stakeholders: {result['Stakeholders']}", ln=True)
115
  pdf.cell(200, 10, txt=f"Domain: {result['Domain']}", ln=True)
116
  pdf.cell(200, 10, txt=f"Defects: {result['Defects']}", ln=True)
117
  pdf.cell(200, 10, txt=f"Rewritten: {result['Rewritten']}", ln=True)
118
  pdf.cell(200, 10, txt="-" * 50, ln=True)
119
+ pdf.ln(5) # Add some space between requirements
120
 
121
  pdf_output = "requirements_report.pdf"
122
  pdf.output(pdf_output)
 
125
  # Streamlit app
126
  def main():
127
  st.title("Requirement Analysis Tool")
128
+ st.markdown("**Team Name:** Team Innovators")
129
+ st.markdown("**Model:** Mistral")
130
 
131
  # Input requirements manually
 
132
  input_text = st.text_area("Enter your requirements (one per line or separated by periods):")
133
  requirements = []
134
  if input_text:
 
168
 
169
  # Run the app
170
  if __name__ == "__main__":
171
+ main()