大模型应用
在已接入 useAtlasChat 的应用中启用…
当应用已通过 integrate-atlas-chat 接入 useAtlasChat,且需要让 agent 的 CDF runPythonCode 工具在浏览器端用 Pyodide 执行时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在已接入 useAtlasChat 的应特定
解决思路
- 确认前置条件:已有来自 integrate-atlas-chat 的 src/atlas-agent/ 目录,并已安装 @sinclair/typebox;若使用 Atlas / EOS sidebar(integrate-fusion-agent)则跳过本流程。
- 从 integrate-atlas-chat/code/ 复制 python.ts、pyodide.ts、pyodide-react.ts、pyodide-runtime.ts 到 src/atlas-agent/。
- 先阅读 package.json 检测包管理器与已有依赖,并阅读调用 useAtlasChat 的组件以了解当前 tools/config。
- 使用应用对应的包管理器安装精确版本 pyodide@0.29.3(pnpm add / npm install / yarn add),版本必须与运行时加载的 CDN 产物一致,否则会报错。
- 若缺少 @sinclair/typebox 则补装。
- 在调用 useAtlasChat 的组件中引入 loadPyodide 与 usePyodideRuntime,并调用 usePyodideRuntime({ loadPyodide, client: isLoading ? null : sdk, requirements: ["pandas", "numpy"] }),requirements 可选。
- 使用 hook 返回字段:runtime(PythonRuntime | undefined)、loading(boolean)、error(string | null)、progress({ stage, percent })、isReady(!loading && !error && runtime !== undefined)。
- 加载状态 UI 放在聊天输入框上方而非消息列表中,用紧凑的 pill/badge 显示 stage 文本与百分比;错误用单独的 badge 展示;首次加载约 30-60s(约 30MB),之后从浏览器缓存加载 <2s。
- 将 pythonRuntime 传给 useAtlasChat(pythonRuntime 字段)即可启用 Python 工具执行;无需添加 PythonToolConfig 条目,也无需通过 tools 声明 Python 工具——agent 已从 CDF config 知晓,库会自动拉取代码。
- 在 Python 加载期间禁用整个输入区域(disabled={isStreaming || pythonLoading}),而不只是发送按钮;若首页有建议 chips,也一并禁用(disabled={pythonLoading})。
适用边界 · 注意事项
- 应用使用 Atlas / EOS sidebar(integrate-fusion-agent)时不要走此流程。
- 尚未完成 integrate-atlas-chat 接入、没有 src/atlas-agent/ 时。
- 不要自行 vendor Pyodide 或安装非 0.29.3 的版本。