Electron39.2+vue3+DeepSeek+Arco手搓客户端AI对话系统Exe模板
最新款原创研发Electron39+vue3+vite7+arco接入deepseek-v3.2前端桌面AI程序。
2026年正式electron39.2+vite7+vue3实战deepseek客户端流式ai应用。
Electron39-Vue3-DeepSeek跨平台AI助手 -
electron39.2+vite7+deepseek-v3.2+openai电脑版流式ai智能对话系统。支持浅色+暗黑主题、深度思考、代码高亮/复制代码、katex数学公式、mermaid图表解析、上下文多轮对话及本地存储对话等功能。



技术知识点
- 跨平台框架:electron39.2.7
- 技术框架:vite7.2.4+vue3.5.24+vue-router4.6.4
- 大模型框架:DeepSeek-V3.2 + OpenAI
- 组件库:arco-design^2.57.0
- 状态插件:pinia^3.0.4
- 会话缓存:pinia-plugin-persistedstate^4.7.1
- 高亮插件:highlight.js^11.11.1
- markdown渲染插件:markdown-it^14.1.0
- 打包工具:electron-builder^26.0.12


项目结构框架目录
基于最新跨平台框架Electron39.2结合Vite7全家桶技术,调用deepseek-v3.2 api大模型搭建桌面端流式AI对话系统。

electron39-vue3-winai项目已经正式更新到我的原创作品小铺。




项目布局模板
项目整体页面布局结构如下图所示:


<script setup>
import Titlebar from '@/layouts/components/titlebar/index.vue'
import Sidebar from '@/layouts/components/sidebar/index.vue'
</script>
<template>
<div class="vu__container">
<div class="vu__layout flexbox flex-col">
<!-- 导航栏 -->
<Titlebar />
<div class="vu__layout-body flex1 flexbox">
<!-- 侧边 -->
<Sidebar />
<!-- 对话区 -->
<div class="vu__layout-main flex1">
<router-view v-slot="{ Component, route }">
<keep-alive>
<component :is="Component" :key="route.path" />
</keep-alive>
</router-view>
</div>
</div>
</div>
</div>
</template>
项目入口文件main.js
import { createApp } from 'vue'
import './style.scss'
import App from './App.vue'
import { launchApp } from '@/windows/actions'
// 引入路由/状态配置
import Router from './router'
import Pinia from './pinia'
// 引入插件配置
import Plugins from './plugins'
launchApp().then(config => {
if(config) {// 全局存储窗口配置
window.config = config
}
// 初始化app实例
createApp(App)
.use(Router)
.use(Pinia)
.use(Plugins)
.mount('#app')
})







electron vue3实现deepseek深度思考


const completion = await openai.chat.completions.create({
// 单一会话
/* messages: [
{role: 'user', content: editorValue}
], */
// 多轮会话
messages: props.multiConversation ? historySession.value : [{role: 'user', content: editorValue}],
// deepseek-chat对话模型 deepseek-reasoner推理模型
model: sessionstate.thinkingEnabled ? 'deepseek-reasoner' : 'deepseek-chat',
stream: true, // 流式输出
max_tokens: 8192, // 一次请求中模型生成 completion 的最大 token 数(默认使用 4096)
temperature: 0.4, // 严谨采样
})
自定义katex数学公式+mermaid图表解析
import { katex } from "@mdit/plugin-katex"; // 支持数学公式
import 'katex/dist/katex.min.css'
// 渲染mermaid图表
import { markdownItMermaidPlugin } from '@/components/markdown/plugins/mermaidPlugin'
markdown渲染流返回数据
<Markdown
:source="item.content"
:html="true"
:linkify="true"
:typographer="true"
:plugins="[
[katex, {delimiters: 'all'}],
[markdownItMermaidPlugin, { ... }]
]"
@copy="onCopy"
/>















vue3自定义AI对话框



