用途:用 React 前端加 Python FastAPI 后端搭建生成式 UI(generative UI)应用,前端由 OpenUI 组件库渲染,后端向大模型流式请求并转发。触发词包括 openui python、openui fastapi、openui flask、generative ui python、python streaming ui backend。
主要能力:提供 OpenAI 与 Anthropic 两套后端示例,均以 FastAPI 提供 /api/chat 接口并用 StreamingResponse 输出 text/event-stream;通过 AsyncOpenAI 或 AsyncAnthropic 异步流式调用,避免阻塞事件循环;OpenAI 变体直接把 chunk.model_dump_json() 作为 data: 行下发,Anthropic 变体把文本增量包装成 OpenAI chunk 格式,两者最后都发送 data: [DONE]。
使用方式:需 Node.js >= 22(建议 24 LTS)、React >= 18.3.1(建议 19+)、Python >= 3.10,并设置 OPENAI_API_KEY 或 ANTHROPIC_API_KEY。前端安装:npm install @openuidev/react-ui @openuidev/react-headless @openuidev/react-lang lucide-react zod;用 npx @openuidev/cli generate ./src/lib/library.ts --out backend/system-prompt.txt 从组件库生成系统提示,并在组件变更后重新生成。后端依赖 fastapi、uvicorn、openai、anthropic、python-dotenv。运行:uvicorn main:app --reload --port 8000,前端在 :3000。前端页面用 FullScreen,配合 streamProtocol={openAIAdapter()}、messageFormat={openAIMessageFormat} 与 apiUrl="http://localhost:8000/api/chat"。
适用场景:需要 Python 后端驱动 OpenUI 生成式界面的全栈项目;本地开发时前后端分端口运行。
限制与注意:后端输出 SSE(data: {json}\n\n),必须搭配 openAIAdapter();openAIReadableStreamAdapter() 面向无 data: 前缀的 NDJSON,在此处会无输出。CORS 需放行前端来源,否则被拦截;system-prompt.txt 缺失会报 FileNotFoundError;请求体须含 messages,否则 422;末块需 finish_reason: "stop" 后接 data: [DONE]。定价、部署与生产环境配置暂未提供。