# 测试助手,不应该花掉正式客户的额度 | EasyNet Source: https://easynet.run/cases/problems/separate-test-and-customer-quota [easynet.run · 全部问题场景](https://easynet.run/cases#problem-scenarios) # 测试助手,不应该花掉正式客户的额度 工程师试跑新助手,月底才发现花掉的是正式客户的月度额度。日志明明写着测试项目,但请求仍用了生产密钥。事后换个费用标签,无法把已经消耗的客户资源还原。 只检查参数和返回格式时,固定测试结果通常就够了。需要比较真实模型质量,再使用上游独立测试项目、沙箱或预算账号。已经有环境隔离的网关和计费系统,应继续让它们守住入口。 测试和生产可以通过 EasyNet 暴露明确的处理操作,调用时由经过验证的身份映射到对应环境。测试函数接受合成或获准实验数据,返回测试产物,不读取正式客户文件。 提供方的资源配置也必须真正分开:测试请求没有资格读取生产凭证,费用只能从获准测试预算发出。缺少测试配置时应拒绝,而不是为了让请求成功自动换成默认生产账号。 业务侧还要接入费用预留和账单核对。若上游只有一个无法分池的账户,内部项目名就不能形成硬隔离,需要明确这个限制,或先用可控的小额人工实验。 先跑一项获批的小额请求,对照上游实际账目,再耗尽测试额度并修改界面标签重试。请求应被拒绝,不能切换到客户资源继续执行;测试记录和生产账单都能证明边界落在真实资源上。 01 验证测试身份 环境不由界面标签决定 02 仅取测试资源 无法读取生产凭据 03 额度耗尽拒绝 不回退到客户账号 隔离必须落在真实凭据和费用池,不只是项目标签。 缺测试预算时直接停止 本地固定费用单位的准入演示,不是实际费用预留实现;verified_environment 假定来自服务端认证结果。 本地示例 · python ``` budgets = {"test": 0, "production": 100} def admit(verified_environment, cost_units): if verified_environment not in budgets or cost_units <= 0: raise ValueError("invalid request") if budgets[verified_environment] < cost_units: raise PermissionError("selected budget exhausted") return verified_environment try: admit("test", 1) except PermissionError as error: print(error) assert budgets["production"] == 100 ``` 预期结果:测试请求被拒绝,生产预算仍为 100;示例不预留资金、不调用模型。 接入时的检查项 测试请求不读取正式客户数据,上游账户及费用归属可独立核对。 测试额度耗尽时明确拒绝,不自动回退到生产资源。 改变界面项目标签无法扩大权限,日志和实际账单归属一致。 源码与接入资料 [为资料检索准备文本向量](https://easynet.run/cases/warm-gpu-model) [MCP 接入指南](https://easynet.run/docs/connect/mcp)