早上才八点四十分, 倪好提前二十分钟到达工位, 被迫救火。
电脑刚开机,她便瞥见右下角弹出几条未读消息。
运营小王:“倪好,早上好。昨天上线的那个智能客服又出问题了。”
倪好听了心脏跳的巨快,她微微皱了下眉: “出现了什么问题?”
“有用户连续问了三次同一个问题,AI每次都给不一样的答案。还有两个用户问产品说明,直接返回‘暂未找到相关信息’。”
倪好点开后台并吩咐小王 “把那几个会话ID发我。”
不到一分钟,小王把截图丢了过来。
倪好一条条认真地看过去, 过了几分钟她指出: “这两个不是一个问题。”
小王:“啊?”
她指着其中一张截图: “这个是知识库没召回。”
又划到下一张继续说: “这个呢,是Prompt约束没压住。”
“那这个呢?”
倪好停了一下。
“这个……”她重新看了一遍:“模型本身的问题。”
小王有些懵, 摇了摇头:“不太明白, 那这三个有什么区别?”
倪好把电脑转过去, 方便小王查看屏幕。
“知识库缺失,补数据就行。Prompt漏洞,改规则。模型原生能力不足,你再怎么改Prompt都只能改善,解决不了。”
刚解决完, 叮铃铃的电话又打了进来, 后端李凯: “倪好,今天早高峰接口延迟有点高。”
“P99多少?”
“刚到2.8秒。”
“昨天呢?”
“1.4。”
倪好看了一眼监控。
“先把新功能的灰度降到百分之十。”
“这么快?”
“先保线上。等早会再看原因。”
九点的会议室里已经准时坐了五个人。每个人捧着自己的笔记本电脑。
周骁把电脑接上投影,看着大家:“先说模型。昨天那版微调之后,准确率提升了4.7%。”
黄文欣听了后,立刻接话:“准确率是涨了,但接口平均响应时间也涨了。”
倪好也抬头问:“响应时间涨了多少?”
“平均多了三百毫秒。”
周骁皱着眉头却说:“但是效果明显更好。”
李凯:“用户又不是看准确率报表,他等两秒和等三秒,体验完全不一样。”
两个人就这样在会议室开始争论起来。
倪好没有马上打断,等他们争完,她才问:“这4.7%的提升,集中在哪些场景?”
周骁翻了一页ppt ,看完才回答
“主要是专业术语和长文本问答。”
“占总请求量多少?”
“不到百分之十五。”
“那不值得拿全量用户的响应速度换。”
周骁愣了一下。
倪好又把目光看向李凯:
“模型先不全量。把专业问答场景单独切出来做灰度。”
然后又看向周骁:
“你继续验证效果。”
周骁:“那其他场景呢?”
“用上一版。”
早会中途运营小王提出:
“还有个需求,客户希望AI能自动生成合同。”
李凯听完脸都黑了。
“今天?”
运营小王:
“客户说最好今天能看到Demo。”
倪好:
“合同什么类型?”
“采购合同。”
“涉及金额和法律条款吗?”
“肯定涉及。”
倪好直接摇头。
“今天做不了。”
小王愣住:
“为什么?不就是让模型生成吗?”
倪好:
“生成和能不能上线是两回事。”
她把电脑屏幕转过来。
“合同这种场景,一旦模型出现幻觉,责任谁承担?”
大家无以反驳,会议室开始安静下来。
“如果只是内部Demo,可以做。生产环境不行。”
小王:
“那多久?”
倪好想了一下。
“如果只是固定模板生成,三天可以给Demo。”
“如果要真正上线,至少把权限、审核、日志和风险拦截补齐。”
“哪些场景AI能做好,哪些目前绝对做不到。”
九点三十分:RAG智能问答出现“知识库明明有答案,AI却回答不知道”。
她开始追溯。
九点五十分
倪好把昨天的几十条bad case全部拖进表格。
其中一条让她停了下来。
用户问:
“公司的年假什么时候清零?”
知识库里明明有员工手册。
但AI回答:
“抱歉,我暂时无法找到相关信息。”
她把截图发给算法周骁。
倪好:
“这条帮我看一下召回。”
几分钟后,周骁检查完代码回复:
“召回正常,Top3里面就有员工手册。”
倪好眉头都快拧成麻花了
“那为什么没回答?”
周骁:
“我再查一下。”
过了一会儿。
“模型判断这个问题缺少具体年份。”
倪好:
“那它为什么不追问?”
周骁:
“Prompt里没写。”
倪好沉默两秒。
然后打开PRD。
“那不是知识库问题,是交互逻辑没定义。”
她在键盘上敲下一行:
当用户问题存在必要参数缺失时,不直接拒答,优先触发澄清。
然后问:
“如果用户不回答呢?”
周骁:
“继续追问?”
“不能无限追问。”
倪好继续写:
“两轮没有获得有效信息,走兜底。”
周骁看着她。
“你这不是在写Prompt。”
倪好:
“我知道。”
“我在定义AI的行为边界。”
一上午口干舌燥, 倪好抱着保温杯咕咚咕咚地喝着水, 只见周骁拿两个模型走过来
“还有个事。我们测了两个底座。”
“哪个更好?”
“A模型效果高一点,但成本贵。B模型稍微差一点,但快很多。”
倪好:
“差多少?”
“准确率3%,成本差40%。”
她没有马上选。
“把用户真实问题集跑一遍。”
周骁:“之前不是测过?”
“之前是算法测试集。”
她抬头:“我要真实bad case。”
她不迷信Benchmark。
她更关心:真实用户到底怎么用。
上午11点左右,老板突然把她叫过去:
“倪好,下午别安排别的事。”
她抬头:
“怎么了?”
“跟我一起去星云集团开会.”
11:30左右, 忙了一上午以后, 倪好终于安静下来。
电脑屏幕上是一张巨大的流程图:
用户输入 →意图识别 → RAG →工具调用 →模型生成 →安全检测 →输出
她逐项检查,突然发现:工具调用失败之后,没有定义第二次重试。
她拿起手机, 给后端发消息:
“李凯,Agent工具调用失败后的重试机制现在谁负责?”
几秒后:
“这块没做。”
倪好:
“为什么?”
“当时以为概率很低。”
倪好盯着屏幕看了两秒。
回复:
“AI产品不能按‘正常情况’设计。”
然后补了一句:
“把异常情况也当正常流程设计。”
这是倪好第一次踏进星云大厦, 坐电梯时心里想:她只是去汇报一个项目。至少她希望自己只是去汇报一个项目。
倪好习惯于提前十五分钟, 到了会议室。她把电脑打开,PPT已经投到第一页。又仔细地检查了一遍流程。项目背景、目前进度、技术架构、下一阶段计划。一切都很专业。
下午两点, 会议室门被推开。
倪好抬起头。杨庚叙一身灰色西装走进来。他身后跟着投资公司的几个人。俩人四目相对, 她先移开视线。然后非常自然地站起来:“杨总。”
杨庚叙停了一下: “倪总。”
原来有一天, 他们把彼此叫的那么陌生
这次他坐在会议桌对面,看着她站起来讲项目。一身白色套装裙, 漏出纤细的脖颈。显得整个人气场全开, 说话时不卑不亢, 落落大方。
期间会上有人问了一个明显比较尖锐的问题: “你们这个AI内部管理系统,如果后期接入公司现有的知识库,怎么保证不同部门看到的信息权限不一样?”
倪好没有急着解释,而是停两秒:“权限不会放在模型层处理,会在检索层做隔离。模型只负责生成,能不能检索到数据由权限系统决定。”
杨庚叙原本低头看资料。听到这里,也抬起头来。一直看着她回答。
听完PPT报告, 杨庚叙略有皱眉的问:
“所以你们现在最大的风险是什么?”
倪好回答:“不是开发周期,是后期维护。”
杨庚叙看着她。
“为什么?”
她把PPT往后翻了一页。
“如果我们现在为了赶进度堆功能,三个月后这个系统可能没人敢动。到时候每增加一个需求,都需要重新改底层逻辑。”
杨庚叙:“所以你的方案?”
倪好:“先把核心链路跑通。”
“AI辅助开发,但所有核心模块必须人工Review。数据库、权限、日志、异常处理全部独立出来。第一阶段不追求功能数量,追求可维护性。”
杨庚叙沉默几秒, 然后说:
“可以。”他心里默默觉得:她真的变了。
倪好没想到他这么快认可。
杨庚叙继续:“不过我有一个问题。”
“您说。”
“如果第一阶段做完,客户临时要求增加两倍用户量,你们现在的架构扛得住吗?”
倪好也不示弱, 耐心解答。
“如果只是两倍并发,不需要推翻架构。”
杨庚叙:“确定?”
倪好看着他,“确定。”她停了一下, 补充道:“但如果是十倍,我会建议重新评估。”
她发现:他还是会一眼看到问题核心的人。
杨庚叙点了点头:“你们刚才提到的AI编程SOP,我觉得挺有意思。”“能不能把你们现在的版本发我看一下?”
他看了眼会议室里其他人。
“你会后加我一下,把材料发给我。”
倪好:“好的。”
杨庚叙:“微信。”
她这才反应过来。“好的,马上。”
然后拿出手机,主动群里找到杨庚叙头像,发了好友申请。这是两个人第一次正式的加上微信。
而会议还在继续。
结束会议, 倪好合上电脑准备走。
杨庚叙忽然叫住她:
“倪好。”
她收拾东西的手停下来,回头看了一眼
这是整个会议上,他第一次没有叫她“林总”。
男人看着她,语气却还是公事公办:
“下周的测试报告,也发我一份。”
倪好没立马接话,看了他两秒,清晰地吐出四个字。
“好的,杨总。”
她转身抱着笔记本走了。
门关上以后,杨庚叙低头看了一眼桌上的项目资料。
第一页项目负责人:
倪好。
他手指在那个名字上停了一下。
然后把资料合上。
而倪好整个会议结束以后,只觉得杨庚叙今天的问题有点多。
她完全不知道:
其中一个问题,他其实根本不需要问。
他只是想重新加她一次微信。
作者有话说
显示所有文的作话
第4章 见面