Win10環境使用ChatBox集成Deep Seek解鎖更多玩法

Win10環境使用ChatBox集成Deep Seek解鎖更多玩法

前言

之前部署了14b的Deep Seek小模型,已經驗證了命令行及接口方式的可行性。但是純命令行或者PostMan方式調用接口顯然不是那么友好:

https://lizhiyong.blog.csdn.net/article/details/145505686

純命令行能實現的也就一個簡單的聊天機器人。接口方式開發一個后端應用系統也不是一時半會兒就能完成的事情。。。

但實際上Deep Seek能做的遠不止這些【可以實現長對話、文件識別等好玩驚奇的功能】。故筆者要集成更多組件!!!

參照官網:

https://github.com/deepseek-ai/awesome-deepseek-integration/blob/main/README_cn.md

顯然Deep Seek可以不限于集成如下組件:

在這里插入圖片描述

故筆者先集成Chatbox試試。別人可能集成的是Open WebUI

https://www.openwebui.com/

這個需要python或者docker環境。Chatbox有C/S的客戶端版本,也有B/S的網頁版本:

https://chatboxai.app/zh

在這里插入圖片描述

筆者選用客戶端版本,后續對外暴露服務租給別人使用也方便!!!

OLLAMA配置

參考官方文檔:

https://github.com/ollama/ollama/blob/main/docs/faq.md#how-do-i-configure-ollama-server

需要配置的環境變量有:

環境變量說明
OLLAMA_ORIGINS*允許所有IP訪問
OLLAMA_HOST0.0.0.0:11434或0.0.0.0訪問的IP+端口,沒有改默認端口就可以只配置ip
OLLAMA_MODELSC:\Users%username%.ollama\modelsmac:~/.ollama/models,Linux:/usr/share/ollama/.ollama/models,Windows:C:\Users%username%.ollama\models 沒有改默認模型存放位置的可以不配

配置完成后需要重啟電腦來生效:

在這里插入圖片描述

重啟后就可以配置Chatbox!!!

配置Chatbox

參考官網文檔:

https://chatboxai.app/zh/help-center/connect-chatbox-remote-ollama-service-guide

客戶端和網頁版大同小異:
在這里插入圖片描述

在這里插入圖片描述

在設置中選擇使用自己的API Key或本地模型,然后當然是選擇Ollama API

在這里插入圖片描述

就會非常智能地判斷出本地已經部署了2個模型。因為是一個OLLAMA部署的2個模型,后續可以自由切換!!!

在這里插入圖片描述

還可以配置語言等信息!!!

驗證

隨便提問一下:

在這里插入圖片描述

可以看到Chatbox已經自動拉起了OLLAMA的1.5b小模型!!!至此可以不需要命令,直接在界面操作了!!!

使用Deep Seek模型寫代碼

選擇一個搭檔:

在這里插入圖片描述

可以看到這里有很多搭檔,筆者選個IT專家試試:

在這里插入圖片描述

這種情況一定要選擇稍微大一點的小模型!!!否則會答非所問。。。模型越大,結果越接近真相!!!

提問

以一個常見的數據集成案例:

使用Java寫代碼,把主集群hive表數據同步到另一個租戶集群word count: 24, token count: 33, time: 22:32

可以看出由于顯卡的CUDA性能不好,速度很慢!!!

推理

