为 Vim 和 Neovim 提供 AI 能力的插件,可在编辑器内生成代码、编辑文本并与模型对话。
Mattie/cataclysm
一个 Python 库,根据函数名、参数和上下文,在运行时借助 OpenAI 模型自动生成函数实现。
- Star
- 409
- Fork
- 43
- 未关闭 Issue
- 11
- 最近提交
- 14天前
这是什么?
Cataclysm 让 Python 代码可以调用尚未实现的函数。调用未知函数时,它会把函数名、参数、关键字名称、文档字符串、注释以及调用栈等上下文发送给 OpenAI 模型,执行生成的代码并返回结果。生成的代码会按函数签名缓存在本地文件中,之后的调用直接复用。
库提供多种模式。`consume(globals())` 会为当前命名空间中所有未知函数启用生成,适合笔记本和实验场景。`doom` 模块是库和应用中推荐的用法。`doom.impending` 可以只预览生成的代码而不执行;`doom.chosen` 只运行已缓存的代码,缓存不存在时抛出 NameError,因此发布的代码不会再调用模型。
使用前需要 Python 3.11 或更高版本、放在 `.env` 文件中的 OpenAI API Key,并运行 `cataclysm init` 复制默认的提示词和数据文件。生成能力通过 chatsnack 库调用模型,修改提示词文件可以调整行为,也可以换成更便宜的模型。
核心功能
- 01根据函数名、参数和上下文自动生成缺失的函数实现。
- 02按函数签名在本地缓存生成的代码,供后续复用。
- 03提供推荐用于库和应用的 `doom` 模块。
- 04提供预览模式(`doom.impending`),可在执行前查看代码。
- 05提供冻结模式(`doom.chosen`),只运行已缓存的代码。
适用场景
- 在 Jupyter 笔记本或交互式会话中快速原型化函数。
- 通过函数签名观察大模型会如何实现某个工具函数。
- 发布已预生成代码的应用,运行时不再调用模型。
快速上手
- 1
从 PyPI 安装该包
pip install cataclysm - 2
在项目目录中复制默认数据文件
cataclysm init - 3
在 .env 文件中添加你的 OpenAI API 密钥
使用前须知
- 需要 OpenAI API 密钥,并调用 OpenAI 的付费 API。
- 需要 Python 3.11 或更高版本。
- 生成的代码未经验证,README 警告其可能不安全,项目处于实验阶段。
标签
常见问题
- cataclysm 是什么?
- 一个 Python 库,根据函数名、参数和上下文,在运行时借助 OpenAI 模型自动生成函数实现。 Cataclysm 让 Python 代码可以调用尚未实现的函数。调用未知函数时,它会把函数名、参数、关键字名称、文档字符串、注释以及调用栈等上下文发送给 OpenAI 模型,执行生成的代码并返回结果。生成的代码会按函数签名缓存在本地文件中,之后的调用直接复用。
- cataclysm 可以免费使用吗?用的什么许可证?
- cataclysm 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- cataclysm 还在维护吗?
- 活跃维护中。cataclysm 最近一次提交是在 2026年10月24日。
- cataclysm 适合用来做什么?
- 在 Jupyter 笔记本或交互式会话中快速原型化函数。 通过函数签名观察大模型会如何实现某个工具函数。 发布已预生成代码的应用,运行时不再调用模型。
- cataclysm 怎么安装和运行?
- 从 PyPI 安装该包: pip install cataclysm 在项目目录中复制默认数据文件: cataclysm init 在 .env 文件中添加你的 OpenAI API 密钥
- 在哪里获取 cataclysm?
- 源代码和安装说明在 GitHub 上:https://github.com/Mattie/cataclysm
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1189+1 本周112PythonMIT更新于 24天前
Generative Manim 借助 GPT-4o、Claude 等大语言模型,把文字描述生成 Manim 动画代码并渲染成视频。
939+3 本周135PythonApache-2.0更新于 2个月前
一个基于 LLM 的 Python 数据管道,从非结构化文本中抽取知识图谱,用于增强问答检索。
3.7万+83 本周3871PythonMIT维护活跃更新于 5天前
一套 Jupyter Notebook 示例与指南,演示如何使用 OpenAI API 完成常见任务。
7.7万+103 本周1.3万Jupyter NotebookMIT更新于 18小时前