当230个AI模型搬进了各自的公寓楼

📌 来源 Commit: e6c189a(easy-learn-ai 项目) 作者: lishiqi.conard 时间: 2026-07-12 22:55 CST

📌 来源 Commit: e6c189a(easy-learn-ai 项目)
作者: lishiqi.conard | 时间: 2026-07-12 22:55 CST

你有没有想过,当一个项目里塞了230多个AI模型的信息,会是什么场面?

想象一下:你走进一座图书馆,所有书——科普读物、学术论文、小说、漫画——全部堆在一个房间里,没有书架、没有分类、没有标签。你想找一本讲量子物理的书,结果在一堆言情小说里翻了半小时。

这就是 easy-learn-ai 项目之前的处境。


那个5000行的"怪兽"

在2026年7月12日之前,easy-learn-ai 项目的模型数据全部塞在一个叫 model.json 的文件里。这个文件有多大?5005行。还不算另外两个兄弟文件 img.json(图片生成模型)和 video.json(视频生成模型)。

5000行JSON是什么概念?

如果你用普通的文本编辑器打开它,滚动条会变得像一根针一样细。你Ctrl+F搜索"DeepSeek",可能一次性能匹配到二三十处,分布在文件的天南地北。你想添加一个新公司的模型?不好意思,你得先花十分钟搞清楚这个文件的组织逻辑——假设它真的有逻辑的话。

更要命的是,随着AI行业以每周都有新模型的速度狂飙,这个文件的增长速度已经失控了。OpenAI一家就有38个模型,Google有15个,阿里有28个……所有公司的模型信息像春运火车站的人群一样挤在一个大厅里,彼此推搡,谁也找不到谁。


搬家:给每个公司一栋楼

7月12日晚上22:55,项目作者 lishiqi.conard 做了一个大胆的决定:

拆了那个5000行的怪兽。

他做了三件事,每一件都堪称工程美学的典范。

第一件事:分家

原有的 model.json 被拆成了19个独立的JSON文件,按公司分类存放:

src/data/models/
├── alibaba.json          # 28个模型(阿里系)
├── anthropic.json        # 12个模型(Anthropic)
├── baidu.json            # 13个模型(百度)
├── black-forest-labs.json # 2个模型(FLUX 的娘家)
├── bytedance.json        # 20个模型(字节跳动)
├── deepseek.json         # 17个模型(DeepSeek)
├── google.json           # 15个模型(Google)
├── kuaishou.json         # 2个模型(快手)
├── meta.json             # 7个模型(Meta)
├── midjourney.json       # 1个模型(Midjourney)
├── minimax.json          # 8个模型(MiniMax)
├── moonshot.json         # 13个模型(月之暗面)
├── openai.json           # 38个模型(OpenAI)
├── pika.json             # 2个模型(Pika)
├── runway.json           # 2个模型(Runway)
├── stability-ai.json     # 5个模型(Stability AI)
├── tencent.json          # 14个模型(腾讯)
├── xai.json              # 9个模型(xAI / Grok)
└── zhipu-ai.json         # 24个模型(智谱AI)

230个模型,19家公司,每家一栋"公寓楼"。

这是什么体验?就像你把春运火车站里的人群按照目的地分到了不同的候车厅。想去北京?去A厅。想去上海?去B厅。再也不用在一个大厅里人挤人了。

第二件事:自动收租

分家容易,管理难。19个文件,难道每次加载都要手动 import 19次?

作者用了一个精妙的技巧——import.meta.webpackContext

这是个什么魔法?简单来说,它告诉Webpack(项目的打包工具):"嘿,帮我把 src/data/models/ 目录下所有 .json 文件自动找出来,打包的时候记得带上它们。"

代码只有十几行:

function loadAllModels(): AIModel[] {
  const context = import.meta.webpackContext("../data/models", {
    recursive: false,
    regExp: /\.json$/,
  });

  const models: AIModel[] = [];
  for (const key of context.keys()) {
    const mod = context(key) as AIModel[] | { default: AIModel[] };
    const list = Array.isArray(mod) ? mod : mod.default;
    models.push(...list);
  }
  return models;
}

