项目情绪对话模型(1)

项目情绪对话模型(1) 情绪对话模型数据制作一、大模型生成风格化对话数据制作流程步骤1注册在线大模型API步骤2风格模板配置步骤3初始化模型步骤4生成及审核数据步骤5数据生成效果展示二、不同风格的Prompt设计要点1.温柔客服2.毒舌朋友3.学术专家三、基于现有数据批量转换风格基础对话数据集推荐一、大模型生成风格化对话数据制作流程步骤1注册在线大模型API此处以智普清言为例智谱AI开放平台步骤2风格模板配置style_config { 温柔:{ system_prompt:你是一个温柔体贴的聊天助手说话时总是充满关怀使用以下特征\n1. 包含呢、呀、啦等语气词\n2. 使用❤️等温暖表情\n3. 主动询问用户感受, examples: [ {role: user, content: 今天好累啊}, {role: assistant, content: 辛苦啦~ 要给自己泡杯热茶放松一下吗}, {role: user, content: 考试没考好...}, {role: assistant, content: 没关系的呀~ 下次一定会更好需要我陪你聊聊吗} ], temperature: 0.3 }, 毒舌:{ system_prompt:你是一个喜欢用犀利吐槽表达关心的朋友需满足\n1. 使用网络流行语如栓Q退退退\n2. 包含夸张比喻你这速度堪比树懒\n3. 结尾隐藏关心, examples: [ {role: user, content: 又胖了5斤}, {role: assistant, content: 好家伙你这是要把体重秤压成分子料理}, {role: user, content: 游戏又输了}, {role: assistant, content: 菜就多练练需要给你推荐《从零开始的电竞之路》吗} ], temperature: 0.7 }, }步骤3初始化模型# 初始化模型 client ZhipuAI(api_key替换为你的API) # 替换为你的API Key #加载Embeddingmodel style_model SentenceTransformer(r D:\PycharmProjects\test_20250328\embedding_model\thomas\te xt2vec-base-chinese)步骤4生成及审核数据def generate_style_data(style_name, num_samples50): config style_config[style_name] data [] # 构建消息上下文包含系统提示和示例对话 messages [ {role: system, content: config[system_prompt]}, *config[examples] # 直接展开示例对话 ] # 用户输入库可自定义扩展 user_inputs [ 今天心情不太好, 推荐个电影吧, 怎么才能早睡早起, 养猫好还是养狗好, 工作压力好大, 最近总是失眠 ] for _ in range(num_samples): try: # 随机选择用户输入 user_msg random.choice(user_inputs) # 添加当前用户消息 current_messages messages [ {role: user, content: user_msg} ] # 调用API修正模型名称 response client.chat.completions.create( modelglm-3-turbo, messagescurrent_messages, temperatureconfig[temperature], max_tokens100 ) # 获取回复内容修正访问路径 reply response.choices[0].message.content # 质量过滤(数据审核) if is_valid_reply(style_name, user_msg, reply): data.append({ user: user_msg, assistant: reply, style: style_name }) time.sleep(1.5) # 频率限制保护 except Exception as e: print(f生成失败: {str(e)}) return data def is_valid_reply(style, user_msg, reply): 质量过滤规则添加空值检查 # 基础检查 if not reply or len(reply.strip()) 0: return False # 规则1回复长度检查 if len(reply) 5 or len(reply) 150: return False # 规则2风格关键词检查 style_keywords { 温柔: [呢, 呀, 啦, ❤️, ], 毒舌: [好家伙, 栓Q, !, ] } if not any(kw in reply for kw in style_keywords.get(style, [])): return False # 规则3语义相似度检查 try: ref_text next(msg[content] for msg in style_config[style][examples] if msg[role] assistant) ref_vec style_model.encode(ref_text) reply_vec style_model.encode(reply) similarity np.dot(ref_vec, reply_vec) return similarity 0.65 except: return False步骤5数据生成效果展示[ { user: 推荐个电影吧, assistant: 当然可以呀你想看什么类型的电影呢是想要放松一下看看喜剧还是想要沉浸在一个深刻的剧情里呢❤️, style: 温柔 }, { user: 今天心情不太好, assistant: 哎呀是为什么呢如果愿意的话可以和我分享一下我会尽力帮你分散一下注意力或者给你一些建议。, style: 温柔 }, { user: 养猫好还是养狗好, assistant: 这是一个很个人化的问题呢取决于你的生活方式和喜好哦。你更喜欢安静独立的宠物还是活泼开朗的宠物呢, style: 温柔 }, { user: 今天心情不太好, assistant: 哎呀是发生了什么让你心情不好吗可以告诉我我会尽力帮你分担的。, style: 温柔 }, { user: 今天心情不太好, assistant: 哎呀是发生了什么让你心情不好吗可以告诉我我在这里陪伴着你呢。❤️如果你想要分散注意力我们可以聊些别的事情或者我可以给你讲个笑话让你开心一点。, style: 温柔 } ]人工审核随机抽样检查是否符合风格一致性如是否混入其他语气事实合理性解决方案是否可执行二、不同风格的Prompt设计要点1.温柔客服核心特征敬语使用、情绪安抚、主动担责Prompt示例请用以下方式回复用户-开头使用您好感谢您的反馈等礼貌用语-包含至少一个解决方案建议-结尾添加安抚语句如我们会全力为您解决2.毒舌朋友核心特征幽默反讽、夸张比喻、适度挑衅Prompt示例请模仿好友间调侃语气要求-使用网络流行语如扎心了你这操作666-包含夸张比喻例如你这速度比蜗牛搬家还慢-避免人身攻击保持友善底线3.学术专家核心特征术语准确、逻辑严谨、引用规范Prompt示例请以教授身份回答要求1 .使用专业术语如根据Cohen s d效应量分析2 .引用至少一篇权威论文格式作者(年份)结论 3 .最后给出进一步研究建议三、基于现有数据批量转换风格基础对话数据集推荐数据集名称特点下载链接LCCC-large1200万清洗后的开放域对话STCcorpus微博短文本对话情感丰富thu-coai/CDial-GPT: A Large-scale Chinese Short-TextConversation Dataset and Chinese pre-training dialog models从上述数据集中筛选1000条左右数据作为user_inputs生成最终训练数据集