养老项目逐字稿

项目介绍

该项目是一个关于养老的后台管理系统,这个系统使用了若依框架,而若依框架简单来说就是一款基于Spring Boot、Spring Cloud等开源框架搭建的企业级开发平台。它的主要目标是提供全面的解决方案,以简化企业级应用开发,提高开发效率。

若依框架的优点主要是技术先进、框架合理、包含了主流的技术、前后端分离、代码生成和通用模块,最主要就是安全可靠,有社区丰富文档助力。

在这个项目里面,我负责的核心业务模块有,护理服务模块、入住智能评估模块、微信小程序预约模块、智能检测模块、护理任务模块等。下面我分别对这几个模块进行介绍。

项目背景

随着全球老龄化趋势的加剧,养老问题日益成为社会关注的焦点。我国作为人口大国,老年人口数量持续攀升,养老服务需求呈现出多样化、精细化的态势。

传统养老模式在管理效率、服务质量把控等方面逐渐暴露出短板。养老院、日间照料中心等养老机构的日常运营涉及老人信息管理、护理安排、餐饮配送、医疗保健服务调度等诸多繁杂事务,单纯依靠人工记录与纸质档案,不仅易出错、信息更新滞后,还耗费大量人力成本,难以满足现代养老服务快速响应的需求。

子女们对家中老人的远程照护需求愈发迫切。他们期望能实时了解老人在养老机构的生活状况,包括身体指标监测数据、日常活动记录等,以便及时给予关怀与支持。

科技飞速发展,移动互联网、大数据、云计算等技术广泛普及,为养老服务的数字化转型提供了坚实基础。在此背景下,养老后端管理 APP 应运而生,其旨在整合养老服务资源,利用先进技术手段优化养老机构运营流程,搭建起家属与养老机构、老人之间的信息桥梁,全方位提升养老服务的管理水平与服务效能,开启智慧养老新篇章。

项目技术栈

展现层
  • 前端框架:Vue3,用于构建用户界面,提供高效的组件化开发体验。
  • UI组件库:Element Plus,提供丰富的UI组件,方便快速搭建美观的界面。
  • 前端构建工具:Vite,能快速启动开发服务器,提升开发效率。
  • 状态管理库:Pinia,用于管理应用的状态,使状态管理更加简洁和高效。
接入层
  • 反向代理:用于代理服务器,可实现负载均衡、安全防护等功能。
  • 负载均衡:确保服务的高可用性和性能,将请求均匀分配到多个服务器上。
服务层
  • 后端框架:SpringBoot,简化Spring应用的初始搭建以及开发过程,提供自动配置等特性。
  • Web框架:SpringMVC,用于处理Web请求,实现MVC架构。
  • 数据访问框架:Mybatis Plus,在Mybatis基础上进行增强,简化数据库操作。
  • 实时通信技术:WebSocket,支持双向通信,可用于实时数据推送等场景。
数据层
  • 关系型数据库:MySQL,用于存储结构化数据,是常用的数据库之一。
  • 内存数据库:Redis,可用于缓存、会话存储等,提升数据访问速度。
第三方
  • IOT:物联网相关技术,可能用于设备接入和数据采集等。
  • 若依框架:开源的快速开发平台,提供了一些基础功能和架构支持。
  • OSS:对象存储服务,用于存储和管理大量的非结构化数据,如图片、视频等。
  • 百度千帆大模型:可能是用于自然语言处理等人工智能相关的大模型。

模块一:入住办理

  1. 搜索:老人姓名为模糊搜索,老人身份证号为精准搜索;

  2. 列表数据:列表中所展示的数据是入住成功且未退住的老人信息

  3. 发起入住办理:点击【发起入住申请】进入到【入住申请详情页】;

  4. 查看:点击【查看】进入到【入住详情页】,数据回显,不可编辑,不显示文本框,只显示已填写/已选择的内容;

上述需求中,共包含了四部分:

  • 基本信息:入住老人的基本信息,包含了姓名、年龄、身份证号、性别,住址、照片等信息

  • 家属信息:入住老人的家属列表,可以有多个

  • 入住配置:入住老人在养老院选择的费用信息,包含了护理等级,入住床位、入住期限等信息

  • 签约办理:入住老人签订的合同信息