Thinking
<think>
好的,我現在需要幫用戶解決如何用Java編寫代碼,將主集群的Hive表數據同步到另一個租戶集群的問題。之前已經給出了一步步的解決方案,現在用戶直接要求寫代碼。首先,我得回顧一下之前的對話。上一次,用戶詢問了整體步驟,我給出了10個大步驟,包括建立連接、導出數據、傳輸數據等。這次用戶更具體,想要Java代碼實現這些步驟。那我應該怎么做呢?首先,我需要明確每個步驟對應的代碼部分。比如,如何在Java中使用JDBC連接Hive,這可能涉及到加載驅動和獲取數據庫連接。然后是執行SQL語句導出數據到本地文件,接著傳輸這個文件到目標集群的存儲位置,最后再導入到目標Hive表中。我還需要考慮用戶可能對代碼的具體實現不太熟悉,所以要詳細寫出每個部分的代碼示例。比如,如何處理ResultSet,如何寫數據到本地文件,以及如何使用scp上傳文件。另外,用戶可能需要自動化腳本,所以我會建議將這些步驟整合到一個Java程序中,并添加日志記錄和異常處理機制。這部分很重要,因為可以確保在出現問題時能夠及時發現并解決。還有,權限問題也不能忽視,雖然代碼部分可能不直接處理ACL設置,但可以在注釋或說明中提到需要手動配置或后續腳本處理。最后,測試與驗證是關鍵步驟,應該提醒用戶在生產環境部署前進行充分的測試,并考慮監控和維護措施。總的來說,我需要用簡單易懂的語言,分點解釋每個部分的代碼實現,同時結合之前提供的整體步驟,幫助用戶順利完成數據同步的任務。
</think>

看起來頭頭是道。。。

代碼生成

以下是使用 Java 實現將主集群 Hive 表數據同步到另一個租戶集群的代碼示例。這個代碼基于 JDBC 連接 Hive,并完成數據導出和導入。

1. 添加依賴

pom.xml 中添加以下依賴(如果使用 Maven):

XML<dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>2.3.7</version>
</dependency>

2. 導出數據到本地文件

JAVAimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class HiveDataSynchronizer {public static void main(String[] args) {try {// 連接到源集群(主集群)String sourceHiveJdbcUrl = "jdbc:hive2://source_cluster_ip:10000/default";String sourceUsername = "admin";String sourcePassword = "password";Connection sourceConnection = DriverManager.getConnection(sourceHiveJdbcUrl, sourceUsername, sourcePassword);// 連接到目標集群(租戶集群)String targetHiveJdbcUrl = "jdbc:hive2://target_cluster_ip:10000/default";String targetUsername = "admin";String targetPassword = "password";Connection targetConnection = DriverManager.getConnection(targetHiveJdbcUrl, targetUsername, targetPassword);// 導出數據到本地文件String exportQuery = "INSERT OVERWRITE LOCAL DIRECTORY '/tmp/exported_data' SELECT * FROM your_table_name;";Statement sourceStmt = sourceConnection.createStatement();sourceStmt.execute(exportQuery);sourceStmt.close();System.out.println("Data exported to local directory: /tmp/exported_data");// 關閉連接sourceConnection.close();targetConnection.close();} catch (SQLException e) {e.printStackTrace();}}private static void uploadFilesToTargetCluster(String filePath, String remotePath) {try {// 使用 SCP 或 SFTP 上傳文件到目標集群的存儲路徑// 示例:使用 java-nio-sftp 庫或其他工具System.out.println("Uploading files to target cluster...");} catch (Exception e) {e.printStackTrace();}}private static void importDataToTargetHive(String filePath, Connection targetConnection) {try {String importQuery = "LOAD DATA INPATH '" + filePath + "' INTO TABLE your_target_table_name;";Statement targetStmt = targetConnection.createStatement();targetStmt.execute(importQuery);targetStmt.close();System.out.println("Data imported to target Hive table successfully");} catch (SQLException e) {e.printStackTrace();}}}

3. 使用工具上傳文件到目標集群

在實際項目中,可以使用 scp 或其他工具將導出的文件傳輸到目標集群。以下是上傳文件到目標集群的代碼示例:

JAVAimport com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;public class FileUploader {public static void uploadFile(String localFilePath, String remoteFilePath, String host, String username, String password) {try {JSch jsch = new JSch();Session session = jsch.getSession(username, host);session.setPassword(password);session.setConfig("StrictHostKeyChecking", "no");session.connect();Channel channel = session.openChannel("sftp");channel.connect();// 建立 SFTP 通道com.jcraft.jsch.ChannelSftp cschannel = (com.jcraft.jsch.ChannelSftp) channel;cschannel.put(localFilePath, remoteFilePath);System.out.println("File uploaded successfully!");} catch (Exception e) {e.printStackTrace();}}}

4. 整合所有步驟到一個主程序

JAVAimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class HiveDataSynchronizer {public static void main(String[] args) {try {// 連接到源集群(主集群)String sourceHiveJdbcUrl = "jdbc:hive2://source_cluster_ip:10000/default";String sourceUsername = "admin";String sourcePassword = "password";Connection sourceConnection = DriverManager.getConnection(sourceHiveJdbcUrl, sourceUsername, sourcePassword);// 導出數據到本地文件String exportQuery = "INSERT OVERWRITE LOCAL DIRECTORY '/tmp/exported_data' SELECT * FROM your_table_name;";Statement sourceStmt = sourceConnection.createStatement();sourceStmt.execute(exportQuery);sourceStmt.close();System.out.println("Data exported to local directory: /tmp/exported_data");// 上傳文件到目標集群String filePath = "/tmp/exported_data";String remoteFilePath = "/path/to/remote/directory";uploadFilesToTargetCluster(filePath, remoteFilePath);// 連接到目標集群(租戶集群)String targetHiveJdbcUrl = "jdbc:hive2://target_cluster_ip:10000/default";String targetUsername = "admin";String targetPassword = "password";Connection targetConnection = DriverManager.getConnection(targetHiveJdbcUrl, targetUsername, targetPassword);// 導入數據到目標 Hive 表importDataToTargetHive(remoteFilePath, targetConnection);System.out.println("Synchronization completed successfully!");// 關閉連接sourceConnection.close();targetConnection.close();} catch (SQLException e) {e.printStackTrace();}}private static void uploadFilesToTargetCluster(String filePath, String remotePath) {try {// 示例:使用 SCP 上傳文件到目標集群FileUploader.uploadFile(filePath + "/*", remotePath, "target_cluster_ip", "admin", "password");} catch (Exception e) {e.printStackTrace();}}private static void importDataToTargetHive(String filePath, Connection targetConnection) {try {String importQuery = "LOAD DATA INPATH '" + filePath + "' INTO TABLE your_target_table_name;";Statement targetStmt = targetConnection.createStatement();targetStmt.execute(importQuery);targetStmt.close();System.out.println("Data imported to target Hive table successfully");} catch (SQLException e) {e.printStackTrace();}}}

說明

  1. 連接到源集群和目標集群:使用 JDBC 連接到 Hive 集群。
  2. 導出數據到本地文件:使用 INSERT OVERWRITE LOCAL DIRECTORY 將數據導出到本地目錄。
  3. 上傳文件到目標集群:使用 SFTP 或其他工具將文件上傳到目標集群的存儲路徑。
  4. 導入數據到目標 Hive 表:使用 LOAD DATA INPATH 將文件導入到目標 Hive 表中。

注意事項

  1. 需要確保目標集群的安全性,避免敏感信息泄露。
  2. 根據實際需求調整上傳工具和路徑。
  3. 確保 Hive 表結構與源表一致或進行適當的轉換。

word count: 927, token count: 1681, tokens used: 2473, model: Ollama (deepseek-r1:14b), time: 22:34

結論

雖然給出的答案并不優雅,但是離線方式使用不知今夕是何年用了古老的依賴包也情有可原,邏輯基本正確。。。總體來看,已經相當于一個大數據學徒工該有的水平了。。。如果顯存大一些跑671b可能結果要滿意很多。。。

目前來看,本地部署的14b小模型如果部署在內網,對開發人員和運維人員的生產力會有不小的幫助。。。

但是外網開發的場景,顯然使用可聯網搜索、已特異化訓練過的大模型Agent輔助編程要更合適。

轉載請注明出處:https://lizhiyong.blog.csdn.net/article/details/145524481

在這里插入圖片描述

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

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

相關文章

力扣 239.滑動窗口最大值

思路 滑動窗口 遍歷 解題思路 基本思路&#xff1a;使用滑動窗口法遍歷數組&#xff0c;動態維護當前窗口的最大值。 特殊情況&#xff1a;該方法有一個缺陷&#xff0c;如果出窗口的元素是當前窗口的最大值max時&#xff0c;接下來的窗口中的最大值就無法確定了&#xff0c;所…

【Pandas】pandas Series sum

Pandas2.2 Series Computations descriptive stats 方法描述Series.abs()用于計算 Series 中每個元素的絕對值Series.all()用于檢查 Series 中的所有元素是否都為 True 或非零值&#xff08;對于數值型數據&#xff09;Series.any()用于檢查 Series 中是否至少有一個元素為 T…

kafka服務端之日志磁盤存儲

文章目錄 頁緩存順序寫零拷貝 Kafka依賴于文件系統&#xff08;更底層地來說就是磁盤&#xff09;來存儲和緩存消息 。 那么kafka是如何讓自身在使用磁盤存儲的情況下達到高性能的&#xff1f;接下來主要從3各方面詳細解說。 頁緩存 頁緩存是操作系統實現的一種主要的磁盤緩存…

ES6 Map 數據結構是用總結

1. Map 基本概念 Map 是 ES6 提供的新的數據結構&#xff0c;它類似于對象&#xff0c;但是"鍵"的范圍不限于字符串&#xff0c;各種類型的值&#xff08;包括對象&#xff09;都可以當作鍵。Map 也可以跟蹤鍵值對的原始插入順序。 1.1 基本用法 // 創建一個空Map…

計算機視覺語義分割——Attention U-Net(Learning Where to Look for the Pancreas)

計算機視覺語義分割——Attention U-Net(Learning Where to Look for the Pancreas) 文章目錄 計算機視覺語義分割——Attention U-Net(Learning Where to Look for the Pancreas)摘要Abstract一、Attention U-Net1. 基本思想2. Attention Gate模塊3. 軟注意力與硬注意力4. 實驗…

韶音科技:消費電子行業售后服務實現數字化轉型,重塑客戶服務體系

韶音科技&#xff1a;消費電子行業售后服務實現數字化轉型&#xff0c;重塑客戶服務體系 在當今這個科技日新月異的時代&#xff0c;企業之間的競爭早已超越了單純的產品質量比拼&#xff0c;**售后服務成為了衡量消費電子行業各品牌實力與客戶滿意度的關鍵一環。**深圳市韶音…

機器學習之Transformer 模型

Transformer 模型詳解 Transformer 是由 Vaswani et al. 在 2017 年 提出的模型,最初用于 機器翻譯 任務,并迅速成為自然語言處理(NLP)領域的標準模型架構。與傳統的 RNN(循環神經網絡) 和 LSTM(長短期記憶網絡) 不同,Transformer 的核心思想是 完全基于自注意力機制…

使用 CloudDM 和釘釘流程化管理數據庫變更審批

CloudDM 是一個專為團隊協同工作打造的數據庫數據管控平臺。在管控數據庫安全變更的過程中&#xff0c;為提高效率&#xff0c;CloudDM 接入了釘釘&#xff0c;支持實時通知與移動辦公&#xff0c;滿足廣大企業用戶的實際需求。 本文將介紹如何使用 CloudDM 和釘釘實現高效的數…

【RabbitMQ的重試配置retry】重試配置不生效原因

在Spring Boot項目中&#xff0c;RabbitMQ的retry重試配置不生效可能由以下原因導致&#xff1a; 核心問題定位 retry:enabled: true # ? 配置已開啟max-attempts: 3 # ? 參數有效但實際未觸發重試&#xff0c;可能原因如下&#xff1a; 1. 容器類型不匹配 癥狀表現 配置…

如何在WPS和Word/Excel中直接使用DeepSeek功能

以下是將DeepSeek功能集成到WPS中的詳細步驟&#xff0c;無需本地部署模型&#xff0c;直接通過官網連接使用&#xff1a;1. 下載并安裝OfficeAI插件 &#xff08;1&#xff09;訪問OfficeAI插件下載地址&#xff1a;OfficeAI助手 - 免費辦公智能AI助手, AI寫作&#xff0c;下載…

程序詩篇里的靈動筆觸:指針繪就數據的夢幻藍圖<7>

大家好啊&#xff0c;我是小象?(?ω?)? 我的博客&#xff1a;Xiao Xiangζ????? 很高興見到大家&#xff0c;希望能夠和大家一起交流學習&#xff0c;共同進步。 今天我們一起來學習轉移表&#xff0c;回調函數&#xff0c;qsort… 目錄 一、轉移表1.1 定義與原理1.3…

使用Jenkins實現鴻蒙HAR應用的自動化構建打包

使用Jenkins實現鴻蒙HAR應用的自動化構建打包 在軟件開發領域&#xff0c;自動化構建是提高開發效率和確保代碼質量的重要手段。特別是在鴻蒙&#xff08;OpenHarmony&#xff09;應用開發中&#xff0c;自動化構建更是不可或缺。本文將詳細介紹如何使用Jenkins命令行工具實現…

漏洞分析 Spring Framework路徑遍歷漏洞(CVE-2024-38816)

漏洞概述 VMware Spring Framework是美國威睿&#xff08;VMware&#xff09;公司的一套開源的Java、JavaEE應用程序框架。該框架可幫助開發人員構建高質量的應用。 近期&#xff0c;監測到Spring Framework在特定條件下&#xff0c;存在目錄遍歷漏洞&#xff08;網宿評分&am…

筆記:理解借貸相等的公式

強烈推薦非會計人士&#xff0c;快速了解會計看這個系列的視頻&#xff0c;其中比較燒腦的“借貸相等”公式&#xff0c;這個視頻講解的不錯&#xff1a; 4.小白財務入門-借貸記賬法_嗶哩嗶哩_bilibili 比如這里&#xff0c;錢在銀行卡重&#xff0c;所以銀行存款就是借方…

Java算法技術文章:深入解析排序、搜索與數據結構

引言 在軟件開發的世界里&#xff0c;算法不僅是程序設計的基礎&#xff0c;更是提升軟件性能、優化用戶體驗的關鍵。Java&#xff0c;作為一種廣泛使用的編程語言&#xff0c;提供了豐富的API和標準庫來支持各種算法的實現。本文將深入探討Java中的排序算法、搜索算法以及一些…

Android15音頻進階之MediaRecorder支持通道(一百零五)

簡介: CSDN博客專家、《Android系統多媒體進階實戰》一書作者 新書發布:《Android系統多媒體進階實戰》?? 優質專欄: Audio工程師進階系列【原創干貨持續更新中……】?? 優質專欄: 多媒體系統工程師系列【原創干貨持續更新中……】?? 優質視頻課程:AAOS車載系統+…

個人 Vite 構建性能分析插件開發實踐

Vite 構建分析插件開發實踐 一、開發背景 在個人項目開發中遇到以下問題&#xff1a; &#x1f552; 構建時間波動大&#xff08;30%&#xff09;&#x1f50d; 難以定位耗時模塊&#x1f4c8; 缺乏構建進度反饋 開發目標&#xff1a; 實現模塊級耗時分析提供實時進度預測識…

【Spring】什么是Spring?

什么是Spring&#xff1f; Spring是一個開源的輕量級框架&#xff0c;是為了簡化企業級開發而設計的。我們通常講的Spring一般指的是Spring Framework。Spring的核心是控制反轉(IoC-Inversion of Control)和面向切面編程(AOP-Aspect-Oriented Programming)。這些功能使得開發者…

學習筆記:機器學習中的數學原理(一)

1. 集合 集合分為有限集和無限集&#xff1b; 對于有限集&#xff0c;兩集合元素數相等即為等勢&#xff1b; 對于無限集&#xff0c;兩集合元素存在一一映射關系即為等勢&#xff1b; 無限集根據是否與正整數集等勢分為可數集和不可數集。 2. sigmoid函數&#xff08;也叫…

【信息系統項目管理師-案例真題】2016下半年案例分析答案和詳解

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 試題一【問題1】4 分【問題2】12 分【問題3】3 分【問題4】6 分試題二【問題1】3 分【問題2】4 分【問題3】8 分【問題4】5 分【問題5】5 分試題三【問題1】4 分【問題2】8 分【問題3】5 分【問題4】8 分試題一…