25 Commits

Author SHA1 Message Date
151829296e feat: 图片改为参数截图,支持多次解析并记录解析来源历史 2026-04-28 22:48:56 +08:00
2ef5d0b3d3 data: 统一所有产品发布日期格式为YYYY-MM-DD文本 2026-04-28 18:26:10 +08:00
4b5e70a3bf fix: 修复JSON.stringify语法错误 - images字段重复定义 2026-04-28 17:28:28 +08:00
ea60d4b4c6 feat: 产品字段从类别参数配置动态获取 - 表格列和编辑表单动态生成 2026-04-28 17:23:15 +08:00
e572fbb29b feat: 智能添加根据类别参数字段配置解析 - 支持子类别额外字段 2026-04-28 17:02:59 +08:00
5273cf6f03 data: 为所有类别配置参数字段 - 内置分类和动态分类完整字段定义 2026-04-28 13:09:33 +08:00
3f7a5dd5a1 feat: 参数字段管理功能 - 类别和子类别可配置参数列表 2026-04-28 12:50:10 +08:00
146efdf6bd data: 为各类别产品分配子类别 2026-04-28 12:26:17 +08:00
db5b6bb6c7 feat: 后台管理所有类别数据添加子类别字段和筛选功能 2026-04-28 12:05:21 +08:00
35df07725e feat: 分类和子类别ID自动生成 - 不再需要手动填写ID 2026-04-28 10:53:15 +08:00
867a0a3eaf feat: 内置分类子类别管理功能 - 分类管理中可编辑内置类别的子类别配置 2026-04-28 10:41:41 +08:00
a647179e72 feat: 智能补充参数功能 - 编辑已有产品时上传图片/文本补充缺失字段 2026-04-28 10:09:58 +08:00
438fba347a fix: 添加 GET /api/categories/<id> 单个分类详情API 2026-04-28 09:10:40 +08:00
8066fc4386 chore: 更新版本号到 v1.7.1 2026-04-28 00:28:59 +08:00
9cd9ccd8e0 feat: 子类别管理界面重构,支持可视化增删改
- 添加子类别编辑弹框(subcategoryModal)
- 子类别列表可视化显示(卡片样式)
- 支持添加、编辑、删除子类别
- 表单输入关键特性字段和标签
- 替换原来的JSON文本编辑方式
2026-04-28 00:28:36 +08:00
a9cbd1b2ba chore: 更新版本号到 v1.7.0 2026-04-28 00:17:27 +08:00
685582b7e6 feat: 支持子类别配置和关键特性显示
- 类别数据结构新增 subcategories 字段
- 每个子类别可定义 key_features 和 feature_labels
- 前端模型页面添加子类别选择器
- 表格根据子类别动态显示关键特性列
- 后台管理支持编辑子类别配置(JSON格式)
- 预设了各类别的子类别配置(对话、代码、推理、视觉等)
2026-04-28 00:16:55 +08:00
961322f8ba chore: 更新版本号到 v1.6.0 2026-04-27 19:58:02 +08:00
b40e890e2b feat: 后台管理添加大模型接口配置功能
- 网站配置页面新增 LLM 配置区域
- 支持配置 API 地址、API Key、文本模型、视觉模型
- LLM 配置从 config.json 动态读取
- 不再使用硬编码的 LLM_CONFIG 常量
2026-04-27 19:57:22 +08:00
9525d56ffc fix: 修复f-string花括号转义问题导致的API错误 2026-04-27 18:44:37 +08:00
5433605fec fix: 增强剪贴板粘贴的错误提示,说明HTTPS/localhost限制 2026-04-27 18:40:36 +08:00
b981e30f46 fix: 修复版本号显示 2026-04-27 18:39:41 +08:00
e2d35b6fa0 feat: 支持多图上传和智能解析产品参数
- 新增 /api/parse-images API 预览解析结果
- 智能添加支持多张图片上传和粘贴
- 支持一次解析出多个产品参数
- 所有类别(模型/GPU/CPU/动态分类)都支持图片解析
- 添加 vision_model 配置支持视觉模型
2026-04-27 18:29:06 +08:00
45190980a9 feat: 发布日期、热度、置顶、图片上传功能
- 新增发布日期(publish_date)、热度(views)、置顶(is_pinned)字段
- 后台管理表格显示新字段和置顶操作按钮
- 前端默认排序:置顶优先 → 发布日期最新
- 新增多种排序选项:发布日期、热度、名称等
- 新增图片上传API(支持多图上传)
- 后台管理表单添加图片上传组件(支持文件选择和粘贴)
- 数据创建时自动初始化新字段
2026-04-20 21:25:57 +08:00
627148a87f feat: 知识库数据添加显示开关功能
- knowledge API添加visible字段支持
- 前台过滤隐藏的知识条目(默认)
- 后台显示全部知识条目(all=1)
- 新增toggle knowledge visible API
- 知识库表格增加显示开关列
2026-04-11 02:32:10 +08:00
20 changed files with 7585 additions and 436 deletions

1035
app.py

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

14
data/config.json Normal file
View File

@@ -0,0 +1,14 @@
{
"site_name": "ParamHub",
"site_subtitle": "参数百科",
"footer_text": "ParamHub - 模型与硬件参数速查平台",
"icp_number": "",
"copyright_year": "2026",
"contact_email": "wlq@tphai.com",
"github_url": "",
"llm_base_url": "https://open.bigmodel.cn/api/paas/v4",
"llm_api_key": "2259e33a1357460abe17919aaf81e73d.K44a8LPQTmFM5PKm",
"llm_model": "glm-4.5-air",
"llm_vision_model": "glm-4.6v",
"updated_at": "2026-04-27 23:58:26"
}

View File

