从 0 到 1:Electron41 + Vite8 + OpenAI SDK 接入 DeepSeek-V4.1-Flash 桌面端 AI 系统
从 0 到 1:Electron41 + Vite8 + OpenAI SDK 接入 DeepSeek-V4.1-Flash 桌面端AI系统 - yxybox
开发者用 Electron 41 + Vue3 + Vite8.3 + Arco 搭配 OpenAI SDK,从 0 到 1 手搓了一个接入 DeepSeek-V4.1-Flash 的桌面端 AI 对话客户端。项目名为 vite8-electron-ai,通过 OpenAI 接口调用 DeepSeek-V4.1 模型,定位为电脑端专属 AI 搭子。
Electron41 + Vite8.3 + Vue3 接入 DeepSeek-V4.1-Flash,手搓客户端 AI 对话,丝滑到离谱


vite8-electron-ai:Electron 41 + Vue3 + Vite8 + Arco + OpenAI 接入 DeepSeek-V4.1,从 0 到 1 打造电脑端专属 AI 搭子 🧠💻
技术栈:
- Electron 41
- Vue 3
<script setup> - Vite 8
- Arco Design
- OpenAI SDK 接入 DeepSeek-V4.1
从项目脚手架开始,从0-1 搭建一个 AI 桌面端:
- 流式打字输出
- 浅色 / 深色主题
- 深度思考(reasoner)
- Markdown / 代码块 / 复制 / 下载
- KaTeX 数学公式
- Mermaid 图表渲染
- 多轮对话 + 本地持久化会话


项目目录结构
基于 electron41+vite8 搭建项目,调用deepseek-v4.1-flash快速大模型, vue3 setup 语法编码页面。

electron41-vue3-deepseek已经正式更新到我的原创作品小店。
Electron41+Vite8+DeepSeek桌面版AI流式会话模板Exe
核心特性
🔄 流式对话引擎
|
能力 |
说明 |
|---|---|
|
SSE 流式输出 |
基于 openai sdk ,逐字渲染打字效果,延迟 < 100ms |
|
打字机动画 |
类似deepseek打字输出效果 |
|
多轮上下文 |
维护 |
|
本地会话存储 |
基于 |
🧠 深度思考链(Reasoning Chain)
|
能力 |
说明 |
|---|---|
|
思维链展示 |
解析 DeepSeek v4.1 的 |
|
渐进式渲染 |
思考链与正文同步流式输出,思考中显示脉冲动画 |
|
状态标识 |
区分「思考中 / 已思考 」状态,UI 差异化呈现 |
📐 数学公式渲染(KaTeX)
|
能力 |
说明 |
|---|---|
|
行内/块级公式 |
支持 |
📊 Mermaid 图表渲染(H5 端)
|
能力 |
说明 |
|---|---|
|
实时渲染 |
识别 |
|
交互支持 |
支持缩放、平移,点击节点可触发回调 |
💻 代码块增强
|
能力 |
说明 |
|---|---|
|
Sticky 顶部栏 |
代码块语言标识 + 复制按钮固定吸顶,滚动不消失 |
|
横向滚动 |
长代码行横向滚动,不破坏布局 |
|
语法高亮 |
基于 |
|
一键复制 |
点击复制按钮,写入系统剪贴板,带成功反馈 |
🔗 链接与图片
|
能力 |
说明 |
|---|---|
|
链接跳转 |
自动识别 URL,H5 端 |
|
图片预览 |
识别 Markdown 图片,点击预览 |


接入最新deepseek-flash大模型
const completion = await openai.chat.completions.create({
// 单一会话
/* messages: [
{role: 'user', content: editorValue}
], */
// 多轮会话
messages: props.multiConversation ? historySession.value : [{role: 'user', content: editorValue}],
// 对话模型
model: 'deepseek-flash',
// 是否深度思考
thinking: {'type': chatState.thinkingEnabled ? 'enabled' : 'disabled'},
// 流式输出
stream: true,
// 限制一次请求中模型生成的最大 token 数。取值范围为 1 到 384K(393216)。未设置时,非思考模式默认 8K,思考模式默认 64K
// max_tokens: 8192,
// 严谨采样 越低越严谨(默认1) 介于 0 和 2 之间。更高的值,如 0.8,会使输出更随机,而更低的值,如 0.2,会使其更加集中和确定。
temperature: 0.4,
})


项目布局结构

<script setup>
import { appState } from '@/pinia/modules/app'
import Titlebar from '@/layouts/components/titlebar/index.vue'
import Sidebar from '@/layouts/components/sidebar/index.vue'
const appstate = appState()
</script>
<template>
<div class="vu__chatbot">
<div class="vu__container" :style="{'--themeSkin': appstate.config.skin}">
<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>
</div>
</template>



2026 最硬核实战:Electron41 + Vue3 + Vite8 从 0 到 1 手搓 DeepSeek 桌面 AI 客户端 就分享到这里了,希望以上的项目分享对大家有些启发帮助哈~
来源:博客园 · cnblogs.com