开发者福音!ChatAllAI:你的多模型Prompt测试沙箱,效率提升10倍!
ChatAllAI是一个基于Electron + Vue3 + TypeScript构建的桌面应用程序,旨在解决用户需要同时与多个AI模型进行对话的痛点。通过单一界面,用户可以同时与DeepSeek、豆包、Qwen、Kimi、Grok、Copilot、GLM、元宝等主流AI模型进行对话,实现高效的多模型对比和协作。安装包下载地址:https://github.com/hqzqaq/chatAllA
1.项目概述
ChatAllAI是一个基于Electron + Vue3 + TypeScript构建的桌面应用程序,旨在解决用户需要同时与多个AI模型进行对话的痛点。通过单一界面,用户可以同时与DeepSeek、豆包、Qwen、Kimi、Grok、Copilot、GLM、元宝等主流AI模型进行对话,实现高效的多模型对比和协作。
2.开发动机与解决的问题
核心痛点
-
多平台切换繁琐
用户需要在不同浏览器标签页之间频繁切换,影响对话效率
-
会话状态丢失
每次重新打开网页都需要重新登录,无法保持会话状态
-
对比分析困难
难以直观比较不同AI模型对同一问题的回答质量
-
资源浪费
多个浏览器实例占用大量系统资源
解决方案
ChatAllAI通过以下方式解决上述问题:
-
统一界面
将所有AI模型集成到单一桌面应用中
-
会话持久化
自动保存登录状态和对话历史
-
并行对话
一次输入,多模型同时响应
-
资源优化
基于Electron的轻量级架构
3.功能特性详解
核心功能
1. 多AI模型并行对话
-
统一输入
单一输入框,一次输入即可发送到所有选中的AI模型
-
并行响应
所有AI模型同时处理用户输入,实时返回结果
-
直观对比
并排显示不同AI的回答,便于质量对比和分析
2. 智能会话管理
-
自动登录保持
首次登录后自动保存会话状态,无需重复登录
-
会话持久化
应用重启后自动恢复所有对话历史
-
状态监控
实时显示每个AI模型的连接状态和登录状态
3. 灵活布局系统
-
响应式网格
根据窗口大小自动调整卡片布局
-
拖拽调整
支持卡片位置的自由拖拽和大小调整
-
最大化/最小化
单个卡片支持全屏和最小化操作
-
多列布局
可配置1-6列布局,适应不同屏幕尺寸
4. 个性化配置
-
主题切换
支持浅色、深色和跟随系统主题
-
语言支持
中英文界面切换
-
快捷键
支持Ctrl+Enter快速发送消息
-
通知设置
可配置桌面通知和声音提示
5. 高级功能
-
代理配置
为每个AI模型单独配置网络代理
-
开发者工具
可直接打开每个WebView的控制台
-
性能监控
实时监控应用性能和资源使用情况
-
错误处理
完善的错误提示和自动重试机制
支持的AI模型
目前支持以下主流AI模型:
-
DeepSeek
深度求索AI助手
-
豆包
字节跳动AI助手
-
Qwen
通义千问
-
Kimi
月之暗面AI助手
-
Grok
xAI的AI助手
-
Copilot
微软AI助手
-
GLM
智谱AI
-
元宝
腾讯元宝
4.使用指南
快速开始
1. 安装与启动
# 克隆项目
git
clone
https://github.com/hqzqaq/chatAllAI2.git
# 安装依赖
npm install
# 启动开发模式,默认打开控制台,原生菜单栏
npm run dev
# 启动生产模式,自定义菜单栏
npm run prod
# 构建应用
npm run build
2. 首次使用步骤
-
选择AI模型
在左侧模型选择器中勾选需要使用的AI模型
-
登录账号
首次使用需要登录各个AI网站账号
-
开始对话
在统一输入框中输入问题,按Ctrl+Enter发送
界面操作详解
主界面布局

