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.mzph.cn/news/895041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka服务端之日志磁盘存储

文章目录 页缓存顺序写零拷贝 Kafka依赖于文件系统&#xff08;更底层地来说就是磁盘&#xff09;来存储和缓存消息 。 那么kafka是如何让自身在使用磁盘存储的情况下达到高性能的&#xff1f;接下来主要从3各方面详细解说。 页缓存 页缓存是操作系统实现的一种主要的磁盘缓存…

计算机视觉语义分割——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;**售后服务成为了衡量消费电子行业各品牌实力与客户满意度的关键一环。**深圳市韶音…

使用 CloudDM 和钉钉流程化管理数据库变更审批

CloudDM 是一个专为团队协同工作打造的数据库数据管控平台。在管控数据库安全变更的过程中&#xff0c;为提高效率&#xff0c;CloudDM 接入了钉钉&#xff0c;支持实时通知与移动办公&#xff0c;满足广大企业用户的实际需求。 本文将介绍如何使用 CloudDM 和钉钉实现高效的数…

如何在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…

漏洞分析 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;所以银行存款就是借方…

【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 分试题一…

基于javaweb的SpringBoothis智能医院管理系统(源码+文档+部署讲解)

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 运行环境开发工具适用功能说明一、项目运行 环境配置&#xff1a; 运行环境 Java≥8、MySQL≥5.7、Node.js≥14 开发工具 后端&…

JS实现灯光闪烁效果

在 JS中&#xff0c;我们可以实现灯光闪烁效果&#xff0c;这里主要用 setInterval 和 clearInterval 两个重要方法。 效果图 源代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>灯闪烁效果<…

7.PPT:“中国梦”学习实践活动【20】

目录 NO1234​ NO5678​ NO9\10\11 NO1234 考生文件夹下创建一个名为“PPT.pptx”的新演示文稿Word素材文档的文字&#xff1a;复制/挪动→“PPT.pptx”的新演示文稿&#xff08;蓝色、黑色、红色&#xff09; 视图→幻灯片母版→重命名&#xff1a;“中国梦母版1”→背景样…

学习笔记十九:K8S生成pod过程

K8S生成pod过程 流程图具体生成过程用户提交 Pod 定义API Server 处理请求调度器分配节点&#xff08;Scheduling&#xff09;目标节点上的 Pod 创建网络配置状态上报与监控控制器管理&#xff08;Controller Manager&#xff09;就绪与服务发现 关键错误场景高级特性 流程图 具…

封装descriptions组件,描述,灵活

效果 1、组件1&#xff0c;dade-descriptions.vue <template><table><tbody><slot></slot></tbody> </table> </template><script> </script><style scoped>table {width: 100%;border-collapse: coll…

21.2.6 字体和边框

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 通过设置Rang.Font对象的几个成员就可以修改字体&#xff0c;设置Range.Borders就可以修改边框样式。 【例 21.6】【项目&#xff…

360手机刷机 360手机解Bootloader 360手机ROOT

360手机刷机 360手机解Bootloader 360手机ROOT 问&#xff1a;360手机已停产&#xff0c;现在和以后&#xff0c;能刷机吗&#xff1f; 答&#xff1a;360手机&#xff0c;是肯定能刷机的 360手机资源下载网站 360手机-360手机刷机RootTwrp 360os.top 360rom.github.io 一、…

链表专题-02

链表专题 /*** 链表的节点* param <E>*/ public class ListNode<E> {public E element;public ListNode<E> next;public ListNode() {}public ListNode(E element) {this.element element;}public ListNode(E element, ListNode<E> next) {this.eleme…

外部中断实验 #STM32F407

外部中断实验 此实验将外部中断配置为按键输入&#xff0c;通过按键输入触发外部中断&#xff0c;在外部中断里面实施相应的处理&#xff0c;具体功能&#xff1a; 按下KEY0&#xff0c;翻转LED0状态按下KEY1&#xff0c;翻转LED1状态按下KEY2&#xff0c;同时翻转LED0和LED1…