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

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

下载地址: AI.xyz

1 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 和搭建服务器中转。

感谢观看,记得订阅点赞,我们下期见!

相关推荐
迈火8 小时前
SD - Latent - Interposer:解锁Stable Diffusion潜在空间的创意工具
人工智能·gpt·计算机视觉·stable diffusion·aigc·语音识别·midjourney
四维碎片9 小时前
【Qt】UDP跨平台调试工具
qt·学习·udp
踏过山河,踏过海10 小时前
【用ui文件做个简单工具的开发,为什么修改完ui后,程序重新编译运行后,GUI界面还是不变呢?】
qt·ui
向阳开的夏天12 小时前
麒麟V10源码编译QT5.6.3 (x86 & arm64)
开发语言·qt
打码的猿13 小时前
Qt对话框不锁死主程序的方法
开发语言·qt
小小码农Come on17 小时前
Qt Creator常用设置
qt
空中楼阁,梦幻泡影18 小时前
主流4 大模型(GPT、LLaMA、DeepSeek、QWE)的训练与推理算力估算实例详细数据
人工智能·gpt·llama
wkm95618 小时前
在arm64 ubuntu系统安装Qt后编译时找不到Qt3DExtras头文件
开发语言·arm开发·qt
API开发19 小时前
apiSQL网关 for Docker 离线安装和升级教程
运维·docker·容器·api·api网关·apisql·替代graphql
小小码农Come on20 小时前
QT开发环境安装
开发语言·qt