@@ -1,10 +1,150 @@
[
{"id": "epyc9654", "name": "AMD EPYC 9654", "manufacturer": "AMD", "architecture": "Zen 4", "cores": 96, "threads": 192, "base_clock_ghz": 2.4, "boost_clock_ghz": 3.7, "l3_cache_mb": 384, "tdp_watts": 360, "price_usd": 11000, "release_year": 2022, "description": "AMD顶级服务器CPU96核心"},
{"id": "epyc9554", "name": "AMD EPYC 9554", "manufacturer": "AMD", "architecture": "Zen 4", "cores": 64, "threads": 128, "base_clock_ghz": 3.1, "boost_clock_ghz": 3.8, "l3_cache_mb": 256, "tdp_watts": 360, "price_usd": 6800, "release_year": 2022, "description": "64核心高性能服务器CPU"},
{"id": "epyc9454", "name": "AMD EPYC 9454", "manufacturer": "AMD", "architecture": "Zen 4", "cores": 48, "threads": 96, "base_clock_ghz": 2.75, "boost_clock_ghz": 3.8, "l3_cache_mb": 192, "tdp_watts": 290, "price_usd": 4100, "release_year": 2022, "description": "48核心服务器CPU"},
{"id": "xeonw9359x", "name": "Intel Xeon w9-3595X", "manufacturer": "Intel", "architecture": "Sapphire Rapids", "cores": 56, "threads": 112, "base_clock_ghz": 1.9, "boost_clock_ghz": 4.8, "l3_cache_mb": 105, "tdp_watts": 350, "price_usd": 6200, "release_year": 2023, "description": "Intel顶级工作站CPU"},
{"id": "xeonw5345", "name": "Intel Xeon w5-3435", "manufacturer": "Intel", "architecture": "Sapphire Rapids", "cores": 24, "threads": 48, "base_clock_ghz": 3.1, "boost_clock_ghz": 4.7, "l3_cache_mb": 45, "tdp_watts": 230, "price_usd": 950, "release_year": 2023, "description": "中端工作站CPU"},
{"id": "ryzen97950x", "name": "AMD Ryzen 9 7950X", "manufacturer": "AMD", "architecture": "Zen 4", "cores": 16, "threads": 32, "base_clock_ghz": 4.5, "boost_clock_ghz": 5.7, "l3_cache_mb": 64, "tdp_watts": 170, "price_usd": 550, "release_year": 2022, "description": "顶级消费级CPU适合AI开发"},
{"id": "ryzen97950x3d", "name": "AMD Ryzen 9 7950X3D", "manufacturer": "AMD", "architecture": "Zen 4", "cores": 16, "threads": 32, "base_clock_ghz": 4.2, "boost_clock_ghz": 5.7, "l3_cache_mb": 144, "tdp_watts": 120, "price_usd": 700, "release_year": 2023, "description": "带3D V-Cache游戏性能更强"},
{"id": "intel14900k", "name": "Intel Core i9-14900K", "manufacturer": "Intel", "architecture": "Raptor Lake Refresh", "cores": 24, "threads": 32, "base_clock_ghz": 3.2, "boost_clock_ghz": 6.0, "l3_cache_mb": 36, "tdp_watts": 125, "price_usd": 580, "release_year": 2023, "description": "Intel顶级消费级CPU"}
{
"id": "epyc9654",
"name": "AMD EPYC 9654",
"manufacturer": "AMD",
"architecture": "Zen 4",
"cores": 96,
"threads": 192,
"base_clock_ghz": 2.4,
"boost_clock_ghz": 3.7,
"l3_cache_mb": 384,
"tdp_watts": 360,
"price_usd": 11000,
"description": "AMD顶级服务器CPU96核心",
"subcategory_id": "server",
"publish_date": "2022-01-01"
},
{
"id": "epyc9554",
"name": "AMD EPYC 9554",
"manufacturer": "AMD",
"architecture": "Zen 4",
"cores": 64,
"threads": 128,
"base_clock_ghz": 3.1,
"boost_clock_ghz": 3.8,
"l3_cache_mb": 256,
"tdp_watts": 360,
"price_usd": 6800,
"description": "64核心高性能服务器CPU",
"subcategory_id": "server",
"publish_date": "2022-01-01"
},
{
"id": "epyc9454",
"name": "AMD EPYC 9454",
"manufacturer": "AMD",
"architecture": "Zen 4",
"cores": 48,
"threads": 96,
"base_clock_ghz": 2.75,
"boost_clock_ghz": 3.8,
"l3_cache_mb": 192,
"tdp_watts": 290,
"price_usd": 4100,
"description": "48核心服务器CPU",
"subcategory_id": "server",
"publish_date": "2022-01-01"
},
{
"id": "xeonw9359x",
"name": "Intel Xeon w9-3595X",
"manufacturer": "Intel",
"architecture": "Sapphire Rapids",
"cores": 56,
"threads": 112,
"base_clock_ghz": 1.9,
"boost_clock_ghz": 4.8,
"l3_cache_mb": 105,
"tdp_watts": 350,
"price_usd": 6200,
"description": "Intel顶级工作站CPU",
"subcategory_id": "server",
"publish_date": "2023-01-01"
},
{
"id": "xeonw5345",
"name": "Intel Xeon w5-3435",
"manufacturer": "Intel",
"architecture": "Sapphire Rapids",
"cores": 24,
"threads": 48,
"base_clock_ghz": 3.1,
"boost_clock_ghz": 4.7,
"l3_cache_mb": 45,
"tdp_watts": 230,
"price_usd": 950,
"description": "中端工作站CPU",
"subcategory_id": "server",
"publish_date": "2023-01-01"
},
{
"id": "ryzen97950x",
"name": "AMD Ryzen 9 7950X",
"manufacturer": "AMD",
"architecture": "Zen 4",
"cores": 16,
"threads": 32,
"base_clock_ghz": 4.5,
"boost_clock_ghz": 5.7,
"l3_cache_mb": 64,
"tdp_watts": 170,
"price_usd": 550,
"description": "顶级消费级CPU适合AI开发",
"subcategory_id": "desktop",
"publish_date": "2022-01-01"
},
{
"id": "ryzen97950x3d",
"name": "AMD Ryzen 9 7950X3D",
"manufacturer": "AMD",
"architecture": "Zen 4",
"cores": 16,
"threads": 32,
"base_clock_ghz": 4.2,
"boost_clock_ghz": 5.7,
"l3_cache_mb": 144,
"tdp_watts": 120,
"price_usd": 700,
"description": "带3D V-Cache游戏性能更强",
"subcategory_id": "mobile",
"publish_date": "2023-01-01"
},
{
"id": "intel14900k",
"name": "Intel Core i9-14900K",
"manufacturer": "Intel",
"architecture": "Raptor Lake Refresh",
"cores": 24,
"threads": 32,
"base_clock_ghz": 3.2,
"boost_clock_ghz": 6.0,
"l3_cache_mb": 36,
"tdp_watts": 125,
"price_usd": 580,
"description": "Intel顶级消费级CPU",
"subcategory_id": "desktop",
"publish_date": "2023-01-01"
},
{
"name": "AMD 锐龙 AI 9 H 365",
"manufacturer": "AMD",
"architecture": "Zen 5, Zen 5c",
"cores": 10,
"threads": 20,
"base_clock_ghz": 2.0,
"boost_clock_ghz": 5.0,
"l3_cache_mb": 24,
"tdp_watts": 28,
"description": "AMD 锐龙 AI 处理器助力打造卓越 AI PC",
"id": "52af6cf2dc28",
"created_at": "2026-04-20 23:19:20",
"visible": true,
"raw_text": "AMD 锐龙 AI 9 H 365\nAMD 锐龙 AI 处理器助力打造卓越 AI PC\n\n \n全部折叠\n一般规格\n名称\nAMD 锐龙 AI 9 H 365\n产品系列\n锐龙\n系列\n锐龙 AI 300 系列\n外形规格\n笔记本电脑 , 台式机\nAMD PRO 技术\n否\n区域供货状况\n中国\n原代号\nStrix Point\n处理器架构\n4x Zen 5 , 6x Zen 5c\nCPU 核心数\n10\n多线程 (SMT)\n是\n线程数\n20\n最高加速时钟频率 \n最高可达 5 GHz\nMax Zen5c Clock \n最高可达 3.3 GHz\n基准时钟频率 \n2 GHz\nZen5 Base Clock\n2 GHz\nZen5c Base Clock\n2 GHz\nL2 高速缓存\n10 MB\nL3 高速缓存\n24 MB\n默认热设计功耗 (TDP)\n28W\nAMD 可配置热设计功耗 (cTDP)\n15-54W\nCPU 核心的处理器工艺\nTSMC 4nm FinFET\n封装芯片计数\n1\nAMD EXPO™ 内存超频技术\n是\n精准频率提升 (PBO)\n是\n曲线优化器电压偏移\n是\nCPU 平台\nFP8\n支持的扩展\nAES , AMD-V , AVX , AVX2 , AVX512 , FMA3 , MMX-plus , SHA , SSE , SSE2 , SSE3 , SSE4.1 , SSE4.2 , SSE4A , SSSE3 , x86-64\n最高工作温度 (Tjmax)\n100°C\n*支持的操作系统\nWindows 11 - 64-Bit Edition , RHEL x86 64-Bit , Ubuntu x86 64-Bit\n连接\nNative USB 4 (40Gbps)\n2\nNative USB 3.2 Gen 2 (10Gbps)\n2\nNative USB 2.0 (480Mbps)\n4\nPCI Express® Version\nPCIe® 4.0\n原生 PCIe® 通道 (总共/可用)\n16 , 16\nNVMe 支持\nBoot , RAID0 , RAID1\n系统内存类型\nDDR5 (FP8) , LPDDR5X (FP8)\n内存通道数\n2\n最大内存\n256 GB\n最高内存速度\n2x2R\tDDR5-5600, LPDDR5x-8000\n支持 ECC\n否\n显卡功能\n显卡型号\nAMD Radeon™ 880M\n显卡核心数\n12\n显卡频率\n2900 MHz\nDirectX® 版本\n12\nDisplayPort™ 版本\n2.1\nDisplayPort 扩展功能\nAdaptive-Sync , HDR Metadata , UHBR10\nDisplayPort 最高刷新率 (SDR)\n7680x4320 @ 60Hz , 3840x2160 @ 240Hz , 3440x1440 @ 360Hz , 2560x1440 @ 480Hz , 1920x1080 @ 600Hz\nDisplayPort 最高刷新率 (HDR)\n7680x4320 @ 60Hz , 3840x2160 @ 240Hz , 3440x1440 @ 360Hz , 2560x1440 @ 480Hz , 1920x1080 @ 600Hz\nHDMI® 版本\n2.1\n支持的 HDCP 版本\n2.3\nUSB Type-C® DisplayPort™ 备用模式\n是\n支持多个显示器\n是\n显示器个数上限\n4\nAMD FreeSync™\n是\n无线显示\nMiracast\n最大视频编码带宽 (SDR)\n1080p630 8bpc H.264, 1440p373 8bpc H.264, 2160p175 8bpc H.264, 1080p630 8bpc H.265, 1440p373 8bpc H.265, 2160p175 8bpc H.265, 4320p43 8bpc H.265, 1080p864 8/10bpc AV1, 1440p513 8/10bpc AV1, 2160p240 8/10bpc AV1, 4320p60 8/10bpc AV1\n\n最大视频解码带宽\n1080p60 8bpc MPEG2, 1080p60 8bpc VC1, 1080p786 8/10bpc VP9, 2160p196 8/10bpc VP9, 4320p49 8/10bpc VP9, 1080p1200 8bpc H.264, 2160p300 8bpc H.264, 4320p75 8bpc H.264, 1080p786 8/10bpc H.265, 2160p196 8/10bpc H.265, 4320p49 8/10bpc H.265, 1080p960 8/10bpc\n\nAMD SmartShift MAX\n是\nAMD 显存智取技术\n支持\nAI 引擎性能\nAMD Ryzen™ AI\n支持\nOverall TOPS\n最高可达 73 TOPS\nNPU TOPS\n最高可达 50 TOPS\n产品 ID\nTray 产品 ID\n100-000001530 (FP8)\n安全\nAMD 增强病毒防护 (NX bit)\n是",
"publish_date": "2022-01-01",
"views": 0,
"is_pinned": false,
"subcategory_id": "mobile"
}
]

