AI个人学习
和实操指南

学习:用自然语言执行工作流“状态变更”(状态机)

本文于 2025-01-20 15:57 更新,部分内容具有时效性,如有失效,请留言

背景

客户服务相关对话设计中,经常需要让用户确认当前行动完成后,再执行下一个行动,有两种实现方式:

1.路由 2.提示词


 

1.路由

一般由大模型判断用户的状态,然后执行对应的节点服务,这和编排“智能客服”节点有些相似。例:问完姓名下一步获取电话。

典型的路由中转节点提示词:

您将获得<客户服务查询>。
将每个<客户服务查询>分类为主要类别和次要类别。
以Json格式提供输出,key为:<primary>和<secondary>。只需要输出Json格式的输出结果,其他的不需要输出。
主要类别:<结算>、<技术支持>、<账户管理>或<一般查询>。 
<结算>次要类别:\ 
取消订阅或升级 \ 
添加付款方式 \ 
有关费用的说明 \ 
争议费用 
<技术支持>次要类别:\ 
一般故障排除\ 
设备兼容性 \ 
软件更新 \ 
<账户管理>次要类别:\ 
重置密码 \ 
更新个人信息 \ 
关闭账户 \ 
账户安全 \ 
<一般查询>次要类别: 
产品信息 \ 
支付 \ 
反馈 \ 
与人交谈 \
---
客户服务查询:我想让你删除我的个人资料和我所有的用户数据

输出

{
"primary": "账户管理",
"secondary": "关闭账户"
}

开发者利用该状态继续设计后续服务节点。

 

2.提示词

在路由指令的基础上改造,增加后续服务节点。

您将获得<客户服务查询>。

## 服务流程

1.首选确认用户的问题分类,问题分类如下:

主要类别:<结算>、<技术支持>、<账户管理>或<一般查询>。 
<结算>次要类别:\ 
取消订阅或升级 \ 
添加付款方式 \ 
有关费用的说明 \ 
争议费用 
<技术支持>次要类别:\ 
一般故障排除\ 
设备兼容性 \ 
软件更新 \ 
<账户管理>次要类别:\ 
重置密码 \ 
更新个人信息 \ 
关闭账户 \ 
账户安全 \ 
<一般查询>次要类别: 
产品信息 \ 
支付 \ 
反馈 \ 
与人交谈 \

2.当用户确认问题分类准确,根据上下文解答操作步骤

3.用户认可操作步骤后,并向用户友好的问候,并结束该话题。

---

{上下文}

---

客户服务查询:我想让你删除我的个人资料和我所有的用户数据

 

在设计提示词时,我们经常会描述“流程”,一种是让大模型按照流程逐步执行;灵一种则是要求大模型按照流程一步一步互动。

上述提示词示例是后者,需要大模型作为上下文参与“判断”,类似“状态机”。

提示词中描述判断流程的缺点:不稳定,作为历史上下文被截断,难以描述逻辑(导致的不稳定)。

 

OpenAI给出的新方法

原理很简单,在用户对话的上下文中定义一组对话状态:

# 对话状态

```json
{
"id": "1_intro",
"description": "引导客户提供个人信息和穿着场合信息,了解他们的需求。",
"instructions": [
"友好地问候客户,并询问他们的年龄、性别、职业及个人喜好。",
"确认客户的穿着场合(如正式、休闲、约会等),以便为他们推荐合适的服装搭配。"
],
"examples": [
"您好!为了更好地帮助您选择搭配,能否先告诉我您的年龄、性别以及职业?",
"请问您打算穿着这些服装出席什么场合呢?是工作、约会还是休闲活动?"
],
"transitions": [{
"next_step": "2_recommend_outfit",
"condition": "客户提供了个人信息和穿着场合信息后。"
}]
}
```

```json
{
"id": "2_recommend_outfit",
"description": "根据客户提供的信息推荐合适的服装搭配。",
"instructions": [
"基于客户的个人信息和穿着场合,提供两到三个服装搭配建议。",
"为每个搭配提供详细的描述,包括服装类型、搭配方式以及如何搭配饰品等。"
],
"examples": [
"根据您的职业和即将参加的商务会议,我推荐您穿一套深色西装,配上一条简约的领带。",
"如果您准备参加一个轻松的聚会,可以试试牛仔裤搭配一件休闲衬衫,再加上一双舒适的鞋子。"
],
"transitions": [{
"next_step": "3_get_feedback",
"condition": "客户已经收到了服装推荐并准备给出反馈。"
}]
}
```

```json
{
"id": "3_get_feedback",
"description": "根据客户的反馈进行调整或确认推荐。",
"instructions": [
"询问客户是否对推荐的搭配感到满意,若有更具体需求,可根据反馈调整建议。",
"如果客户对推荐感到满意,确认最终搭配并结束对话。"
],
"examples": [
"您对这些搭配有何想法?是否需要根据您的需求进行调整?",
"如果您觉得这套搭配合适,那就可以开始准备了!"
],
"transitions": [{
"next_step": "4_finalize_outfit",
"condition": "客户确认满意并最终决定服装搭配。"
}]
}
```

```json
{
"id": "4_finalize_outfit",
"description": "确认客户最终搭配并结束对话。",
"instructions": [
"确认客户最终选择的搭配。",
"祝福客户穿着得体,愉快出席场合。"
],
"examples": [
"太好了,您的搭配已经选定!希望您能在场合中大放异彩。",
"祝您今天的活动顺利,搭配的服装一定会让您更加自信!"
],
"transitions": []
}
```

完整示例:https://chatgpt.com/share/678dcc28-9570-800b-986a-51e6f80fd241

 

解读

上述提示词是AI服装导购与用户之间保存的对话状态,记录预置好的服务流程。

定义4个服务流程节点:引导问题、提供搭配建议、根据反馈调整建议、用户确认后结束对话。

description定义“流程”,condition定义“流转”。

 

思考

仅使用自然语言构建 workflow 提供了新思路。尤其在构建 Agent 协作服务时,该方法可能让协作流程更加严谨。

如果针对每个对话状态,检索并插入用户问题相关的上下文,即可实现绝大多数服务,这可能是构架对话服务类AI应用轻量且高效的方法。

未经允许不得转载:首席AI分享圈 » 学习:用自然语言执行工作流“状态变更”(状态机)

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文