LlamaIndex OpenAILike:更换 LLM,保留 RAG 索引

使用 OpenAILike 更换 LlamaIndex 的生成模型,保留向量模型与索引,通过可复现的文档样本分别验证检索、回答和引用。

发布 2026-09-29 · 更新 2026-09-29 · KeepRouter Editorial · 4 分钟阅读

三种带类型输入(文本、图片、视频)汇聚成一个向量块
分别观察检索证据与答案生成两个阶段。概念示意图。

在 LlamaIndex 中使用 OpenAILike 接入兼容聊天端点,同时明确保留向量模型配置。只更换生成答案的 LLM,通常不需要重建现有兼容索引;更换 embedding 模型则是另一项迁移。

先回答“同一批检索片段交给新模型,答案是否更合适”,不要同时重建整个 RAG 流程。

固定检索,单独更换生成模型

查询需要先生成问题向量,再检索片段,最后由 LLM 生成答案。文档向量与问题向量必须使用兼容空间,而生成模型读取的是文本。

部分本次保持不变留存证据
文档处理解析与切块规则文档版本和片段 ID
向量模型与维度索引配置
检索查询、排序参数返回的片段
生成只更换这一项完整提示词、回答、用量

检查全局的 Settings.llm 和 Settings.embed_model,避免未声明的默认值悄悄调用其他服务。Settings 文档说明了这些配置入口。

用 OpenAILike 发出单次文本请求

官方 API 参考定义了基础地址、聊天模式及独立的工具能力标记。安装 llama-index-llms-openai-like,在环境中设置 Key,然后运行:

import os
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    model="free",
    api_base="https://keeprouter.com/v1",
    api_key=os.environ["KEEPROUTER_API_KEY"],
    is_chat_model=True,
    is_function_calling_model=False,
    context_window=4096,
    max_tokens=256,
    max_retries=0,
)
result = llm.complete(
    "资料 A:Cedar 仓库在 18:00 关闭。"
    "问题:Cedar 几点关闭?回答并标出资料编号。"
)
print(result.text)

这个示例不创建索引,也不调用向量模型。4,096 和 256 是小样本的应用侧限制,不是免费线路规格。换成付费型号后,按准确型号设置上下文和输出上限。

保留索引,检查实际检索片段

在现有应用中显式向 query engine 传入新 LLM,例如 index.as_query_engine(llm=llm),而存储加载和向量配置保持不变。

准备 Cedar 18:00、Birch 20:00 两条文档,再加入一个资料中不存在的仓库问题。预期分别是两个正确时间和一次明确的“资料不足”。这是一组作者设计的测试,不是模型性能榜单。

查看 source_nodes 或引擎提供的等价证据。问 Cedar 却检索到 Birch,应先修检索;片段正确但回答错误,再分析提示词与生成模型。这样才知道哪一层真正影响结果。

引用必须支持答案

答案带上 [A] 不等于正确。确认编号存在、原文支持答案,而且没有把另一座仓库的时间套过来。将预期事实和允许引用的片段 ID 放在模型提示词之外保存,分歧交给人工检查。

不要用同一个模型生成的自信分数证明它自己正确。如果需要更换 embedding,另行参考索引迁移指南。

按整条 RAG 查询核算

假设一次请求包含 600 个指令 token、100 个问题 token、2,400 个检索片段 token、900 个历史 token,输入合计 4,000。删掉重复片段可能比优化问题向量单价更有效。

索引构建是阶段性费用,重复发送文档是持续费用。问题改写、重排和重试也要计入,可使用 RAG 成本算例拆开核算。

先迁移一个工作负载

用相同问题和检索结果比较旧、新生成模型,检查事实支持、拒答、时间与费用。到目录选择付费线路,按快速开始验证访问;保留旧 LLM 配置,回滚时就不必重建索引。

常见问题

换 LLM 一定要重新生成文档向量吗?

只更换文本生成模型,且向量模型、维度和检索协议不变时通常不需要。向量模型迁移应单独规划。

为什么明确设置 is_chat_model?

它告诉封装使用聊天行为,不会自动检测或授予端点能力。工具调用有单独配置,也要另外验证。

引用编号看起来正确就够了吗?

不够。要核对片段确实存在,且支持具体回答。只检查编号会漏掉检索或推理错误。

参考的一手资料

本文最近复核 2026-09-29

  1. [1] LlamaIndex OpenAILike reference
  2. [2] LlamaIndex Settings

继续阅读

← 全部文章 · 模型与价格 · 获取 API Key