基于 AI 实现阿里云的智能财务管家
新钛云服已累计为您分享844篇技术干货
为了解决传统账单处理中人工查询效率低下、响应速度慢及易出错等问题,同时顺应AI技术发展趋势,提升服务智能化水平。随着业务规模扩大和账单数据复杂度增加,人工处理已难以满足高效管理需求。我们想到通过AI技术,制作一个账单机器人,自动化完成账单查询与分析,节省人力成本,让用户快速获取准确信息,提升满意度。
流程图
上图为基于阿里云百炼实现账单机器人的完整流程。具体步骤如下:
用户通过私聊或者@飞书机器人的方式提出账单相关的问题。
计算巢AppFlow通过飞书接收消息事件触发连接流,将问题传递给大模型服务平台百炼。
大模型服务平台百炼利用其强大的AI能力生成相应的查询SQL语句。
生成的SQL语句被发送到函数计算(FC)服务,由FC 执行SQL查询,从SLS中获取所需的账单数据。
百炼平台根据返回的账单数据生成最终的答案。
答案通过计算巢 AppFlow 返回给飞书机器人。
最后,飞书机器人将答案呈现给用户。
注意:关于为什么从SLS里获取账单数据,请见新版成本管家可视化账单报表实践、阿里云多账号财务管理最佳实践
FC函数计算
点击https://fcnext.console.aliyun.com/cn-shanghai/functions此链接,在右侧菜单栏中选择“函数”,在函数界面上点击“创建函数”按钮。
选择“事件函数”,在基本设置里填写“函数名称”。在函数代码中,选择“内置运行时/Python/Python3.12”运行环境,代码上传方式暂时选择“使用示例代码”中的“Hello,world!示例”。高级配置里的请求处理程序变更为“index.main”,“时区”选择“Asia/Shanghai 北京时间”,“函数角色”选择“AliyunFcDefaultRole”,“允许访问 VPC”选择“否”,“允许函数默认网卡访问公网”选择“是”,“日志功能”选择启用,其他配置保持默认就行。完成上述配置后点击“创建按钮”。
1、百炼中只支持北京、杭州、上海、深圳地域的函数计算,故在创建函数时只能选择这些地域。
2、账单数据存储在华北6(乌兰察布)地域中,函数计算无法通过内网查询,所以函数计算必须要开公网。
3、开启日志功能,便于排查报错。
点击刚创建的函数,进行下一步配置。
菜单栏中选择“代码”,将下面的代码填写到index.py里(注意需要修改代码里的配置!)。完成后点击右上方的▷按钮。
from aliyun.log import LogClientfrom aliyun.log import *import logging,json,refrom datetime import datetimelogger = logging.getLogger()def datetime_to_timestamp(date_string, date_format="%Y-%m-%d %H:%M:%S"): dt = datetime.strptime(date_string, date_format) return int(dt.timestamp())def query_bill_logs(json_data): accessKeyId = "" #填写accessKeyId accessKey = "" #填写accessKey endpoint = "cn-wulanchabu.log.aliyuncs.com" #填写账单数据所在的endpoint project = "bill-analysis-xxxx" #填写账单数据所在的project logstore = "aliyun_bill" #填写账单数据所在的logstore client = LogClient(endpoint, accessKeyId, accessKey) query = json_data["query"] # from_time和to_time表示查询日志的时间范围,UNIX时间戳格式。 from_time = datetime_to_timestamp(json_data["from_time"]) to_time = datetime_to_timestamp(json_data["to_time"]) # query参数用于设置查询语句;line参数用于控制返回日志条数,line取值为3。 request = GetLogsRequest(project, logstore, from_time, to_time, '', query=query, line=3, offset=0, reverse=False) response = client.get_logs(request) # 查询结果。 log_res_list=[] for log in response.get_logs(): log_res = log.contents.items() log_res_list.append(dict(log_res)) return log_res_listdef main(event,context): data = event.decode('utf-8') logger.info("收到的数据:{}".format(data)) data=json.loads(data)["sql"] match = re.search(r'\{.*?\}', data,re.DOTALL) if match: json_res = json.loads(match.group(0)) # 查询日志 log_res=str(query_bill_logs(json_res)) log_res = json.dumps(log_res, ensure_ascii=False, indent=4) logger.info("查询到的数据:{}".format(log_res)) return log_res else: logger.info("未匹配到json") return "无法匹配到SQL"
在TERMINAL中执行下面的语句,通过控制台Web IDE终端安装依赖。完成后点击“部署代码”按钮,完成该函数的部署。
pip install -U aliyun-log-python-sdk -t .
部署完成后,需要测试一下,验证是否可以正常查询。在菜单栏中点击“测试”,填写测试名称和传参(传参可以参考下面的代码),完成后点击“测试”按钮。
{ "sql": "{\"from_time\":\"2025-01-01 00:00:00\",\"to_time\":\"2025-02-01 00:00:00\",\"query\":\"*|select round(coalesce(sum(PretaxAmount),0),3) from splititem_bill_transform\"}"}
如下图所示,即为执行成功。
大模型服务平台百炼
知识库
大模型缺乏私有知识,根据用户输入从外部信息源检索相关信息,然后将检索到的内容整合到用户输入中,从而帮助大模型生成更准确的回答。将账单相关数据引入专有知识库后,大模型就能准确回答账单方面的问题。
点击https://bailian.console.aliyun.com/?tab=app#/data-center此链接,
在左侧菜单栏中选择“应用数据”,选择“非结构化数据”,点击类目管理旁的“+”。
填写“目录名称”,完成后点击“确定”按钮。
选择刚创建的类目,点击右上角的“导入数据”按钮。
导入方式选择“本地上传”,将下面的文件《分账账单字段.xlsx》传入到百炼中,完成后点击确认。
《分账账单字段.xlsx》为分账账单各个字段的名称及解释,便于百炼生成SQL语句。
字段名称 | 字段类型 | 示例值 | 说明 |
__time__ | INTEGER | 1739721600 | 账单时间,Unix 时间戳,以秒为单位 |
instanceconfig | STRING | 地域:华东2(上海) | 实例详细配置 |
internetip | STRING | 139.122.22.22 | 公网IP地址 |
pretaxamount | DOUBLE | 0.01 | 应付金额,获取账单金额,一般就是指这个应付金额,保留2位小数 |
subscriptiontype | STRING | PayAsYouGo | 消费类型:Subscription:预付费;PayAsYouGo:后付费。 |
billingitem | STRING | ECS整机备份数量 | 计费项 |
pretaxgrossamount | DOUBLE | 0.033 | 原始金额 |
usage | DOUBLE | 1.0 | 使用量 |
splitbillingcycle | STRING | 2025-02 | 分账月 |
producttype | STRING | hbrpost | 产品类型 |
paymentamount | DOUBLE | 0.0 | 现金支付(通过账户余额或线上支付渠道直接支付的金额,信控用户包含使用退款账本支付的金额) |
listprice | DOUBLE | 0.033333 | 单价 |
splitbillingdate | STRING | 2025-02-17 | 账期 |
zone | STRING | cn-shanghai-g | 可用区 |
usageunit | STRING | 台 | 使用量单位 |
tag | STRING | key:environment value:prod; key:costcenter value:11111 | 标签 |
splitaccountname | STRING | 12@test.com | 分拆项所属账号名称 |
splititemid | STRING | xxx-oss | 分拆项ID |
item | STRING | SubscriptionOrder | 账单类型。包括: |
__source__ | STRING | splititem_bill | 分账账单 |
deductedbyprepaidcard | DOUBLE | 0.0 | 储值卡抵扣 |
commoditycode | STRING | rds | 商品 Code |
ownerid | STRING | 1888888883 | 子账号 AccountID(多账号代付场景) |
adjustamount | DOUBLE | 0.0 | 信用额度退款抵扣。 |
billingdate | STRING | 2025-02-23 | 账单日期,格式 YYYY-MM-DD |
deductedbycoupons | DOUBLE | 0.0 | 优惠券优惠金额 |
instanceid | STRING | rm-xxxxxxxx | 实例 ID |
serviceperiod | DOUBLE | 1.0 | 服务时长,单位:秒 |
splitaccountid | STRING | 122 | 分拆项所属账号 AccountID |
billingtype | STRING | 其它 | 计费方式 |
region | STRING | 华东2(上海) | 地域 |
intranetip | STRING | 172.168.0.200 | 内网 IP |
productcode | STRING | rds | 产品代码 |
outstandingamount | DOUBLE | 302.5 | 未结清金额 |
instancespec | STRING | mysql.x2.medium.2c | 实例规格 |
splitcommoditycode | STRING | snapshot | 分拆项商品 Code |
serviceperiodunit | STRING | 月 | 服务时长单位 |
splititemname | STRING | test | 分拆项名称 |
nickname | STRING | test | 实例昵称、实例名称 |
productname | STRING | 云数据库 RDS | 产品名称 |
currency | STRING | CNY | 币种:CNY、 USD、 JPY |
invoicediscount | DOUBLE | 247.5 | 优惠金额 |
productdetail | STRING | 关系型数据库RDS(包月) | 产品明细 |
resourcegroup | STRING | xxx Group | 资源组 |
deductedbycashcoupons | DOUBLE | 0.0 | 代金券抵扣 |
splitproductdetail | STRING | 云服务器ECS-快照 | 分拆项产品明细名称 |
listpriceunit | STRING | 元/台 | 单价单位 |
costunit | STRING | 未分配 | 财务单元 |
biztype | STRING | trusteeship | 业务类型 |
cashamount | DOUBLE | 0.0 | 现金支付(不包含信用额度退款抵扣) |
deductedbyresourcepackage | DOUBLE | 0.0 | 资源包抵扣 |
数据导入完成后,如下图所示:
在左侧菜单栏中选择“知识库”,点击右上角的“+ 创建知识库”。
填写“知识库名称”,数据类型选择“非结构化数据”,其他配置保持默认,完成后点击“下一步”按钮。
选择数据选择“选择类目”,类目选择刚创建的类目“阿里云账单机器人”,完成后点击“下一步”按钮。
其他配置保持默认,完成后点击“导入完成”按钮。
知识库创建完成后,如下图所示:
样例库
样例库功能作为百炼的FewShot能力,通过录入用户输入(Query)和期望的模型回复(Answer)作为样例信息源,在模型调用时根据用户输入,检索召回相关样例信息,以此作为输出参考,从而提高大模型的回答准确性,适用于问答等场景。
在左侧菜单栏中选择“组件管理”,在组件管理界面的顶部菜单中选择“样例库”,点击“样例库管理”旁的“+”。
填写“样例库名称”,导入方式选择“手动输入”,将下表数据填入到“样例示例”,完成后点击“确定”按钮。
样例库配置完成后,如下图所示:
应用
大模型具备强大的语言能力,但仍有一定的局限性,例如难以处理私有领域问题、获取最新信息、遵循固定流程,以及自动规划复杂项目。为此,阿里云百炼推出了三种大模型应用:智能体、工作流与智能体编排,增加了知识库检索、互联网搜索、工作流设计及智能体协作等功能,显著扩展了大模型的应用范围。下表说明三种大模型应用的简介及示例场景。
生成SQL
点击https://bailian.console.aliyun.com/?tab=app#/app-center此链接,
在左侧菜单栏中选择“应用管理”,在应用管理界面的右上角点击“+ 新增应用”按钮。
选择“智能体应用”,点击“立即创建 ↗”按钮。
选择“通义千问-Max”,提示词填“需要从用户的问题中梳理出要查询哪些信息,输出要查询数据的SQL。如果无法生成要查询的SQL则回复“抱歉,您的问题暂时无法回复,请联系工程师””,选择刚创建的知识库和样例库。完成后在右侧输入问题“查询2月阿里云花费金额”,点击发送按钮,查看回答是否如下图所示。若与下图答复一致,则点击右上角的“发布”按钮。
发布完成后,会在刚创建的智能体应右上角显示“已发布”。注意:未发布会导致下面的流程出现问题!
查询账单
在应用管理界面的右上角点击“+ 新增应用”。
选择“工作流应用”,点击“创建任务型工作流 ↗”按钮。
按下图所示进行配置,引用上文创建的FC函数查询账单数据,结合用户的问题和查到的账单数据,通过大模型组织答案。
完成配置后,点击“测试”按钮,输入query:“查询1月阿里云花费金额”,sql:“{"from_time":"2025-01-01 00:00:00","to_time":"2025-02-01 00:00:00","query":"*|select round(coalesce(sum(PretaxAmount),0),3) from splititem_bill_transform"}”。完成后点击“执行”按钮。
若结果如下图所示,则说明配置成功。
更改应用名称,点击右上角的“发布”按钮。
发布完成后如下图所示:
账单机器人
在应用管理界面的右上角点击“+ 新增应用”。
选择“智能体编排应用”,点击“创建智能体编排应用↗”按钮。
按下图所示进行配置,将刚创建的两个应用串联起来,先根据用户的问题生成查询SQL,再执行SQL获取账单数据,最终根据用户的问题组织答案。
注意:查询账单工作流配置,要输入两个变量,一个是用户的问题,一个是智能体应用输出的SQL。
完成后点击“测试”按钮,输入query:“查询2月阿里云花费金额”,点击“执行”按钮。
若运行结果如下图所示,则说明执行成功。成功后点击“发布”按钮。
发布完成后如下图所示:
KPI-Key
点击https://bailian.console.aliyun.com/?tab=app#/api-key此链接,在左侧菜单栏中选择“API-Key”,点击API Key管理界面右上角的“创建我的API-KEY”按钮。
选择应用所在的归属业务空间,完成后点击“确定”按钮。
API-Key创建完成后,如下图所示:
飞书应用
点击https://open.feishu.cn/app此链接,在企业自建应用界面,点击“创建企业自建应用”按钮。
填写应用名称和应用描述,完成后点击“创建”按钮。
在左侧菜单栏中选择“添加应用能力”,找到机器人,点击“+添加”按钮。
在左侧菜单栏中选择“事件与回调”,选择“加密策略”,复制Encrypt Key和Verification Token,用于下文配置计算巢AppFlow。
在左侧菜单栏中选择“事件与回调”,在事件配置界面,订阅方式选择“将事件发送至 开发者服务器”,填写请求地址(这个请求地址在下文计算巢AppFlow配置中),完成后点击“保存”按钮。点击“添加事件”按钮,添加“用户进入与机器人的会话”、“接收消息”、“机器人自定义菜单事件”这三个事件。
在回调配置界面,像事件配置一样,配置订阅方式,并添加“卡片回传交互”回调。
计算巢AppFlow配置完成后会得到IP白名单,将这些IP配置到飞书应用的IP白名单中。
计算巢AppFlow
计算巢AppFlow通过界面化快速编排的方式,组合多个连接器的触发事件和执行动作,从而连接多个应用系统,实现业务流程自动化。使用计算巢AppFlow对接飞书和百炼,无需用户写代码实现,而且计算巢AppFlow是免费的。
点击
https://appflow.console.aliyun.com/vendor/cnhangzhou/flowTemplate/manage
此链接,在左侧菜单栏中选择“模板中心”,找到“飞书自建应用 X 阿里云百炼”。
点击“立即使用”按钮。
点击“添加新凭证”创建飞书自建应用机器人凭证。
填写“凭证名称”、“App ID”、“App Secret”、“AES Key”、“token”,这些在飞书应用中可以找到。底下的“IP白名单”添加到飞书应用白名单中。完成后点击“确定”按钮。
点击“添加新凭证”创建阿里云百炼凭证。
填写“凭证名称”和“API-KEY”(请见上文创建API-Key)。完成后点击“确定”按钮,再点击“下一步”按钮。
填写“应用Id”(名为“账单机器人”的百炼智能体编排应用Id ),完成后点击“下一步”按钮。
填写“连接流名称”和“连接流描述”,完成后点击“下一步”按钮。
这个WebhookUrl地址,即为上文飞书应用配置事件与回调的请求地址。点击“发布”按钮。
飞 书
在飞书App左侧菜单栏中选择“工作台”,点击右上角“⚙设置”。
在我的工作台中,点击右上角的“添加应用”按钮,将刚创建的“阿里云账单机器人”添加进来。
点击进入阿里云账单机器人。
发送“查询1月阿里云花费金额”,若机器人回答如下图所示,说明配置成功了。
小 结
至此,阿里云账单机器人配置完成。此外,借助AI技术的智能分析能力,机器人可进一步挖掘账单数据价值,优化资源配置,助力企业降本增效,适应数字化转型需求。
如有相关问题,请在文章后面给小编留言,小编安排作者第一时间和您联系,为您答疑解惑。推荐阅读
推荐视频
相关文章:

