从 PoC 到生产:用 Amazon Bedrock 扩展医疗内容审核系统

2026-07-15 40 预计阅读时间: 1 分钟
来源: aws.amazon.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:10 分钟

Flo Health 的工程团队将 AWS 生成式 AI 创新中心交付的概念验证,推进为基于 Amazon Bedrock 的生产级医疗内容审核与生成系统。真正困难的部分并不是让大模型“读懂一篇文章”,而是把模型接入可追踪、可评估、可降级,并且始终保留医学专家最终决定权的工程流程。

PoC 能回答效果问题,生产系统要回答风险问题

概念验证通常关注几个直接问题:模型能否发现内容中的医学风险,能否给出修改建议,能否生成符合要求的初稿。这些结果可以证明方案值得继续投入,却不足以支撑真实的医疗内容工作流。

进入生产环境后,系统还需要处理另一组问题:

  • 同一篇内容重复审核时,输出是否足够稳定;
  • 模型、提示词或知识库升级后,审核标准是否发生漂移;
  • 输入是否包含个人健康信息或其他敏感数据;
  • 模型超时、限流或返回无效格式时,任务如何恢复;
  • 医学编辑接受或拒绝了哪些建议,能否完整追溯;
  • 自动生成的文本是否会被误当作已经获得医学批准的内容。

因此,生产化的关键不是简单增加一次 Bedrock API 调用,而是把生成式 AI 放进一个受约束的审核管道。模型负责筛查、归类和提出建议,医学专家负责确认事实、评估语境并作出最终发布决定。

把一次模型调用拆成可治理的审核任务

基于摘要中描述的技术方向,可以这样实践一套参考流程。以下架构是可改造的工程示例,并不表示 Flo Health 使用了完全相同的组件组合:

  1. 内容系统提交待审核文本,并附带语言、受众、内容类型和版本号。
  2. 预处理服务清除不必要的个人信息,对输入做长度和格式校验。
  3. 任务队列异步触发审核,避免编辑页面被长时间的模型调用阻塞。
  4. Bedrock 返回结构化风险项,而不是无法稳定解析的自由文本。
  5. 后处理程序校验 JSON、风险等级和引用位置,并保存模型与提示词版本。
  6. 医学专家在审核界面中接受、修改或拒绝建议。
  7. 系统记录最终决策,用于质量评估,而不是未经筛选地直接回流训练。

这里有三个重要的边界。

结构化输出不是事实保证。 JSON Schema 可以约束字段,却不能证明医学结论正确。每一项高风险判断仍需专家复核。

引用位置必须可验证。 如果模型指出原文中的问题,应保存原始片段或字符区间。后处理程序需要确认该片段确实存在,避免界面展示模型虚构的引用。

生成与批准必须分离。 模型生成的初稿、模型审核后的版本和专家批准的版本,应拥有不同状态,不能依赖一个含义模糊的 completed 字段。

可以这样实践:调用 Bedrock 并校验结构化结果

下面是一个最小 Python 示例。它要求本机已经配置 AWS 凭证,并且当前区域和账号可以访问指定的 Bedrock 模型。运行前把 BEDROCK_MODEL_ID 改成账号中已启用、支持 Converse API 的模型 ID。

python -m venv .venv
source .venv/bin/activate
pip install boto3
export AWS_REGION=us-east-1
export BEDROCK_MODEL_ID='replace-with-an-enabled-model-id'

创建 review.py

import json
import os
import sys

import boto3

region = os.getenv("AWS_REGION", "us-east-1")
model_id = os.environ["BEDROCK_MODEL_ID"]
client = boto3.client("bedrock-runtime", region_name=region)

SYSTEM_PROMPT = """You assist qualified medical reviewers.
Identify claims that require human review. Do not diagnose, prescribe, or mark
content as medically approved. Return JSON only, using this shape:
{
  "summary": "string",
  "findings": [
    {
      "severity": "low|medium|high",
      "quote": "exact text from the input",
      "reason": "string",
      "suggested_action": "string"
    }
  ]
}
If no issue is found, return an empty findings array.
"""

text = " ".join(sys.argv[1:]).strip()
if not text:
    raise SystemExit('Usage: python review.py "content to review"')

response = client.converse(
    modelId=model_id,
    system=[{"text": SYSTEM_PROMPT}],
    messages=[{"role": "user", "content": [{"text": text}]}],
    inferenceConfig={"temperature": 0, "maxTokens": 1200},
)

raw = response["output"]["message"]["content"][0]["text"]
result = json.loads(raw)

allowed_severities = {"low", "medium", "high"}
for finding in result.get("findings", []):
    if finding.get("severity") not in allowed_severities:
        raise ValueError("Unexpected severity")
    quote = finding.get("quote", "")
    if quote and quote not in text:
        raise ValueError(f"Model returned a quote absent from input: {quote!r}")

print(json.dumps(result, ensure_ascii=False, indent=2))

执行示例:

python review.py "This supplement permanently cures every hormonal disorder."

这段代码刻意不自动改写或发布内容。它只生成待人工处理的发现列表,并对严重级别和原文引用做最低限度的校验。生产环境还应使用正式的 Schema 校验库,对超时、限流和无效 JSON 设置重试与死信队列,并把原始响应保存到访问受控的审计存储中。

评估不能只看“回答得像不像专家”

医疗内容系统需要一组固定、经过专家标注的评估集。评估样本应覆盖不同语言、内容类型和风险等级,也应包含“没有问题”的文本,防止模型为了显得有用而过度报警。

可以重点跟踪以下指标:

  • 高风险问题召回率:真正危险的陈述有多少被模型发现;
  • 误报率:多少正常内容被不必要地送去返工;
  • 专家接受率:建议被直接接受、修改后接受或拒绝的比例;
  • 审核耗时:从任务创建到专家完成审核的时间;
  • 无效输出率:JSON 解析失败、缺失字段或引用不存在的比例;
  • 分组质量:不同语言、主题与受众之间是否存在明显性能差距。

每次更换模型、调整系统提示词、修改检索数据或改变推理参数,都应运行回归评估。发布时记录 model_id、提示词版本、评估集版本和阈值,才能在质量下降时定位原因并回滚。

上线前的工程检查表

采用这类系统时,可以用下面的清单控制风险:

  • 明确哪些任务允许模型辅助,哪些内容必须完全由专家处理;
  • 在调用模型前删除非必要的个人和健康敏感信息;
  • 使用最小权限 IAM 策略,隔离开发、评估和生产环境;
  • 为请求设置幂等键、超时、退避重试和并发上限;
  • 保存内容版本、模型版本、提示词版本和人工决策记录;
  • 对高风险发现强制人工复核,禁止模型直接触发发布;
  • 准备模型不可用时的人工队列或规则审核降级路径;
  • 持续监测成本、延迟、误报率和分组质量,而不只统计调用成功率。

从 PoC 走向生产,意味着团队的关注点从“模型能否完成任务”转向“整个系统能否在出错时保持可控”。Amazon Bedrock 提供了模型访问层,但医疗内容质量仍取决于数据边界、结构化验证、持续评估、审计记录和专家审核共同组成的工程闭环。


相关推荐