vue3+dify從零手擼AI對話系統

vue3+dify從零手擼AI對話系統

前言

??近年來,人工智能技術呈現爆發式增長,其應用已深度滲透至各行各業。甚至家里長輩們也開始借助AI工具解決日常問題。作為程序員群體,我們更應保持技術敏銳度,緊跟這波浪潮。

??回溯求學時期,在高中階段自學Python時便察覺到AI的巨大潛力。遺憾的是,當年報考的院校尚未開設相關專業,大學期間參與的AI社團也未能深入探索。這段經歷反而讓我深刻認識到:在技術迭代加速的當下,持續學習比系統培養更為關鍵。

??如今AI浪潮已席卷全球,近期工作中頻繁接觸的AI開發需求印證了這一趨勢。恰逢周末閑暇,我利用一天時間完成了從調研到開發的流程。對比當年為手寫識別算法苦思冥想數日的經歷,如今借助成熟的AI框架和開放接口,復雜對話系統的搭建已變得高效便捷。這種技術代際跨越帶來的震撼體驗,正是推動我持續探索的動力源泉。接下來,我將系統分享本次實踐的技術路徑與實現過程。

效果圖

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

注:其他功能就不一一展示了,整個項目都開源在GitHub,需要的同學私聊我獲取倉庫地址。本人作品免費開源,喜歡的同學點贊收藏哦~

技術棧

  • 基礎框架: Vue3、Vite、TS
  • 前端組件庫:TDesign(TD Chat for AI、Vue Next for Web)
  • AI接口:dify平臺提供
  • AI模型:deepseek-V3、deepseek-R1

調研和開發流程

  • Dify

    ??簡介:Dify 是一款開源的大語言模型(LLM) 應用開發平臺。它融合了后端即服務(Backend as Service)和 LLMOps 的理念,使開發者可以快速搭建生產級的生成式 AI 應用。即使你是非技術人員,也能參與到 AI 應用的定義和數據運營過程中。

    ??使用簡單方便,如果沒有特殊需求,只要配置LLM中的模型即可,配置完成后可即時預覽。點擊發布,在訪問API菜單中獲取你的APIkey,參考接口文檔就可以在程序中直接調用相關接口。

在這里插入圖片描述

  • DeepSeek

    ??簡介:DeepSeek憑借自然語言處理、機器學習與深度學習、大數據分析等核心技術優勢,在推理、自然語言理解與生成、圖像與視頻分析、語音識別與合成、個性化推薦、大數據處理與分析、跨模態學習以及實時交互與響應等八大領域表現出色。它能進行邏輯推理、解決復雜問題,理解和生成高質量文本,精準分析圖像和視頻內容,準確識別和合成語音,根據用戶偏好提供個性化推薦,高效處理大規模數據并挖掘有價值信息,實現多模態數據融合與學習,以及通過智能助手和聊天機器人實現快速的自然語言交互。

    ??不必多說,很火的一個AI,進入他的開放平臺,在APIkeys菜單中獲取你的key,即可在dify中進行配置,也可以跳過dify平臺,直接參考其接口文檔中的接口調用。不要忘記充值,不然會報錯,我替你們試過了。

在這里插入圖片描述

  • TDesign

    ??簡介:TDesign 是騰訊第一個對外開源的企業級設計體系,基于騰訊海量業務沉淀,為 PC、Mobile、小程序等平臺提供豐富組件庫,通過統一組件 API 接口為上層業務開發提供跨平臺和跨端的同構方案。TDesign 具有統一的 價值觀,一致的設計語言和視覺風格,幫助用戶形成連續、統一的體驗認知。

    ??前端組件庫我看了很多,包括element-plus-x、ant-design-x、mateChat等。經過我的多次嘗試,最終選擇了TDesign,他有提供完善的組件ts代碼、種類豐富、擴展性好,語法也比較符合我的編碼習慣。其他的當然也很優秀,只是這個更適合我。

在這里插入圖片描述

結束語

