如何做到类似 next-web 这样的前端输出格式(流输出, markdown 渲染, mermaid 渲染) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
edisonwhale
V2EX    问与答

如何做到类似 next-web 这样的前端输出格式(流输出, markdown 渲染, mermaid 渲染)

  •  
  •   edisonwhale 2024-05-29 13:44:31 +08:00 1072 次点击
    这是一个创建于 552 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好!

    最近我在做一个个人的小项目(学生出发于学习的角度),是开发一个基于 Gemini AI API 的 gpt(可以理解为高仿 Gemini),前端使用 React 、Vite 和 Tailwind CSS ,后端则是 FastAPI 。我已经实现了侧边栏和主页面的基本布局。因为本人是前端菜狗而且还在学习当中所以遇到亿点点点点困难想咨询下论坛的佬

    问题一:如何在前端实现 API 响应的流式输出?

    目前遇到不知道如何前端以流式方式( streaming )显示出来。也就是说,用户在发送请求后,响应内容会逐步显示,而不是一次性加载完成。这样可以提升用户体验,尤其是在处理较长的文本或复杂的响应时。(很喜欢 next-web 这个项目的输出,想学习下但是没太看的懂代码有点杂,其实还是因为我菜)

    问题二:如何在前端实现 Markdown 渲染?

    想做成 next-web 这样的能够支持 Markdown 格式的渲染。这样,API 返回的内容可以包含富文本格式,比如标题、列表、代码块等,用户阅读起来会更加方便和美观。我猜是有相关的 markdown 包可以解决这个问题

    我目前的进展:

    • 已经搭建好 React-Vite-Tailwind CSS 的前端框架。
    • 实现了基本的侧边栏和主页面布局。
    • FastAPI 后端已经能够处理基本的 API 请求并返回响应。

    如果可以的话希望有佬可以指导下 或者有什么开源的项目比较简单的但是有这种类似的功能可以参考的推荐下

    非常感谢大家的时间和帮助!期待能够从大家的经验中学习到更多,也希望这个话题能帮助到有类似需求的朋友们。 我非常愿意知识付费如果有佬可以帮助我解决这个问题的话!!(因为本人表达能力很差=m= 所以上面这些话大部分都是 gpt 写的然后我自己改改)

    谢谢大家!

    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2684 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 20ms UTC 15:02 PVG 23:02 LAX 07:02 JFK 10:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86