# HandmadeShareGPT **Repository Path**: kun_int/handmade-share-gpt ## Basic Information - **Project Name**: HandmadeShareGPT - **Description**: 手动创建ShareGPT格式数据集工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-08 - **Last Updated**: 2025-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📊 DataSet Tool 一个强大的 AI 训练数据集管理工具,专门用于创建、编辑和管理 ShareGPT 格式的对话数据集。 ![Tauri](https://img.shields.io/badge/Tauri-2.0-blue?logo=tauri) ![Vue.js](https://img.shields.io/badge/Vue.js-3.0-green?logo=vue.js) ![Rust](https://img.shields.io/badge/Rust-1.70+-orange?logo=rust) ![License](https://img.shields.io/badge/License-MIT-yellow) ## ✨ 功能特性 ### 🗂️ 数据集管理 - ✅ **创建/打开/保存** 数据集文件 - ✅ **数据集名称编辑** - 双击即可修改数据集名称 - ✅ **数据统计显示** - 实时显示对话数量、消息数量等信息 - ✅ **自动保存提醒** - 智能检测未保存更改并提醒用户 ### 💬 对话管理 - ✅ **多轮对话编辑** - 支持复杂的多轮对话创建和编辑 - ✅ **对话名称管理** - 可为每个对话设置有意义的名称 - ✅ **对话复制/删除** - 快速复制或删除对话 - ✅ **智能排序** - 支持拖拽重排序消息 ### 📝 消息编辑 - ✅ **多角色支持** - 支持 Human、GPT、Thinking、Function Call、Observation 等角色 - ✅ **内联编辑** - 双击消息即可编辑,支持实时预览 - ✅ **自动保存** - 切换对话时自动保存编辑中的内容 - ✅ **动态文本框** - 文本框根据内容自动调整高度 ### 🔧 工具集成 - ✅ **系统提示词管理** - 为对话设置系统提示词 - ✅ **工具定义支持** - 支持 OpenAI Function Calling 格式的工具定义 - ✅ **JSON 验证** - 实时验证工具定义的 JSON 格式 ### 📤 导入导出 - ✅ **标准格式导出** - 导出符合 ShareGPT 标准的 JSON 文件 - ✅ **数据集合并** - 支持多个数据集的合并操作 - ✅ **批量导入** - 支持导入现有的 ShareGPT 格式文件 - ✅ **格式兼容** - 自动处理新旧格式的兼容性 ### ✅ 数据验证 - ✅ **格式检查** - 自动验证对话格式的正确性 - ✅ **规则验证** - 确保 Human-GPT 配对、工具调用完整性等 - ✅ **智能建议** - 根据上下文智能建议下一个消息类型 ## 🚀 技术栈 ### 前端 - **Vue 3** - 渐进式 JavaScript 框架 - **Element Plus** - 企业级 UI 组件库 - **Pinia** - 现代化状态管理 - **Vite** - 下一代前端构建工具 ### 后端 - **Tauri** - 轻量级桌面应用框架 - **Rust** - 系统级编程语言,保证性能和安全性 ### 开发工具 - **TypeScript** - 类型安全的 JavaScript - **ESLint** - 代码规范检查 - **Git** - 版本控制 ## 📦 安装使用 ### 方式一:下载预编译版本 1. 前往 [Releases](../../releases) 页面 2. 下载对应平台的安装包(.msi 或 .exe) 3. 运行安装程序并按提示安装 ### 方式二:从源码构建 #### 环境要求 - **Node.js** >= 16.0.0 - **Rust** >= 1.70.0 - **pnpm** 或 **npm** #### 安装步骤 ```bash # 克隆项目 git clone https://github.com/your-username/DataSetTool.git cd DataSetTool # 安装依赖 npm install # 开发模式运行 npm run tauri dev # 构建生产版本 npm run tauri build ``` ## 📖 使用指南 ### 基本操作 1. **创建新数据集** - 点击顶部工具栏的"新建"按钮 - 或使用快捷键 `Ctrl+N` 2. **添加对话** - 在左侧面板点击"新增对话"按钮 - 双击对话名称可以重命名 3. **编辑消息** - 在中间区域双击消息内容进行编辑 - 使用角色选择器切换消息类型 - 支持 Enter 保存、ESC 取消 4. **设置工具和系统提示** - 在右侧工具面板配置系统提示词 - 添加 JSON 格式的工具定义 5. **保存和导出** - `Ctrl+S` 保存当前数据集(包含名称信息) - 使用"导出"功能生成标准 ShareGPT 格式 ### 高级功能 #### 智能消息建议 系统会根据当前对话上下文智能建议下一个消息类型: - **Human** → **GPT** (优先级:高) - **Function Call** → **Observation** (优先级:高) - **Thinking** → **GPT** 或 **Function Call** (优先级:中) #### 数据验证规则 - Human 和 GPT 消息必须成对出现 - Function Call 后必须跟随 Observation - Thinking 可以出现在任何位置 - 系统会自动检测并提示格式错误 #### 工具定义格式 ```json [ { "name": "get_weather", "description": "获取指定城市的天气信息", "parameters": { "type": "object", "properties": { "city": { "type": "string", "description": "城市名称" } }, "required": ["city"] } } ] ``` ## 📁 项目结构 ```bash DataSetTool/ ├── src/ # Vue 前端源码 │ ├── components/ # Vue 组件 │ │ ├── ConversationEditor/ # 对话编辑器 │ │ ├── DatasetManager/ # 数据集管理 │ │ └── ToolsManager/ # 工具管理 │ ├── stores/ # Pinia 状态管理 │ ├── utils/ # 工具函数 │ └── views/ # 页面组件 ├── src-tauri/ # Tauri 后端 │ ├── src/ # Rust 源码 │ │ ├── commands/ # Tauri 命令 │ │ └── models/ # 数据模型 │ └── Cargo.toml # Rust 依赖配置 ├── public/ # 静态资源 ├── doc/ # 文档和示例 └── package.json # Node.js 依赖配置 ``` ## 🛠️ 开发指南 ### 本地开发 ```bash # 启动开发服务器 npm run tauri dev # 前端热重载 npm run dev # 类型检查 npm run type-check # 代码格式化 npm run format ``` ### 构建和发布 ```bash # 构建生产版本 npm run tauri build # 构建前端(仅前端) npm run build # 预览构建结果 npm run preview ``` ### 代码规范 - 使用 **ESLint** 进行代码检查 - 遵循 **Vue 3 Composition API** 风格 - 组件采用 **`