卡片操作功能
每个AI卡片都包含以下功能按钮:
-
🔗 连接状态
显示当前连接和登录状态
-
🔧 代理设置
配置网络代理(支持HTTP/HTTPS/SOCKS5)
-
🔍 开发者工具
:打开WebView控制台进行调试
-
⛶ 最大化
:将当前卡片全屏显示
-
⬇️ 最小化
:隐藏WebView内容,只显示标题栏
-
🔄 刷新
:重新加载当前WebView
统一输入区域
-
模型选择
通过复选框选择要发送消息的AI模型
-
智能提示
根据选中模型数量显示相应提示F
-
快捷键支持
Ctrl+Enter快速发送,Ctrl+A全选文本
-
状态指示
显示当前发送状态和错误信息
高级使用技巧
1. 高效对话策略
-
批量测试
同时向多个AI发送相同问题,快速比较回答质量
-
渐进式提问
先向所有AI发送基础问题,再针对优秀回答深入追问
-
结果聚合
利用并排显示优势,快速筛选最优解决方案
2. 布局优化建议
-
单列布局
适合深度对比2-3个AI模型的回答
-
多列布局
适合快速浏览多个AI的初步回答
-
最大化模式
专注分析单个AI的详细回答
3. 性能优化设置
-
选择性启用
只启用当前需要的AI模型,减少资源占用
-
定时刷新
长时间不使用的WebView可手动刷新保持活跃
-
代理配置
网络不稳定时可配置代理提高连接稳定性
常见问题解决
登录问题
-
问题
某个AI模型无法保持登录状态
-
解决
检查网络连接,尝试重新登录,或配置代理
消息发送失败
-
问题
消息发送后某个AI没有响应
-
解决
检查该AI网站是否正常访问,WebView是否加载完成
性能问题
-
问题
同时启用多个AI模型导致应用卡顿
-
解决
减少同时启用的模型数量,或升级硬件配置
5.技术架构深度解析
整体架构设计
ChatAllAI采用典型的前后端分离架构,但与传统Web应用不同,这里的"后端"实际上是Electron主进程:

