前言
DataWorks 数据开发提供强大的工作流及调度能力,且近期上线了数据推送节点,这边我们就简单利用 Shell + AI + 数据推送节点来完成每周工作内容总结。
效果图
步骤一: 开通语雀 API 与通义千问 API
语雀
需要开通语雀超级会员才能使用语雀 API。当申请完超级会员后,即可在帐户信息下新建 Access Token,使用此 Token 即能请求语雀 API,使用开发者 API 可参考此文档 (授权范围选读取你的知识库与读取你的文档)。
这边我们在默认知识库下新建一个文档叫每周小记(AI定期总结),参考内容如下:
# 本周重点 ## 1.任务进展 本周完成了项目A需求开发,已经提测。项目整体进度比预期延迟1d,预计下周三可以开始正式测试。 ## 2.相关数据 本周日均 UV 34.8w,同比上周上涨20%。原因是周二投放活动生效,吸引了部分新用户。 本周日均 UV 34.8w(↑20%) 上周日均 UV 29w ## 3.风险同步 由于需要调用外网数据,需要在预发环境搭建代理,接下来需要考虑代理的通用性,在其他需要外网数据配合的需求中可以直接使用。 # 下周计划 下周开始主要投入项目B等功能点开发,依赖于中台团队提供接口,下周一和中台团队沟通确认。 # 其他 本周发现许多跟项目B相关的学习文档,需要找时间学习下 # 思考 项目B是项目A的延伸,做好项目B也能带动项目A的增长。
然后我们还需取得两个东西,知识库的 ID 与语雀文档的 ID,查看知识库的ID,可使用以下的 curl 语法 ( 语雀 AccessToken 如上述所取,使用者 ID 为登入语雀的帐号):
# 查看知识库ID curl -H "X-Auth-Token: 语雀AccessToken " https://www.yuque.com/api/v2/groups/使用者ID/repos
透过上面 curl 语法可以取到知识库 ID,而语雀文档的 ID则可以从打开文档后,查看 URL 取得。
通义千问
使用通义千问的 API 需要开通模型服务灵积,详细可参考此文档。开通完后,打开 API-KEY 管理取得 Key,而如何使用通义千问 API,可参考此文档。
步骤二: 开发 DataWorks 工作流
工作流的设计为每周一透过语雀 API 取得文档内容,并送给通义千问 API 取得总结,再透过 DataWorks 数据推送,将总结信息推送至各渠道。这个工作流只需要两个节点,开发如下:
节点 1 新建赋值节点,选用 Shell 语言:
首先呼叫语雀 API 取得文档内容,放到 docContent 变量 (需要替换以下代码的语雀 AccessToken、知识库 ID、文档ID) :
# 查看知识库文档 doc=$(curl -H 'X-Auth-Token: 语雀AccessToken ' https://www.yuque.com/api/v2/repos/知识库ID/docs/文档ID | grep -Po '"body":.*?[^\\]",'); # '拿取返回内容里 body 字段 tmp=${doc#*:'"'} # remove prefix ending in :" docContent=${tmp%'"',*} # remove suffix starting with ",
取得文档内容,送给通义千问 API 进行总结,取得 aiSummary 变量并输出给下游。(需要替换以下代码的模型服务灵积 Key) :
ai=$(curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \ --header "Authorization: Bearer 模型服务灵积Key" \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen-turbo", "input":{ "messages":[ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "请给我一段纯文本文字(至多不超过1000个字)重点及简要的总结以下内容:'"$docContent"'" } ] }, "parameters": { "result_format": "message" } }' | grep -Po '"content":.*?[^\\]"'); # 拿取返回内容里 content 字段 tmp=${ai#*:'"'} # remove prefix ending in :" aiSummary=${tmp%'"'*} # remove suffix starting with " echo $aiSummary | sed 's/\\n/\n/g';
节点 2 新建数据推送节点,将 Shell 赋值节点输出的 outputs 在节点上下文参数建立输入 inputs,并放入到正文里,选择要推送的渠道,如钉钉、飞书、企业微信或 Teams 等。
在业务流程看到的 Dag 如下,并在业务流程上进行推送测试:
工作流的推送测试,可以查阅此篇文章。
步骤三: 发布工作流
将两个节点的调度时间安排在每周一早上八点,提交到发布中心后发布,并于运维中心查看调度状况。透过上述三步骤后,即可于每周早上定时收到上周的工作总结。
钉钉展示:
飞书展示:
企业微信展示:
Teams 展示:
小结
以上三步骤简单演示如何利用 DataWorks 工作流串起语雀、通义千问及数据推送,基于同样的方式也能用于团队周工作内容总结、个人旅游信息整理、当天小记转日记等,还能利用这些信息再加工,组织出更有价值的资讯。