详解(二)coze 工作流跟踪微信公众号 AI 总结推送,搭建自己的微信公众号每日AI简报,告别信息焦虑

523 阅读5分钟

为了缓解AI工具应用快速更迭的资讯焦虑,在上一篇文章中,我提供了批量采集公众号+coze工作流AI总结+飞书自动推送的方案实现了每日自动跟踪微信公众号进行AI总结简报,效果如下:

飞书机器人每日推送

飞书机器人每日推送

由于微信公众号的文章篇幅有限,无法对整体实践的全过程完整表述,因此后续将对中间关键阶段进行详细展开,本文主要针对第二阶段:搭建Coze工作流进行大模型AI总结微信公众号文章

方案思路

想到文章AI总结,第一想法就是方案一,将文章全量灌入模型,让大模型充分理解后再整体总结吐出。但我们的需求是每天总结20+篇文章,部分公众号文章可能篇幅较长字数 1W+,这种情况会造成整体文本非常大,单请求无法一次性提交,且大模型也有上下文的限制,当长文本超限后会出现丢失情况。因此我们分而治之,将单篇文章分别进行AI总结,汇总后再重新交给大模型进行整体汇总分类,调整格式后输出。

  • 方案一:全量获取文章内容使用大型语言模型(LLMs)高效总结多文档内容
    问题点:多文档长文本可能超出上下文范围会使大模型失效,无法一次性灌入理解

  • 方案二:先对单篇文章进行摘要抽取,在将多篇摘要内容交给大模型归类汇总

工作流全貌

coze微信文章抓取AI总结分类飞书推送工作流全貌

coze微信文章AI总结飞书推送工作流

coze微信文章AI总结飞书推送工作流

关键步骤

工作流输入

article_urls为需要抓取的文章列表; appid和app secret为飞书应用的调用参数;receive_id为接受人在该飞书应用中的open_id;此工作流是将上一篇抓取好的文章链接灌入,其实可以通过公众号的cookies+fakeid循环跟踪作者最新文章链接,不过经过我实验,coze生态他人开放的免费组件总会存在抓取失败的情况,且微信cookies和token易过期,因此作为长期固定任务该步骤不易放入工作流中。

工作流输入

工作流输入

模型AI总结

使用AI大模型对单篇文章内容进行提取摘要,整体遍历后再分类汇总。我使用的豆包1.5 pro.深度思考.128K 模型,几周实践下来效果还不错,单篇的资源耗点20左右,单日免费500资源点可以支持20-30篇左右文章汇总,基本满足个人需求。

coze工作流单篇文章总结

coze工作流单篇文章总结

coze工作流多篇摘要整体汇总

coze工作流多篇摘要整体汇总

飞书机器人推送

机器人推送方式下一篇文章详解,此处主要是通过不同的类别进行多次推送,耗时基本无感,展现形式可以定制卡片进行优化

coze工作流飞书推送组件

coze工作流飞书推送组件

工作流调用

通过coze API接口调用工作流需要使用个人访问令牌

coze工作流个人访问令牌

coze工作流个人访问令牌

个人访问令牌最长有限期为一个月,可使用cookie调用接口刷新,工作流调用API文档地址:www.coze.cn/open/docs/d…

def coze_workflow_run(token, workflow_id, parameters):
    """
    通用Coze平台工作流API调用函数
    :param token: Bearer Token字符串(不含'Bearer '前缀)
    :param workflow_id: 工作流ID
    :param parameters: dict类型,API参数
    :return: 返回API响应内容
    """
    logging.info("调用coze工作流开始")
    url = 'https://api.coze.cn/v1/workflow/run'
    headers = {
        'Accept''*/*',
        'Authorization'f'Bearer {token}',
        'Content-Type''application/json',
    }
    data = {
        'workflow_id': workflow_id,
        'parameters': parameters
    }
    response = requests.post(url, headers=headers, data=json.dumps(data))
    try:
        return response.json()
    except Exception:
        return response.text
      
     
def coze_create_and_save_token(cookie_str, workspace_id=coze_workspace_id):
    """
    调用Coze平台新建token接口,获取token后写入config.txt的coze.token,并更新expire_time为30天后。
    :param cookie_str: 登录后用于请求的cookie字符串
    :param workspace_id: 工作区ID
    :param config_path: 配置文件路径
    :return: 新token内容
    """
    url = 'https://www.coze.cn/api/permission_api/pat/create_personal_access_token_and_permission'
    headers = {
        'Accept''*/*',
        'Content-Type''application/json',
        'Cookie': cookie_str,
        'User-Agent''PostmanRuntime-ApipostRuntime/1.1.0',
        'Connection''keep-alive'
    }
    data = {
        "name""Secret token",
        "duration_day""30",
        "account_permission": {"permission_list": []},
        "workspace_permission_v2": {
            "option"1,
            "workspace_id_list": [workspace_id],
            "permission_list": ["Workflow.run"]
        }
    }
    response = requests.post(url, headers=headers, data=json.dumps(data))
    try:
        resp_json = response.json()
        token = resp_json.get('data', {}).get('token')
        if not token:
            feishu_send_message("自动化刷新coze token失败,请登录coze刷新cookie")
            raise Exception(f"未获取到token: {resp_json}")
        return token
    except Exception as e:
        feishu_send_message("自动化刷新coze token异常,请跟进查看")
        logging.info(f"新建Coze token失败: {e}")
        return None
      

总结

以上是使用大模型批量总结微信公众号文章的Coze工作流,工作流本身不复杂,主要是对整体方案组件通路的可行性验证花了一些时间。再者Coze自身生态虽然让人感觉很强大开放工具很多,但深入具体开发会发现很多组件不可用,或者很不稳定,又没有说明文档和使用demo,总让人想自己重写一个,很浪费时间。所以我后续也会将自己实践应用或手搓的工具放到共享空间,以便大家节约时间少踩坑。

最后,欢迎大家在留言区写下你的建议和问题,随手点赞,一起飞。

** 需要完整工作流和脚本,请关注公众号并回复你的coze用户名,以便加入coze共享空间,交流联系请扫码加我好友。

intro