首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >自研react19.2+deepseek-v4+openai智能流式ai模板

自研react19.2+deepseek-v4+openai智能流式ai模板

原创
作者头像
andy2018
发布2026-07-20 21:03:20
发布2026-07-20 21:03:20
270
举报
文章被收录于专栏:h5h5

deepseek-v4正式版快要发布了,之前有使用vite8+vue3接入deepseek搭建流式生成ai助手。这次爆肝一周基于react19技术栈整合最新deepseek-v4-flash从0-1手搓h5版流式ai聊天模板。

Vite8.0+Vue3.5+Arco深度对接DeepSeek网页版AI智能助手

uni-app+mphtml快速集成DeepSeek-V4智能ai应用

Electron41 + Vite8打造流式输出客户端AI助手

react19-deepseek提供浅色+深色主题、支持流式打字输出深度思考代码高亮/复制/下载渲染katex公式/mermaid图等功能。

技术选型

  • 编辑器:Vscode
  • 技术框架:react^19.2.7+react-router^7.18.1
  • 大模型框架:deepseek-v4 + openai
  • UI组件库:@arco-design/mobile-react^2.39.1
  • 状态管理:zustand^5.0.14
  • markdown解析:react-markdown^10.1.0
  • 代码高亮/katex渲染:rehype-highlight + rehype-katex
  • mermaid图表:mermaid.js

