
Reflex 中为 AI Builder 应用添加与引导 Python 库从提示词到 requirements.txt 的完整实践【免费下载链接】reflex️ Web apps in pure Python 项目地址: https://gitcode.com/GitHub_Trending/re/reflex导读在 Reflex BuildAI 应用构建器中你可以直接通过自然语言为应用引入受支持的 Python 库例如让 Agent 使用 pandas 构建 CSV 上传与校验工作流或使用 requests 封装 REST 接口调用。本文以 Reflex 官方文档 docs/ai_builder/python_libraries.md 为主体完整讲解在提示词中指定包、通过 Knowledge 沉淀库使用规范、以及理解 Builder 环境对包的安装限制这一完整链路并结合仓库源码说明requirements.txt在 Reflex 项目中的真实作用。读完本文你将掌握如何精准地向 Agent 描述第三方库需求、如何为专用包添加可复用的使用指导、以及如何在包不可用或过大时切换到托管 API 方案。Reflex Build 中的 Python 库能力概述Reflex Build 生成的是标准的 Reflex 项目——包含 Python 应用代码、资源文件、依赖定义与 Reflex 配置而不是不透明的托管产物见 What Is Reflex Build。因此为应用引入外部 Python 库是常规开发流程的一部分你有两种主要方式直接向 Agent 提需求描述你期望的行为并在已确定包名时明确指出要用的包编辑requirements.txt在Code视图中打开依赖文件手动添加包并保存。文档给出的典型提示词示例原文引用Use pandas to build a CSV upload and validation workflow. Show rows with missing email addresses or invalid dates before the user confirms the import.翻译为中文语境即用 pandas 构建一个 CSV 上传与校验工作流在用户确认导入之前先展示缺失邮箱地址或日期非法的行。这个示例同时演示了 AI Builder 提示词的两个要点先描述行为outcome再点名包packageAgent 需要明确的目标才能选择正确的 API 用法当你已确定包名时直接点名可避免 Agent 选用替代方案。把校验规则写清楚missing email addresses、invalid dates是具体约束Agent 据此生成对应校验逻辑而不是笼统地处理数据。提示附件Prompt Attachment不是运行时上传原文档特别强调了一个容易混淆的点提示词中附带的文件只作为 Agent 的上下文context不会自动变成应用运行时的上传功能。例如你在提示词里附带了一个示例 CSV 文件用于说明数据结构Agent 会读取它来理解列名与格式但应用本身并不会因此获得用户上传 CSV的能力。如果你希望应用用户运行时提供 CSV 文件必须在提示词中明确要求 Agent 构建上传工作流。这与 Files 文档的说明一致附件是提示上下文如果应用需要在运行时提供或保留该文件应请 Agent 添加对应的应用资源、上传流程、数据库记录或外部存储集成。Use the attached CSV as sample data. Build an import preview that maps the columns, flags malformed dates, and lets the user exclude invalid rows.同理不要在附件中携带密钥、凭据或未经批准的私有生产数据导出凭据应通过 Secrets 或集成表单管理。让 Agent 检查包文档与网络搜索原文档指出Agent 在必要时可以使用网络搜索来核对当前版本的包文档。这意味着你不必在提示词中写出包的完整 API 细节只要给出用途与约束即可Agent 会以当前仓库可安装的版本为准去查阅对应的官方文档再生成代码。但文档同时给出了明确的责任边界在上线应用之前务必人工审查 Agent 选定的包、版本与许可证license。AI 生成代码不等于代码审查——包的安全状况、许可证兼容性与版本维护状态仍然需要开发者确认。通过 Knowledge 为专用包添加使用指导对于有特定用法约定specialized的包每次都在提示词中重复说明会很低效。Reflex Build 提供了Knowledge机制为 Agent 沉淀应跨多个提示词复用的上下文。在应用的Knowledge中添加库指导时建议覆盖四个要素原文档要点要素说明示例包名与用途这个包在应用里解决什么问题pandas数据清洗与表格转换版本或 API 表面应用应使用的版本范围或关键 API使用pandas 2.x以DataFrame为核心数据结构预期用法的小示例让 Agent 遵循的正确调用方式日期解析统一使用pd.to_datetime(..., errorscoerce)必须保留的约束Agent 生成代码时不得违反的规则不在 UI 组件中做重计算统一放到 State 方法中项目级 Knowledge 与应用级指令Knowledge 分两个层级见 KnowledgeProject Knowledge项目级作用于同一项目下的多个应用适合存放产品术语、组织级架构/安全规则、共享数据概念与命名约定、以及每个应用团队都该遵循的参考资料App Instructions应用级从应用更多菜单进入Knowledge只对当前应用生效例如面向用户的文案统一用 workspace 而非 tenant每个数据表都必须有 loading、empty、error 三种状态。应用级指令在切换到其他控件时自动保存。文档建议保持指令简短、具体、及时因为相互矛盾或过时的指令会让生成结果的可预测性下降。行为与架构规则放在 Knowledge而颜色令牌、排版、间距等视觉规范则交给 Design Systems让两类上下文各司其职。包安装的两种路径与 requirements.txt 的底层机制方式一让 Agent 安装在实现某个功能时直接要求 Agent 添加依赖见 Install External PackagesUse the requests package to call this REST endpoint. Add it to the apps dependencies and handle timeouts and non-success responses.安装完成后Agent 会同步把依赖写进应用的依赖定义文件。方式二编辑requirements.txt打开应用Code视图中的requirements.txt在独立的一行添加包名并保存。Reflex 会安装依赖并重新编译应用。安装后请在Preview与构建输出中检查导入错误或兼容性问题。源码视角requirements.txt 在 Reflex 项目中如何被处理从仓库源码可以印证requirements.txt在 Reflex 项目中的实际角色。reflex/utils/frontend_skeleton.py中的initialize_requirements_txt函数frontend_skeleton.py实现了以下逻辑如果项目已使用pyproject.toml管理依赖则把依赖管理交给包管理器不再触碰requirements.txt否则确保requirements.txt存在并检查其中是否已包含 Reflex 自身的依赖规格_has_reflex_requirement_line若缺失则追加reflex当前版本之类的固定版本行RequirementsTxt.DEFAULTS_STUB保证 legacy 工作流也能锁定 Reflex 版本。也就是说requirements.txt既是 Reflex 传统工作流的依赖入口也是 Reflex Build 应用声明 Python 依赖的文件之一。此外reflex/reflex.py在项目初始化后给出的下一步提示中明确建议用uv pip install -r requirements.txt或你偏好的安装器安装依赖reflex.py这与保存 requirements.txt 后 Reflex 自动安装并重编译的 Builder 行为是同一条依赖管线。固定版本保证可重复构建文档特别强调为已部署应用固定或约束依赖版本使未来的构建保持可重复repeatable版本升级应是有意的、经过兼容性审查后进行的。这与源码中initialize_requirements_txt主动追加固定版本 Reflex 依赖的做法一脉相承——可变依赖floating dependency是部署可复现性的主要风险源。Package LimitationsBuilder 环境的安装边界并非所有 PyPI 包都能在 Builder 环境中安装。原文档指出两类常见限制包体积过大too large依赖了 Builder 环境不可用的操作系统级库depend on operating-system libraries that are unavailable。当某个包无法安装时文档给出的替代路径是为该能力使用托管 APIhosted API或其他受支持的服务。这与 Call an External API 文档的定位正好衔接当本地包不合适时改用 HTTP API 是一种一等公民方案。典型的决策链如下需要某能力 ├─ 有合适的小型 Python 包 → 提示词点名安装 / 编辑 requirements.txt ├─ 包过大或依赖 OS 库 → 使用托管 API见 docs/ai_builder/apis.md └─ 需要专用 SDK → 提示词中点名 SDK 包配合 Knowledge 沉淀用法在使用托管 API 时apis.md 要求先弄清基础 URL、认证方式、请求/响应格式、限流与超时与错误文档凭据放入 Secrets以环境变量名如BILLING_API_TOKEN在提示词中引用绝不在提示词或源码中写值。后端 Python 代码通过os.environ读取import os stripe_secret_key os.environ[STRIPE_SECRET_KEY]端到端实践pandas CSV 校验工作流的完整提示综合本文所有要点给出一个可复制的完整示例提示词供 Reflex Build 对话使用Use pandas to build a CSV upload and validation workflow. Show rows with missing email addresses or invalid dates before the user confirms the import. Follow these constraints: - Read the CSV only in the backend event handler, never in the browser. - Parse dates with pandas and surface rows that fail validation as a preview table. - Add pandas to requirements.txt with a pinned version. - Do not read the uploaded file client-side; build an upload workflow so app users can provide CSV files at runtime.这段提示词同时覆盖了点名包pandas、行为描述上传校验预览、运行时上传需求明确要求 upload workflow、依赖固定pinned version与后端执行边界。它演示了把本文全部要点落到一次提示中的写法。上线前的审查清单综合原文档与配套资料为为 Reflex Build 应用引入 Python 库整理一份上线前清单包与版本审查 Agent 选定的包名、版本与许可证确认与项目合规要求相符可重复性requirements.txt或pyproject.toml中的依赖已固定版本升级是显式且有意的构建结果在Preview和构建输出中检查导入错误与兼容性问题运行时行为如果用户在运行时需要提供文件确认 Agent 已构建上传工作流而非仅依赖提示附件凭据安全API 密钥等放入 Secrets 或集成表单通过环境变量名引用绝不写入提示词或源码参考 secrets.md无法安装的包确认是否应切换为托管 APIapis.md知识沉淀对常用专用包将版本、用法示例与约束写入应用 Knowledgeknowledge.md。相关文档导航Install External Packages —— 添加或固定依赖的两种方式Knowledge —— 项目级与应用级的 Agent 上下文Call an External API —— 本地包不合适时改用 HTTP APISecrets —— 安全存储 API 凭据并以环境变量引用Files —— 提示附件支持的格式、大小与仅作上下文的语义What Is Reflex Build —— AI Builder 生成的 Reflex 项目结构【免费下载链接】reflex️ Web apps in pure Python 项目地址: https://gitcode.com/GitHub_Trending/re/reflex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考