利用Qt实现调用文字大模型的API,文心一言、通义千问、豆包、GPT、Gemini、Claude。

利用Qt实现调用文字大模型的API,文心一言、通义千问、豆包、GPT、Gemini、Claude。

下载地址: AI.xyz

1 Qt实现语言大模型API调用

  • 视频——Qt实现语言大模型API调用

嘿,大家好!分享一个最近做的小项目 “AI.xyz” 基于Qt实现调用各家大模型。
做这个项目的理由其实特搞笑:就是我想换个新键盘,但是刚买了电脑,媳妇不让。
我就琢磨着怎么能挣个键盘钱,想来想去,最后决定看看在闲鱼上卖代码行不行。花了两个周末研究了一阵。
现在做得差不多了,再有一两个周末估计就能搞定。

为什么舍近求远用C++呢?因为我不会前端,而且前端有好多开源的东西……
基于qt实现的我还没看到(想想也正常,没必要),不过这倒是个不错的练手和学习的机会。

功能:

  • 能调用各家语言大模型。国内的文心、豆包、通义。国外的 GPT、Gemini、Claude。
  • 国内模型的 API 需要自己申请,在设置里输入就行。
  • 国外模型的话,只适配了我平时用的:302AI 还有在淘宝买的 one/newAPI 分发。
  • 操作样式直接参考的 ChatGPT-Next-Web 。
    实现:
    用了很多现成的开源库。
    网络调用 用的 libhv 。
    解析 markdown 用的 md4c 。
    渲染 md 没选 QWebEngineView,那个太大了,直接用 QTextBrowser 硬写的。
    快捷键用的 QHotkey 。

2 AI.xyz v0.1 版本上线,能帮我换键盘吗?

视频——AI.xyz v0.1 版本上线,能帮我换键盘吗?

嗨,大家好!我是Beyond欣,欢迎回到我的频道。


上期视频里,我做了一个小项目 AI.xyz,一个基于Qt的人工智能助手应用。
现在,v0.1 版本已经出炉啦!
把它丢到了闲鱼,能不能换键盘就靠它了!
这周,开发了不少工作:
打包发布
制作了一个简易的下载页面,对AI.xyz感兴趣的小伙伴们可以去体验一下。
所有填写的API和聊天记录都保存在本地,AI.xyz不会上传任何信息。
所有请求都是本地直接向模型供应商发起的。
无需担心隐私问题,因为压根连服务器都没有。
助手功能
添加了 Prompt 模板,对话支持推送 System。
增加了一个助手选择UI,可以根据关键字进行检索,并且支持响应式布局调整。
动态主题
重构了原来的方案,替换了高清按钮图标。
之前是通过两个大qss文件实现切换。
现在根据不同控件拆分成多个qss文件,并用占位符表示所有颜色和资源。
通过读取配置文件中的颜色定义,实现了动态换肤。
Markdown解析
先删除frontmatter、然后识别代码块,识别关键字、最后丢给 MD4C 转成html。
Markdown渲染
预先准备好 HTML 文件,将解析后的字符传入 body,并利用 QTextBrowser 进行绘制。
模型支持
将模型信息从硬编码改为 CSV 文件管理,这样可以随时调整模型介绍、关键词和调用逻辑。
用户体验
优化了页面布局,支持侧边栏折叠,支持替换头像。
将模型选择移至菜单栏,新建对话直接沿用当前对话使用的模型。
关于API获取
国内大模型 API 申请非常简单,还都有免费额度。只需要在设置中填入 API 密钥就可以使用了。
我已经在下载网站上分享了我的 API 密钥,有兴趣的小伙伴可以试用(我的随时会停)。
至于国外模型 API,需要自行申请或者去淘宝买。
调用本地代理功能我还没完善,自己申请的 OpenAI api 用国内IP直接调可能封号,慎重。
淘宝上有不少现成的服务,以Gemini为例:
过别人服务器的那种 1$ 只要几毛,
直接卖账户 API的那种 1$ 大概2快。