细节E-R图

整个办理入住的流程是,老人提交自己的身份信息和体检的报告文件,我们会调用千帆大模型对体检报告进行解读,通过评估为老人推荐合适的服务等级。

概念引入—Redis

在项目开发的过程中,多多少少都会考虑软件性能的问题,最普遍解决性能的方案就是添加缓存。在项目开发中,根据具体的需求和场景,合理地使用缓存可以优化系统的性能、可扩展性和用户体验,是提高性能的一个非常常见的技术手段。

Redis 是一种开源的高性能键值存储系统,是一种常用的缓存方案。Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件

主要特点:

  • 基于内存存储,读写性能高

  • 适合存储热点数据(热点商品、资讯、新闻)

  • 企业应用广泛

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。

NoSql(Not Only SQL),不仅仅是SQL,泛指非关系型数据库。NoSql数据库并不是要取代关系型数据库,而是关系型数据库的补充。

关系型数据库(RDBMS):

  • Mysql

  • PostgreSQL

  • Oracle

  • SQLServer

非关系型数据库(NoSql):

  • Redis

  • Mongo db

  • MemCached

Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型:

  • 字符串 string

  • 哈希 hash

  • 列表 list

  • 无序集合 set

  • 有序集合 zset

Redis命令参考地址,Redis中文网:https://www.redis.net.cn

哪些数据需要添加放到缓存中?
  • 高频访问且变更较少的数据:用户信息(基本资料、权限)、配置信息(系统配置、业务规则等)

  • 数据库查询结果:复杂的数据库查询(多表或量大且需要经常访问)

  • 热门内容:热门文章、热门视频、热门评论等,访问量高的数据

  • 临时数据:临时存储一些数据以便后续使用(如验证码、临时文件路径等),在内存中以便快速访问。

  • 需要快速访问的小数据集:某些情况下,即使数据不大,但如果需要频繁访问,可以考虑将其缓存起来以提高性能。

缓存使用策略

模块二:集成AI大模型

健康评估是指老人办理入住前需上传体检报告,由AI自动进行分析,并对报告进行总结,同时给出合理的建议;

下图是健康评估列表页,展示了经过健康评估的老人列表。

当点击了上传体检报告按钮之后会弹窗,效果如下,需要输入信息,需要提前准备好老人的体检报告(PDF格式)

点击确定按钮之后,会使用AI对老人的健康报告进行评估

下图是健康评估的详情页面,是使用AI分析后的结果页,给了很多的数据,可以让护理员或销售来查看老人的健康状况,进一步更好的服务老人或者给老人推荐一些护理服务。

概念引入-千帆大模型

ERNIE 4.0是百度自研的旗舰级超大规模⼤语⾔模型,相较ERNIE 3.5实现了模型能力全面升级,广泛适用于各领域复杂任务场景;支持自动对接百度搜索插件,保障问答信息时效,支持5K tokens输入+2K tokens输出。

  • 对话模型,一次请求就是一次对话

  • 提供了java的sdk调用,地址:https://github.com/baidubce/bce-qianfan-sdk/tree/main/java

  • 支持单轮对话、多轮对话、流式

  • 部分关键的参数:

名称

类型

必填

描述

messages

List[dict]

对话信息,messages": [ {"role": "user","content": "你好"}]

message中的content总长度和system字段总内容不能超过20000个字符,且不能超过5120 tokens

model

string

模型名称,用于指定平台支持预置服务的模型,说明:该字段为固定值ERNIE-4.0-8K-Preview(必须开通付费)

temperature

float

大模型的采样参数,

(1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定

(2)默认0.8,范围 (0, 1.0],不能为0

max_output_tokens

int

指定模型最大输出token数,说明:

(1)如果设置此参数,范围[2, 2048]

(2)如果不设置此参数,最大输出token数为1024

response_format

string

指定响应内容的格式,说明:

(1)可选值:

· json_object:以json格式返回,可能出现不满足效果情况

· text:以文本格式返回

(2)如果不填写参数response_format值,默认为text

  • 返回参数:result可以获取对话返回的结果

设计Prompt
  • 角色:给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」

  • 指示:对任务进行描述

  • 上下文:给出与任务相关的其它背景信息(尤其在多轮交互中)

  • 例子:必要时给出举例,[实践证明例子对输出正确性有帮助]

  • 输入:任务的输入信息;在提示词中明确的标识出输入

  • 输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、Java)