<template>
<div class="v3ai__inputbox flexbox flex-col">
<!-- 编辑器 -->
<div class="v3ai__editor flexbox">
<a-textarea v-model="editorText" :auto-size="autoSize" :spellcheck="false" placeholder="给 DeepSeek 发送消息" @input="handleInput" />
</div>
<!-- 操作栏 -->
<div class="v3ai__tools flexbox flex-alignc">
<div class="option flex1 flexbox">
<a-tooltip content="先思考后回答,解决推理问题" position="top" mini>
<div class="btn" :class="{'active': sessionstate.thinkingEnabled}" @click="sessionstate.thinkingEnabled =! sessionstate.thinkingEnabled"><i class="iconfont ai-deepthink"></i><span>深度思考</span></div>
</a-tooltip>
<div class="btn" :class="{'active': sessionstate.searchEnabled}" @click="sessionstate.searchEnabled =! sessionstate.searchEnabled"><i class="iconfont ai-network"></i><span>联网</span></div>
<!-- 技能栏 -->
<a-dropdown v-if="skillbar" position="tl" :content-style="{'min-width': '120px'}" @select="handleSkill">
<div class="btn"><icon-command size="16" /><span>技能</span></div>
<template #content>
<a-doption v-for="(item, index) in skills" :key="index" :value="item"><template #icon><i class="iconfont" :class="item.icon"></i></template>{{item.text}}</a-doption>
</template>
</a-dropdown>
</div>
<a-dropdown trigger="hover" :show-arrow="false" position="lb" :content-style="{'min-width': '200px'}">
<a-button class="icon-btn" shape="circle"><icon-attachment size="18" /></a-button>
<template #content>
<a-dgroup>
<template #title><div style="margin-bottom: 5px;">从网盘添加</div></template>
<a-doption value="wx"><icon-more /> 选择网盘文件</a-doption>
</a-dgroup>
<a-dgroup>
<template #title><div style="margin-bottom: 5px;">从本地添加</div></template>
<a-doption value="wx"><icon-apps /> 上传文件</a-doption>
<a-dsubmenu trigger="hover" position="rb" :popup-translate="[5, 5]" value="option-1" :content-style="{'min-width': '120px'}">
<template #default><icon-apps /> 上传代码</template>
<template #content>
<a-doption value="pyq"><icon-apps /> 代码文件</a-doption>
<a-doption value="qq"><icon-apps /> 代码文件夹</a-doption>
<a-doption value="qq"><icon-apps /> GitHub仓库</a-doption>
</template>
</a-dsubmenu>
</a-dgroup>
</template>
</a-dropdown>
<a-tooltip content="截图提问" position="top" mini>
<a-button class="icon-btn" shape="circle"><icon-scissor size="18" @click="handleCut" /></a-button>
</a-tooltip>
<a-dropdown :show-arrow="false" position="top" :content-style="{'min-width': '160px'}">
<a-button class="icon-btn" shape="circle"><icon-plus size="18" /></a-button>
<template #content>
<a-doption value="image"><icon-file-image /> 图片</a-doption>
<a-doption value="file"><icon-file /> 本地文件</a-doption>
<a-doption value="pdf"><icon-file-pdf /> PDF文档分析</a-doption>
<a-doption value="page"><icon-cloud /> 网页总结</a-doption>
</template>
</a-dropdown>
<a-divider direction="vertical" style="margin: 0 15px 0 10px; height: 15px;" />
<a-button class="btn-submit" v-if="!sessionstate.loading" type="primary" shape="circle" :disabled="!editorText?.trim() || sessionstate.loading" @click="handleSubmit">
<icon-arrow-up size="20" />
</a-button>
<a-button class="btn-submit" v-else type="primary" shape="circle" @click="handleStopStream">
<div style="background:#fff;border-radius:2px;height:10px;width:10px;"></div>
</a-button>
</div>
</div>
</template>

vue3+electron对接deepseek流式stream
// 调用deepseek接口
const completion = await openai.chat.completions.create({
// 单一会话
// messages: [{role: 'user', content: editorValue}],
// 多轮会话
messages: props.multiConversation ? historySession.value : [{role: 'user', content: editorValue}],
// deepseek-chat对话模型 deepseek-reasoner推理模型
model: sessionstate.thinkingEnabled ? 'deepseek-reasoner' : 'deepseek-chat',
stream: true, // 流式输出
max_tokens: 8192,
temperature: 0.4
})
// 处理流式返回结果
for await (const chunk of completion) {
// 检查是否已终止
if(sessionstate.aborted) break
const content = chunk.choices[0]?.delta?.content || ''
// 获取推理内容
const reasoningContent = chunk.choices[0]?.delta?.reasoning_content || ''
if(content || reasoningContent) {
answerText += content
reasoningText += reasoningContent
// 限制更新频率:每100ms最多更新一次
const now = Date.now()
if(now - lastUpdate > 100) {
lastUpdate = now
requestAnimationFrame(() => {
// ...
})
}
}
if(chunk.choices[0]?.finish_reason === 'stop') {
// ...
}
}

Okay,基于Electron39+Vue3实战桌面端AI对话系统就分享到这里。感谢大家的阅读与支持!
2026款网页版AI Chat对话|Vite7+Vue3+DeepSeek-R1开发web版流式ai对话
基于uni-app+vue3+deepseek+uv-ui仿DeepSeek流式AI聊天模板
2026最新版vite7.2+vue3.5+deepseek-v3.2+markdown移动端流式AI对话模板
Electron38-Vue3Chat电脑端聊天|vite7+electron38+pinia3仿微信
基于Electron38.2+Vite7+Vue3+ArcoDesign客户端OS系统
最新款Electron38+Vue3+Vite7+ElementPlus客户端中后台管理系统
基于uni-app+vue3+pinia2+uv-ui仿抖音app短视频+聊天+直播商城系统
Tauri2-Vite7Admin客户端管理后台|tauri2.9+vue3+element-plus后台系统
2025最新款Tauri2.9+Vite7.2+Vue3 setup+ArcoDesign电脑版os后台解决方案
基于tauri2+vite7.1+vue3 setup+pinia3+element-plus电脑端聊天系统
最新版vite7-vue3-webos网页版仿macos系统|Vite7+Pinia3+Arco网页os
2025跨端uniapp+vue3+uv-ui实战仿微信app聊天应用模板
基于flutter3.32+window_manager+get仿macOS/wins桌面os系统
最新flutter3.27+get+bitsdojo_window电脑版仿微信聊天EXE
更多推荐



所有评论(0)