Tauri2.0-DeepSeek電腦端Ai對話|tauri2+vite6+deepseek流式ai聊天系統
重磅新作tauri2.0+vue3.5+deepseek+arco桌面客戶端ai流式輸出聊天對話系統。
tauri2-vue3-deepseek:桌面端ai聊天對話,基于Tauri2.x+Vite6集成接入DeepSeek-V3聊天對話系統,支持圓角陰影多窗口、流式輸出打字效果、淺色+暗黑模式、代碼高亮美化、會話本地存儲等功能。

技術棧
- 編輯器:VScode
- 技術框架:vite^6.3.5+vue^3.5.15+vue-router^4.5.1
- Ai大模型框架:DeepSeek-V3-0324 + OpenAI
- 跨平臺框架:tauri^2.5.0
- UI組件庫:arco-design^2.57.0 (字節桌面端組件庫)
- 狀態管理:pinia^3.0.3
- 本地緩存:pinia-plugin-persistedstate^4.3.0
- 高亮插件:highlight.js^11.11.1
- markdown插件:markdown-it


項目特性
- 基于跨平臺Tauri2.0搭建項目,接入DeepSeek-V3,體積小、性能優、效果絲滑
- 封裝多窗口管理、支持暗黑+淺色主題模式、展開/收縮側邊欄
- 支持各種代碼高亮效果、易于展示分享代碼片段
- 支持上下文多輪對話、提示詞生成圖片及預覽功能
- 支持在瀏覽器打開會話里面的鏈接
- 使用arco-design組件庫,保證UI風格統一性

項目結構目錄
使用 tauri2.0+vite6 搭建跨平臺項目模板,接入 deepseek-v3 對話模型,采用vue3 setup語法糖開發編碼。

目前Tauri2-Vue3-DeepSeek客戶端Ai對話項目已經更新到我的原創作品集。
環境變量配置.env
# 項目名稱 VITE_APPNAME = 'Tauri2-DeepSeek' # 運行端口 VITE_PORT = 1420 # DeepSeek API配置 VITE_DEEPSEEK_API_KEY = 替換為你的 API Key VITE_DEEPSEEK_BASE_URL = https://api.deepseek.com
入口配置文件main.js
/** * 渲染頁面入口main.js * @author andy */ import { createApp } from "vue" import App from "./App.vue" import './style.scss' // 引入插件配置 import Plugins from './plugins' // 引入路由/狀態管理 import Router from './router' import Pinia from './pinia' createApp(App) .use(Plugins) .use(Router) .use(Pinia) .mount("#app");





項目通用布局

項目整體分為自定義頂部導航欄+側邊欄+右側對話區三個板塊。

<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>














Ai聊天編輯框


編輯框組件封裝在components目錄下。

<template> <div class="v3ai__footbar flexbox flex-col"> <!-- 技能欄 --> <div v-if="skillbar" class="v3ai__skills flexbox flex-alignc"> <div class="item" v-for="(item, index) in skills" :key="index" @click="handleSkill(item)"> <i class="iconfont" :class="item.icon"></i><span class="text">{{item.text}}</span> </div> </div> <!-- 編輯欄 --> <div class="v3ai__inputbox flexbox flex-col"> <div class="v3ai__editor flexbox"> <a-textarea v-model="editorText" :auto-size="autoSize" placeholder="想問點什么..." spellcheck="false" @input="handleInput" /> </div> <!-- 操作欄 --> <div class="v3ai__tools flexbox flex-alignc"> <div class="option flex1 flexbox"> <div class="btn" @click="isDeep =! isDeep"><i class="iconfont ai-deepthink"></i> 深度思考 <span class="fs-12">(R1)</span></div> <div class="btn" @click="isNetwork =! isNetwork"><i class="iconfont ai-network"></i> 聯網</div> </div> <a-dropdown trigger="hover" :show-arrow="false" position="lb" :content-style="{'min-width': '250px'}"> <a-button 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="[8, 8]" value="option-1"> <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-dropdown :show-arrow="false" position="top" :popup-translate="[-5, -5]" :content-style="{'min-width': '150px'}"> <a-button 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 7px;" /> <a-button class="submit" type="primary" shape="circle" @click="handleSubmit"> <icon-send v-if="!sessionstate.loading" size="20" /> <icon-loading v-else size="18" /> </a-button> </div> </div> </div> </template>

tauri2+vue3接入deepseek流式輸出
const completion = await openai.chat.completions.create({ // 單一會話 // messages: [ {role: 'user', content: editorValue} ], // 多輪會話 messages: props.multiConversation ? historySession.value : [{role: 'user', content: editorValue}], model: 'deepseek-chat', stream: true, // 流式輸出 max_tokens: 8192, // 限制一次請求中模型生成 completion 的最大 token 數(默認使用 4096) temperature: 0.4, // 嚴謹采樣 越低越嚴謹(默認1) })
通過for循環分片返回流式。
// 使用數組存儲chunk內容,提高拼接效率 let chunks = [] let lastUpdate = 0 // 處理流式輸出 for await (const chunk of completion) { const content = chunk.choices[0]?.delta?.content || '' if(content) { chunks.push(content) // 限制更新頻率:每100ms最多更新一次 const now = Date.now() if (now - lastUpdate > 100) { sessionstate.updateSession(botKey, {content: chunks.join('')}) lastUpdate = now // 滾動最底部 if (sessionstate.reachBottom) { props.scrollBottom() } } } if(chunk.choices[0]?.finish_reason === 'stop') { sessionstate.loading = false // 確保最終內容完整更新 sessionstate.updateSession(botKey, {content: chunks.join(''), loading: false}) if (sessionstate.reachBottom) { props.scrollBottom() } } }
Ok,以上就是tauri2.0+vue3對接deepseek實戰桌面端ai流式對話系統的一些分享,希望對大家有所幫助!
Uniapp-DeepSeek跨三端AI助手|uniapp+vue3+deepseek-v3流式ai聊天模板
vue3-webseek網頁版AI問答|Vite6+DeepSeek+Arco流式ai聊天打字效果
flutter3-deepseek流式AI模板|Flutter3.27+Dio+DeepSeeek聊天ai助手
Vue3-DeepSeek-Chat流式AI對話|vite6+vant4+deepseek智能ai聊天助手
附上幾個最新實戰項目
Tauri2.0-Vue3OS桌面端os平臺|tauri2+vite6+arco電腦版OS管理系統
Tauri2.0+Vite5聊天室|vue3+tauri2+element-plus仿微信|tauri聊天應用
Electron35-DeepSeek桌面端AI系統|vue3.5+electron+arco客戶端ai模板
flutter3-dymall仿抖音直播商城|Flutter3.27短視頻+直播+聊天App實例
Electron31-Vue3Admin管理系統|vite5+electron+pinia桌面端后臺Exe

本文為博主原創文章,未經博主允許不得轉載,歡迎大家一起交流 QQ(282310962) wx(xy190310)

浙公網安備 33010602011771號