💾 导入与导出
Open WebUI 提供 工具让你备份聊天历史、稍后恢复,或从其他平台迁移对话。
进入导入与导出
- 点击侧边栏左下角的用户名或头像
- 在菜单中选择 Settings
- 进入 Data Controls 标签
- 使用 Import Chats 或 Export Chats 按钮
导出聊天
点击 Export Chats 按钮后,系统会将你的所有对话导出为一个 JSON 文件。该备份包含:
- 所有聊天消息及其元数据
- 每段对话所使用的模型信息
- 时间戳与对话结构
定期备份
建议你定期导出聊天,尤其是在进行重大更新或迁移之前。
导入聊天
点击 Import Chats 按钮并选择一个 JSON 文件,即可恢复对话。Open WebUI 支持导入以下来源:
- Open WebUI 导出文件:来自此前导出的原生 JSON 格式
- ChatGPT 导出文件:来自 OpenAI ChatGPT 的导出对话(会自动识别并转换)
- 自定义 JSON 文件:任何遵循下文预期结构的 JSON 文件
导入行为
- 导入的聊天会追加到现有对话中(不会覆盖已有数据)
- 每个导入聊天都会分配新的唯一 ID,因此重复导入同一文件会产生重复聊天
- 如果是 ChatGPT 导出文件,系统会自动检测格式并完成转换
聊天导入 JSON Schema
导入文件必须是一个JSON 数组,其中每个元素都是聊天对象。系统接受两种格式:标准格式(Open WebUI 导出使用)与旧格式。
标准格式(推荐)
数组中的每个对象都应包含一个 chat 键,用于承载对话数据:
[
{
"chat": {
"title": "My Conversation",
"models": ["llama3.2"],
"history": {
"currentId": "message-id-2",
"messages": {
"message-id-1": {
"id": "message-id-1",
"parentId": null,
"childrenIds": ["message-id-2"],
"role": "user",
"content": "Hello, how are you?",
"timestamp": 1700000000
},
"message-id-2": {
"id": "message-id-2",
"parentId": "message-id-1",
"childrenIds": [],
"role": "assistant",
"content": "I'm doing well, thank you!",
"model": "llama3.2",
"done": true,
"timestamp": 1700000005
}
}
}
},
"meta": {
"tags": ["greeting"]
},
"pinned": false,
"folder_id": null,
"created_at": 1700000000,
"updated_at": 1700000005
}
]旧格式
如果数组中的对象没有 chat 键,那么整个对象会被直接视为聊天数据本身(也就是系统会自动将其包装为 { "chat": <object> }):
[
{
"title": "My Conversation",
"models": ["llama3.2"],
"history": {
"currentId": "message-id-2",
"messages": {
"message-id-1": {
"id": "message-id-1",
"parentId": null,
"childrenIds": ["message-id-2"],
"role": "user",
"content": "Hello!"
},
"message-id-2": {
"id": "message-id-2",
"parentId": "message-id-1",
"childrenIds": [],
"role": "assistant",
"content": "Hi there!",
"model": "llama3.2",
"done": true
}
}
}
}
]