> https://router.one/zh/blog/ragflow-vs-maxkb-vs-fastgpt-vs-anythingllm 的 Markdown 镜像，供 AI 助手与爬虫使用。Router One 是 OpenAI 兼容的统一 LLM API 网关。
> 发布：2026-09-22 · 修订：2026-09-23 · 作者：Router One Team

# RAGFlow、MaxKB、FastGPT、AnythingLLM 横评：知识库应用共用一把网关 Key

_RAGFlow、MaxKB、FastGPT、AnythingLLM 接入对照：/v1 填在哪、Embedding 为何另配、哪些隐藏调用会计费、怎样用 maxSpend 设上限。_

四个知识库应用，同一个问题：把聊天模型调用改走 Router One 之后，到底变了什么？应用内部几乎没变。**RAGFlow** 仍用 DeepDoc 解析文档、基于切分好的知识库作答，**MaxKB** 仍用来搭知识库助手和智能体工作流，**FastGPT** 仍运行知识库工作流，并通过内置的 AI Proxy 连接模型，**AnythingLLM** 仍在桌面版或容器里基于你上传的文档聊天。解析、切分、Embedding、Rerank、向量库、检索和 Agent 都留在应用里。变的是底下那次聊天请求：一把 `sk-` Key，[/models](https://router.one/zh/models) 里的精确模型 ID，以及每次模型调用在 Dashboard → Logs 里的一条 Trace，含模型、tokens、费用、延迟、状态和 request_id。回答时，到达网关的只有拼好的提示词，检索到的切片已经在里面；解析、提问阶段的附加选项和后台功能会把切片文本、问题或聊天记录作为单独的请求发出（见下文「会花钱的隐藏模型调用」）。四个应用都可以自部署；Router One 在中国大陆可以直连，部署在国内服务器上也不需要配 VPN。

一句话结论。**RAGFlow**：一个 OpenAI-API-Compatible 提供商实例，「基础 URL」填 `https://api.router.one/v1`，每个目录 ID 一行模型记录，「最大 Token 数」填模型的上下文窗口。**MaxKB**：OpenAI 供应商，目录 ID 填在「基础模型」里，不是「模型名称」里。**FastGPT**：在 AI Proxy 里建一个 OpenAI 协议渠道，再加一条「模型配置」，模型ID 就是精确的目录 ID。**AnythingLLM**：Generic OpenAI provider，Base URL 带上 `/v1`，上下文窗口要自己填。四个应用里，Embedding 模型都留在别的供应商或本地模型上。下文内容于 2026-09-23 按 RAGFlow v0.27.2、MaxKB v2.10.6-lts、FastGPT V4.17.0 和 AnythingLLM v1.16.1 核对。

## 对照表

| 工具 | 运行位置 | 带 /v1 的地址填在哪 | 实际协议 | 模型 ID 怎么填 | 留在工具侧的部分 |
| --- | --- | --- | --- | --- | --- |
| RAGFlow | x86 主机上的 Docker Compose（4 核以上、16 GB 内存、50 GB 磁盘）；Web 界面在 80 端口 | 「用户设置」→「模型提供商」→ OpenAI-API-Compatible 实例：「基础 URL」 | Chat Completions，经官方 openai Python SDK 发出 | 「模型列表」（来自 `GET /v1/models`，所有 ID 都标成 Chat），或「添加自定义模型」手填 | DeepDoc 解析与切分；Embedding、Rerank、ASR、TTS 默认模型；文档引擎（默认 Elasticsearch，也可通过 `DOC_ENGINE` 换成其他引擎）；聊天助手、搜索、Agent 画布 |
| MaxKB | Docker（`1panel/maxkb`）；Web 界面在 `http://your_server_ip:8080` | 「模型」→ OpenAI →「添加模型」：API URL（文档里也叫「API 域名」） | Chat Completions；ID 含 `codex` 时改走 Responses | 「基础模型」是可输入的下拉框，手填 ID；「模型名称」只是标签 | 知识库及其向量模型；基于 PostgreSQL + pgvector 的检索；工具；工作流执行 |
| FastGPT | 用官方 Docker Compose 模板自部署；从 V4.17.0 起 AI Proxy 是必需服务 | 管理员 →「模型提供商」→「模型渠道」→「新增渠道」：代理地址，协议类型选 OpenAI | Chat Completions；Anthropic 类型的渠道会改发 `/messages` | 「模型配置」→「新增模型」：手填模型ID，再在渠道的「模型」里选中 | 知识库，其索引和重排模型放在另一个渠道；工作流节点；AI Proxy 的「调用日志」；FastGPT 积分 |
| AnythingLLM | 桌面版（macOS、Windows、Linux）或 Docker；`http://localhost:3001` | Settings → AI Providers → LLM → Generic OpenAI：Base URL，或 `.env` 里的 `GENERIC_OPEN_AI_BASE_PATH` | Chat Completions，经官方 openai Node SDK 发出 | Selected Model：从 `/models` 加载的下拉框，请求失败时变成文本框 | embedder（内置 all-MiniLM-L6-v2）、LanceDB、本地运行的 reranker、@agent 技能、工作区 |

四个应用发的都是 `POST /v1/chat/completions`，这个端点服务目录里的所有聊天模型（GPT、Claude、Gemini、Grok 和 DeepSeek 系列），所以 `anthropic/claude-sonnet-5` 连同前缀在四个应用里都能用，也没有一个会把 ID 里的斜杠拆掉。有一个例外：MaxKB v2.10.6-lts 自带的 langchain-openai 1.3.2 会把 ID 中含 `codex` 的模型（例如 `codex-auto-review`）改发到 `POST /v1/responses`，所以在 MaxKB 里用这类 ID 前，先确认模型详情页列出了 `/v1/responses`。有两种配置会以消息里写着 `must be called via` 的 HTTP 400 告终：一是被 RAGFlow「模型列表」标成 Chat、发到 Chat Completions 的生图模型 ID；二是在用 Anthropic 协议类型建的 FastGPT 渠道上配 GPT、Gemini 或 Grok 的 ID，这类渠道发到 `/v1/messages`，而网关只为它列出的 Claude 系列和 DeepSeek ID 提供这个端点。除了 MaxKB 的 `codex` 规则，和[低代码搭建工具横评](https://router.one/zh/blog/dify-vs-flowise-vs-langflow-vs-n8n)里的 n8n 不同，本文这几种配置都不会发 `/v1/responses`。最后一列是边界：里面没有一项跑在网关上。

## RAGFlow：一个 OpenAI-API-Compatible 实例，每个模型一行

从 v0.27.0 起，RAGFlow 的模型设置改为按提供商实例管理。打开「用户设置」→「模型提供商」，在「可选模型」里选 OpenAI-API-Compatible，填写新实例卡片：

```
# RAGFlow v0.27.2 → 用户设置 → 模型提供商 → OpenAI-API-Compatible
实例名称（Instance name）:    router-one           # 除了 "default" 都可以
基础 URL（Base URL）:         https://api.router.one/v1
API Key:                      sk-your-router-one-key
# 模型 → 模型列表（List models），或点 + → 添加自定义模型
模型名称（Model name）:       <exact-model-id-from-/models>
模型类型（Model type）:       Chat                 # 支持图片输入时才加选 VLM
最大 Token 数（Max tokens）:  <context-window-from-the-model-page>
Tool call:                    仅当模型详情页列出工具调用时打开
# 保存 → 设置默认模型 → LLM：选这个模型
```

v0.27.0 及以后会补上缺失的 `/v1`，更早的版本不会，所以无论哪个版本都填带 `/v1` 的形式，也不要把完整的 `/chat/completions` 路径贴进去。「模型列表」会把整份目录预先加成 Chat 类型，生图模型 ID 也不例外；用不到的行要移除。「最大 Token 数」是 RAGFlow 自己给历史消息和检索切片留的上下文预算，不是生成上限：它不会出现在请求里，填 0 时回退为 8192。

**最常见的第一个报错。** 保存时报 `Fail to access model(OpenAI-API-Compatible/…).No valid response received`，这是 RAGFlow 对测试对话的笼统结论。网关的真实答复在 `docker logs -f docker-ragflow-cpu-1` 里包含 `async base giving up` 的那一行：401 `AUTH_INVALID_API_KEY` 是 Key 的问题，404 `not_found` 是路径的问题，400 `must be called via` 则是被标成 Chat 的生图模型 ID。指南：[RAGFlow 接入 Router One](https://router.one/zh/integrations/ragflow)。

## MaxKB：OpenAI 供应商，ID 填在「基础模型」里

MaxKB 的模型表单有两个名称，只有一个会到达网关。「模型名称」是显示标签；「基础模型」才是作为 `model` 发出的值。「基础模型」是带预设选项的可输入下拉框，不是从 Router One 拉取的列表，所以要手动输入完整的目录 ID，并确认为新选项。

```
# MaxKB v2.10.6-lts → 模型 → OpenAI → 添加模型
模型名称（Model name）:  Router One chat                  # 只是显示标签
模型类型（Model type）:  大语言模型（LLM）
基础模型（Base model）:  <exact-model-id-from-/models>    # 手动输入，原样发送
API URL:                 https://api.router.one/v1        # 文档里也叫「API 域名」
API Key:                 sk-your-router-one-key
```

即使 ID 以 `anthropic/` 或 `google/` 开头，也选 OpenAI 供应商：它选的是兼容协议，不是模型系列。API URL 后面不要再加 `/chat/completions`。

**最常见的第一个报错。** 保存时 MaxKB 会用一句问候真实调用模型做验证，OpenAI 大语言模型的参数表单默认带 temperature 0.7 和最大输出 8192 tokens，这是 MaxKB 自己的默认值。400 里点名 temperature 或输出 token 参数，是模型拒绝了这个参数：到「高级设置」或「模型参数设置」里调整或删掉它，换 Key 或改 base URL 都没用。指南：[MaxKB 接入 Router One](https://router.one/zh/integrations/maxkb)。

## FastGPT：AI Proxy 里的一个 OpenAI 协议渠道

从 V4.17.0 起，FastGPT 必须部署内置的 AI Proxy，模型走它的渠道（单个模型的自定义请求地址仍可用，但已标记即将弃用），旧的 `OPENAI_BASE_URL` 和 `CHAT_API_KEY` 变量已不再生效。`AIPROXY_API_ENDPOINT` 让 FastGPT 指向 AI Proxy，而不是 Router One；Router One 的 Key 只填进渠道表单：

```
# FastGPT V4.17.0 → 管理员 → 模型提供商 → 模型渠道 → 新增渠道
协议类型（Protocol Type）:  OpenAI
代理地址（Base url）:       https://api.router.one/v1      # 英文文档叫 Proxy URL
API 密钥（API key）:        sk-your-router-one-key
模型（Model）:              <exact-model-id-from-/models>
模型映射（Model Mapping）:  留空（两边 ID 一致时）
# 模型配置 → 新增模型 → 模型ID：同一个精确 ID
# 保存 → 模型测试 → 批量测试 N 个模型
```

渠道的「模型」下拉框只列「模型配置」里已有的模型，所以先在那里登记目录 ID；它的模型ID 就是 FastGPT 请求体里 `model` 字段的值。代理地址要保留 `/v1`：相反的口径属于 one-api 和 new-api，它们的 OpenAI 渠道类型会自己拼完整的 `/v1/chat/completions`（见 [API 中转站](https://router.one/zh/llm-api-relay-station)）。只有模型详情页列出工具调用时，才在模型配置里打开「支持工具调用」：打开后工具调用节点发送原生 tools，关闭时改为在提示词里描述工具；V4.17.0 的问题分类和内容提取节点无论开关与否都只发普通提示词。

**最常见的第一个报错。** 渠道测试通过，应用里调用却报 400 或 404：模型启用时的拼写和目录 ID 不一致，或者「模型映射」指向了已下架的 ID。先看 AI Proxy「调用日志」里的请求地址，再到 Dashboard → Logs 看错误消息和 request_id。指南：[FastGPT 接入 Router One](https://router.one/zh/integrations/fastgpt)。

## AnythingLLM：Generic OpenAI provider，上下文窗口自己填

AnythingLLM 桌面版只有设置表单；Docker 镜像还会在启动时从挂载到 `/app/server/.env` 的文件里读取同样这几个键。

```
# AnythingLLM v1.16.1 → Settings → AI Providers → LLM → Generic OpenAI
#（Docker：右侧是对应的 .env 键）
Base URL:              https://api.router.one/v1             # GENERIC_OPEN_AI_BASE_PATH
API Key:               sk-your-router-one-key                # GENERIC_OPEN_AI_API_KEY
Selected Model:        <exact-model-id-from-/models>         # GENERIC_OPEN_AI_MODEL_PREF
Model context window:  <context-window-from-the-model-page>  # GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT
Max Tokens:            1024                                  # GENERIC_OPEN_AI_MAX_TOKENS
# 仅 .env：LLM_PROVIDER='generic-openai'
```

AnythingLLM 从不向网关读取上下文窗口：表单里这一栏必填；Docker 的 `.env` 没写 `GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT` 时，它按 4096 tokens 分配预算。Max Tokens 是每次请求携带的 `max_tokens`（默认 1024），回答经常说到一半就停，就把它调大。工作区可以在 Workspace Settings → Chat Settings 里换模型，但不能换 Key：所有工作区都记在系统级的那一把 Key 上。

**最常见的第一个报错。** 404 `not_found`，消息里说 base URL 需要以 `/v1` 结尾。表单占位符显示的是不带路径的主机名，而你填什么它就用什么。指南：[AnythingLLM 接入 Router One](https://router.one/zh/integrations/anythingllm)。

## Embedding 和 Rerank 留在别的供应商或本地模型上

在这几个应用里，Router One 只能填聊天模型这一格：没有 `/v1/embeddings`，也没有 rerank 端点，所以会出现模型测试通过、第一份文档却卡在 Embedding 这一步的情况。每个应用都把这些模型单独设置：

- **RAGFlow** 除了 LLM 还要求一个默认 Embedding 模型，而从 v0.22.0 起它的镜像里一个都没有：可以用 Compose 文件里可选的 TEI 服务（`docker/.env` 里的 `tei-cpu` 或 `tei-gpu` profile）、Ollama 或 Xinference 上的模型（例如 bge-m3），或另一家供应商。在 Router One 实例里，不要给任何模型选 Embedding 或 Rerank 类型，这两种类型会请求 `/v1/embeddings` 和 `/v1/rerank`。
- **MaxKB** 由每个知识库单独选择向量模型。OpenAI 供应商表单里有「向量模型」类型，但 Router One 并没有实现这个端点。
- **FastGPT** 至少要有一个语言模型和一个索引模型才能给知识库建索引。Router One 渠道里只放语言模型；索引、重排、语音合成、语音识别模型来自另一家供应商的渠道。
- **AnythingLLM** 默认保留内置 embedder（all-MiniLM-L6-v2，在 CPU 上运行、不调用外部 API），除非你在 Settings → AI Providers → Embedder 里另选供应商。它的模型卡只标注了英文，中文或其他非英文资料换一个 embedder 检索效果可能更好；Generic OpenAI 这个 embedder 选项和 `EMBEDDING_BASE_PATH` 都不能指向 Router One。向量存进内置的 LanceDB，v1.16.1 源码里唯一的 reranker 在应用内部运行。

建库之前先定好 Embedding 模型。RAGFlow 知识库一旦有了文本块，更换 Embedding 模型时会抽样重新编码做兼容性校验，新旧向量的平均 cosine 相似度 ≥ 0.9 才允许切换，否则必须先删除全部文本块。AnythingLLM 换 embedder 则意味着所有上传内容都要重新嵌入。

## 会花钱的隐藏模型调用

知识库应用发出的聊天请求，远多于用户提出的问题。下面每一项都是同一把 Key 上的真实请求，在 Dashboard → Logs 里各占一行，只要模型作答就会计费：

- **保存和测试按钮。** RAGFlow 点「保存」和每一行的验证按钮时，都会流式发一句测试用的 `Hi`；「验证全部模型」会逐个测试列表里的模型。MaxKB 保存模型时会用一句问候调用它。FastGPT 的「模型测试」对每个模型真实发一次请求。
- **解析与导入。** RAGFlow 每打开「自动关键词提取」「自动问题提取」「自动元数据」中的一项，就会对每个切片调用一次默认 LLM：2,000 个切片、开了两项，就是大约 4,000 次请求；知识编译默认允许单个任务最多 20 个并发 LLM 调用。MaxKB 的「生成问题」对每个分段发一次请求，可以针对一份文档或整个知识库，用的是在对话框里选的模型。FastGPT 的「问答对提取」模式对每个排队的切片向知识库的「文本理解模型」发一次请求，「自动生成补充索引」用的也是这个模型。
- **每一次提问。** RAGFlow 聊天助手里，「多轮对话优化」（从第二个问题开始）、「关键词分析」和「跨语言搜索」每开一项，每轮就多一次请求；「思考」选 Low 以上的档位（Medium、High 或 Ultra）时会跑 Agentic 检索循环，每次回答还可能多出好几次请求。MaxKB 的「问题优化」每轮多一次，根据最近三轮对话改写问题。FastGPT 的「问题优化」给每次使用它的知识库搜索多加一次，「猜你想问」在回答之后再发一次，写出三个追问；设置了「对话标题模型」时，每个新对话还多一次。
- **Agent 与重试。** 带工具的 RAGFlow Agent 组件，工具循环最多发「最大反思轮数」+1 次模型调用，达到上限时再补一次收尾调用（画布上新建的 Agent 默认 1，源码在未设置时回退为 5）；失败的调用按组件自己的「最大重试轮数」重试（新建组件默认 3）。「问题分类」（Categorize）组件同样调用模型，聊天助手和解析任务则对限流和服务端错误最多重试 `LLM_MAX_RETRIES` 次（默认 5）。FastGPT 的工具调用、问题分类、内容提取节点各算一次请求，AI Proxy 还会重试失败的请求（官方模板里是 `RETRY_TIMES: 3`）。MaxKB 的 AI 对话节点会在最终回答之外增加调用。AnythingLLM 的每一步 @agent 都是一次请求，它的文档摘要每个分段发一次，超过第三段时会先问你是否继续。
- **后台任务。** AnythingLLM 打开 Enable Personalization 之后，Automatic Memories（此后默认开启）默认每三小时运行一次。对每个有五条以上新对话、且已空闲 20 分钟的用户与工作区，先跑一次 Observer，Observer 提出候选记忆时再跑一次 Reflector；每一次都是最多三轮的 Agent 运行，用的是工作区聊天模型（没有则用 Agent 模型，再没有则用系统 LLM）。Scheduled Jobs 按 cron 计划运行 Agent 提示词，这时没有人在旁边看着，而且工具调用会被自动批准，文档摘要超过第三段时也不会停下来询问。

这些开关都不是消费上限。真正的上限是 Key 上的 `maxSpend`：触及之后网关返回 HTTP 402（见[错误码](https://router.one/zh/llm-api-error-codes)），花费不会超过这个上限，你的其他 Key 也照常可用。在 Dashboard → API Keys 里给每套部署单独建一把 Key；应用能按连接保存 Key 的地方还可以再拆细：RAGFlow 再建一个 OpenAI-API-Compatible 实例、配另一把 Key，就能把解析和聊天的花费分开；MaxKB 每条模型记录都有自己的 API Key，所以「生成问题」可以用第二把 Key 的另一条记录来跑。FastGPT 里决定走哪个渠道的是模型 ID 而不是应用，所以第二个配另一把 Key 的 Router One 渠道，只能把它所服务的那些模型 ID 的花费分开，例如知识库的文本理解模型（同一个 ID 不要同时放进两个渠道，否则 AI Proxy 会在两者之间负载均衡）。AnythingLLM 的 Key 放在所有工作区共用的系统设置里，只能按实例拆分。批量解析也最容易撞上限流：网关返回的 429 如果带 `RATE_LIMIT_EXCEEDED` 或 `TOKEN_QUOTA_EXCEEDED`，那是速率限制，不是消费上限；这些限制从平台默认值起步，可发邮件到 support@router.one 申请提高。

## 在 Dashboard → Logs 里核对

应用自己的计数不是账单。RAGFlow 在数据块不带 usage 时会在本地估算流式 tokens，MaxKB 在响应不带 usage 时改用自己的 token 估算（它的流式调用不会请求 usage），FastGPT 用积分给你的用户在内部计量，AnythingLLM 在应用内自行计算 token 指标，除非设置 `GENERIC_OPEN_AI_REPORT_USAGE=true` 要求在流中返回 usage。Dashboard → Logs 才是逐请求的费用，所以在那里核账（见[成本追踪](https://router.one/zh/llm-cost-tracking)）：导入一份小文档、问一个问题，只打开打算长期保留的选项；在 Logs 里按这段时间窗和精确的模型 ID 过滤；再把这些行和保存测试、每个解析选项对每个切片的请求、提问阶段的附加请求以及最终回答一一对上。报障时保留失败那一行的 request_id。

少了某一行，先别断定请求没到网关。尚待定价的记录可能暂时不展示；应用的服务端日志（FastGPT 看 AI Proxy 的「调用日志」）会显示它实际收到的状态；FastGPT 里同一个模型 ID 如果配在两个渠道里，这次调用可能被另一个渠道接走了。被应用中途断开的流式请求会记为 HTTP 499 `client_cancelled`；从 1.16.0 起，在 AnythingLLM 里停止回答会真正终止推理，而不是让它在后台继续跑。路径、Key 和 DNS 的排查见[连接排查](https://router.one/zh/api-connection-troubleshooting)。

## 怎么选

四个应用通过同一个端点到达同一份模型目录，所以看的是模型调用周围的东西。

- 难点在文档解析，选 **RAGFlow**：DeepDoc、按知识库设置的解析选项和知识编译模板，代价是一套需要 16 GB 内存的 Docker 服务。
- 想用一个容器同时提供知识库助手和智能体工作流，模型表单也短（一个标签、一个基础模型、一个 API URL 和一把 Key），选 **MaxKB**。
- 应用是带问题分类、内容提取和工具调用节点的工作流，还希望所有模型供应商前面都有 AI Proxy 的渠道和调用日志，选 **FastGPT**。
- 个人或小团队想在桌面或单个容器里做文档问答，embedder 和向量库都内置，英文资料场景下唯一要接的模型服务就是聊天模型，选 **AnythingLLM**。
- 知识库只是更大的应用搭建平台里的一部分，选 **Dify**：见 [Dify 接入 Router One](https://router.one/zh/integrations/dify) 和 [Dify、Flowise、Langflow、n8n 横评](https://router.one/zh/blog/dify-vs-flowise-vs-langflow-vs-n8n)。

全部接入指南在 [/integrations](https://router.one/zh/integrations)。

## 常见问题

**RAGFlow、MaxKB、FastGPT、AnythingLLM 该选哪个？**
四个应用通过同一个端点到达同一份模型目录，所以看的是模型调用周围的东西。难点在文档解析选 RAGFlow；想用一个容器提供知识库助手和智能体工作流、模型表单也短，选 MaxKB；应用是工作流、又希望所有模型供应商前面都有 AI Proxy 的渠道，选 FastGPT；想在桌面或单个容器里做文档问答、embedder 和向量库都内置，选 AnythingLLM。

**RAGFlow、MaxKB、FastGPT、AnythingLLM 能用 Router One 做 Embedding 或 Rerank 吗？**
不能。Router One 在 /v1/chat/completions 上提供聊天模型，没有 embeddings 和 rerank 端点。这些模型要放在别的供应商或本地模型上，例如 RAGFlow 可选的 TEI 服务、Ollama 上的模型或 AnythingLLM 的内置 embedder，只把 LLM 这个位置指向网关。

**这些知识库应用里的 base URL 要不要带 /v1？**
四个都要带：`https://api.router.one/v1`。它们都会在你填的地址后面拼 /chat/completions。RAGFlow v0.27.0 及以后会补上缺失的 /v1，更早的版本不会；FastGPT 的渠道也要带 /v1，尽管 one-api 和 new-api 的 OpenAI 渠道类型不带 /v1。不要贴完整的 /chat/completions 地址。

**Claude 或 Gemini 模型要换别的供应商类型吗？**
不用。RAGFlow 的 OpenAI-API-Compatible、MaxKB 的 OpenAI 供应商、FastGPT 的 OpenAI 协议类型和 AnythingLLM 的 Generic OpenAI 发的都是 Chat Completions，这个端点服务目录里的所有聊天模型。填带前缀的精确 ID，例如 anthropic/claude-sonnet-5；FastGPT 的 Router One 渠道不要用 Anthropic 协议类型。

**没人聊天，知识库应用为什么还在消耗 tokens？**
解析和后台任务同样会调用聊天模型：RAGFlow 的「自动关键词提取」「自动问题提取」「自动元数据」每个切片各一次，MaxKB 的「生成问题」每个分段一次，FastGPT 的「问答对提取」每个排队切片一次，AnythingLLM 的 Automatic Memories 和 Scheduled Jobs 定时运行。保存和测试按钮也会发真实请求，每一次都是 Dashboard → Logs 里的一行。

**怎样给一个知识库应用设消费上限？**
为这套部署单独创建一把 Router One Key，并给它设置 maxSpend。触及上限后，网关只对这把 Key 返回 HTTP 402，失控的解析任务就停在那里，花费不会超过这个上限，你的其他 Key 也照常可用。在 RAGFlow 里，再建一个提供商实例、配第二把 Key，就能把解析和聊天的花费分开。

**模型测试通过了，导入文档却失败，为什么？**
测试只证明了聊天模型可用。建索引需要 Embedding 模型，而 Router One 不提供这个端点，所以检查 RAGFlow 的默认 Embedding 模型、MaxKB 知识库的向量模型、FastGPT 知识库的索引模型，或 AnythingLLM 的 Settings → AI Providers → Embedder，是否指向了别的供应商或本地模型。

## 相关页面

- 本页规范地址：https://router.one/zh/blog/ragflow-vs-maxkb-vs-fastgpt-vs-anythingllm
- LLM API 网关与路由：https://router.one/zh/llm-api-gateway
- 全部博客文章：https://router.one/zh/blog
- 模型与每模型 token 价格：https://router.one/zh/models （markdown：https://router.one/zh/models.md ）
- 定价：https://router.one/zh/pricing
- API 文档（markdown）：https://router.one/zh/docs.md
- 公司事实（markdown）：https://router.one/zh/facts/company.md
