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,会依次看到正在启动服务、正在载入服务页面的界面提示,最终运行效果如下图所示:

​

相关推荐
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车4 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
孙启超4 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int4 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
慧都小项4 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
CoderYanger4 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读4 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json
CCCCCCCCharlie4 天前
Linux进程控制四大核心操作
linux·开发语言