View File

@@ -1,12 +1,209 @@
[
{"id": "h100", "name": "NVIDIA H100", "manufacturer": "NVIDIA", "architecture": "Hopper", "cuda_cores": 16896, "tensor_cores": 528, "memory_gb": 80, "memory_bandwidth_gbs": 3352, "fp32_tflops": 67, "fp16_tflops": 1979, "int8_perf_tops": 3958, "price_usd": 30000, "release_year": 2022, "description": "数据中心顶级GPU专为AI训练设计"},
{"id": "a100", "name": "NVIDIA A100", "manufacturer": "NVIDIA", "architecture": "Ampere", "cuda_cores": 6912, "tensor_cores": 432, "memory_gb": 80, "memory_bandwidth_gbs": 2039, "fp32_tflops": 19.5, "fp16_tflops": 312, "int8_perf_tops": 624, "price_usd": 10000, "release_year": 2020, "description": "数据中心主力GPUAI训练推理通用"},
{"id": "a10040g", "name": "NVIDIA A100 40GB", "manufacturer": "NVIDIA", "architecture": "Ampere", "cuda_cores": 6912, "tensor_cores": 432, "memory_gb": 40, "memory_bandwidth_gbs": 1555, "fp32_tflops": 19.5, "fp16_tflops": 312, "int8_perf_tops": 624, "price_usd": 6000, "release_year": 2020, "description": "A100 40GB版本性价比更高"},
{"id": "l40s", "name": "NVIDIA L40S", "manufacturer": "NVIDIA", "architecture": "Ada Lovelace", "cuda_cores": 18176, "tensor_cores": 568, "memory_gb": 48, "memory_bandwidth_gbs": 864, "fp32_tflops": 91.6, "fp16_tflops": 362, "int8_perf_tops": 724, "price_usd": 7000, "release_year": 2023, "description": "新一代数据中心GPU推理优化"},
{"id": "rtx4090", "name": "NVIDIA RTX 4090", "manufacturer": "NVIDIA", "architecture": "Ada Lovelace", "cuda_cores": 16384, "tensor_cores": 512, "memory_gb": 24, "memory_bandwidth_gbs": 1008, "fp32_tflops": 82.6, "fp16_tflops": 330, "int8_perf_tops": 660, "price_usd": 1600, "release_year": 2022, "description": "消费级最强GPU适合个人AI开发"},
{"id": "rtx4090d", "name": "NVIDIA RTX 4090D", "manufacturer": "NVIDIA", "architecture": "Ada Lovelace", "cuda_cores": 14592, "tensor_cores": 456, "memory_gb": 24, "memory_bandwidth_gbs": 1008, "fp32_tflops": 73.5, "fp16_tflops": 294, "int8_perf_tops": 588, "price_usd": 1400, "release_year": 2024, "description": "4090中国特供版性能略降"},
{"id": "rtx3090", "name": "NVIDIA RTX 3090", "manufacturer": "NVIDIA", "architecture": "Ampere", "cuda_cores": 10496, "tensor_cores": 328, "memory_gb": 24, "memory_bandwidth_gbs": 936, "fp32_tflops": 35.6, "fp16_tflops": 142, "int8_perf_tops": 284, "price_usd": 1200, "release_year": 2020, "description": "上一代旗舰,性价比高"},
{"id": "rtx3080", "name": "NVIDIA RTX 3080", "manufacturer": "NVIDIA", "architecture": "Ampere", "cuda_cores": 8704, "tensor_cores": 272, "memory_gb": 10, "memory_bandwidth_gbs": 760, "fp32_tflops": 29.8, "fp16_tflops": 119, "int8_perf_tops": 238, "price_usd": 700, "release_year": 2020, "description": "中高端消费级GPU"},
{"id": "v100", "name": "NVIDIA V100", "manufacturer": "NVIDIA", "architecture": "Volta", "cuda_cores": 5120, "tensor_cores": 640, "memory_gb": 32, "memory_bandwidth_gbs": 900, "fp32_tflops": 14.8, "fp16_tflops": 118, "int8_perf_tops": 236, "price_usd": 4000, "release_year": 2017, "description": "上一代数据中心GPU仍有价值"},
{"id": "mi300x", "name": "AMD MI300X", "manufacturer": "AMD", "architecture": "CDNA 3", "cuda_cores": 0, "tensor_cores": 304, "memory_gb": 192, "memory_bandwidth_gbs": 5300, "fp32_tflops": 81.7, "fp16_tflops": 1307, "int8_perf_tops": 2614, "price_usd": 15000, "release_year": 2023, "description": "AMD最强AI GPU192GB显存"}
{
"id": "h100",
"name": "NVIDIA H100",
"manufacturer": "NVIDIA",
"architecture": "Hopper",
"cuda_cores": 16896,
"tensor_cores": 528,
"memory_gb": 80,
"memory_bandwidth_gbs": 3352,
"fp32_tflops": 67,
"fp16_tflops": 1979,
"int8_perf_tops": 3958,
"price_usd": 30000,
"description": "数据中心顶级GPU专为AI训练设计",
"subcategory_id": "datacenter",
"publish_date": "2022-01-01"
},
{
"id": "a100",
"name": "NVIDIA A100",
"manufacturer": "NVIDIA",
"architecture": "Ampere",
"cuda_cores": 6912,
"tensor_cores": 432,
"memory_gb": 80,
"memory_bandwidth_gbs": 2039,
"fp32_tflops": 19.5,
"fp16_tflops": 312,
"int8_perf_tops": 624,
"price_usd": 10000,
"description": "数据中心主力GPUAI训练推理通用",
"subcategory_id": "datacenter",
"publish_date": "2020-01-01"
},
{
"id": "a10040g",
"name": "NVIDIA A100 40GB",
"manufacturer": "NVIDIA",
"architecture": "Ampere",
"cuda_cores": 6912,
"tensor_cores": 432,
"memory_gb": 40,
"memory_bandwidth_gbs": 1555,
"fp32_tflops": 19.5,
"fp16_tflops": 312,
"int8_perf_tops": 624,
"price_usd": 6000,
"description": "A100 40GB版本性价比更高",
"subcategory_id": "datacenter",
"publish_date": "2020-01-01"
},
{
"id": "l40s",
"name": "NVIDIA L40S",
"manufacturer": "NVIDIA",
"architecture": "Ada Lovelace",
"cuda_cores": 18176,
"tensor_cores": 568,
"memory_gb": 48,
"memory_bandwidth_gbs": 864,
"fp32_tflops": 91.6,
"fp16_tflops": 362,
"int8_perf_tops": 724,
"price_usd": 7000,
"description": "新一代数据中心GPU推理优化",
"subcategory_id": "datacenter",
"publish_date": "2023-01-01"
},
{
"id": "rtx4090",
"name": "NVIDIA RTX 4090",
"manufacturer": "NVIDIA",
"architecture": "Ada Lovelace",
"cuda_cores": 16384,
"tensor_cores": 512,
"memory_gb": 24,
"memory_bandwidth_gbs": 1008,
"fp32_tflops": 82.6,
"fp16_tflops": 330,
"int8_perf_tops": 660,
"price_usd": 1600,
"description": "消费级最强GPU适合个人AI开发",
"subcategory_id": "gaming",
"publish_date": "2022-01-01"
},
{
"id": "rtx4090d",
"name": "NVIDIA RTX 4090D",
"manufacturer": "NVIDIA",
"architecture": "Ada Lovelace",
"cuda_cores": 14592,
"tensor_cores": 456,
"memory_gb": 24,
"memory_bandwidth_gbs": 1008,
"fp32_tflops": 73.5,
"fp16_tflops": 294,
"int8_perf_tops": 588,
"price_usd": 1400,
"description": "4090中国特供版性能略降",
"subcategory_id": "gaming",
"publish_date": "2024-01-01"
},
{
"id": "rtx3090",
"name": "NVIDIA RTX 3090",
"manufacturer": "NVIDIA",
"architecture": "Ampere",
"cuda_cores": 10496,
"tensor_cores": 328,
"memory_gb": 24,
"memory_bandwidth_gbs": 936,
"fp32_tflops": 35.6,
"fp16_tflops": 142,
"int8_perf_tops": 284,
"price_usd": 1200,
"description": "上一代旗舰,性价比高",
"subcategory_id": "gaming",
"publish_date": "2020-01-01"
},
{
"id": "rtx3080",
"name": "NVIDIA RTX 3080",
"manufacturer": "NVIDIA",
"architecture": "Ampere",
"cuda_cores": 8704,
"tensor_cores": 272,
"memory_gb": 10,
"memory_bandwidth_gbs": 760,
"fp32_tflops": 29.8,
"fp16_tflops": 119,
"int8_perf_tops": 238,
"price_usd": 700,
"description": "中高端消费级GPU",
"subcategory_id": "gaming",
"publish_date": "2020-01-01"
},
{
"id": "v100",
"name": "NVIDIA V100",
"manufacturer": "NVIDIA",
"architecture": "Volta",
"cuda_cores": 5120,
"tensor_cores": 640,
"memory_gb": 32,
"memory_bandwidth_gbs": 900,
"fp32_tflops": 14.8,
"fp16_tflops": 118,
"int8_perf_tops": 236,
"price_usd": 4000,
"description": "上一代数据中心GPU仍有价值",
"subcategory_id": "datacenter",
"publish_date": "2017-01-01"
},
{
"id": "mi300x",
"name": "AMD MI300X",
"manufacturer": "AMD",
"architecture": "CDNA 3",
"cuda_cores": 0,
"tensor_cores": 304,
"memory_gb": 192,
"memory_bandwidth_gbs": 5300,
"fp32_tflops": 81.7,
"fp16_tflops": 1307,
"int8_perf_tops": 2614,
"price_usd": 15000,
"description": "AMD最强AI GPU192GB显存",
"subcategory_id": "datacenter",
"publish_date": "2023-01-01"
},
{
"name": "RTX 6000D",
"manufacturer": "NVIDIA",
"memory_gb": 84,
"cuda_cores": 19968,
"description": "NVIDIA为中国市场定制的全新工作站显卡搭载84GB GDDR7显存、19968个CUDA核心采用被动散热设计专为服务器机箱风道优化。显存总线为448位核心频率为2430MHz在Geekbench 6 OpenCL测试中获得390,656分。",
"id": "f56b2de6fac4",
"created_at": "2026-04-20 18:19:14",
"visible": true,
"raw_text": "据tweaktown报道NVIDIA为中国市场定制的全新工作站显卡RTX 6000D近日迎来首度拆解。该卡搭载84GB GDDR7显存、19968个CUDA核心采用被动散热设计专为服务器机箱风道优化。\n\n\n相较于满血RTX PRO 600096GB GDDR7/512-bit中国特供版RTX 6000D在规格上进行了多处调整。国内团队“技数犬”发布了拆解视频。\n\n据了解RTX 6000D为无风扇被动散热设计完全依靠机箱气流降温。\n\nRTX 6000D搭载28颗VRAM模块总计84GB GDDR7显存显存总线为448位相比RTX PRO 6000的96GB/512位有所减少。\n\nRTX 6000D GPU 核心为156 SM单元19,968个CUDA核心比RTX PRO 6000少约17%。\n\nRTX 6000D核心频率为2430MHzRTX PRO 6000为2600MHzTDP暂未公布。性能方面RTX 6000D在Geekbench 6 OpenCL测试中获得390,656分低于RTX PRO 6000的4550万分。",
"currency": "CNY",
"price_usd": 45000,
"updated_at": "2026-04-28 11:56:48",
"subcategory_id": "professional",
"views": 0,
"images": [],
"publish_date": "2024-01-01"
},
{
"name": "RTX PRO 6000",
"description": "这款专业显卡基于 GB202 GPU拥有 24064 个 CUDA 核心188 个 SM运行频率达 2,617 MHz并配备 96 GB 支持 ECC 校验的 GDDR7 显存。\n\n相比之下面向游戏市场的旗舰显卡 RTX 5090 虽同样基于 GB202 ,但其 CUDA 核心数量缩减至 21,760 个,频率为 2,410 MHz显存容量为 32 GB。\n\n96G超大显存RTX PRO 6000Blackwell初次跑分略逊于RTX 5090\n其测试平台采用了华硕 Pro WS WRX80E-SAGE SE WIFI 主板、AMD 锐龙 Threadripper PRO 3975WX 处理器、512 GB 内存。\n\n在 Geekbench 6.4.0 上,其测试平台 OpenCL 得分仅 368219 分,略低于 RTX 5090 的 376,858 分,差距约 2.3%,外媒认为这主要是由于 RTX PRO 6000 缺乏正式版驱动导致,且显卡功耗可能受限。\n\nRTX PRO 6000 系列将提供两种版本分别为适用于紧凑型机箱规格相同的Max-Q 工作站版但TDP 功耗限制在 300W以及支持最高600W TDP的标准版可满足高强度计算需求。",
"id": "d246301f2032",
"created_at": "2026-04-20 18:21:00",
"visible": true,
"raw_text": "这款专业显卡基于 GB202 GPU拥有 24064 个 CUDA 核心188 个 SM运行频率达 2,617 MHz并配备 96 GB 支持 ECC 校验的 GDDR7 显存。\n\n相比之下面向游戏市场的旗舰显卡 RTX 5090 虽同样基于 GB202 ,但其 CUDA 核心数量缩减至 21,760 个,频率为 2,410 MHz显存容量为 32 GB。\n\n96G超大显存RTX PRO 6000Blackwell初次跑分略逊于RTX 5090\n其测试平台采用了华硕 Pro WS WRX80E-SAGE SE WIFI 主板、AMD 锐龙 Threadripper PRO 3975WX 处理器、512 GB 内存。\n\n在 Geekbench 6.4.0 上,其测试平台 OpenCL 得分仅 368219 分,略低于 RTX 5090 的 376,858 分,差距约 2.3%,外媒认为这主要是由于 RTX PRO 6000 缺乏正式版驱动导致,且显卡功耗可能受限。\n\nRTX PRO 6000 系列将提供两种版本分别为适用于紧凑型机箱规格相同的Max-Q 工作站版但TDP 功耗限制在 300W以及支持最高600W TDP的标准版可满足高强度计算需求。",
"architecture": "GB202",
"memory_gb": 96,
"cuda_cores": 24064,
"currency": "CNY",
"price_usd": 65000,
"updated_at": "2026-04-28 11:56:38",
"manufacturer": "NVIDIA",
"subcategory_id": "professional",
"views": 0,
"images": [],
"publish_date": "2020-01-01"
}
]

View File

@@ -2,11 +2,16 @@
{
"name": "比亚迪宋plus dmi 2021款",
"brand": "比亚迪",
"price": "18.87",
"price": 18.87,
"year": "2021",
"category_id": "021dc76d36be",
"id": "3d20dbcd4bdd",
"created_at": "2026-04-09 10:09:56"
"created_at": "2026-04-09 10:09:56",
"subcategory_id": "suv",
"views": 0,
"images": [],
"updated_at": "2026-04-28 12:32:13",
"publish_date": "2021-01-01"
},
{
"name": "秦PLUS",
@@ -29,6 +34,8 @@
"category_id": "021dc76d36be",
"created_at": "2026-04-11 02:03:45",
"visible": true,
"raw_text": "秦PLUS的外观设计极具现代感和运动气息前脸采用了家族化设计语言标志性的大尺寸进气格栅占据了前脸的大部分空间搭配锐利的LED大灯组营造出强烈的视觉冲击力。车身线条流畅腰线从车头贯穿至车尾增强了整车的运动感。车尾部分简洁大方的设计与前脸相呼应整体风格时尚而不失稳重。\n\n上海秦PLUS优惠促销最新报价5.98万!轻松开新车\n\n秦PLUS拥有4780*1837*1515mm的长宽高尺寸和2718mm的轴距赋予其宽敞的内部空间。车侧线条流畅且动感十足从前轮距1580mm到后轮距1590mm车轮布局合理增强了车辆的稳定性和操控性。配备的225/60 R16轮胎规格匹配独特风格的轮圈为车辆增添了一抹动感与时尚的气息。\n\n上海秦PLUS优惠促销最新报价5.98万!轻松开新车\n\n秦PLUS的内饰风格简洁大气给人以科技感和舒适感。中控台布局合理配备了10.1英寸的中控屏幕支持语音识别控制系统可轻松操作多媒体系统、导航、电话和空调等功能。方向盘采用皮质材料手感舒适支持手动上下和前后调节方便驾驶员调整到最佳驾驶姿势。座椅采用仿皮材质主驾驶座椅具备前后调节、靠背调节和高低调节功能而副驾驶座椅则支持前后调节和靠背调节确保了乘客的舒适度。后排座椅可以按比例放倒增加储物空间同时车内还配备了USB和Type-C接口方便乘客为电子设备充电。\n\n上海秦PLUS优惠促销最新报价5.98万!轻松开新车\n\n秦PLUS搭载了一台1.5L 101马力的L4发动机最大功率为74kW最大扭矩为126N·m。与之匹配的是E-CVT无级变速器这使得车辆在提供平稳的动力输出的同时还能有效降低油耗。\n\n汽车之家车主@天艺风云 表示外观设计是他当初选择秦PLUS的原因之一。他赞赏整体造型时尚大气龙脸设计搭配犀利的大灯辨识度极高。车身线条流畅溜背式造型增添了几分运动感。全新的“龙鳞辉熠”格栅精致又霸气每次停车都有人问这是什么车外观确实很吸引人。"
"raw_text": "秦PLUS的外观设计极具现代感和运动气息前脸采用了家族化设计语言标志性的大尺寸进气格栅占据了前脸的大部分空间搭配锐利的LED大灯组营造出强烈的视觉冲击力。车身线条流畅腰线从车头贯穿至车尾增强了整车的运动感。车尾部分简洁大方的设计与前脸相呼应整体风格时尚而不失稳重。\n\n上海秦PLUS优惠促销最新报价5.98万!轻松开新车\n\n秦PLUS拥有4780*1837*1515mm的长宽高尺寸和2718mm的轴距赋予其宽敞的内部空间。车侧线条流畅且动感十足从前轮距1580mm到后轮距1590mm车轮布局合理增强了车辆的稳定性和操控性。配备的225/60 R16轮胎规格匹配独特风格的轮圈为车辆增添了一抹动感与时尚的气息。\n\n上海秦PLUS优惠促销最新报价5.98万!轻松开新车\n\n秦PLUS的内饰风格简洁大气给人以科技感和舒适感。中控台布局合理配备了10.1英寸的中控屏幕支持语音识别控制系统可轻松操作多媒体系统、导航、电话和空调等功能。方向盘采用皮质材料手感舒适支持手动上下和前后调节方便驾驶员调整到最佳驾驶姿势。座椅采用仿皮材质主驾驶座椅具备前后调节、靠背调节和高低调节功能而副驾驶座椅则支持前后调节和靠背调节确保了乘客的舒适度。后排座椅可以按比例放倒增加储物空间同时车内还配备了USB和Type-C接口方便乘客为电子设备充电。\n\n上海秦PLUS优惠促销最新报价5.98万!轻松开新车\n\n秦PLUS搭载了一台1.5L 101马力的L4发动机最大功率为74kW最大扭矩为126N·m。与之匹配的是E-CVT无级变速器这使得车辆在提供平稳的动力输出的同时还能有效降低油耗。\n\n汽车之家车主@天艺风云 表示外观设计是他当初选择秦PLUS的原因之一。他赞赏整体造型时尚大气龙脸设计搭配犀利的大灯辨识度极高。车身线条流畅溜背式造型增添了几分运动感。全新的“龙鳞辉熠”格栅精致又霸气每次停车都有人问这是什么车外观确实很吸引人。",
"subcategory_id": "sedan",
"publish_date": "2023-01-01"
}
]

