一个现代化的聊天应用前端,支持多种AI模型和聊天平台,提供流畅的用户体验和丰富的功能。
Mio Chat是一个基于Vue 3开发的聊天应用前端,支持连接多种AI聊天平台,包括OpenAI和Onebot。项目采用现代化的前端技术栈,提供了丰富的聊天功能和优雅的用户界面。
- 多平台支持:支持OpenAI和Onebot等多种聊天平台
- 实时消息流:支持流式响应,实时显示AI回复
- 工具调用:支持AI模型的工具调用功能
- 文件上传:支持图片和文件的上传和显示
- 消息历史:保存和管理聊天历史记录
- 自定义头像:支持多种头像显示策略
- 响应式设计:适配不同设备屏幕尺寸
- Markdown支持:支持Markdown格式的消息渲染
- 消息转发:支持消息的转发功能
- 上下文菜单:提供丰富的右键菜单功能
- 离线支持:通过Service Worker提供部分离线功能
- 前端框架:Vue 3 + Vite
- 状态管理:Pinia
- 路由管理:Vue Router
- UI组件库:Element Plus
- 样式处理:Sass
- 存储方案:LocalForage
- Markdown渲染:md-editor-v3
- 表情选择器:emoji-picker-element
- 截图功能:html2canvas
- Web Worker:用于文件上传处理
src/
├── assets/ # 全局样式和资源
├── components/ # 可复用组件
├── lib/ # 核心库和适配器
│ ├── adapter/ # 平台适配器(OpenAI, Onebot)
│ ├── client.js # 客户端核心类
│ ├── config.js # 配置管理
│ ├── contactor.js # 联系人管理
│ └── runtime.js # 运行时环境
├── router/ # 路由配置
├── utils/ # 工具函数
├── views/ # 页面视图
└── worker/ # Web Worker
- Node.js 16+
- pnpm 7+
pnpm install
pnpm dev
pnpm build
contactor.js
是项目的核心类之一,负责管理聊天联系人和消息处理。它支持不同的聊天平台,并提供统一的消息发送和接收接口。
项目使用适配器模式支持不同的聊天平台:
openai.js
:处理与OpenAI API的通信onebot.js
:处理与Onebot协议的通信
client.js
负责管理用户会话、联系人列表和与后端的WebSocket通信。
项目支持多种配置选项,包括:
- OpenAI模型配置
- Onebot服务器配置
- 显示设置
- 本地预设管理
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开一个 Pull Request
[待定] - 请添加适当的许可证信息