vue实现AI问答Markdown打字机效果

上线效果

功能清单

  • AI问答,文字输出跟随打字机效果
  • 格式化回答内容(markdown格式)
  • 停止回答,复制回答内容
  • 回答时自动向下滚动
  • 全屏切换
  • 历史问答查看

主要技术

  • vue @2.7.1
  • markdown-it @14.1.0
  • @microsoft/fetch-event-source @2.0.1
  • highlight.js @10.7.1

实现思路

  • 后台接口支持流式返回也就是 :Accept: 'text/event-stream' 请求头
  • 前端通过fetch-event-source请求数据,也可以通过axios,但是要进行转换
  • 前端通过markdwon-it结合highlight.js显示返回的数据,并高亮和格式化代码

核心代码

1.markdown使用

2.接口请求

通过 onmessage方法,返回接口数据,拼接后渲染。

避坑

  • 调试模式下要关闭compress,否则不会返回流,会一次性返回,无法实现打字机效果,参考如下图:
  • markdown输出后,代码无法靠左对齐,无法像下图这样:

注意添加样式:

总结

至此一个AI问答打字机效果的功能就实现了,核心在于:流式输出,markdown 格式化

如果你觉得看完有价值,可以免费点个赞👍,也可以评论区一起学习交流。

相关推荐
2301_7813925227 分钟前
提高前端开发效率的利器:VUE常用组件及应用
前端·javascript·vue.js
golang学习记35 分钟前
VS Code 2025 最强“黑科技”特性:效率直接拉满!
前端
Learn Beyond Limits38 分钟前
Initializing K-means|初始化K-means
人工智能·python·算法·机器学习·ai·kmeans·吴恩达
Mintopia40 分钟前
📘 领域适配 AIGC:垂直行业 Web 应用的微调技术实践
前端·aigc·ai编程
llq_35042 分钟前
pnpm 中的硬链接(hard link)和符号链接(symlink)
前端
南屿im43 分钟前
前端性能基准测试入门:用 Benchmark.js 做出数据驱动的选择
前端·javascript
ssshooter1 小时前
linkProgram 和 useProgram 分别执行了什么动作?
前端·webgl
TZOF1 小时前
TypeScript的静态类型检查,在js中经常会遇到的困扰
前端·javascript·typescript
_大学牲1 小时前
Flutter 集成 Google ML Kit 体态识别模型 (二) 如何用姿态数据实现运动动作检测
前端·app
今禾1 小时前
深入理解CSS媒体查询
前端·css·面试