基于 AI 实现阿里云的智能财务管家
新钛云服已累计为您分享844篇技术干货 为了解决传统账单处理中人工查询效率低下、响应速度慢及易出错等问题,同时顺应AI技术发展趋势,提升服务智能化水平。随着业务规模扩大和账单数据复杂度增加,人工处理已难以满足高效管理需求。我们想到通…...

【成品论文】2025年电工杯数学建模竞赛B题50页保奖成品论文+matlab/python代码+数据集等(后续会更新)
文末获取资料 多约束条件下城市垃圾分类运输调度问题 摘要 随着城市化进程加快,城市生活垃圾产量持续增长,垃圾分类运输已成为城市环境治理的关键环节。本文针对城市垃圾分类运输中的路径优化与调度问题,综合考虑不同垃圾类型、车辆载重约束…...
IIS文件上传漏洞绕过:深入解析与高效防御
目录 一、IIS解析漏洞的底层逻辑 二、绕过技巧:从基础到高级 1. 分号截断与路径拼接(经典手法) 2. 目录解析漏洞利用 3. 操作系统特性与字符混淆 4. 扩展名黑名单绕过 5. 结合其他…...

【node.js】数据库与存储
个人主页:Guiat 归属专栏:node.js 文章目录 1. 数据库概述1.1 数据库在Node.js中的作用1.2 Node.js支持的数据库类型 2. 关系型数据库集成2.1 MySQL与Node.js2.1.1 安装MySQL驱动2.1.2 建立连接2.1.3 执行CRUD操作 2.2 PostgreSQL与Node.js2.2.1 安装pg驱…...

leetcode2081. k 镜像数字的和-hard
1 题目:k 镜像数字的和 官方标定难度:难 一个 k 镜像数字 指的是一个在十进制和 k 进制下从前往后读和从后往前读都一样的 没有前导 0 的 正 整数。 比方说,9 是一个 2 镜像数字。9 在十进制下为 9 ,二进制下为 1001 ÿ…...

Halcon 单目相机标定测量
文章目录 双面相机标定链接一维测量gen_cam_par_area_scan_division -为区域扫描相机生成一个相机参数元组,该相机的变形由分割模型建模。(相机自带参数)create_calib_data -创建Halcon 数据标定模型set_calib_data_cam_param -设置校准数据模型中摄像机的类型和初始…...
git子模块--常见操作
克隆仓库 标准化克隆流程 基本命令git clone <父仓库远程URL> [本地文件名] cd <本地仓库名> git submodule init # 初始化子模块配置 git submodule update # 拉取子模块内容一次性完成克隆和初始化流程 基本命令git clone --recurse-submodules <父仓库远…...
解决SQL Server SQL语句性能问题(9)——创建和更新统计对象
9.3. 创建和更新统计对象 与Oracle中的统计数据相对应,SQL Server中的统计对象,本专栏6.3节中也提到,数据库CBO依赖其为SQL语句产生最合适、最高效的查询计划。数据库CBO结合各类统计对象,并利用其内置的、复杂而高级的模型与算法,尽可能的为SQL语句计算和评估出所有候选…...

数据被泄露了怎么办?
数据泄露是严重的网络安全事件,需立即采取行动以降低风险。以下是关键应对步骤: 1. 确认泄露范围 核实泄露内容:确定泄露的是密码、财务信息、身份证号还是其他敏感数据。 评估来源:检查是个人设备被入侵、某平台漏洞,…...

绩效管理缺乏数据支持,如何提高客观性?
要提高绩效管理的客观性,应从建立科学的指标体系、加强数据采集手段、引入自动化绩效工具、强化过程记录机制、定期评估与反馈优化五大方面着手。其中,建立科学的指标体系是关键基础。没有数据支撑的绩效体系,往往容易陷入主观打分、个人偏见…...

unity控制相机围绕物体旋转移动
记录一下控制相机围绕物体旋转与移动的脚本,相机操作思路分为两块,一部分为旋转,一部分为移动,旋转是根据当前center中心点的坐标,根据距离设置与默认的旋转进行位置移动,移动是根据相机的左右和前后进行计…...

线性代数:AI大模型的数学基石
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...
【C/C++】从零开始掌握Kafka
文章目录 从零开始掌握Kafka一、Kafka 基础知识理解(理论)1. 核心组件与架构2. 重点概念解析 二、Kafka 面试重点知识梳理三、C 使用 Kafka 的实践(librdkafka)1. librdkafka 简介2. 安装 librdkafka 四、实战:高吞吐生…...
02_redis分布式锁原理
文章目录 一、redis如何实现分布式锁1. 使用 SETNX 命令2. 设置过期时间3. 释放锁4. 注意事项5. 示例代码 二、Java中分布式锁如何设置超时时间1. Redis分布式锁2. 基于Zookeeper的分布式锁3. 基于数据库的分布式锁注意事项 一、redis如何实现分布式锁 Redis 实现分布式锁是一…...

