codecamp

Ollama marimo

marimo 是 Python 生态里的响应式 notebook——可以理解为「不会出现隐藏状态」的 Jupyter 替代品。它内置 AI 面板,支持接 Ollama 做对话和行内代码补全。

版本基线 v0.40.12,官方 docs.ollama.com/integrations/marimo。

一、安装 marimo

用 pip 或 uv 都行。推荐用 uv 起一个沙箱环境:

uvx marimo edit --sandbox notebook.py

沙箱模式的好处是依赖隔离,不会污染项目环境。

二、配置 Ollama

  1. 打开 marimo 的用户设置,进 AI 标签页
  2. 找到 Ollama 并配置为 AI provider,本地场景 base URL 填:

http://localhost:11434/v1

  1. provider 配好后,可以开关具体要用哪些模型
  2. 想加新模型,滚到页面底部用那里的 UI 添加

/v1 不能漏——marimo 走 OpenAI 兼容协议。

三、两个 AI 能力

能力 配置位置
AI 对话 AI 标签页,配好 provider 即可用
行内代码补全 AI Features 标签页单独开关

这两处是分开的:配好对话不代表补全就开了,需要到 AI Features 里单独启用。

四、接 ollama.com 云端

  1. 用 ollama signin 登录云端
  2. 在 Ollama 的模型设置里添加一个云端托管的模型,比如 gpt-oss:120b
  3. 之后在 marimo 里引用这个模型即可

五、为什么 notebook 场景适合接本地模型

数据分析的工作流有个特点:反复试错。一次分析可能要跑几十轮「改个提示词看看结果」。这种高频低价值的调用用云端 API 成本会迅速累积,用本地模型几乎零边际成本。

加上数据不出本机这一点,处理业务数据时更省心。

六、配置速查

项 值
入口 用户设置 → AI 标签页
Base URL http://localhost:11434/v1
补全开关 AI Features 标签页
云端 先 ollama signin,再添加云端模型

常见问题

现象 原因 处理
连接失败 Base URL 漏 /v1 补上
对话能用但补全没反应 未在 AI Features 开启 单独打开补全开关
模型列表空 本地无模型 ollama pull
新增模型不出现 未保存刷新 重新进设置页
云端模型不可用 未登录 ollama signin

动手试

## ① 确认兼容端点
curl http://localhost:11434/v1/models

## ② 起一个沙箱 notebook
uvx marimo edit --sandbox my_notebook.py

然后在 AI 设置里填 http://localhost:11434/v1,选个模型,问一句话验证链路。

Ollama n8n
Ollama NemoClaw
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Ollama Cloud

Ollama CLI 命令行参考

Ollama Modelfile 参考

Ollama 上下文长度

Ollama 导入自定义模型

Ollama 常见问题

Ollama 硬件支持

Ollama 故障排查

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }