接入deepSeek后,前端如何给“深度思考“内容单独设置样式?

问题描述:

SSE接口响应回来的数据是markdown格式,理论上来说markdown中是包含样式的,前端只需要将markdown转化为html响应到页面上即可,但是接入deepSeek后深度思考的内容只有文字描述没有样式,需要前端单独设置。

解决思路:

让后端在响应的数据流中加入标识,用来区分 " 思考内容 " 还是 " 回答内容 ",前端将" 思考内容 "截取出来,给 " 思考内容 " 加上html标签并添加行内样式生成字符串thinkingStr,然后将" 回答内容 "通过第三方库MarkdownIt将markdown转化为html字符串answerStr。最后将thinkingStr+answerStr=currentHTML拼接起来就生成完整且附带样式的html字符串,通过v-html将currentHTML渲染到页面即可。

实现代码:

javascript 复制代码
import MarkdownIt from "markdown-it"

const md = new MarkdownIt()

const currentHTML = computed(() => {

      // 注:contentItems是在onmessage中实时接收并拼接好的字符串
      // </sy_think>是用来区分"思考内容"和"响应内容"的标识
      // md.render是将markdown转化为html

      if (contentItems.value) {
        if (contentItems.value.includes("</sy_think>")) {
          const resArr = contentItems.value.split("</sy_think>")
          const thinkingStr= `<h4> 师爷模型深度思考中...</h4> 
                              <div style="color: gray;">${resArr[0]}</div>
                             `
          return thinkingStr+ md.render(resArr[1])
        } else {
          const thinkingStr= `<h4> 师爷模型深度思考中...</h4>
                             <div style="color: gray;">${contentItems.value}</div>
                             `
          return thinkingStr
        }
      }
    })

效果对比:

相关推荐
Mr Xu_4 分钟前
前端开发中CSS代码的优化与复用:从公共样式提取到CSS变量的最佳实践
前端·css
鹏北海-RemHusband40 分钟前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构
LYFlied41 分钟前
AI大时代下前端跨端解决方案的现状与演进路径
前端·人工智能
光影少年44 分钟前
AI 前端 / 高级前端
前端·人工智能·状态模式
一位搞嵌入式的 genius1 小时前
深入 JavaScript 函数式编程:从基础到实战(含面试题解析)
前端·javascript·函数式
anOnion1 小时前
构建无障碍组件之Alert Dialog Pattern
前端·html·交互设计
choke2331 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
云飞云共享云桌面1 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
Deng9452013141 小时前
Vue + Flask 前后端分离项目实战:从零搭建一个完整博客系统
前端·vue.js·flask
威迪斯特1 小时前
Flask:轻量级Web框架的技术本质与工程实践
前端·数据库·后端·python·flask·开发框架·核心架构