目录

一、项目背景

二、技术介绍

三、功能介绍

四、代码设计

五、系统实现


一、项目背景

第七次全国人口普查数据显示,我国60岁及以上人口已超过2.64亿,占总人口的18.7%,标志着我国已全面步入深度老龄化社会。与此同时,“空巢老人”比例持续攀升,传统家庭养老功能不断弱化,而机构养老资源分布不均、服务成本高昂,难以满足日益增长的多元化养老需求。在此背景下,社区养老服务凭借其“离家不离亲”的独特优势,成为缓解养老压力的重要着力点。

然而,当前多数社区养老管理系统仍停留在信息化初级阶段,普遍存在三大痛点:其一,服务供给与老年人需求之间缺乏精准匹配,大量服务资源闲置与老人“不知道、不会用”的现象并存;其二,老年人健康监测与安全预警依赖人工巡查,响应滞后且覆盖面有限;其三,服务过程缺乏有效的评价反馈闭环,服务质量难以量化与持续改进。这些问题本质上反映了传统系统在数据处理与智能决策能力上的不足。

2025年,随着大语言模型的快速演进与低成本化,AI大模型技术正加速从通用场景向垂直领域渗透。在养老服务场景中,大模型所具备的自然语言理解、多模态信息处理与个性化推荐能力,为解决上述痛点提供了全新的技术路径——通过构建“智能语音助手”降低老年人使用门槛,利用行为数据分析实现主动式安全预警,借助语义理解技术完成服务评价的自动化挖掘与分析。

基于上述背景,本课题拟设计并实现一个深度集成AI大模型的社区养老管理系统。系统以Spring Boot 3为后端框架,Vue 3构建前端界面,重点将大模型能力深度嵌入需求匹配、健康监测与服务评价等核心模块,探索构建一个“主动感知、智能响应、持续优化”的智慧养老服务体系,以技术温度弥合养老服务的“最后一公里”。

二、技术介绍

系统架构: B/S 模式,后端采用分层结构,前后端分离。
跨平台支持:Windows / macOS
开发环境:JDK 17 + IntelliJ IDEA + MySQL 8.0 + VS Code
技术栈: Spring Boot 3 + MyBatis + Vue 3 + Element Plus + Vite + Axios + ECharts

三、功能介绍

1. 系统管理员功能
人员管理: 对员工、社区老人等账户与档案进行增、删、改、查与状态维护。
基础数据管理: 维护活动类型、服务类型等基础字典数据。
内容管理: 配置首页轮播图;管理社区公告。
健康管理: 查看与维护老人的健康档案数据。
社区活动管理: 对员工提交的活动进行审批与发布相关管理。
服务管理: 服务预约审批;全平台服务评价的查询与管理。
数据概览统计;数据可视化大屏集中展示核心业务指标与趋势。
消息中心: 接收与处理系统类消息(如预警、审批与业务通知等)。
2. 社区员工功能
工作台概览: 查看与本人相关的预约、活动、评价与档案等工作量统计。
老人档案: 维护所服务老人的档案与健康相关信息。
社区活动管理: 活动申请;对老人活动报名进行审批。
服务管理: 查看与回复面向自己的服务评价。
3. 老人用户功能
首页与资讯: 浏览轮播图、最新公告与社区活动;可对活动进行收藏,便于持续关注。
公告与活动: 查看公告详情;浏览活动并参与报名。
健康档案: 查看个人健康记录;支持基于历史数据的 AI 健康分析与今日健康小贴士。
服务预约: 按服务类型预约服务,查看服务人员信息并完成评价。
个人中心: 维护个人资料与账户相关设置。
消息中心: 查看系统与业务消息(含健康异常等提醒)。
账号体系: 支持使用 QQ 邮箱注册/登录(与后端校验规则一致)。
三、创新功能
1. QQ 邮箱一体化账号与安全通知
系统将老人用户账号体系与 QQ 邮箱深度结合:注册与登录限定QQ邮箱域名,便于老年群体使用熟悉的邮箱一站式完成账号开通与找回场景延伸;后端集成 QQ 邮箱 SMTP,在健康预警、业务提醒等场景下可向指定邮箱 自动投递 HTML 邮件,与站内消息形成「站内 + 邮件」双通道触达,提升重要信息的送达率与可追溯性。
2. AI 健康管理(基于讯飞星火大模型)
对接讯飞星火能力,为老人端提供「今日健康小贴士」(可结合最近健康记录生成,并具备按日缓存与本地兜底话术);支持对多条健康记录进行综合分析并持久化历史分析结果。当血压、心率、血糖、体温等指标出现异常等级时,系统可异步调用大模型生成个性化建议,并通过站内消息与QQ邮箱邮件 向相关人员推送预警与说明。
3. 数据可视化大屏
管理员可通过大屏页面对老人数量、员工、活动、健康记录、预约与评价等多维指标进行聚合展示,辅助社区养老运营的可视化监管与汇报。支持定制和二次开发

四、代码设计

@Service
public class LLMServiceImpl implements LLMService {
    
    @Value("${llm.api-key}")
    private String apiKey;
    
    private final RestTemplate restTemplate;
    
    // 健康预警提示词模板
    private static final String HEALTH_ALERT_PROMPT = """
        你是一位专业的社区健康管理师。根据以下老人的健康数据:
        - 血压:%s
        - 血糖:%s
        - 心率:%s
        - 活动量:%s步
        
        请分析是否存在健康风险,给出风险评估等级(低/中/高)和具体的建议。
        要求:回复格式为JSON,包含riskLevel和advice两个字段。
        """;
    
    @Override
    public HealthAlertResult analyzeHealthData(HealthDataDTO data) {
        String prompt = String.format(HEALTH_ALERT_PROMPT, 
            data.getBloodPressure(), data.getBloodSugar(), 
            data.getHeartRate(), data.getStepCount());
        String response = callLLM(prompt);
        return parseHealthResult(response);
    }
    
    @Override
    public String chat(String userId, String message) {
        // 构建包含历史对话上下文的请求
        List<Message> messages = buildConversationContext(userId, message);
        return callLLMWithContext(messages);
    }
}
@Service
public class DemandMatchingService {
    
    public List<ServiceProviderVO> matchDemand(String demandDesc) {
        // 1. 从数据库获取候选服务商列表
        List<ServiceProvider> providers = providerMapper.selectAvailableList();
        
        // 2. 构建大模型匹配提示词
        String prompt = buildMatchingPrompt(demandDesc, providers);
        
        // 3. 调用大模型获取推荐排序后的ID列表
        String result = llmService.callLLM(prompt);
        List<Long> rankedIds = parseRankedIds(result);
        
        // 4. 返回排序后的服务商信息
        return rankedIds.stream()
            .map(providerMapper::selectById)
            .collect(Collectors.toList());
    }
}

五、系统实现

更多推荐