BabyMind 项目后端第七周周报进入第七周后项目整体已从功能开发阶段转向系统整合与质量提升阶段。前六周完成了三大核心Agent、RAG知识库、语音交互等主要功能模块的开发本周的重点则转向让系统更可靠、更准确、更贴近真实使用场景。具体工作主要围绕以下几个方向展开知识库内容的权威化替换与来源溯源能力完善、AI输出内容的中文化统一、健康档案自动化数据准确性修复以及新建宝宝时历史记录自动补全逻辑的完整实现。一、本周整体完成内容1. 完成RAG知识库权威资料接入与来源溯源能力前几周的知识库内容主要依赖脚本自动生成缺乏真实权威来源支撑。本周我们针对这一问题进行了系统性补充在data/knowledge_base/authoritative/目录下新建了五份基于权威指南整理的结构化中文知识文档nhc_baby_care_guide.md整理自国家卫生健康委员会《0-3岁婴幼儿健康养育照护指南试行》覆盖各阶段喂养要点、睡眠建议、体格发育监测等内容vaccine_schedule_2024.md整理自国家免疫规划疫苗儿童免疫程序及说明2021年版包含各疫苗接种时间、剂次、禁忌与接种后注意事项nutrition_feeding_guide.md整理自中国营养学会《7-24月龄婴幼儿喂养指南2022》覆盖辅食引入原则、各月龄喂养建议和过敏原引入方法who_growth_standards.md整理自WHO儿童生长发育标准包含各月龄大动作、语言、认知社交里程碑及早期发展促进原则common_illness_guide.md整理自中华医学会儿科学分会相关指南覆盖发热、腹泻、咳嗽等常见病症的处理原则与就医指征。每份文档顶部均标注了!-- 来源... --注释入库脚本同步提取该信息作为向量元数据确保检索结果可附带权威来源标注。同时对入库流程和RAG服务进行了优化使检索结果在返回给前端时能以【参考来源xxx】格式标注具体文献LLM也被明确要求在回答中引用来源。重新入库后知识库总条目达到876条经端到端验证检索维度匹配1024维、相关文档命中正常、来源字段有效填充。2. 完成AI输出内容全面中文化此前系统中存在AI生成内容中英文混用的问题最典型的是风险等级字段直接输出low/medium/high英文值前端展示不一致也不符合中文产品的使用体验。本周对此进行了系统性修复。新建了app/core/risk_level.py作为统一的风险等级处理模块提供normalize_risk_level()将英文值标准化为中文、coerce_risk_level()允许空值的宽松转换和risk_level_aliases()用于数据库过滤匹配三个工具函数。在Schema层通过field_validator实现读写时的自动标准化使旧数据库中的英文值在读取时自动转为中文新写入统一存储中文值。LLM的系统提示词也明确加入了所有回答必须使用中文风险等级为低/中/高的约束。后端所有风险等级比较逻辑包括高风险健康记录自动建档、疫苗延期触发判断等均更新为中文值判断同时保留对旧英文值的兼容处理。3. 修复健康记录自动建档时症状类型不准确的问题系统在健康Agent高风险问答后会自动创建健康记录但发现所有自动生成的记录symptom_type字段均为占位符qa_followup没有实际意义。根本原因是健康Agent的结构化回答中不包含symptom_type字段原有逻辑找不到对应字段时直接使用了硬编码兜底值。本周新增了_extract_symptom_type(question, core_conclusion)函数通过关键词映射从用户问题和AI回答的核心结论中提取真实症状名称发热、咳嗽、腹泻、皮疹等共14种常见症状兜底顺序调整为结构化字段 → 关键词提取 → core_conclusion前20字 → 健康咨询。修复后问宝宝发烧38.5度怎么办自动建档时symptom_type正确记录为发热。4. 完成新建/修改宝宝档案时历史记录自动补全新增宝宝或修改出生日期时系统缺乏对历史事项的自动处理家长需要手动逐一标记此前已完成的疫苗和里程碑使用体验较差。本周实现了auto_complete_past_events(db, baby)函数在宝宝创建或出生日期变更后自动执行出生日期严格早于今天的疫苗计划和成长提醒标记为已完成今日及之后的保持待完成状态。该功能在开发过程中暴露了一个架构问题GET /vaccines/{baby_id}/plan每次读取都会调用sync_vaccine_plans_for_baby重新推导状态而derive_vaccine_plan_status只在has_recordTrue时才返回completed导致自动补全的状态在每次读取后被覆盖。修复方案是在sync_vaccine_plans_for_baby中加入守卫逻辑若一条计划已是completed且没有对应接种记录仅自动补全场景跳过重新推导保持completed不变。同时将过去的判断改为严格小于今天 today避免当天待接种疫苗被误标记为已完成。该修复不影响正常的接种记录管理流程接种记录删除后仍能正确降级状态。5. 完成RAG端到端验证针对RAG是否真正起作用的疑问本周对系统进行了完整的端到端验证ChromaDB向量库数据完整health 473、nutrition 207、timeline 196条使用SiliconFlow嵌入接口1024维对查询进行向量化后检索正常相关文档命中率良好检索结果以【参考来源...】格式注入LLM提示词不是裸回答健康类问题的sources字段正确返回权威来源名称。验证过程中也确认了一个常见误区直接使用ChromaDB的query_texts接口测试会因嵌入维度不匹配默认384维 vs 应用使用的1024维报错这是测试方式的问题而非RAG本身的缺陷。二、本周核心代码与模块知识库权威资料与RAG溯源data/knowledge_base/authoritative/5份权威文档scripts/ingest_kb.pyapp/services/rag_service.py风险等级中文化app/core/risk_level.py新建app/schemas/qa.pyapp/schemas/health_record.pyapp/services/health_record_service.pyapp/services/vaccine_service.pyapp/services/agent_router_service.py健康记录症状类型修复app/services/health_record_service.py宝宝历史记录自动补全app/services/baby_service.pyapp/services/vaccine_service.pyapp/api/routers/babies.pyapp/schemas/baby.py三、本周遇到的问题与解决思路1. 自动补全状态被读取时覆盖宝宝档案自动补全功能在写入时正确标记了21条历史疫苗为已完成但下一次读取后全部被覆盖回逾期状态。排查后确认是GET /vaccines接口每次读取都触发状态重推导而重推导逻辑要求有真实接种记录才能返回completed。解决方案是在同步函数中对无记录的completed状态添加保护跳过重推导保持自动补全结果稳定。2. 向量维度不匹配导致的误判在验证RAG时直接调用ChromaDB的query_texts接口报维度不匹配错误一度误判为RAG系统有问题。分析后明确这是测试方式本身的问题——query_texts使用ChromaDB内置的384维嵌入模型而应用使用的是SiliconFlow的1024维模型两者不能混用。通过使用应用自身的嵌入客户端先生成查询向量再调用query_embeddings接口验证结果正常。这一问题也提示后续测试时需注意测试环境与应用环境的嵌入模型一致性。3. 风险等级中英文混存的数据库兼容问题风险等级改为中文后历史数据库记录中仍存在英文值。若直接修改比较逻辑会导致旧数据查询失效。通过在Schema层的field_validator和Service层的过滤函数中同时接受中英文两种形式保证了向后兼容旧记录在读取时自动转为中文展示新记录统一写入中文无需数据迁移。四、阶段性成果经过第七周开发BabyMind项目在功能完整性基础上系统的准确性和可靠性得到了进一步提升。知识库内容从脚本生成转向权威资料支撑AI输出实现全面中文化自动建档的数据质量明显改善历史记录自动补全也让新用户的使用门槛降低。本周工作的核心价值在于从功能能跑到功能可信的转变。RAG验证结果表明系统的智能问答确实基于知识库检索而非模型直接生成知识来源可查这对一个育儿健康类应用至关重要。当前系统能力可以概括为用户问题文字/语音 ↓ 多Agent路由 ↓ RAG检索权威知识库876条含国家卫健委/WHO/中华医学会等来源 ↓ 结合宝宝个人档案月龄/过敏原/健康记录 ↓ 生成结构化中文回答附来源标注 ↓ 必要时自动联动疫苗计划/营养推荐/健康档案五、下周计划下一阶段为项目最终验收准备阶段主要工作包括完成全量功能验收测试覆盖各模块主要流程整理项目成果包补充README文档含知识库初始化步骤、部署说明确认Gitee代码仓库完整开源修复联调过程中发现的剩余小问题准备答辩演示流程确保核心功能在演示环境下稳定运行。总体来看第七周是项目从开发态转向交付态的关键一周。后续工作重心将从开发新功能转向保证系统稳定可演示。
Babymind 项目后端第七周周报
BabyMind 项目后端第七周周报进入第七周后项目整体已从功能开发阶段转向系统整合与质量提升阶段。前六周完成了三大核心Agent、RAG知识库、语音交互等主要功能模块的开发本周的重点则转向让系统更可靠、更准确、更贴近真实使用场景。具体工作主要围绕以下几个方向展开知识库内容的权威化替换与来源溯源能力完善、AI输出内容的中文化统一、健康档案自动化数据准确性修复以及新建宝宝时历史记录自动补全逻辑的完整实现。一、本周整体完成内容1. 完成RAG知识库权威资料接入与来源溯源能力前几周的知识库内容主要依赖脚本自动生成缺乏真实权威来源支撑。本周我们针对这一问题进行了系统性补充在data/knowledge_base/authoritative/目录下新建了五份基于权威指南整理的结构化中文知识文档nhc_baby_care_guide.md整理自国家卫生健康委员会《0-3岁婴幼儿健康养育照护指南试行》覆盖各阶段喂养要点、睡眠建议、体格发育监测等内容vaccine_schedule_2024.md整理自国家免疫规划疫苗儿童免疫程序及说明2021年版包含各疫苗接种时间、剂次、禁忌与接种后注意事项nutrition_feeding_guide.md整理自中国营养学会《7-24月龄婴幼儿喂养指南2022》覆盖辅食引入原则、各月龄喂养建议和过敏原引入方法who_growth_standards.md整理自WHO儿童生长发育标准包含各月龄大动作、语言、认知社交里程碑及早期发展促进原则common_illness_guide.md整理自中华医学会儿科学分会相关指南覆盖发热、腹泻、咳嗽等常见病症的处理原则与就医指征。每份文档顶部均标注了!-- 来源... --注释入库脚本同步提取该信息作为向量元数据确保检索结果可附带权威来源标注。同时对入库流程和RAG服务进行了优化使检索结果在返回给前端时能以【参考来源xxx】格式标注具体文献LLM也被明确要求在回答中引用来源。重新入库后知识库总条目达到876条经端到端验证检索维度匹配1024维、相关文档命中正常、来源字段有效填充。2. 完成AI输出内容全面中文化此前系统中存在AI生成内容中英文混用的问题最典型的是风险等级字段直接输出low/medium/high英文值前端展示不一致也不符合中文产品的使用体验。本周对此进行了系统性修复。新建了app/core/risk_level.py作为统一的风险等级处理模块提供normalize_risk_level()将英文值标准化为中文、coerce_risk_level()允许空值的宽松转换和risk_level_aliases()用于数据库过滤匹配三个工具函数。在Schema层通过field_validator实现读写时的自动标准化使旧数据库中的英文值在读取时自动转为中文新写入统一存储中文值。LLM的系统提示词也明确加入了所有回答必须使用中文风险等级为低/中/高的约束。后端所有风险等级比较逻辑包括高风险健康记录自动建档、疫苗延期触发判断等均更新为中文值判断同时保留对旧英文值的兼容处理。3. 修复健康记录自动建档时症状类型不准确的问题系统在健康Agent高风险问答后会自动创建健康记录但发现所有自动生成的记录symptom_type字段均为占位符qa_followup没有实际意义。根本原因是健康Agent的结构化回答中不包含symptom_type字段原有逻辑找不到对应字段时直接使用了硬编码兜底值。本周新增了_extract_symptom_type(question, core_conclusion)函数通过关键词映射从用户问题和AI回答的核心结论中提取真实症状名称发热、咳嗽、腹泻、皮疹等共14种常见症状兜底顺序调整为结构化字段 → 关键词提取 → core_conclusion前20字 → 健康咨询。修复后问宝宝发烧38.5度怎么办自动建档时symptom_type正确记录为发热。4. 完成新建/修改宝宝档案时历史记录自动补全新增宝宝或修改出生日期时系统缺乏对历史事项的自动处理家长需要手动逐一标记此前已完成的疫苗和里程碑使用体验较差。本周实现了auto_complete_past_events(db, baby)函数在宝宝创建或出生日期变更后自动执行出生日期严格早于今天的疫苗计划和成长提醒标记为已完成今日及之后的保持待完成状态。该功能在开发过程中暴露了一个架构问题GET /vaccines/{baby_id}/plan每次读取都会调用sync_vaccine_plans_for_baby重新推导状态而derive_vaccine_plan_status只在has_recordTrue时才返回completed导致自动补全的状态在每次读取后被覆盖。修复方案是在sync_vaccine_plans_for_baby中加入守卫逻辑若一条计划已是completed且没有对应接种记录仅自动补全场景跳过重新推导保持completed不变。同时将过去的判断改为严格小于今天 today避免当天待接种疫苗被误标记为已完成。该修复不影响正常的接种记录管理流程接种记录删除后仍能正确降级状态。5. 完成RAG端到端验证针对RAG是否真正起作用的疑问本周对系统进行了完整的端到端验证ChromaDB向量库数据完整health 473、nutrition 207、timeline 196条使用SiliconFlow嵌入接口1024维对查询进行向量化后检索正常相关文档命中率良好检索结果以【参考来源...】格式注入LLM提示词不是裸回答健康类问题的sources字段正确返回权威来源名称。验证过程中也确认了一个常见误区直接使用ChromaDB的query_texts接口测试会因嵌入维度不匹配默认384维 vs 应用使用的1024维报错这是测试方式的问题而非RAG本身的缺陷。二、本周核心代码与模块知识库权威资料与RAG溯源data/knowledge_base/authoritative/5份权威文档scripts/ingest_kb.pyapp/services/rag_service.py风险等级中文化app/core/risk_level.py新建app/schemas/qa.pyapp/schemas/health_record.pyapp/services/health_record_service.pyapp/services/vaccine_service.pyapp/services/agent_router_service.py健康记录症状类型修复app/services/health_record_service.py宝宝历史记录自动补全app/services/baby_service.pyapp/services/vaccine_service.pyapp/api/routers/babies.pyapp/schemas/baby.py三、本周遇到的问题与解决思路1. 自动补全状态被读取时覆盖宝宝档案自动补全功能在写入时正确标记了21条历史疫苗为已完成但下一次读取后全部被覆盖回逾期状态。排查后确认是GET /vaccines接口每次读取都触发状态重推导而重推导逻辑要求有真实接种记录才能返回completed。解决方案是在同步函数中对无记录的completed状态添加保护跳过重推导保持自动补全结果稳定。2. 向量维度不匹配导致的误判在验证RAG时直接调用ChromaDB的query_texts接口报维度不匹配错误一度误判为RAG系统有问题。分析后明确这是测试方式本身的问题——query_texts使用ChromaDB内置的384维嵌入模型而应用使用的是SiliconFlow的1024维模型两者不能混用。通过使用应用自身的嵌入客户端先生成查询向量再调用query_embeddings接口验证结果正常。这一问题也提示后续测试时需注意测试环境与应用环境的嵌入模型一致性。3. 风险等级中英文混存的数据库兼容问题风险等级改为中文后历史数据库记录中仍存在英文值。若直接修改比较逻辑会导致旧数据查询失效。通过在Schema层的field_validator和Service层的过滤函数中同时接受中英文两种形式保证了向后兼容旧记录在读取时自动转为中文展示新记录统一写入中文无需数据迁移。四、阶段性成果经过第七周开发BabyMind项目在功能完整性基础上系统的准确性和可靠性得到了进一步提升。知识库内容从脚本生成转向权威资料支撑AI输出实现全面中文化自动建档的数据质量明显改善历史记录自动补全也让新用户的使用门槛降低。本周工作的核心价值在于从功能能跑到功能可信的转变。RAG验证结果表明系统的智能问答确实基于知识库检索而非模型直接生成知识来源可查这对一个育儿健康类应用至关重要。当前系统能力可以概括为用户问题文字/语音 ↓ 多Agent路由 ↓ RAG检索权威知识库876条含国家卫健委/WHO/中华医学会等来源 ↓ 结合宝宝个人档案月龄/过敏原/健康记录 ↓ 生成结构化中文回答附来源标注 ↓ 必要时自动联动疫苗计划/营养推荐/健康档案五、下周计划下一阶段为项目最终验收准备阶段主要工作包括完成全量功能验收测试覆盖各模块主要流程整理项目成果包补充README文档含知识库初始化步骤、部署说明确认Gitee代码仓库完整开源修复联调过程中发现的剩余小问题准备答辩演示流程确保核心功能在演示环境下稳定运行。总体来看第七周是项目从开发态转向交付态的关键一周。后续工作重心将从开发新功能转向保证系统稳定可演示。