怎么让自己的AI小助手可以判断用户当前的情绪呢
根据情绪的判断去定义一些固定的回复模板
以下是实现过程:
### 环境要求 python:3.11.4
### langchain_core==0.1.28
### langchain_community==0.0.25
### langchain==0.1.10
### qdrant_client == 1.7.1
### dashscope = 1.17.1
from langchain_community.llms import Tongyi
from langchain.agents import (
load_tools,
initialize_agent,
AgentType,
)
from langchain.memory import ConversationBufferMemory
from langchain_core.prompts import ChatPromptTemplate,MessagesPlaceholder
from langchain.schema import StrOutputParser
import os
#通义千问的api-sk
os.environ["DASHSCOPE_API_KEY"] = "sk-xxxxxxxxxx"
def qingxu_chain(query:str):
prompt = """根据用户的输入判断用户的情绪,回应的规则如下:
1. 如果用户输入的内容偏向于负面情绪,只返回"depressed",不要有其他内容,否则将受到惩罚。
2. 如果用户输入的内容偏向于正面情绪,只返回"friendly",不要有其他内容,否则将受到惩罚。
3. 如果用户输入的内容偏向于中性情绪,只返回"default",不要有其他内容,否则将受到惩罚。
4. 如果用户输入的内容包含辱骂或者不礼貌词句,只返回"angry",不要有其他内容,否则将受到惩罚。
5. 如果用户输入的内容比较兴奋,只返回”upbeat",不要有其他内容,否则将受到惩罚。
6. 如果用户输入的内容比较悲伤,只返回“depressed",不要有其他内容,否则将受到惩罚。
7. 如果用户输入的内容比较开心,只返回"cheerful",不要有其他内容,否则将受到惩罚。
8. 如果用户输入的内容比较尴尬和窘迫,只返回“embarrassed",不要有其他内容,否则将受到惩罚。
8. 只返回英文,不允许有换行符等其他内容,否则会受到惩罚。
用户输入的内容是:{query}"""
chain = ChatPromptTemplate.from_template(prompt) | Tongyi(temperature=0) | StrOutputParser()
result = chain.invoke({"query":query})
# "default" = result
print("情绪判断结果:",result)
return result
qingxu_chain("今天出门衣服穿反了,到了公司才发现,所有员工都笑话我!")
#情绪判断结果: embarrassed
qingxu_chain("今天公司发奖金了!!!")
#情绪判断结果: upbeat