华为云Flexus+DeepSeek征文|基于Dify构建智能票据信息识别助手

华为云Flexus+DeepSeek征文|基于Dify构建智能票据信息识别助手

  • 一、构建智能票据信息识别助手前言
  • 二、构建智能票据信息识别助手环境
    • 2.1 基于FlexusX实例的Dify平台
    • 2.2 基于MaaS的模型API商用服务
  • 三、构建智能票据信息识别助手实战
    • 3.1 配置Dify环境
    • 3.2 配置Dify工具
    • 3.3 创建智能票据信息识别助手
    • 3.4 使用智能票据信息识别助手
  • 四、总结

一、构建智能票据信息识别助手前言

在数字化转型的时代背景下,传统票据处理面临效率低下、易出错等痛点。基于Dify平台搭建的智能票据助手,通过AI实现多类型票据自动分类、关键信息精准提取及结构化归档,有效解决财务流程中的核心效率瓶颈。该方案显著提升数据处理准确性90%以上,降低人工成本70%,为企业财务自动化提供关键支撑。

华为FlexusX云服务器搭载昇腾芯片,提供强大异构算力与万级并发支撑;结合MaaS(Model-as-a-Service)平台,实现国产大模型的一站式部署、微调和推理加速,显著降低AI应用门槛。该组合可节省50%推理成本,提升3倍模型加载效率,为政务、金融等高安全场景提供全栈自主可控的AI基础设施保障。

在这里插入图片描述

二、构建智能票据信息识别助手环境

2.1 基于FlexusX实例的Dify平台

华为云FlexusX实例提供高性价比的云服务器,按需选择资源规格、支持自动扩展,减少资源闲置,优化成本投入,并且首创大模型QoS保障,智能全域调度,算力分配长稳态运行,一直加速一直快,用于搭建Dify-LLM应用开发平台。

Dify是一个能力丰富的开源AI应用开发平台,为大型语言模型(LLM)应用的开发而设计。它巧妙地结合了后端即服务(Backend as Service)和LLMOps的理念,提供了一套易用的界面和API,加速了开发者构建可扩展的生成式AI应用的过程。

参考:华为云Flexus+DeepSeek征文 | 基于FlexusX单机一键部署社区版Dify-LLM应用开发平台教程

2.2 基于MaaS的模型API商用服务

MaaS预置服务的商用服务为企业用户提供高性能、高可用的推理API服务,支持按Token用量计费的模式。该服务适用于需要商用级稳定性、更高调用频次和专业支持的场景。

参考:华为云Flexus+DeepSeek征文 | 基于ModelArts Studio开通和使用DeepSeek-V3/R1商用服务教程

在这里插入图片描述

三、构建智能票据信息识别助手实战

3.1 配置Dify环境

输入管理员的邮箱和密码,登录基于FlexusX部署好的Dify网站

在这里插入图片描述

将MaaS平台的模型服务接入Dify,这里我们选择的是DeepSeek R1商用服务,需要记住调用说明中的接口信息和 API Key 管理中API Key,若没有可以重新创建即可

在这里插入图片描述

配置Dify模型供应商:设置 - 模型供应商 - 找到OpenAI-API-compatible供应商并单击添加模型,在添加 OpenAI-API-compatible对话框,配置相关参数,然后单击保存

在这里插入图片描述

参数说明
模型类型选择LLM
模型名称填入模型名称。
API Key填入创建的API Key。
API Endpoint URL填入获取的MaaS服务的基础API地址,需要去掉地址尾部的“/chat/completions”后填入

3.2 配置Dify工具

通义千问

同义 Qwen 由阿里云开发,是一系列复杂的 LLM。它包括多个变体,例如用于文本处理的 Qwen、用于视觉语言任务的 Qwen-VL 和用于音频理解的 Qwen-Audio。这些模型以其令人印象深刻的规模而著称,旗舰 Qwen-72B 模型具有 720 亿个参数,并在超过 3 万亿个代币上进行了训练。

根据多个实战案例的测试结果,​Qwen/Qwen2-VL-72B-Instruct模型在中文票据识别任务中表现最佳。该模型特点:

  • 强大的视觉理解能力
  • 对中文票据格式有良好适配性
  • 支持结构化输出

打开设置 - 模型供应商 - 安装模型供应商,选择通义千问,进行安装

在这里插入图片描述

安装完成后,您需要从 阿里云 获取 API 密钥

在这里插入图片描述

