Vue3-DeepSeek-Chat流式AI對話|vite6+vant4+deepseek智能ai聊天助手
原創新作vue3.5+deepseek+markdown+vant4仿DeepSeek-R1流式輸出ai聊天對話。
deepseek-vue3-chat : 實戰2025智能大模型ai會話,基于Vue3+Vite6+OpenAI集成接入DeepSeek聊天小助手模板,支持流式打字輸出效果、淺色/暗黑主題模式、代碼高亮顯示、針對移動端+PC端適配處理。

Tauri2.0-DeepSeek電腦端Ai對話|tauri2+vite6+deepseek流式ai聊天系統
flutter3-deepseek流式AI模板|Flutter3.27+Dio+DeepSeeek聊天ai助手
Uniapp-DeepSeek跨三端AI助手|uniapp+vue3+deepseek-v3流式ai聊天模板
2025跨平臺Electron35+DeepSeek客戶端ai系統
最新實戰新作vue3.5+deepseek搭建網頁版AI對話助手
??使用技術
- 開發工具:VScode
- 技術框架:Vite^6.2.0+Vue^3.5.13+vue-router^4.5.0
- 大模型框架:DeepSeek-R1 + OpenAI
- UI組件庫:Vant^4.9.17 (有贊vue3移動端組件庫)
- 狀態管理:pinia^3.0.1
- 高亮插件:highlight.js^11.11.1
- markdown解析:markdown-it
- 本地緩存:pinia-plugin-persistedstate^4.2.0


?項目特性
- Vue3+DeepSeek實現流式打字輸出效果
- 基于Vue3構建,集成DeepSeek,性能更優,對話絲滑流暢
- 支持各種代碼高亮,方便展示和分享代碼片段
- 使用vant4組件庫,風格統一,時尚大氣
- 支持移動端+PC端750px像素適配,大屏也有良好體驗

???項目結構目錄
vue3-deepseek使用 vite6.x 構建項目模板,采用 vue3 setup 語法編碼開發。

vue3-deepseek聊天ai對話項目已經同步到我的作品集,感謝大家的鼓勵與支持!
環境變量配置.env
# title VITE_APP_TITLE = 'Vue3-DeepSeek-Chat' # port 默認http://localhost:5173/ VITE_PORT = 3001 # 運行時自動打開瀏覽器 VITE_OPEN = true # 開啟https VITE_HTTPS = false # 是否刪除生產環境 console VITE_DROP_CONSOLE = true # DeepSeek API配置 VITE_DEEPSEEK_API_KEY = 替換為你的 API Key VITE_DEEPSEEK_BASE_URL = https://api.deepseek.com
入口文件配置main.js
import { createApp } from 'vue'
import './style.scss'
import App from './App.vue'
// 引入路由/狀態管理
import Router from './router'
import Pinia from './pinia'
import Plugins from './plugins'
const app = createApp(App)
app
.use(Router)
.use(Pinia)
.use(Plugins)
.mount('#app')


布局模板

如上圖:頁面整體分為頂部導航條+聊天對話區+底部編輯器三個部分。
<template> <div class="flexbox flex-col" style="height:100%;"> <Toolbar :title="chatSession?.title" /> <div class="v3ai__scrollview flex1"> <!-- Chat對話 --> <div v-if="chatSession && !isEmpty(chatSession.data)" class="v3ai__chatbot" ref="scrollRef" @scroll="onScroll"> <div class="v3ai__chatbot-sessions"> ... </div> <!-- 滾動底部 --> <div class="v3ai__scrollbottom flex-c" :class="{'is-bottom': reachBottom}" @click="scrollToBottom"><i class="iconfont ai-arrD"></i></div> </div> <!-- 導語 --> <div v-else class="v3ai__chatbot-intro"> <i class="logo iconfont ai-deepseek"></i> <h3 class="name"><span class="txt text-gradient">嗨~ Vue3-DeepSeek</span></h3> <p class="desc">你身邊的智能小幫手,我可以幫你搜索、答疑、寫作,請把你的任務交給我吧~</p> <div class="prompt"> <p class="tip flex-c"><span class="flex1">你可以這樣問</span><span class="flex-c" @click="refreshPrompt">換一換<i class="iconfont ai-shuaxin"></i></span></p> <ul class="list"> <li v-for="(item,index) in promptList" :key="index"> <div class="txt" @click="changePrompt(item.prompt)">{{item.emoji}} {{item.prompt}}</div> </li> </ul> </div> </div> </div> <!-- 編輯器 --> <ChatEditor ref="editorRef" :value="promptValue" :reachBottom="reachBottom" :scrollBottom="scrollToBottom" /> </div> </template>

路由配置

/** * 路由配置 * @author andy */ import { createRouter, createWebHashHistory } from 'vue-router' import { appStore } from '@/pinia/modules/app' // 批量導入modules路由 const modules = import.meta.glob('./modules/*.js', { eager: true }) const patchRoutes = Object.keys(modules).map(key => modules[key].default).flat() const routes = [ // 錯誤模塊 { path: '/:pathMatch(.*)*', component: () => import('@views/error/404.vue'), meta: { title: '404 error' } }, ...patchRoutes ] const router = createRouter({ history: createWebHashHistory(), routes }) // 全局鉤子攔截 router.beforeEach((to, from, next) => { const store = appStore() if(to?.meta?.isAuth && !store.isLogged) { next('/login') }else { next() } }) router.afterEach(() => { // ... }) router.onError(error => { console.warn('Router Error>>', error.message); }) export default router



















vue3+pinia狀態管理

/** * 狀態管理 Pinia * @author andy */ import { createPinia } from 'pinia' // 引入pinia本地持久化存儲 import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' const pinia = createPinia() pinia.use(piniaPluginPersistedstate) export default pinia
vue3和deepseek聊天會話都保存在本地存儲中。
export const chatStore = defineStore('chat', {
state: () => ({
// 聊天會話記錄
sessionId: '',
session: []
}),
getters: {},
actions: {
// 創建新對話
createSession(ssid) {
this.sessionId = ssid
this.session.unshift({
sessionId: ssid,
title: '',
data: []
})
},
// 新增會話
addSession(message) {
// 判斷當前會話uuid是否存在,不存在創建新對話
if(!this.sessionId) {
const ssid = guid()
this.createSession(ssid)
}
this.session.map(item => {
if(item.sessionId == this.sessionId) {
if(!item.title) {
item.title = message.content
}
item.data.push(message)
}
})
},
// 更新某一條會話
updateSession(key, content) {
this.session.map(item => {
if(item.sessionId == this.sessionId) {
if(item.data && !isEmpty(item.data)) {
item.data.map((it, index) => {
if(it.key == key) {
it.content = content
}
})
}
}
})
},
// 獲取會話
getSession() {
return this.session.find(item => item.sessionId == this.sessionId)
},
// 移除會話
removeSession(ssid) {
const index = this.session.findIndex(item => item?.sessionId === ssid)
if(index > -1) {
this.session.splice(index, 1)
}
this.sessionId = ''
},
// 刪除某一條會話
deleteSession(key) {
this.session.map(item => {
if(item.sessionId == this.sessionId) {
if(item.data && !isEmpty(item.data)) {
item.data.map((it, index) => {
if(it.key == key) {
item.data.splice(index, 1)
}
})
}
}
})
},
// 清空會話
clearSession() {
this.session = []
this.sessionId = ''
}
},
// 本地持久化存儲(默認存儲localStorage)
persist: true
/* persist: {
// key: 'chatStore', // 不設置則是默認app
storage: localStorage,
paths: ['ssid', 'sessions'] // 設置緩存鍵
} */
})
vue3調用deepseek接口
- 非流式輸出
const completion = await openai.chat.completions.create({ messages: [ {role: 'user', content: editorValue} ], model: 'deepseek-chat', // deepseek-chat對話模型 deepseek-reasoner推理模型 stream: false, // 流式輸出 max_tokens: 8192, // 限制一次請求中模型生成 completion 的最大 token 數(默認使用 4096) temperature: 0.4, // 嚴謹采樣 越低越嚴謹(默認1) })
// 處理返回數據 console.log(completion.choices[0].message.content)
- 流式輸出
通過for循環處理流式輸出數據。
// 處理流式輸出 let content = '' for await (const chunk of completion) { content += chunk.choices[0].delta.content; chatState.updateSession(uniKey, content) if(chunk.choices[0].finish_reason == 'stop') { loading.value = false } if(props.reachBottom) { props.scrollBottom() } }

綜上就是vue3+deepseek實戰ai對話小助手的一些知識分享,希望對大家有所幫助!感謝大家的閱讀與支持~
Tauri2.0-DeepSeek電腦端Ai對話|tauri2+vite6+deepseek流式ai聊天系統
Uniapp-DeepSeek跨三端AI助手|uniapp+vue3+deepseek-v3流式ai聊天模板
Electron35-DeepSeek桌面端AI系統|vue3.5+electron+arco客戶端ai模板
vue3-webseek網頁版AI問答|Vite6+DeepSeek+Arco流式ai聊天打字效果
附上幾個最新實戰項目案例
flutter3-winseek客戶端AI實例|Flutter3.32+DeepSeek流式ai對話模板Exe
flutter3-trip仿攜程酒店預訂|Flutter3.27+Getx預約旅游酒店App程序
flutter3-dymall仿抖音直播商城|Flutter3.27短視頻+直播+聊天App實例
Vite5+Electron聊天室|electron31跨平臺仿微信EXE客戶端|vue3聊天程序
uniapp+vue3聊天室|uni-app+vite4+uv-ui跨端仿微信app聊天語音/朋友圈
Tauri2.0-Vue3OS桌面端os平臺|tauri2+vite6+arco電腦版OS管理系統
tauri2.0-admin桌面端后臺系統|Tauri2+Vite5+ElementPlus管理后臺EXE程序

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


浙公網安備 33010602011771號