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

news2024/11/14 20:32:08

利用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.coloradmin.cn/o/1971821.html

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

相关文章

Type-C PD芯片:边充电与数据传输同时进行LDR

在日新月异的科技浪潮中,电子产品不仅成为了我们日常生活不可或缺的一部分,更是推动着社会进步与变革的重要力量。随着智能设备的普及与多样化,一个能够高效融合充电与数据传输功能,同时保持广泛兼容性和安全性的接口标准显得尤为…

实战Transformers模型量化Facebook OPT

基于上篇文章的理论知识,本文主要讲述了实战Transformers模型量化:介绍Facebook OPT模型的量化过程和相关技术。 Transformers 模型量化技术:GPTQ Frantar等人发表了论文 GPTQ:Accurate Post-Training Quantization for Generat…

ARCH和GARCH模型

个人学习笔记,课程为数学建模清风付费课程 目录 一、为什么引入ARCH模型? 二、 ARCH模型 2.1概念 2.2适用情形 2.3条件异方差 2.4ARCH(1)模型和ARCH(q)模型 三、GARCH(p,q)模型 3.1ARCH(q)效应和GARCH(p,q)效应 3.2GARCH效应检验 3.2.1检验GA…

Variational Mode Decomposition (VMD) 详解与应用

Variational Mode Decomposition (VMD) 的详细介绍 VMD 是一种信号分解方法,旨在将复杂信号分解为若干个具有不同频率成分的模态。它的基本思想是通过变分优化的方式,得到一组模态信号,这些模态信号在频域上彼此分离。 1. 问题定义 假设我…

【C++】类和对象两个必看题

这两个题只有一句代码的差别。 看题目之前我先说一下怎么看汇编指令。 第一题&#xff1a;下面程序运行结果是&#xff1f; A.编译报错 B.运行崩溃 C.正常运行 #include <iostream> using namespace std; class A { public:void Print(){cout << "A::Pri…

正点原子imx6ull-mini-Linux驱动之异步通知实验(13)

在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的&#xff0c;对于非 阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱动程序能主动向应 用程序发出通知&#xff0c;报告自己可以访问&#xff0c;然后应用程序在从驱动程序中读…

docker部署kkfileview文件在线预览服务

kkfileview文件在线预览服务部署使用 免费开源&#xff0c;功能强大&#xff0c;几乎支持日常见到的所有文件类型在线预览 目前支持的文件类型如下 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx,xlam, xla 等 Office 办公文档支持 wp…

day12 多线程

目录 1.概念相关 1.1什么是线程 1.2什么是多线程 2.创建线程 2.1方式一&#xff1a;继承Thread类 2.1.1实现步骤 2.1.2优缺点 2.1.3注意事项 2.2方式二&#xff1a;实现Runnable接口 2.2.1实现步骤 2.2.2优缺点 2.2.3匿名内部类写法 2.3方式三&#xff1a;实现cal…

鸿蒙系统开发【网络-上传和下载(ArkTS)】基本功能

网络-上传和下载&#xff08;ArkTS&#xff09; 介绍 本示例使用ohos.request接口创建上传和下载任务&#xff0c;实现上传、下载功能&#xff0c;hfs作为服务器&#xff0c;实现了文件的上传和下载和任务的查询功能。 效果预览 使用说明 1.本示例功能需要先配置服务器环境…

BootStrap前端面试常见问题

在前端面试中&#xff0c;关于Bootstrap的问题通常围绕其基本概念、使用方式、特性以及实际应用等方面展开。以下是一些常见的问题及其详细解答&#xff1a; 1. Bootstrap是哪家公司研发的&#xff1f; 回答&#xff1a;Bootstrap是由Twitter的Mark Otto和Jacob Thornton合作…

go语言day21 goland使用gin框架、gorm框架操作mysql数据库redis数据库 使用宝塔创建redis数据库

GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly. gorm package - github.com/jinzhu/gorm - Go Packages go语言day20实现投票功能项目包-CSDN博客 gin框架标准项目结构&#xff1a; models&#xff1a;存放对应实体类和gorm包增删…

Godot的节点与场景

要深入的理解节点与场景&#xff0c;我们需要跳出这两个概念来看他。说的再直白一些godot本质就是一个场景编辑器&#xff01; 场景的概念应该在我们平时看电影看电视时会经常提到&#xff0c;比如某一个打斗的场景&#xff0c;这个场景可能会被设在某一个街道&#xff0c;那么…

RIP综合练习

要求&#xff1a; 1.合理使用IP地址划分网络&#xff0c;各自创建循环接口 2.R1创建环回172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环回 4.减少路由条目数量&#xff0c;R1,R2之间增加路由传递安全性 5.R5创建一个环回模拟运营商&#xff0c;不能…

Flink的DateStream API中的ProcessWindowFunction和AllWindowFunction两种用于窗口处理的函数接口的区别

目录 ProcessWindowFunction AllWindowFunction 具体区别 ProcessWindowFunction 示例 AllWindowFunction 示例 获取时间不同&#xff0c;一个数据产生的时间一个是数据处理的时间 ProcessWindowFunction AllWindowFunction 具体示例 ProcessWindowFunction 示例 Al…

CRMEB 电商系统安装及分析

CRMEB系统采用前后端分离技术&#xff0c;基于TP6Vue2.5Uniapp框架开发&#xff1b;支持微信小程序、公众号、H5、APP、PC端适配&#xff0c;数据同步&#xff01;是一套单商户新零售社交电商系统。 目录 安装 安装环境 安装过程 开始安装 安装检测 数据库配置 高级设置…

基于Cloudflare搭建私有Docker镜像源

周四原本不是发文的日子&#xff0c;主要因为两个原因&#xff1a; 第一个原因是总有人留言说 Docker 用不了&#xff0c;第二个原因是看了下上个月的阅读量&#xff0c;和之前比实在有点惨淡&#xff0c;除了文章总被人搬运外&#xff0c;我估计可能跟第一个原因多少还是有点…

计算机基础(Windows 10+Office 2016)教程 —— 第4章 计算机网络与Internet(上)

第4章 计算机网络与Internet 4.1 计算机网络概述4.1.1 计算机网络的定义4.1.2 计算机网络的发展4.1.3 计算机网络的功能4.1.4 计算机网络体系结构和TCP/IP 参考模型 4.2 计算机网络的组成和分类4.2.1 计算机网络的组成4.2.2 计算机网络的分类 4.3 网络传输介质和通信设备4.3.1 …

【Unity】3D功能开发入门系列(二)

Unity3D功能开发入门系列&#xff08;二&#xff09; 一、资源&#xff08;一&#xff09;资源文件&#xff08;二&#xff09;场景文件&#xff08;三&#xff09;资源包&#xff08;四&#xff09;Unity 资源商店&#xff08;五&#xff09;项目资源的导入 二、父子关系&…

【C语言篇】数据在内存中的存储(超详细)

文章目录 数据在内存中的存储二进制和进制转换基本概念进制转换十进制转二进制二进制转八进制和十六进制 整数在内存中的存储反码原码补码大小端字节序和字节序判断什么是大小端&#xff1f;为什么有大小端 浮点数在内存中的存储题目提出浮点数存的过程浮点数取的过程 题目解析…

Java语言程序设计——篇十一(2)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…