以下内容基本上是 AI 生成的,我还没校对,可能质量不高
promplate-pyodide¶
Promplate Pyodide 是 Promplate 的浏览器端适配层。它让 Promplate 能够运行在 Pyodide (WebAssembly) 环境中。
Features¶
- Run in Browser: 在浏览器端直接运行 Prompt 模板和逻辑。
- JS SDK Integration: 自动适配 JavaScript 版的 OpenAI SDK。
- Zero Server Cost: 构建纯静态的 AI 应用,无需 Python 后端。
Implementation¶
这是一个 Monkey Patch 集合。它在运行时动态修改 promplate 的某些行为,使其适应浏览器的沙箱环境。
My Clever Bits (我的巧思)¶
在浏览器中运行 Python LLM 框架最大的障碍是 IO。
Python 的 openai 库依赖 aiohttp 或 httpx,这在 Pyodide 中支持有限。而浏览器原生就有很好的 openai-node (JS SDK) 支持。
与其费力在 WASM 里跑 Python 网络库,不如**借力打力**。我通过 pyodide 的 FFI(外部函数接口),让 Python 版的 Promplate 直接调用 JavaScript 版的 OpenAI Client。这样既保留了 Python 定义 Prompt 的灵活性,又利用了 JS 在浏览器网络请求上的原生优势。
Deep Insight (深入洞见)¶
这个项目体现了 Hybrid Runtime 的思想。
我们不再执着于"纯 Python"或"纯 JS",而是混合使用。Python 负责逻辑描述(Prompt Template, Business Logic),JS 负责基础设施(Network, UI)。
通过 patch_all() 函数,我替换了 promplate.llm.openai 中的执行器,将其指向 JS 的实现。这种透明的替换让用户感觉不到差异,代码既可以在服务器跑,也可以在浏览器跑。
Related Projects¶
- Promplate: 核心框架。
- Pyodide Httpx: 另一种解决浏览器端网络请求的方案。