顾乔芝士网

持续更新的前后端开发技术栈

行业智能体:发票内容识别并写入到飞书


1. 总体概述

1.1. 实现目标

上传发票,1秒搞定发票整理,飞书自动录入

1.2. 工作流整体预览

2. 实现步骤

2.1. 工作流设计

01 登录coze平台

02 创作工作流

03 进入工作流设计器

04 链接读取插件识别发票内容

05 大模型提取发票字段对应的数据

06 整理数据写入飞书

2.2. 工作流试运行

3. 智能体工作流源码

{"type":"
coze-workflow-clipboard-data","source":{"workflowId":"7522024306194595875","flowMode":0,"spaceId":"7517160807886077962","isDouyin":false,"host":"www.coze.cn"},"json":{"nodes":[{"id":"136788","type":"4","meta":{"position":{"x":411.62883219166025,"y":-34.96977349063923}},"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":"1号员工:识别发票内容"},"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"}],"batch":{"batchEnable":true,"batchSize":100,"concurrentSize":10,"inputLists":[{"name":"item1","input":{"type":"list","schema":{"type":"string","assistType":1},"value":{"type":"ref","content":{"source":"block-output","blockID":"100001","name":"files"},"rawMeta":{"type":105}}}}]},"inputParameters":[{"name":"url","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"136788","name":"item1"},"rawMeta":{"type":1}}}}],"settingOnError":{"processType":1,"timeoutMs":180000,"retryTimes":0}},"outputs":[{"type":"list","name":"outputList","schema":{"type":"object","schema":[{"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":"错误信息"},{"type":"string","name":"error_code","required":false,"description":"错误码"}]}}]},"_temp":{"bounds":{"x":231.62883219166025,"y":-34.96977349063923,"width":360,"height":112.2},"externalData":{"icon":"
https://lf6-appstore-sign.oceancloudapi.com/ocean-cloud-tos/plugin_icon/372098605791453_1733129140009182679_PnsFgsWuUu.png?lk3s=cd508e2b&x-expires=1754191696&x-signature=
f6uncmlefsGnsv%2Brp6SubkW%2FTWk%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":"data","required":false,"schema":[{"input":{},"name":"images","required":false,"schema":{"schema":[{"input":{},"name":"alt","required":false,"type":"string"},{"input":{},"name":"height","required":false,"type":"integer"},{"input":{},"name":"title","required":false,"type":"string"},{"input":{},"name":"url","required":false,"type":"string"},{"input":{},"name":"width","required":false,"type":"integer"}],"type":"object"},"type":"list"},{"input":{},"name":"title","required":false,"type":"string"},{"input":{},"name":"content","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"},{"description":"错误码","input":{},"name":"code","required":false,"type":"integer"}],"updateTime":1751599683,"channel_id":2,"latestVersionTs":"0","latestVersionName":"","versionName":"","description":"当你需要获取网页、pdf、doc、docx、xlsx、csv、text 内容时,使用此工具,可以获取url链接下的标题和内容。由于个别网站自身站点限制,无法获取网页内容。","title":"LinkReaderPlugin","mainColor":"#CA61FF"}}},{"id":"184141","type":"3","meta":{"position":{"x":859.9689185866888,"y":-60.969773490639234}},"data":{"nodeMeta":{"description":"调用大语言模型,使用变量和提示词生成回复","icon":"
https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-LLM-v2.jpg","subTitle":"大模型","title":"2号员工:发票格式整理"},"inputs":{"inputParameters":[{"name":"input","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"184141","name":"item1.pdf_content"},"rawMeta":{"type":1}}}}],"llmParam":[{"name":"modelType","input":{"type":"integer","value":{"type":"literal","content":"1737521813","rawMeta":{"type":2}}}},{"name":"modleName","input":{"type":"string","value":{"type":"literal","content":"豆包·1.5·Pro·32k","rawMeta":{"type":1}}}},{"name":"generationDiversity","input":{"type":"string","value":{"type":"literal","content":"balance","rawMeta":{"type":1}}}},{"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":"spCurrentTime","input":{"type":"boolean","value":{"type":"literal","content":false,"rawMeta":{"type":3}}}},{"name":"spAntiLeak","input":{"type":"boolean","value":{"type":"literal","content":false,"rawMeta":{"type":3}}}},{"name":"prefixCache","input":{"type":"boolean","value":{"type":"literal","content":false,"rawMeta":{"type":3}}}},{"name":"responseFormat","input":{"type":"integer","value":{"type":"literal","content":"2","rawMeta":{"type":2}}}},{"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### 技能1:提取发票信息\n1.当用户上传发票图像时,仔细分析图像内容\n\n2.从发票图像中准确提取以下字段信息:\n-发票号码\n-发票代码\n-开票日期\n-发票类型\n-销售方名称\n-销售方纳税人识别号\n-购买方名称\n-购买方纳税人识别号\n-商品或服务名称\n-金额\n-税额\n-价税合计\n\n3.按照以下格式返回信息:{\n \"发票号码”:“XX\",\n \"发票代码\":\"XX\",\n \"开票日期\":\"XX\",\n \"发票类型\":\"XX\",\n \"销售方名称\":\"XX\",\n \"销售方纳税人识别号\":\"XX\",\n \"购买方名称\":\"XX\",\n \"购买方纳税人识别号\":\"XX\",\n \"商品或服务名称\":\"XX\",\n \"金额\":\"XX”,\n \"税额\":\"XX”,\n \"价税合计\":\"XX”\n}\n\n## 限制:\n-只回答与发票信息提取相关的内容,拒绝回答无关话题。\n-输出内容必须按照给定的格式组织,不能偏离框架要求。","rawMeta":{"type":1}}}},{"name":"stableSystemPrompt","input":{"type":"string","value":{"type":"literal","content":"","rawMeta":{"type":1}}}},{"name":"canContinue","input":{"type":"boolean","value":{"type":"literal","content":false,"rawMeta":{"type":3}}}}],"batch":{"batchEnable":true,"batchSize":100,"concurrentSize":10,"inputLists":[{"name":"item1","input":{"type":"list","schema":{"type":"object","schema":[{"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":"错误信息"},{"type":"string","name":"error_code","required":false,"description":"错误码"}]},"value":{"type":"ref","content":{"source":"block-output","blockID":"136788","name":"outputList"},"rawMeta":{"type":103}}}}]},"settingOnError":{"switch":false,"processType":1,"timeoutMs":180000,"retryTimes":0}},"outputs":[{"type":"list","name":"outputList","schema":{"type":"object","schema":[{"type":"string","name":"output"}]},"required":false}],"version":"3"},"_temp":{"bounds":{"x":679.9689185866888,"y":-60.969773490639234,"width":360,"height":164.1},"externalData":{"icon":"
https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-LLM-v2.jpg","description":"调用大语言模型,使用变量和提示词生成回复","title":"大模型","mainColor":"#5C62FF"}}},{"id":"196604","type":"28","meta":{"position":{"x":1467.2365495543431,"y":-32.46977349063923},"canvasPosition":{"x":1303.0295942715697,"y":219.62945949130457}},"data":{"inputs":{"batchSize":{"type":"integer","value":{"type":"literal","content":"100"}},"concurrentSize":{"type":"integer","value":{"type":"literal","content":"10"}},"inputParameters":[{"name":"item","input":{"type":"list","schema":{"type":"object","schema":[{"type":"string","name":"output"}]},"value":{"type":"ref","content":{"source":"block-output","blockID":"184141","name":"outputList"},"rawMeta":{"type":103}}}}]},"nodeMeta":{"description":"通过设定批量运行次数和逻辑,运行批处理体内的任务","icon":"
https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Batch-v2.jpg","mainColor":"#00B2B2","subTitle":"批处理","title":"3号经理:飞书数据安排"},"outputs":[]},"blocks":[{"id":"150383","type":"5","meta":{"position":{"x":-56.76358587469913,"y":69.71037034190104}},"data":{"nodeMeta":{"description":"编写代码,处理输入变量来生成返回值","icon":"
https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Code-v2.jpg","subTitle":"代码","title":"4号员工:整理飞书对标数据"},"inputs":{"inputParameters":[{"name":"input","input":{"type":"string","value":{"type":"ref","content":{"source":"block-output","blockID":"196604","name":"item.output"},"rawMeta":{"type":1}}}}],"code":"import json\n#在这里,您可以通过‘args’获取节点中的输入变量,并通过‘ret'输出结果#'args'和‘ret'已经被正确地注入到环境中\n#下面是一个示例,首先获取节点的全部输入参数params,其次获取其中参数名为‘input’的值:\n# params = args.params;# input =params.input;\n#下面是一个示例,输出一个包含多种数据类型的‘ret'对象:\n#ret:Output={\"name\":‘小明',\"hobbies\":[“看书”,“旅游”]};\n\nasync def main(args: Args) -> Output:\n # 获取输入参数\n input = json.loads(args.params.get('input',''))\n\n # 构建输出对象\n records = [{\n \"fields\":{\n \"购买方名称\":str(input.get('购买方名称','')),\n \"购买方纳税人识别号\":str(input.get('购买方纳税人识别号','')),\n \"销售方名称\":str(input.get('销售方名称','')),\n \"销售方纳税人识别号\":str(input.get('销售方纳税人识别号','')),\n \"商品或服务名称\":str(input.get('商品或服务名称','')),\n \"金额\":str(input.get('金额','')),\n \"税额\":str(input.get('税额','')),\n \"价税合计\":str(input.get('价税合计','')),\n \"发票号码\":str(input.get('发票号码','')),\n \"发票类型\":str(input.get('发票类型','')),\n \"发票代码\":str(input.get('发票代码','')),\n \"开票日期\":str(input.get('开票日期',''))\n }\n }]\n\n # 构建输出对象\n ret:Output = {\n \"records\":records\n }\n return ret","language":3,"settingOnError":{"switch":false,"processType":1,"timeoutMs":60000,"retryTimes":0}},"outputs":[{"type":"list","name":"records","schema":{"type":"object","schema":[{"type":"object","name":"fields","schema":[]}]},"required":false}]},"_temp":{"bounds":{"x":1066.2660083968706,"y":289.3398298332056,"width":360,"height":112.2},"externalData":{"icon":"
https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Code-v2.jpg","description":"编写代码,处理输入变量来生成返回值","title":"代码","mainColor":"#00B2B2"}}},{"id":"139075","type":"4","meta":{"position":{"x":385.17749644024593,"y":69.710370341901}},"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":"5号员工:写入表格"},"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":"ref","content":{"source":"block-output","blockID":"100001","name":"feishu_url"},"rawMeta":{"type":1}}}},{"name":"records","input":{"type":"list","schema":{"type":"object","schema":[{"type":"object","name":"fields","schema":[]}]},"value":{"type":"ref","content":{"source":"block-output","blockID":"150383","name":"records"},"rawMeta":{"type":103}}}}],"settingOnError":{"processType":1,"timeoutMs":180000,"retryTimes":0}},"outputs":[{"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"},{"type":"string","name":"msg","required":false,"description":"错误描述"}]},"_temp":{"bounds":{"x":1508.2070907118157,"y":289.33982983320556,"width":360,"height":112.2},"externalData":{"icon":"
https://lf6-appstore-sign.oceancloudapi.com/ocean-cloud-tos/plugin_icon/618387578815144_1720635554144262143_tbFVbqTqbp.png?lk3s=cd508e2b&x-expires=1754191696&x-signature=
FnbV5PLLBdKw7st5Hv5IWyQ0%2Fdc%3D","apiName":"add_records","pluginID":"7395047759797272603","pluginProductStatus":1,"pluginProductUnlistType":0,"pluginType":1,"spaceID":"7315016311652941851","inputs":[{"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":"多维表格的唯一标识符,支持输入文档 url。","input":{},"name":"app_token","required":true,"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":"一条记录的唯一标识 id","input":{},"name":"record_id","required":false,"type":"string"},{"description":"数据表的字段,即数据表的列,格式为 json 字符串。","input":{},"name":"fields","required":false,"type":"string"}],"type":"object"},"type":"list"}],"type":"object"},{"description":"链路追踪 id","input":{},"name":"log_id","required":false,"type":"string"}],"updateTime":1751599541,"channel_id":2,"latestVersionTs":"0","latestVersionName":"","versionName":"","description":"在多维表格数据表中新增多条记录,单次调用最多新增 500 条记录。","title":"add_records","mainColor":"#CA61FF"}}}],"edges":[{"sourceNodeID":"196604","targetNodeID":"150383","sourcePortID":"
batch-function-inline-output"},{"sourceNodeID":"150383","targetNodeID":"139075"},{"sourceNodeID":"139075","targetNodeID":"196604","targetPortID":"
batch-function-inline-input"}],"_temp":{"bounds":{"x":1287.2365495543431,"y":-32.46977349063923,"width":360,"height":112.2},"externalData":{"icon":"
https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Batch-v2.jpg","description":"通过设定批量运行次数和逻辑,运行批处理体内的任务","title":"批处理","mainColor":"#00B2B2"}}}],"edges":[{"sourceNodeID":"136788","targetNodeID":"184141"},{"sourceNodeID":"184141","targetNodeID":"196604"}]},"bounds":{"x":231.62883219166025,"y":-60.969773490639234,"width":1415.607717362683,"height":164.1}}


#智能体# #扣子工作流# #AI技术#

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言