【Code with SOLO】Windows 桌面 AI 角色扮演聊天工具|一人 + AI 完成全栈开发

一、前言及开发背景

首先要感谢 Trae 官方在 5 月 8 日发送的短信邀请,作为一个 82 年的上班族,从未想过自己竟然还有机会参加这样的活动,本人深感荣幸。

其实本人对字节系的产品是有感情的,为什么这样说呢?最开始使用豆包是因为偷懒让豆包写公文文件,给它文件提纲和足够的叙事背景,让它来填充文件内容。后来就逐渐变成了有问题就问它,从医院的检查检验报告到行星引力弹射,我的所有问题它都从不回避,这让我明白了一个事实,在这个自主学习的黄金时代,只有你想不想学,没有你想学学不到的,遇到知识盲点,第一反应就是问豆包,她总是能给你满意的答案,而且整个过程完全没有门槛,目前为止,它还没有被我的问题难倒过,在我对一个功能的实现方法一无所知无从下手的时候,它甚至还会说出:“你尽管说要什么功能,我来帮你实现和兜底” 之类的话,给了我莫大的信心,让我有继续将项目开发下去的勇气,把一个又一个自己完全不了解的难题交给它去解决。所以,豆包对我来说就是良师益友一般的存在,这个形容绝不过分。

我相信所有非专业开发人员用 AI 编程都有一个契机,而我的契机就是 3 月底在工作中遇到了麻烦,我需要生成一个特定规律的日期字符串,用 Excel 处理起来很麻烦,纯手动工作量非常大且需要大量时间,于是我想到了用 C# WinForm 窗体应用写个小工具来解决这个问题,我一开始想到的就是手写算法,想让豆包帮我设计一个算法,结果它给我直接写了段调用 DateTime 类的方法,直接就实现了功能,这是我第一次见识它编程相关的能力,然后就是更多的办公相关的小工具,比如 PDF 转图片、PDF 转文本等,也都是基于 WinForm 窗体应用开发环境,因为自己相对熟悉,用设计器画界面也相对简单,在遇到问题的时候豆包总是能帮我一一解决,这让我有了做一些相对复杂项目的信心,于是,ChatAI 项目就这样开始了。

这个项目的前半段都是我用豆包我问它答的形式进行开发的,因为当时我还不知道有 Trae 这个 AI 编程软件,在前半段也大多是业务逻辑代码,面对的问题也相对局部,也能得到逐一解决,就是效率不是那么高就是了,基本就是自己用 VS2026 设计器拖控件做界面改控件属性,然后把关键的信息告诉它,比如命名空间名、窗体名、控件变量名之类的对象名称和要实现的功能逻辑等等,还真就如豆包自己说的 “我设计把控大的逻辑方向,它来实现、试错、兜底” 这样的开发模式,因为我都是工作之余类似于爱好形式的开发,用这个方法有大半个月吧,其实这样的开发方式虽然比传统开发方式简单,但仍有很多弊端,在豆包中一个对话闲置一定时间是会失去对之前对话上下文的,也就是说今晚说的事,明天在同一个会话中接着说,它会不知道你在说什么,在它不知道之前的程序逻辑的时候,编写的代码自然就不可能是你想要的结果,以至于我总是要想办法去约束它,给它足够多的逻辑代码参照,很多时候都是全选 CS 代码发给它,甚至是直接把涉及当前问题的 CS 文件复制给它,并用文字说明要实现程序逻辑,每次要做一件事之前都要交待一下它必须要知道的事情。我也因为这个问题采取了一边开发一边写开发文档的办法,但这个也不轻松啊,要用文字描述出程序逻辑和在文字里穿插大量的类名、表字段名、窗体名、控件变量名等等,有时候我需要把从哪个用户控件里的哪个对象的哪个属性取值都要说清楚,才能让它 Get 到我的点,我总不能每次让它写代码就把项目层级和文件构架都发一次给它吧,而且豆包一次性最多只支持 50 个文件上传,这样的开发方式持续到了大概 4 月下旬。

一次偶然的机会,我在 B 站刷到了一个视频,才了解到有 Trae 这个软件,简单学习了一下使用方法,把解决方案目录丢给它,至此,才明白什么叫轻松,后半段的开发基本就是:上下班的路上我突发奇想要实现某个功能,找豆包商量,豆包给出大致解决方案,回到家把界面根据自己的需求一画,然后把要实现的功能告诉 Trae,Trae 会根据目录文件层级架构和逻辑大致一了解,都不用交待具体要改哪个文件它就开始干活了,就算是它写的代码有错误,它也会自动调试到可运行,我直接去验收程序运行结果就行了,真的非常省心高效。

二、项目介绍

本项目是基于 Windows 桌面的 AI 角色扮演聊天工具,支持多 AI 角色创建,通过 OpenAI 兼容 API 对接云端大模型,同时支持本地.gguf 格式模型离线推理,实现安全、流畅、高度可控的 AI 对话体验。

(一)界面截图

1.登录窗口

2.主窗口

3.API配置窗口

4.会话设置窗口

5.用户配置窗口

6.创建新会话窗口

7.记忆管理窗口

(二)功能简介

1.云 / 本地双模型无缝切换:支持 11 家云端 API,也可加载本地.gguf 模型,AMD/NVIDIA/CPU 自适应加速,离线可用。

2.双层 AES-256 全加密:密码、API Key、消息、记忆全字段加密,密钥不落盘,隐私安全拉满。多角色 + 多用户隔离:一人多账号、多 AI 角色并行,数据完全隔离,会话独立不串扰。

3.AI 自动长期记忆:按对话条数自动精炼核心记忆,自动注入上下文,角色更 “懂你”。

4.GDI + 自绘聊天界面:无第三方 UI 依赖,圆角气泡、头像、时间戳,流畅不卡顿。

5.消息回溯 / 重新生成:右键一键回退到任意历史消息,删除无效对话,重新生成回复。

6.完整账号体系:登录、注册、改密、记住密码、用户资料配置,开箱即用。

7.策略模式适配多模型:自动识别 Qwen、Llama-3 等格式,构建正确 Prompt,输出更稳定。

三、踩过的坑
第一坑:把和模型交互的方式想简单了,还好有豆包和 Trae,要不然光写发给大模型的 Json 请求体文本拼接方法就能把我累死。

第二坑:我以为连接本地部署的模型就是把连接云端模型的连接方式改成本地就行了,忽略了硬件适配、不同模型的输入和输出格式的适配、显存调用等等问题。

第三坑:忽略了硬件生态门槛,我用的 AMD RX6600 8G 显卡,官方都没有给 1032 这个系列的显卡做算力支持,连 Ollama 都不支持这个卡的显存调用,不得不调用 Vulkan 类库来调用这张卡的显存。目前也仅用了这张卡做调试,我没有 N 卡,所以 Coda12 没有调试过。不过想来应该比 1032 系列要简单吧。
四、结语
豆包和 Trae 的组合我十分满意,豆包适合贴合用户需求,帮我扫清知识盲点、给出大体解决方向和实现方法,更适合与人沟通并交换意见;Trae 就是实施方案和计划的专家,能把设想的计划和方案完整落地。

开源链接:https://github.com/AngusCN-creator/ChatAI