Comment_Reply / app.py
joey1101's picture
Update app.py
f994108 verified
raw
history blame
2.61 kB
# 在 Colab 中安装必要的包(通常 Colab 已经安装 transformers,但为了确保版本推荐运行以下代码)
!pip install --upgrade transformers
!pip install soundfile # 有些 TTS 模型可能依赖 soundfile
# 导入必要的库
from transformers import pipeline
from IPython.display import Audio, display
import torch
##########################################
# Step 1:情感分析 - 分析用户评论的情感倾向
##########################################
# 本示例中选择 distilbert-base-uncased-finetuned-sst-2-english 模型用于英文情感分类
sentiment_classifier = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english")
# 示例用户评论(可替换为实际评论)
user_review = "I love the fast delivery, but the product quality could be better."
# 进行情感分析
sentiment_result = sentiment_classifier(user_review)[0]
print("情感分析结果:", sentiment_result)
##########################################
# Step 2:回复生成 - 根据情感生成自动回复
##########################################
# 使用 microsoft/DialoGPT-medium 模型生成回复
reply_generator = pipeline("text-generation", model="microsoft/DialoGPT-medium")
# 根据情感构造 Prompt,本次修改在 prompt 中加入明确的“回复:”提示,
# 以引导模型产生新内容而不是简单重复输入内容
label = sentiment_result['label'].upper()
if "POSITIVE" in label or "LABEL_1" in label:
prompt = (f"用户评论表达了正面情感:\n评论内容: {user_review}\n"
f"请给出一段贴心温暖、表达感谢和认可,并让用户感到愉快的回复:\n回复:")
elif "NEGATIVE" in label or "LABEL_0" in label:
prompt = (f"用户评论表达了负面情感:\n评论内容: {user_review}\n"
f"请给出一段温柔体贴、安抚用户并表示歉意的回复:\n回复:")
else:
prompt = f"用户评论: {user_review}\n请给出一段中肯的回复:\n回复:"
print("\n生成回复的提示词 (Prompt):")
print(prompt)
# 生成回复文本,设置 truncation=True 避免长度问题,并适当提高采样温度与 top_p 值
generated = reply_generator(prompt, max_length=150, do_sample=True, top_p=0.95, temperature=0.9, truncation=True)
generated_text = generated[0]['generated_text']
# 如果生成结果包含完整 prompt,则剔除
if generated_text.startswith(prompt):
final_reply = generated_text[len(prompt):].strip()
else:
final_reply = generated_text.strip()
print("\n生成的回复文本:")
print(final_reply)