Files
ALL-teach_sys/frontend_视觉设计/update_expert_support_data.py

114 lines
4.5 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
"""更新专家支持中心的对话数据为视觉设计问答内容"""
import json
import os
from datetime import datetime
def load_visual_qa_data():
"""加载视觉设计问答内容"""
file_path = '网页未导入数据/视觉设计产业/视觉设计问答内容.json'
with open(file_path, 'r', encoding='utf-8') as f:
return json.load(f)
def get_mentor_avatar(mentor_name):
"""根据导师名称获取头像URL"""
mentor_avatars = {
"光年": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuW7dxJ5AdfT.png",
"唐振华": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuW7dxJ5EEac.png",
"张宏达": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuW7dxJ5bHYT.png",
"李奇": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpSO4gUtJz.png",
"多多畅职机器人": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuWmDuekBTlr.png"
}
return mentor_avatars.get(mentor_name, mentor_avatars["多多畅职机器人"])
def transform_qa_to_conversations(qa_data):
"""转换问答数据为对话列表格式"""
conversations = []
for idx, qa in enumerate(qa_data):
# 构建消息列表
messages = []
# 处理最多3轮问答
for i in range(1, 6, 2): # 1,3,5
question_key = f"问题_流程{i}"
question_time_key = f"流程{i}_时间"
answer_key = f"回答_流程{i+1}"
answer_time_key = f"流程{i+1}_时间"
if qa.get(question_key) and qa.get(question_key).strip():
# 添加用户问题
messages.append({
"type": "user",
"content": qa[question_key],
"time": qa.get(question_time_key, "2024/12/1 10:00")
})
# 添加导师/机器人回答
if qa.get(answer_key) and qa.get(answer_key).strip():
mentor_name = qa.get("查询导师名称", "").strip()
if qa["问答类型"] == "智能客服" or not mentor_name:
mentor_name = "多多畅职机器人"
messages.append({
"type": "assistant",
"content": qa[answer_key],
"mentor": mentor_name,
"time": qa.get(answer_time_key, "2024/12/1 10:01"),
"mentorAvatar": get_mentor_avatar(mentor_name)
})
# 只有有消息的对话才添加
if messages:
# 提取日期部分作为显示日期
first_time = messages[0].get("time", "2024/12/1 10:00")
date_parts = first_time.split(' ')[0].split('/')
display_date = f"{date_parts[0]}{int(date_parts[1])}"
conversations.append({
"id": idx + 1,
"title": qa.get("问题标题", "视觉设计咨询"),
"status": "finish",
"date": display_date,
"type": qa.get("问题类型", "常规问题"),
"messages": messages
})
return conversations
def update_expert_support_file():
"""更新expertSupportData.js文件"""
# 加载视觉设计问答数据
qa_data = load_visual_qa_data()
# 转换为对话格式
conversations = transform_qa_to_conversations(qa_data)
# 构建完整的数据结构
expert_support_data = {
"conversations": conversations
}
# 生成JavaScript内容
js_content = f"""// 专家支持中心数据 - 视觉设计产业
const expertSupportData = {json.dumps(expert_support_data, ensure_ascii=False, indent=2)};
export default expertSupportData;"""
# 备份原文件
backup_time = datetime.now().strftime('%Y%m%d_%H%M%S')
os.system(f'cp src/data/expertSupportData.js src/data/expertSupportData.js.backup_{backup_time}')
# 写入新文件
with open('src/data/expertSupportData.js', 'w', encoding='utf-8') as f:
f.write(js_content)
print(f"✅ 已更新 expertSupportData.js")
print(f" - 对话数量: {len(conversations)}")
print(f" - 备份文件: expertSupportData.js.backup_{backup_time}")
if __name__ == "__main__":
print("🚀 开始更新专家支持中心数据...")
update_expert_support_file()
print("🎉 更新完成!")