概念引入-RBAC权限模型

在我们的项目中,针对不同的用户身份我们要赋予他们不同的权限,比如服务人员,管理人员,将他们的权限等级区分开来,能够减少不必要的麻烦,以及减少冲突。

在企业系统中,通过配置用户的功能权限可以实现让不同的人分管不同业务的需求。基于RBAC模型,RBAC(Role Based Access Control)模型,它的中文是基于角色的访问控制,主要是将功能组合成角色,再将角色分配给用户,也就是说角色是功能的合集

比如:

企业A总共有12个功能,需要创建100个用户。功能包括财务管理、人事管理、销售管理等等,如果不引入基于角色的访问控制(RBAC)模型,我们就需要每创建一个用户就要分配一次功能,这将至少需要进行100次操作(每个用户只能拥有一个功能的前提下)。如果用户数量增加到1000甚至10000,并且一个用户可能会拥有多个功能,操作将会变得非常繁琐。

基于RBAC授权模式后,我们可以达成以下2个目标:

  • 解耦用户和功能,降低操作错误率

  • 降低功能权限分配的繁琐程度

模块三:微信小程序

       为了满足老人家属的需求,我们项目还提供了便捷的小程序端服务,从小程序端登录的用户主要有两类,第一类是参观预约的用户,这些用户都是我们潜在的目标用户家属,通过参观预约我们可以控制好参观的人数,也能够让老人家属更直观的了解到我们养老院中的服务水平;第二类用户都是老人的家属(子女),他们可以在小程序中与养老院中的老人进行绑定,通过老人身上绑定的智能设备可以随时查看老人身体的各项数据,以及进行下单、查看账单、查看合同等操作。

微信登录思路说明

我们可以根据微信小程序开放平台给提供的实现思路来梳理微信登录的流程,链接如下:

微信小程序登录,官方文档:

小程序登录 | 微信开放文档

微信官方推荐登录流程:

注意点:

  • 前端在小程序中集成微信相关依赖,当用户请求登录的同时,调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。

  • 后端服务器调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 、 用户在微信开放平台账号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台账号) 和 会话密钥 session_key

  • 开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

护理项目和预约

在小程序中,有一个服务,可以展示后端维护的护理项目,主要是方便老人的家属给老人购买额外的护理服务。当点击了某一个服务之后,可以查看服务的详细介绍。

        老人及家属可通过小程序或电话预约参观养老院,了解养老院的环境、设施及服务情况,预约成功后,系统将安排养老顾问进行对接,做好到院接待的工作。当用户预约之后,假如没有在预约的时间来访,那这次预约就会失效。

        解决办法就是自动完成。任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力,而是由系统自动去执行任务。定时更新合同状态。

绑定家人

在小程序,老人家属可以通过输入老人的姓名和身份证号绑定老人,老人身上以及周边的只能设备会实时的传递老人的各项信息到小程序端供家属进行查看,如老人的心率、血氧、呼吸频率、睡眠状况等等,并且支持查询历史数据和动态图表等功能。

报警数据

其中展示健康数据按钮的前提是,该老人必须绑定手表设备

注意:只有负责该老人的护理员才能看到报警数据
如果老人被多个护理员负责,那么多个护理员都可以看到这条数据
当其中一个护理员处理数据之后,其他负责的护理员也会展示已处理
点击解绑按钮,可以解绑老人

模块四:智能检测模块

中州养老智能检测是一个老人入住后,为了实时观察并监控老人的状态以及老人的生活环境的管理系统。有一些硬件设备用来检测,可以分为两大类,比如随身设备,用来检测老人的血压、温度、血氧等,固定设备烟雾报警器、睡眠检测带,一氧化碳报警器等。智能检测系统主要是用来监控一些可预见的老人及入住环境的异常信息,当发线异常时进行通知上报,以便采取一线应急措施。该系统集成了产品管理、设备管理、报警规则设置、报警处理、预警通知和大屏展示等功能。

