笔者的知识星球有朋友提问:
我们公司在内网部署了 DeepSeek,需要开发一个 SAP UI5 应用,通过 API 方式调用这个本地 DeepSeek,将其结果通过 Streaming 方式渲染在 SAP UI5 应用界面上。
关于私有方式部署 DeepSeek,笔者之前的文章曾经介绍过:
使用腾讯 HAI 5 分钟内部署一个私人定制的 DeepSeek
大家每天使用 DeepSeek 和 ChatGPT 这些大模型的网页版时,发送 Prompt 之后,看到的回复,都是通过 Streaming(流)式方式返回的。
为什么我们需要 API 的流式响应?
大模型一次推理往往包含成千上万个 token,如果等待完整响应到达浏览器再渲染,用户将感受到明显卡顿。
流式响应则能够让客户端在服务器仍在推理时,就能持续收到增量 token,显著降低首字节延迟,显著提升了用户体验。
流式响应场景需要服务器 API 端和客户端共同的支持才能实现。有朋友曾经在我的知识星球上问我:ABAP 的 SOAP/OData API 能实现 Streaming 方式返回数据吗?咳咳,这个话题值得专门一篇文章来讲。
至于客户端,笔者用 SAP UI5 做了一个例子,效果如下:
下面我们一起来拆解,如何使用 SAP UI5 现成的控件,将 DeepSeek 的 Streaming API Response 渲染在浏览器上?
首先得学会如何在应用程序里调用 DeepSeek API. 这块在笔者之前的文章里有详细介绍:
回答网友提问:Word 里如何调用 DeepSeek API?
连老古董 VB 都能做到,JavaScript 更不在话下。
值得一提的是,笔者上面的文章里,调用 DeepSeek API 时,stream 标志位设置为 false. 在 SAP UI5 应用里,需要将其设置为 true,这样才能开启 DeepSeek API 的 Streaming Response 模式。
接下来在 SAP UI5 XML 视图里,使用两个 TextArea 控件和一个 Button 控件。ID 为 inputTextArea 的 TextArea,用来让用户输入 Prompt,另一个 ID 为 outputTextArea 则用来显示 DeepSeek 返回的推理结果。
Button 用来触发 API 调用。
最后 SAP UI5 界面如下:
关键步骤在于每当 DeepSeek API 有新的 Response token 到达浏览器端时,动态刷新这部分增量内容。
具体实现步骤和源代码的讲解,笔者已经更新到了下面这套SAP UI5 开发教程里,扫码即可阅读。
领取专属 10元无门槛券
私享最新 技术干货