【千帆AppBuilder】零代码+组件+代码节点方式实现AI应用《法定退休年龄计算器》

news2024/11/13 15:23:49

欢迎来到《小5讲堂》
这是《千帆》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 背景
  • 创建应用
    • 基本信息
    • 角色指令
    • 引导信息
  • 组件
    • 整体界面
    • 开始节点
    • 代码节点
      • 输入参数
      • 编辑代码
      • 逻辑计算代码
      • 输出参数
    • 结束节点
  • 输出效果
  • 总结
  • 推荐文章

背景

最近在百度热搜看到关于延迟退休的消息。
从2025年1月1日起,男职工和原法定退休年龄为五十五周岁的女职工,法定退休年龄每四个月延迟一个月,分别逐步延迟至六十三周岁和五十八周岁;原法定退休年龄为五十周岁的女职工,法定退休年龄每二个月延迟一个月,逐步延迟至五十五周岁。
基于这个通过AI应用来实现延迟退休等信息的输出,一起来看下博主是如何实现的。
计算延迟退休的逻辑主要是通过代码节点方式实现。

创建应用

基本信息

名称:法定退休年龄计算器
描述:这是一款计算法定退休年龄计算器应用,同时兼容新规定延迟退休得计算。

角色指令

这里的提示词主要是快速识别并提取用户输入的性别、出生日期、以及原定退休的年龄。
并将这三个参数传递给组件,组件再根据这三个参数在代码节点进行逻辑计算,最后输出延迟退休年龄等信息。
具体角色指令如下:

#角色设定
作为一个法定退休年龄计算器,你的任务是识别用户输入的性别、出生日期,并作为参数传递给组件。

#组件能力
1.你具备调用法定退休年龄计算器组件的能力。
2.组件接收性别、出生日期两个参数,并输出对应退休年龄等信息。

#要求与限制
1.输出输出内容必须合法合规,不得包含医疗等敏感信息。
2.性别参数值分为三类,6055503.出生日期
出生日期统一拆分转为年份和月份值。
4.严格根据格式输出。
5.如果未识别到年份、月份、原定退休年龄值,那么需要友好提示:"请输入有效值!"

#输出格式
🍜您的延迟退休年龄:{{tuixiu_nianling}}
🍜您的延迟退休时间:{{tuixiu_shujian}}
🍜您的延迟月数:{{yanchi_yueshu}}
💎原退休年龄:{{yuan_nianling}}
💎原退休时间:{{yuan_shijian}}
💎距离退休时间:{{shengyu_value}}

引导信息

开场白和推荐问,能够让有用户快速了解你的应用具体是做什么,应该怎么使用。
开场白
❤️您好!欢迎使用法定退休年龄计算器~
⭐请输入您的性别和出生日期会根据延迟退休规则计算,比如:女,1979.3,50。
推荐问
1.男职工,1976年10月出生。
2.女职工,原55岁退休,1972年8月。
3.女职工,原50岁退休,1979年3月。

组件

在零代码界面组件选项引入开发好的法定退休年龄计算器组件,
鼠标移动到组件区域,可以看到输入参数以及是否非必填,和输出参数,
同时也可以点击组件跳转到编辑界面。
在这里插入图片描述

整体界面

可以看到组件界面非常的清爽,只有一个开始节点、代码节点、结束节点。
在这里插入图片描述

开始节点

主要是用来接收大模型的识别的必要参数,如下:
参数描述能够帮助大模型快速理解并准确提取和赋值。
界面可以看到定义了三个必要参数:
year=出生年份
month=出生月份
tuixiu_nianling=退休年龄。值分为60、55、50在这里插入图片描述

代码节点

代码节点,需要关键几个点,输入参数、代码编辑区域、输出参数。在这里插入图片描述

输入参数

代码运行的输入变量。代码中可以直接引用此处添加的变量。
输入参数主要是引用开始节点定义好的输入参数。在这里插入图片描述

编辑代码

点击编辑代码按钮,可以进行代码模拟数据运行测试,这个非常方便。
可以点击填充数据按钮,会自动填写参数和值,值可以自己编辑进行运行测试。在这里插入图片描述

逻辑计算代码

