.env 完成。复制 example.env 并填入你的值:
配置级别
每个集成都有一个配置级别,表示其重要性:注意:管理员配置的模型(管理员 → 模型页面)可以替代 LLM 环境变量。健康检查会考虑两个来源。
前端(仅本地开发)
前端有一个仅用于本地开发的独立环境文件:frontend/.env.local。
此文件在 Docker 中不使用。 在 Docker 容器内,Next.js 在内部将 /api/* 代理到 Python 后端(端口 8000 是容器内部的),因此不需要前端环境文件。
对于本地开发,默认设置开箱即用 — 除非你的后端运行在非默认端口,否则不需要创建 frontend/.env.local。
如果需要覆盖,请手动创建 frontend/.env.local:
构建时注意:NEXT_PUBLIC_*变量在pnpm build时被烘焙到 JS 包中。在运行时更改它们(例如通过根目录.env)无效 — 这就是为什么它们仅存在于本地开发的frontend/.env.local中。
LLM(必需)
解析顺序:用户偏好 → 管理员模型(数据库)→ ENV 回退。如果在管理员 → 模型中配置了角色为”通用”的管理员模型,这些 ENV 变量仅作为回退。健康检查考虑两个来源。
MarkItDown OCR 分辨率
convert_to_markdown 内置工具和 RAG 摄取管道都使用 Microsoft 的 MarkItDown + 官方 markitdown-ocr 插件从文档中提取文本 — 包括在有支持视觉的 LLM 可用时对嵌入图像和扫描 PDF 页面进行 OCR。
视觉 LLM 分辨率顺序(首次匹配获胜):
推理模型永远不会被优先选择用于 OCR。 推理层级(
o1、o3-mini、DeepSeek-R1)历来缺乏视觉支持,本身也不是 OCR 的合适工具 — OCR 是一项感知任务,而非推理任务。如果工作区仅有一个支持视觉的推理模型(supports_vision=True),它仍会通过主要 LLM 路径被选中,但解析器不会主动将其排名高于快速/通用模型。
零回归备选方案:当在任何级别都找不到支持视觉的模型时,OCR 会被静默禁用,MarkItDown 以纯文本模式运行。Word/PowerPoint/Excel 嵌入图像 OCR 变为不可用(与此功能发布前相同),但所有其他文本提取(标题、表格、段落文本)继续正常工作。不存在添加此功能使提取效果比之前行为更差的情况。
非 OpenAI 提供商(Anthropic、Google Gemini 等) 得到透明支持:解析的 LLM 被包装在 LiteLLMOpenAIShim 中,该 shim 将 chat.completions.create(...) 调用路由通过 litellm.completion(),后者处理提供商特定的消息格式转换(例如 Anthropic 的 source.type="base64" 图像块)。一个 shim 覆盖 LiteLLM 支持的每个提供商 — 添加新提供商在 FIM One 中零代码更改成本。
扩展思维(推理)
当设置LLM_REASONING_EFFORT 时,FIM One 启用模型的扩展思维能力,使内部思维链在 UI 的”思维”步骤中显示。FIM One 使用 LiteLLM 自动将推理努力参数转换为每个提供商的原生格式。
支持的提供商
LiteLLM 从
LLM_BASE_URL 自动检测提供商,并将其映射到正确的 API 格式。未知 URL 被视为 OpenAI 兼容。
重要注意事项
推理时的温度约束
某些提供商在启用推理时会施加温度限制:- Anthropic: 启用扩展思考时需要
temperature=1。如果使用 Anthropic 的扩展思考功能,你必须设置LLM_TEMPERATURE=1— 当启用思考时,Anthropic 会拒绝其他值。 - OpenAI GPT-5.x: 始终仅支持
temperature=1。LiteLLM 的drop_params过滤会自动处理此问题 — 不支持的温度值会被静默丢弃。对于 GPT-5.x,无需用户采取任何操作。
LLM_REASONING_BUDGET_TOKENS 的工作原理
此变量主要对 Anthropic 路径有意义。设置时,它会覆盖自动计算的预算,并通过 LiteLLM 作为 thinking 参数中的 budget_tokens 发送。未设置时,预算从 LLM_MAX_OUTPUT_TOKENS x 努力比率派生:
最小预算为 1,024 tokens(Anthropic 的硬性最小值)。
对于 OpenAI 和 Gemini,提供商根据
reasoning_effort 级别在内部处理 token 分配 — LLM_REASONING_BUDGET_TOKENS 无效。
智能体执行
ReAct 智能体
DAG 规划器
领域分类
控制独立的基于LLM的领域检测层,在ReAct和DAG执行之前运行。当查询被分类为专家领域时,系统激活领域感知功能:升级到推理模型、领域特定的SOP指令和引用验证(仅DAG)。上下文守卫
控制自动上下文窗口管理,防止对话超过模型的限制。内容护栏
逗号分隔的护栏名称,用于检查内容的输入或输出。独立于工具权限闸门(core/hooks/*)和安全层(core/security/*)。详见内容护栏。
智能体工作区
系统
Web 工具(可选)
快速开始提示:仅设置 JINA_API_KEY 即可同时启用网页搜索、网页获取、嵌入和重排序——一个密钥,四项服务。您可以使用下面的变量单独覆盖每项服务。
RAG 与知识库(推荐)
嵌入
嵌入将文本转换为向量以进行知识库搜索。FIM One 使用标准的 OpenAI 兼容/v1/embeddings 端点,因此它适用于任何公开此接口的提供商 — 不仅仅是 Jina。
提供商示例 — 只需设置这三个变量即可切换:
检索
重排器
重排器对检索到的文档重新评分以提高相关性。支持三个提供商 — 通过RERANKER_PROVIDER 选择或让系统从可用的 API 密钥自动检测。
Jina 使用JINA_API_KEY(来自上面的 Web 工具)。OpenAI 复用LLM_API_KEY/LLM_BASE_URL— 无需额外密钥。Cohere 需要其自己的COHERE_API_KEY。
重排器是可选的 — 知识库搜索可以在不使用它的情况下使用融合评分。对于知识库功能,推荐使用嵌入。
向量存储
代码执行
安全性:local模式直接在主机上运行 AI 生成的代码。对于面向互联网或多用户部署,始终设置CODE_EXEC_BACKEND=docker。
工具制品
工具执行(代码执行、模板渲染、图像生成)产生的文件的大小限制。文档处理(可选)
控制上传的 PDF/DOCX 文件如何被处理以供 LLM 使用。具有视觉能力的模型(GPT-4o、Claude 3/4、Gemini)可以接收渲染后的 PDF 页面作为图像,以获得更高的保真度。
注意:每个模型的视觉支持通过管理员 → 模型中的 supports_vision 开关进行配置。未明确设置时,系统会从模型名称自动检测视觉能力。
图像生成(可选)
电子邮件(SMTP)(推荐)
当设置了SMTP_HOST、SMTP_USER 和 SMTP_PASS 时,自动注册 email_send 内置工具。
连接器
平台
工作流运行保留
自动清理旧工作流运行的后台任务。按工作流的覆盖设置(在工作流设置UI中配置)优先于这些全局默认值。通道确认请求过期
后台清理程序,将陈旧的待审批请求(由通道钩子如FeishuGateHook 或审批演练场产生)标记为已过期。确保稍后点击被遗忘的卡片不会翻转已被拆除的智能体状态。
OAuth(可选)
当为提供商同时设置CLIENT_ID 和 CLIENT_SECRET 时,登录页面会自动显示相应的 OAuth 按钮。
生产环境 = 本地可选(使用默认值),但对于任何面向互联网的部署都必需。
需要向每个提供商注册的 OAuth 回调 URL
后端构造回调 URL 为:{API_BASE_URL}/api/auth/oauth/{provider}/callback
Cloudflare Tunnel(可选)
通过 Cloudflare 的网络路由所有流量,而不是直接暴露端口。无需 Nginx、SSL 证书和开放防火墙规则。有关设置说明,请参阅生产部署部分。分析(可选)
所有分析提供商都是可选的。设置任意组合——所有活跃的提供商同时加载。全部留空可禁用分析(建议用于本地开发)。
所有 NEXT_PUBLIC_* 分析变量都是构建时的——更改需要前端重新构建才能生效。
Stripe 计费(可选)
Stripe 为 Pro 订阅提供支持。将所有三个变量留空可禁用计费——FIM One 的其余部分保持不变。必须同时设置STRIPE_SECRET_KEY 和 STRIPE_WEBHOOK_SECRET;部分配置会在首次使用时引发错误。