You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
6 days ago
|
from plugins_func.register import register_function, ToolType, ActionResponse, Action
|
||
|
from config.logger import setup_logging
|
||
|
|
||
|
TAG = __name__
|
||
|
logger = setup_logging()
|
||
|
|
||
|
handle_exit_intent_function_desc = {
|
||
|
"type": "function",
|
||
|
"function": {
|
||
|
"name": "handle_exit_intent",
|
||
|
"description": "当用户想结束对话或需要退出系统时调用",
|
||
|
"parameters": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"say_goodbye": {
|
||
|
"type": "string",
|
||
|
"description": "和用户友好结束对话的告别语",
|
||
|
}
|
||
|
},
|
||
|
"required": ["say_goodbye"],
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
|
||
|
@register_function(
|
||
|
"handle_exit_intent", handle_exit_intent_function_desc, ToolType.SYSTEM_CTL
|
||
|
)
|
||
|
def handle_exit_intent(conn, say_goodbye: str | None = None):
|
||
|
# 处理退出意图
|
||
|
try:
|
||
|
if say_goodbye is None:
|
||
|
say_goodbye = "再见,祝您生活愉快!"
|
||
|
conn.close_after_chat = True
|
||
|
logger.bind(tag=TAG).info(f"退出意图已处理:{say_goodbye}")
|
||
|
return ActionResponse(
|
||
|
action=Action.RESPONSE, result="退出意图已处理", response=say_goodbye
|
||
|
)
|
||
|
except Exception as e:
|
||
|
logger.bind(tag=TAG).error(f"处理退出意图错误: {e}")
|
||
|
return ActionResponse(
|
||
|
action=Action.NONE, result="退出意图处理失败", response=""
|
||
|
)
|