You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用本地LLM时,为何无OpenAI密钥无法切换LlamaIndex聊天引擎模式?

LlamaIndex切换chat_mode触发OpenAI API调用问题解决

问题根源

as_chat_engine()默认使用"simple"模式,这个模式直接复用你配置的本地LLM就能运行;但切换到"context"这类模式时,LlamaIndex默认会调用OpenAI模型处理对话上下文管理逻辑,哪怕你已经配置了本地LLM,也得明确指定让它用本地模型才行。

解决方法

1. 先确保本地LLM和嵌入模型全局配置正确

以LlamaCPP和本地嵌入模型为例,初始化代码如下(根据你的实际模型调整):

from llama_index.llms import LlamaCPP
from llama_index.embeddings import LocalEmbedding
from llama_index import set_global_llm, set_global_embed_model

# 初始化本地LLM
llm = LlamaCPP(
    model_path="./your-local-model.gguf",
    temperature=0.1,
    max_new_tokens=256,
    context_window=4096,
)

# 初始化本地嵌入模型
embed_model = LocalEmbedding(model_name="BAAI/bge-small-en-v1.5")

# 设置全局默认模型
set_global_llm(llm)
set_global_embed_model(embed_model)

2. 创建chat_engine时显式传入本地LLM

切换chat_mode时,必须把本地LLM作为参数传入,避免触发默认的OpenAI调用:

query_engine = vector_index.as_chat_engine(
    chat_mode="context",
    llm=llm  # 传入你初始化的本地LLM实例
)
response = query_engine.chat(prompt)
print(response)

额外说明

像"context"、"condense_question"这类chat_mode涉及对话历史维护、问题重写等复杂逻辑,LlamaIndex默认用OpenAI模型处理这些环节,所以必须显式指定本地LLM才能完全脱离OpenAI API。

内容的提问来源于stack exchange,提问作者Seth J Steele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:24:56