24年7月~9月
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 版本上线¶
嗨,大家好!我是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 和搭建服务器中转。
感谢观看,记得订阅点赞,我们下期见!
3 增加token调用计算¶
嗨,大家好!我是Beyond欣,欢迎回到我的频道。
AI.xyz发布已经一周了,来跟大家汇报下成果。
结果嘛——代码卖出:0份!
QQ群迎来两位小伙伴,
一个是我
另一个也是我。
百度网盘的下载量显示8次,估摸着有一半是我自己反复下载。
至于我那充满期待的网站流量,依然和以前一样冷清,每天UV一百来个,估计也都是些爬虫在逛。
为了防止流量盗刷我还特意买了100G的资源包,结果每天只用掉20M的流量,真是“未雨绸缪”到极致了。
总之,不出所料,项目就是我一个人的自嗨场。
其实吧,我觉得我现在这个键盘挺好的。
话说回来,经过一番努力,V0.2版本已经正式发布了!这次更新的内容包括:
新建知识库
建立了一个飞书上的公开知识库,里面包含了项目介绍、更新日志、以及如何注册API等内容。
虽然目前只有我一个人在用,但我还是坚持做了一个项目进度面板和路线图,管理下进度。
增加调用统计
现在支持本地Token调用计算,每次成功提问后会自动统计Token的消耗情况,并在设置页面展示调用量详情。统计信息包括输入Token数、输出Token数、总Token数以及总调用次数。
还支持账户Token调用计算。你可以输入自己的百度API密钥,查看自己账户下语言大模型的API调用统计(支持按天、周、月和总计查询)。阿里和字节跳动官方暂时还不提供直接获取账户调用量的功能,需要手动登录官网查看。
优化设置
在设置中新增了基本设置项,除了可以修改头像之外,还可以选择关闭软件时是缩小到系统托盘还是直接退出。
此外,现在可以自定义设置唤醒快捷键了。
修复BUG
修复了点击菜单栏图标无法最大化/最小化软件的问题:如果设置了主窗口的透明度并希望菜单栏可切换显示,则在设置窗口标志时需要添加特定标志。
修复了代码无法自动换行的问题:现在当代码过长时会自动折行,而不再是出现水平滚动条。
修复了模型选择页面过长时提问布局不恰当的问题:当输入框的文字过长时,会自动隐藏模型说明。
为通用控件增加了样式表,比如 QCheckBox、QRadioButton 都有了新的样式。
修复了日志只记录而不输出到调试控制台的问题:在 cmake 设置 add_executable 时,如果指定了生成 WIN32 项目,则不能直接使用 cout,而需要使用 OutputDebugString。
修复了 libhv 的日志记录问题:隐藏了 http 调用使用的第三方库 libhv 的日志输出。
修复了无法连续删除对话的问题:现在删除一个对话后会回到模型选择页面,而不是默认选择第一个对话。
以上就是 V0.2 版本的全部更新内容啦。
这周和下周周末都有事要回家,进度比较慢。V0.3估计要半个月以后了。
下个版本会完善助手相关功能,支持导入导出、支持复制和编辑,并且助手会支持额外的对话参数。
感谢观看,记得订阅点赞,我们下期见!
4 优化细节体验¶
嗨,大家好!我是Beyond欣,欢迎回到我的频道。
AI点xyz 已经开发一个半月,基本像个软件了。
之前两周有事,周末回家了,所以开发进度比较慢。
本周终于迎来了 V0.3版本。
版本新增内容:
功能一
适配更小屏幕,UI全面更新,优化交互操作。
基本上把每个页面都重写了下,软件最小尺寸调整为 920 * 650。
优化UI和交互细节,去掉了之前的各种圆角,配色改为 One Dark Pro。
功能二
重构助手功能,支持增删改查。
之前助手是固定的,无法浏览和查看。这次增加了自定义助手,可以任意新建、修改、删除、导出、拷贝。
助手面板显示效果也仿照微信公众号文章改为了自适应。
下个版本准备增加文字转语音功能,研究下微软的 Azure AI 语音如何集成。
感谢观看,记得订阅点赞,我们下期见!
5 文本转语音增加主播试听功能¶
嗨,大家好!
我是Beyond欣,欢迎回到我的频道。
AI点xyz V0.5 版本已发布
版本更新内容
1 将语音合成集成进对话列表
2 语音合成增加试听、历史记录、收藏等功能
功能开发不多,主要是代码重构
之前只想实现各家大模型的文生文
随着功能的完成,想在软件里增加更多的AI工具
xyz是指万物
语音合成、文生图、文生音乐、文生视频什么的当然要列在 RoadMap 里了。
这次重构除了考虑了各种服务的调用
还考虑了如何集成本地部署
反正也是自嗨,光调API多没劲,集成开源模型的调用才好玩
最开始准备只用c++,通过 ONNX 运行时实现,自己一个人恐怕 hold 不住
学习了下 ComfyUI ,只保留基本功能再写个插件把几个简单的工作流转成本地调用
然后仿照 WebUI 那样用 Qt 搭个页面就能实现文生图了
尽量十月一假期结束前发布下个版本,集成基本文生图功能
API调用支持 SD3 Medium 和 SD3 Large。
本地部署支持 SD3 Medium 和 Flux。(只会找几个固定的Lora)
后续软件每次发布根据是否需要本地部署也会分为不同型号。
感谢观看,记得订阅点赞,我们下期见!
6 Qt实现集成AzureAI文本转语音¶
嗨,大家好!
我是Beyond欣,欢迎回到我的频道。
本周发布 V0.4 版本,集成了语音合成。
现在这个视频的配音就是用AI点XYZ生成的。
想试用的话可以下载 AI点XYZ V0.4 版本
官网提供了一组测试api
在设置里输入即可使用
使用微软的免费配额
不能用就是配额用完了
这次版本新增了哪些内容呢
集成了语音合成功能
QT自带的Demo "hello speak"
实现了TTS功能,引擎用的是Windows本地的朗诵
研究了下把语音生成改成了Azure AI 的 Speech 服务
跟那些短视频配音软件都差不多
29个角色,支持普通话、各地方言、角色扮演、说话风格
可以调整语速和音高
生成的语音支持播放、暂停、快进、快退、下载、音量调整
麻雀虽小五脏俱全,对我做视频是够用了
实际开发前看了很多现成的工具,当初还嘲笑他们
SpeechStudio 这么完善,大家抄为啥只抄一小块
让后我就照着 SpeechStudio 肝了一天,越写越郁闷
95%的功能都不需要,开发时间还要翻几倍
我又不做有声书,需要多人来回切换对话,每个词停顿都能控制
真有这个需求还是直接用 SpeechStudio 吧
然后我就全删了,只保留了常用功能
一堆语音也都删了,仅留下普通话、各地方言、英语。
其他更新内容:
1 增加了更详细的网络通讯错误日志
2 更新了设置界面和模型选择界面 UI
随着功能越来越多
把模型选择、密钥输入、调用统计都整合到了一起
3 修复了一个严重的BUG
使用文心模型进行对话时
如果网络不稳定,有概率闪退
接下来
我打算在十一前继续完善语音合成功能
增加收藏夹、预设和角色试听等功能
十月一之后,研究一下图像生成的功能
感谢观看,记得订阅点赞,我们下期见!
7 图像生成Demo¶
嗨,大家好!
我是Beyond欣,欢迎回到我的频道。
本周搭了一个图像生成的Demo
集成了阿里云和 stability ai 的文生图接口功能
建一个助手用来批量生成提示词
获取提示词
生成图片
图生图、局部重绘、本地部署一起做完后发布下一个版本
感谢观看,记得订阅点赞,我们下期见!
8 支持图生图和豆包智能绘图¶
嗨,大家好!
我是Beyond欣,欢迎回到我的频道。
本周丰富了图片生成功能
研究了下豆包的签名调用
现在图片生成支持 豆包-智能绘图 、 阿里-通义万相 、阿里-FLUX
集成了图生图功能
图片上传支持多种方式:
网络图片链接、截图软件复制到粘贴板、本地图片路径复制、本地弹窗选择
阿里的图生图只支持网络图片
本来实现方式是找了个开源的图床后端部署到云服务器
想到我第一期视频说的 AI.xyz 不会上传任何信息
所有请求都是本地直接向模型供应商发起的
然后换了个方案,将图片上传到 uguu.se
Uguu 提供一个免费文件托管服务,可以匿名上传,文件在 6 小时后删除
做了一个基本的图片浏览器,支持图片浏览常用操作
后续基于此增加绘制蒙版功能
增加了个简陋的弹窗
开发了两个多月,每次有错误都不知道如何提醒
突然反应过来发现软件原来没有弹窗......
目前 AI.xyz 版本已经更迭到 0.5
既想完善后发布 0.6,又希望给朋友帮我试用下
干脆发布中间版本 0.6-dev-1 吧
想提前试用 AI.xyz 的小伙伴可以加qq群下载 dev 版本
感谢观看,记得订阅点赞,我们下期见!
中国小姐姐
日本高中小美女
小狗赛车
科幻城市
梯田
9 支持声音转文本、图片编辑¶
嗨,大家好!
我是Beyond欣,欢迎回到我的频道。
AI.xyz是一款全能的AI工具箱
目前集成了多种在线工具
后续将会支持本地部署开源模型
现已支持语音合成和语音转文本
将他们组合起来即可实现魔法换音
新增加了图片处理工具箱,初步集成了
物体擦除 和 局部重绘
感谢观看,记得订阅点赞,我们下期见!
10 支持图像扩展和风格重绘¶
嗨,大家好!
我是Beyond欣,欢迎回到我的频道。
AI.xyz是一款全能的AI工具箱
现已支持图像扩展和风格重绘
感谢观看,记得订阅点赞,我们下期见!