View File

@@ -0,0 +1,102 @@
[
{
"name": "Osmo Pocket 4",
"brand": "DJI",
"price": 2999,
"specs": "[object Object]",
"id": "597e29af5937",
"category_id": "71fa2b4d818f",
"created_at": "2026-04-28 00:07:01",
"visible": true,
"raw_text": "",
"images": [],
"publish_date": "2023-01-01",
"views": 0,
"is_pinned": false,
"subcategory_id": "90ce312b560d",
"updated_at": "2026-04-28 12:32:38"
},
{
"name": "Osmo Pocket 3",
"brand": "DJI",
"price": 2799,
"specs": "[object Object]",
"id": "ad10ac80827b",
"category_id": "71fa2b4d818f",
"created_at": "2026-04-28 00:07:01",
"visible": true,
"raw_text": "",
"images": [],
"publish_date": "2023-01-01",
"views": 0,
"is_pinned": false,
"subcategory_id": "90ce312b560d",
"updated_at": "2026-04-28 12:32:43"
},
{
"name": "DJI Pocket 2",
"brand": "DJI",
"price": 1999,
"specs": "[object Object]",
"id": "0fde0f10ad96",
"category_id": "71fa2b4d818f",
"created_at": "2026-04-28 00:07:01",
"visible": true,
"raw_text": "",
"images": [],
"publish_date": "2023-01-01",
"views": 0,
"is_pinned": false,
"subcategory_id": "90ce312b560d",
"updated_at": "2026-04-28 12:32:50"
},
{
"name": "EOS R7",
"brand": "佳能 (Canon)",
"year": 2022,
"specs": {
"品牌": "佳能 (Canon)",
"商品编号": "10090975539899",
"店铺": "佳能 (Canon) 数码旗舰店",
"外接电源": "支持外接电源",
"电池类型": "锂离子电池",
"接口": "Wi-Fi 蓝牙 HDMI",
"高清摄像": "4K超高清视频",
"焦点数量": "5915个",
"型号": "EOS R7",
"有效像素": "3250万",
"传感器类型": "CMOS",
"上市时间": "2022-06",
"取景器类型": "电子取景器",
"液晶屏像素": "162万",
"液晶屏尺寸": "3.2英寸",
"液晶屏类型": "侧翻屏 旋转屏",
"最大光圈": "F3.5",
"标准ISO感光度": "ISO 100-32000",
"连拍速度": "电子最高约30张/秒机械最高约15张/秒",
"存储介质": "SD卡 SDHC卡 SDXC卡",
"功能": "Wi-Fi 4K视频 5轴防抖 高速连拍 翻转自拍",
"滤镜直径": "55mm",
"视频拍摄能力": "4K 60P",
"传感器尺寸": "APS-C",
"视频采样": "4:2:2",
"像素": "3000-4000万",
"镜头卡口": "佳能RF卡口",
"RAW照片输出": "14bit",
"适用对象": "入门级",
"类型": "机身"
},
"description": "入门级机身",
"id": "c8c3f124b2ce",
"category_id": "71fa2b4d818f",
"created_at": "2026-04-28 16:38:03",
"visible": true,
"raw_text": "",
"images": [
"/static/uploads/9703a1d16424_1777365365.png"
],
"publish_date": "2022-01-01",
"views": 0,
"is_pinned": false
}
]

81
data/items_phones.json Normal file
View File

@@ -0,0 +1,81 @@
[
{
"name": "华为Pura X Max",
"brand": "华为",
"processor": "麒麟9030 Pro",
"screen_size": "7.6",
"year": 2026,
"description": "全球首款横向阔折叠屏手机内屏7.6英寸WQHD+分辨率外屏5.5英寸搭载麒麟9030 Pro芯片和鸿蒙6系统支持AI眼动翻页和手写笔功能素皮版重约210g",
"id": "5ffe89899549",
"category_id": "phones",
"created_at": "2026-04-28 18:20:59",
"visible": true,
"raw_text": "华为Pura X Max全球首款横向阔折叠屏手机内屏7.6英寸WQHD+分辨率外屏5.5英寸搭载麒麟9030 Pro芯片和鸿蒙6系统支持AI眼动翻页和手写笔功能素皮版重约210g2026年4月20日上市。\n华为 Pura X Max 是华为最新推出的大阔折叠屏手机官方起售价10999 元,提供多种存储版本及配色选择,已在华为商城等渠道正式开售 。更多详情可访问 [华为官网](https://consumer.huawei.com/cn/phones/pura-x-max/specs/) 或 [华为商城](https://item.vmall.com/product/comdetail/index.html?prdId=10086621059876&sbomCode=2601010615007) 。\n版本价格与发售信息\n\n1. 发售时间:于 2026 年 4 月 20 日正式发布4 月 25 日 10:08 正式开售 。\n2. 官方定价:\n - 12GB+256GB10999 元。\n - 12GB+512GB11999 元。\n - 16GB+512GB 典藏版12999 元。\n - 16GB+1TB 典藏版13999 元。\n3. 购买渠道:可通过华为官网及华为商城等官方渠道购买,部分第三方平台价格可能存在波动,建议以官方定价为准 。\n核心硬件配置\n\n1. 屏幕显示:\n - 内屏7.7 英寸折叠柔性 OLED支持 1-120Hz LTPO 2.0 自适应刷新率,分辨率 2584×1828 像素 。\n - 外屏5.4 英寸 OLED支持 1-120Hz LTPO 2.0 自适应刷新率,分辨率 1848×1264 像素 。\n - 亮度:外屏峰值亮度 3500 尼特,内屏峰值亮度 3000 尼特,户外强光下清晰可见 。\n2. 性能系统:\n - 处理器:搭载麒麟 9030 Pro 芯片,整机性能提升 30% 。\n - 操作系统:预装 HarmonyOS 6.1,支持多设备协同 。\n3. 影像系统:\n - 后置5000 万像素超光变主摄F1.4-F4.0+ 1250 万像素超广角 + 5000 万像素潜望长焦 + 第二代红枫原色摄像头 。\n - 前置:内外屏均配备 800 万像素摄像头,支持外屏自拍 。\n4. 续航充电:\n - 电池5300mAh 典型值,支持 66W 有线超级快充及 50W 无线超级快充 。\n折叠形态与 AI 体验\n\n1. 阔折叠设计:\n - 采用√2:1 黄金比例设计,内外屏比例一致,接近 A4 纸对折比例,提升阅读和办公体验 。\n - 机身重量约 229 克,折叠态厚度 11.2mm,展开态厚度 5.2mm,便携性较好 。\n2. AI 功能:\n - 支持小艺伴随式 AI、AI 灵感妙创、AI 眼动翻页等功能,提升交互效率 。\n - 首发支持华为 M-Pen 3 Mini 手写笔适配“天生会画”App支持动态照片手绘 。\n3. 配色材质:\n - 提供幻夜黑、橄榄金、星际蓝、活力橙、零度白 5 款配色 。\n - 外屏采用第二代昆仑玻璃,支持 IP58+IP59 级防尘防水,耐用性增强 。",
"images": [],
"subcategory_id": "",
"publish_date": "2026-01-01",
"views": 0,
"is_pinned": false,
"price": 10999,
"specs": {
"screen": {
"inner": {
"size": 7.7,
"type": "折叠柔性OLED",
"refreshRate": "1-120Hz LTPO 2.0自适应刷新率",
"resolution": "2584×1828像素",
"brightness": 3000
},
"outer": {
"size": 5.4,
"type": "OLED",
"refreshRate": "1-120Hz LTPO 2.0自适应刷新率",
"resolution": "1848×1264像素",
"brightness": 3500
}
},
"performance": {
"processor": "麒麟9030 Pro芯片",
"os": "HarmonyOS 6.1"
},
"memory": {
"ram": [
"12GB",
"16GB"
],
"storage": [
"256GB",
"512GB",
"1TB"
]
},
"camera": {
"rear": "5000万像素超光变主摄 + 1250万像素超广角 + 5000万像素潜望长焦 + 第二代红枫原色摄像头",
"front": "800万像素"
},
"battery": {
"capacity": 5300,
"charging": {
"wired": 66,
"wireless": 50
}
},
"design": {
"weight": 229,
"thickness": {
"folded": 11.2,
"unfolded": 5.2
},
"waterResistance": "IP58+IP59"
},
"colors": [
"幻夜黑",
"橄榄金",
"星际蓝",
"活力橙",
"零度白"
]
},
"updated_at": "2026-04-28 18:29:08"
}
]