有代码基础的小伙伴,可以优化下面代码。
博主这里写的代码可能不够简洁,感兴趣的可以尝试优化下,或者用自己更加高效高质量的代码逻辑来实现。
若有更好的实现方法,可以评论区留言相互学习交流,一起进步。

import math
from datetime import datetime, timedelta
from calendar import monthrange

def main(params):

    test=''
    tuixiu_nianling_text=''
    tuixiu_shijian=''
    yanchi_yueshu=''
    tuixiu_nianling=params['tuixiu_nianling']
    value=0
    
    year=int(params['year'])
    month=int(params['month'])

    start_date=''

    if tuixiu_nianling==60:
        test='男性'
        value=(((year-1965)*12+month)/4)
        if value<=0:
            value=0
        start_date = datetime(year+60, month, 1)
        tuixiu_nianling_text=60
    elif tuixiu_nianling==55:
        test='女干部'
        value=(((year-1970)*12+month)/4)
        if value<=0:
            value=0
        start_date = datetime(year+55, month, 1)
        tuixiu_nianling_text=55
    else:
        test='女职工'
        value=(((year-1975)*12+month)/2)
        if value<=0:
            value=0
        start_date = datetime(year+50, month, 1)
        tuixiu_nianling_text=50

    integer_part, fractional_part=math.modf(value)
    if tuixiu_nianling==50:
        if value>60:
            yanchi_yueshu=60
        else:
            if integer_part>0:
                yanchi_yueshu=fractional_part+1
            else:
                yanchi_yueshu=fractional_part
    else:
        if value>36:
            yanchi_yueshu=36
        else:
            if integer_part>0:
                yanchi_yueshu=fractional_part+1
            else:
                yanchi_yueshu=fractional_part
    
    if yanchi_yueshu>0:
        tuixiu_nianling_text+=int(yanchi_yueshu/12)

    # 加上月数
    new_date = add_months(start_date,int(yanchi_yueshu))
    tuixiu_shijian=new_date.strftime('%Y年%m月')

    yuefen_text=''
    if int(yanchi_yueshu%12)>0:
        yuefen_text=str(int(yanchi_yueshu%12))+'个月'

    # 定义两个时间
    time1 = datetime.now()
    time2 = new_date

    # 计算时间差
    years, months = calculate_years_months(time1, time2)

    output_object ={
        'tuixiu_nianling':str(tuixiu_nianling_text)+'岁'+yuefen_text,     # 改革后法定退休年龄
        'tuixiu_shijian':tuixiu_shijian,                                                        # 改革后退休时间
        'yanchi_yueshu':str(int(yanchi_yueshu))+'个月',                                              # 延迟月数
        'type':test,
        'chusheng_shijian':str(year)+'年'+str(month)+'月',
        'yuan_nianling':str(tuixiu_nianling)+'岁',
        'yuan_shijian':start_date.strftime('%Y年%m月'),
        'shengyu_value':str(years)+'年'+str(months)+'个月',
    }
    
    # 返回输出字典类型变量 output_object,包含代码节点所需的输出数据
    return output_object