产品设备管理

 产品分类智能检测系统有许多硬件设备,我在阿里云物联网平台来管理这些硬件设备,通过对硬件的管理,以便后期的拓展和维护,产品下可以新增设备,设备绑定位置、管理人员和创建时间等,设备详情页有设备的详细信息,以及绑定的接入位置,设备采集的数据等,设备的状态,物理模型数据。我使用的是阿里云物联网平台,阿里云物联网平台是一个集成了设备管理、数据安全通信、消息订阅和数据服务等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制。有两张表设备表和设备数据表。通过线程池采集到的数据也会通过webSocket传到后端,也可以将数据通过MQ发给客服,实时获取老人的状态。

报警管理

报警管理有报警规则,报警数据,当设备采集到不符合规则的数据时就会通知相应的负责人和家属,能够及时采取措施避免意外发生。

监测的产品为烟雾报警器,物模型为温度,过滤的是该产品下的全部设备
报警类型为设备异常数据(设备报警通知行政和超级管理员)
持续周期为持续1个周期(1后期=1分钟):表示触发报警之后,马上会保存报警数据
阈值为55,运算符为>=:表示采集的室内温度数据大于等于55就触发报警
沉默周期为5分钟,已经保存报警数据之后,如果后面有连续报警,5分钟之后再触发报警规则
报警生效时段为00:00:00~23:59:59:表示任意时段都会采集数据
报警数据处理:把采集到的数据放到redis中,开启一个定时任务每分钟触发一次。查询所有的报警规则,再查询对应设备上报所有的数据,遍历所有数据,校验数据是否达到阈值,是否在沉默周期,沉默周期有数据循环遍历查询,当报警次数超过规则就会通知相应的管理人员去查看,批量保存报警数据。
在流程结束之后,如果出现了报警数据,基于不同的报警设备的类型,通知的人的也是不同的
设备异常数据,通知行政人员(维修工)及超级管理员(通知的用户ID在配置文件中维护)
老人异常数据,通知负责老人的护理员及超级管理员,需要通过老人绑定的设备关联找到负责该老人的护理员id

表关系(设备、老人、护理员的关系如下)

如果是随身设备,可以通过设备找到老人,然后通过老人找到护理员的ID
如果是固定设备(只有床位),则需要通过设备找到床位-->老人-->护理员
如果固定设备不是床位,比如是房间或楼层,则不需要通知护理员,需要通知行政人员

模块五:护理服务模块

在我们申请入住的时候,里面会查询护理等级和床位表,展示在选项的下拉框内,所以我们就完成相关工作。

        在护理等级里面,有相对应的护理项目来选择,每个项目对应的不同的价格,最后在申请入住里面自动算出总价。

        当用户下单并支付完成后,会给老人绑定下单时所选地护理等级,我们会根据老人所选的护理等级有着不同的护理项目,再根据护理等级安排护理计划。

        护理等级:这个模块在养老院系统的主要作用是,让将要入住的老人进行选择配置,比如有一个老人入住养老院,在前期呢有个健康评估系统,会先给老人做一个健康评估,然后健康评估系统会根据老人的健康评估报告以及老人的年龄这些综合因素,去推荐老人选择不同的护理等级,不同的护理等级包含的护理项目是不同的,价格也是不一样的。

        护理项目:主要包括了一些针对不同情况老人的项目,现在我在这个项目中做了几类护理项目,比如基本生活管理,营养餐食管理,紧急响应和危机管理,医疗护理,康复管理等。护理项目不仅可以在护理等级里面独有,而且家属可以在对应的客户端选择想要的护理项目来给老人添加,对护理项目的要求都可以选择或备注。

        护理任务:护理任务就是每个已经入住的老人会有老人的护理计划,这些计划可能按日,周或月执行,每个护理计划都会安排专门的护理人员去执行,当然每个护理人员也会绑定多个老人。护理任务里面有个护理状态,可以看出护理任务是否已经执行。( 当老人在办理入住的时候,需要选择一个护理等级,在护理等级中就包括了护理计划,而这个护理计划就详细记录了老人入住养老院的一些服务,比如,服务可能就包含:洗衣服、整理床铺、修剪指甲等等这些具体的服务。而这些服务,是有频次的,比如,洗衣服,频率一般是一周一次,吃饭是一天三次,这样的执行频次。 在系统中,我们需要定时的按照老人选择的护理计划,来给护理员生成对应的护理任务,方便记录和跟踪老人服务的过程,假如执行过程中,出现了问题,比如没有执行,获取是取消执行,或者是改期执行,都可以很方便的记录下,方便护理人员下次继续执行。)

