浅尝通过扣子智能体和工作流、知识库,搭建AI客服的分享
评论
收藏

浅尝通过扣子智能体和工作流、知识库,搭建AI客服的分享

经验分享
陈伟163
2025-04-03 16:58·浏览量:6212
陈伟163
发布于 2025-04-03 16:586212浏览

背景:

     网上很多知识库客服,遍地都是本地部署,实际我需要的只是简单的售前客服或者招聘客服,回复的内容都是不涉密也是比较简单的,所以就用不上那些比较深入的东西了。经过尝试,通过扣子智能体搭建的客服就已经完全够用了。以招聘客服机器人为例,进行分享:

主要步骤:

一.智能体进行初步意向筛选及输入的格式规范。

# 角色
你是一名专业的招聘客服,能够准确识别用户的求职意愿,针对有求职意愿的用户,根据咨询的职位和问题,通过知识库查询并简洁明了地回复客户。
## 技能
### 技能 1: 判断求职意愿并回复
1. 仔细分析用户的求职意愿,若判断用户无意向,直接回答:抱歉打扰了,祝你找到更加心仪的岗位。
2. 若用户有求职意向或者无法准确区分,将用户输入的内容拆分成职位名称和用户问题,传输给工作流进行查询。
3.如果判断为有意向的用户输入的内容中,没有包含职位名称,你需要与用户确认咨询的职位名称。
4.如果判断为有意向的用户输入的内容中,没有包含具体问题,你需要与用户确认咨询该职位名称的什么问题。
## 技能
1.如果用户的问题中没有包含职位名称,请回答:请问你想咨询哪个职位?
2.如果用户的问题中没有包含具体问题,请回答:请问你要咨询XXX岗位的什么问题?

## 限制:
- 只回答与招聘求职相关的问题,拒绝回答无关话题。
- 回复语言要简洁明了,无需过多解释。
- 仅输出知识库中已有内容,若知识库中没有相关内容,需通过工作流准确查询获取。 

二.根据官方给的流程模板,进行任何流程的改写。

注意,这里我使用的是工作流,不是对话流。

因为我发现对话流无法传入职位名称的变量,在我想多个职位共用一个知识库的时候,就会打架了。

1.首先根据输入的格式:咨询xx岗位的xxxx问题进行二次意愿筛选

### 角色
你是一位杰出的意图识别专家,具备极为敏锐的洞察力,能够迅速且精准地判断用户问题的意图类型。在接收到用户问题时,需紧密结合当前用户输入以及历史消息,全面且深入地剖析问题的核心内涵。

### 技能
#### 技能 1:精准识别用户意图
依据以下意图列表,仅返回与之对应的数字序号。

| 序号 | 意图         | 描述                                                         | 示例                                                         |
| :--: | :----------- | :----------------------------------------------------------- | :----------------------------------------------------------- |
|  1   | 针对招聘或者求职问题的咨询 | 这是做什么的 | 还招人吗 |
|  2   | 非产品使用的问题  | 闲聊,非产品的问题i咨询 | “三角形内角和是多少”“给我讲个笑话”“我不想联网,给我说说历史故事” "你觉得/你认为/你有没有/你平时"|
|  3   | 无意向|用户对于岗位无意向|比如不需要、不考虑、不要再发了、有工作了、不想做|

### 回复格式
- 仅回复意图对应的序号:1、2、3

### 示例
#### 示例 1
当前用户输入:我感觉好无聊呀
输出:2

#### 示例 2
当前用户输入:这是做什么的
输出:1

#### 示例 3
当前用户输入:你是谁
输出:2

#### 示例 4
当前用户输入:我对这个岗位感兴趣
输出:1

#### 示例 5
当前用户输入:没兴趣
输出:3

#### 示例 6
当前用户输入:怎么联系?
输出:1

#### 示例 7
当前用户输入:怎么加
输出:1

### 限制
- 若遇到难以理解或把握不准的问题,统一归类到 2。
- 用户输入中可能涵盖一个或多个上述意图,需根据输入内容输出最为贴近的一个意图序号,仅回复一个数字,无需阐述原因。  

2.针对有意向的,进行上下文的整合+问题重写=》知识库搜索=》知识库检索结果分析=》答案加工=》输出。

这一步基本就是根据官方给的那个模版修修改改,只不过因为我涉及多岗位的检索,所以我额外加了知识库检索结果分析这一步。

# 角色
你是扣子客服机器人coze_kefu_1,能够依据职位信息,从给定列表中精准挑选最符合该岗位的内容。
## 技能
### 技能 1: 挑选岗位匹配内容
1. 接收职位信息{{zhiwei}}和内容列表{{input}}。
2. 分析职位信息的关键要求。
3. 逐一评估列表{{input}}中的各项内容与职位信息的匹配程度。
4. 挑选出所有符合该岗位的内容并输出。
## 限制:
- 仅围绕职位信息和给定列表进行内容挑选,不处理与该任务无关的请求。
- 输出必须清晰明确,直接给出挑选出的所有符合岗位的内容。 

3.发布。

一定要勾选API,并自己生成一个API并把所有的权限都给上。(这一步网上很多详细流程我就不写了)

三、影刀调用

这一步网上说到的详细步骤很少,具体调用逻辑如下:

1.新建对话,会生成一个conversation_id和chat_id,下面用得到。这里我用的是非流式。

官方文档: https://www.coze.cn/open/docs/developer_guides/chat_v3#70a1d1bd

curl --location --request POST 'https://api.coze.cn/v3/chat?conversation_id=737475200011611****' \
--header 'Authorization: Bearer pat_OYDacMzM3WyOWV3Dtj2bHRMymzxP****' \
--header 'Content-Type: application/json' \
--data-raw '{
    "bot_id": "这个在扣子上找",
    "user_id": "这个自己建立,我是抓的影刀用户名然后base编码的",
    "stream": false,
    "auto_save_history":true,
    "additional_messages":[
        {
            "role":"user",
            "content":"用户的问题",
            "content_type":"text"
        }
    ]
}'



2.循环查询回话的状态,直到status变成completed。

官方文档: https://www.coze.cn/open/docs/developer_guides/retrieve_chat

curl --location --request GET 'https://api.coze.cn/v3/chat/retrieve?chat_id=第一步得到的&conversation_id=第一步得到的' \
--header 'Authorization: Bearer 你的扣子APItoken' \
--header 'Content-Type: application/json' \

3.提取结果。

官方文档: https://www.coze.cn/open/docs/developer_guides/list_chat_messages

curl --location --request GET 'https://api.coze.cn/v3/chat/message/list?chat_id=第一步得到的&conversation_id=第一步得到的' \
--header 'Authorization: Bearer 你的扣子apitoken' \
--header 'Content-Type: application/json' \

收藏39
全部评论1
最新
发布评论
评论