通过coze创建工作流,将工作流输出结果存储在飞书多维表格,并通过微信公众号进行对话。
1.前提
注册coze
注册飞书,并创建多维表格
注册微信公众号
2.我的案例说明
目标:通过微信公众号,用户上传照片或者拍照,基于coze工作流实现照片的隐患描述、隐患分类、法律依据、风险等级以及整改建议,并将这些内容存储到飞书多维表格中。
3.关键步骤
3.1.飞书创建多维表格
创建多维表格,每一列字段我都是定义为"文本"类型
3.2.coze创建工作流
说明:
开始节点: input 选择 File---Image,因为我是做图片识别
AI图片理解: 我用的是"豆包视觉理解pro",系统提示词"请基于安全、环保、职业健康、消防相关法律法规,系统分析图片中存在的安全、环保、职业健康、消防类隐患,只输出隐患描述结果",用户提示词"{{input}}"即可。
其他几个节点一样的道理;
代码节点:因为需要将AI生成的内容string类型转换成json array,所以执行了以下python代码:
import datetime
import json
from typing import List, Any, Dict
def json_serial(obj: Any) -> str:
"""JSON 序列化器,处理默认无法序列化的对象"""
if isinstance(obj, (datetime.datetime, datetime.date)):
return obj.isoformat()
elif isinstance(obj, (str, int, float, bool)):
return str(obj)
raise TypeError(f"类型 {type(obj)} 不可序列化")
async def main(args: Any): # 替换为具体的参数类型
params = args.params # 确保 args 有 params 属性
user_input = str(params['input']) # 避免命名冲突
model_output = str(params['output'])
model_output1 = str(params['output1'])
model_output2 = str(params['output2'])
model_output3 = str(params['output3'])
model_output4 = str(params['output4'])
result: List[Dict[str, Any]] = [
{
"fields": {
"日期": json_serial(datetime.datetime.now()),
"图片": user_input,
"隐患描述": model_output,
"法律依据": model_output2,
"隐患类别": model_output1,
"风险等级": model_output3,
"整改建议": model_output4,
}
}
]
return result
add_records节点:这是一个coze中的插件,选择的插件是飞书多维表格的插件,参数选择的是add_records参数,选择时有详细说明。
app_token:就是多维表格的链接地址
records:前一节点输入
table_id:即多维表格ID,链接URL有id,url地址中table=后面这个id就是table_id
table_name:即多维表格名称,你创建的多维表格的名称。
注意的是:这一节点需要多维表格授权给coze,否则无法插入内容。
结束节点:结束节点输出上传内容。
3.3.将工作流复制到资源库
将新建的工作流复制或移动到资源库,其目的是为了在扣子上创建智能体使用。
3.4.创建智能体,选择工作流
3.5.发布智能体
发布智能体,并勾选微信公众号,配置公众号并授权。
4.注意事项
1.如果你是自己使用,通过微信公众号可以正常使用,如果其他人也要通过公众号使用,必须将多维表格发布为应用。这步骤很关键
2.扣子api授权