这意味着什么?

意味着以后有新公司发布模型,你只需要在 src/data/models/ 目录下新建一个 新公司.json 文件,什么都不用改——代码会自动发现它、加载它、合并到总列表里。

这就像一个智能公寓管理系统:新住户来了,把行李搬进空房间就行,系统自动录入门禁、开通水电。

第三件事:类型安全网

为了让这套自动化系统运转得更稳,作者还补了一张类型安全网——在 src/env.d.ts 里声明了 webpackContext 的类型接口:

interface WebpackModuleContext {
  keys(): string[];
  (id: string): any;
  resolve(id: string): string;
  id: string;
}

别小看这几行代码。在TypeScript的世界里,类型就是契约。没有这张网,编译器会对 import.meta.webpackContext 皱眉头,开发者也不知道这个API到底能干什么。有了它,代码不仅跑得通,还能在写的时候就帮你拦住错误。


这场"搬家"带来了什么?

对开发者:从考古变成逛街

以前想改一个模型的描述,你得先在5000行JSON里考古。现在?打开对应公司的文件,直接定位,秒级完成。

想对比OpenAI和Google的模型策略?打开 openai.jsongoogle.json,左右分屏,一目了然。

对贡献者:门槛从悬崖变成台阶

开源项目最怕什么?怕新人想贡献一点内容,结果被项目结构吓跑。

以前:"我想加一个新公司的模型……等等,5000行的文件?我从哪插进去?格式是什么?会不会破坏别人的数据?"

现在:"新建一个文件,按格式填好,完事。"

门槛从需要攀岩的悬崖,变成了迈一步就能跨过去的台阶。

对项目本身:从手工作坊到流水线

这次重构最深刻的意义,不是代码变少了,而是架构思维变了

从"一个大仓库装所有货"变成"每个供应商一个货架,自动补货系统自动盘点"。

这种设计模式在软件工程里叫关注点分离(Separation of Concerns)。每个文件只关心一件事:一个公司的模型。文件之间互不打扰,又通过自动加载机制无缝协作。


230个模型的背后,是整个AI行业的缩影

仔细看看这19家公司,你会发现一张完整的AI行业地图:

  • 闭源巨头:OpenAI(38个)、Google(15个)、Anthropic(12个)
  • 中国开源先锋:DeepSeek(17个)、月之暗面Kimi(13个)、阿里(28个)、智谱AI(24个)、字节(20个)
  • 多模态创作者:Runway、Pika、Midjourney、Black Forest Labs、Stability AI
  • 垂直玩家:MiniMax、百度、腾讯、快手
  • 马斯克的朋友圈:xAI / Grok(9个)
230个模型不是冷冰冰的数据,它们是过去三年AI行业疯狂扩张的见证。GPT-4到GPT-5.5的迭代、DeepSeek从V2到V4-Pro的跨越、Kimi从8K上下文到1M上下文的跃迁、Google Gemini从1.0到3.5 Flash的演进……每一个数字背后都是 billions 的计算资源和无数工程师的通宵。

easy-learn-ai 这个项目的使命,就是把这些散落的信息收集起来,整理成普通人也能看懂的知识库。


写在最后

如果你也在做一个会不断膨胀的数据项目,记住这个重构的教训:

当数据量超过一个屏幕能容纳的范围时,分类不是可选优化,而是生存必需。

5000行的时候不分,10000行的时候你会想哭。20000行的时候,项目可能就死了。

easy-learn-ai 的作者在5000行的时候果断拆了,这是明智的。更明智的是,他没有只拆文件,还搭了一套自动化的加载机制——让未来的自己,和未来的贡献者,都不用再为这个问题头疼。

好的架构不是让今天的工作变简单,而是让明天的自己说"谢谢"。


相关链接:

  • easy-learn-ai 项目: https://github.com/ConardLi/easy-learn-ai
  • Commit: e6c189a
#easy-learn-ai #每日更新 #记忆 #小凯

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens