Notebook 单元格编辑
按读取结果中的 cell ID 修改笔记本,避免失效输出和错位编辑。
This page has not been translated into English yet. The original Chinese version is shown below.
read_file 对 .ipynb 返回结构化视图:语言、有序单元格、ID、源码和摘要输出,而不是让模型直接改整份 JSON。后续用 notebook_edit 处理单元格。
先完整读取
Notebook 不支持 offset/limit 文本分段参数。同一会话必须先成功读取,再编辑;如果结构化视图因太大被内部截断,notebook_edit 会拒绝单元格修改,要求先减少输出或拆分笔记本。
目标 ID 使用读取结果展示的值,可能是真实 ID,也可能是 cell-N 回退 ID。存在重复或歧义时拒绝编辑,不自行猜测对应项。
三种操作
| edit_mode | 参数 |
|---|---|
| replace,默认 | notebook_path、cell_id、new_source;cell_type 可调整类型 |
| insert | notebook_path、new_source、cell_type;cell_id 指插入位置之后,省略则置于开头 |
| delete | notebook_path、cell_id;不需要 new_source |
notebook_path 为绝对路径,cell_type 可为 code 或 markdown。
notebook_edit(
notebook_path="/workspace/analysis.ipynb",
cell_id="load-data",
edit_mode="replace",
new_source="result = 41 + 1\nprint(result)"
)示例 ID 必须替换成实际读取到的单元格,不能假设每个 notebook 都有 load-data。
写入后的状态
代码单元格源码变化会清除旧 outputs 并重置 execution_count,避免继续展示上一版代码的结果。工具尽量保留 JSON 格式、换行、编码与 BOM,审批时展示 notebook JSON diff。
结构性编辑可能改变 cell-N 回退编号,工具会使旧读取状态失效,下一次编辑需重新 read_file。不能在删除一格后继续机械沿用之前的后续编号。
Notebook 编辑不等于执行单元格;清空旧输出后需要另外运行实际计算,才能确认新结果。