陈阳发来的邮件躺在收件箱里,标题很长 ——“基于动态加权算法的二手书定价模型 V1.0”。林微点开附件时,窗外的天刚蒙蒙亮。
PDF 文档里满是公式,像一群密密麻麻的蚂蚁。她对着屏幕皱眉头,陈阳的字迹透过公式渗出来 ——“用物理熵增原理模拟书籍贬值曲线,应该比人工定价准”。
“太高深了。” 林微把手机拍的公式照片发给小王,“让技术部看看,能不能接上咱们的系统。”
小王回得很快,一个哭脸表情加一句:“林姐,这玩意儿比考研真题还难啃。”
上午十点,技术部的小会议室烟雾缭绕。小王把笔记本电脑推到林微面前,屏幕上是两串格格不入的代码。
“咱们的系统是 PHP 写的,他这模型用的是 Python。” 小王挠着头,指尖在键盘上敲出个错误提示,“就像安卓手机装苹果系统,根本跑不起来。”
李娟抱着一摞退货单进来,纸页哗啦响。“昨天退了十七单,都说定价离谱。” 她翻开最上面那张,“这本《大学语文》九成新,系统标了 50 块,比新书还贵。”
林微捏着那张单子,突然想起陈阳邮件里的话:“初始参数需要本地数据校准,不然会飘。”
“得让陈阳改改。” 林微掏出手机,看了眼时间 —— 慕尼黑现在是凌晨四点。她点开微信,对话框停留在昨天陈阳发的照片:实验室窗外的雪,配文 “这边天黑得早,你那边该亮了吧”。
消息编辑了又删,最后只发了句:“模型有点问题,等你醒了细说。”
下午两点,陈阳的视频请求弹出来。他那边的背景是暗的,只有电脑屏幕的光映着半张脸,胡茬冒了青黑一片。
“刚下课。” 他揉着眼睛,把公式写在白板上,“你看这里,我用的是北京的折旧系数,可能不适用于你们拓展的城市。”
小王凑到镜头前:“陈阳哥,不是系数的事儿,是语言不通!Python 和 PHP 怎么对接?”
“用 API 接口转啊。” 陈阳的笔尖在白板上敲出笃笃声,“就像翻译器,把中文转成英文。”
“试过了,转完就报错。” 小王调出日志,红色的错误代码滚了一屏。
陈阳的眉头皱起来,指尖在键盘上飞快跳动。林微看着他的侧脸,突然发现他眼下有片青黑 —— 上次视频时还没有。
“你是不是没睡觉?” 林微打断他。
“睡了四小时。” 他头也没抬,“这边教授催着交论文,模型是熬夜赶的。”
视频会议开了两小时,问题没解决,小王和陈阳倒吵了起来。
“你这模型太理想化了!” 小王把鼠标一摔,“实际运营哪有那么多参数!”
“不按参数来,定价就会乱!” 陈阳的声音透过扬声器变调,“你们那人工定价,误差率超过 30%!”
林微把小王拉到一边:“你去忙别的,我跟他说。”
会议室只剩林微一人时,陈阳突然笑了,眼角的疲惫堆成褶子。“是不是很麻烦?” 他转着笔,“我应该先问清楚你们的系统架构。”
“是我们技术太弱。” 林微看着白板上的公式,“你能不能…… 写个简单点的版本?”
“我试试。” 他低头在键盘上敲了会儿,“明天给你新方案,用你们能接的格式。”
挂了视频,林微发现手心全是汗。窗外的阳光斜斜切进来,在桌上投下长条影子 —— 原来已经傍晚了。
第二天一早,新邮件来了。附件里多了个压缩包,解压后是 PHP 格式的代码,还有个 Excel 表,标着各城市的教材折旧系数。
“陈阳哥妥协了。” 小王盯着屏幕,语气有点复杂,“他把模型简化了,说 accuracy(准确率)降到 85%,但能跑通。”
林微松了口气,让小王赶紧部署。中午吃饭时,她给陈阳发消息:“收到了,谢谢。”
“等反馈。” 他回得很快,加了个太阳表情,“这边出太阳了,你那边呢?”
林微拍了张窗外的玉兰花,花瓣上还沾着露水。
麻烦在下午爆发。
客服小李抱着电话冲进办公室,听筒里传来尖利的女声:“你们怎么回事?上午下单时显示 20 块,付完款变成 40 块!耍人玩呢?”
林微点开后台,冷汗瞬间下来了 —— 新模型和旧系统冲突,导致一批订单价格翻倍。更糟的是,自动退款功能也卡住了,用户骂声在客服后台堆成山。
“关了!赶紧把模型关了!” 林微对着小王喊。
小王手忙脚乱地操作,屏幕上的订单数还在疯涨。“关不掉!接口锁死了!” 他敲键盘的手在抖,“陈阳哥写的加密协议,只有他能解!”
林微的心跳得像擂鼓。她点开微信,陈阳的头像暗着 —— 慕尼黑现在是凌晨。
电话拨过去,响了七声才被接起。陈阳的声音带着浓重的鼻音,像是被吵醒的。
“模型出问题了,价格乱跳。” 林微的声音发紧。
“不可能。” 他那边传来键盘声,“我加了熔断机制……”
“真的乱了!” 林微把手机对着电脑屏幕,“你看这些订单!”
沉默在电话两端蔓延。过了会儿,陈阳说:“我远程连进去看看,你把权限开一下。”
接下来的三小时,林微就坐在小王旁边,看着屏幕上的光标忽快忽慢地移动。陈阳的声音透过耳机传来,时不时夹杂着咳嗽 —— 他好像感冒了。
“找到问题了。” 凌晨三点,他突然说,“你们的支付系统有延迟,和动态定价不同步。”
“能修吗?”
“能,但得等天亮。” 他打了个哈欠,“这边网不好,远程操作太慢。”
林微看着窗外泛起的鱼肚白,突然说:“你先睡会儿吧,天亮了再说。”
“没事。” 他的声音很轻,“我想快点弄好,不想你被用户骂。”
耳机里传来笔尖划过纸张的声音,像有人在远处敲门。林微突然想起陈阳临走前,在她笔记本上写的那句话:“物理规律有延迟,但我没有。”
早上七点,系统终于恢复正常。陈阳发来消息:“好了,加了个时间戳同步机制,你让小王测测。”
林微让小李给所有 affected 用户发补偿券,金额是订单差价的两倍。客服后台的骂声渐渐被 “券收到了”“谢谢” 取代。
中午,陈阳的视频请求弹出来。他裹着厚外套,背景是实验室的咖啡机。
“喝了三杯了。” 他举着杯子笑,眼底的青黑更重了,“还难受吗?”
“没事了。” 林微把补偿方案给他看,“用户没怎么投诉了。”
“我错了。” 他突然说,“太想证明模型有用,没考虑实际情况。”
“是我们没说清楚系统老毛病。” 林微笑了笑,“你那边几点了?快睡吧。”
“等你说晚安。” 他看着屏幕,“就像以前在实验室那样。”
林微愣了愣,想起那些一起改代码的深夜,总是她先催他:“快睡,晚安。”
“晚安。” 她轻声说。
挂了视频,小王凑过来,手里拿着新的定价测试表。“陈阳哥这模型,校准完还真挺准的。” 他指着数据,“这本《高数》,系统定 25,我们人工估 26,就差一块。”
林微看着那张表,突然觉得那些密密麻麻的公式也没那么可怕了。就像陈阳说的,规律藏在混乱里,只要耐心找,总能找到。
下午的阳光透过窗户,在桌上投下暖融融的光斑。林微给陈阳发消息:“模型很好,等你回来一起优化。”
这次,他回得很慢,隔了半小时才发来张照片 —— 慕尼黑的天空蓝得发亮,配文:“算好了,还有 156 天。”
林微把手机放在桌上,看着屏幕上的数字,突然觉得跨国协作的麻烦,好像也没那么难熬了。
就像两地的时差,虽然隔着六个小时,但总有重叠的时刻,能看到同一片光亮。