thefish1 commited on
Commit
59dd725
·
1 Parent(s): aeaeeea
Files changed (1) hide show
  1. app.py +20 -25
app.py CHANGED
@@ -419,17 +419,24 @@ def chatbot_response(message, history, window_size, threshold, score_threshold,u
419
  #更新轮次,获取窗口历史
420
  current_turn = len(history) + 1
421
 
422
- combined_user_message = " ".join([h[0] for h in history[-window_size:]] + [message])
423
- combined_assistant_message = " ".join([h[1] for h in history[-window_size:]])
 
 
 
 
 
 
 
424
 
425
  #提取关键词
426
  user_keywords = extract_keywords(combined_user_message).split(',')
427
- assistant_keywords = extract_keywords(combined_assistant_message).split(',')
428
-
429
  #获取关键词字典
430
  keywords_dict = {keyword: user_weight for keyword in user_keywords}
431
- for keyword in assistant_keywords:
432
- keywords_dict[keyword] = keywords_dict.get(keyword, 0) + 1
 
 
433
 
434
  for keyword in list(keywords_dict.keys()):
435
  if keyword in triggered_keywords and current_turn - triggered_keywords[keyword] < window_size:
@@ -496,6 +503,12 @@ def chatbot_response(message, history, window_size, threshold, score_threshold,u
496
  else:
497
  score = 1
498
 
 
 
 
 
 
 
499
  # 更新 group_scores 字典中的分数
500
  if group_id in group_scores:
501
  group_scores[group_id] += score
@@ -513,30 +526,12 @@ def chatbot_response(message, history, window_size, threshold, score_threshold,u
513
  sorted_group_scores = sorted(group_scores.items(), key=lambda item: item[1], reverse=True)
514
  print(f"group_scores: {sorted_group_scores}")
515
 
516
-
517
- # if(candidates):
518
- # # distance, ad_summary, ad_keywords=keyword_match(keywords_dict,candidates)
519
- # distance,ad_summary,ad_keywords=candidates[0]['distance'],candidates[0]['summary'],candidates[0]['keyword_list']
520
- # else:
521
- # distance=1000
522
  end_time=time.time()
523
  print(f"Time taken for vecDB: {end_time - start_time}")
524
 
525
  if distance < 1000:
526
  pass
527
- # ad_message = f"{message} <sep>品牌{brand}<sep>{ad_summary}"
528
- # print(f"ad_sumamry: {ad_summary}")
529
- # messages = [{"role": "system", "content": "请你将生活化、原汁原味的语言提炼出来,具有亲切感,类似于拉家常的方式推销商品,具有融洽的氛围和口语化的语言。请直接输出融合的对话文本。"}]
530
- # for val in history:
531
- # if val[0]:
532
- # messages.append({"role": "user", "content": val[0]})
533
- # if val[1]:
534
- # messages.append({"role": "assistant", "content": val[1]})
535
- # messages.append({"role": "user", "content": ad_message})
536
-
537
- # for keyword in keywords_dict.keys():
538
- # if any(ad_keyword in keyword for ad_keyword in ad_keywords.split(',')):
539
- # triggered_keywords[keyword] = current_turn
540
  else:
541
  messages = [{"role": "system", "content": "你是一个热情的聊天机器人。"}]
542
  for val in history:
 
419
  #更新轮次,获取窗口历史
420
  current_turn = len(history) + 1
421
 
422
+ combined_user_message = message
423
+ combined_assistant_message = ""
424
+
425
+ for i in range(1, window_size + 1):
426
+ if len(history) >= i:
427
+ if i % 2 == 1: # 奇数轮次,添加 assistant 的内容
428
+ combined_assistant_message = " ".join([history[-i][1], combined_assistant_message]).strip()
429
+ else: # 偶数轮次,添加 user 的内容
430
+ combined_user_message = " ".join([history[-i][0], combined_user_message]).strip()
431
 
432
  #提取关键词
433
  user_keywords = extract_keywords(combined_user_message).split(',')
 
 
434
  #获取关键词字典
435
  keywords_dict = {keyword: user_weight for keyword in user_keywords}
436
+ if combined_assistant_message:
437
+ assistant_keywords = extract_keywords(combined_assistant_message).split(',')
438
+ for keyword in assistant_keywords:
439
+ keywords_dict[keyword] = keywords_dict.get(keyword, 0) + 1
440
 
441
  for keyword in list(keywords_dict.keys()):
442
  if keyword in triggered_keywords and current_turn - triggered_keywords[keyword] < window_size:
 
503
  else:
504
  score = 1
505
 
506
+ if keyword in triggered_keywords and current_turn - triggered_keywords[keyword] < window_size:
507
+ if(keyword == keyword_list[0]):
508
+ score = triggered_weight*3
509
+ else:
510
+ keywords_dict[keyword] = triggered_weight
511
+
512
  # 更新 group_scores 字典中的分数
513
  if group_id in group_scores:
514
  group_scores[group_id] += score
 
526
  sorted_group_scores = sorted(group_scores.items(), key=lambda item: item[1], reverse=True)
527
  print(f"group_scores: {sorted_group_scores}")
528
 
 
 
 
 
 
 
529
  end_time=time.time()
530
  print(f"Time taken for vecDB: {end_time - start_time}")
531
 
532
  if distance < 1000:
533
  pass
534
+
 
 
 
 
 
 
 
 
 
 
 
 
535
  else:
536
  messages = [{"role": "system", "content": "你是一个热情的聊天机器人。"}]
537
  for val in history: