在 Amazon Bedrock 上为 GPT-6 Sol 与 Luna 设计双模型工作流

2026-09-23 33 预计阅读时间: 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.

预计阅读时间:9 分钟

GPT-6 Sol 与 GPT-6 Luna 已在 Amazon Bedrock 正式可用。对开发团队来说,真正有价值的并不是模型列表又多了两个名字,而是可以根据任务所需的智能水平、响应效率和运行成本,为不同工作负载选择合适的模型。

与其让所有请求都走同一个模型,更实用的做法是建立一层轻量路由:日常提取、分类和改写使用经过验证的高效率配置;复杂推理、重要决策辅助和长文生成则交给在内部评测中表现更好的模型。

不要只按模型名称做选择

目前可以确认的是,Sol 和 Luna 为 Bedrock 用户增加了新的智能与效率组合。不过,仅凭名称或定位就直接决定生产路由并不稳妥。团队应该使用自己的数据集回答几个具体问题:

  • 哪个模型在工单分类、字段提取等日常任务上延迟更低?
  • 哪个模型在代码分析、多约束写作或复杂推理上成功率更高?
  • 相同任务达到可接受质量时,各自需要多少输出 token?
  • 模型在目标 AWS 区域、调用方式和配额下是否可用?
  • 错误重试、超时和长输出会怎样影响整体成本?

一个常见的分层方式是:

工作负载 例子 推荐决策方式
例行任务 摘要、分类、格式转换、邮件改写 优先比较延迟、成本和格式稳定性
复杂任务 多步分析、代码审查、方案比较 优先比较正确率、推理完整性和指令遵循
高风险任务 合规判断、财务建议、对外发布 模型输出之外增加规则校验与人工审批

这里不要预设 Sol 或 Luna 一定属于哪一层。先在 Bedrock 控制台或模型目录中确认实际模型 ID、区域支持和调用接口,再根据评测结果建立映射。

用环境变量建立可替换的模型路由

下面是一个可以直接改造的 Python 示例。它通过 Bedrock Runtime 的 Converse API 调用模型,并用 routinecomplex 两个业务层级选择模型。运行前,请把环境变量替换为控制台中显示的实际模型 ID。

先安装依赖并配置环境:

python -m pip install --upgrade boto3

export AWS_REGION='us-east-1'
export BEDROCK_MODEL_ROUTINE='替换为评测后用于例行任务的模型ID'
export BEDROCK_MODEL_COMPLEX='替换为评测后用于复杂任务的模型ID'

# AWS 凭证建议通过 aws configure、IAM Role 或工作负载身份提供
aws sts get-caller-identity

将以下内容保存为 bedrock_router.py

import argparse
import os
import time

import boto3


def require_env(name: str) -> str:
    value = os.getenv(name)
    if not value:
        raise RuntimeError(f'Missing required environment variable: {name}')
    return value


def choose_model(tier: str) -> str:
    mapping = {
        'routine': require_env('BEDROCK_MODEL_ROUTINE'),
        'complex': require_env('BEDROCK_MODEL_COMPLEX'),
    }
    return mapping[tier]


def invoke(prompt: str, tier: str) -> None:
    region = os.getenv('AWS_REGION', 'us-east-1')
    client = boto3.client('bedrock-runtime', region_name=region)
    model_id = choose_model(tier)

    started = time.perf_counter()
    response = client.converse(
        modelId=model_id,
        system=[
            {
                'text': (
                    'You are a precise workplace assistant. '
                    'State uncertainty explicitly and do not invent facts.'
                )
            }
        ],
        messages=[
            {
                'role': 'user',
                'content': [{'text': prompt}],
            }
        ],
        inferenceConfig={
            'maxTokens': 800,
            'temperature': 0.2,
        },
    )
    elapsed_ms = (time.perf_counter() - started) * 1000

    blocks = response['output']['message']['content']
    text = '\n'.join(block['text'] for block in blocks if 'text' in block)

    print(text)
    print(f'\n---\nmodel={model_id} tier={tier} latency_ms={elapsed_ms:.0f}')


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--tier', choices=['routine', 'complex'], required=True)
    parser.add_argument('prompt')
    args = parser.parse_args()
    invoke(args.prompt, args.tier)

调用例行任务:

python bedrock_router.py --tier routine \
  '把下面的客户反馈分类为功能请求、故障或咨询,并返回 JSON:导出按钮点击后没有反应。'

调用复杂任务:

python bedrock_router.py --tier complex \
  '比较蓝绿发布与金丝雀发布在高流量支付系统中的风险,并给出带回滚条件的建议。'

这个示例故意没有把 Sol 或 Luna 写死在代码里。模型分工是部署配置,而不是业务逻辑;评测结果变化、区域迁移或配额调整时,只需修改环境变量。

如果某个模型或区域不支持 Converse API,应按照对应模型的 Bedrock 文档调整请求格式,而不要假设所有模型具有完全相同的参数集合。

评测时同时记录质量与效率

单看一次响应很容易得出错误结论。可以准备一组覆盖真实业务的数据,并为每条样本保存以下指标:

{
  "case_id": "support-017",
  "task_type": "ticket_classification",
  "model_alias": "candidate-a",
  "correct": true,
  "format_valid": true,
  "latency_ms": 842,
  "input_tokens": 316,
  "output_tokens": 74,
  "human_score": 4
}

评测集至少应包含正常输入、模糊请求、超长文本、提示注入以及要求严格 JSON 输出的样本。分类任务可统计准确率和格式通过率,生成任务则适合结合人工评分、事实核验与延迟分位数。

路由规则也应保持可解释。例如:

  • 批量标签、短摘要和结构化抽取默认进入例行层。
  • 涉及多个文档、复杂约束或代码推理时进入复杂层。
  • 涉及监管、付款、权限变更或公开发布时强制人工确认。
  • 复杂层超时后不要静默降级;应明确返回错误,或将任务放入异步队列。

上线前别忽略治理边界

Bedrock 解决了模型访问入口问题,但不会自动替团队完成数据治理。投入生产前,应检查:

  • IAM 策略是否只允许调用批准的模型和资源。
  • 日志中是否意外记录客户数据、密钥或完整提示词。
  • 输入输出是否经过敏感信息过滤与业务规则校验。
  • 应用是否设置超时、有限重试、并发控制和预算告警。
  • 模型 ID、提示词版本和路由结果是否可追踪。
  • 区域可用性、配额、价格和模型能力是否以当前 AWS 配置为准。

建议从一条可测量的工作流开始

引入 GPT-6 Sol 与 Luna 时,不必立即重构全部 AI 功能。选择一个请求量稳定、质量可以量化的流程,例如客服工单分类或内部文档摘要,让两个模型运行同一批测试样本,再决定例行层与复杂层的映射。

当质量、延迟和成本数据足够清晰后,再把模型路由扩展到更多场景。这样既能利用 Bedrock 提供的新选择,也能避免把“更智能”误解为“所有请求都应该调用同一个最强配置”。


相关推荐