??在AI技術日新月異的今天,我們既是見證者,更是建設者。從算法原理的鉆研到實際場景的落地,每一次技術突破都離不開持續的實踐與迭代。本次實踐雖僅是AI開發長河中的一朵浪花,卻印證了"站在巨人肩膀上創新"的真理——成熟的框架、開放的生態與活躍的社區,正在讓復雜技術平民化。未來,我期待與更多同行者共同探索AI邊界,用代碼編織更智能的世界。技術之路永無止境,愿我們始終保持對未知的好奇、對難題的勇氣,以及——最重要的——將技術轉化為價值的行動力。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82904.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82904.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82904.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

robot_lab train的整體邏輯

Go2機器人推理(Play)流程詳細分析 概述 本文檔詳細分析了使用命令 python scripts/rsl_rl/base/play.py --task RobotLab-Isaac-Velocity-Rough-Unitree-Go2-v0 進行Go2機器人推理的完整流程,基于實際的代碼實現,包括模型加載、環境配置調整、推理循環…

Python Day45

Task: 1.tensorboard的發展歷史和原理 2.tensorboard的常見操作 3.tensorboard在cifar上的實戰:MLP和CNN模型 效果展示如下,很適合拿去組會匯報撐頁數: 作業:對resnet18在cifar10上采用微調策略下,用tens…

MySQL SQL 優化:從 INSERT 到 LIMIT 的實戰與原理

在數據庫驅動的現代應用中,SQL 查詢的性能直接決定了用戶體驗和系統效率。本文將深入探討 MySQL (特別是 InnoDB 存儲引擎)中常見的 SQL 性能瓶頸,并結合實際案例,詳細剖析從數據插入到復雜分頁查詢的優化策略與底層實…

SQL 基礎入門

SQL 基礎入門 SQL(全稱 Structured Query Language,結構化查詢語言)是用于操作關系型數據庫的標準語言,主要用于數據的查詢、新增、修改和刪除。本文面向初學者,介紹 SQL 的基礎概念和核心操作。 1. 常見的 SQL 數據…

HTTP 請求協議簡單介紹

目錄 常見的 HTTP 響應頭字段 Java 示例代碼:發送 HTTP 請求并處理響應 代碼解釋: 運行結果: 文件名: 總結: HTTP(HyperText Transfer Protocol)是用于客戶端與服務器之間通信的協議。它定…

《100天精通Python——基礎篇 2025 第5天:鞏固核心知識,選擇題實戰演練基礎語法》

目錄 一、踏上Python之旅二、Python輸入與輸出三、變量與基本數據類型四、運算符五、流程控制 一、踏上Python之旅 1.想要輸出 I Love Python,應該使用()函數。 A.printf() B.print() C.println() D.Print() 在Python中想要在屏幕中輸出內容,應該使用print()函數…

求解一次最佳平方逼近多項式

例 設 f ( x ) 1 x 2 f(x)\sqrt{1x^2} f(x)1x2 ?,求 [ 0 , 1 ] [0,1] [0,1]上的一個一次最佳平方逼近多項式。 解 : d 0 ∫ 0 1 1 x 2 d x 1 2 ln ? ( 1 2 ) 2 2 ≈ 1.147 d_0\int_{0}^{1}\sqrt{1x^2}dx\frac{1}{2}\ln(1\sqrt{2})\frac{\sqrt…

在Ubuntu上使用 dd 工具制作U盤啟動盤

在Ubuntu上使用 dd 工具制作U盤啟動盤 在Linux系統中,dd 是一個功能強大且原生支持的命令行工具,常用于復制文件和轉換數據。它也可以用來將ISO鏡像寫入U盤,從而創建一個可啟動的操作系統安裝盤。雖然圖形化工具(如 Startup Disk…

如何理解OSI七層模型和TCP/IP四層模型?HTTP作為如何保存用戶狀態?多服務器節點下 Session方案怎么做

本篇概覽: OSI 七層模型是什么?每一層的作用是什么?TCP/IP四層模型和OSI七層模型的區別是什么? HTTP 本身是無狀態協議,HTTP如何保存用戶狀態? 能不能具體說一下Cookie的工作原理、生命周期、作用域?使用…

深入剖析 RocketMQ 中的 DefaultMQPushConsumerImpl:消息推送消費的核心實現

前言 在 Apache RocketMQ 的消息消費體系中,RocketMQ 提供了DefaultMQPushConsumer(推送消費)和DefaultMQPullConsumer(拉取消費)兩種主要消費方式。DefaultMQPushConsumer與DefaultMQPullConsumer在消息獲取方式&…

Linux編程:2、進程基礎知識

一、進程基本概念 1、進程與程序的區別 程序:靜態的可執行文件(如電腦中的vs2022安裝程序)。進程:程序的動態執行過程(如啟動后的vs2022實例),是操作系統分配資源的單位(如 CPU 時…

React Router 中 navigate 后瀏覽器返回按鈕不起作用的問題記錄

React Router 中 navigate 后瀏覽器返回按鈕不起作用的問題記錄 在使用 React Router(v6)開發項目時,我遇到了一個讓人困惑的問題: 當我從 /article 頁面使用 navigate("/article/next") 進行跳轉后,點擊瀏…

[面試精選] 0094. 二叉樹的中序遍歷

文章目錄 1. 題目鏈接2. 題目描述3. 題目示例4. 解題思路5. 題解代碼6. 復雜度分析 1. 題目鏈接 94. 二叉樹的中序遍歷 - 力扣(LeetCode) 2. 題目描述 給定一個二叉樹的根節點 root ,返回 它的 中序 遍歷 。 3. 題目示例 示例 1 : 輸入&…

Addressable-配置相關

1、Profile 概述窗口配置 主要用于配置Addressable打包(構建)加載AB包時使用的一些變量,這些變量定義了 在哪里保存打包(構建)的AB包運行時在哪里加載AB包 可以添加自定義變量,以便在打包加載時使用,之后在設置 組中…

aws(學習筆記第四十三課) s3_sns_sqs_lambda_chain

文章目錄 aws(學習筆記第四十三課) s3_sns_sqs_lambda_chain學習內容:1. 整體架構1.1 代碼鏈接1.2 整體架構1.3 測試代碼需要的修改1.3.1 unit test代碼中引入stack的修改1.3.2 test_outputs_created代碼中把錯誤的去掉 2. 代碼解析2.1 生成dead_letter_queue死信隊…

Python訓練營打卡Day43

kaggle找到一個圖像數據集,用cnn網絡進行訓練并且用grad-cam做可視化 進階:并拆分成多個文件 config.py import os# 基礎配置類 class Config:def __init__(self):# Kaggle配置self.kaggle_username "" # Kaggle用戶名self.kaggle_key &quo…

hive 3集成Iceberg 1.7中的Java版本問題

hive 3.1.3 集成iceberg 1.7.2創建Iceberg表報錯如下: Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/iceberg/mr/hive/HiveIcebergStorageHandler has been compiled by a more recent version of the Java Runtime …

文本切塊技術(Splitter)

為什么要分塊? 將長文本分解成適當大小的片段,以便于嵌入、索引和存儲,并提高檢索的精確度。 用ChunkViz工具可視化分塊 在線使用 ChunkViz github https://github.com/gkamradt/ChunkViz 如何確定大模型所能接受的最長上下文 可以從…

C++:用 libcurl 發送一封帶有附件的郵件

編寫mingw C 程序&#xff0c;用 libcurl 發送一封帶有附件的郵件 下面是一個使用 MinGW 編譯的 C 程序&#xff0c;使用 libcurl 發送帶附件的郵件。這個程序完全通過代碼實現 SMTP 郵件發送&#xff0c;不依賴外部郵件客戶端&#xff1a; // send_email.cpp #include <i…

tensorflow image_dataset_from_directory 訓練數據集構建

以數據集 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 為例 目錄結構 訓練圖像數據集要求&#xff1a; 主目錄下包含多個子目錄&#xff0c;每個子目錄代表一個類別。每個子目錄中存儲屬于該類別的圖像文件。 例如 main_directory/ ...cat/ ...…