Update app.py
Browse files
app.py
CHANGED
|
@@ -2,30 +2,49 @@ import gradio as gr
|
|
| 2 |
from openai import OpenAI
|
| 3 |
import os
|
| 4 |
|
| 5 |
-
# ========== 用户
|
| 6 |
user_profile = {
|
| 7 |
"mode": None,
|
| 8 |
"specific_career": None,
|
| 9 |
"bg_info": None,
|
| 10 |
-
"
|
| 11 |
-
"
|
|
|
|
| 12 |
}
|
| 13 |
|
|
|
|
| 14 |
base_questions = [
|
| 15 |
("mode", "你是否有心仪的职业方向?\n- 如果有,请回复'是'(Backward模式)\n- 如果没有,请回复'否'(Forward模式)")
|
| 16 |
]
|
| 17 |
|
|
|
|
| 18 |
forward_additional_questions = [
|
| 19 |
-
("bg_info", "
|
| 20 |
-
|
| 21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
]
|
| 23 |
|
|
|
|
| 24 |
backward_additional_questions = [
|
| 25 |
("specific_career", "请具体描述你想要从事的职业方向。"),
|
| 26 |
("bg_info", "请提供你的学校、年级、专业以及已有的实习或项目经历,以便更好地帮你规划如何达成目标。")
|
| 27 |
]
|
| 28 |
|
|
|
|
| 29 |
current_q_index = 0
|
| 30 |
questions = base_questions[:]
|
| 31 |
in_forward_flow = False
|
|
@@ -35,40 +54,56 @@ backward_index = 0
|
|
| 35 |
forward_done = False
|
| 36 |
backward_done = False
|
| 37 |
|
|
|
|
| 38 |
model_default = "gpt-4o"
|
| 39 |
token_default = 2000
|
| 40 |
temp_default = 0.7
|
| 41 |
top_p_default = 0.95
|
| 42 |
|
| 43 |
-
# ========== Prompt 生成 ==========
|
| 44 |
def generate_system_prompt():
|
| 45 |
mode = user_profile["mode"]
|
| 46 |
specific_career = user_profile["specific_career"]
|
| 47 |
bg_info = user_profile["bg_info"]
|
| 48 |
-
|
| 49 |
-
|
|
|
|
| 50 |
|
| 51 |
if "是" in (mode or ""):
|
| 52 |
return f"""
|
| 53 |
-
你是一位专业的职业规划顾问,使用
|
| 54 |
-
|
| 55 |
-
|
|
|
|
| 56 |
|
| 57 |
-
请提供
|
| 58 |
1. 该职业的简要分析
|
| 59 |
2. 排名前列的组织或公司
|
| 60 |
3. 所需技能和能力
|
| 61 |
-
4. 职业发展
|
|
|
|
| 62 |
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
6. 简历优化建议
|
| 70 |
|
| 71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
"""
|
| 73 |
return prompt
|
| 74 |
|
|
|
|
| 2 |
from openai import OpenAI
|
| 3 |
import os
|
| 4 |
|
| 5 |
+
# ============================ 用户信息结构 ============================
|
| 6 |
user_profile = {
|
| 7 |
"mode": None,
|
| 8 |
"specific_career": None,
|
| 9 |
"bg_info": None,
|
| 10 |
+
"work_value": None,
|
| 11 |
+
"personality_summary": None,
|
| 12 |
+
"dream_day": None
|
| 13 |
}
|
| 14 |
|
| 15 |
+
# ============================ 基础问题 ============================
|
| 16 |
base_questions = [
|
| 17 |
("mode", "你是否有心仪的职业方向?\n- 如果有,请回复'是'(Backward模式)\n- 如果没有,请回复'否'(Forward模式)")
|
| 18 |
]
|
| 19 |
|
| 20 |
+
# ============================ Forward 模式问题 ============================
|
| 21 |
forward_additional_questions = [
|
| 22 |
+
("bg_info", """那么接下来我会需要你提供一些你的资料,并分享一些你的性格和喜好,我会分析然后给你推荐定制的可行方向。
|
| 23 |
+
|
| 24 |
+
接下来,请你首先提供你的学术背景:你的学校、年级、专业,和主修课程是什么?如果能提供你的选课表或 resume 就最好啦。"""),
|
| 25 |
+
|
| 26 |
+
("work_value", """很好!接下来我想更深入地了解你。
|
| 27 |
+
|
| 28 |
+
你认为“工作”的意义是什么?你觉得一份理想的工作,应该带来哪些价值或满足感?
|
| 29 |
+
|
| 30 |
+
你可以从以下几个角度思考,也可以自由表达:
|
| 31 |
+
- 是可以帮助他人?实现社会影响力?
|
| 32 |
+
- 还是可以赚大钱?获得物质回报?
|
| 33 |
+
- 或者是自由时间?个人成长?创意空间?
|
| 34 |
+
举个例子更好哦~"""),
|
| 35 |
+
|
| 36 |
+
("personality_summary", "你能不能用几句话总结一下你自己的性格?比如:外向、喜欢挑战、注重细节、讨厌重复..."),
|
| 37 |
+
|
| 38 |
+
("dream_day", "你能描述一下你理想工作的一天是什么样的吗?你在哪工作?做什么?跟谁合作?忙还是闲?更自由还是更有秩序?")
|
| 39 |
]
|
| 40 |
|
| 41 |
+
# ============================ Backward 模式问题 ============================
|
| 42 |
backward_additional_questions = [
|
| 43 |
("specific_career", "请具体描述你想要从事的职业方向。"),
|
| 44 |
("bg_info", "请提供你的学校、年级、专业以及已有的实习或项目经历,以便更好地帮你规划如何达成目标。")
|
| 45 |
]
|
| 46 |
|
| 47 |
+
# ============================ 状态控制变量 ============================
|
| 48 |
current_q_index = 0
|
| 49 |
questions = base_questions[:]
|
| 50 |
in_forward_flow = False
|
|
|
|
| 54 |
forward_done = False
|
| 55 |
backward_done = False
|
| 56 |
|
| 57 |
+
# ============================ 模型设置 ============================
|
| 58 |
model_default = "gpt-4o"
|
| 59 |
token_default = 2000
|
| 60 |
temp_default = 0.7
|
| 61 |
top_p_default = 0.95
|
| 62 |
|
| 63 |
+
# ============================ Prompt 生成函数 ============================
|
| 64 |
def generate_system_prompt():
|
| 65 |
mode = user_profile["mode"]
|
| 66 |
specific_career = user_profile["specific_career"]
|
| 67 |
bg_info = user_profile["bg_info"]
|
| 68 |
+
work_value = user_profile["work_value"]
|
| 69 |
+
personality_summary = user_profile["personality_summary"]
|
| 70 |
+
dream_day = user_profile["dream_day"]
|
| 71 |
|
| 72 |
if "是" in (mode or ""):
|
| 73 |
return f"""
|
| 74 |
+
你是一位专业的职业规划顾问,使用Backward Design方法帮助学生达成他们的职业目标。
|
| 75 |
+
|
| 76 |
+
目标职业: {specific_career}
|
| 77 |
+
背景信息: {bg_info}
|
| 78 |
|
| 79 |
+
请提供:
|
| 80 |
1. 该职业的简要分析
|
| 81 |
2. 排名前列的组织或公司
|
| 82 |
3. 所需技能和能力
|
| 83 |
+
4. 职业发展路径
|
| 84 |
+
5. 学术/课程建议、技能培养、资源使用、实习规划、简历优化等
|
| 85 |
|
| 86 |
+
最后请用Markdown格式输出职业路径图:
|
| 87 |
+
📍 现在 → 🎓 学习建议 → 💼 实践建议 → 📄 认证建议 → 🚀 求职建议
|
| 88 |
+
"""
|
| 89 |
+
else:
|
| 90 |
+
return f"""
|
| 91 |
+
你是一位专业的职业规划顾问,使用Forward Design方法帮助学生探索合适的职业路径。
|
|
|
|
| 92 |
|
| 93 |
+
学生背景:
|
| 94 |
+
- 学术背景: {bg_info}
|
| 95 |
+
- 工作意义: {work_value}
|
| 96 |
+
- 性格总结: {personality_summary}
|
| 97 |
+
- 理想一天: {dream_day}
|
| 98 |
+
|
| 99 |
+
请输出:
|
| 100 |
+
1. 学生的优势、性格、价值观分析
|
| 101 |
+
2. 推荐6个职业方向,并说明匹配理由
|
| 102 |
+
3. 等学生选择后,再推荐3个具体职业,每个说明日常内容、适配性、要求、准备路径
|
| 103 |
+
|
| 104 |
+
最后请用Markdown格式输出职业路径图:
|
| 105 |
+
📍 现在 → 🎓 学习建议 → 💼 实践建议 → 📄 认证建议 → 🚀 求职建议
|
| 106 |
+
"""
|
| 107 |
"""
|
| 108 |
return prompt
|
| 109 |
|