
1.前言
上期文章我们介绍了dify案例分享-两种方式使用免费Edge-TTS工作流避坑指南,之前有小伙伴在群里面提出能不能实现飞书表格记录微信群聊天记录等信息。之前有小伙伴(网名:hugo )给我分享了关于这个工作流,之前一直忙其他事情,今天抽时间参考了他之前的文档做了简单的大语言模型聊天信息记录飞书的功能。下面就给大家介绍一下这个工作流是如何实现的。
我们首先看一下这个工作流:

生成的数据写入飞书的效果:

我们通过大语言模型的输出,在结合飞书表格,从而实现了。聊天信息写入飞书的功能。 下面介绍一下这个工作流是如何实现的。
流程中主要分为开始节点、llm大语言模型、llm大语言模型转换飞书输入、飞书表格-新增多行工作表最后、直接回复 5个节点。
这个开始节点非常简单就是接受用户输入的提问信息。

这个和之前文章中使用的大语言模型也非常类似,我们只需要设置一个模型就可以了,我这里使用了上海人工智能实验室书生 internlm/internlm2_5-7b-chat模型。
这个地方不是本文的关键点。其他地方都可以默认即可。

这个地方主要是处理llm大语言模型输出的文本内容,我们需要把 他转换成飞书能够插入飞书表格的数据格式,主要的数据格式是数组。
数据格式内容如下:
{
"result": "[[\"你好!我是上一个大语言模型的助手,我的主要任务是帮助用户更好地使用大语言模型,提供相关信息和解答疑问。如果你有任何关于语言模型的问题或者需要帮助的地方,都可以随时告诉我,我会尽力提供帮助。\", \"\", \"\", \"\", \"\"]]"
} 代码处理的地方是需要生成字符串要转义。 具体的处理代码如下:
def main(arg1: str) -> dict:
# 将输入字符串转换为表格格式
str2 = arg1
table = [[str2, "", "", "", ""]]
# 将表格转换为字符串形式的嵌套列表,并添加转义字符
result_str = str(table).replace("'", '"') # 将单引号替换为双引号
# 返回结果
return {
"result": result_str,
} 输入参数: llm大语言模型Text string
输出参数: result 数据类型是string

这里我们用到dify 自带的内置组件飞书新增多行至工作表最后 这个插件。

在这个表格的设置之前我们需要开通飞书多维度表格权限。
登录飞书开发者后台:https://open.feishu.cn/app?lang=zh-CN
点击创建企业自建应用,创建一个表格机器人;

创建好应用后,我们会看到这应用的凭证 和 应用秘钥

这2个要记录下来,后面我们会用到。
接下来我们需要设置这个应用的权限。
点击权限管理-点击开通权限

弹出开通权限我搜索如下几个权限:bitable:app、bitable:app:readonly、drive:drive.metadata:readonly、drive:drive:version、drive:drive:version:readonly、sheets:spreadsheet、sheets:spreadsheet:readonly、wiki:node:read

上面列出的好几个,最核心应该是我上面截图的2个sheets:spreadsheet、sheets:spreadsheet:readonly,多开通也没关系,方便后面其他功能使用。
开通完成后可以看到如下权限开通显示:

点击版本管理与发布,创建一个新版本

接下来我回到飞书文档中,点击创建一个表格

新建表格我们设置一下表头内容“文本信息”、“图片URL”、“音频URL”、“视频URL”

这里我们创建了4个,大家也可以根据自己实际情况创建多个表头。我上面的只有文本信息输入,后面3个主要是方便我其他工作流测试使用的。
接下来我们打开表格 点击右上角的三个小点 icon -> 更多 -> 添加文档应用。搜索把你的 App 添加进去,选择 可编辑 选项,才算可以正常对此多维表格进行操作。


以上设置我就完成了飞书表格机器人的设置和创建工作了。
我们回到dify工作台,打开内置组件-飞书多维度表格,添加授权设置,填入上面记录的表格APP ID 和APP Secret

点击保存完成设置。


这里我们添加一个环境变量保存飞书的表格问答URL.

这个飞书URL链接从哪来呢?回到飞书表格。

复制这个表格的URL链接,这个链接就是我们上面参数设置的值。
这个表格里面有3个值我们需要传入,第一个是 电子表格 token 也就是我们刚才环境变量的URL 值;第二个是上个流程节点输出;
第三个是要增加行数,这里我就填写1.
以上步骤我就完成了表格的设置。
这个直接回复就是输出llm大语言模型的输入内容,毕竟我们和大语言模型对话你总要看到它的输出对吧,表格的功能只是在前面流程中把它记录下来而已。

我们打开工作流,点击预览进入聊天对话。

我们看下飞书的表格文档

我们看到数据已经写入了。
以上我们就完成了一个最简单的聊天对话写入飞书的功能了。大家可以举一反三 可以将微信或者飞书聊天信息抓取在调用上面飞书表格,从而可以实现聊天信息保存以及数据分析和运营了。
相关资料和文档可以看我开源的项目 https://github.com/wwwzhouhui/dify-for-dsl
非常感谢hugo 前期提供的关于飞书表格开通和dify对接的相关文档,基于以上内容我才有思路写这个工作流的文章。
今天主要带大家实现了大语言模型聊天信息记录到飞书表格的功能,详细介绍了整个工作流的实现步骤,包括飞书表格工作流中各个节点的设置(如开始节点、llm 大语言模型节点、代码转换节点、新增多行至工作表最后节点、直接回复节点等),还讲解了飞书表格机器人的开通流程、权限设置、发布以及飞书表格的创建等相关操作。本次工作流整体难度不大,稍微学习一下即可掌握,感兴趣的小伙伴可以支持关注,今天的分享就到这里结束了,我们下个文章见。