不管 AI.xyz 最后能不能帮我换个键盘,我其实挺享受这个过程的。
这是第一次尝试做个项目,现在感觉蛮有趣的。
当然了,我也明白这个项目最终的用户量大概率是零。
如果考虑商业效率什么的话,用Qt来做这种项目真的是下下下策,我就自己图一开心。
接下来,我打算研究如何集成语音合成和图片生成功能。
并学习如何像 ChatBox 那样提供 License 和搭建服务器中转。
感谢观看,记得订阅点赞,我们下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/389910.html

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

相关文章

八股文-基础知识-int和Integer有什么区别?

引言 在Java编程实践中,基本数据类型int与包装类Integer扮演着不可或缺的角色,它们间的转换与使用策略深刻影响着程序的性能与内存效率。本文旨在深入探究int与Integer的区别,涵盖其在内存占用、线程安全、自动装箱与拆箱机制等方面的表现。…

tomato靶场

扫描网址端口 访问一下8888 我们用kali扫描一下目录 访问这个目录 产看iofo.php源码,发现里面有文件包含漏洞 访问/etc/passwd/发现确实有文件包含漏洞 远程连接2211端口 利用报错,向日志文件注入木马,利用文件包含漏洞访问日志文件 http:/…

嵌入式Linux系统中LCD屏驱动框架基本实现

