利用Qt实现调用文字大模型的API,文心一言、通义千问、豆包、GPT、Gemini、Claude。
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 和搭建服务器中转。
感谢观看,记得订阅点赞,我们下期见!