基于 AI 实现阿里云的智能财务管家

news2025/5/27 17:21:37

图片

新钛云服已累计为您分享844篇技术干货

图片

为了解决传统账单处理中人工查询效率低下、响应速度慢及易出错等问题,同时顺应AI技术发展趋势,提升服务智能化水平。随着业务规模扩大和账单数据复杂度增加,人工处理已难以满足高效管理需求。我们想到通过AI技术,制作一个账单机器人,自动化完成账单查询与分析,节省人力成本,让用户快速获取准确信息,提升满意度。

流程图

上图为基于阿里云百炼实现账单机器人的完整流程。具体步骤如下:

  1. 用户通过私聊或者@飞书机器人的方式提出账单相关的问题。

  2. 计算巢AppFlow通过飞书接收消息事件触发连接流,将问题传递给大模型服务平台百炼。

  3. 大模型服务平台百炼利用其强大的AI能力生成相应的查询SQL语句。

  4. 生成的SQL语句被发送到函数计算(FC)服务,由FC 执行SQL查询,从SLS中获取所需的账单数据。

  5. 百炼平台根据返回的账单数据生成最终的答案。

  6. 答案通过计算巢 AppFlow 返回给飞书机器人。

  7. 最后,飞书机器人将答案呈现给用户。

注意:关于为什么从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

账单类型。包括:
     SubscriptionOrder:预付费订单。
     PayAsYouGoBill:后付费账单。
     Refund:退款。
     Adjustment:调账。

__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技术的智能分析能力,机器人可进一步挖掘账单数据价值,优化资源配置,助力企业降本增效,适应数字化转型需求。

如有相关问题,请在文章后面给小编留言,小编安排作者第一时间和您联系,为您答疑解惑。

    推荐阅读   

图片

图片

图片

    推荐视频    

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

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

相关文章

【成品论文】2025年电工杯数学建模竞赛B题50页保奖成品论文+matlab/python代码+数据集等(后续会更新)

文末获取资料 多约束条件下城市垃圾分类运输调度问题 摘要 随着城市化进程加快,城市生活垃圾产量持续增长,垃圾分类运输已成为城市环境治理的关键环节。本文针对城市垃圾分类运输中的路径优化与调度问题,综合考虑不同垃圾类型、车辆载重约束…

【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 &#xff…

Halcon 单目相机标定测量

文章目录 双面相机标定链接一维测量gen_cam_par_area_scan_division -为区域扫描相机生成一个相机参数元组,该相机的变形由分割模型建模。(相机自带参数)create_calib_data -创建Halcon 数据标定模型set_calib_data_cam_param -设置校准数据模型中摄像机的类型和初始…

数据被泄露了怎么办?

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

绩效管理缺乏数据支持,如何提高客观性?

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

unity控制相机围绕物体旋转移动

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

线性代数:AI大模型的数学基石

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…

简单血条于小怪攻击模板

创建一个2d正方形(9-Sliced)命名为Player,在Player下面新建一个画布(Canvas)命名为PlayerHealthUI,在画布下面新建一个滑动条(Slider)命名为HealthBar 把PlayerHealthUI脚本挂载到Pl…

代码随想录算法训练营第四十六四十七天

卡码网题目: 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

勇闯Chromium—— Chromium的多进程架构

问题 构建一个永不崩溃或挂起的渲染引擎几乎是不可能的,构建一个绝对安全的渲染引擎也几乎是不可能的。 从某种程度上来说,2006 年左右的网络浏览器状态与过去单用户、协作式多任务操作系统的状况类似。正如在这样的操作系统中,一个行为不端的应用程序可能导致整个系统崩溃…

软件质量保证与测试实验

课程  软件质量保证与测试 目的&#xff1a;练习软件测试中白盒测试方法 内容&#xff1a; 测试如下程序段&#xff1a; #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华东师范大学保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school?classification1 简单一位数代数式计算 题目描述 给一个小学生都会算的1位数与1位数运算的代数式&#xff0c;请你求出这个表…

在机器学习中,L2正则化为什么能够缓过拟合?为何正则化等机制能够使一个“过度拟合训练集”的模型展现出更优的泛化性能?正则化

在现代机器学习的发展历程中&#xff0c;过拟合&#xff08;Overfitting&#xff09;始终是亟需克服的重要挑战。其表现如同在训练数据上构建过度复杂的映射函数&#xff0c;虽能实现近乎完美的拟合&#xff0c;但其泛化能力却显著受限&#xff0c;导致模型在测试集或实际应用中…

k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件

k8s部署ELK补充篇&#xff1a;kubernetes-event-exporter收集Kubernetes集群中的事件 文章目录 k8s部署ELK补充篇&#xff1a;kubernetes-event-exporter收集Kubernetes集群中的事件一、kubernetes-event-exporter简介二、kubernetes-event-exporter实战部署1. 创建Namespace&a…

C++性能相关的部分内容

C性能相关的部分内容 与底层硬件紧密结合 大端存储和小端存储&#xff08;硬件概念&#xff09; C在不同硬件上运行的结果可能不同 比如&#xff1a;输入01234567&#xff0c;对于大端存储的硬件会先在较大地址上先进行存储&#xff0c;而对于小端存储的硬件会先在较小地址上…

AI进行提问、改写、生图、联网搜索资料,嘎嘎方便!

极客侧边栏-AI板块 目前插件内已接入DeepSeek-R1满血版、Qwen3满血版 、豆包/智谱最新发布的推理模型以及各种顶尖AI大模型&#xff0c;并且目前全都可以免费不限次数使用&#xff0c;秒回不卡顿&#xff0c;联网效果超好&#xff01; 相比于市面上很多AI产品&#xff0c;极客…

GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/147714800 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、O…

2021年认证杯SPSSPRO杯数学建模A题(第二阶段)医学图像的配准全过程文档及程序

2021年认证杯SPSSPRO杯数学建模 A题 医学图像的配准 原题再现&#xff1a; 图像的配准是图像处理领域中的一个典型问题和技术难点&#xff0c;其目的在于比较或融合同一对象在不同条件下获取的图像。例如为了更好地综合多种信息来辨识不同组织或病变&#xff0c;医生可能使用…