大家好,今天主要给大家分享一下,如何使用linux系统中LCD屏驱动框架Framebuffer编写具体的代码。 第一:如何编写字符设备驱动程序 1、驱动框架基本操作: 驱动主设备号 * 构造file_operations结构体,填充open/read/write等成员函数 * 注册驱动:register_chrdev(major, name…

【参会邀请】第四届区块链技术与信息安全国际会议(ICBCTIS 2024)诚邀相聚江城!

我们诚挚地邀请您参与第四届区块链技术与信息安全国际会议(ICBCTIS 2024)。本届会议将于2024年8月17日~19日在中国武汉召开。会议将围绕区块链技术与信息安全等相关研究领域,特邀国内外数位在此领域学术卓越的学者专家做相关致辞与报告&#…

模式植物构建orgDb数据库 | 以org.Slycompersicum.eg.db为例

原文链接:模式植物构建orgDb数据库 | 以org.Slycompersicum.eg.db为例 本期教程 一步构建模式植物OrgDb数据库 source("../Set_OrgDb_Database.R")# 使用函数 Set_OrgDb_Database(emapper_file "out.emapper_tomato.csv", ## 输入的eggnog结果文件json_…

红酒与季节:品味四季的风情

四季轮转,岁月更迭,每个季节都有其不同的韵味与风情。当定制红酒洒派红酒(Bold & Generous)与四季相遇,它们共同编织出一幅幅美丽的味觉画卷,让我们在品味中感受四季的风情。 一、春之序曲&#xff1a…

学会这个Python库,接口测试so easy

前言 我们在做接口测试时,大多数返回的都是json属性,我们需要通过接口返回的json提取出来对应的值,然后进行做断言或者提取想要的值供下一个接口进行使用。 但是如果返回的json数据嵌套了很多层,通过查找需要的词,就…

MySql Linux 安装

下载 下载后的文件为:mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz 创建用户和用户组 $> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql由于用户仅用于所有权目的,而不是登录目的,因此useradd命令使用 -r和-s /bin/false…

临床数据科学中有关试验设计的四个关键要素

临床数据科学是现代医学研究中不可或缺的组成部分,通过科学的方法和统计分析工具来揭示医疗数据背后的规律和真相。试验设计是临床数据科学的核心环节,直接关系到研究结果的可靠性和科学性。 在过去几十年中,随机临床试验(Randomi…

《LeetCode热题100》---<5.③普通数组篇五道>

本篇博客讲解LeetCode热题100道普通数组篇中的五道题 第五道:缺失的第一个正数(困难) 第五道:缺失的第一个正数(困难) 方法一:将数组视为哈希表 class Solution {public int firstMissingPosi…

Python——记录pip问题(解决下载慢、升级失败问题)

在python开发中,经常需要使用到各种各样的库。 pip又是我们常用的安装工具。但是国外的源下载速度实在太慢,经常导致超时。 有很多朋友刚刚学Python的时候,会来问为什么pip下载东西这么慢啊? 而且pycharm里面下载库也是非常的慢…

充电宝有必要买贵的吗?充电宝可以带上高铁吗?充电宝选购方法

市面上的充电宝可以说是非常的多,但是能选到一款适合自己的充电宝基本是不容易的,然而,当我们准备选购充电宝时,常常会面临诸多疑问。其中,“充电宝有必要买贵的吗”就是一个备受关注的问题。价格似乎成为了我们在众多…

pytorch学习笔记4 tensor变换

View/reshape viewreshape, 新版本 要保证数据总量不变,否则报错Squeeze/unsqueeze 减少维度和增加维度 unsqueeze(n): 如果n是正,在第n位前面插1维(size1), 如果n是负,在倒数第|n|位后面插入1维&#xf…

将 HuggingFace 模型转换为 GGUF 及使用 ollama 运行 —— 以 Qwen2-0.5B 为例

前言 最近,阿里发布了Qwen2的系列模型,包括0.5B, 1.5B, 7B, 57B-A14B 和 72B,中英文效果都很好。 因为模型太新,目前还没有 GGUF 版本可以下载,于是转下GGUF,并分享转换教程。 什么是 GGUF? …

Linux进程间通信学习2

文章目录 共享内存信号信号概述以及种类信号的处理信号相关函数(简单)运用小demo实现ctrlc无法终止进程使用kill函数在程序内部实现一个进程杀死另外一个进程 信号相关函数高级版运用函数小demo 信号量信号量相关函数运用小demo: 共享内存 相比于前三个…

快速排序(下)

快速排序(下) 前言 在上一篇文章中我们了解了快速排序算法,但那是Hoare的版本,其实还有别的版本:一种是挖坑法,它们的区别主要在于如何找基准值。霍尔的版本思路难理解但代码好理解,挖坑法则是…

【Qt开发】调试log日志QDebug重定向输出到textEdit等控件(qInstallMessageHandler回调函数)

【Qt开发】调试log日志QDebug重定向输出到textEdit等控件(qInstallMessageHandler回调函数) 文章目录 Log输出方式qInstallMessageHandler回调函数线程安全textEdit控件附录:C语言到C的入门知识点(主要适用于C语言精通到Qt的C开发…

MySQL:数据类型表的基础操作

目录 1、数据类型 1.1 数值类型 1.2 字符串类型 1.3 日期类型 2、表的基础操作 2.1 选择数据库 2.2 建表 2.3 查看库中所有表 2.4 查看某一表结构 2.5 删表 3、可视化编辑工具 3.1 运行 1、数据类型 1.1 数值类型 bit类型可指定长度(如果不写,…

实验八: 彩色图像处理

目录 一、实验目的 二、实验原理 1. 常见彩色图像格式 2. 伪彩色图像 3. 彩色图像滤波 三、实验内容 四、源程序和结果 (1) 主程序(matlab (2) 函数FalseRgbTransf (3) 函数hsi2rgb (4) 函数rgb2hsi (5) 函数GrayscaleFilter (6) 函数RgbFilter 五、结果分析 1. …

清华和字节联合推出的视频理解大模型video-SALMONN(ICML 2024)

video-SALMONN: Speech-Enhanced Audio-Visual Large Language Models 论文信息 paper:https://arxiv.org/abs/2406.15704 code:https://github.com/bytedance/SALMONN/ AI也会「刷抖音」!清华领衔发布短视频全模态理解新模型 | ICML 2024 …