news 2026/6/15 21:25:29

Qwen3-8B模型本地部署和简单接入DBhub实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qwen3-8B模型本地部署和简单接入DBhub实践

文章目录

  • 实验环境和组件介绍
  • 具体的配置过程
    • ollama部署使用
    • 测试Mysql数据库表的构建
    • DBHUB的搭建
    • Cherry Studio接入模型和MCP工具
  • 遇到的问题
    • 1Panel商店ollama镜像版本过低
    • Cherry Studio连接Ollama服务检测模型无法使用
    • ollama检测异常解决

实验环境和组件介绍

  • 实验平台
  • Ubuntu 24
  • GPU:RTX 3090
  • Memory:32GB

  • 关键组件
    • 1panel
    • ollama
    • mysql,DBhub
    • one-api
    • Cherry Studio

  • 推荐模型
  • qwen3-8b/qwen3-14b/qwen3-32b,从ollama拉取这些模型的量化guff文件,单卡3090均能支持。

具体的配置过程

ollama部署使用

  • 由于使用docker部署ollama需要提前安装NVIDIA Container Toolkit,官方参考指南,推荐阅读Ubuntu 24.04 安装 NVIDIA Container Toolkit 全指南:让Docker拥抱GPU。
sudoapt-getupdate&&sudoapt-getinstall-y --no-install-recommendscurlgnupg2
curl-fsSL https://nvidia.github.io/libnvidia-container/gpgkey|sudogpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\&&curl-s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list|\sed's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'|\sudotee/etc/apt/sources.list.d/nvidia-container-toolkit.list
sudoapt-getupdatesudoapt-getinstall-y nvidia-container-toolkit
# 生成配置文件sudonvidia-ctk runtime configure --runtime=docker# 重启Docker服务sudosystemctl restartdocker
  • 然后正常在1panel引用商店中,部署ollama,注意勾选GPU选项。然后,正常拉取模型到本地。这里建议选择一个好的网络。
ollama run qwen3:8b

测试Mysql数据库表的构建

  1. Mysql数据库的部署,借助1panel面板,使用docker快速搭建。
  2. 手动在1panel数据库管理面板创建test数据库。
  3. 然后使用Mysql客户端工具,这里笔者使用hexhub这款开源软件进行连接,然后执行sql脚本。
--1. 准备工作:如果存在旧表则删除,保证脚本可重复运行 DROP TABLE IF EXISTS order_items;DROP TABLE IF EXISTS orders;DROP TABLE IF EXISTS products;DROP TABLE IF EXISTSusers;--2. 建表语句(DDL)-- 用户表 CREATE TABLEusers(idINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50)NOT NULL, email VARCHAR(100), balance DECIMAL(10,2)DEFAULT0.00, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);-- 商品表 CREATE TABLE products(idINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(100)NOT NULL, category VARCHAR(50), price DECIMAL(10,2)NOT NULL, stock INT DEFAULT0);-- 订单表 CREATE TABLE orders(idINT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, order_date DATETIME NOT NULL, total_amount DECIMAL(10,2)NOT NULL, status TINYINT DEFAULT0COMMENT'0:Pending, 1:Paid, 2:Shipped, 3:Completed', FOREIGN KEY(user_id)REFERENCES users(id));-- 订单详情表 CREATE TABLE order_items(idINT PRIMARY KEY AUTO_INCREMENT, order_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10,2)NOT NULL, FOREIGN KEY(order_id)REFERENCES orders(id), FOREIGN KEY(product_id)REFERENCES products(id));--1. 清理旧数据(保证脚本可重复运行)DROP TABLE IF EXISTS order_items;DROP TABLE IF EXISTS orders;DROP TABLE IF EXISTS products;DROP TABLE IF EXISTSusers;--2. 建表语句(DDL)CREATE TABLEusers(idINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50)NOT NULL, email VARCHAR(100), balance DECIMAL(10,2)DEFAULT0.00, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);CREATE TABLE products(idINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(100)NOT NULL, category VARCHAR(50), price DECIMAL(10,2)NOT NULL, stock INT DEFAULT0);CREATE TABLE orders(idINT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, order_date DATETIME NOT NULL, total_amount DECIMAL(10,2)NOT NULL, status TINYINT DEFAULT0COMMENT'0:Pending, 1:Paid, 2:Shipped, 3:Completed', FOREIGN KEY(user_id)REFERENCES users(id));CREATE TABLE order_items(idINT PRIMARY KEY AUTO_INCREMENT, order_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10,2)NOT NULL, FOREIGN KEY(order_id)REFERENCES orders(id), FOREIGN KEY(product_id)REFERENCES products(id));--3. 修正后的数据填充存储过程 DELIMITER$$CREATE PROCEDURE generate_mock_data()BEGIN --===变量声明区(必须在最前面)===DECLARE i INT DEFAULT1;DECLARE item_j INT;-- 【修复】这里声明了内层循环变量 item_j DECLARE num_users INT DEFAULT500;DECLARE num_products INT DEFAULT100;DECLARE num_orders INT DEFAULT1000;DECLARE random_user_id INT;DECLARE random_product_id INT;DECLARE random_qty INT;DECLARE random_price DECIMAL(10,2);DECLARE random_status INT;DECLARE days_back INT;-- --- A. 填充用户表 --- WHILE i<=num_users DO INSERT INTOusers(username, email, balance)VALUES(CONCAT('user_', i), CONCAT('user_', i,'@example.com'), ROUND(RAND()*5000,2));SET i=i +1;END WHILE;-- --- B. 填充商品表 --- SET i=1;WHILE i<=num_products DO INSERT INTO products(product_name, category, price, stock)VALUES(CONCAT('Product ', i,' - ', ELT(FLOOR(1+ RAND()*5),'Electronics','Clothing','Home','Books','Sports')), ELT(FLOOR(1+ RAND()*5),'Electronics','Clothing','Home','Books','Sports'), ROUND(RAND()*200+10,2), FLOOR(RAND()*100));SET i=i +1;END WHILE;-- --- C. 填充订单表及详情 --- SET i=1;WHILE i<=num_orders DO SET random_user_id=FLOOR(1+ RAND()* num_users);SET random_status=FLOOR(RAND()*4);SET days_back=FLOOR(RAND()*365);INSERT INTO orders(user_id, order_date, total_amount, status)VALUES(random_user_id, DATE_SUB(NOW(), INTERVAL days_back DAY),0.00, random_status);SET @current_order_id=LAST_INSERT_ID();-- --- D. 填充订单详情(内层循环)--- -- 初始化内层计数器 SET item_j=1;-- 随机生成13个商品项 WHILE item_j<=FLOOR(1+ RAND()*3)DO SET random_product_id=FLOOR(1+ RAND()* num_products);SET random_qty=FLOOR(1+ RAND()*5);SELECT price INTO random_price FROM products WHEREid=random_product_id;INSERT INTO order_items(order_id, product_id, quantity, price)VALUES(@current_order_id, random_product_id, random_qty, random_price);UPDATE orders SET total_amount=total_amount +(random_qty * random_price)WHEREid=@current_order_id;SET item_j=item_j +1;END WHILE;SET i=i +1;END WHILE;END$$DELIMITER;--4. 执行存储过程 CALL generate_mock_data();--5. 验证结果 SELECT'Users'AS Table_Name, COUNT(*)AS Row_Count FROMusersUNION ALL SELECT'Products', COUNT(*)FROM products UNION ALL SELECT'Orders', COUNT(*)FROM orders UNION ALL SELECT'Order_Items', COUNT(*)FROM order_items;

DBHUB的搭建

  1. 在应用商店,按照要求正常配置启动即可。

Cherry Studio接入模型和MCP工具

  1. 在cherry Studio中配置MCP服务(这里笔者使用8081端口启动),然后就可以在对话中勾选使用该MCP服务。注意不要使用deepseek-r1系列,因为该模型系列对MCP工具调用并不友好,推荐使用qwen3系列。
  2. 连接ollama时,这里笔者遇到ollama无法正常访问,所以使用one api进行兼容解决。
  3. 正常调用和对话

遇到的问题

1Panel商店ollama镜像版本过低

  • 存在的问题:1Panel商店中最高支持0.13.5,但是已经很陈旧了。在拉取较新模型提示版本太低。
  • 解决方法:手动修改docker-sompose文件,调整镜像版本为0.14.1。笔者尝试latest版本仍然出错。

Cherry Studio连接Ollama服务检测模型无法使用

  • 存在的问题:Cherry Studio配置本地ollama服务连接,可以检测到存在的模型,但是无法正常使用模型。起初,笔者怀疑是ollama对openai格式调用的不兼容,但是查询资料,ollama已经兼容openai的调,经过,终端请求验证,确实可以正常调用。
curlhttp://localhost:11434/v1/chat/completions -H"Content-Type: application/json"-d'{ "model": "deepseek-r1:32b", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] }'
  • 解决方法:使用One-api对ollama的访问做一层代理,顺利解决问题。




ollama检测异常解决

  • 其实也就是上个问题,不过在最后笔者再次尝试的时候,突然又正常了。注意连接检测使用单个,不并发即可通过。
  • 可能是ollama本身对并发支持不好,然后cherry studio默认的检测方式会发生错误。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:26:02

arduino小车环境感知实验:红外与光敏传感器详解

从零构建智能小车&#xff1a;用红外与光敏传感器读懂环境你有没有想过&#xff0c;一台几十元的Arduino小车是如何“看见”障碍物、感知明暗&#xff0c;并做出反应的&#xff1f;它没有摄像头&#xff0c;也没有复杂的AI芯片&#xff0c;靠的其实是两个极为朴素却异常实用的电…

作者头像 李华
网站建设 2026/6/15 10:29:13

科研党必备PDF处理神器|PDF-Extract-Kit智能提取工具箱实测

科研党必备PDF处理神器&#xff5c;PDF-Extract-Kit智能提取工具箱实测 1. 引言&#xff1a;科研场景下的PDF处理痛点 在学术研究过程中&#xff0c;研究人员经常需要从大量PDF格式的论文、报告和书籍中提取关键信息。传统手动复制粘贴的方式不仅效率低下&#xff0c;而且容易…

作者头像 李华
网站建设 2026/6/15 10:27:46

一键抠图技术实践|基于CV-UNet大模型镜像快速实现单张与批量人像抠图

一键抠图技术实践&#xff5c;基于CV-UNet大模型镜像快速实现单张与批量人像抠图 1. 引言&#xff1a;智能抠图的工程落地需求 在图像处理、电商展示、内容创作等场景中&#xff0c;人像抠图是一项高频且关键的任务。传统手动抠图依赖专业软件和人工操作&#xff0c;效率低、…

作者头像 李华
网站建设 2026/6/15 10:26:16

支持术语干预与上下文翻译|HY-MT1.5-7B模型服务搭建全步骤

支持术语干预与上下文翻译&#xff5c;HY-MT1.5-7B模型服务搭建全步骤 随着多语言交流需求的不断增长&#xff0c;高质量、可定制化的机器翻译系统成为企业出海、跨语言内容生成和本地化服务的核心基础设施。混元翻译模型&#xff08;HY-MT&#xff09;系列最新发布的 HY-MT1.…

作者头像 李华
网站建设 2026/6/15 10:27:40

从三相桥式两电平与T型三电平逆变器看SVPWM调制

三相桥式两电平逆变器的SVPWM调制和三相T型三电平逆变器的SVPWM模型和说明文档。 对比着看绝对有助于你理解SVPWM调制方法。 支持MATLAB2017b以上的版本。在电力电子领域&#xff0c;逆变器的调制策略是至关重要的一环&#xff0c;其中空间矢量脉宽调制&#xff08;SVPWM&#…

作者头像 李华