Jupyter Notebook
交互式计算环境,支持在一个文档中混合编写代码、运行结果、可视化图表和Markdown文本,是数据科学和机器学习领域的标准开发工具
核心事实
时间轴 (近 90 天)
在 OpenAI Agents SDK 中,Runner.run_sync 是同步调用方式,会立即返回响应,但无法在 Jupyter Notebook 中运行,因为 Notebook 自身已运行着事件循环,嵌套启动新循环会抛出 'This event loop is already running' 错误。
作者认为notebook不会在短期内消失,其角色将从'写代码的地方'演变为'人类意图与Agent执行交汇的工作台'
Jupyter长期被诟病存在'隐式状态'问题,即单元格乱序执行导致结果不可复现
Notebook的核心价值是可复现的推理轨迹,记录每一步的输入、输出和中间可视化
代码单元在固定随机种子下每次执行都能得到相同结果,而纯粹的'提示→结果'引入了大模型的不确定性
Jupyter notebook的核心结构是Markdown单元格负责叙述,Code单元格负责执行,输出紧随代码之后内嵌呈现
Jupyter Notebook的设计哲学可追溯至2011年前后,其灵感来源于Donald Knuth在1984年提出的'文学编程'(Literate Programming)理念
Python交互式解释器、Jupyter Notebook、Node.js控制台都是典型的REPL实现
传统 Jupyter Notebook 存在执行顺序依赖问题,单元格可以乱序运行,导致同一份 Notebook 在不同时间或机器上可能产出不同结果,难以复现
Jupyter Notebook 的普及和 Hugging Face 生态的崛起在一定程度上弥合了科研与工程之间的知识断层
还有 20 条时间轴事件
全部知识事实 (20)
Jupyter的名称是Julia、Python和R三种科学计算语言的合称
90%已验证该课程项目采用Jupyter Notebook作为主要教学载体
65%已验证Warp采用块式导航(Block-based Navigation),将每次命令执行及其输出封装为独立的块,借鉴了Jupyter Notebook的Cell概念
65%待验证该项目以Jupyter Notebook为主要载体,开发者可以逐个Cell执行
90%待验证GitHub上有超过1000万个Jupyter Notebook文件
70%待验证Jupyter Notebook底层采用内核(Kernel)架构,前端界面通过WebSocket与后端计算内核通信
60%待验证Jupyter Notebook目前已支持超过100种编程语言内核
60%待验证《自然》等顶级期刊开始要求作者提交可运行的Notebook作为论文补充材料
60%待验证Jupyter Notebook起源于2011年的IPython项目,由Fernando Pérez主导开发
60%待验证在 OpenAI Agents SDK 中,Runner.run_sync 是同步调用方式,会立即返回响应,但无法在 Jupyter Notebook 中运行,因为 Notebook 自身已运行着事件循环,嵌套启动新循环会抛出 'This event loop is already running' 错误。
50%待验证Notebook的核心价值是可复现的推理轨迹,记录每一步的输入、输出和中间可视化
50%待验证Jupyter长期被诟病存在'隐式状态'问题,即单元格乱序执行导致结果不可复现
50%待验证Jupyter Notebook的设计哲学可追溯至2011年前后,其灵感来源于Donald Knuth在1984年提出的'文学编程'(Literate Programming)理念
50%待验证Jupyter notebook的核心结构是Markdown单元格负责叙述,Code单元格负责执行,输出紧随代码之后内嵌呈现
50%待验证代码单元在固定随机种子下每次执行都能得到相同结果,而纯粹的'提示→结果'引入了大模型的不确定性
50%待验证Python交互式解释器、Jupyter Notebook、Node.js控制台都是典型的REPL实现
50%待验证传统 Jupyter Notebook 存在执行顺序依赖问题,单元格可以乱序运行,导致同一份 Notebook 在不同时间或机器上可能产出不同结果,难以复现
50%待验证Jupyter Notebook 的普及和 Hugging Face 生态的崛起在一定程度上弥合了科研与工程之间的知识断层
50%待验证Notebook中的推理代码通常是单线程、单请求执行的,缺乏异步处理或多副本机制时在高负载下会出现超时或崩溃
50%待验证在Jupyter Notebook或某些框架环境下事件循环已在运行,直接调用asyncio.run()会引发'This event loop is already running'错误,常见修复方式是使用nest_asyncio库打补丁(nest_asyncio.apply())
50%