面试题

1. 聊一下最近做的这个养老项目?
我做这个养老项目是专门为养老院定制开发的,在这个项目中,主要包含了两个端,一个是后台管理系统,一个是微信小程序端。 其中后台管理系统是给养老院的员工使用的,主要模块包含了老人的入住、退住、合同管理、护理服务管理、健康评估管理等模块,方便养老院的员工处理日常的工作。 其中的小程序是给入住的老人家属使用的,在小程序的模块包括了,微信登录、预约、房型查看、老人的健康数据查看,给老人缴费等功能。

2. 你主要负责了哪些模块?
以下多种业务,选择其一即可

业务1-护理服务模块 在这个项目中的模块是很多的,我主要负责的是项目中的基础数据维护,比如在养老院中有房型管理、床位管理、护理等级管理、入住管理、在住管理这些模块。 我主要的开发工作就是设计这些模块的表结构、有的时候需要与前端开发配合,也去设计这些功能接口面试官:那你详细说一下护理等级模块这个模块 护理等级这个模块在养老院系统的主要作用是,让将要入住的老人进行选择配置,比如有一个老人入住养老院,在前期呢,会先给老人做一个健康评估,然后销售员会根据老人的健康评估报告以及老人的年龄这些综合因素,去推荐老人选择不同的护理等级,不同的护理等级包含的护理项目是不同的,价格也是不一样的面试官:那你详细说一下床位管理模块这个模块 床位管理这个模块在养老院系统的主要作用是,基础数据的维护,比如根据养老院实际的情况来创建对应的楼层,楼层中的房间对应编号,以及每个房间对应的床位编号,并且每个楼层的房间和床位对应的配置也是不同的。老人也可以根据自己的实际情况来选择需要入住的房间和床位。这样的话,老人就能与房间和床位进行绑定,后期方便更好的服务于老人

业务2-入住及智能评估 在老人入住养老院之前,需要先由养老院的工作人员对老人进行一个健康的评估,然后可以给老人推荐养老院不同等级的服务。 那这个时候,就会要求养老院的工作人员要有一些基础的健康医疗的知识,工作人员主要是通过查阅老人近期的体检报告来进行评估。如果可以详细解读这个体检报告是不容易的,因为一般体检项很多,还要花大量时间来逐条阅读,阅读之后还要给老人讲解明白,这个是比较耗时耗力的。 在当下AI大模型发展的很好,所以当时,用户和产品聊完之后,就想要用AI来解读体检报告,然后让AI给老人的体检报告,打分、做总结、如果有异常体检项,还可以让AI来解读异常项目,并且给出建议。 通过AI解读之后,可以让工作人员在最短时间内了解到老人近期的健康状况,然后再结合工作人员的基础健康知识,就可以很方便给老人推荐他所对应的护理服务,也方便更好的给老人提供健康指导。

业务3-微信小程序-预约 在小程序,我负责了微信登录的开发,还有一些预约的功能。 这个小程序主要是给已经入住养老院的老人,他们的家属登录使用的。家属可以使用微信进行登录。并且在这里可以查看养老院的一些介绍,房型、还有一些护理服务。 如果想要去养老院实地考察,也可以在小程序中进行预约,预约之后需要按照时间段内去往养老院,在养老院的后台,可以给预约的用户进行核销。 当然,如果老人已经入住,想要探望老人,也需要在小程序中进行预约,这个预约需要指定老人的姓名和身份证号,方便提前安排老人的时间。

