笔者最近参加了一个 AI 智能体开发的训练营,觉得很有意思,认识了很多各行各业的朋友。

训练营里有一个练习,是用字节跳动旗下的 coze 开发工作流。

下图是 coze 的工作流编辑界面。参加这个训练营的有国企行政,会计,律师,医生,大学生,烘焙店老板,侧面也说明了 coze 的工作流编辑功能(我都不想用"开发"这个词)比较亲民,没有什么门槛。

对于使用过 SAP ABAP On-Premise 或 SAP BTP Workflow Service 的朋友们来说,捣鼓 coze 这玩意儿,就好比让大学数学教授去做小学生数学家庭作业一样,妥妥的降维打击。

如上图所示,图例1 为工作流开始节点,图例2 为用户意图识别节点(Intent Detection),图例 3 为识别出意图后走的两个分支。

如果识别出用户想「查询天气」,调用 city_extract 节点,提取出用户想要查询的城市名称,然后交给下游的蓝色节点处理。蓝色节点是一个 API 节点,调用墨迹天气 API,返回 JSON 数据给绿色节点。绿色节点把 JSON 响应做一个整合,转换成对用户友好的段落。

如果识别出来的用户意图是「新闻查询」,走上图的黄色分支,调用今日头条的新闻查询 API,API 同样返回 JSON 格式的响应,交给新闻整合节点。

运行这个工作流,能看到下图所示详细的执行日志。

图例1:用户输入为「北京今天冷不冷?」图例2 为工作流执行完毕后,返回给用户的最终输出:

北京2025年3月25日天气为多云,最高气温21℃,最低气温6℃,白天风向为西北风,风力5级,夜间风向为东南风,风力3级,湿度19% 。

图例3 的 classification: 1 意思是 coze 的意图识别节点,识别出用户输入「北京今天冷不冷」这个句子,与维护的索引为 1 的「查看天气」意图相匹配。

图例4 显示了 city_extract 节点的执行结果,将提取出的「北京」,存储到变量「city」中。

图例5 显示 DayWeather 节点执行结果,调用「墨迹天气」的 Restful API,输入为「北京」,输出是 JSON 格式的北京天气情况。

整个工作流就像一台精密的机器,每个节点就像机器上的各个零部件,各司其职,按照用户指定的逻辑完成了任务。

笔者编辑这个工作流时,总觉得自己之前曾经做过类似的事情。

想了一会儿,翻到了 2018 年写过的这篇文章,不禁感慨时光荏苒。

使用 Recast.AI 创建具有人工智能的聊天机器人

2018 年,SAP 收购了一家自然语言处理领域的法国初创公司 Recast.AI:

2019年1月,Recast.AI 更名为 SAP Conversational AI,网址 https://recast.ai 也被自动重定向到 https://cai.tools.sap:

注意:本文接下来提到的 SAP Conversational AI 的功能和截图,均只截至 2018 年 8 月,不代表其最新的功能!

工作流预定义的意图,其实体现了该工作流能实现用户的业务需求范畴。
下图演示了如何在 coze 里添加新的意图。

SAP Conversational AI 原理类似,创建聊天机器人后首先需要创建一个新的意图。
这里我创建一个程序员相关的意图,id 为 programmer:

接收到一个自然语言句子后,智能体工作流如何判定该句子属于哪一种意图?这其实就是 Intent Detection 该如何实现的问题。

进入 2025年,我们有了 DeepSeek,Kimi,通义千问,智谱清言等优秀的国产大模型,所以 coze 里的工作流节点的 Intent Detection 开箱即用,仅仅需要在模型的下拉列表里选择一个即可,无需其他额外配置。

回到 2018 年的 SAP Conversational AI,它又是如何实现意图判定的呢?

因为我创建的是和程序员交谈相关的意图,所以需要在 Train 面板,手动给它喂一些和程序员相关的句子,比如 Are you a programmer?

Recast.AI 会自动将这个句子进行词元化(tokenization),识别出一个代词(Pronoun) - You, 一个数量词(Number) - a, 和一个工作描述(Job) - programmer.

继续给这个意图喂更多的句子:

  • Are you coding with Java or ABAP or JavaScript or C# or C++ or Python or Ruby?

  • Are you using Integrated Development Environment or Command Line to debug?

  • is Programming your daily work?

点击 Test 链接测试一下,发一条测试文本:

Are you working with Java every day?

Recast.AI 判断这句话有 99% 的可能性属于 programmer intent.

工作流完成意图匹配之后,下一步就要针对每个匹配上的意图,指定其执行的业务逻辑。

在 coze 里,编辑者通过鼠标拖拽的方式拉一根线,将意图和匹配后要执行的业务逻辑连接起来。

其实就是编程语言里的 IF XXX THEN YYY ELSE ZZZ 的 pattern,只不过 coze 通过图形化的界面,把这种编程思想封装起来了。

在 SAP Conversational AI 里,选中一个 Intent,右键菜单选择 Create Skill. 创建的一个个 Skill,实际就是机器人需要执行的业务逻辑。

2018年笔者测试的时候,只是简单创建了一个 ID 为「chat_with_programmer」的 Skill,这个 Skill 的功能就是从三句硬编码的回复中,随机挑选一句返回给交谈者。

下面是一个简单的测试。

我向 SAP Conversational AI 发送 Are you working with Java?

这句话被判定归属于 id 为 programmer 的意图,其绑定的 「chat_with_programmer」技能触发,随机返回一句「Yes, and I am learning Scala in my spare time」.

这个测试虽然简陋,但是走通了一个完整的端到端流程。

从 2018 到 2025,看看如今 coze 支持的琳琅满目的插件,吸引了一大帮没有编程基础的业外人士蜂拥而入,用 AI 智能体完成了个人办公提速,让人不得不感叹 AI 发展的一日千里。

如果大家想了解 SAP Conversational AI 至今最新的功能,可以访问官网 https://cai.tools.sap.

感谢阅读。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