# 计算延迟退休时间
def add_months(start_date, months_to_add):
    # 计算新的年份和月份
    year = (start_date.year + (start_date.month + months_to_add - 1) // 12)
    month = (start_date.month + months_to_add - 1) % 12 + 1
    
    # 获取目标月份的最后一天
    last_day_of_month = monthrange(year, month)[1]
    
    # 计算新的日期,确保不超过目标月份的最大天数
    day = min(start_date.day, last_day_of_month)
    
    # 创建新的 datetime 对象
    new_date = datetime(year, month, day)
    
    return new_date

# 计算还剩多少年退休
def calculate_years_months(start_date, end_date):
    # 确保 start_date 小于 end_date
    if end_date < start_date:
        start_date, end_date = end_date, start_date
    
    # 相差年份
    year_diff = end_date.year - start_date.year
    
    # 相差月份
    month_diff = end_date.month - start_date.month

    if month_diff<0:
        year_diff-=1
        month_diff+=12

    return year_diff, month_diff

输出参数

点击运行后,右边会有一个输出结果,在正确返回结果后,可以点击解析到输出参数,
会自动把参数名和数据类型填充到输出参数区域,组件节点整体体验,你会发现非常灵活边界,给我们提供了很多编辑操作。在这里插入图片描述
在这里插入图片描述

结束节点

结束节点是组件的返回值,这个返回值也是作为大模型的输入参数传递给大模型,最后大模型再根据这些组件返回的信息进行润色输出。
当然,大模型还会根据你零代码界面设定的角色指令进行思考输出,比如:指令提到的严格根据格式输出之类的。在这里插入图片描述

输出效果

在这里插入图片描述
在这里插入图片描述

总结

在组件里使用代码节点,速度是非常快的。
如果有一定复杂的逻辑处理,那么选择代码节点是比较好的一个选择。
即使没学过代码也没关系,Python开发语言相对比较容易上手,
直接打开文心一言就能找到相关的代码。

欢迎体验点个赞:「法定退休年龄计算器」:https://appbuilder.baidu.com/s/e9LmPLlR
移动端体验地址:https://wx.baeapps.com/api/ai_apaas/v1/wx_program/share?share_code=app5dLu0sKchCFkjDOgRpxy

推荐文章

【千帆AppBuilder】零代码+组件+代码节点方式实现AI应用《法定退休年龄计算器》

【千帆AppBuilder】你有一封邮件待查收|未来的我,你好吗?欢迎体验AI应用《未来信使》

【千帆平台】零代码结合知识库或者插件开发一款AI应用,2024年奥运会运动员获奖信息(人工智能应用)

【千帆AppBuidler】零代码构建AI人工智能应用,全网都在喊话歌手谁能应战,一键AI制作歌手信息查询应用

【千帆平台】使用AppBuilder零代码创建应用,然后通过OpenAPI方式调用应用

【千帆平台】AIGC人工智能应用,使用AppBuilder零代码创建应用,Excel表格数据转为Markdown格式文本

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

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

相关文章

大腾智能3D协同平台通过华为云云软件认证

在数字化浪潮的推动下&#xff0c;工业软件不仅是研发和生产的核心工具&#xff0c;更是创新突破的基础&#xff0c;正成为推动工业领域数字化转型的关键力量。 近日&#xff0c;深圳市大腾信息技术有限公司凭借在技术创新与产品优化方面的卓越表现&#xff0c;再次迎来里程碑…

望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼

2023年5月25-26日&#xff0c;ACS2023第七届中国汽车数字科技峰会在上海成功举行。此次峰会汇聚了众多汽车领域的顶级专家、产业链代表及企业高管&#xff0c;共同探讨当今汽车产业的转型与未来发展趋势。 作为唯一受邀的流程挖掘厂商代表&#xff0c;望繁信科技携最新行业优势…

对于C++继承中子类与父类对象同时定义其析构顺序的探究

思考这样一串代码的运行结果&#xff1a; #include <iostream> using namespace std; class Person { public:~Person() { cout << "~Person()" << endl; } }; class Student:public Person { public:~Student() { cout << "~Student(…

【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略

文章目录 C类与对象前言读者须知RVO 与 NRVO 的启用条件如何确认优化是否启用&#xff1f; 1. 按值传递与拷贝省略1.1 按值传递的概念1.2 示例代码1.3 按值传递的性能影响1.3.1 完全不优化 1.4 不同编译器下的优化表现1.4.1 Visual Studio 2019普通优化1.4.2 Visual Studio 202…

828华为云征文|基于华为云Flexus X实例快速搭建Halo博客平台

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例场景需求 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 购买MySQL加速镜像 2.3 重置密码 2.4 登录服务器 三、Flexus X实例安装Docker 3.1 系统版本…

小小扑克牌算法

1.定义一个扑克牌类Card&#xff1a; package democard; public class Card {public String suit;//表示花色public int rank;//表示牌点数Overridepublic String toString() {return "{"suit rank"}";}//实例方法&#xff0c;初始化牌的点数和花色public…

IBM 撤出背后:国内技术人如何突围?

近年来&#xff0c;随着全球科技行业的风起云涌&#xff0c;各大科技巨头不断调整业务布局&#xff0c;甚至撤出某些市场。近日&#xff0c;IBM宣布在中国市场进一步收缩&#xff0c;引起了业界的广泛关注。作为曾经的科技领军企业&#xff0c;IBM的撤退背后到底传递出什么样的…

Fipexide(FPX):植物组织培养中的新兴化学诱导剂AbMole

在植物科学领域&#xff0c;组织培养技术一直是探索植物发育机制和生物技术应用的强大工具。然而&#xff0c;尽管植物生长调节剂如生长素&#xff08;Auxin&#xff09;和细胞分裂素&#xff08;Cytokinin&#xff09;在促进植物愈伤组织形成和再分化中发挥了关键作用&#xf…

Vue 依赖注入组件通信:provide / inject 使用详解

引言 在 Vue.js 中&#xff0c;我们经常会遇到组件之间需要共享数据的情况。一种常见的解决方案是通过 props 和 $emit 事件来进行数据传递&#xff0c;但对于多层嵌套的组件结构或共享状态的场景&#xff0c;这种方式显得繁琐而不直观。 幸运的是&#xff0c;Vue.js 提供了一…

powerbi -L10-文件夹内的文件名

powerbi -L10-文件夹内的文件名 Folder.Contents letSource Folder.Contents("\\your_folder\ your_folder "),#"Removed Other Columns" Table.SelectColumns(Source,{"Name", "Date modified", "Folder Path"}), in#&q…

国庆头像制作教程,这几种方法轻松制作国庆头像

随着国庆佳节的临近&#xff0c;朋友圈里是不是已经开始弥漫着浓浓的节日气氛&#xff1f;想要让你的头像也加入这场盛宴&#xff0c;成为最吸睛的存在吗&#xff1f;别急&#xff0c;今天就为你揭秘4款超实用的头像制作神器&#xff0c;能够让你的头像显现出浓郁的国庆节气氛&…

Qt 模型视图(二):模型类QAbstractItemModel

文章目录 Qt 模型视图(二)&#xff1a;模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二)&#xff1a;模型类QAbstractItemModel ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…

高性能分布式搜索引擎Elasticsearch详解

♥️作者&#xff1a;小宋1021 &#x1f935;‍♂️个人主页&#xff1a;小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…

vue2 + moment 实现日历,并带有上个月和下个月日期的日历

在 Vue 2 中使用 moment 库绘制一个带有上个月和下个月日期的日历&#xff0c;可以通过以下步骤实现。这个日历将显示当前月份的天数&#xff0c;以及前一个月和下一个月的部分日期&#xff08;通常为了让日历对齐为6行&#xff0c;每行7天&#xff09;。 主要步骤&#xff1a…

外国药品位置检测系统源码分享

外国药品位置检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

C语言中值传递

C语言中&#xff0c;值传递的问题 #include <stdio.h> void modifyValue(int x) { x 10; // 修改的是x的副本&#xff0c;对原始数据无影响 printf("在函数中修改的结果是:%d\n",x); }int main() { int a 5; printf("Before: %d\n", a); modifyV…

【资料分析】刷题日记3

第一套 √ 考点&#xff1a;基期比重差很温柔的题 普通专科女生 占比 52.5% - 1.7% 50.8% 成人本专科女生 占比 57.8% - 4.6% 53.2% 相比降低了2.4% 知比重和部分量&#xff0c;求整体在花生老师的解法中体会啥叫适当约分 0.1899 / 47.8% / 87.5% 》0.19 / &#xff08;4…

碎纸片的自动拼接复原技术

摘要&#xff1a;破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。目前发现对碎纸片的拼接大部分由人工完成&#xff0c;准确率较高&#xff0c;但耗费大量人力财力及时间&#xff0c;效率很低。随着计算机技术的发展&#xff0c;人们试图…

机器人上的DPDK使用思考

引言 项目背景 人形机器人作为智能技术的集大成者&#xff0c;正逐步从科幻电影走进现实生活&#xff0c;广泛应用于工业制造、医疗健康、家庭服务等多个领域。在这一发展过程中&#xff0c;传感器技术的飞速发展和物联网技术的广泛应用&#xff0c;极大地提升了人形机器人对…

微服务实战:规则引擎Drools

1. 概述 * 规则引擎核心思想&#xff1a;将应用程序中的业务决策部分分离出来 * 使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效 2. 执行流程 drools规则引擎由以下三部分构成&#xff1a; Working Memory&#xff08;工作内存&#xff09; Ru…