简单血条于小怪攻击模板
创建一个2d正方形(9-Sliced)命名为Player,在Player下面新建一个画布(Canvas)命名为PlayerHealthUI,在画布下面新建一个滑动条(Slider)命名为HealthBar 把PlayerHealthUI脚本挂载到Pl…...
Win11 系统登入时绑定微软邮箱导致用户名欠缺
Win11 系统登入时绑定微软邮箱导致用户名欠缺 解决思路 -> 解绑当前微软邮箱和用户名 -> 断网离线建立本地账户 -> 设置本地账户为Admin权限 -> 注销当前账户,登入新建的用户 -> 联网绑定微软邮箱 -> 删除旧的用户命令步骤 管理员权限打开…...

代码随想录算法训练营第四十六四十七天
卡码网题目: 110. 字符串接龙105. 有向图的完全联通106. 岛屿的周长107. 寻找存在的路径 其他: 今日总结 往期打卡 110. 字符串接龙 跳转: 110. 字符串接龙 学习: 代码随想录公开讲解 问题: 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序…...

华硕FL8000U加装16G+32G=48G内存条
华硕FL8000U加装16G32G48G内存条 一、华硕FL8000U加装内存条endl 一、华硕FL8000U加装内存条 相关视频链接: https://www.bilibili.com/video/BV1gw4dePED8/ endl...
前后端联调实战指南:Axios拦截器、CORS与JWT身份验证全解析
前言 在现代Web开发中,前后端分离架构已成为主流,而前后端联调则是开发过程中不可避免的关键环节。本文将深入探讨前后端联调中的三大核心技术:Axios拦截器的灵活运用、CORS跨域问题的全面解决方案以及JWT身份验证的安全实现。通过本文&…...
java高级 -Junit单元测试
Junit单元测试就是针对最小的功能:方法,编写测试代码对其进行正确性测试。用main方法进行测试的弊端是一个方法测试失败可能会影响别的方法的测试,也无法得到测试报告,需要我们自己观察数据是否正确。 此时,我们就需要…...
在 UVM验证环境中,验证 Out-of-Order或 Interleaving机制
在 UVM验证环境中,验证 Out-of-Order或 Interleaving机制 摘要:在 UVM (Universal Verification Methodology) 验证环境中,验证 Out-of-Order (乱序) 或 Interleaving (交错) 机制是验证复杂 SoC (System on Chip) 设计的重要任务,尤其是在验证高速接口(如 PCIe、AXI)、缓…...
V9数据库替换授权
文章目录 环境文档用途详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:9.0 文档用途 1、本文档用于指导V9数据库替换授权。 2、V9数据库授权文件为license.dat。 详细信息 1、上传新的授权文件到服务器并修改授权文件属主为…...