功能性

  1. 支持亮色+暗黑主题
  2. 支持深度思考模式
  3. 支持katex数学公式
  4. 支持渲染mermaid图表(拖拽、缩放(放大+缩小+重置)、下载
  5. 支持代码块顶部sticky粘性、横向滚动、代码复制/下载代码
  6. 支持上下文多轮对话/本地存储对话
  7. 支持链接跳转、图片功能

项目结构目录

使用vite8.x构建工具搭建react模板。采用react hooks语法编码开发。

项目运行配置

自己申请deepseek apikey,替换下项目构目录下.env文件里的key即可。

入口模板App.jsx

代码语言:actionscript
复制
import { HashRouter } from 'react-router-dom'
import { appStore } from '@/store/app'

// 引入路由配置
import Router from './router'

function App() {
  const appState = appStore()
  appState.updateTheme()

  return (
    <>
      <HashRouter>
        <Router />
      </HashRouter>
    </>
  )
}

export default App

布局模板

代码语言:actionscript
复制
return (
  <>
    <div className='flexbox flex-col' style={{height: '100%'}}>
      <Toolbar title={chatSession()?.title} />
      
      <div className='rai__scrollview flex1'>
        {chatSession() && !isEmpty(chatSession().data) ?
          <>
            {/* Chat对话 */}
            <div ref={scrollRef} className='rai__chatbot' onScroll={onScroll} onWheel={onWheel}>
              <div className='rai__chatbot-sessions'>
                ...
              </div>
              {/* 滚动到底部 */}
              <div className='rai__scrollbottom' onClick={scrollToBottom}><i className='iconfont ai-arrD'></i></div>
            </div>
          </>
          :
          <>
            {/* 开始 */}
            <div className='rai__chatbot-intro'>
              <div className='flexbox flex-alignc' style={{ gap: '15px' }}>
                <img src="react.svg" style={{ height: '35px' }} alt="react" />
                <span className="c-999 ff-ar fs-18">+</span>
                <i className='logo iconfont ai-deepseek'></i>
              </div>
              <h3 className='name'><span className='txt text-gradient'>React19-DeepSeek</span></h3>
              <p className='desc'>你身边的智能小帮手,我可以帮你搜索、答疑、写作,请把你的任务交给我吧~</p>
              <div className='prompt'>
                <p className='tip flex-c'><span className='flex1'>推荐问题</span><a onClick={refreshPrompt}>换一换<IconRefresh /></a></p>
                <ul className='list'>
                  {
                    promptList.map((item, index) => (
                      <li key={index}>
                        <div className='txt' onClick={() => changePrompt(item.prompt)}>{item.emoji} {item.prompt} ➝</div>
                      </li>
                    ))
                  }
                </ul>
              </div>
            </div>
          </>
        }
      </div>

      {/* 编辑器 */}
      <ChatEditor value={promptValue} onChange={v => setPromptValue(v)} scrollBottom={scrollToBottom} />
    </div>
  </>
)

react+deepseek自定义katex公式和mermaid图表

代码语言:actionscript
复制
// 支持删除线、表格、任务列表和网址等GitHub Flavored Markdown
import remarkGfm from 'remark-gfm'
// 代码高亮
import rehypeHighlight from 'rehype-highlight'
import 'highlight.js/styles/atom-one-light.css'
import xml from 'highlight.js/lib/languages/xml'
// 支持数学公式
import remarkMath from 'remark-math'
import rehypeKatex from 'rehype-katex'
import 'katex/dist/katex.min.css'
// 渲染mermaid图表
import MermaidBlock from './mermaidBlock'

封装Markdown解析插件

代码语言:actionscript
复制
const Markdown = memo(({ source, scrollToBottom }) => {
  const processedContent = useMemo(() => {
    return preprocessMath(source || '')
  }, [source])

  return (
    <ReactMarkdown
      children={processedContent}
      components={{
        // 自定义代码块,所有代码都会被pre包裹
        pre(props) {
          const { children, node, ...rest } = props
          // 从 children 中提取 code 元素的信息
          const codeElement = children?.props?.children
          const className = children?.props?.className || ''
          const match = /language-(\w+)/.exec(className || '')
          const language = match ? match[1] : 'plaintext'

          // 渲染mermaid
          if (language === 'mermaid') {
            return (
          <MermaidBlock code={codeElement} scrollToBottom={scrollToBottom} />
            )
          }

          return (
            <div className="md-code-block">
              ...
            </div>
          )
        },
        // 自定义a渲染
        a({ href, children, node, ...rest}) {
          return <a {...rest} href={href} target='_blank'>{children}</a>
        },
        // 自定义img渲染
        img({ src, children, node, ...rest}) {
          return <img {...rest} src={src} onClick={() => handleImageClick(src)} />
        }
      }}
      remarkPlugins={[remarkGfm, remarkMath]}
      rehypePlugins={[
        rehypeKatex,
        [
          rehypeHighlight,
          {
            aliases: {xml: ['vue']}, // 支持vue语法
          }
        ],
      ]}
    />
  )
})

react19调用deepseek api流式输出

代码语言:actionscript
复制
// 调用deepseek接口
const completion = await openai.chat.completions.create({
  // 单一会话
  /* messages: [
    {role: 'user', content: editorValue}
  ], */
  // 多轮会话
  messages: multiConversation ? historySession() : [{role: 'user', content: editorValue}],
  // 对话模型(快速模式deepseek-v4-flash 专家模式deepseek-v4-pro)
  model: 'deepseek-v4-flash',
  // 是否深度思考
  thinking: {'type': thinkingEnabled ? 'enabled' : 'disabled'},
  stream: true, // 流式输出
  max_tokens: 8192, // 限制一次请求中模型生成 completion 的最大 token 数(默认使用 4096)
  temperature: 0.4, // 严谨采样 越低越严谨(默认1)
})

2026原创自研React19+Vite8+ArcoDesign+Zustand中后台管理系统框架模板

升级款vite8+vue3.5+arcoDesign网页端webOS桌面框架

自研Vite8+NaiveUI+Vue3+Echarts后台管理系统

全新研发Flutter3.41桌面版OS系统

uni-app+mphtml快速集成DeepSeek-V4智能ai应用

最新款flutter3.41 & dart3.11仿写抖音app

原创自研Flutter3.41+Dio+WindowManager打造桌面版AI问答系统

Flutter3.41实战AI:从零到一构建app版流式ai系统

Electron41 + Vite8打造流式输出客户端AI助手

Vite8.0+Vue3.5+Arco深度对接DeepSeek网页版AI智能助手

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 技术选型
  • 功能性
  • 项目结构目录
  • 项目运行配置
  • 入口模板App.jsx
  • 布局模板
  • react+deepseek自定义katex公式和mermaid图表
  • react19调用deepseek api流式输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档