feat: 更新 AI 模型列表和导出功能优化

- 更新版本号至 2.2.5
- 豆包提供商:新增模型映射,支持中文显示名称(豆包2.0系列、Seed系列等)
- Gemini 提供商:新增 Gemini 3.1 Pro 模型支持
- Kimi 提供商:新增模型映射,支持中文显示名称(Kimi 2.5、K2系列、Moonshot系列)
- 智谱AI 提供商:新增 GLM-5 模型支持
- 导出服务:移除 exportFiles 选项,简化文件导出逻辑
- HTML 导出生成器:优化文件处理和媒体路径映射
- 更新 WhatsNewModal 和 ExportPage 组件以适配新功能
- 更新 Electron 类型定义以支持新的导出选项
This commit is contained in:
ILoveBingLu
2026-02-23 05:31:44 +08:00
parent 85adc0aeb1
commit 2a7405b3f9
11 changed files with 116 additions and 143 deletions
+15 -15
View File
@@ -8,16 +8,16 @@ interface WhatsNewModalProps {
function WhatsNewModal({ onClose, version }: WhatsNewModalProps) {
const updates = [
// {
// icon: <Package size={20} />,
// title: '媒体导出',
// desc: '导出聊天记录时可同时导出图片、视频、表情包和语音消息。'
// },
// {
// icon: <Image size={20} />,
// title: '图片自动解密',
// desc: '导出时自动解密未缓存的图片,无需提前在密语聊天窗口浏览。'
// },
{
icon: <Package size={20} />,
title: '优化',
desc: '修复并优化部分内容。'
},
{
icon: <Image size={20} />,
title: '聊天内图片',
desc: '支持查看谷歌标准实况图片(iOS端与大疆等实况图片,发送后实况暂不支持)。'
}
// {
// icon: <Mic size={20} />,
// title: '语音导出',
@@ -28,11 +28,11 @@ function WhatsNewModal({ onClose, version }: WhatsNewModalProps) {
// title: '分类导出',
// desc: '导出时可按群聊或个人聊天筛选,支持日期范围过滤。'
// }
{
icon: <Aperture size={20} />,
title: '朋友圈',
desc: '新增朋友圈功能!'
}
// {
// icon: <Aperture size={20} />,
// title: '朋友圈',
// desc: '新增朋友圈功能!'
// }
]
const handleTelegram = () => {
+3 -17
View File
@@ -1,5 +1,5 @@
import { useState, useEffect, useCallback } from 'react'
import { Search, Download, FolderOpen, RefreshCw, Check, FileJson, FileText, Table, Loader2, X, FileSpreadsheet, Database, FileCode, CheckCircle, XCircle, ExternalLink, MessageSquare, Users, User, Filter, Image, Video, CircleUserRound, Smile, Mic, Paperclip } from 'lucide-react'
import { Search, Download, FolderOpen, RefreshCw, Check, FileJson, FileText, Table, Loader2, X, FileSpreadsheet, Database, FileCode, CheckCircle, XCircle, ExternalLink, MessageSquare, Users, User, Filter, Image, Video, CircleUserRound, Smile, Mic } from 'lucide-react'
import DateRangePicker from '../components/DateRangePicker'
import { useTitleBarStore } from '../stores/titleBarStore'
import * as configService from '../services/config'
@@ -33,7 +33,6 @@ interface ExportOptions {
exportVideos: boolean
exportEmojis: boolean
exportVoices: boolean
exportFiles: boolean
}
interface ContactExportOptions {
@@ -87,8 +86,7 @@ function ExportPage() {
exportImages: false,
exportVideos: false,
exportEmojis: false,
exportVoices: false,
exportFiles: false
exportVoices: false
})
// 通讯录导出状态
@@ -428,8 +426,7 @@ function ExportPage() {
exportImages: options.exportImages,
exportVideos: options.exportVideos,
exportEmojis: options.exportEmojis,
exportVoices: options.exportVoices,
exportFiles: options.exportFiles
exportVoices: options.exportVoices
}
if (options.format === 'chatlab' || options.format === 'chatlab-jsonl' || options.format === 'json' || options.format === 'excel' || options.format === 'html') {
@@ -706,16 +703,6 @@ function ExportPage() {
<Mic size={16} style={{ color: 'var(--text-tertiary)' }} />
<span></span>
</label>
<label className="checkbox-item">
<input
type="checkbox"
checked={options.exportFiles}
onChange={e => setOptions(prev => ({ ...prev, exportFiles: e.target.checked }))}
/>
<div className="custom-checkbox"></div>
<Paperclip size={16} style={{ color: 'var(--text-tertiary)' }} />
<span></span>
</label>
</div>
</div>
@@ -973,7 +960,6 @@ function ExportPage() {
{options.exportVideos && <span> · </span>}
{options.exportEmojis && <span> · </span>}
{options.exportVoices && <span> · </span>}
{options.exportFiles && <span> · </span>}
{options.exportAvatars && <span> · </span>}
</div>
{exportProgress.total > 0 && (
-1
View File
@@ -727,7 +727,6 @@ export interface ExportOptions {
dateRange?: { start: number; end: number } | null
exportMedia?: boolean
exportAvatars?: boolean
exportFiles?: boolean
}
export interface ContactExportOptions {