Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -50,7 +50,13 @@ if uploaded_file:
|
|
50 |
|
51 |
st.subheader("Extracted Text from CV/Resume")
|
52 |
st.text_area("Preview:", extracted_text, height=150)
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
# Define LLM Prompt Templates
|
55 |
email_template = PromptTemplate.from_template("""
|
56 |
You are an AI assistant skilled in crafting personalized and engaging cold emails for research positions.
|
@@ -155,6 +161,7 @@ with tab1:
|
|
155 |
reason = st.text_area("Why this professor/lab?")
|
156 |
if st.button("Generate Cold Email"):
|
157 |
email = email_chain.run({"recipient_name": recipient, "position_name": position, "research_interests": research_interests, "reason": reason, "resume_text": extracted_text})
|
|
|
158 |
st.text_area("Generated Cold Email", email, height=250)
|
159 |
|
160 |
with tab2:
|
@@ -163,13 +170,15 @@ with tab2:
|
|
163 |
key_skills = st.text_area("Key Skills")
|
164 |
if st.button("Generate Cover Letter"):
|
165 |
cover_letter = cover_letter_chain.run({"job_title": job_title, "company": company, "key_skills": key_skills, "resume_text": extracted_text})
|
166 |
-
|
|
|
167 |
|
168 |
with tab3:
|
169 |
research_goals = st.text_area("Future Research Goals")
|
170 |
if st.button("Generate Research Statement"):
|
171 |
research_statement = research_statement_chain.run({"research_interests": research_interests, "goals": research_goals, "resume_text": extracted_text})
|
172 |
-
|
|
|
173 |
|
174 |
with tab4:
|
175 |
program_name = st.text_input("Program Name")
|
@@ -177,4 +186,5 @@ with tab4:
|
|
177 |
career_goals = st.text_area("Career Goals")
|
178 |
if st.button("Generate SOP"):
|
179 |
sop = sop_chain.run({"program_name": program_name, "university": university, "research_interests": research_interests, "career_goals": career_goals, "resume_text": extracted_text})
|
180 |
-
|
|
|
|
50 |
|
51 |
st.subheader("Extracted Text from CV/Resume")
|
52 |
st.text_area("Preview:", extracted_text, height=150)
|
53 |
+
|
54 |
+
def get_final_output(full_text):
|
55 |
+
# If the model returns text with the prompt details followed by "### Output:", only keep what comes after it.
|
56 |
+
if "### Output:" in full_text:
|
57 |
+
return full_text.split("### Output:")[-1].strip()
|
58 |
+
else:
|
59 |
+
return full_text.strip()
|
60 |
# Define LLM Prompt Templates
|
61 |
email_template = PromptTemplate.from_template("""
|
62 |
You are an AI assistant skilled in crafting personalized and engaging cold emails for research positions.
|
|
|
161 |
reason = st.text_area("Why this professor/lab?")
|
162 |
if st.button("Generate Cold Email"):
|
163 |
email = email_chain.run({"recipient_name": recipient, "position_name": position, "research_interests": research_interests, "reason": reason, "resume_text": extracted_text})
|
164 |
+
final_email = get_final_output(email)
|
165 |
st.text_area("Generated Cold Email", email, height=250)
|
166 |
|
167 |
with tab2:
|
|
|
170 |
key_skills = st.text_area("Key Skills")
|
171 |
if st.button("Generate Cover Letter"):
|
172 |
cover_letter = cover_letter_chain.run({"job_title": job_title, "company": company, "key_skills": key_skills, "resume_text": extracted_text})
|
173 |
+
final_cover_letter = get_final_output(cover_letter)
|
174 |
+
st.text_area("Generated Cover Letter", final_cover_letter, height=250)
|
175 |
|
176 |
with tab3:
|
177 |
research_goals = st.text_area("Future Research Goals")
|
178 |
if st.button("Generate Research Statement"):
|
179 |
research_statement = research_statement_chain.run({"research_interests": research_interests, "goals": research_goals, "resume_text": extracted_text})
|
180 |
+
final_rs = get_final_output(research_statement)
|
181 |
+
st.text_area("Generated Research Statement", final_rs, height=250)
|
182 |
|
183 |
with tab4:
|
184 |
program_name = st.text_input("Program Name")
|
|
|
186 |
career_goals = st.text_area("Career Goals")
|
187 |
if st.button("Generate SOP"):
|
188 |
sop = sop_chain.run({"program_name": program_name, "university": university, "research_interests": research_interests, "career_goals": career_goals, "resume_text": extracted_text})
|
189 |
+
final_sop = get_final_output(sop)
|
190 |
+
st.text_area("Generated SOP", final_sop, height=250)
|