• 基于 AI 实现阿里云的智能财务管家
    为了解决传统账单处理中人工查询效率低下、响应速度慢及易出错等问题,同时顺应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 LogClient from aliyun.log import * import logging,json,re from datetime import datetime logger = 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_list def 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语句。
    暂时无法在飞书文档外展示此内容
    数据导入完成后,如下图所示:
    在左侧菜单栏中选择“知识库”,点击右上角的“+ 创建知识库”。
    填写“知识库名称”,数据类型选择“非结构化数据”,其他配置保持默认,完成后点击“下一步”按钮。
    选择数据选择“选择类目”,类目选择刚创建的类目“阿里云账单机器人”,完成后点击“下一步”按钮。
    其他配置保持默认,完成后点击“导入完成”按钮。
    知识库创建完成后,如下图所示:

    样例库

    样例库功能作为百炼的FewShot能力,通过录入用户输入(Query)和期望的模型回复(Answer)作为样例信息源,在模型调用时根据用户输入,检索召回相关样例信息,以此作为输出参考,从而提高大模型的回答准确性,适用于问答等场景。
    在左侧菜单栏中选择“组件管理”,在组件管理界面的顶部菜单中选择“样例库”,点击“样例库管理”旁的“+”。
    填写“样例库名称”,导入方式选择“手动输入”,将下表数据填入到“样例示例”,完成后点击“确定”按钮。
    用户输入
    模型输出
    查询1月阿里云花费金额
    {“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”}
    样例库配置完成后,如下图所示:

    应用

    大模型具备强大的语言能力,但仍有一定的局限性,例如难以处理私有领域问题、获取最新信息、遵循固定流程,以及自动规划复杂项目。为此,阿里云百炼推出了三种大模型应用:智能体、工作流与智能体编排,增加了知识库检索、互联网搜索、工作流设计及智能体协作等功能,显著扩展了大模型的应用范围。下表说明三种大模型应用的简介及示例场景。
    类型
    简介
    示例场景
    智能体应用(Assistant)
    是一种基于上下文对话,自主决策并调用工具来完成复杂任务的对话式 AI 应用。通过简单的配置,可以快速上手和实现基本功能。
    • 客户服务:了解客户诉求,解决客户问题。如查询订单状态、处理退款等。
    • 个人助理:管理日程安排、提醒事项、发送邮件等。
    • 技术支持:了解技术问题,提供解决方案,帮助用户排除故障。
    工作流应用(Workflow)
    是一种将复杂任务拆解为若干子任务,以提高工作流程可控性的流程式 AI 应用。用户可以通过拖拽节点来创建自定义的任务流程。
    • AI 翻译:实现初步翻译、内容审校、再次优化的翻译流程,提升翻译质量。
    智能体编排应用
    是一种支持多智能体协作的流程式 AI 应用,使您能够编排多个智能体的执行逻辑,也可以使多个智能体自动规划和执行任务。
    • 综合调研报告:组建一个报告撰写团队,包括负责写作意图识别、大纲书写、总结摘要、智能绘图、事件研判、段落撰写、文笔润色等任务的智能体。
    • 软件开发团队:组建一个智能体开发团队,包括负责需求分析、系统设计、编码实现、测试调试、文档编写等任务的智能体。

    生成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月阿里云花费金额”,点击“执行”按钮。
    若运行结果如下图所示,则说明执行成功。成功后点击“发布”按钮。
    发布完成后如下图所示:

    API-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/cn-hangzhou/flowTemplate/manage此链接,在左侧菜单栏中选择“模板中心”,找到“飞书自建应用 X 阿里云百炼”。
    点击“立即使用”按钮。
    点击“添加新凭证”创建飞书自建应用机器人凭证。
    填写“凭证名称”、“App ID”、“App Secret”、“AES Key”、“token”,这些在飞书应用中可以找到。底下的“IP白名单”添加到飞书应用白名单中。完成后点击“确定”按钮。
    点击“添加新凭证”创建阿里云百炼凭证。
    填写“凭证名称”和“API-KEY”(请见上文创建API-Key)。完成后点击“确定”按钮,再点击“下一步”按钮。
    填写“应用Id”(名为“账单机器人”的百炼智能体编排应用Id ),完成后点击“下一步”按钮。
    填写“连接流名称”和“连接流描述”,完成后点击“下一步”按钮。
    这个WebhookUrl地址,即为上文飞书应用配置事件与回调的请求地址。点击“发布”按钮。

    飞书

    在飞书App左侧菜单栏中选择“工作台”,点击右上角“⚙设置”。
    在我的工作台中,点击右上角的“添加应用”按钮,将刚创建的“阿里云账单机器人”添加进来。
    点击进入阿里云账单机器人。
    发送“查询1月阿里云花费金额”,若机器人回答如下图所示,说明配置成功了。

    小结

    至此,阿里云账单机器人配置完成。此外,借助AI技术的智能分析能力,机器人可进一步挖掘账单数据价值,优化资源配置,助力企业降本增效,适应数字化转型需求。
    «
    »
以专业成就每一位客户,让企业IT只为效果和安全买单

以专业成就每一位客户,让企业IT只为效果和安全买单

在线咨询
连接中...