DevLog:2025年9月16日

1、今天首先解决昨天的遗留问题,统一一下应用的布局,改成三栏布局,最左边是应用的名字,以及对话、收藏、设置 三个按钮,中间栏是对话列表、收藏列表和设置大项,第三栏是对应的详情,Cursor延续了昨天的NavigationSplitView,并且创建了AppSidebar和MiddleSideBar组件(都在ContentView里,后面可能也要拆分这个文件了),然后修改了多个文件来匹配三栏布局

2、最左侧导航栏的颜色、图标、文字大小等样式都还可以,但目前对话界面缺少了创建对话按钮,设置界面的详情显示也都比较局促,需要继续调整布局和功能,比如:

1.模型设置界面需要有多模型管理功能,可以添加、删除、测试模型,并且增加Tavily联网搜索能力的支持,Base URL需要具备自动补全能力

2.增加回收站功能,可以管理已删除的对话和收藏,并且按钮放在数据统计和外观设置之间

3.外观设置的样式也需要改一下,现在这种横向三个按钮切换显得很局促

3、接下来一步步修改,先从模型的添加、修改、删除、测试功能开始,第一次修改后效果不佳,我发现DetailView好像包含了对话、收藏、设置三个模块的最右侧区域,于是让Cursor将其拆分为单独的文件,ConversationDetailView、FavoriteDetailView、SettingsDetailView,拆分后DetailView由596行代码缩减成了42行,并且新创建的三个文件每个文件都专注于特定功能,代码结构清晰了一些

4、现在添加模型的弹窗显示不正常,可填写信息的窗口只有很小一块,存在大片空白,无法正常使用,让Cursor修复,同时删除可用模型列表顶部的API配置按钮,我不需要在列表里配置API Key和BASE URL

5、然后调整弹窗的功能,包括给弹窗增加Tavily密钥字段,放在API配置的最后,弹窗底部增加取消和保存两个按钮,去掉“默认模型”相关的设置等等,现在弹窗信息可以完整显示,并且效果还可以,然后删除了部分按钮的边框线,去掉了“默认”标识,但Cursor标识在删除当前使用的模型时会自动切换到第一个可用的模型,看样子还是有类似默认模型、当前模型的设置,还是要清理掉

6、开始添加模型,测试后决定,删掉应用预置的默认模型配置,所有的模型都由用户来自行设置,另外在点击测试时,无需通过弹窗提示测试结果,直接在列表里模型名称的下方显示测试结果,比如错误信息、响应时间等,然后修正部分问题,比如在添加模型后重启应用模型信息会消失,创建新模型时可以看到之前填写的API KEY和Base URL

7、发现SettingsView里目前还有一些AI模型相关设置,但刚刚这些修改都不涉及SettingsView,怀疑可能有部分代码未被使用,询问后发现整个文件都未被使用,并且SidebarView里也有部分过时代码,一并进行了清理

7、看起来暂时没有引发新的问题,目前已经添加了第一个模型,继续测试AI对话功能,首先就是对话界面缺少了创建新对话按钮,把这个按钮加在对话界面右上角,测试发现即使是经过测试提示连接成功的模型,也无法正常对话,Cursor表示目前没有实现真正的模型测试功能,没有真正调用API,怪不得每次测试连接时间都是1.2s,并且ChatView使用的是全局的AppStorage值,而不是用户选择的模型配置,在修改过程中Cursor添加了一些调试信息,发现可能是因为currentModelID为空字符串,导致无法找到匹配的模型,系统回退到默认配置gpt-3.5-turbo,而不是我自己配置的模型

8、这就是上面说的“当前模型”的设置,要求Cursor去掉这个增加了应用复杂性的功能,在开启对话时,直接用可用模型列表里的第一个模型

9、测试了几次对话,但发送消息后会报错400,结合Cursor添加的调试信息,多次反馈后定位了问题,然后修正了AI对话内容无法保存的问题,可能是未能将新对话和更新的对话保存到Core Data,至此已经基本实现了添加模型、AI对话的基础操作

10、修改了AI对话消息的显示顺序,改成问题在上、回答在下,明天再继续完善功能,比如添加多个模型、测试模型的切换效果,完善AI对话列表的选中状态提示、更新时间、置顶/取消置顶等右键菜单操作

发表回复