最新案例动态,请查阅【案例共创】码道智医:给医学文献查询装上AI大脑。小伙伴们快来进行实操吧!
本案例由开发者:dhzss提供,华为开发者空间案例中心优化并收录。
一、概述
1.1 案例介绍
在医学研究领域,科研人员每天需要查阅大量文献来跟踪最新研究进展。然而,面对PubMed等全球权威数据库中海量的医学文献,传统的人工检索方式效率低下:关键词搜索结果动辄成千上万篇,筛选耗时费力;专业术语晦涩难懂,理解门槛高;跨语言文献阅读更是困难重重。据统计,医学研究者平均每天花费3-4小时在文献检索和阅读上,严重挤占了科研创新时间。本案例旨在通过AI技术重塑文献查询体验,让科研人员从"大海捞针"的困境中解放出来,专注于更有价值的科研工作。
本案例基于华为云开发环境,采用华为云码道(CodeArts)代码智能体这一前沿AI编码辅助工具,结合智能生成和智能问答两大核心能力,快速构建医学文献查询AI助手。该系统支持自然语言交互、智能文献推荐、关键信息提取等功能,能够理解用户意图、精准匹配PubMed数据库资源,将文献检索效率提升10倍以上。华为云码道(CodeArts)代码智能体让复杂开发任务变得简单,开发者无需深厚的AI背景即可快速搭建专业应用。
案例技术选型:
-
华为开发者空间开发平台 - 云开发环境(容器):华为云提供的一站式云上开发环境,支持开箱即用的NodeJS、Python、Java等容器环境。免去基础环境部署繁琐,让开发者专注于业务逻辑开发。本案例中为保证环境的一致性,以及开箱即用的python基础环境,选用云开发环境(容器)作为案例中项目工程的部署运行环境,避免本地环境部署和版本差异所带来的项目运行问题。
-
华为云码道(CodeArts)代码智能体:一款集代码大模型、AI IDE、Code Agent为一体的智能编码产品。一个理解项目需求,懂得编码之道,善用百器的实干派AI研发砖家,开启你的编码自动驾驶模式。本案例中作为核心开发工具,通过智能体模式快速构建医学文献查询AI助手,大幅降低开发门槛。
-
华为云码道 SDD SKILL:码道内置的SDD SKILL遵循规范驱动开发(Specification Driven Development)采用结构化的"规范-设计-任务"流程,通过
spec.md、design.md和tasks.md三个核心文档实现系统化开发。本案例中作为开发流程规范工具,确保医学文献查询AI助手的开发过程系统化、可追溯,提高开发质量和效率。 -
华为云MaaS平台 DeepSeek-V3.2大模型:华为云提供的MaaS模型即服务平台集成的DeepSeek-V3.2先进大语言模型。具备强大的自然语言理解和生成能力,支持多轮对话、知识推理、文本生成等AI能力。本案例中作为AI助手的核心推理引擎,负责理解用户查询意图、分析文献内容、生成智能回复。
-
PubMed数据库:全球权威医学文献数据库。确保文献来源的可靠性和全面性,为医学研究提供高质量的数据支撑。本案例中提供权威医学文献数据库及E-utilities API接口,作为医学文献查询AI助手的数据来源。
1.2 适用对象
- 个人开发者
- 高校学生
- 企业开发者
1.3 案例时间
本案例总时长预计90分钟。
1.4 案例流程
说明:
- VS Code安装开发者空间插件,远程连接云开发环境(容器);
- 云开发环境(容器)搭建华为云码道(CodeArts)代码智能体;
- 对话码道,开发SDD并检验是否符合MedSearch项目预期;
- 对话码道,生成MedSearch项目;
- 为MedSearch项目配置MaaS大模型与PubMed API Key等参数;
- 启动MedSearch项目,验证MedSearch项目功能;
- 对话码道,更新优化SDD,沉淀项目知识库。
1.5 资源总览
本案例预计花费0或1元。
说明:以下代金券价格不一但均可使用,每个账号在活动期间只可领取使用1次。
| 资源名称 | 规格 | 单价(元) |
|---|---|---|
| 华为开发者空间开发平台 - 云开发环境(容器) | 鲲鹏通用计算增强型 kc1 | 4vCPUs | 8G | HCE | 免费 |
| 华为云码道(CodeArts)代码智能体 | 系统标配 | 免费 |
| DeepSeek-R1/V3.2千万Tokens代金券 | DeepSeekV3.2 | 1.00 |
| ModelArts Studio大模型(DS/K2/Q3等)通用代金券 | DeepSeekV3.2 | 0.00 |
二、环境和资源准备
2.1 远程连接云开发环境(容器)与码道搭建
参考案例《基于华为开发者空间 - 云开发环境(容器)搭建华为云码道(CodeArts)代码智能体》中的“二、VS Code远程连接云开发环境(容器)”和“三、搭建华为云码道(CodeArts)代码智能体”步骤,完成云开发环境(容器)远程连接与码道搭建。
2.2 码道内置SKILL配置及介绍
打开码道设置 > 技能与规则,确保系统内置中creating-sdd-directory、managing-spec/design/tasks-document、frontend-design等SKILL为开启状态。
本案例中先使用华为云码道 + SDD SKILL构建SDD,通过frontend-design美化页面设计,然后执行开发任务。
SKILL功能介绍:
SDD(Specification Driven Development 规范驱动开发)是一套系统化的软件开发方法论,其优势是使决策过程可追溯,便于团队协作和知识传承。
同时,文档与代码同步更新,形成完整的知识库,极大提升了项目的可维护性。特别适合多模块复杂功能、需要团队协作或长期维护的项目,能够有效降低技术债务,提高开发质量和效率。
SDD SKILL含四大核心流程SKILL:
- creating-sdd-directory:是SDD流程的起点,负责初始化规范驱动开发所需的目录结构和基础文件。
- managing-spec-document:负责管理
spec.md文档,明确记录"做什么",确保需求清晰无歧义,避免开发过程中的需求偏差,是整个SDD流程的基础。 - managing-design-document:负责管理
design.md文档,详细规划"怎么做",在设计阶段就考虑架构、技术选型和潜在问题,大幅减少返工成本,是连接需求与实现的桥梁。 - managing-tasks-document:负责管理
tasks.md文档,将复杂项目分解为可追踪的具体任务,使开发进度一目了然,是SDD流程的落地环节。
frontend-design是一个专项能力SKILL,专注于创建高质量、生产级的前端界面,提供独特的设计风格,避免通用的AI美学,生成富有创意和精致的代码。
2.3 安装云开发环境(容器)Vue插件
后续通过华为云码道生成的 MedSearch 项目前端会使用Vue,此处需要手动为其安装插件。打开VS Code插件市场,搜索并安装Vue(Official)插件。
2.4 领取华为云MaaS平台大模型Tokens福利
方式一: 登录华为开发者空间,参考案例《华为开发者空间 - ModelArts Studio大模型通用代金券领取使用指导》中的“二、 开通MaaS平台大模型”章节内容领取代金券,获取到模型的API地址、模型名称和API Key。
方式二: 登录华为开发者空间,参考案例《华为云MaaS平台大模型Tokens领取使用指导》中的“二、 领取MaaS平台大模型Tokens”章节内容,领取MaaS平台DeepSeek V3系列大模型Tokens代金券,购买ModelArts Studio DeepSeek Tokens套餐包,开通模型服务,最后获取到模型的API地址、模型名称和API Key。
注意:记录API Key和模型名称留作后面步骤使用。
2.5 获取PubMed数据库API Key
注册登录NCBI官网,打开右上角ACCOUNT > Account settings。
找到 API Key Management 部分,点击 “Create an API Key” 或 “Generate API Key”,复制并保存API Key,后续步骤中会用到。
三、对话码道:构建 MedSearch 项目
3.1 项目需求分析与功能设计
-
项目名称:MedSearch - PubMed医学文献AI查询系统
-
项目定位:为医生和医学生提供H5 AI助手应用,用于查询疾病相关的PubMed文献资料并生成AI总结。
技术栈:
- 前端:Vue3 + Vite + TypeScript
- 后端:Flask (Python)
- AI服务:华为云MaaS平台
- 文献检索:PubMed E-utilities API
- 界面设计
┌─────────────────────────────────────────────────────────────────┐
│ 【板块一:HeaderSection】 │
│ ┌──────┐ │
│ │ │ MedSearch │
│ │ Logo │ PubMed医学文献AI查询系统 │
│ └──────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 【板块二:SearchSection】 │
│ │
│ MedSearch检索关键词 │
│ 输入疾病/病理/研究方向,MedSearch将自动提取核心关键词... │
│ │
│ ┌────────────────────────────────────────────┐ ┌───────────┐ │
│ │ 请输入疾病描述或研究方向... │ │ 生成关键词 │ │
│ │ (检索输入框,2行高度,最多300字) │ │ │ │
│ └────────────────────────────────────────────┘ └───────────┘ │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 肺腺癌 ×│ │EGFR突变 ×│ │ 预后 ×│ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ (关键词标签,蓝色渐变背景,可删除) │
│ │
│ ┌──────────────────┐ ┌──────┐ ┌──────────────┐ │
│ │ 新的关键词 │ │ 添加 │ │ 开始检索文献 │ │
│ └──────────────────┘ └──────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 【板块三:LiteratureSection】 │
│ │
│ 文献列表 │
│ 检索到156条PubMed医学文献,已为您筛选 9 篇相关文献... │
│ │
│ ┌───┬───┬────────────────────────────────────────┬──────────┐ │
│ │ 1 │ ☐ │ 肺腺癌患者EGFR突变与预后的相关性研究 │PMID:12345│ │
│ └───┴───┴────────────────────────────────────────┴──────────┘ │
│ ┌───┬───┬────────────────────────────────────────┬──────────┐ │
│ │ 2 │ ☑ │ EGFR突变在肺腺癌靶向治疗中的应用 │PMID:67890│ │
│ └───┴───┴────────────────────────────────────────┴──────────┘ │
│ ┌───┬───┬────────────────────────────────────────┬──────────┐ │
│ │ 3 │ ☐ │ 肺腺癌EGFR突变检测方法比较研究 │PMID:11111│ │
│ └───┴───┴────────────────────────────────────────┴──────────┘ │
│ ...(共9篇文献) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 已选择 2 篇文献 当前第1页,共18页 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────┐ ┌──────────────┐ │
│ │ 更多文献 │ │ 生成AI总结 │ │
│ └─────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 【板块四:SummarySection】 │
│ │
│ 文献详情 │
│ MedSearch已为您检索的文献生成专业总结 │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 肺腺癌患者EGFR突变与预后的相关性研究 │ │
│ │ EGFR Mutation and Prognosis in Lung Adenocarcinoma │ │
│ │ 张三, 李四, 王五 ... | 2023-01-15 | PMID: 12345 | [查看原文]│ │
│ ├───────────────────────────────────────────────────────────┤ │
│ │ 关键发现 │ │
│ │ • EGFR突变在肺腺癌患者中发生率为15-30% │ │
│ │ • 19号外显子缺失患者预后较好 │ │
│ │ │ │
│ │ 研究趋势 │ │
│ │ • 靶向治疗药物研发持续升温 │ │
│ │ • 联合治疗策略成为研究热点 │ │
│ │ │ │
│ │ 临床意义 │ │
│ │ • 建议对所有肺腺癌患者进行EGFR检测 │ │
│ │ • 根据突变类型选择个体化治疗方案 │ │
│ └───────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────────┘
- 核心功能流程
- 关键词生成流程:用户输入疾病描述(10-300字符),AI生成3个中文关键词,用户可添加/删除关键词(最多5个),点击"开始检索文献",翻译中文关键词为英文。
- 文献检索流程:使用英文关键词调用PubMed API,返回文献列表和总数,翻译文献标题为中文,AI总结摘要(不超过100字),显示文献列表(每页9篇)。
- 总结生成流程:用户勾选多篇文献,点击"生成AI总结",为每篇文献生成详细总结(关键发现、研究趋势、临床意义),显示文献详情卡片
3.2 设计 Prompt 生成SDD
根据以上项目需求,设计如下 Prompt :
请帮我初始化一个SDD项目,先不要执行开发任务,我检查修改SDD项目后再告诉你执行开发:
1、项目概述
项目名称:MedSearch - PubMed医学文献AI查询系统
项目定位:为医生和医学生提供H5 AI助手应用,用于查询疾病相关的PubMed文献资料并生成AI总结。
技术栈:
前端:Vue3 + Vite + TypeScript
后端:Flask (Python)
AI服务:华为云MaaS平台
文献检索:PubMed E-utilities API
2、页面布局(从上到下分为四个板块)
板块一:HeaderSection
网站名称:MedSearch - PubMed医学文献AI查询系统
板块二:SearchSection(MedSearch检索关键词)
标题:MedSearch检索关键词
副标题:输入疾病/病理/研究方向,MedSearch将自动提取核心关键词并构建PubMed检索策略。例:肺腺癌的EGFR突变与预后相关性
第一行:检索输入框(2行高度,最多300字)+ "生成关键词"按钮
第二行:关键词标签展示(蓝色渐变背景,可删除,最多5个)
第三行:"新的关键词"输入框 + "添加"按钮 + "开始检索文献"按钮
功能:AI生成3个中文关键词,搜索时翻译为英文
板块三:LiteratureSection(文献列表)
标题:文献列表
副标题:检索到{totalCount}条PubMed医学文献,已为您筛选 9 篇相关文献,请勾选文献,MedSearch将为您生成专业的总结报告。
文献列表(列表形式):每行显示序号 + 复选框 + 文献标题(中文)+ PMID
选择信息:左侧"已选择 X 篇文献",右侧"当前第X页,共Y页"
操作按钮:"更多文献"按钮 + "生成AI总结"按钮
功能:每页9篇,支持分页,支持勾选多篇文献
板块四:SummarySection(文献详情)
标题:文献详情
副标题:MedSearch已为您检索的文献生成专业总结
每篇文献卡片:
第一行:文献标题(中文)
第二行:文献标题(英文)
第三行:作者(前3位,超过显示"...")| 发布日期 | PMID | "查看原文"按钮
下方:关键发现、研究趋势、临床意义
功能:每篇勾选文献单独生成总结,点击"查看原文"跳转PubMed
3、设计风格:前端界面使用 frontend-design SKILL 设计,增加页面整体美感,避免页面的 AI 化设计。
4、核心功能流程
关键词生成流程:用户输入疾病描述(10-300字符),AI生成3个中文关键词,用户可添加/删除关键词(最多5个),点击"开始检索文献",翻译中文关键词为英文。
文献检索流程:使用英文关键词调用PubMed API,返回文献列表和总数,翻译文献标题为中文,AI总结摘要(不超过100字),显示文献列表(每页9篇)。
总结生成流程:用户勾选多篇文献,点击"生成AI总结",为每篇文献生成详细总结(关键发现、研究趋势、临床意义),显示文献详情卡片
在码道Agent对话界面,选用规范驱动模式(Spec-Driven Mode),发送上述SDD生成请求。
- 码道首先调用
creating-sdd-directory生成目录结构和基础文件。
- 调用
managing-spec-documentSKILL生成需求规格文档spec.md。
- 调用
managing-design-documentSKILL生成设计文档design.md。
- 码道继续执行任务,调用
managing-tasks-documentSKILL生成开发任务清单tasks.md。
- 最后进行项目总结。
通篇检查项目结构、功能设计、需求以及开发任务清单,是否和预期一致。
3.3 开发 MedSearch 的项目
对话码道:“遵循SDD项目的spec.md、design.md、tasks.md开始开发 MedSearch 项目”。码道遵循SDD要求开始开发 MedSearch 的项目:
- 前端项目初始化
- 后端项目初始化
- 后端数据模型开发
- 后端工具类开发
- 后端外部服务封装
- 实现后端业务逻辑层
- 实现后端API路由
- 前端类型定义开发
- 前端工具类开发
- 开发前端API封装
- 调用
frontend-designSKILL开发前端组件
- 前端状态管理和样式设计
- MedSearch项目开发完成总结
3.4 环境配置与快速启动
开发任务执行完毕后,可以查看项目结构如下:
python/
├── medsearch/
│ ├── app.py # Flask应用主文件(入口)
│ ├── requirements.txt # Python依赖包
│ ├── .env # 环境变量配置(包含API密钥)
│ ├── .env.example # 环境变量配置示例
│ ├── run.sh # 启动脚本
│ ├── test_api.py # API测试文件
│ ├── README.md # 项目文档
│ ├── config/ # 配置模块
│ │ ├── __init__.py
│ │ └── config.py # 配置类(开发/生产环境)
│ ├── models/ # 数据模型
│ │ ├── __init__.py
│ │ └── data_models.py # 数据模型定义
│ ├── modules/ # 业务模块
│ │ ├── __init__.py
│ │ ├── api_routes.py # API路由定义(5个接口)
│ │ ├── maas_service.py # 华为云MaaS服务(AI能力)
│ │ └── pubmed_service.py # PubMed服务(文献检索)
│ └── utils/ # 工具函数
│ ├── __init__.py
│ └── helpers.py # 辅助函数(XSS过滤、验证等)
└──medsearch-frontend/
├── src/
│ ├── api/ # API服务封装
│ │ └── medsearch.ts
│ ├── components/ # Vue组件
│ │ ├── HeaderSection.vue
│ │ ├── InputSection.vue
│ │ ├── KeywordSection.vue
│ │ ├── LiteratureSection.vue
│ │ └── SummarySection.vue
│ ├── types/ # TypeScript类型定义
│ │ └── index.ts
│ ├── utils/ # 工具函数
│ ├── App.vue # 主应用组件
│ └── main.ts # 应用入口
├── .env # 环境变量配置
├── vite.config.ts # Vite配置
└── package.json # 项目配置
3.4.1 后端工程部署与启动
- 安装依赖
cd /workspace/python/medsearch/ # 本案例中将后端程序部署在/workspace/python目录下,请根据实际情况调整
pip install -r requirements.txt # 安装依赖
- 配置环境变量
复制环境变量配置文件,然后修改配置项
cp .env.example .env # 复制环境变量配置文件
# 修改配置项:
MAAS_API_URL=步骤“领取华为云MaaS平台大模型Tokens福利”中获取到的API地址;
MAAS_API_KEY=步骤“领取华为云MaaS平台大模型Tokens福利”中获取到的API Key;
MAAS_MODEL=步骤“领取华为云MaaS平台大模型Tokens福利”中获取到的模型名称;
PUBMED_API_KEY=步骤“获取PubMed数据库API Key”中获取到的API Key;
- 运行后端应用
输入如下指令启动后端应用。
python app.py
启动成功后,打开浏览器访问 http://localhost:5000。
至此,后端程序启动成功。
3.4.2 前端工程部署与启动
- 安装依赖
在VS Code中从新打开一个终端窗口,输入如下指令:
cd python/medsearch-frontend
npm init -y
npm install
- 启动项目
输入如下指令启动前端应用。
npm run dev
前端启动成功后,浏览器访问http://localhost:3000/,进入MedSearch页面。
3.5 MedSearch项目测验
输入研究方向“肺腺癌的EGFR突变与预后相关性”,点击生成关键词生成“胰腺癌”、“EGFR突变”。也可手动输入关键词,或删除关键词。
点“开始检索文献”,自己动检索PubMed医学文献,并在文献列表中展示其中9篇。
勾选其中三篇文献,点“生成AI总结”,在文献详情中自动分析总结,并以关键发现、研究趋势和临床意义等方向表述。同时支持一键跳转,查看原文的功能。
经过测试与验证,通过码道生成的 MedSearch 的项目与预期一致。
3.6 开发总结
3.6.1 常见问题
码道生成 MedSearch 项目也不是一帆风顺的,过程中会出现各种各样的问题。
常见问题一:TypeScript编译错误和类型导入问题。
常见问题二:MaaS平台配置问题。
这些问题反馈给码道,让其帮忙检查修改。
3.6.2 更新SDD,沉淀知识库
在团队协作开发过程中,我们可以通过不断迭代更新SDD,记录开发过程中的设计思路、实现流程、问题修改与功能优化等知识资产,便于团队协作和知识传承。
MedSearch 项目开发完成后,我们可以继续对码道发出指令:“太棒了!这就是我想要的最终效果,现在请总结一下项目,更新specs/mdesearch目录下的SDD,确保下次我可以直接通过该SDD复现项目的风格、布局、颜色、功能特性以及前后台业务逻辑等。”
SDD更新完成后,再次执行开发任务。
开发完成后,运行新开发的MedSearch 项目,其效果如下:
由于 MedSearch 项目第一次开发过程中遇到的问题已被更新到SDD,第二次开发时未遇到任何阻力,一次性开发成功,且效果与预期一致。
这种通过 SDD 文档驱动的方式生成的工程,使决策过程可追溯,便于团队协作和知识传承。同时,文档与代码同步更新,形成完整的知识库,极大提升了项目的可维护性。
注:本案例中通过华为云码道说生成的 SDD 和 MedSearch 项目保存至gitCode,如有需要请自行下载。
至此,基于华为开发者空间 - 云开发环境(容器)环境,通过华为云码道(CodeArts)代码智能体,实现医学文献智能化查询场景案例结束,各位小伙伴快来下载华为云码道(CodeArts)代码智能体构建自己的应用吧!
反馈改进建议
如您在案例实操过程中遇到问题或有改进建议,可以到论坛帖评论区反馈即可,我们会及时响应处理,谢谢!
363



被折叠的 条评论
为什么被折叠?



