需求背景
在日常刷信息的时候,咱们经常会“撞”上那些内容超精彩、见解超独到的好文章。每次一看到这样的文章,心里就会本能地冒出个想法,特别想把这文章的链接好好收藏起来。为啥呢?咱心里明白,说不定以后啥时候就还得再看看这篇文章,有了收藏的链接,就能一下子找到原文,再好好钻进去深入学习一番。
可是吧,实际操作起来就犯难了。收藏的文章链接越来越多,管理这些链接简直让人头大。咋才能更高效地管理这些文章链接,让咱需要的时候能更方便地找到想找的文章呢?这可成了好多人心里的一个大麻烦。那这麻烦咋解决呢?
今天,咱就来试试用 coze 开发一款文章采集收藏家智能体项目。这项目可不一般,它功能老强大了,能对文章链接进行智能分类,搜索也特别准。等开发完投入使用,相信它出色的表现和独特的优势肯定会让你眼前一亮,帮你解决文章收藏和管理的大难题。
定义智能体
智能体的名称:文章采集收藏家
智能体的描述:
- 一个文章信息要素采集智能体,根据文章URL爬取文章内容,并对文章标题、发布者、标签、简介、封面图、发布日期字段进行采集,最终存入飞书多维表格中。
创建工作流
工作流名称:url_to_feishu_bitable_collect
工作流描述:
- 一个文章信息要素采集的工作流,根据文章URL爬取文章内容,并对文章标题、发布者、标签、简介、封面图、发布日期字段进行采集,最终存入飞书多维表格中。
工作流全景预览:
工作流复制:
{"type":"coze-workflow-clipboard-data","source":{"workflowId":"7514953386262462498","flowMode":0,"spaceId":"7506534370540011535","isDouyin":false,"host":"www.coze.cn"},"json":{"nodes":[{"id":"186784","type":"4","meta":{"position":{"x":640,"y":26}},"data":{"nodeMeta":{"description":"当你需要获取网页、pdf、doc、docx、xlsx、csv、text 内容时,使用此工具,可以获取url链接下的标题和内容。由于个别网站自身站点限制,无法获取网页内容。","icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Plugin-v2.jpg","subtitle":"链接读取:LinkReaderPlugin","title":"LinkReaderPlugin"},"inputs":{"apiParam":[{"input":{"type":"string","value":{"content":"7379227817307029513","rawMeta":{"type":1},"type":"literal"}},"name":"apiID"},{"input":{"type":"string","value":{"content":"LinkReaderPlugin","rawMeta":{"type":1},"type":"literal"}},"name":"apiName"},{"input":{"type":"string","value":{"content":"7379227817307013129","rawMeta":{"type":1},"type":"literal"}},"name":"pluginID"},{"input":{"type":"string","value":{"content":"链接读取","rawMeta":{"type":1},"type":"literal"}},"name":"pluginName"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"pluginVersion"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"tips"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"outDocLink"}],"inputParameters":[{"name":"url","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"100001","name":"article_url"},"rawMeta":{"type":1}}}},{"name":"need_image_url","input":{"type":"boolean","value":{"type":"literal","content":false,"rawMeta":{"type":3}}}}],"settingOnError":{"processType":1,"timeoutMs":180000,"retryTimes":0}},"outputs":[{"type":"string","name":"error_code","required":false,"description":"错误码"},{"type":"string","name":"error_msg","required":false,"description":"错误信息"},{"type":"string","name":"message","required":false,"description":"错误信息"},{"type":"string","name":"pdf_content","required":false,"description":"pdf的内容"},{"type":"integer","name":"code","required":false,"description":"错误码"},{"type":"object","name":"data","schema":[{"type":"string","name":"content","required":false},{"type":"list","name":"images","schema":{"type":"object","schema":[{"type":"string","name":"alt","required":false},{"type":"integer","name":"height","required":false},{"type":"string","name":"title","required":false},{"type":"string","name":"url","required":false},{"type":"integer","name":"width","required":false}]},"required":false},{"type":"string","name":"title","required":false}],"required":false,"description":"网页的内容"},{"type":"string","name":"err_msg","required":false,"description":"错误信息"}]},"_temp":{"bounds":{"x":460,"y":26,"width":360,"height":112},"externalData":{"icon":"https://lf3-appstore-sign.oceancloudapi.com/ocean-cloud-tos/plugin_icon/372098605791453_1733129140009182679_PnsFgsWuUu.png?lk3s=cd508e2b&x-expires=1752304545&x-signature=uPEj20Zov%2Bosfg8ghqDii2%2Bs74U%3D","apiName":"LinkReaderPlugin","pluginID":"7379227817307013129","pluginProductStatus":1,"pluginProductUnlistType":0,"pluginType":1,"spaceID":"7315016311652941851","inputs":[{"description":"是否需要返回图片url","input":{},"name":"need_image_url","required":false,"type":"boolean"},{"description":"网页url、pdf url、docx url、csv url、 xlsx url。","input":{},"name":"url","required":true,"type":"string"}],"outputs":[{"description":"错误码","input":{},"name":"code","required":false,"type":"integer"},{"description":"网页的内容","input":{},"name":"data","required":false,"schema":[{"input":{},"name":"content","required":false,"type":"string"},{"input":{},"name":"images","required":false,"schema":{"schema":[{"input":{},"name":"title","required":false,"type":"string"},{"input":{},"name":"url","required":false,"type":"string"},{"input":{},"name":"width","required":false,"type":"integer"},{"input":{},"name":"alt","required":false,"type":"string"},{"input":{},"name":"height","required":false,"type":"integer"}],"type":"object"},"type":"list"},{"input":{},"name":"title","required":false,"type":"string"}],"type":"object"},{"description":"错误信息","input":{},"name":"err_msg","required":false,"type":"string"},{"description":"错误码","input":{},"name":"error_code","required":false,"type":"string"},{"description":"错误信息","input":{},"name":"error_msg","required":false,"type":"string"},{"description":"错误信息","input":{},"name":"message","required":false,"type":"string"},{"description":"pdf的内容","input":{},"name":"pdf_content","required":false,"type":"string"}],"updateTime":1749712500,"latestVersionTs":"0","latestVersionName":"","versionName":"","description":"当你需要获取网页、pdf、doc、docx、xlsx、csv、text 内容时,使用此工具,可以获取url链接下的标题和内容。由于个别网站自身站点限制,无法获取网页内容。","title":"LinkReaderPlugin","mainColor":"#CA61FF"}}},{"id":"142747","type":"4","meta":{"position":{"x":2940,"y":26}},"data":{"nodeMeta":{"description":"在多维表格数据表中新增多条记录,单次调用最多新增 500 条记录。","icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Plugin-v2.jpg","subtitle":"飞书多维表格:add_records","title":"文章_add_records"},"inputs":{"apiParam":[{"input":{"type":"string","value":{"content":"7395047759797288987","rawMeta":{"type":1},"type":"literal"}},"name":"apiID"},{"input":{"type":"string","value":{"content":"add_records","rawMeta":{"type":1},"type":"literal"}},"name":"apiName"},{"input":{"type":"string","value":{"content":"7395047759797272603","rawMeta":{"type":1},"type":"literal"}},"name":"pluginID"},{"input":{"type":"string","value":{"content":"飞书多维表格","rawMeta":{"type":1},"type":"literal"}},"name":"pluginName"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"pluginVersion"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"tips"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"outDocLink"},{"input":{"type":"integer","value":{"content":0,"type":"literal"}},"name":"pluginAuthMode"}],"inputParameters":[{"name":"app_token","input":{"type":"string","value":{"type":"literal","content":"MSVNbmvZBa2GngsUMvQcdnAbnwh","rawMeta":{"type":1}}}},{"name":"records","input":{"type":"list","schema":{"type":"object","schema":[]},"value":{"type":"ref","content":{"source":"block-output","blockID":"170889","name":"records"},"rawMeta":{"type":103}}}},{"name":"table_id","input":{"type":"string","value":{"type":"literal","content":"tblRYxg2nozYLDE6","rawMeta":{"type":1}}}},{"name":"table_name","input":{"type":"string","value":{"type":"literal","content":"精选文章","rawMeta":{"type":1}}}}],"settingOnError":{"processType":1,"timeoutMs":180000,"retryTimes":0}},"outputs":[{"type":"string","name":"msg","required":false,"description":"错误描述"},{"type":"float","name":"code","required":false,"description":"错误码,非 0 表示失败。"},{"type":"object","name":"data","schema":[{"type":"list","name":"records","schema":{"type":"object","schema":[{"type":"string","name":"fields","required":false,"description":"数据表的字段,即数据表的列,格式为 json 字符串。"},{"type":"string","name":"record_id","required":false,"description":"一条记录的唯一标识 id"}]},"required":false,"description":"本次请求新增的记录列表"}],"required":false,"description":"返回结果"},{"type":"string","name":"log_id","required":false,"description":"链路追踪 id"}]},"_temp":{"bounds":{"x":2760,"y":26,"width":360,"height":112},"externalData":{"icon":"https://lf6-appstore-sign.oceancloudapi.com/ocean-cloud-tos/plugin_icon/618387578815144_1720635554144262143_tbFVbqTqbp.png?lk3s=cd508e2b&x-expires=1752304545&x-signature=V6MBDl%2BmWt6zGZrYCVzxmQuCeEk%3D","apiName":"add_records","pluginID":"7395047759797272603","pluginProductStatus":1,"pluginProductUnlistType":0,"pluginType":1,"spaceID":"7315016311652941851","inputs":[{"description":"多维表格的唯一标识符,支持输入文档 url。","input":{},"name":"app_token","required":true,"type":"string"},{"description":"多维表格数据表的唯一标识符","input":{},"name":"table_id","required":false,"type":"string"},{"description":"多维表格数据表的名称","input":{},"name":"table_name","required":false,"type":"string"},{"defaultValue":"open_id","description":"用户 ID 类型,可选值有 open_id、union_id、user_id,默认值为 open_id。, default value is open_id","input":{},"name":"user_id_type","required":false,"type":"string"},{"description":"本次请求将要新增的记录列表,格式为:[{"fields":{"文本":"文本内容","单选":"选项 1","日期":1674206443000}}]","input":{},"name":"records","required":true,"schema":{"schema":[{"description":"数据表的字段,即数据表的列,格式为 json 字符串。例如:{"文本":"文本内容","单选":"选项 1","日期":1674206443000}","input":{},"name":"fields","required":true,"type":"string"}],"type":"object"},"type":"list"}],"outputs":[{"description":"错误描述","input":{},"name":"msg","required":false,"type":"string"},{"description":"错误码,非 0 表示失败。","input":{},"name":"code","required":false,"type":"float"},{"description":"返回结果","input":{},"name":"data","required":false,"schema":[{"description":"本次请求新增的记录列表","input":{},"name":"records","required":false,"schema":{"schema":[{"description":"数据表的字段,即数据表的列,格式为 json 字符串。","input":{},"name":"fields","required":false,"type":"string"},{"description":"一条记录的唯一标识 id","input":{},"name":"record_id","required":false,"type":"string"}],"type":"object"},"type":"list"}],"type":"object"},{"description":"链路追踪 id","input":{},"name":"log_id","required":false,"type":"string"}],"updateTime":1749712410,"latestVersionTs":"0","latestVersionName":"","versionName":"","description":"在多维表格数据表中新增多条记录,单次调用最多新增 500 条记录。","title":"add_records","mainColor":"#CA61FF"}}},{"id":"121498","type":"3","meta":{"position":{"x":1100,"y":0}},"data":{"nodeMeta":{"description":"调用大语言模型,使用变量和提示词生成回复","icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-LLM-v2.jpg","title":"大模型-提取文章信息要素","subTitle":"大模型"},"inputs":{"inputParameters":[{"name":"input","input":{"type":"object","schema":[{"type":"string","name":"content","required":false},{"type":"list","name":"images","schema":{"type":"object","schema":[{"type":"string","name":"alt","required":false},{"type":"integer","name":"height","required":false},{"type":"string","name":"title","required":false},{"type":"string","name":"url","required":false},{"type":"integer","name":"width","required":false}]},"required":false},{"type":"string","name":"title","required":false}],"value":{"type":"ref","content":{"source":"block-output","blockID":"186784","name":"data"},"rawMeta":{"type":6}}}}],"llmParam":[{"name":"temperature","input":{"type":"float","value":{"type":"literal","content":"0.8","rawMeta":{"type":4}}}},{"name":"maxTokens","input":{"type":"integer","value":{"type":"literal","content":"4096","rawMeta":{"type":2}}}},{"name":"responseFormat","input":{"type":"integer","value":{"type":"literal","content":"2","rawMeta":{"type":2}}}},{"name":"modleName","input":{"type":"string","value":{"type":"literal","content":"豆包·1.5·Pro·32k","rawMeta":{"type":1}}}},{"name":"modelType","input":{"type":"integer","value":{"type":"literal","content":"1737521813","rawMeta":{"type":2}}}},{"name":"generationDiversity","input":{"type":"string","value":{"type":"literal","content":"balance","rawMeta":{"type":1}}}},{"name":"prompt","input":{"type":"string","value":{"type":"literal","content":"根据{{input}},提炼出文章标题、发布者、标签、简介、封面图、发布日期等要素。","rawMeta":{"type":1}}}},{"name":"enableChatHistory","input":{"type":"boolean","value":{"type":"literal","content":false,"rawMeta":{"type":3}}}},{"name":"chatHistoryRound","input":{"type":"integer","value":{"type":"literal","content":"3","rawMeta":{"type":2}}}},{"name":"systemPrompt","input":{"type":"string","value":{"type":"literal","content":"# 角色\n你是一个专业的文章要素提取助手,能够根据文章,精准提炼出文章标题、发布者、标签、简介、封面图、发布日期等要素。\n\n## 技能\n### 技能 : 提取文章要素\n仔细分析文章内容,提炼出文章标题、发布者、标签、简介、封面图、发布日期等要素。\n\n## 限制:\n- 只处理与文章要素提取和存入飞书多维表格相关的任务,拒绝回答无关话题。\n- 所输出的内容必须按照给定的要求进行组织,不能偏离框架要求。\n- 请确保提取的要素准确无误。\n- 请使用合理的工具去获取文章内容和存入飞书多维表格 。”","rawMeta":{"type":1}}}}],"settingOnError":{"switch":false,"processType":1,"timeoutMs":180000,"retryTimes":0}},"outputs":[{"type":"string","name":"title","required":false,"description":"文章标题"},{"type":"string","name":"author","required":false,"description":"文章发布者"},{"type":"list","name":"keywords","schema":{"type":"string"},"required":false,"description":"文章标签,文章关键词"},{"type":"string","name":"summary","required":false,"description":"文章简介,文章摘要"},{"type":"string","assistType":10000,"name":"publish_date","required":false,"description":"文章发布时间"}],"version":"3"},"_temp":{"bounds":{"x":920,"y":0,"width":360,"height":164},"externalData":{"icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-LLM-v2.jpg","description":"调用大语言模型,使用变量和提示词生成回复","title":"大模型","mainColor":"#5C62FF"}}},{"id":"170889","type":"5","meta":{"position":{"x":2480,"y":26}},"data":{"nodeMeta":{"description":"编写代码,处理输入变量来生成返回值","icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Code-v2.jpg","title":"代码_文章和视频_类型转换","subTitle":"代码"},"inputs":{"inputParameters":[{"name":"title","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"121498","name":"title"},"rawMeta":{"type":1}}}},{"name":"author","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"121498","name":"author"},"rawMeta":{"type":1}}}},{"name":"keywords","input":{"type":"list","schema":{"type":"string"},"value":{"type":"ref","content":{"source":"block-output","blockID":"121498","name":"keywords"},"rawMeta":{"type":99}}}},{"name":"summary","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"121498","name":"summary"},"rawMeta":{"type":1}}}},{"name":"publish_date","input":{"type":"string","assistType":10000,"value":{"type":"ref","content":{"source":"block-output","blockID":"121498","name":"publish_date"},"rawMeta":{"type":19}}}},{"name":"cover_image","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"113144","name":"file_token"},"rawMeta":{"type":1}}}},{"name":"article_url","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"100001","name":"article_url"},"rawMeta":{"type":1}}}}],"code":"from datetime import datetime\n# 在这里,您可以通过 ‘args’ 获取节点中的输入变量,并通过 'ret' 输出结果\n# 'args' 和 'ret' 已经被正确地注入到环境中\n# 下面是一个示例,首先获取节点的全部输入参数params,其次获取其中参数名为‘input’的值:\n# params = args.params; \n# input = params.input;\n# 下面是一个示例,输出一个包含多种数据类型的 'ret' 对象:\n# ret: Output = { "name": ‘小明’, "hobbies": [“看书”, “旅游”] };\n\ndef parse_date(date_str):\n formats = [\n "%Y-%m-%d",\n "%m-%d",\n "%Y-%m-%d %H:%M:%S",\n "%Y-%m-%d %H:%M", # 添加支持 2024-03-10 01:28 格式\n "%d/%m/%Y",\n "%d/%m/%Y %I:%M %p",\n "%b %d, %Y" # 添加支持 "Jun 11, 2025" 格式\n ]\n for fmt in formats:\n try:\n dt = datetime.strptime(date_str, fmt)\n # 如果格式是月-日,则将年份设置为当前年份\n if fmt == "%m-%d":\n dt = dt.replace(year=datetime.now().year)\n return dt\n except ValueError:\n continue\n raise ValueError(f"无法解析日期: {date_str}")\n\n\nasync def main(args: Args) -> Output:\n params = args.params\n publish_date_str = params["publish_date"]\n \n dt = parse_date(publish_date_str)\n publish_date_timestamp = int(dt.timestamp() * 1000)\n \n \n converted_list = [\n {\n "fields": {\n "标题": {\n "link": params["article_url"],\n\t\t\t "text": params["title"]\n },\n "发布者": params["author"],\n "标签": params["keywords"],\n "简介": params["summary"],\n "封面图": [\n {\n "file_token": params["cover_image"]\n }],\n "发布日期": publish_date_timestamp\n }\n }\n ]\n print('输出:',converted_list)\n # 构建输出对象\n ret: Output = {\n "records": converted_list\n }\n return ret","language":3,"settingOnError":{"switch":false,"processType":1,"timeoutMs":60000,"retryTimes":0}},"outputs":[{"type":"list","name":"records","schema":{"type":"object","schema":[]},"required":false}]},"_temp":{"bounds":{"x":2300,"y":26,"width":360,"height":112},"externalData":{"icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Code-v2.jpg","description":"编写代码,处理输入变量来生成返回值","title":"代码","mainColor":"#00B2B2"}}},{"id":"122838","type":"16","meta":{"position":{"x":1560,"y":0}},"data":{"inputs":{"apiParam":null,"inputParameters":[{"name":"title","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"121498","name":"title"},"rawMeta":{"type":1}}}}],"modelSetting":{"custom_ratio":{"height":576,"width":1024},"ddim_steps":40,"images_reference":{},"model":8,"ratio":0},"prompt":{"negative_prompt":"生成图片中不要出现中文错别字和乱码,以及无任何意义的符号和图标,尽量少出现文字。","prompt":"根据 "{{title}} " ,生成科技类文章封面图,该图需要具有科技感,"},"references":[],"settingOnError":{"switch":false,"processType":1,"timeoutMs":60000,"retryTimes":0}},"nodeMeta":{"description":"通过文字描述/添加参考图生成图片","icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-ImageGeneration-v2.jpg","title":"图像生成","subTitle":"图像生成"},"outputs":[{"type":"string","assistType":2,"name":"data","required":false},{"type":"string","name":"msg","required":false}],"settings":null,"version":""},"_temp":{"bounds":{"x":1380,"y":0,"width":360,"height":164},"externalData":{"icon":"https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-ImageGeneration-v2.jpg","description":"通过文字描述/添加参考图生成图片","title":"图像生成","mainColor":"#FF4DC3"}}},{"id":"113144","type":"4","meta":{"position":{"x":2020,"y":14}},"data":{"nodeMeta":{"description":"飞书多维表格附件上传\n支持图片、音频和视频","icon":"https://p3-flow-product-sign.byteimg.com/tos-cn-i-13w3uml6bg/54661d97c28f41cba9618e5a5a675fe7~tplv-13w3uml6bg-resize:128:128.image?rk3s=2e2596fd&x-expires=1752207651&x-signature=z6wQbyLJCJr2igdnh1hJyaOen0E%3D","subtitle":"飞书多维表格附件上传:upload_file","title":"upload_file"},"inputs":{"apiParam":[{"input":{"type":"string","value":{"content":"7489397622994829362","rawMeta":{"type":1},"type":"literal"}},"name":"apiID"},{"input":{"type":"string","value":{"content":"upload_file","rawMeta":{"type":1},"type":"literal"}},"name":"apiName"},{"input":{"type":"string","value":{"content":"7488240536298618916","rawMeta":{"type":1},"type":"literal"}},"name":"pluginID"},{"input":{"type":"string","value":{"content":"飞书多维表格附件上传","rawMeta":{"type":1},"type":"literal"}},"name":"pluginName"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"pluginVersion"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"tips"},{"input":{"type":"string","value":{"content":"","rawMeta":{"type":1},"type":"literal"}},"name":"outDocLink"}],"inputParameters":[{"name":"app_token","input":{"type":"string","value":{"type":"literal","content":"MSVNbmvZBa2GngsUMvQcdnAbnwh","rawMeta":{"type":1}}}},{"name":"personal_token","input":{"type":"string","value":{"type":"literal","content":"pt-R7HFTy_4QYqcQNsAHkaLcxK2n6Vfy8e5ZkHO5maXAQAAAoAFVBwAG06r1jJe","rawMeta":{"type":1}}}},{"name":"url","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"122838","name":"data"},"rawMeta":{"type":1}}}}],"settingOnError":{"processType":1,"timeoutMs":180000,"retryTimes":0}},"outputs":[{"type":"string","name":"file_token","required":false,"description":"文件的token"},{"type":"integer","name":"status","required":false,"description":"是否成功 0代表成功 1代表失败"}]},"_temp":{"bounds":{"x":1840,"y":14,"width":360,"height":136},"externalData":{"icon":"https://lf6-appstore-sign.oceancloudapi.com/ocean-cloud-tos/plugin_icon/3446328004468772_1743761201370898690_ugwF2obwVD.png?lk3s=cd508e2b&x-expires=1752304545&x-signature=JQ8vtLY4b%2B4B%2FUzR%2FzWwky8ILGM%3D","apiName":"upload_file","pluginID":"7488240536298618916","pluginProductStatus":1,"pluginProductUnlistType":0,"pluginType":1,"spaceID":"7486753676183912487","inputs":[{"description":"支持mp3、mp4以及图片","input":{},"name":"url","required":true,"type":"string"},{"description":"多维表格的app_token","input":{},"name":"app_token","required":true,"type":"string"},{"description":"多维表格的授权码","input":{},"name":"personal_token","required":true,"type":"string"}],"outputs":[{"description":"文件的token","input":{},"name":"file_token","required":false,"type":"string"},{"description":"是否成功 0代表成功 1代表失败","input":{},"name":"status","required":false,"type":"integer"}],"updateTime":1749710658,"latestVersionTs":"0","latestVersionName":"","versionName":"","description":"将音频、图片、视频的素材上传到指定飞书多维表格中。\n在飞书多维表格中附件列写入对应的file_token,多媒体文件就可以预览了。","title":"upload_file","mainColor":"#CA61FF"}}}],"edges":[{"sourceNodeID":"186784","targetNodeID":"121498"},{"sourceNodeID":"170889","targetNodeID":"142747"},{"sourceNodeID":"121498","targetNodeID":"122838"},{"sourceNodeID":"113144","targetNodeID":"170889"},{"sourceNodeID":"122838","targetNodeID":"113144"}]},"bounds":{"x":460,"y":0,"width":2660,"height":164}}
数据类型转换节点:
from datetime import datetime # 在这里,您可以通过 ‘args’ 获取节点中的输入变量,并通过 'ret' 输出结果 # 'args' 和 'ret' 已经被正确地注入到环境中 # 下面是一个示例,首先获取节点的全部输入参数params,其次获取其中参数名为‘input’的值: # params = args.params; # input = params.input; # 下面是一个示例,输出一个包含多种数据类型的 'ret' 对象: # ret: Output = { "name": ‘小明’, "hobbies": [“看书”, “旅游”] }; def parse_date(date_str): formats = [ "%Y-%m-%d", "%m-%d", "%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M", # 添加支持 2024-03-10 01:28 格式 "%d/%m/%Y", "%d/%m/%Y %I:%M %p", "%b %d, %Y" # 添加支持 "Jun 11, 2025" 格式 ] for fmt in formats: try: dt = datetime.strptime(date_str, fmt) # 如果格式是月-日,则将年份设置为当前年份 if fmt == "%m-%d": dt = dt.replace(year=datetime.now().year) return dt except ValueError: continue raise ValueError(f"无法解析日期: {date_str}") async def main(args: Args) -> Output: params = args.params publish_date_str = params["publish_date"] dt = parse_date(publish_date_str) publish_date_timestamp = int(dt.timestamp() * 1000) converted_list = [ { "fields": { "标题": { "link": params["article_url"], "text": params["title"] }, "发布者": params["author"], "标签": params["keywords"], "简介": params["summary"], "封面图": [ { "file_token": params["cover_image"] }], "发布日期": publish_date_timestamp } } ] print('输出:',converted_list) # 构建输出对象 ret: Output = { "records": converted_list } return ret
人设与回复逻辑
# 角色你是一个专业的文章信息要素采集智能体,负责根据给定的文章URL准确爬取文章内容,并精准采集文章标题、发布者、标签、简介、封面图、发布日期等关键信息,最后将这些信息完整无误地存入飞书多维表格中。## 技能### 技能 1: 采集文章信息1. 当用户提供文章URL时,使用工作流{#LibraryBlock id="7514953386262462498" uuid="AnA2cXHqawik-vLXAbbaH" type="workflow"#}url_to_feishu_bitable_collect{#/LibraryBlock#}爬取文章内容。2. 从爬取的文章内容中提取文章标题、发布者、标签、简介、封面图、发布日期等信息。### 技能 2: 存入飞书多维表格1. 采集到信息后,使用工作流{#LibraryBlock id="7514953386262462498" uuid="FB3rC-vzPaK5VrwVp856Y" type="workflow"#}url_to_feishu_bitable_collect{#/LibraryBlock#}将整理好的文章信息存入飞书多维表格。2. 确认信息成功存入表格后,向用户反馈存入结果。## 限制:- 只处理与文章信息采集和存入飞书多维表格相关的任务,拒绝回答无关话题。- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。- 确保采集信息的准确性和完整性。- 通过工具完成爬取文章内容、存入飞书多维表格等操作。
5. ## 快捷指令
设计快捷指令【发送文章URL】,快速添加文章URL进行处理。
开场白
使用开场白引导用户使用快捷指令。