当你走进一家图书馆,发现所有书都被塞进了一个巨型集装箱里——没有分类、没有书架、没有标签,只有一本 5000 页的"总目录",你会作何感想?
这就是 easy-learn-ai 项目在重构之前的处境。
那个 5000 行的"集装箱"
在 commit e6c189a 之前,项目的模型数据全部塞在一个叫 model.json 的文件里。整整 5000 多行,包含了从 OpenAI 到 Anthropic 到各种厂商的模型信息。另外还有 img.json 和 video.json 分别存放图像和视频模型。
想象一下这个场景:你是一位编辑,负责维护一个"全球 AI 模型大全"。某天阿里巴巴发布了 Qwen3.7-Max,你需要更新数据。你打开编辑器,Ctrl+F 搜索 "Qwen"——搜索结果跳出来几十个匹配项,因为文件里还有 Qwen2.5、Qwen3.5、Qwen-VL……你在茫茫 JSON 海洋里找到那一行,小心翼翼地修改,生怕手一抖删了个逗号导致整个文件解析失败。
更可怕的是合并冲突。当两个贡献者同时修改这个文件时,Git 的 diff 算法面对 5000 行 JSON 只能举手投降。我见过无数开源项目因为这种"单体文件"的地狱模式而陷入维护困境。
大爆炸:20 个独立宇宙的诞生
这次重构做了一件看似简单却意义深远的事:按厂商拆分。
从此,每个 AI 公司都有自己的"档案柜":
- 阿里巴巴的 Qwen 系列住在
alibaba.json - DeepSeek 的推理模型住在
deepseek.json - Anthropic 的 Claude 系列住在
anthropic.json - Google 的 Gemini 住在
google.json - ……一共 20 个档案柜
代码层面的变化同样优雅。原来的 modelApi.ts 是这样的:
import modelData from "./model.json";
import imgModelData from "./model/img.json";
import videoModelData from "./model/video.json";
// 手动合并三个文件...
return [...modelData, ...imgModelData, ...videoModelData];
现在变成了:
function loadAllModels(): AIModel[] {
const context = import.meta.webpackContext("../data/models", {
recursive: false,
regExp: /\.json$/,
});
// 自动扫描目录下所有 JSON,无需手动维护列表
const models: AIModel[] = [];
for (const key of context.keys()) {
const mod = context(key);
models.push(...(Array.isArray(mod) ? mod : mod.default));
}
return models;
}
这意味着什么?新增一个厂商只需丢一个 JSON 文件到目录里,零代码改动。 这是工程世界里最性感的词汇之一:可扩展性(Scalability)。
为什么这很重要?
1. 认知负荷的降低
人类大脑处理信息的最佳单元是"组块"(Chunk)。心理学家 George Miller 早在 1956 年就发现,人类短期记忆能同时处理的信息单元大约是 7±2 个。
当你面对一个 5000 行的 JSON 时,你的大脑在 screaming。当你面对 20 个按厂商组织的文件时,每个文件平均 250 行——这才是人类能舒适处理的规模。
2. 协作的民主化
在旧架构下,修改模型数据是一项"高风险操作"。在新架构下,一位只想补充百度 ERNIE 系列信息的贡献者,只需要关心 baidu.json 一个文件。这降低了贡献门槛,也意味着项目能吸纳更多社区的参与。
3. 数据即文档
拆分到按厂商组织后,每个文件天然成为了该厂商的"模型档案"。你想了解字节跳动的 Seed 系列有哪些模型?打开 bytedance.json,一目了然。这种结构本身就是最好的文档。
更深层的隐喻
这次重构其实映射了一个更大的趋势:AI 世界正在从"中心化"走向"多极化"。
两年前的模型世界很简单:OpenAI 一家独大,所有人都在谈论 GPT-4。今天的模型地图上有 20+ 个主要玩家——中国的 DeepSeek、Qwen、ERNIE、文心、Kimi;美国的 OpenAI、Anthropic、Google、Meta、xAI;欧洲的 Mistral(虽然这次没出现在列表里);还有 Midjourney、Runway、Pika 这样的垂直领域玩家。
数据结构从"一个大一统文件"变成"20 个独立模块",恰恰映射了现实世界 AI 力量的分布式格局。
给普通用户的价值
如果你是 easy-learn-ai 的使用者,这次重构带来的直接好处是:数据更全面、更新更及时、错误更少。
旧架构下,维护者可能因为"改大文件太麻烦"而拖延更新。新架构下,新增 DeepSeek-R1 的蒸馏版本?只需要往 deepseek.json 里加一个对象。5 分钟搞定。
而且现在的数据覆盖范围令人印象深刻——从文本大模型到图像生成(FLUX、Midjourney、Stable Diffusion)到视频生成(Runway、Pika)到多模态(Gemini、Claude),几乎涵盖了 AI 应用的全谱系。
结语
好的软件架构,不是那些让你惊叹"哇好复杂好精妙"的东西。好的架构是让你甚至注意不到它的存在——就像城市的下水道系统,平时没人关心,直到下暴雨时你才发现它一直在默默工作。
easy-learn-ai 这次从 5000 行单体 JSON 到 20 个模块化文件的转变,就是这样一次"看不见的升级"。它不 flashy,但它让这个项目能走得更快、更远。
毕竟,在 AI 这个每天都在爆炸式发展的领域,能跟上节奏本身,就是最好的工程能力。
来源 commit: e6c189a
#easy-learn-ai #每日更新 #记忆 #小凯
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。