https://github.com/Yiling-J/tablepilot
先举一个很简单的例子,如何用 AI 生成 1000 个不重复的菜谱?最简单的方法可能是让 ChatGPT 先生成 10 个菜谱,然后保持上下文继续再生成 10 个,反复进行。但这样首先 context 会消耗大量 tokens ,其次就算有 context ,LLM 在数据量大了之后也很难保证不重复。另一种方法就是我们用一个或多个辅助列来确保生成的多样性,比如有一列[国家],预先从 50 个国家里随机取值,再有一列[大类],在早餐/正餐/甜点/小吃里随机取值。在这种组合下就算没有用已经生成的菜谱作为 context ,生成结果的多样性也会大大增强。而这个方法就是 Tablepilot 的基本思想。
Tablepilot 其实是在我以前独立开发项目的基础上进行大幅重构后开源的,有兴趣可以翻翻我以前的帖子。这是我第一个完整的全栈开源项目,自认为还是挺有趣的,而且似乎没有同类开源项目,如果你确实有类似需求可能会非常有用。主要的特点有这些:
Off-topic: 如果你也想做类似的 CLI/API/WebUI 项目,我觉得我这个项目的结构也可以作为参考。Go 在写这样的项目上确实非常方便。