DeepSeek-Harness-Qt将浏览器端Agent装入桌面应用

前言

上一章从实战角度介绍了如何将DeepSeek-Harness与本地大模型推理引擎llama.cpp进行整合。本章将在此基础上,进一步探讨如何将DeepSeek-Harness嵌入桌面端应用。参照开源开源项目(Enactivism/deepseek-harness: DeepSeek Harness: Everything is a Plugin.),并在本地Windows 11环境下完成部署与运行,同时对其中存在的问题进行修正。本章将从架构介绍、环境配置、实际使用三个方面进行介绍。本章涉及的完整代码已开源,地址为:https://gitee.com/mycaB/deepseek-harness.git


目录

  • 1 架构介绍
  • 2 环境配置
  • 3 本地运行

1 简介

整体架构使用了Qt提供的QtWEbEngine和QProcess的能力。通过QtWebEngine在Qt界面中直接渲染DSH的Web服务前端,从而复用其完整的交互界面;同时利用QProcess对DSH后端进程进行托管,实现服务的自动启动、状态监控与随应用退出而关闭。最这使Qt应用成为一个整合了Web前端与本地进程的"外壳"。

从具体实现来看,系统内部包含两个相互配合的轮询机制:其一,以500毫秒为间隔定时检测DSH服务是否就绪,最多尝试180次,一旦服务可用,立即将服务地址设置到QWebEngineView对象中并开始加载页面;其二,当页面首次加载失败时,以2000毫秒为间隔重复尝试加载,最多重试3次,以提高前端页面加载的容错性。

基于开源库分支Enactivism/deepseek-harness: DeepSeek Harness: Everything is a Plugin.进行修改,问题包含:1)启动服务成功后会自动打开浏览器;2)QtWebEngine对象载入服务失败等问题。问题1)通过再打开服务命令中添加--no-open参数即可;问题2)原因为QtWebEngine对象载入服务时,除地址和端口号外,还需设置Token。问题修改和整理后,新发布的开源地址如下:https://gitee.com/mycaB/deepseek-harness.git

2 环境配置

环境配置分为两步:DSH环境配置,qt-shell编译。

https://gitee.com/mycaB/deepseek-harness.git 下载完整源码,参照上一章配置好 DSH 环境,并在本机安装 pnpm 后,于源码根目录执行以下命令即可。

复制代码
pnpm install
pnpm run build

接下来为qt-shell编译,进入到qt-shell文件夹作为源路径,使用CMake-gui编译即可,编译需带QtWebEngine模块的Qt6三方库。可从如下网盘中下载:百度网盘 请输入提取码

依次点击Configure(配置)、Generate(生成)、Open Project(打开工程),并编译生成,可得到一个名为deepseek-harness-qt的qt可执行程序。CMake-gui配置如下所示:

3 本地运行

运行deepseek-harness-qt,会依次看到正在启动服务、正在载入服务页面的界面提示,最终运行效果如下图所示:

相关推荐
前端 贾公子2 小时前
第10章:RAG(2)
开发语言·python
爱学堂IT分享2 小时前
图灵Java互联网架构师六期
java·开发语言
传奇开心果编程2 小时前
【Rust入门知识点学与练】第3课:String 与 &str 的区别
开发语言·学习·rust
秋名RG3 小时前
Java 核心特性一览
java·开发语言
平头哥AI3 小时前
Day 01 | go run 跑通第一个 Go 程序,go build 留下一个能拷走的 exe
开发语言·后端·golang
葡萄城技术团队4 小时前
工业数据可视化:使用活字格 AIcoding + Three.js 构建轻量化三维设备监控大屏
开发语言·javascript·信息可视化
qiaosaifei4 小时前
JAVA老项目中有大量的类名_编译时报找不到符号错误
java·开发语言
聪明蛋子哟4 小时前
MCP协议深度落地:如何用Python/Java双语言实现统一的工具调用网关?
java·开发语言·python
一晌小贪欢4 小时前
python-第27天:Python面向对象详解
开发语言·python·数据可视化·面向对象·python办公