勇闯Chromium—— Chromium的多进程架构
问题 构建一个永不崩溃或挂起的渲染引擎几乎是不可能的,构建一个绝对安全的渲染引擎也几乎是不可能的。 从某种程度上来说,2006 年左右的网络浏览器状态与过去单用户、协作式多任务操作系统的状况类似。正如在这样的操作系统中,一个行为不端的应用程序可能导致整个系统崩溃…...
Go语言中常量的命名规则详解
1. 常量的基本命名规则 1.1. 命名格式 1. 使用const关键字声明; 2. 命名格式:const 常量名 [类型] 值; 3. 类型可以省略,由编译器推断; 1.2. 命名风格 大小写规则: 1. 首字母大写:导出常…...

软件质量保证与测试实验
课程 软件质量保证与测试 目的:练习软件测试中白盒测试方法 内容: 测试如下程序段: #include <stdio.h>int main() {int i 1, n1 0, n2 0;float sum 0.0;float average;float score[100];printf("请输入分…...

历年华东师范大学保研上机真题
2025华东师范大学保研上机真题 2024华东师范大学保研上机真题 2023华东师范大学保研上机真题 在线测评链接:https://pgcode.cn/school?classification1 简单一位数代数式计算 题目描述 给一个小学生都会算的1位数与1位数运算的代数式,请你求出这个表…...
【C++】什么是静态库?什么是动态库?
静态库与动态库详解 静态库和动态库是软件开发中两种不同的代码共享和重用机制,它们在链接方式、内存使用和部署方式上有显著区别。 一、静态库(Static Library) 基本概念 静态库是在编译期间被完整复制到最终可执行文件中的预编译代码集合。 主要特点 链接时…...
项目阅读:Instruction Defense
总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 https://learnprompting.org/docs/prompt_hacking/defensive_measures/instruction https://www.doubao.com/chat/6945469301219586 速览 指令防御(Instructio…...
springboot中拦截器配置使用
文章目录 前置拦截器代码拦截器注册疑问 前置 你使用 javaspringboot 常用在: 身份验证与授权,使用拦截器检查用户的身份验证状态和权限级别,确保只有经过验证且有适当权限的用户能够访问特定资源日志记录与审计性能分析与监控࿰…...
用 Python 构建自动驾驶的实时通信系统:让车辆“交流”起来!
用 Python 构建自动驾驶的实时通信系统:让车辆“交流”起来! 自动驾驶技术正加速变革全球交通体系,它不仅是机器学习与计算机视觉的胜利,更是一场 高效通信架构的革命。自动驾驶汽车需要实时交换信息,比如: 传感器数据(雷达、激光雷达、摄像头)V2V(车与车通信)V2X(…...