<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      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

      項目特性

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

      項目結構目錄

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

      目前Tauri2-Vue3-DeepSeek客戶端Ai對話項目已經更新到我的原創作品集。

      Tauri2+DeepSeek+Vue3+Arco電腦端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

      uniapp+vue3聊天室|uni-app+vite4+uv-ui跨端仿微信app聊天語音/朋友圈

      flutter3-winchat桌面端聊天實例|Flutter3+Dart3+Getx仿微信Exe程序

       

      posted @ 2025-06-17 08:24  xiaoyan2017  閱讀(400)  評論(0)    收藏  舉報
      友情鏈接: UP主小店B站
      主站蜘蛛池模板: 国内熟妇人妻色在线三级| 欧洲无码一区二区三区在线观看| 国产在线精品国偷产拍| 中文字幕自拍偷拍福利视频| 少妇被多人c夜夜爽爽av| 精品久久久久久无码人妻蜜桃| 欧美人与性动交ccoo| 人妻激情视频一区二区三区| 国产线播放免费人成视频播放 | 精品久久精品久久精品久久| 午夜毛片不卡免费观看视频| 国产午夜一区二区在线观看| 丁香色婷婷国产精品视频| 国内外成人综合免费视频| 亚洲AV成人片不卡无码| 午夜不卡欧美AAAAAA在线观看| 日韩一本不卡一区二区三区| 精品国产乱码久久久久APP下载| 精品尤物TV福利院在线网站| 国内女人喷潮完整视频| 欧美老少配性行为| 老司机午夜福利视频| 天天色综网| 日韩一区二区三区精品| 中文字幕亚洲日韩无线码| 亚洲一区精品伊人久久| 人妻中出无码一区二区三区| 色吊丝一区二区中文字幕| 自拍日韩亚洲一区在线| 亚洲国产精品线观看不卡| 肥臀浪妇太爽了快点再快点| 亚洲成av人片无码天堂下载| 久久亚洲综合精品成人网| 锦屏县| 精品久久人人妻人人做精品| 国产精品成人免费视频网站京东| 亚洲成熟女人av在线观看| 少妇高潮水多太爽了动态图| 最新偷拍一区二区三区| 国产嫩草精品网亚洲av| 欧美成人黄在线观看|