View File

@@ -1,9 +1,66 @@
[
{"id": "k001", "title": "什么是参数量?", "category": "ai-models", "icon": "ri-calculator-line", "content": "参数量Parameters是衡量大模型规模的指标表示模型中权重参数的数量。例如 GPT-3 有 175B 参数即约1750亿个参数。", "detail": "参数量决定了模型的容量和表达能力。一般来说,参数量越大,模型能力越强,但也需要更多计算资源。\n\n常见规模分类\n- 小模型:<1B (适合边缘设备)\n- 中模型1B-10B (消费级GPU可运行)\n- 大模型10B-100B (需要多GPU)\n- 超大模型:>100B (需要数据中心)", "order": 1},
{"id": "k002", "title": "什么是上下文长度?", "category": "ai-models", "icon": "ri-text-wrap", "content": "上下文长度Context Length是模型能处理的输入文本最大长度。更长的上下文意味着模型可以理解更长的文档或对话历史。", "detail": "常见长度:\n- 4K传统长度适合简单对话\n- 32K中等长度适合长文档\n- 128K超长上下文如GPT-4 Turbo\n- 200KClaude 3的极限长度", "order": 2},
{"id": "k003", "title": "什么是量化?", "category": "ai-models", "icon": "ri-scales-3-line", "content": "量化Quantization是将模型参数从高精度转换为低精度减少显存占用和计算量。如FP16→INT8→INT4精度损失可控资源节省显著。", "detail": "量化效果:\n- FP32→FP16: 显存减半,精度基本不变\n- FP16→INT8: 显存再减半,精度略降\n- INT8→INT4: 显存再减半,需特殊技术\n\n推荐工具llama.cpp、GPTQ、AWQ等", "order": 3},
{"id": "k004", "title": "什么是MMLU", "category": "ai-models", "icon": "ri-bar-chart-box-line", "content": "MMLUMassive Multitask Language Understanding是评估大模型综合能力的标准测试集覆盖57个学科领域。", "detail": "分数参考:\n- 60-70%入门级如GPT-3\n- 70-80%中等水平如Llama 2 70B\n- 80-90%优秀水平如GPT-4、Claude 3", "order": 4},
{"id": "k005", "title": "如何计算显存需求?", "category": "gpus", "icon": "ri-memory-line", "content": "模型显存需求 ≈ 参数量 × 每参数字节数 × 1.3含KV Cache开销", "detail": "计算公式:\n- FP32: 参数量 × 4字节 × 1.3\n- FP16: 参数量 × 2字节 × 1.3\n- INT8: 参数量 × 1字节 × 1.3\n- INT4: 参数量 × 0.5字节 × 1.3\n\n例如7B模型FP16加载需要约 7 × 2 × 1.3 ≈ 18GB显存", "order": 1},
{"id": "k006", "title": "GPU架构演进", "category": "gpus", "icon": "ri-history-line", "content": "NVIDIA GPU架构从Fermi到Hopper每一代都有显著提升。了解架构有助于选择合适的GPU。", "detail": "主要架构:\n- Volta (2017): V100, 引入Tensor Core\n- Turing (2018): RTX 20系列, RT Core\n- Ampere (2020): A100, RTX 30系列\n- Hopper (2022): H100, FP8支持\n- Ada Lovelace (2022): RTX 40系列, L40S", "order": 2},
{"id": "k007", "title": "CPU核心数选择", "category": "cpus", "icon": "ri-database-2-line", "content": "CPU核心数的选择取决于应用场景。更多核心适合并行任务但单核性能也很重要。", "detail": "场景推荐:\n- 办公/日常4-6核足够\n- 开发/编译8-16核\n- 服务器/虚拟化16-64核\n- 高性能计算64核以上\n\n注意AI训练主要依赖GPUCPU主要用于数据预处理", "order": 1}
{
"id": "k001",
"title": "什么是参数量?",
"category": "ai-models",
"icon": "ri-calculator-line",
"content": "参数量Parameters是衡量大模型规模的指标表示模型中权重参数的数量。例如 GPT-3 有 175B 参数即约1750亿个参数。",
"detail": "参数量决定了模型的容量和表达能力。一般来说,参数量越大,模型能力越强,但也需要更多计算资源。\n\n常见规模分类\n- 小模型:<1B (适合边缘设备)\n- 中模型1B-10B (消费级GPU可运行)\n- 大模型10B-100B (需要多GPU)\n- 超大模型:>100B (需要数据中心)",
"order": 1
},
{
"id": "k002",
"title": "什么是上下文长度?",
"category": "ai-models",
"icon": "ri-text-wrap",
"content": "上下文长度Context Length是模型能处理的输入文本最大长度。更长的上下文意味着模型可以理解更长的文档或对话历史。",
"detail": "常见长度:\n- 4K传统长度适合简单对话\n- 32K中等长度适合长文档\n- 128K超长上下文如GPT-4 Turbo\n- 200KClaude 3的极限长度",
"order": 2
},
{
"id": "k003",
"title": "什么是量化?",
"category": "ai-models",
"icon": "ri-scales-3-line",
"content": "量化Quantization是将模型参数从高精度转换为低精度减少显存占用和计算量。如FP16→INT8→INT4精度损失可控资源节省显著。",
"detail": "量化效果:\n- FP32→FP16: 显存减半,精度基本不变\n- FP16→INT8: 显存再减半,精度略降\n- INT8→INT4: 显存再减半,需特殊技术\n\n推荐工具llama.cpp、GPTQ、AWQ等",
"order": 3
},
{
"id": "k004",
"title": "什么是MMLU",
"category": "ai-models",
"icon": "ri-bar-chart-box-line",
"content": "MMLUMassive Multitask Language Understanding是评估大模型综合能力的标准测试集覆盖57个学科领域。",
"detail": "分数参考:\n- 60-70%入门级如GPT-3\n- 70-80%中等水平如Llama 2 70B\n- 80-90%优秀水平如GPT-4、Claude 3",
"order": 4,
"visible": false
},
{
"id": "k005",
"title": "如何计算显存需求?",
"category": "gpus",
"icon": "ri-memory-line",
"content": "模型显存需求 ≈ 参数量 × 每参数字节数 × 1.3含KV Cache开销",
"detail": "计算公式:\n- FP32: 参数量 × 4字节 × 1.3\n- FP16: 参数量 × 2字节 × 1.3\n- INT8: 参数量 × 1字节 × 1.3\n- INT4: 参数量 × 0.5字节 × 1.3\n\n例如7B模型FP16加载需要约 7 × 2 × 1.3 ≈ 18GB显存",
"order": 1
},
{
"id": "k006",
"title": "GPU架构演进",
"category": "gpus",
"icon": "ri-history-line",
"content": "NVIDIA GPU架构从Fermi到Hopper每一代都有显著提升。了解架构有助于选择合适的GPU。",
"detail": "主要架构:\n- Volta (2017): V100, 引入Tensor Core\n- Turing (2018): RTX 20系列, RT Core\n- Ampere (2020): A100, RTX 30系列\n- Hopper (2022): H100, FP8支持\n- Ada Lovelace (2022): RTX 40系列, L40S",
"order": 2
},
{
"id": "k007",
"title": "CPU核心数选择",
"category": "cpus",
"icon": "ri-database-2-line",
"content": "CPU核心数的选择取决于应用场景。更多核心适合并行任务但单核性能也很重要。",
"detail": "场景推荐:\n- 办公/日常4-6核足够\n- 开发/编译8-16核\n- 服务器/虚拟化16-64核\n- 高性能计算64核以上\n\n注意AI训练主要依赖GPUCPU主要用于数据预处理",
"order": 1
}
]

