LlamaIndex 替代方案

LlamaIndex 负责检索。ModelRiver 负责模型调用。

保留您的索引、检索器和查询引擎。让模型调用经过 ModelRiver,即可获得备用模型、请求日志、结构化输出和限额,无需重写管道。

RAG 管道在生产环境中容易出问题的地方

出问题的很少是检索,通常是管道末端的模型调用。

保留检索,加上生产层

ModelRiver 兼容 OpenAI API。让 LlamaIndex 的 LLM 指向它,管道的其余部分保持不变。

query.py
from llama_index.llms.openai_like import OpenAILike
from llama_index.core import Settings

# model is your ModelRiver workflow’s name.
Settings.llm = OpenAILike(
    api_base="https://api.modelriver.com/v1",
    api_key="mr_live_...",
    model="docs-answer",
    is_chat_model=True,
)

# Your index and query engine stay the same.
index.as_query_engine().query("How do I rotate an API key?")
  • 内置备用模型

    每个工作流有一个主模型和最多 2 个备用模型。出现错误、超时或限流时,请求会转到下一个模型。

  • 每个请求都有日志

    供应商、模型、Token、费用、耗时和每次尝试都记录在请求日志中。

  • 答案按 Schema 校验

    为工作流设置 JSON Schema 后,每个响应都会按它校验,不符合时会转到下一个备用模型。

  • 重复问题直接走缓存

    为工作流开启缓存后,相同的请求无需调用供应商即可得到回答。

LlamaIndex 与 ModelRiver 对比

LlamaIndex 处理您的数据,ModelRiver 运行模型调用。下面是它们各自提供的能力。

项目LlamaIndexModelRiver
是什么用于加载、索引和查询数据的开源框架通过 API 调用的托管 AI 后端
检索与索引核心优势不包含,这部分继续用 LlamaIndex
供应商备用在代码中自行编写每个工作流最多 2 个备用模型
请求日志埋点加第三方工具内置,包含每次尝试
结构化输出在代码中使用输出解析器每个响应都按 JSON Schema 校验
流式传输到浏览器需要您自己搭建连接服务器推送事件,或使用客户端 SDK 的 WebSocket
对话记忆在代码中管理对话记忆由 ModelRiver 保存的会话
支出限额不包含按项目和按模型设置

哪个更适合您

以下情况选择 LlamaIndex

  • 您需要自定义分块、索引或检索策略。
  • 您在基于自己的文档构建问答。
  • 您希望精细控制数据的加载和索引方式。

以下情况选择 ModelRiver

  • 您希望无需编写代码就能跨供应商备用。
  • 您希望每个请求都有内置日志。
  • 无论哪个模型回答,您都希望答案按 Schema 校验。

大多数团队两者一起用:LlamaIndex 负责检索,ModelRiver 负责模型调用。

常见问题

ModelRiver 是 LlamaIndex 的完全替代品吗?

不是。LlamaIndex 负责加载、索引和检索您的数据。ModelRiver 不做检索,它负责运行模型调用,提供备用模型、请求日志、结构化输出和限额。很多团队两者一起使用。

如何把 LlamaIndex 连接到 ModelRiver?

使用 OpenAILike LLM,填入 ModelRiver API 地址和您的 API 密钥,并把 模型 设为工作流名称。您的索引和查询引擎保持不变。

Embedding 也能经过 ModelRiver 吗?

可以。设置一个 Embedding 工作流,然后用它的名称调用 OpenAI 兼容的 embeddings 接口。

ModelRiver 会存储我的文档吗?

不会。它只能看到您的管道发送的提示词,包括检索到的上下文。只有开启请求体日志后,请求体才会保存在日志中。

文档与延伸阅读

保留 LlamaIndex,加上生产层。

从免费套餐开始,创建一个工作流,并让 LlamaIndex 的 LLM 指向它。