概览(Overview)
在你把脑门一新改出来的工作流往线上大闸推之前,你得有个底气这些改动没跑偏。ModelRiver 给您摆了几套练兵沙场:Playground (Production) 真枪实弹练兵场、Playground (Test mode) 打空包弹演练场,以及纯给代码跑的 Test mode 测试通道:这哥几个各有各的看家本领。请求日志(Request Logs)给每一发试射都记录在案,供你拿着放大镜查验死角。
这几大试炼场底细全扒明(Testing environments explained)
真枪实弹练兵场:Playground (Production)
- 它干啥的: 拿着真家伙直接去敲那些 AI 大厂的门调真接口跑你的流。
- 啥时候用: 上线赴死前最后一哆嗦的定音盘,要真真切切看到 AI 咋回嘴的。
- 得放多少血: 真烧钱,扣的可是你真金白银买的大厂模型额度(跑的真 API)。
- 查日志拿啥滤:
Playground (Production) - 在头上打啥烙印(请求前缀):
pg:
空包弹演习场:Playground (Test mode)
- 它干啥的: 拦下真发大厂的活,拿你预先捏好的结构化输出(structured outputs)里的样板假数据应付差事。
- 啥时候用: 在调排工作流走向、配参数或者走连路管道时,纯验逻辑走水,不想白白倒大厂钱时。
- 得放多少血: 敞开免费造:一丁点都不去麻烦各大厂的真接口。
- 查日志拿啥滤:
Playground (Test mode) - 在头上打啥烙印(请求前缀):
pg_test_mode:
机器通道下的测试档:Test mode (API)
- 它干啥的: 在收你们后台代码打来的 API 接口指令时,只要挂了 test mode 死牌,全给塞假数据挡回去,概不去叫真模型起夜。
- 啥时候用: 给你们家 CI/CD 流水线做自动跑偏测试、跑大集成套件检验时。
- 得放多少血: 敞开免费用:不扯哪怕一根大厂 API 的羊毛。
- 查日志拿啥滤:
Test mode - 在头上打啥烙印(请求前缀):
test:
照章打表步步为营的走桩验盘(Step-by-step testing workflow)
1. 先进空跑测试档测个没病没灾(Validate in test mode first)
上手先掐进 Test mode,把工作流大骨架管路验个通顺:
- 登台入室,在项目控制台里点开你刚改的工作流。
- 戳一下那个 Test 烧杯小图标,让它按空包测试模式跑一圈。
- 转身进 请求大日志(Request Logs) 盘里 → 把漏斗掐死在 Playground (Test mode)。
- 解剖看它吞进排出的底料包,对证那大骨架管线是不是走窜了。
给你看看空包测试档回吐死样板(Example test mode response):
1{2 "choices": [3 {4 "message": {5 "content": "{\"product_name\": \"Sample Product\", \"description\": \"This is a test response using structured output sample data.\"}",6 "role": "assistant"7 },8 "finish_reason": "stop"9 }10 ],11 "usage": {12 "prompt_tokens": 0,13 "completion_tokens": 0,14 "total_tokens": 015 }16}敲黑板看清啦: 在这空跑测试档底下,这 Token 耗用记表全吃
0鸭蛋。因为这压根就没迈出过大厂门槛打真包,吐出来的字全是直接抄你在结构化底栏里预先捏好的样板字(sample data)。
2. 挂真枪实弹去趟各大厂的地雷阵(Test with real providers)
当你看这骨架跑通空包弹、有了十拿九稳的底气,立刻拉开架势去过真厂的火:
- 在演兵盘(Playground)里直接戳那个 Run(跑主线)(这下连的就是 Production 真家伙池子去跑了)。
- 一样扭身进 请求大日志(Request Logs) → 把筛子指死到 Playground (Production)。
- 把全盘时间轴拉底:眼毒地盯着它看到底挑翻了哪家模型、到底吞掏了多大的 Token 额度底耗、以及回答到底像不像糊弄鬼。
- 去解肚皮看回包体,验验它吐字的准星和灵气底线。
3. 去盘 Webhook 连抛和回调后院的路数通不通(Validate webhook and callback flow)
碰上那等异步放长线的事件派单工作流:
- 在练兵盘 Playground 放它跑个来回。
- 死盯那时间走轴,看 Webhook 有没有真抛单成功且拿到下放交付送达的回条。
- 扒下面皮对对那 Webhook 里塞的瓤(Payload),看看对不对得齐你们家接单后台定下的规矩口径。
- 是那种挂事件钩子的活计,还要去拿证据查实究竟那回路回声包有没有顺利收到盘库。
┌──────────────────────────────────────────────────┐│ 练兵池里的时间轴大阅兵(Playground Test Timeline) ││ ││ ✓ OpenAI gpt-4o-mini 妥投完活(success) 650ms ││ ✓ Webhook 投送包下发 安全送达(success) 32ms ││ ✓ Backend 后院领命回音 机器模拟代签(simulated) │└──────────────────────────────────────────────────┘小窗贴条: 记死记好,在 playground 这个练兵地界里,那个由你家后院该往回吐的回叫声包(Backend callbacks)纯粹是 模拟演戏(simulated) 出来的:ModelRiver 在这不真傻站着死等你们后台回话。这就图让你能把 AI 抽嘴出活和往下扔 Webhook 当作上下两段单拆出来互不干涉地单独验明正身。
4. 跟真刀真枪线上的实景抵肩硬碰硬(Compare with production behavior)
待到你这改动光荣挂帅上了真战场口:
- 把漏表定死在 Live mode 去瞧真大客人们跑趟起落的真活水。
- 拿着前脚刚从沙盘(playground)跑出来的吐字灵性、耗流死长、和代币食量跟这实跑大活做个一比一的找茬游戏。
- 猫腰隐身在日志堆里盯防一切之前全没测着、或是跑了偏位的妖路子死局。
- 如果半道出了岔子漏了水,就把那挂掉的实景单和你在沙盘里大顺的死包一起揪出来,挨个对齐缝去死查是啥带偏歪的。
CI/CD 自动流水线的进阶装配经(CI/CD integration example)
把你这免烧香的空跑 API 测线门面接到死锁严严实实的自动化打版口:
# 打一出纯测试档的空跑单curl -X POST https://api.modelriver.com/v1/chat/completions \ -H "Authorization: Bearer $MODELRIVER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "your-workflow-id", "messages": [{"role": "user", "content": "Test message"}], "test_mode": true }' # 接包后看下它的回吐长盘口身板# (它吐出来的绝全是你们塞的样板假数据,一滴没薅大厂)事完了回 请求大日志(Request Logs) 总营验明正身:
- 拿夹子夹死 Test mode 滤签。
- 验底看看刚打的跑单有没有落案在此。
- 解囊看那破肚的回包瓤身骨正不正,合不合你们在门外的框想。
让在沙盘里不走冤枉路的铁训心机(Tips for effective testing)
- 得红白喜事全过堂(Always test both happy path and edge cases): 别尽测皆大欢喜的顺溜话。死长的大咒、带诡异偏锋的词、连屁都不放半个的空包,统统得拉去跑。
- 锁死规矩看那大样板出字(Verify structured outputs): 如果你给模型套上了定式框要规矩字,那就在沙盘往死里榨验看它有没有出格乱踩线。
- 专门测大厂翻脸的倒霉死命路(Test failover behavior): 有门道可以故意给主模型挖个坑造死它的门道,好亲眼皮皮这老备胎大员是不是真顺溜倒位顶差了。
- 莫骗骗自己跑自娱白卷(Keep test data realistic): 少拿 "test", "hello" 这等儿戏当包扔,往死里扒线上的真长带血口供来做饵,这验底才能打入真道。
- 盘算好大代币饭盆(Review token usage): 拿测试卷跑的和上了真跑马大场后比一比代币进肚总表,别让上线这肚皮敞开没死限的吃了惊魂大暴差。
收兵整装往下一站探
- 开支账单拉底盘大剖析(Cost Analysis): 上线后去盯紧那是不是放错水把家里银库搬空给烧着了。
- 拿捏时延与性能监测打拉(Performance Monitoring): 到下线实场上去盯大厂接跑的实速和走钟的时拖。
- 线上真实跑单里的找雷与纠排(Debugging Production Issues): 没跑利索线直接拉爆时来这吃抢救大药本。
- 重退至日志可观览大盘首页面(Back to Observability): 老归大营返回大观的主路总入口。