mcpField
A
auto-paper-demo

auto-paper-demo

github.com/marimo-team数据与数据库1772.1k 次安装10 周前更新
代码仓库

关于 auto-paper-demo

auto-paper-demo 是一项将论文转化为交互式 marimo 笔记本的技能,聚焦讲清一个核心观点。它通过 AlphaXiv 获取论文内容,并强调精简示例、少量代码和有限滚动。

主要功能

  1. 01从 AlphaXiv 获取论文概览和正文
  2. 02选择一个核心观点进行演示
  3. 03构建精简的交互式 marimo 笔记本
  4. 04隐藏代码并将输出放在前部

适用场景

  1. 01根据 arXiv 论文制作讲解笔记本
  2. 02通过聚焦示例比较不同方法
  3. 03用图表和控件展示论文概念

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/marimo-team/skills --skill auto-paper-demo

安装后在 Claude Code 中输入/auto-paper-demo确认已加载。

附带文件references/ANYWIDGET.md

详细介绍

你需要从论文中构思一个引人入胜的故事来讲述。不要向用户征求反馈或意见。你需要自行思考,构思出最佳故事。

通过 AlphaXiv 获取论文

使用 alphaxiv.org 获取结构化、适合大模型阅读的论文内容。这比尝试阅读原始 PDF 更快、更可靠。

提取论文 ID

从用户提供的任何内容中解析论文 ID:

输入论文 ID
https://arxiv.org/abs/2401.123452401.12345
https://arxiv.org/pdf/2401.123452401.12345
https://alphaxiv.org/overview/2401.123452401.12345
2401.12345v22401.12345v2
2401.123452401.12345

获取 AI 生成的概览(先尝试此方法)

curl -s "https://alphaxiv.org/overview/{PAPER_ID}.md"

返回以纯 Markdown 格式呈现的结构化论文详细分析。只需调用一次,无需解析 JSON。

获取论文全文(备用方案)

如果概览中没有你需要的具体细节(例如某个特定公式、表格或证明):

curl -s "https://alphaxiv.org/abs/{PAPER_ID}.md"

返回以 Markdown 格式呈现的论文完整提取文本。

错误处理

  • 概览返回 404:这篇论文的报告尚未生成。请改为尝试获取全文。
  • 全文返回 404:文本尚未处理。作为最后的备选方案,将用户引导至 PDF:https://arxiv.org/pdf/{PAPER_ID}。
  • 无需身份验证——这些都是公共端点。

什么样的实现才算好?

好的实现要讲述一个故事,这是最重要的。故事应该简单,但不能缺失。

论文通常包含不止一个概念。因此,你需要选定一个故事!目标不是完整实现论文,也不是重新运行大型基准测试。目标是提炼一个启示或想法,并在一个能直接在 CPU 上运行的笔记本中清晰地讲解。这样,用户就能轻松运行并从中学到东西。查看笔记本时,你认为最值得探索的核心概念或想法是什么?哪个概念能讲出一个故事?

选择最容易用最少代码示例讲清楚的想法。要让最小代码示例真正发挥作用,通常最好配一两张图表供人查看。也可以添加下拉菜单,让用户尝试不同设置,或许还可以加一个滑块。但我们最希望做到的一点是避免用户需要大量滚动。

通常你会想比较两种方法。但请花点时间思考示例,因为这对故事最重要。大多数时候,不应使用玩具示例。它们没有启发性,而且已经被用得太多。最好构思一个有创意的示例,展现某种方法真正出彩的地方。我们不想挑选有利案例,但也不想使用那些已经被反复用过的示例。

再怎么强调先认真思考故事和示例、然后再编写任何代码的重要性都不为过。你真的应该深入思考。为用户提供一些交互方式,同时尽量避免滚动。好的示例能讲述一个故事,而不只是陈述一些事实。

你可以花时间思考这个选择,但一旦明确了最适合展示的想法,就立即开始构建 marimo 笔记本。

为此请使用 marimo-notebook skill;如果自定义小组件能让故事讲得更好,也可以使用 anywidget skill。如果你认为使用自定义 anywidget 确实合适,请参阅 references/ANYWIDGET.md。

准备就绪后,请确保隐藏所有代码,并将带有输入/输出的单元格移到文件顶部。

示例:

@app.cell
def _(hide_code=True):
    import marimo as mo
    return mo

评论

支持 Markdown