核心技术栈
前端技术栈
-
Vue3 + Composition API
现代化响应式框架
-
TypeScript
类型安全的开发体验
-
Pinia
轻量级状态管理
-
Element Plus
UI组件库
-
Vite
快速构建工具
桌面端技术栈
-
Electron
跨平台桌面应用框架
-
IPC通信
主进程与渲染进程间通信
-
WebView
嵌入式浏览器组件
开发工具链
-
ESLint + Prettier
代码规范与格式化
-
Vitest
单元测试框架
-
Electron Builder
应用打包工具
核心模块设计
1. 窗口管理系统
窗口管理器负责创建和管理所有应用窗口,包括:
- 主应用窗口
- 设置窗口
- 开发者工具窗口
// WindowManager核心接口
export
interface
WindowConfig
{
id
:
string
url?:
string
route?:
string
persistent?:
boolean
}
2. IPC通信系统
IPC处理器是连接主进程和渲染进程的桥梁:
// IPC通道定义
export
enum
IPCChannel
{
APP_READY
=
'app:ready'
,
MESSAGE_SEND
=
'message:send'
,
WEBVIEW_CREATE
=
'webview:create'
,
// ...更多通道
}
3. 消息分发器
消息分发器负责将用户输入同时发送到所有选中的AI模型:
export
class
MessageDispatcher
{
async
sendMessage
(
content
:
string
,
providers
:
AIProvider
[],
messageId?:
string
):
Promise
<
MessageSendResult
[]> {
// 并发发送到所有提供商
}
}
4. WebView管理
每个AI模型对应一个独立的WebView实例,实现会话隔离:
export
interface
WebViewInstance
{
id
:
string
providerId
:
string
url
:
string
isReady
:
boolean
isLoading
:
boolean
}
新增AI模型网站接入指南
接入流程概述
新增AI模型网站接入主要涉及以下步骤:
- 在
src/stores/chat.ts中添加模型配置 - 在
src/utils/LoginCheckScripts.ts中实现登录检查脚本 - 在
src/utils/MessageScripts.ts中实现消息发送脚本 - 添加图标资源文件
详细步骤说明
步骤1:添加模型配置
在 src/stores/chat.ts 文件中添加新的AI提供商配置:
// 在providers数组中添加新的提供商
{
id
:
'new-ai'
,
// 唯一标识符,使用小写字母和连字符
name
:
'新AI助手'
,
// 显示名称
url
:
'https://new-ai-website.com'
,
// 网站URL
icon
:
'./icons/new-ai.png'
,
// 图标路径(位于public/icons目录)
isLoggedIn
:
false
,
// 登录状态
sessionData
: {
// 会话数据
cookies
: [],
localStorage
: {},
sessionStorage
: {},
isActive
:
false
,
lastActiveTime
:
new
Date
()
},
webviewId
:
'webview-new-ai'
,
// WebView ID(格式:webview-{provider-id})
isEnabled
:
false
,
// 是否启用
loadingState
:
'idle'
,
// 加载状态
retryCount
:
0
// 重试次数
}
步骤2:实现登录检查脚本
在 src/utils/LoginCheckScripts.ts 文件中添加登录检查脚本:
// 在getLoginCheckScript函数中添加新的提供商脚本
new
-
ai
:
`
// 检查新AI网站的登录状态
// 通常通过检查用户头像、登录按钮状态、用户信息等元素
!!(document.querySelector('[data-testid="user-avatar"]') ||
document.querySelector('.user-info') ||
document.querySelector('[class*="logout"]') ||
!document.querySelector('[class*="login"]'))
`
步骤3:实现消息发送脚本
在 src/utils/MessageScripts.ts 文件中添加消息发送脚本:
// 在getSendMessageScript函数中添加新的提供商脚本
new
-
ai
:
getNewAIScript
(escapedMessage)
// 实现具体的发送脚本函数
function
getNewAIScript
(
escapedMessage
:
string
):
string
{
return
`
(function() {
// 查找输入框
const input = document.querySelector('[role="textbox"]') ||
document.querySelector('textarea') ||
document.querySelector('[contenteditable="true"]');
if (input) {
input.focus();
// 清空现有内容
if (input.tagName === 'TEXTAREA') {
input.value = '';
} else {
input.textContent = '';
}
// 设置新消息
if (input.tagName === 'TEXTAREA') {
input.value = '${escapedMessage}';
} else {
input.textContent = '${escapedMessage}';
}
// 触发输入事件
const inputEvent = new Event('input', { bubbles: true });
input.dispatchEvent(inputEvent);
// 查找发送按钮并点击
const sendButton = document.querySelector('[class*="send"]') ||
document.querySelector('button[type="submit"]') ||
document.querySelector('button:contains("发送")');
if (sendButton && !sendButton.disabled) {
sendButton.click();
return true;
}
}
return false;
})()
`
;
}
步骤4:添加图标资源
在 public/icons 目录下添加对应的图标文件:
-
new-ai.png(建议尺寸:32x32像素,支持PNG、SVG格式)
图标文件命名规范:
- 使用小写字母和连字符
- 与provider的id保持一致
- 例如:provider id为
new-ai,图标文件名为new-ai.png
技术实现细节
WebView组件集成
新增的AI模型网站会通过 src/components/webview/WebView.vue 组件进行集成。关键方法包括:
-
sendMessage调用消息发送脚本
-
checkLoginStatus定期检查登录状态
-
executeScript执行任意JavaScript代码
脚本执行流程
-
消息发送流程:
// 在WebView组件中const sendScript = getSendMessageScript(props.provider.id, message)await webviewElement.value.executeJavaScript(sendScript) -
登录检查流程:
// 每10秒检查一次登录状态const loginCheckScript = getLoginCheckScript(props.provider.id)const result = await webviewElement.value.executeJavaScript(loginCheckScript)const isLoggedIn = Boolean(result)
错误处理机制
-
脚本执行失败
捕获异常并记录错误日志
-
网络连接问题
显示错误提示并允许重试
-
DOM元素未找到
提供详细的调试信息
调试技巧
-
使用浏览器开发者工具
在目标AI网站上点击控制台的按钮打开开发者工具,使用元素选择器查找输入框和发送按钮的选择器
-
测试脚本
在开发者工具的Console中直接运行脚本测试效果
-
错误处理
确保脚本有完善的错误处理和日志输出
最佳实践
-
选择器稳定性
优先使用稳定的选择器(如
data-testid、role等),避免使用易变的类名 -
事件触发
设置值后务必触发相应的事件(input、change等)
-
延迟处理
适当添加延迟以确保DOM操作完成
-
兼容性
考虑不同浏览器的兼容性,使用Polyfill解决差异
-
安全性
使用
escapeJavaScriptString函数安全转义消息内容
常见问题解决
-
脚本不执行
检查选择器是否正确,确保DOM已完全加载
-
登录状态检测失败
可能需要等待页面完全加载后再检查
-
消息发送失败
检查发送按钮是否可用,可能需要等待输入框内容设置完成
6.技术实现原理
1. 多WebView会话管理
ChatAllAI的核心技术挑战是如何在单一应用中管理多个独立的浏览器会话。解决方案是:
-
会话隔离
每个AI模型使用独立的WebView实例
-
Cookie持久化
自动保存和恢复登录状态
-
本地存储同步
保持localStorage和sessionStorage状态
2. 消息同步机制
消息同步通过以下步骤实现:
-
统一输入
用户在单一输入框中输入消息
-
消息分发
消息分发器将消息并发发送到所有选中的WebView
-
状态监控
实时监控每个WebView的消息发送状态
-
结果聚合
:收集所有AI模型的响应并统一展示
3. 自适应布局系统
应用采用响应式网格布局,支持:
-
动态列数
根据窗口大小自动调整列数
-
卡片拖拽
支持卡片位置的自由调整
-
最大化/最小化
单个卡片的全屏和最小化操作
项目特点与创新
技术特点
-
模块化设计
高度解耦的架构设计,便于维护和扩展
-
类型安全
全面使用TypeScript,减少运行时错误
-
性能优化
懒加载、虚拟滚动等优化技术
-
跨平台支持
支持Windows和macOS平台
用户体验创新
-
统一操作
一次输入,多模型响应
-
直观对比
并排显示不同AI的回答
-
个性化配置
支持主题切换、布局调整
-
离线能力
部分功能支持离线使用
技术挑战与解决方案
挑战1:WebView兼容性问题
问题:不同AI网站的DOM结构差异巨大 解决方案:为每个网站定制消息发送脚本
// 定制化的消息发送脚本
export
function
getSendMessageScript
(
providerId
:
string
,
message
:
string
):
string
{
const
scripts
:
Record
<
string
,
string
> = {
kimi
:
getKimiScript
(message),
deepseek
:
getDeepSeekScript
(message),
// ...其他提供商
}
return
scripts[providerId]
}
挑战2:会话状态保持
问题:WebView重启后登录状态丢失 解决方案:实现完整的会话持久化机制
// 会话数据接口
export
interface
SessionData
{
cookies
:
Cookie
[]
localStorage
:
Record
<
string
,
string
>
sessionStorage
:
Record
<
string
,
string
>
isActive
:
boolean
lastActiveTime
:
Date
}
挑战3:性能优化
问题:多个WebView同时运行占用大量资源 解决方案:
- 懒加载:只有选中的模型才加载WebView
- 资源回收:长时间不使用的WebView自动销毁
- 内存优化:定期清理不必要的缓存数据
项目结构分析
核心目录结构
chat-all-ai/
├── electron/ # Electron主进程
│ ├── managers/ # 管理器模块
│ ├── main.ts # 主进程入口
│ └── preload.ts # 预加载脚本
├── src/ # Vue3渲染进程
│ ├── components/ # 组件层
│ ├── stores/ # 状态管理
│ ├── services/ # 服务层
│ ├── types/ # 类型定义
│ └── utils/ # 工具函数
├── public/ # 静态资源
└── scripts/ # 构建脚本
关键文件说明
-
electron/main.ts
应用主入口,负责初始化所有管理器
-
src/App.vue
应用根组件,设置全局样式和主题
-
src/views/Chat.vue
核心聊天界面,管理AI卡片布局
-
src/stores/chat.ts
聊天状态管理,包含所有AI提供商配置
存在的问题与局限性
技术限制
-
WebView依赖
应用功能受限于各AI网站的Web版本
-
API稳定性
网站DOM结构变化可能导致功能失效
-
性能瓶颈
同时运行多个WebView对硬件要求较高
功能限制
-
模型支持有限
目前仅支持主流AI模型
-
自定义能力弱
无法深度定制AI行为
-
离线功能有限
核心功能需要网络连接
安全考虑
-
会话安全
需要妥善处理用户登录信息
-
数据隐私
对话数据存储和传输的安全性
-
更新维护
需要持续跟进各AI网站的更新
下一步开发计划
短期目标(1-2个月)
- 功能扩展
- 支持更多AI模型
- 添加插件系统
- 实现消息模板和快捷回复
- 技术升级
- 迁移到Electron最新版本
- 优化构建流程和打包大小
- 添加自动化测试覆盖
技术实践建议
对于开发者
-
架构设计
采用模块化设计,便于维护和测试
-
错误处理
完善的错误处理和日志记录机制
-
性能监控
实时监控应用性能指标
对于用户
-
硬件要求
建议8GB以上内存以获得最佳体验
-
网络环境
稳定的网络连接是必要条件
-
使用习惯
合理选择需要同时使用的AI模型数量
总结
ChatAllAI项目展示了如何通过现代Web技术栈构建功能丰富的桌面应用程序。项目不仅解决了用户在多AI模型对话中的实际痛点,还提供了优秀的技术实践案例。
项目的成功得益于:
- 合理的技术选型
Electron + Vue3 + TypeScript的组合
-
清晰的架构设计
模块化、可扩展的代码结构
-
注重用户体验
直观的界面和流畅的操作
开发工具
- Trae-CN 主力模型为:deepseek-v3.1 terminal
- CodeBuddy
- Qoder
如何高效转型Al大模型领域?
作为一名在一线互联网行业奋斗多年的老兵,我深知持续学习和进步的重要性,尤其是在复杂且深入的Al大模型开发领域。为什么精准学习如此关键?
- 系统的技术路线图:帮助你从入门到精通,明确所需掌握的知识点。
- 高效有序的学习路径:避免无效学习,节省时间,提升效率。
- 完整的知识体系:建立系统的知识框架,为职业发展打下坚实基础。
AI大模型从业者的核心竞争力
- 持续学习能力:Al技术日新月异,保持学习是关键。
- 跨领域思维:Al大模型需要结合业务场景,具备跨领域思考能力的从业者更受欢迎。
- 解决问题的能力:AI大模型的应用需要解决实际问题,你的编程经验将大放异彩。
以前总有人问我说:老师能不能帮我预测预测将来的风口在哪里?
现在没什么可说了,一定是Al;我们国家已经提出来:算力即国力!
未来已来,大模型在未来必然走向人类的生活中,无论你是前端,后端还是数据分析,都可以在这个领域上来,我还是那句话,在大语言AI模型时代,只要你有想法,你就有结果!只要你愿意去学习,你就能卷动的过别人!
现在,你需要的只是一份清晰的转型计划和一群志同道合的伙伴。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐



所有评论(0)