业务4-智能检测 在这个项目中的模块是很多的,我主要负责的是项目的智能监测系统。面试官:那你详细说一下这个模块 好的~ 在养老院系统中,当老人入住选配的时候,是可以根据护理等级不同选择,是否需要智能监测这些功能,如果老人选择了智能监测这些功能,老人入住的房间和床位中会给入住的这个老人绑定智能的硬件设备来监测老人的健康数据,同时呢,也会给老人一些穿戴设备,比如健康定位手表,这个手表也可以实时的监测老人的健康数据。 一旦监测出了老人的健康数据有异常,就是触发报警,就会给负责这个老人的护理员来发起提醒,让护理员及时去处理。这样的话就能更好的实时监测到老人的数据是否健康 同时,在家属端的小程序上,展示了老人的健康指标数据,比如老人的心率、体温、血氧等健康指标,并且我们也做了统计,还可以查看老人的历史健康数据,方便家属及时的了解老人的健康状况。

业务5-护理任务 当老人在办理入住的时候,需要选择一个护理等级,在护理等级中就包括了护理计划,而这个护理计划就详细记录了老人入住养老院的一些服务,比如,服务可能就包含:洗衣服、整理床铺、修剪指甲等等这些具体的服务。而这些服务,是有频次的,比如,洗衣服,频率一般是一周一次,吃饭是一天三次,这样的执行频次。 在系统中,我们需要定时的按照老人选择的护理计划,来给护理员生成对应的护理任务,方便记录和跟踪老人服务的过程,假如执行过程中,出现了问题,比如没有执行,获取是取消执行,或者是改期执行,都可以很方便的记录下,方便护理员下次继续执行。

3. 使用过若依吗?怎么用的?
使用过,我最近开发的这个养老项目就是使用若依开发的。

若依是一个低代码开发平台,里面包含了后台管理系统中通用的模块,比如已经包含了权限的业务,日志记录,登录注册等等信息。

第二,在若依提供的前后端项目中,已经结构化了项目,里面有完整且完善的模块,如果想要开发自己的业务,可以在此基础上继续开发即可,省去了搭建项目的复杂流程

第三,若依作为低代码平台、提供了代码生成的功能,一般都是单表的增删改查,并且前后端的代码都生成了,我们开发的过程中,只需要在此基础上进行改造即可。

第四:如果前端有一些非常复杂的表单,若依也提供了动态表单的生成,通过拖拉拽的方式就可以生成前端的负责表单。

整体来说,使用若依极大提升了开发效率。

4. 说几个常见的git命令。
5.解释一下Git本地仓库的工作流程,要体现出工作区、暂存区和版本库的概念。
6. 你们项目中的分支是如何管理的,创建分支有什么规则?
7. 分支名称由4段组成,格式如下:
8. 如何解决Git合并时的冲突?请详细描述解决冲突的一般步骤。
9. 你们项目的bug是如何管理的,如何跟踪的?

嗯!上家公司自己搭建了禅道服务器,所有的bug都提在了禅道中。

当某一阶段代码完成之后,会把代码提供交到测试环境,由测试人员来进行测试

如果测试过程中,发现了bug,他们会禅道中详细说明bug产生的原因,并且分配给对应的开发人员

我们开发在禅道中看到bug之后,首先会复现这个问题,然后解决掉,在禅道中标记为已解决

测试人员会对已解决的bug的再次进行回归测试,如果没有问题,则会结束这个bug

10. 你们项目中的团队成员有哪些?
我们项目的团队成员有8个人,其中:

项目经理 1个人

产品经理 1个人

测试1个人

UI设计师1个人

后台开发 3个

前端开发 1个ps:不固定,特别是后台开发和前端开发,要根据项目的规模大小和开发长短来决定

11. 你一般是如何设计表的?
12. 做过表优化吗?是如何优化的?
13. Redis的数据类型有哪些?有什么特点?
14. 你在项目中做过优化(缓存)吗?是怎么优化的?
15. Redis如何与MySQL进行数据同步?
16. 你们在项目中是如何集成大模型的?

我们当时采用的百度的千帆大模型来解读体检报告的。用的比较新的4.0大模型。在千帆大模型中提供了很方便的SDK,集成调用是很容易的。我们只需要导入对应的依赖,然后通过提供的SDK来进行远程调用,其中有些参数我们要根据实际的情况来进行调整,比如,可以设置返回的格式,响应token的大小数量,如果对结果不满意,还可以微调temperature。在千帆大模型中,temperature默认是0.8,如果想要回答的更集中一些,我们可以稍微调小一点。

