shukdevdatta123 commited on
Commit
0d83e25
·
verified ·
1 Parent(s): fb681e9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +5 -44
app.py CHANGED
@@ -3,7 +3,6 @@ import openai
3
  import json
4
  import os
5
  from dotenv import load_dotenv
6
- from fpdf import FPDF
7
 
8
  # Load the OpenAI API Key
9
  api_key = st.text_input('Enter your OpenAI API Key', type="password")
@@ -95,33 +94,6 @@ def save_personality_to_output_json(username, mbti_type_classic, mbti_type_llm):
95
  with open("Output.json", "w") as json_file:
96
  json.dump(output_data, json_file, indent=4)
97
 
98
- # Function to generate a PDF report
99
- def generate_pdf_report(participant_name, mbti_type_classic, mbti_type_llm):
100
- pdf = FPDF()
101
- pdf.set_auto_page_break(auto=True, margin=15)
102
- pdf.add_page()
103
-
104
- # Set fonts and title
105
- pdf.set_font("Arial", 'B', 16)
106
- pdf.cell(200, 10, txt="MBTI Personality Report", ln=True, align="C")
107
-
108
- # Add participant name
109
- pdf.ln(10)
110
- pdf.set_font("Arial", '', 12)
111
- pdf.cell(200, 10, txt=f"Participant Name: {participant_name}", ln=True)
112
-
113
- # Add MBTI information
114
- pdf.ln(10)
115
- pdf.set_font("Arial", 'I', 12)
116
- pdf.cell(200, 10, txt=f"Your MBTI type based on weighted answers: {mbti_type_classic}", ln=True)
117
- pdf.cell(200, 10, txt=f"Your MBTI type according to AI: {mbti_type_llm}", ln=True)
118
-
119
- # Save the PDF to a temporary file
120
- pdf_output_path = "/tmp/mbti_report.pdf"
121
- pdf.output(pdf_output_path)
122
-
123
- return pdf_output_path
124
-
125
  # Streamlit component to display the quiz and handle responses
126
  def show_mbti_quiz():
127
  st.title('FlexTemp Personality Test')
@@ -149,10 +121,8 @@ def show_mbti_quiz():
149
  st.write(f"Your MBTI type based on weighted answers: {mbti_type_classic}")
150
 
151
  # You can add LLM-based prediction if needed here (example OpenAI-based model)
152
- mbti_type_llm = "Not Available" # Placeholder for now
153
-
154
- # Run the LLM (GPT-4, for example) model to generate a personality type.
155
  if api_key:
 
156
  prompt = f"""
157
  Determine a person's personality type based on their answers to the following Myers-Briggs Type Indicator (MBTI) questions:
158
  The person has answered the following questions:
@@ -194,16 +164,6 @@ def show_mbti_quiz():
194
  mime="application/json"
195
  )
196
 
197
- # Generate and add the button for the PDF report
198
- pdf_report_path = generate_pdf_report(participant_name, mbti_type_classic, mbti_type_llm)
199
- with open(pdf_report_path, "rb") as pdf_file:
200
- st.download_button(
201
- label="Download Generated Report",
202
- data=pdf_file,
203
- file_name="MBTI_Report.pdf",
204
- mime="application/pdf"
205
- )
206
-
207
  else:
208
  st.warning("Please answer all the questions!")
209
 
@@ -211,7 +171,8 @@ def show_mbti_quiz():
211
  def main():
212
  # Add instructions to the sidebar
213
  with st.sidebar.expander("How This App Works", expanded=False):
214
- st.write(""" ### FlexTemp Personality Test
 
215
  This app is designed to help you determine your MBTI personality type based on your answers to a series of questions. The process works as follows:
216
  1. **Weighted MBTI Scoring**:
217
  - Each question corresponds to a trait in the MBTI system.
@@ -220,7 +181,7 @@ def main():
220
  2. **LLM-Based Prediction**:
221
  - Optionally, you can also get your MBTI type based on the answers using a language model (LLM) like GPT-4. This provides an additional prediction that may offer insights into your personality.
222
  - The LLM is trained on vast amounts of data and can generate responses based on patterns from psychological research and real-world interactions.
223
- """)
224
 
225
  if api_key:
226
  show_mbti_quiz()
@@ -228,4 +189,4 @@ def main():
228
  st.info("Please enter your OpenAI API Key to begin the quiz.")
229
 
230
  if __name__ == "__main__":
231
- main()
 
3
  import json
4
  import os
5
  from dotenv import load_dotenv
 
6
 
7
  # Load the OpenAI API Key
8
  api_key = st.text_input('Enter your OpenAI API Key', type="password")
 
94
  with open("Output.json", "w") as json_file:
95
  json.dump(output_data, json_file, indent=4)
96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  # Streamlit component to display the quiz and handle responses
98
  def show_mbti_quiz():
99
  st.title('FlexTemp Personality Test')
 
121
  st.write(f"Your MBTI type based on weighted answers: {mbti_type_classic}")
122
 
123
  # You can add LLM-based prediction if needed here (example OpenAI-based model)
 
 
 
124
  if api_key:
125
+ # Run the LLM (GPT-4, for example) model to generate a personality type.
126
  prompt = f"""
127
  Determine a person's personality type based on their answers to the following Myers-Briggs Type Indicator (MBTI) questions:
128
  The person has answered the following questions:
 
164
  mime="application/json"
165
  )
166
 
 
 
 
 
 
 
 
 
 
 
167
  else:
168
  st.warning("Please answer all the questions!")
169
 
 
171
  def main():
172
  # Add instructions to the sidebar
173
  with st.sidebar.expander("How This App Works", expanded=False):
174
+ st.write("""
175
+ ### FlexTemp Personality Test
176
  This app is designed to help you determine your MBTI personality type based on your answers to a series of questions. The process works as follows:
177
  1. **Weighted MBTI Scoring**:
178
  - Each question corresponds to a trait in the MBTI system.
 
181
  2. **LLM-Based Prediction**:
182
  - Optionally, you can also get your MBTI type based on the answers using a language model (LLM) like GPT-4. This provides an additional prediction that may offer insights into your personality.
183
  - The LLM is trained on vast amounts of data and can generate responses based on patterns from psychological research and real-world interactions.
184
+ """)
185
 
186
  if api_key:
187
  show_mbti_quiz()
 
189
  st.info("Please enter your OpenAI API Key to begin the quiz.")
190
 
191
  if __name__ == "__main__":
192
+ main()