一句话需求
上周三(2025-02-19)接了一个需求,简单概括一句话:用户往我们的公众号发消息的时候,我们用 DeepSeek 回答!
需求难点
拿到需求,第一位经手的肯定是产品了。我们的产品同学庆哥先调研了一波线上的微信公众号实现方案,把能找到的参考资料都整理了出来。
其实,只是接入一下 DeepSeek, 并没有什么难点,所以网上各种关于公众号接入 DeepSeek 的方案是有。但是,绝大部分资料都没有提及下面的重大问题:
- 大模型生成回答,是需要时间的; 而微信公众号的消息回复限定 5 秒,而 DeepSeek 几乎不可能在五秒内完成全部回复的生成
- 显然我们会想到,先回复用户 “思考中”,完成了之后再给用户推送完整回答的方案——但是微信公众号又不允许通过 API 主动推送消息
别想着用模板消息来推,一来内容过长用户看不了,二来异常频繁推模板消息会导致公众号被封。似乎,公众号消息这种场景根本就不适合接入 DeepSeek?
卡 Bug
问题 1
作为组里最早完成 DeepSeek 接入的开发,现在需求(压力)来到我这边了。我研究了一下产品同学前期找的参考资料,然后再研读了一下微信公众号的开发者文档。忽然发现——好像这也不是不行。
我们先来看看微信公众号关于接收用户消息的 文档 是怎么说的:
微信服务器在将用户的消息发给公众号的开发者服务器地址(开发者中心处配置)后,微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
💡什么五秒?什么三次?噢,有三次机会是吧!那敢情好,5x3=15,不就是 15 秒吗!
好说好说,微信的前两次请求,我故意拖着不响应,制造超时,等到第三次请求的时候,我才把 DeepSeek 的回答一口气返回——像极了 deadline 之前赶工的我——对不起了,微信的同学。
为了尽快回复用户,我们最终选择了 DeepSeek-V3,抛弃了思考过程。实际上线后我发现,在 system prompt 中限制字数后,超过一半的问答都能够在 15 秒内完成所有内容的接收和回复。团队认为,在没有流式的情况下,这个效果算是还可以的了。
问题 2
前面说到了,大部份消息能够在 15 秒内回答,那么剩下的怎么办?产品给的其中一个 参考资料 中提到的公众号,它的做法是这样的:让用户回复 “继续” 来继续未回答完的内容,这样,就开启了一轮新的公众号消息。
技术实现
现阶段(截至 2025-02-22)腾讯云够提供云上共享 DeepSeek 资源能力的(也就是说不需要自己搭建私有大模型),只有由 大模型知识引擎 (LKE) 团队提供的两个能力了:
其中,尽管知识引擎原子能力能够提供兼容 OpenAI 的接口,但目前有一个无法满足我们需求的点:没有搜索功能……我们要求 DeepSeek 能力 + 联网搜索,就只能用大模型知识引擎了。我们还是接入 SSE 接口,最顺手。
这里非常感谢知识引擎的产品经理在百忙之中帮我回答各种文档、计费、技术方面的疑问,最后在上线的时候还帮我们解决了最后的一个费用问题(半夜三更 PC 企微还在线,我也是惊了)
代码实现嘛,我用下面的(伪)时序图来说明一下吧:
这个图展示了一个 15 秒也未能完成全部问答、用户发送了两次 “继续” 才发完全部文本的场景。不同颜色代表不同的线程。
可以清晰地看到,在首问阶段,微信侧发起了三次请求,其中第一次,开启了红色的后台线程,获取回答内容。由于业务侧超时,微信又发起了两次请求——第二次的绿色线程,基本没做啥事,纯拖时间。在微信第三次请求,也就是橙色线程中,业务侧依然轮询,但当发现缓存从开始已经过了 14 秒,这个时候就赶在 5 秒超时之前(或者说是 15 秒卡 bug 的时限之前),将缓存中能取的数据都返回给用户,同时附上 “输入继续” 的提示信息。
至于针对用户输入 “继续” 的响应方法,相比起前面三次首问请求来说,就简单多了——缓存里有多少就回多少就行。
线上效果
周五晚上,解决完一些账号问题之后,我们就把功能发上线了。这个是正经的问答:
上线 DeepSeek 功能之前一些关键字问答,我们也兼容了一下:
毕竟是 DeepSeek,我们还是无法完全限制它不回答什么范畴,所以友商的问题也是能回复的:
慢慢地,我开始当作普通的 DeepSeek 接口来用了(本来就是嘛)
至于真实的用户会怎么跟 AI 交互,我还是很好奇的,也算是一个大规模的用户体验实验了~~
后续计划
满打满算,真正算对接 DeepSeek 的开发量就一个小时,剩下的时间我都在开发上面的时序图逻辑。(甚至周四是我们部门美美日,我都没加班)。虽然是紧急需求,但也正经走完了流程:星期三接需求、调研,下午接入微信公众号 API; 星期四完成逻辑开发; 星期五测试完成(甚至还快速开了两个小会加一个周会——后面 DeepSeek 的需求会越来越多),星期五晚上上线。所以,应该能算是快速上线吧。
不过,作为快速上线的产物,在这个场景呈现出来的 DeepSeek 的能力确实有些平淡,还没来得及对它做更多更细致的调教——这是我们会持续去做的事情。此外,公众号消息场景下,是否有更好的承载 DeepSeek 的交互,产品同学也在探索和设计。
还有一点,就是费用问题。目前我们接入的是腾讯云大模型知识引擎,然而知识引擎的本职作用并不是 DeepSeek,后者只是知识引擎的其中一个原子能力而已,而这个方案因为产品基于大模型扩展了能力边界,能够简单配置即可部署使用工作流、知识库、agent等各种周边能力,因此费用比较高。这个能力对于知识库问答的场景,是非常适合的。
如果不要求联网搜索功能,或者是开发者自己就已经实现了搜索能力的话,就比较奢侈了,可以考虑直接用腾讯云已经提供的知识引擎原子能力(参见前文),便宜很多。如果要搜索功能,又只想接入 DeepSeek,据腾讯云大模型知识引擎的产品经理介绍,目前支持原生搜索 + DeepSeek OpenAPI 兼容接口的能力,已经在开发中,尽快上线。对此我的态度是:持续关注,不停催更!
知几产品线接下来还有越来越多与头部游戏合作的 DeepSeek 应用上线,加之团队原本就有的大模型经验沉淀,以后我们的 AGI 效果肯定会越来越好。大家猜猜,除了已经官宣的 “和平精英” 之外,下一个接入 DeepSeek 的腾讯游戏是什么?
本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
原作者: amc,原文发布于腾讯云开发者社区,也是本人的博客。欢迎转载,但请注明出处。
原文标题:《可能是腾讯游戏第一个上线满血版 DeepSeek 的产品?知几公众号对接腾讯云 DeepSeek 方案》
发布日期:2025-02-22
原文链接:https://cloud.tencent.com/developer/article/2498711。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。