并在 设置 -> Model Provider 中添加通义千问 API Key

在这里插入图片描述

刷新页面后就可以查看到 qwen2.5-vl-72b-instruct 状态已开启

在这里插入图片描述

3.3 创建智能票据信息识别助手

在 Dify - 工作室,创建空白应用,选择工作流,输入应用名称和图标,点击创建

在这里插入图片描述

删除其他默认节点,在开始节点添加一个文件类型(单文件)的输入变量,命名为 ticket_file,并设置为必填项,用于用户上传票据的图片文件

在这里插入图片描述

添加LLM节点,命名初步分类器,用于初步类型判断

在这里插入图片描述

模型: 选择配置的 qwen2.5-vl-72b-instruct 模型,它具备强大视觉理解能力。
提示词: 精心设计提示词,指令模型进行大类判断,并强制按指定格式输出。

#角色:你是一个票据识别小助理,请识别票据类型。
请分析用户上传的文件。
判断该文件主要内容属于以下哪类:
-增值税发票
-普通发票
-定额发票
-出租车发票
-火车票
- 其他或无法判断请严格按照以下格式仅返回一个词:
如果是增值税发票返回:Valueadded_invoice
如果是普通发票返回: Common_invoice
如果是定额发票返回: Quota_invoice
如果是出租车发票返回:Taxi_invoice
如果是火车票返回: Train_ticket
如果是其他或无法判断,返回: 未知发票类型,请重新上传。
#票据特征:
1. 增值税发票 (VAT Invoice)
整体布局与尺寸:
通常为横向矩形,尺寸相对较大且标准化(尤其是纸质票)。
分为增值税专用发票和增值税普通发票(包括电子普票),布局相似但有细微差别。
版面结构清晰,包含购买方、销售方信息区、货物或应税劳务/服务清单区、金额/税额/价税合计区等。表格化特征明显。
关键文字标识:
顶部显著位置有大字标题:“增值税专用发票”或“增值税普通发票”或“增值税电子普通发票”。
右上角通常有“发票代码”(10位或12位数字)和“发票号码”(8位数字)。
包含“购买方”、“销售方”、“货物或应税劳务、服务名称”、“规格型号”、“单位”、“数量”、“单价”、“金额”、“税率”、“税额”、“价税合计”等固定字段名称。
金额通常有大写(汉字数字)和小写(阿拉伯数字)两种形式。
独特视觉元素:
发票专用章: 通常在右下角或中间靠右位置,为红色椭圆形或圆形印章,包含纳税人名称和税号。这是非常关键的特征。
二维码: 电子发票和部分新版纸质发票左上角或特定区域有二维码,用于查验。
密码区: 专用发票通常有密码区(一串加密字符),普通发票没有。
背景/底纹: 纸质发票常有特定的浅色底纹或防伪图案(如“SW”字母暗纹等)。电子发票通常是白色背景的PDF样式。
颜色: 纸质发票的底纹可能有浅蓝、浅粉等,印章固定为红色。电子发票主要是黑白文字加红色电子签章。
2. 普通发票 (General Invoice - 非增值税类)
整体布局与尺寸:
种类繁多,尺寸和布局差异性很大,取决于行业和地区(如:通用机打发票、通用手工发票、行业性发票如门票、过路费发票等)。
可能是横向或纵向。
结构相对增值税发票可能更简单,不一定有严格的表格。
关键文字标识:
顶部通常有“XX省/市 通用机打发票”、“XX(行业)发票”等字样。
同样有“发票代码”和“发票号码”,通常在右上角或左上角。
包含付款方/购买方、收款方/销售方、项目名称、金额等基本信息。
金额通常有大写和小写。
独特视觉元素:
发票监制章: 通常在发票上方或特定位置,为椭圆形红色印章,标明“全国统一发票监制章”或“XX省/市 税务局监制”字样。
发票专用章: 收款单位加盖的红色印章,形状和位置不如增值税发票规范,但也是重要特征。
二维码: 部分新版机打普票也可能带有二维码。
防伪特征: 可能有特定底纹、防伪线等,但种类繁多。
颜色: 底色、印刷颜色多样,监制章和专用章为红色。
3. 定额发票 (Quota Invoice / Fixed-Amount Invoice)
整体布局与尺寸:
通常尺寸较小,形状多为长方形,横向或纵向都有。
版面设计极其简单。
经常是从一本票本上撕下来的,可能有撕票线/齿孔的痕迹。
关键文字标识:
最显著的特征是票面上印有固定面额的大写汉字数字(如:壹圆、伍圆、拾圆、贰拾圆、伍拾圆、壹佰圆等),通常字体很大。
可能包含“定额发票”字样。
有“发票代码”和“发票号码”(通常是连续印刷的号码)。
可能包含收款单位名称或印章。
独特视觉元素:
固定面额: 这是最核心的识别特征。
发票监制章: 通常较小,红色椭圆形。
收款单位印章或预印名称: 表明开票方。
序列号: 发票号码通常是流水号。
颜色: 不同面额的发票可能使用不同的颜色作为区分(类似纸币),例如10元是蓝色,50元是绿色等(具体颜色依地区和版本而定)。
4. 出租车发票 (Taxi Invoice)
整体布局与尺寸:
典型的窄长条形,横向打印。
通常是卷式机打发票,纸质较薄,多为热敏纸。
关键文字标识:
顶部通常有“XX市 出租汽车专用发票”或类似名称。
有“发票代码”和“发票号码”。
包含“日期”、“时间”(上车/下车时间)、“车号”、“单价”、“里程”、“等候时间”、“金额”等出租车行业特有的字段。
打印字体通常是点阵字体或热敏打印字体。
独特视觉元素:
卷票特征: 可能有打印偏移、字体间距不均等情况。热敏纸易变色或有划痕。
发票监制章: 通常是预印在卷筒纸上的,颜色可能是蓝色、黑色或红色。
无单独加盖的收款章: 一般只有预印的公司信息或Logo。
条形码/二维码: 部分地区出租车发票可能有。
颜色: 底纸通常是白色,预印文字/图案/监制章可能是蓝色、黑色或红色。打印内容为黑色。
5. 火车票 (Train Ticket)
整体布局与尺寸:
标准化的卡片式矩形。
主要有两种版式:
蓝色磁介质票: 较早版本,蓝色底纹。
红色/粉色纸质票: 新版,类似银行卡的稍厚纸质,粉红色底纹。
布局固定,信息区域划分清晰。
关键文字标识:
顶部有“中国铁路”字样和Logo。
包含“出发站”、“到达站”(字体较大)、“车次”、“日期”、“时间”、“座位号/铺位号”、“票价”(¥符号)、“姓名”、“身份证号码”(部分数字用*隐藏)。
底部有一串票号。
独特视觉元素:
底纹/颜色: 蓝色或粉红色是关键视觉区分。新版票有复杂防伪底纹。
二维码: 新版火车票右下角有二维码,包含加密信息。
序列号/票号: 底部或顶部的唯一编号。
特定字体: 使用铁路系统特定的字体。
磁条(背面): 蓝色车票背面有磁条(图像中不可见,但影响票的厚度和质感)。
颜色: 主色调为蓝色或粉红色,文字为黑色。

打开视觉 开关,并选择参数为开始节点的 ticket_file,这步的输出结果为一下6种可能:

如果是增值税发票返回:Valueadded_invoice
如果是普通发票返回: Common_invoice
如果是定额发票返回: Quota_invoice
如果是出租车发票返回:Taxi_invoice
如果是火车票返回: Train_ticket
如果是其他或无法判断,返回: 未知发票类型,请重新上传

在这里插入图片描述

添加条件节点,将初步分类器输出的票据类型输入进行判断,根据发票的类型再分别解析数据信息

在这里插入图片描述

依次为每种最终确定的票据类型(增值税发票、普通发票、出租车发票、火车票)分别创建一个 LLM 节点,用于信息提取。若是未知,则直接结束节点输出内容即可

在这里插入图片描述

若是增值税发票,模型默认qwen2.5-vl-72b-instruct,开启视觉,添加参数为开始节点的 ticket_file ,此时关键的就是系统提示词,需要提取关键数据

为每个提取器节点设计高度定制化的提示词,明确告知模型正在处理的票据类型,列出需要提取的所有关键字段,并强制要求以包含处理状态(status)和错误信息(error_message)及置信区间的 JSON 格式输出。

  作为智能票据识别系统,请严格按以下要求处理增值税发票图像:**识别字段清单**1. 必填核心字段:- 发票代码(invoice_code)- 发票号码(invoice_number) - 开票日期(issue_date)(YYYY-MM-DD格式)- 校验码最后6位(check_code)- 购买方名称(buyer_name)及税号(buyer_tax_id)- 销售方名称(seller_name)及税号(seller_tax_id)- 价税合计(大写/小写)- 金额合计(不含税)- 税额合计2. 货物明细字段(可选):- 货物名称、规格型号、单位、数量- 单价、金额、税率、税额**置信度评估体系**1. 字段级置信度(0-100):▫ 90-100:OCR识别准确且通过逻辑校验(如日期格式、税号规则)▫ 70-89:OCR识别清晰但逻辑校验未完全通过▫ 50-69:OCR识别结果模糊但可辨认▫ 30-49:字段位置匹配但内容存疑▫ 0-29:未能有效识别2. 整体置信度(confidence_score):- 核心字段置信度的加权平均值(发票代码/号码/金额合计权重30%,其他字段10%)- <60分触发复核机制**数据校验规则**1. 必填字段任一置信度<70status=error2. 价税合计大写与小写金额不符 → status=error3. 合计金额*(1+税率)≠价税合计 → status=error4. 货物明细存在但缺少必要字段 → 清空items**输出规范**{"prompt": """**输出规范(优化版)**```json{"status": "success|error","data": {"confidence_score": 0-100, 🌟 整体置信区间"core_fields": { 🌟 必填字段强化"invoice_code": "str","invoice_number": "str","issue_date": "YYYY-MM-DD","check_code": "str","buyer_info": {"name": "str","tax_id": "str"},"seller_info": {"name": "str","tax_id": "str"},"total_amounts": {"tax_included_upper": "str","tax_included_lower": "float","amount_without_tax": "float","tax_amount": "float"}},"items": [] || null},"error_message": "string" || null}

在这里插入图片描述

若是普通发票,提示词参考如下


作为财税票据智能处理引擎,请按以下规则精确处理普通发票影像:
**字段识别规范**
1. 必填核心字段:- 发票代码(invoice_code)[12位数字]- 发票号码(invoice_number)- 机打号码(machine_print_number)- 机器编号(machine_id)- 销售方信息(seller_info): {"name": "销售方名称","tax_id": "纳税人识别号"}- 购买方信息(buyer_info): {"name": "购买方名称","tax_id": "纳税人识别号"}- 开票日期(issue_date)[ISO 8601格式]- 收款员(cashier)- 金额合计(total_amount): {"upper_case": "大写金额","lower_case": 小写数值}- 校验码(check_code)2. 明细字段:- 项目(items)[数组结构]: {"name": "商品/服务名称","unit_price": 单价,"quantity": 数量,"amount": 金额}**置信度评估机制**
| 置信区间 | 判定标准                              | 处理措施          |
|----------|-------------------------------------|-------------------|
| 90-100   | OCR识别准确且通过格式校验            | 直接入库          |
| 70-89    | OCR识别清晰但部分字段格式存疑        | 标记可自动修正     |
| 50-69    | 关键字段模糊但可推测                 | 需人工复核        |
| 0-49     | 关键字段识别失败                     | 拒绝处理          |**数据校验规则**
1. 核心字段置信度<70status=error
2. 大小写金额差异>0.01status=error
3. 票据日期早于2017-01-01 → 强制人工复核
4. 商品明细存在但缺少必要字段 → 清空items数组**输出结构**
```json
{"status": "success|error","data": {"confidence_score": 0-100,"core_fields": {"invoice_code": {"value": "044002000111", "confidence": 95},"invoice_number": {"value": "02568336", "confidence": 92},"machine_print_number": {"value": "GD20230715001", "confidence": 88},"machine_id": {"value": "A1B2C3D4", "confidence": 85},"seller_info": {"name": {"value": "XX商贸有限公司", "confidence": 90},"tax_id": {"value": "91440101MA5CXXXXXX", "confidence": 93}},"issue_date": {"value": "2023-07-15", "confidence": 95},"check_code": {"value": "ABCD1234", "confidence": 82}},"transaction_details": {"total_amount": {"upper_case": {"value": "伍仟叁佰元整", "confidence": 88},"lower_case": {"value": 5300.00, "confidence": 90}},"items": [{"name": {"value": "办公桌椅", "confidence": 85},"unit_price": {"value": 1200.00, "confidence": 88},"quantity": {"value": 4, "confidence": 90},"amount": {"value": 4800.00,

在这里插入图片描述

若是定额发票,提示词参考如下

{"prompt": """
作为定额发票智能识别引擎,请严格遵循以下处理规范:**核心识别要素**
1. 必填字段(置信度阈值75):- 发票代码(invoice_code)[12位数字]- 发票号码(invoice_number)[8位连续数字]- 票面金额(amount){"fixed_value": "定额数值(如伍元/拾元整)","machine_print": "打印金额(¥X.00)"}2. 辅助验证字段:- 发票监制章(stamp)[省税务局字样]- 发票版本号(version_code)[票面底部编码]**置信度矩阵**
| 置信区间 | 判别标准                  | 处理策略                |
|----------|-------------------------|-----------------------|
| 90-100   | 票面完整&格式合规        | 自动归档               |
| 75-89    | 关键字段需二次校验        | 触发防伪校验API        |
| 50-74    | 存在局部缺损/污染        | 启动图像增强流程       |
| 0-49     | 无法识别有效票据要素      | 拒绝处理               |**智能校验体系**
1. 双重金额验证:▫️ 定额文字与打印金额逻辑匹配(如"伍元整"对应¥5.00)▫️ 金额数值应符合定额发票标准面值(1/5/10/20/50/100元)2. 代码规则校验:```regex/^[0-9]{12}$/  //发票代码正则/^[0-9]{8}$/    //发票号码正则
**输出结构**
{"status": "valid|invalid","certification": {"confidence_level": 88,"core_data": {"invoice_code": {"value": "144031900111", "confidence": 92,"validation": "格式校验通过"},"invoice_number": {"value": "02568336", "confidence": 85,"warning": ["号码边框缺损"]},"amount_info": {"fixed_value": {"text": "拾元整", "confidence": 90},"machine_print": {"value": 10.00, "confidence": 88},"consistency_check": "通过"}}},"security_features": {"ink_verification": "温变特征有效","microtext_status": "缩微文字识别成功"}
}

在这里插入图片描述

若是出租车发票,提示词参考如下

作为出租车发票智能识别系统,请严格按以下要求执行:**结构化字段要求**
1. 必填核心字段:- 发票代码(invoice_code)- 发票号码(invoice_number) - 运营单位(company)- 车号(vehicle_number)- 工号(driver_id) - 日期(date)(YYYY-MM-DD)- 时间(time)(HH:MM)- 单价(元/公里)(unit_price)- 里程(mileage)- 等候时间(waiting_time)- 总金额(total_amount)**置信度计算规则**
采用字段级数值加权计算:
⎔ 发票代码/号码/总金额(权重30%)
⎔ 日期/时间/里程(权重20%)
⎔ 其他字段(权重10%)
█ 总置信度<60时自动触发人工复核**多维校验规则** 
1. 硬性校验(触发error): - 总金额 ≠ 起步价 + 单价×里程 + 等候费×时长- 时间格式异常(如'14点30分'→应转换HH:MM)- 车牌号缺失地区代码(如'沪A12345'→补全省份前缀)2. 智能修正:▫️ 日期分离:识别到文本'2023年12月05日'转换为2023-12-05▫️ 时间格式:1430 → 14:30▫️ 金额补位:识别到"廿五元"自动转换25.00元**结构化输出要求**
必须输出严格JSON格式:
{"status": "success","data": {"confidence_score": 82,"core_fields": {"invoice_code": "144231999111","invoice_number": "02471572","issue_date": "2023-08-16","check_code": "6B63E5D89","buyer_info": {"name": "上海智明科技有限公司","tax_id": "91310115MA7ADYXW2R"},"seller_info": {"name": "上海申信出租车有限公司","tax_id": "91310116MA7ADYX456"},"total_amounts": {"tax_included_upper": "壹佰玖拾捌元整","tax_included_lower": 198.00,"amount_without_tax": 175.22,"tax_amount": 22.78}},"items": null},"error_message": null
}

在这里插入图片描述

若是火车发票,提示词参考如下


作为火车票智能识别系统,请严格按以下规范执行:\n\n**结构化字段要求**\n1. 必填核心字段:\n   - 始发站(departure_station)\n   - 终点站(arrival_station)\n   - 车次(train_number)\n   - 出发时间(departure_time)(YYYY-MM-DD HH:mm)\n   - 票价(ticket_price)\n   - 身份证号(id_number)\n   - 姓名(passenger_name)\n   - 座位号(seat_number)\n   - 席别(seat_class)\n\n**置信度计算规则**\n采用多维加权算法:\n⎔ 车次/身份证号/票价(权重35%)\n⎔ 出发时间/车站信息(权重30%)\n⎔ 其他字段(权重15%)\n█ 总置信度<60时自动标记异常票据\n\n**多维校验规则**\n1. 硬性校验(触发error):\n   - 车次格式不符合「字母+数字」编码规则(如G123/A25)\n   - 身份证号码不符合GB11643-1999标准\n   - 出发时间无法转换为有效时间戳\n\n2. 智能修正:\n   ▫️ 时间标准化:识别到「2024年3月15日08:15」→2024-03-15 08:15\n   ▫️ 金额转换:「伍佰伍拾叁元」→553.00\n   ▫️ 车站补全:「北京南」→「北京南站」\n\n**异常处理示例**\n```json\n{\n  \"status\": \"error\",\n  \"data\": {\n    \"confidence_score\": 48,\n    \"core_fields\": {\n      \"车次\": \"Z5X\",\n      \"身份证号\": \"31010519901301123\"\n    }\n  },\n  \"error_message\": \"车次编码异常|身份证校验位缺失\"\n}\n```\n\n**扩展能力**\n▨ 支持电子客票二维码二值化解析\n▨ 自动识别红票/蓝票/电子票版本差异"
输出规范:
{"status": "error","data": {"confidence_score": 52,"core_fields": {"始发站": "北京南站","终点站": "上海虹桥站","车次": "G12X",  // 非法车次编码"出发时间": "2024-13-32 25:61",  // 非法时间格式"票价": 0.0,"身份证号": "31010519900101123",  // 缺校验位"姓名": ""}},"error_message": "车次编码校验失败|身份证校验位缺失|出发时间格式异常"
}

在这里插入图片描述

最后配置“结束”节点,定义最终输出变量,目标是形成一个包含所有必要信息(识别出的类型、提取数据或错误信息)的统一结构

在这里插入图片描述

测试工作流,可以使用大量、多样化的真实票据样本进行测试,或者百度下载相关类的票据进行测试

在这里插入图片描述

上传一张火车票点击开始运行

在这里插入图片描述

先输出火车票类型

在这里插入图片描述

再输出完整的票据信息,如出发站、到达站、火车编号等信息,识别准确,提取的信息也很全面

在这里插入图片描述

再测试一张定额发票,只要类型输出,没有具体信息输出,查看运行详情显示模型输出内容为空,所以还是有待优化提示词的。

{"text": null
}

在这里插入图片描述

测试完成就可以发布更新到探索页面了,发布后选择运行就可以获得一个在线运行的工作流的网页!

3.4 使用智能票据信息识别助手

在探索 - 智能票据信息识别助手中开启新对话

在这里插入图片描述

上传一张增值税发票,点击运行,能够很快输出票据类型 Valueadded_invoice

在这里插入图片描述

接着又完整输出票据信息,识别可靠性比较高

在这里插入图片描述

可以参考增值税发票的原图和输出的数据对比下

在这里插入图片描述

{"status": "success","data": {"confidence_score": 92,"core_fields": {"invoice_code": "012002000511","invoice_number": "48576409","issue_date": "2021-06-05","check_code": "45091","buyer_info": {"name": "陕西能源电力运营有限公司","tax_id": "91610132MA6UQ1KA9H"},"seller_info": {"name": "去哪儿网(天津)国际旅行社有限公司","tax_id": "91120222300429132L"},"total_amounts": {"tax_included_upper": "柒佰贰拾叁圆整","tax_included_lower": 723.00,"amount_without_tax": 682.08,"tax_amount": 40.92}},"items": [{"name": "经济代理服务*机票款","specification": "","unit": "次","quantity": 1,"unit_price": 599.05660377,"amount": 599.06,"rate": 6,"tax": 35.94},{"name": "经济代理服务*代理服务费","specification": "","unit": "次","quantity": 1,"unit_price": 83.01886792,"amount": 83.02,"rate": 6,"tax": 4.98}]},"error_message": null
}

再输出一张无关发票的图片,一张报纸图片,能够排除无关票据,并输出·未知发票类型,请重新上传。

在这里插入图片描述

四、总结

基于Dify+DeepSeek搭建股票分析Agent的实践,深刻体会到低代码平台与大模型结合的高效性:通过可视化工作流编排和提示词工程,快速整合实时行情、技术指标与财务数据,实现自然语言交互式分析。DeepSeek-R1的推理能力与Dify的工具调用机制完美协同,将专业金融分析转化为普惠工具,显著降低散户使用门槛。过程中需注意数据源稳定性与模型幻觉风险,但整体验证了AI Agent在垂直领域的落地潜力。

Flexus云服务器X实例采用了柔性算力进行性能QoS保障,可以在绝大多数时间提供接近独享实例的性能QoS保障,但在极少时间内仍然存在性能波动的可能,为了满足对业务性能稳定性要求苛刻的场景需要,Flexus云服务器X实例推出了性能模式。开启性能模式后,Flexus云服务器X实例采取底层物理绑核技术,提供极致稳定的QoS保障能力,您可以获得非常稳定的性能保障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85950.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实例题:基于联邦学习的隐私保护 AI 系统(分布式学习、隐私计算)

目录 Python实例题 题目 问题描述 解题思路 关键代码框架 难点分析 扩展方向 Python实例题 题目 基于联邦学习的隐私保护 AI 系统&#xff08;分布式学习、隐私计算&#xff09; 问题描述 开发一个基于联邦学习的隐私保护 AI 系统&#xff0c;包含以下功能&#xff…

点点(小红书AI搜索):生活场景的智能搜索助手

1. 产品概述 点点是小红书于2024年12月正式推出的AI搜索助手&#xff0c;由上海生动诗章科技有限公司开发&#xff0c;定位为生活场景搜索工具&#xff0c;聚焦交通、美食、旅游、购物等日常需求&#xff0c;旨在通过即时信息和真实用户分享帮助用户“精准避坑”。 核心特点 …

软件工程概述:核心概念、模型与方法全解析

一、软件工程定义与诞生背景 定义 将系统化、规范化、可度量的方法应用于软件开发、运行和维护的过程&#xff08;IEEE标准&#xff09;。 核心目标&#xff1a;在可控成本下&#xff0c;生产高质量、可维护、满足需求的软件产品。 - 软件开发&#xff1a;需求 → 设计 → 编码…

LVS+Keepalived+nginx

LVSKeepalivednginx 1 安装依赖 sudo yum install ipvsadm keepalived -y 查询是否安装成功 rpm -q -a keepalived 2 配置虚拟IP并安装ipvsadm /etc/sysconfig/network-scripts cp ifcfg-ens33 ifcfg-ens33:1 修改里面配置文件 TYPE"Ethernet" PROXY_METHOD"n…

数据分析实操篇:京东淘宝商品实时数据获取与分析

在电商行业蓬勃发展的当下&#xff0c;数据已然成为驱动决策的核心要素。无论是商家精准把控市场需求、制定营销策略&#xff0c;还是消费者做出明智的购物抉择&#xff0c;都离不开对电商平台商品数据的深入剖析。京东和淘宝作为国内电商领域的两大巨头&#xff0c;汇聚了海量…

微信小程序扫码添加音频播放报错{errCode:10001, errMsg:“errCode:602,err:error,not found param“}

主要流程代码如下&#xff1a; let innerAudioContext wx.createInnerAudioContext() // 提示音 innerAudioContext.autoplay true innerAudioContext.src ../images/scan.mp3 innerAudioContext.onError(function(res){ console.log(onError 开始监听:,res) }) innerAudi…

SVN合并指南,从dev合并部分revision到release指南

dev合并到release 1.进入release的工作区&#xff0c;右击选择Merge 点击Next 2.确认merge来源分支和当前分支 点击Show Log&#xff0c;挑选需要合并的单号 3. 选择需要合并的commit 注意点击Hide no-mergeable revisions&#xff0c;来隐藏掉已经合并的commit 4.选择需…

《计算机网络:自顶向下方法(第8版)》Chapter 8 课后题

复习题 8.1节 R1. 机密性是攻击者截获原始明文消息的密文加密后无法确定原始明文的属性。消息完整性是接收方可以检测发送的消息&#xff08;无论是否加密&#xff09;在传输过程中是否又被更改的属性。 因此&#xff0c;这两者是不同的概念&#xff0c;可以独立存在。一个在传…

抖音小程序开发:ttml和传统html的区别

1 传统 Web 中 HTML 的角色 HyperText Markup Language&#xff1a;用来描述页面结构——标题、段落、图片、表单…… 只负责“放什么元素、排在什么层级”&#xff0c;真正的行为靠 JS&#xff0c;视觉靠 CSS。 <!-- 传统网页&#xff1a;结构 class 交给 CSS --> &…

Unity2D 街机风太空射击游戏 学习记录 #12QFramework引入

概述 这是一款基于Unity引擎开发的2D街机风太空射击游戏&#xff0c;笔者并不是游戏开发人&#xff0c;作者是siki学院的凉鞋老师。 笔者只是学习项目&#xff0c;记录学习&#xff0c;同时也想帮助他人更好的学习这个项目 作者会记录学习这一期用到的知识&#xff0c;和一些…

Proteus如何创建第一个工程

视频教程&#xff1a; [最详细]Proteus新建第一个工程与快捷键设置 操作步骤 1打开Proteus后&#xff0c;左上角点击文件然后点击新建工程。 2新建工程后&#xff0c;弹出以下界面&#xff0c;选择修改自己的工程名字&#xff0c;&#xff08;工程名的后缀“.pdspsj”不要修改…

现代浏览器剪贴板操作指南 + 示例页面 navigator.clipboard 详解与实战

在 Web 开发中&#xff0c;复制文本到剪贴板是一个常见需求。多年来&#xff0c;过去我们依赖 Flash 或 document.execCommand(copy) 来实现。它曾是我们的得力助手&#xff0c;但这些方法存在兼容性差、安全性低的问题。现已经被正式标记为废弃&#xff08;Deprecated&#xf…

OpenCV-Python学习笔记

2 OpenCV中的Gui特性 2-1 图像入门 目标 学习如何读取图像、显示图像和保存图像 学习api函数&#xff1a;cv.imread()、cv.imshow()、cv.imwrite() 学习使用Matplotlib显示图像 使用OpenCV 读取图像 在OpenCV中&#xff0c;使用函数cv.imread()读取图像。 img cv.imread(le…

2025年- H87-Lc195--287.寻找重复数(技巧,二分查找OR动态规划)--Java版

1.题目描述 2.思路 3.代码实现 public class H287 {public int findDuplicate(int[] nums) {// 重复数字可能的最小值int min1;// 重复数字可能的最大值&#xff0c;数组长度为 n&#xff0c;数字范围是 [1, n-1]int maxnums.length-1;while(min<max) {// 防止溢出&#xf…

PVE使用ubuntu-cloud-24.img创建虚拟机并制作模板

前言 在使用pve时,虽然它已经可以克隆虚拟机,已经极大提升了创建虚拟机速度,但创建完成后,不可避免还是要配置下网络,因为服务器要使用静态IP,克隆出的机器需要重新设置新的IP地址,有没有连这一步都省了方法呢?有,就是Cloud-Init 创建虚拟机模板 1. 下载ubuntu-clo…

LLM增强检索---GraphRAG + LangGraph项目实战

专栏&#xff1a;大模型垂直应用技术​ ​​​​ 个人主页:云端筑梦狮 大模型应用落地亟需解决的核心问题有一个是&#xff1a;如何与私域数据交互。私域数据主要的问题是&#xff1a;需要有效地将企业数据整合进大语言模型中。由于大模型的上下文处理能力有限&#xff0c;一…

修改SSH端口实战

本次实战主要涉及SSH端口的修改和配置。首先&#xff0c;对master、slave1和slave2三台云主机的SSH配置文件进行修改&#xff0c;指定新的SSH端口&#xff0c;并重启SSH服务。接着&#xff0c;通过FinalShell工具修改连接端口&#xff0c;实现SSH连接到三台云主机。然后&#x…

PyTorch中的permute, transpose, view, reshape和flatten函数详解(已解决)

1.permute permute函数用于重新排列张量的维度。它接受一个元组作为参数&#xff0c;表示新的维度顺序。例如&#xff0c;如果我们有一个形状为(2, 3)的二维张量&#xff0c;我们可以使用permute函数将其维度重新排列为(3, 2)&#xff0c;如下所示&#xff1a; >>> …

开疆智能ModbusTCP转EtherCAT网关连接甘纳数据采集系统配置案例

本案例是通过开疆智能研发的ModbusTCP转EtherCAT网关连接ModbusTCP主站与甘纳数据采集系统的配置案例&#xff0c;具体配置如下。 配置过程 首先设置ModbusTCP主站&#xff0c;这里以信捷PLC为例 IP设定 要走Modbus-TCP协议&#xff0c;要把设备IP设在同一网段且地址不同&am…

Neo4j常用语法-path

在 Neo4j 中&#xff0c;Path&#xff08;路径&#xff09; 是连接两个或多个节点的关系序列&#xff0c;是图查询的核心概念之一。理解 Path 的用法对于复杂图分析至关重要 关键特性&#xff1a; 有向性&#xff1a;路径中的关系具有方向 可变长度&#xff1a;路径可以包含 0 …