View File

@@ -9,11 +9,17 @@
"input_price": 0.03,
"output_price": 0.06,
"mmlu": 86.4,
"humaneval": 67.0,
"humaneval": 67,
"is_open_source": false,
"license": "Proprietary",
"description": "OpenAI最强大的多模态大模型",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"updated_at": "2026-04-28 11:57:02",
"raw_text": "\nGPT-4 Turbo version with 128K context length, price is $10 per 1M input tokens",
"subcategory_id": "chat",
"views": 0,
"images": [],
"publish_date": "2023-03-14"
},
{
"id": "gpt4turbo",
@@ -29,7 +35,9 @@
"is_open_source": false,
"license": "Proprietary",
"description": "GPT-4增强版128K上下文",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "chat",
"publish_date": "2023-11-06"
},
{
"id": "gpt35",
@@ -45,7 +53,9 @@
"is_open_source": false,
"license": "Proprietary",
"description": "性价比高的通用模型",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "chat",
"publish_date": "2023-03-01"
},
{
"id": "claude3opus",
@@ -61,7 +71,9 @@
"is_open_source": false,
"license": "Proprietary",
"description": "Anthropic最强模型200K上下文",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "code",
"publish_date": "2024-03-04"
},
{
"id": "claude3sonnet",
@@ -77,7 +89,9 @@
"is_open_source": false,
"license": "Proprietary",
"description": "平衡性能与成本",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "chat",
"publish_date": "2024-03-04"
},
{
"id": "llama270b",
@@ -93,7 +107,9 @@
"is_open_source": true,
"license": "Llama 2 Community",
"description": "Meta开源大模型70B参数",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "chat",
"publish_date": "2023-07-18"
},
{
"id": "llama3",
@@ -109,7 +125,9 @@
"is_open_source": true,
"license": "Llama 3 Community",
"description": "Meta最新开源模型性能接近GPT-4",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "code",
"publish_date": "2024-04-18"
},
{
"id": "mistral7b",
@@ -125,7 +143,9 @@
"is_open_source": true,
"license": "Apache 2.0",
"description": "小巧高效的开源模型",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "chat",
"publish_date": "2023-09-27"
},
{
"id": "mixtral8x7b",
@@ -141,7 +161,9 @@
"is_open_source": true,
"license": "Apache 2.0",
"description": "MoE架构高效推理",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "chat",
"publish_date": "2023-12-11"
},
{
"id": "qwen72b",
@@ -157,7 +179,9 @@
"is_open_source": true,
"license": "Apache 2.0",
"description": "阿里开源大模型,中文能力强",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "chat",
"publish_date": "2024-02-05"
},
{
"id": "deepseekv3",
@@ -173,7 +197,9 @@
"is_open_source": true,
"license": "MIT",
"description": "DeepSeek最新模型性价比极高",
"created_at": "2024-01-01"
"created_at": "2024-01-01",
"subcategory_id": "code",
"publish_date": "2024-12-26"
},
{
"id": "glm4",
@@ -190,6 +216,8 @@
"license": "Proprietary",
"description": "智谱AI大模型中文能力强",
"created_at": "2024-01-01",
"visible": true
"visible": true,
"subcategory_id": "chat",
"publish_date": "2024-01-01"
}
]

3096
logs/app.log Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

File diff suppressed because it is too large Load Diff

View File

