Stone164 commited on
Commit
b441fb6
·
verified ·
1 Parent(s): a2deca4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -27
app.py CHANGED
@@ -73,11 +73,11 @@ top_p_default = 0.95
73
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74
  def answer_abc_questions(selected, bg_info, wv, ps, dd):
75
  desired_parts = []
76
- if "a" in selected:
77
  desired_parts.append("A")
78
- if "b" in selected:
79
  desired_parts.append("B")
80
- if "c" in selected:
81
  desired_parts.append("C")
82
 
83
  if not desired_parts:
@@ -223,10 +223,12 @@ def recommend_3jobs_for_direction(direction, bg_info, wv, ps, dd):
223
  2) 典型工作职责
224
  3) 技能/证书要求
225
  4) 未来发展前景
226
- 最后再用如下格式提示学生
227
- 1. XXX职业
228
- 2. XXX职业
229
- 3. XXX职业
 
 
230
  如都不满意,可输入'换'。
231
  """
232
  try:
@@ -249,13 +251,21 @@ def recommend_3jobs_for_direction(direction, bg_info, wv, ps, dd):
249
  )
250
  output_text = resp.choices[0].message.content
251
 
252
- # 示例:从回复中解析职业名称
253
- # 这里为简单起见使用模拟数据,实际应用中可以从output_text中解析
254
- user_profile["recommended_jobs"] = [
255
- f"{direction} - 职业A",
256
- f"{direction} - 职业B",
257
- f"{direction} - 职业C"
258
- ]
 
 
 
 
 
 
 
 
259
 
260
  # 设置为已经推荐过职业
261
  global jobs_recommended
@@ -274,18 +284,22 @@ def recommend_3directions():
274
  dd = user_profile["dream_day"] or "无"
275
 
276
  rec_prompt = f"""
277
- 请根据以下信息,写一份条理清晰的人物画像+3个大方向,并结尾让学生选1~3(或'换'),其中称呼对面用"你"不要用"他/她":
278
  - 学术背景: {bg_info}
279
  - 工作意义: {wv}
280
  - 性格: {ps}
281
  - 理想工作: {dd}
282
  分两部分:
283
  [一、人物画像]:1) 学术背景 2) 价值观 3) 性格 4) 理想工作
284
- [二、推荐3个大方向]:每个方向(1~2段文字)
285
- 最后用如下结尾
286
- 1. XXX方向
287
- 2. XXX方向
288
- 3. XXX方向
 
 
 
 
289
  如都不满意,可输入'换'。
290
  """
291
  try:
@@ -307,13 +321,21 @@ def recommend_3directions():
307
  )
308
  output_text = resp.choices[0].message.content
309
 
310
- # 示例:从回复中解析方向名称
311
- # 这里为简单起见使用模拟数据,实际应用中可以从output_text中解析
312
- user_profile["recommended_directions"] = [
313
- "方向1",
314
- "方向2",
315
- "方向3"
316
- ]
 
 
 
 
 
 
 
 
317
  return output_text
318
  except Exception as e:
319
  return f"多方向推荐出错: {str(e)}"
 
73
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74
  def answer_abc_questions(selected, bg_info, wv, ps, dd):
75
  desired_parts = []
76
+ if "a" in selected.lower():
77
  desired_parts.append("A")
78
+ if "b" in selected.lower():
79
  desired_parts.append("B")
80
+ if "c" in selected.lower():
81
  desired_parts.append("C")
82
 
83
  if not desired_parts:
 
223
  2) 典型工作职责
224
  3) 技能/证书要求
225
  4) 未来发展前景
226
+ 最后以这样的格式结束(不要在前面重复这些项)
227
+
228
+ 请选择你的理想职业
229
+ 1. [职业名称1]
230
+ 2. [职业名称2]
231
+ 3. [职业名称3]
232
  如都不满意,可输入'换'。
233
  """
234
  try:
 
251
  )
252
  output_text = resp.choices[0].message.content
253
 
254
+ # 从回复中尝试解析职业名称 - 简单示例实现
255
+ import re
256
+ job_pattern = r'(\d+)\.\s+\[?(.*?)\]?(?:\n|$)'
257
+ job_matches = re.findall(job_pattern, output_text)
258
+ job_list = [match[1].strip() for match in job_matches]
259
+
260
+ # 如果没有找到合适的匹配,创建默认值
261
+ if len(job_list) < 3:
262
+ job_list = [
263
+ f"{direction} - 职业A",
264
+ f"{direction} - 职业B",
265
+ f"{direction} - 职业C"
266
+ ]
267
+
268
+ user_profile["recommended_jobs"] = job_list[:3] # 确保只取前3个
269
 
270
  # 设置为已经推荐过职业
271
  global jobs_recommended
 
284
  dd = user_profile["dream_day"] or "无"
285
 
286
  rec_prompt = f"""
287
+ 请根据以下信息,写一份条理清晰的人物画像+3个大方向,其中称呼对面用"你"不要用"他/她":
288
  - 学术背景: {bg_info}
289
  - 工作意义: {wv}
290
  - 性格: {ps}
291
  - 理想工作: {dd}
292
  分两部分:
293
  [一、人物画像]:1) 学术背景 2) 价值观 3) 性格 4) 理想工作
294
+
295
+ [二、推荐3个大方向]每个方向写1~2段文字分析,并说明为什么适合学生。
296
+
297
+ 最后结束时只有这样的选项(不要在前面重复这些选项):
298
+
299
+ 请选择你的职业方向:
300
+ 1. [方向名称1]
301
+ 2. [方向名称2]
302
+ 3. [方向名称3]
303
  如都不满意,可输入'换'。
304
  """
305
  try:
 
321
  )
322
  output_text = resp.choices[0].message.content
323
 
324
+ # 从回复中尝试解析方向名称 - 简单示例实现
325
+ import re
326
+ dir_pattern = r'(\d+)\.\s+\[?(.*?)\]?(?:\n|$)'
327
+ dir_matches = re.findall(dir_pattern, output_text)
328
+ dir_list = [match[1].strip() for match in dir_matches]
329
+
330
+ # 如果没有找到合适的匹配,创建默认值
331
+ if len(dir_list) < 3:
332
+ dir_list = [
333
+ "方向1",
334
+ "方向2",
335
+ "方向3"
336
+ ]
337
+
338
+ user_profile["recommended_directions"] = dir_list[:3] # 确保只取前3个
339
  return output_text
340
  except Exception as e:
341
  return f"多方向推荐出错: {str(e)}"