参与过~

我们当时的公司,自己搭建了一套jenkins,可以实现自动化部署,使用的jenkins中的pipeline 流水线技术进行部署。我们有专门的运维人员,我主要是负责协助运维人员来部署项目。 比如:编写对应的dockerfile脚本、提供一些基础的配置等工作,主要的部署任务是由运维来完的。

18. 常见的linux命令有哪些?
19. 你们项目中的日志是如何管理的?
20. 哪里用到了Threadlocal,它有什么特点?

在拦截器中用到了Threadlocal,将获取到的用户ID赋值到线程属性中。

ThreadLocal是Java中的一个线程局部变量工具类,它提供了一种在多线程环境下,每个线程都可以独立访问自己的变量副本的机制。ThreadLocal中存储的数据对于每个线程来说都是独立的,互不干扰。

21. 项目中对接过三方接口吗?如何对接?什么业务?
是的,我开发的多个项目中都对接过第三方接口,比如

项目中需要对接微信登录,获取微信用户的openId,需要发起远程请求,请求微信开发者平台提供的接口

项目中需要对接阿里云的OSS或者IOT平台,也需要发起远程请求到阿里的开发者平台提供的接口

一般对接这些第三方接口,

首先要明确的是该接口的详细描述,是否符合当前业务的需要

可以从三方提供的接口文档中明确接口的请求方式、入参、出参、路径等等这些必要信息

每个接口的厂商不一样的,使用java对接的方式也不相同,比如

对接微信,需要根据接口文档的描述,使用Http客户端来封装参数发起请求

对接阿里云相关接口,阿里提供了对应的sdk,只要导入pom依赖,就可以很方便的发起远程调用

总之,别管哪种方式,都是http请求,都要仔细按照接口文档说明进行调用

22. 你们项目中的权限是怎么做的?
由于我之前开发的项目是用若依框架作为基础框架来开发使用的,若依中已经提供了对应的权限功能,这块在项目已经自动集成了。虽然我没有实际开发,但是里面的权限逻辑,我是大概清楚的。

主要是基于RBAC的权限模型来完成的,有5张核心的表,分别是用户表、角色表、菜单表,用户和角色的多对多的关系,有一张中间表,角色和菜单是多对多的关系,也有一张中间表,所以共有5张表。

通过给用户分配不同的角色来达到分配不同的菜单,这样管理起来非常的方便。

其中的权限框架使用的spring security安全框架,用来完成用户的认证和授权,其底层原理也是基于刚才的5张表来完成。

23. 项目中用过多线程吗?
24. MySQL的索引是如何创建的?是什么场景?

好的!养老系统中有一个家属端,在方便老人的家属查看老人的信息,比如就可以实时的查看老人的健康数据,也可以查看老人的健康历史数据。

由于目前设备上报的数据都是存储到了MySQL的表中,设备上报的数据是巨大的,一天大概能上报70万的数据,当家属查看老人的历史数据的时候,由于表存储的数据较多,查询的效率就会很低。所以我们的解决方案就是给表中的查询字段添加了索引,这样查询效率就得到了很大的提升

25. MySQL索引底层的实现原理是什么?
26. 如何检查MySQL索引是否失效?
27. 关于索引失效,你遇到过哪些?
28. 什么是聚集索引和二级索引,什么是回表查询?
29. 在调用大模型解决问题的时候,遇到过什么问题吗?

遇到过。 一开始,我们设计prompt提示词的时候,会把老人的体检报告上传到OSS中,然后让大模型来读取这个链接,我们经过大量测试发现,这样虽然能读到提交报告的内容,但是读取的内容是有限的,并不能完整的获取体检报告的所有内容,所以,我们又换了一种方案,就是先使用工具来读取体检报告的内容,然后把内容拼接到prompt提示词中,这样虽然token变多了,但是精准度就高了很多。token变多,那一次评估大概需要花费1元左右,但是带来的效果是很明显的。养老院也感觉这个功能很强大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值