@@ -51,9 +51,16 @@
class="w-full pl-12 pr-4 py-2 border border-gray-200 rounded-lg focus:outline-none focus:border-indigo-400"
onkeyup="filterItems()">
</div>
<select id="sortSelect" onchange="sortItems()" class="px-4 py-2 border border-gray-200 rounded-lg focus:outline-none">
<select id="sortBy" onchange="loadItems()" class="px-4 py-2 border border-gray-200 rounded-lg focus:outline-none">
<option value="default">默认排序(置顶优先)</option>
<option value="publish_date">按发布日期</option>
<option value="views">按热度</option>
<option value="name">按名称</option>
<option value="created_at">按时间</option>
<option value="created_at">创建时间</option>
</select>
<select id="sortOrder" onchange="loadItems()" class="px-4 py-2 border border-gray-200 rounded-lg focus:outline-none">
<option value="desc">降序</option>
<option value="asc">升序</option>
</select>
</div>
</div>
@@ -116,7 +123,9 @@
// 加载数据
async function loadItems() {
const res = await fetch(`/api/items/${categoryId}`);
const sortBy = document.getElementById('sortBy').value;
const sortOrder = document.getElementById('sortOrder').value;
const res = await fetch(`/api/items/${categoryId}?sort=${sortBy}&order=${sortOrder}`);
allItems = await res.json();
document.getElementById('itemCount').textContent = allItems.length;
@@ -137,22 +146,28 @@
document.getElementById('itemsList').innerHTML = items.map(item => {
const fields = Object.entries(item)
.filter(([key, val]) => !['id', 'category_id', 'created_at', 'updated_at'].includes(key) && val)
.filter(([key, val]) => !['id', 'category_id', 'created_at', 'updated_at', 'visible', 'is_pinned', 'views', 'publish_date'].includes(key) && val)
.slice(0, 5)
.map(([key, val]) => `<span class="text-gray-500 text-sm">${key}: ${val}</span>`)
.join('<br>');
return `
<div class="border border-gray-200 rounded-lg p-4 hover:shadow-md transition group">
<div class="border border-gray-200 rounded-lg p-4 hover:shadow-md transition group ${item.is_pinned ? 'bg-yellow-50 border-yellow-300' : ''}">
<div class="flex items-start justify-between">
<div>
<h3 class="font-medium text-gray-800 group-hover:text-indigo-600">${item.name || item.title || '未命名'}</h3>
<h3 class="font-medium text-gray-800 group-hover:text-indigo-600 flex items-center gap-2">
${item.is_pinned ? '<i class="ri-pushpin-fill text-yellow-500" title="置顶"></i>' : ''}
${item.name || item.title || '未命名'}
</h3>
<div class="mt-2 space-y-1">
${fields}
</div>
</div>
<div class="text-xs text-gray-400">
${item.created_at ? item.created_at.split(' ')[0] : ''}
<div class="text-right">
<div class="text-xs text-gray-400">
${item.publish_date || (item.created_at ? item.created_at.split(' ')[0] : '')}
</div>
${item.views ? `<div class="text-xs text-gray-400 mt-1"><i class="ri-eye-line"></i> ${item.views}</div>` : ''}
</div>
</div>
</div>
@@ -176,19 +191,6 @@
renderItems(filtered);
}
// 排序
function sortItems() {
const sortBy = document.getElementById('sortSelect').value;
const sorted = [...allItems].sort((a, b) => {
if (sortBy === 'name') {
return (a.name || a.title || '').localeCompare(b.name || b.title || '');
} else {
return (b.created_at || '').localeCompare(a.created_at || '');
}
});
renderItems(sorted);
}
// 初始化
loadNav();
loadItems();

View File

@@ -32,6 +32,19 @@
<p class="text-gray-500 mt-1">AI大模型参数规格一览</p>
</div>
<!-- 子类别选择器 -->
<div class="bg-white rounded-xl shadow-sm p-4 mb-4">
<div class="flex items-center gap-2 mb-2">
<span class="text-sm text-gray-600"><i class="ri-folder-line mr-1"></i>子类别:</span>
</div>
<div class="flex gap-2" id="subcategoryTabs">
<button onclick="selectSubcategory('')" class="px-4 py-2 bg-indigo-600 text-white rounded-lg text-sm" id="subcat-all">
<i class="ri-apps-line mr-1"></i>全部
</button>
<!-- 动态加载子类别 -->
</div>
</div>
<!-- 搜索和筛选 -->
<div class="bg-white rounded-xl shadow-sm p-4 mb-6">
<div class="flex gap-4 items-center">
@@ -42,14 +55,18 @@
oninput="loadModels()">
</div>
<select id="sortBy" class="px-4 py-2 border border-gray-200 rounded-lg" onchange="loadModels()">
<option value="default">默认排序(置顶优先)</option>
<option value="publish_date">按发布日期</option>
<option value="views">按热度</option>
<option value="name">按名称</option>
<option value="parameters">按参数量</option>
<option value="mmlu">按MMLU分数</option>
<option value="context_length">按上下文长度</option>
<option value="created_at">按创建时间</option>
</select>
<select id="sortOrder" class="px-4 py-2 border border-gray-200 rounded-lg" onchange="loadModels()">
<option value="asc">升序</option>
<option value="desc">降序</option>
<option value="asc">升序</option>
</select>
<select id="filterType" class="px-4 py-2 border border-gray-200 rounded-lg" onchange="loadModels()">
<option value="all">全部</option>
@@ -97,12 +114,38 @@
<script>
let allModels = [];
let categories = [];
let currentCategory = null;
let currentSubcategory = '';
// 子类别默认特性配置
const DEFAULT_KEY_FEATURES = {
'chat': ['context_length', 'mmlu', 'input_price', 'output_price'],
'code': ['humaneval', 'context_length', 'input_price'],
'reasoning': ['mmlu', 'context_length', 'parameters'],
'vision': ['context_length', 'mmlu', 'input_price']
};
const FEATURE_LABELS = {
'context_length': '上下文',
'mmlu': 'MMLU',
'humaneval': 'HumanEval',
'input_price': '输入价',
'output_price': '输出价',
'parameters': '参数量',
'reasoning_capability': '推理',
'vision_capability': '视觉',
'multimodal': '多模态'
};
// 加载导航栏
async function loadNav() {
const res = await fetch('/api/categories');
categories = await res.json();
// 获取当前类别的子类别
currentCategory = categories.find(c => c.id === 'ai-models');
renderSubcategoryTabs();
const builtinPages = [
{name: '首页', href: '/'},
{name: '工具', href: '/tools'},
@@ -130,6 +173,49 @@
document.getElementById('topNav').innerHTML = navHtml;
}
// 渲染子类别选择器
function renderSubcategoryTabs() {
const container = document.getElementById('subcategoryTabs');
if (!currentCategory || !currentCategory.subcategories) {
container.innerHTML = '';
return;
}
let html = `<button onclick="selectSubcategory('')" class="px-4 py-2 ${currentSubcategory === '' ? 'bg-indigo-600 text-white' : 'bg-gray-100 text-gray-600 hover:bg-gray-200'} rounded-lg text-sm" id="subcat-all">
<i class="ri-apps-line mr-1"></i>全部
</button>`;
currentCategory.subcategories.forEach(sub => {
const isActive = currentSubcategory === sub.id;
html += `<button onclick="selectSubcategory('${sub.id}')" class="px-4 py-2 ${isActive ? 'bg-indigo-600 text-white' : 'bg-gray-100 text-gray-600 hover:bg-gray-200'} rounded-lg text-sm" id="subcat-${sub.id}">
<i class="${sub.icon || 'ri-folder-line'} mr-1"></i>${sub.name}
</button>`;
});
container.innerHTML = html;
}
// 选择子类别
function selectSubcategory(subId) {
currentSubcategory = subId;
renderSubcategoryTabs();
loadModels();
}
// 获取当前子类别的关键特性
function getKeyFeatures() {
if (!currentSubcategory || !currentCategory || !currentCategory.subcategories) {
return ['parameters', 'context_length', 'mmlu', 'input_price'];
}
const subcat = currentCategory.subcategories.find(s => s.id === currentSubcategory);
if (subcat && subcat.key_features) {
return subcat.key_features;
}
return ['parameters', 'context_length', 'mmlu', 'input_price'];
}
async function loadModels() {
const keyword = document.getElementById('searchInput').value.trim();
@@ -151,6 +237,21 @@
models = models.filter(m => !m.is_open_source);
}
// 子类别过滤(通过模型名称/描述中的关键词判断)
if (currentSubcategory && currentCategory && currentCategory.subcategories) {
const subcat = currentCategory.subcategories.find(s => s.id === currentSubcategory);
if (subcat) {
// 简化过滤:根据子类别关键词匹配
// 实际应该有 subcategory_id 字段,这里暂时用名称匹配
// 用户可以在后台编辑时指定子类别
models = models.filter(m => {
const subcatField = m.subcategory || m.subcategory_id;
if (subcatField) return subcatField === currentSubcategory;
return true; // 暂时显示全部,等后台支持子类别字段后再过滤
});
}
}
renderModels(models);
}
@@ -162,38 +263,93 @@
return;
}
const html = models.map(m => `
<tr class="border-b hover:bg-gray-50 transition">
// 动态获取关键特性
const keyFeatures = getKeyFeatures();
// 动态表头
let headerHtml = `
<tr>
<th class="px-4 py-3 text-left text-sm font-medium text-gray-600">模型名称</th>
<th class="px-4 py-3 text-left text-sm font-medium text-gray-600">厂商</th>
`;
keyFeatures.forEach(f => {
headerHtml += `<th class="px-4 py-3 text-left text-sm font-medium text-gray-600">${FEATURE_LABELS[f] || f}</th>`;
});
headerHtml += `
<th class="px-4 py-3 text-left text-sm font-medium text-gray-600">类型</th>
<th class="px-4 py-3 text-center text-sm font-medium text-gray-600">操作</th>
</tr>
`;
document.querySelector('#modelsTable thead').innerHTML = headerHtml;
// 动态内容
const html = models.map(m => {
let rowHtml = `
<tr class="border-b hover:bg-gray-50 transition ${m.is_pinned ? 'bg-yellow-50' : ''}">
<td class="px-4 py-3">
<div class="font-medium text-gray-800">${m.name}</div>
<div class="text-xs text-gray-500">${m.architecture || ''}</div>
<div class="flex items-center gap-2">
${m.is_pinned ? '<i class="ri-pushpin-fill text-yellow-500" title="置顶"></i>' : ''}
<div>
<div class="font-medium text-gray-800">${m.name}</div>
<div class="text-xs text-gray-500">${m.architecture || ''}</div>
</div>
</div>
</td>
<td class="px-4 py-3 text-gray-600">${m.organization}</td>
<td class="px-4 py-3">
<span class="px-2 py-1 bg-blue-100 text-blue-700 rounded text-sm">${m.parameters}B</span>
</td>
<td class="px-4 py-3 text-gray-600">${formatContext(m.context_length)}</td>
<td class="px-4 py-3">
<span class="px-2 py-1 bg-green-100 text-green-700 rounded text-sm">${m.mmlu || '-'}%</span>
</td>
`;
// 关键特性列
keyFeatures.forEach(f => {
const value = formatFeatureValue(f, m);
rowHtml += `<td class="px-4 py-3">${value}</td>`;
});
rowHtml += `
<td class="px-4 py-3">
${m.is_open_source
? '<span class="px-2 py-1 bg-emerald-100 text-emerald-700 rounded text-sm">开源</span>'
: '<span class="px-2 py-1 bg-gray-100 text-gray-700 rounded text-sm">商业</span>'}
</td>
<td class="px-4 py-3 text-sm text-gray-600">
${m.input_price ? `$${m.input_price}/$${m.output_price}` : '免费'}
</td>
<td class="px-4 py-3 text-center">
<button onclick="showDetail('${m.id}')" class="text-indigo-600 hover:text-indigo-800 text-sm">
<i class="ri-eye-line mr-1"></i>详情
</button>
</td>
</tr>
`).join('');
`;
return rowHtml;
}).join('');
document.getElementById('modelsTable').innerHTML = html;
}
// 格式化特性值
function formatFeatureValue(feature, model) {
const value = model[feature];
if (value === null || value === undefined) return '<span class="text-gray-400">-</span>';
switch (feature) {
case 'parameters':
return `<span class="px-2 py-1 bg-blue-100 text-blue-700 rounded text-sm">${value}B</span>`;
case 'context_length':
return `<span class="text-gray-600">${formatContext(value)}</span>`;
case 'mmlu':
return `<span class="px-2 py-1 bg-green-100 text-green-700 rounded text-sm">${value}%</span>`;
case 'humaneval':
return `<span class="px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm">${value}%</span>`;
case 'input_price':
return `<span class="text-sm text-gray-600">$${value || 0}</span>`;
case 'output_price':
return `<span class="text-sm text-gray-600">$${value || 0}</span>`;
default:
return `<span class="text-gray-600">${value}</span>`;
}
}
function formatContext(len) {
if (!len) return '-';