首页
/ LightRAG 提供商生成参数完全参考:OPENAI_LLM_*、OLLAMA_LLM_*、GEMINI_LLM_* 与 BEDROCK_LLM_* 配置解析

LightRAG 提供商生成参数完全参考:OPENAI_LLM_*、OLLAMA_LLM_*、GEMINI_LLM_* 与 BEDROCK_LLM_* 配置解析

2026-09-05 18:03:47作者:董斯意

本文是 LightRAG 中提供商专属生成参数(provider-specific generation options)的完整技术参考,覆盖 OPENAI_LLM_*OLLAMA_LLM_*GEMINI_LLM_*BEDROCK_LLM_*OLLAMA_EMBEDDING_*GEMINI_EMBEDDING_* 六组参数家族,讲清它们如何控制采样、输出长度、思考/推理行为以及请求体透传。读完本篇,你将掌握:命名与解析规则、各 binding 的完整参数表、参数值的最终去向、与 LLM 缓存的交互关系,以及限制输出长度、按角色关闭 thinking 等常见运维任务的正确做法。

本文不覆盖 binding 选择与凭据(LLM_BINDINGLLM_MODELLLM_BINDING_HOSTLLM_BINDING_API_KEYLLM_TIMEOUTMAX_ASYNC_LLM——见 LightRAG Server and WebUI),也不覆盖角色级继承规则(见 Role-Specific LLM/VLM Configuration Guide)。

六组参数列表的唯一事实来源lightrag/llm/binding_options.py--help 输出、自动生成的 .env 样例全部由该文件派生,因此文档与运行时行为永远一致。

1. 命名与解析规则

1.1 三种命名形态

每个选项在每个提供商、每个方向(LLM 与 embedding)下各有一个前缀,可用的三种形态如下:

作用域 形态 示例
基线,环境变量 / .env {PREFIX}_{FIELD} OPENAI_LLM_MAX_COMPLETION_TOKENS=9000
基线,命令行 --{prefix-小写连字符}-{field} --openai-llm-max_completion_tokens 9000
角色级,仅环境变量 / .env {ROLE}_{PREFIX}_{FIELD} QUERY_OPENAI_LLM_MAX_COMPLETION_TOKENS=9000

注意 CLI 拼写:前缀用连字符,字段名保留下划线(是 --ollama-llm-num_ctx,不是 --ollama-llm-num-ctx)。这一规则由 binding_options.pyargs_env_name_type_value() 的拼接逻辑直接产生:argnamef"{binding_name 下划线转连字符}-{field.name}",而 env_namef"{BINDING_NAME}_{FIELD.upper()}"

ROLE 取值为 EXTRACTKEYWORDQUERYVLM 之一。角色级提供商选项没有命令行等价形式——只能从环境变量读取,其实现是 options_dict_for_role() 直接 os.getenv(role_env) 逐字段扫描。

优先级(高到低):基线命令行参数 > 基线环境变量 > 未设置。角色级环境变量会叠加在基线解析结果之上(同提供商角色),或叠加在空选项集上(跨提供商角色);继承细节见 RoleSpecificLLMConfiguration.md 的 inheritance rules 一节。

1.2 “未设置”意味着“不发送”

每个选项注册时的默认值都是 argparse.SUPPRESS(见 binding_options.pyget_env_value(f"{env_name}", argparse.SUPPRESS) 的调用)。你没有配置的选项会整体缺席于出站请求,由提供商应用自己的默认值。由此推出几条必须内化的结论:

  • binding_options.py 里可见的字段默认值(以及 §12 生成的 .env 样例中的值)是对提供商典型默认值的文档化,不是 LightRAG 实际发送的值。例如 OllamaLLMOptions.think 标注为 TrueOpenAILLMOptions.reasoning_effort 标注为 "medium",但只要你不设置,它们都不会被发送。源码注释也明确写着 “The True here is documentation, not a value that ships”。
  • 因此 lightrag-server --llm-binding openai --help 不会打印任何默认值。
  • “删除一个选项”的正确做法是把该行注释掉,而不是设成空值(见 §1.4)。

1.3 基线层只读取当前所选 binding 的选项

基线层选项只为 LLM_BINDING / EMBEDDING_BINDING 实际选中的 binding 注册,判断逻辑在 lightrag/api/config.py

# Add LLM binding options based on determined value
if llm_binding_value == "ollama":
    OllamaLLMOptions.add_args(parser)
elif llm_binding_value in ["openai", "azure_openai"]:
    OpenAILLMOptions.add_args(parser)
elif llm_binding_value == "gemini":
    GeminiLLMOptions.add_args(parser)
elif llm_binding_value == "bedrock":
    BedrockLLMOptions.add_args(parser)

也就是说,当 LLM_BINDING=ollama 时,.env 里所有 OPENAI_LLM_* 变量都会被静默忽略——因为它们从未被注册进 argparse,自然从未被读取。这是 “我明明配置了却不起作用” 这一类问题最常见的根源。

角色级变量则直接从环境读取,所以跨提供商角色也会读取自己提供商的 {ROLE}_{PREFIX}_*——但它不继承基线提供商的选项:跨提供商角色按设计从空选项集起步(对应 options_dict_for_role(is_cross_provider=True) 分支,基线直接置 {})。

1.4 取值语法

字段类型 接受的写法 备注
bool true/1/yes/t/on → true;其余一律 → false 大小写不敏感。
bool-or-level(仅 OLLAMA_LLM_THINK true/false/… 或 low/medium/high 未识别的单词是启动错误,而非静默 false;空值表示 false,不是“未设置”。
int / float 纯数字 空值是启动错误:argument --openai-llm-max_tokens: invalid int value: ''
list JSON 数组,如 '["</s>", "\n\n"]' .env / shell 中加引号。
dict JSON 对象,如 '{"reasoning": {"enabled": false}}' .env / shell 中加引号。
str 原样 空值也是一个值OPENAI_LLM_SERVICE_TIER= 会把 service_tier: "" 发给提供商。应改为注释掉该行。

源码依据:bool 判定词表是 binding_options.py_BOOL_TRUE_WORDS = ("true", "1", "yes", "t", "on");bool-or-level 解析器 _make_bool_or_literal_parser() 对未识别输入抛出 argparse.ArgumentTypeError 而非回退为 false——源码注释解释了动机:对 high 误拼成 hgih 若静默降级为“关”,会把用户想“调高”的功能无声地变成“关闭”,且日志里毫无痕迹。

JSON 畸形时的行为按作用域不同,调试时尤其要注意:

  • 基线层OPENAI_LLM_EXTRA_BODY=not json):选项被丢弃,服务按未设置状态启动。对应 binding_options.pyadd_args() 中对 env 值解析失败时把 env_value 重置回 argparse.SUPPRESS
  • 角色层QUERY_OPENAI_LLM_EXTRA_BODY=not json):原始字符串被保留并透传,失败推迟到请求期表现为提供商侧报错。对应 options_dict_for_role() 中的 except (ValueError, json.JSONDecodeError): base[field_name] = env_raw 分支。

2. Binding 与选项覆盖矩阵

并非每个 binding 都有一套提供商选项。下表中 LLM 列缺失的 binding 完全不接受任何生成选项。

Binding LLM 选项 Embedding 选项 备注
openai OPENAI_LLM_* 同时也是 OpenAI 兼容服务器的 binding:vLLM、SGLang、OpenRouter 及同类网关。
azure_openai OPENAI_LLM_*(同一套选项) AZURE_OPENAI_API_VERSION / AZURE_OPENAI_DEPLOYMENT 是独立的过程级变量,不是提供商选项。
ollama OLLAMA_LLM_* OLLAMA_EMBEDDING_*
gemini GEMINI_LLM_* GEMINI_EMBEDDING_*
bedrock BEDROCK_LLM_* 旧别名 aws_bedrock 会被归一化为 bedrock
lollms 见备注 基线层:完全无选项。 lightrag-server --llm-binding lollms --help 不打印任何选项组,基线 binding 以空选项负载接线。角色层把 lollms 映射到 Ollama 选项集,因此会读取 {ROLE}_OLLAMA_LLM_*——但 lollms 驱动只消费 temperaturetop_ktop_prepeat_penaltyrepeat_last_nseed,其余字段一律忽略。
jina —(纯 embedding binding)
voyageai —(纯 embedding binding)

lollms 的字段白名单可由源码确认:lightrag/llm/lollms.py 中驱动只从 kwargs 里取这六个字段(带各自的本地默认值),其余字段根本不进入请求体。

3. OpenAI / Azure OpenAI LLM 选项

前缀 OPENAI_LLM_,由 openaiazure_openai 两个 binding 共用。对应 dataclass 是 binding_options.py 中的 OpenAILLMOptions

环境变量 类型 说明
OPENAI_LLM_TEMPERATURE float 控制随机性(0.0–2.0,越大越有创造性)。
OPENAI_LLM_TOP_P float 核采样参数(0.0–1.0,越小越聚焦)。
OPENAI_LLM_MAX_COMPLETION_TOKENS int 最大生成 token 数。当前 OpenAI 推理(reasoning)模型的现行参数。
OPENAI_LLM_MAX_TOKENS int 最大生成 token 数。已被 OpenAI 弃用(推荐 max_completion_tokens),但对多数 OpenAI 兼容服务器(vLLM、SGLang、多数网关)仍是正确字段。
OPENAI_LLM_FREQUENCY_PENALTY float token 频率惩罚(-2.0 至 2.0,正值抑制重复)。
OPENAI_LLM_PRESENCE_PENALTY float token 出现惩罚(-2.0 至 2.0,正值鼓励新话题)。
OPENAI_LLM_REASONING_EFFORT str 推理模型的 effort 级别。原样透传,因此合法取值属于提供商而非 LightRAG——OpenAI 目前接受 minimal/low/medium/high,其他网关另有自己的取值(如 none)。
OPENAI_LLM_STOP JSON list 停止序列,如 '["</s>", "\n\n"]'
OPENAI_LLM_SERVICE_TIER str API 使用的服务层级。
OPENAI_LLM_SAFETY_IDENTIFIER str 内容过滤用的安全标识符。
OPENAI_LLM_EXTRA_BODY JSON dict 额外并入请求顶层的字段。表格之外一切的逃生舱——vLLM/SGLang 的 chat-template 开关、OpenRouter 的路由与推理控制。

实现层面的两点注意:

  • 这些选项作为关键字参数并入 Chat Completions 请求,原样转发。LightRAG 不会替你对照目标模型做校验,因此某个端点不支持的参数会直接表现为提供商侧错误。
  • 本地 OpenAI 兼容服务器拒绝 reasoning_effort 是典型的“该选项应保持角色级而非全局”的理由:用 EXTRACT_OPENAI_LLM_REASONING_EFFORT=… 代替全局 OPENAI_LLM_REASONING_EFFORT

4. Ollama LLM 选项

前缀 OLLAMA_LLM_。除 think 外,所有字段都进入请求体的 options 负载。字段全集定义在 binding_options.py_OllamaOptionsMixin

4.1 上下文与输出长度

环境变量 类型 说明
OLLAMA_LLM_NUM_CTX int 上下文窗口大小(token 数)。必须大于 MAX_TOTAL_TOKENS + 2000env.example 出厂设为 32768,因为 Ollama 默认值通常不够容纳 LightRAG 的提示词。
OLLAMA_LLM_NUM_PREDICT int 最大预测 token 数——输出预算。用它拦住失控的抽取输出。
OLLAMA_LLM_NUM_KEEP int 从初始提示中保留的 token 数。
OLLAMA_LLM_STOP JSON list 停止序列,如 '["</s>", "\n\n"]'
OLLAMA_LLM_PENALIZE_NEWLINE bool 惩罚换行 token。

env.exampleNUM_PREDICT 的截断语义有明确注释:被它截断的响应仍会被保留并记录在 doc_status.metadata.llm_truncation 中;若在输出任何内容前就被截断,则文档整体失败而非索引一个空图——遇到后者应调大该值或关闭 thinking 模式。

4.2 采样

环境变量 类型 说明
OLLAMA_LLM_TEMPERATURE float 控制随机性(0.0–2.0,越大越有创造性)。
OLLAMA_LLM_TOP_K int Top-k 采样参数(0 = 禁用)。
OLLAMA_LLM_TOP_P float Top-p(核)采样参数(0.0–1.0)。
OLLAMA_LLM_MIN_P float 最小概率阈值(0.0 = 禁用)。
OLLAMA_LLM_TYPICAL_P float 典型概率质量(1.0 = 禁用)。
OLLAMA_LLM_TFS_Z float 尾自由采样参数(1.0 = 禁用)。
OLLAMA_LLM_SEED int 生成随机种子(-1 为随机)。

4.3 重复控制与 Mirostat

环境变量 类型 说明
OLLAMA_LLM_REPEAT_PENALTY float 重复惩罚(1.0 = 不惩罚)。
OLLAMA_LLM_REPEAT_LAST_N int 重复惩罚考虑的回看 token 数。
OLLAMA_LLM_PRESENCE_PENALTY float token 出现惩罚(-2.0 至 2.0)。
OLLAMA_LLM_FREQUENCY_PENALTY float token 频率惩罚(-2.0 至 2.0)。
OLLAMA_LLM_MIROSTAT int Mirostat 采样算法(0 = 禁用,1 = Mirostat 1.0,2 = Mirostat 2.0)。
OLLAMA_LLM_MIROSTAT_TAU float Mirostat 目标熵。
OLLAMA_LLM_MIROSTAT_ETA float Mirostat 学习率。

4.4 Thinking / 推理

环境变量 类型 说明
OLLAMA_LLM_THINK bool 或 low/medium/high 开启模型的扩展思考 trace。仅 LLM 选项集有此字段,embedding 选项集没有。

think 是唯一不走 options 负载的 Ollama 选项——它是请求体的顶层字段。关键细节:

  • 不设置则跟随模型自身默认。对不支持 thinking 的模型设 true,Ollama 会拒绝该请求
  • 推理级别(low/medium/high)额外要求 Ollama 服务端支持级别;任何形态的 think 在 LightRAG 侧要求 ollama>=0.5.4,配置错误会在服务启动时暴露,而不是流水线中途。
  • 空值(OLLAMA_LLM_THINK=)表示 false,不是“未设置”。
  • 具备 thinking 能力的模型可能把整个生成预算花在隐藏推理上,抽取阶段返回空 entities/relations(issue #3597)。正确修法是 EXTRACT_OLLAMA_LLM_THINK=false(若关键词抽取也受影响再配 KEYWORD_OLLAMA_LLM_THINK=false),而不是全局关闭——因为对部分模型而言,关闭 thinking 会可测量地损害抽取质量。这一权衡在 binding_options.pythink 字段注释中被完整记录:默认值 True 只是文档化,框架从不主动覆写它。

4.5 硬件与内存

这些是 Ollama 服务端运行时旋钮,除非清楚自己在做什么,否则不要设置。

环境变量 类型 说明
OLLAMA_LLM_NUMA bool 启用 NUMA 优化。
OLLAMA_LLM_NUM_BATCH int 处理批次大小。
OLLAMA_LLM_NUM_GPU int 使用的 GPU 数(-1 为自动)。
OLLAMA_LLM_MAIN_GPU int 主 GPU 索引。
OLLAMA_LLM_LOW_VRAM bool 低显存优化。
OLLAMA_LLM_NUM_THREAD int CPU 线程数(0 为自动)。
OLLAMA_LLM_F16_KV bool KV 缓存使用半精度。
OLLAMA_LLM_USE_MMAP bool 模型文件使用内存映射。
OLLAMA_LLM_USE_MLOCK bool 将模型锁定在内存中。
OLLAMA_LLM_VOCAB_ONLY bool 仅加载词表。
OLLAMA_LLM_LOGITS_ALL bool 返回全部 token 的 logits。
OLLAMA_LLM_EMBEDDING_ONLY bool 仅用于 embedding。

5. Gemini LLM 选项

前缀 GEMINI_LLM_。每个字段一一对应 Google GenAI GenerateContentConfig 的同名参数,定义见 binding_options.pyGeminiLLMOptions

环境变量 类型 说明
GEMINI_LLM_TEMPERATURE float 控制随机性(0.0–2.0,越大越有创造性)。
GEMINI_LLM_TOP_P float 核采样参数(0.0–1.0)。
GEMINI_LLM_TOP_K int 限制采样到 top K token(1 表示关闭限制)。
GEMINI_LLM_MAX_OUTPUT_TOKENS int 响应中最大生成 token 数。
GEMINI_LLM_CANDIDATE_COUNT int 每次请求返回的候选数量。
GEMINI_LLM_PRESENCE_PENALTY float token 出现惩罚(-2.0 至 2.0)。
GEMINI_LLM_FREQUENCY_PENALTY float token 频率惩罚(-2.0 至 2.0)。
GEMINI_LLM_STOP_SEQUENCES JSON list 停止序列,如 '["END"]'
GEMINI_LLM_SEED int 可复现生成的随机种子。
GEMINI_LLM_THINKING_CONFIG JSON dict 思考配置,如 '{"thinking_budget": 1024}''{"include_thoughts": true}',或关闭思考 '{"thinking_budget": 0, "include_thoughts": false}'thinking_budget: -1 表示选择 Gemini 的动态预算(由模型自行决定)。
GEMINI_LLM_SAFETY_SETTINGS JSON dict Gemini 安全设置覆写。

注意:值为 None 或空字符串的条目在构建配置对象之前即被丢弃,因此空设置不会在请求期引发类型错误。

6. Bedrock LLM 选项

前缀 BEDROCK_LLM_,映射到 Converse API。定义见 binding_options.pyBedrockLLMOptions

环境变量 类型 说明
BEDROCK_LLM_TEMPERATURE float 控制随机性(多数 Bedrock 模型为 0.0–1.0)。
BEDROCK_LLM_MAX_TOKENS int 响应中最大生成 token 数 → inferenceConfig.maxTokens
BEDROCK_LLM_TOP_P float 核采样参数(0.0–1.0)→ inferenceConfig.topP
BEDROCK_LLM_STOP_SEQUENCES JSON list 停止序列 → inferenceConfig.stopSequences
BEDROCK_LLM_EXTRA_FIELDS JSON dict additionalModelRequestFields 原样转发的模型专属字段,如 '{"reasoningConfig": {"type": "enabled", "maxReasoningEffort": "low"}}'。它是 Bedrock 侧对应 OPENAI_LLM_EXTRA_BODY 的机制。

源码可以确认驱动端的白名单:lightrag/llm/bedrock.py 中仅 temperature/max_tokensmaxTokens/top_ptopP/stop_sequencesstopSequences 四个字段被组装进 inferenceConfigextra_fields 单独映射为 additionalModelRequestFields。也就是说:四个字段之外的任何东西必须走 BEDROCK_LLM_EXTRA_FIELDS,否则会被驱动静默丢弃(binding_options.py 中该类头部注释也明确提示了这一点)。

Bedrock 认证使用 SigV4 或 AWS_BEARER_TOKEN_BEDROCK,从不用 LLM_BINDING_API_KEY;三种认证模式(bearer token / 显式 SigV4 凭据 / SDK 默认凭据链)在 env.example 中有逐行注释,细节规则见 RoleSpecificLLMConfiguration.md 的 bedrock authentication rules 一节。

7. Ollama Embedding 选项

前缀 OLLAMA_EMBEDDING_。字段集与 §4 完全相同、仅去掉 think——num_ctxnum_predictnum_keepseedtemperaturetop_ktop_ptfs_ztypical_pmin_prepeat_last_nrepeat_penaltypresence_penaltyfrequency_penaltymirostatmirostat_taumirostat_etanumanum_batchnum_gpumain_gpulow_vramnum_threadf16_kvlogits_allvocab_onlyuse_mmapuse_mlockembedding_onlypenalize_newlinestop。源码实现即 binding_options.pyOllamaEmbeddingOptions 直接复用 _OllamaOptionsMixin,而 think 只加在 OllamaLLMOptions 上。

实际中,对 embedding 请求只有运行时旋钮有意义:

环境变量 类型 说明
OLLAMA_EMBEDDING_NUM_CTX int embedding 模型的上下文窗口。Ollama 需要它在 EMBEDDING_TOKEN_LIMIT 之外单独设置;env.example 出厂值 8192
OLLAMA_EMBEDDING_NUM_GPU / _MAIN_GPU / _NUM_THREAD / _NUM_BATCH / _LOW_VRAM / _USE_MMAP / _USE_MLOCK / _NUMA / _F16_KV int / bool 语义与 §4.5 中对应的 OLLAMA_LLM_* 项相同。

采样与重复字段只是为了与 LLM 选项集对称而存在,对 embedding 响应无任何效果

更换 embedding 模型或其有效维度会使所有已存向量失效。参见 LightRAG Server and WebUI 中的 embedding 模型警告。

8. Gemini Embedding 选项

前缀 GEMINI_EMBEDDING_,定义见 binding_options.py

环境变量 类型 说明
GEMINI_EMBEDDING_TASK_TYPE str embedding 任务类型。不设置时按上下文自动推导(查询为 RETRIEVAL_QUERY,文档为 RETRIEVAL_DOCUMENT)。支持的值:RETRIEVAL_DOCUMENTRETRIEVAL_QUERYSEMANTIC_SIMILARITYCLASSIFICATIONCLUSTERINGCODE_RETRIEVAL_QUERYQUESTION_ANSWERINGFACT_VERIFICATION

固定一个 task_type禁用非对称 embedding 所依赖的查询/文档区分;机制详见 Asymmetric Embedding Configuration

9. 参数值的最终去向

Binding 目的地 被静默丢弃的
openaiazure_openai 作为关键字参数并入 Chat Completions 请求 无——不支持的字段直达提供商,成为提供商错误。
ollama 请求的 options 负载,外加顶层 think 无。
gemini GenerateContentConfig(**options) 值为 None"" 的条目。
bedrock inferenceConfigtemperaturemaxTokenstopPstopSequences)外加来自 extra_fieldsadditionalModelRequestFields 该字段集之外的任何字段。
lollms 请求顶层字段 temperaturetop_ktop_prepeat_penaltyrepeat_last_nseed 之外的所有字段。

10. 提供商选项与 LLM 缓存的关系

LLM 缓存键按一个非机密 identity 分区,其组成是角色、binding、模型与 host;api_key 与提供商选项被刻意排除,使缓存键可以安全持久化。源码依据是 lightrag/utils.pyuse_llm_func_with_cache():缓存键仅由 prompt(user/system/history 拼接)、response_format 序列化值与 llm_identity_key 三者做 hash 得到,provider options 完全不参与。实际后果:

  • LLM_MODELLLM_BINDINGLLM_BINDING_HOST 会产生新的缓存键,因此会触发新的模型调用;
  • 改提供商选项——temperaturethinkreasoning_effortmax_tokens 等——不会。已缓存的抽取/查询结果仍按旧参数命中返回。

当你需要让调参对已处理内容生效时,必须显式清掉相应缓存(/documents/clear_cache 接口,或实验查询阶段临时设 ENABLE_LLM_CACHE=false)。注意清 LLM 缓存会连抽取缓存一起清掉——而文档删除后的实体/关系重建恰恰依赖抽取缓存,操作前需权衡。

11. 常见任务

11.1 限制输出长度(防止抽取输出无限增长)

给输出设一个上限,让失控的响应在请求超时前被截断。可用的上限估算为 LLM_TIMEOUT * output_tokens_per_second(例如 240s * 50 tok/s,即保持低于 12000)。

# OpenAI 兼容服务器(vLLM/SGLang/多数网关)
OPENAI_LLM_MAX_TOKENS=9000
# OpenAI 推理模型
OPENAI_LLM_MAX_COMPLETION_TOKENS=9000
# Ollama
OLLAMA_LLM_NUM_PREDICT=9000
# Gemini
GEMINI_LLM_MAX_OUTPUT_TOKENS=9000
# Bedrock
BEDROCK_LLM_MAX_TOKENS=9000

11.2 为抽取与关键词生成关闭 thinking

挑选与你提供商匹配的那一行——它们是互斥选项,不是整块粘贴(重复出现的同名变量只会保留最后一个值)。

# Ollama
EXTRACT_OLLAMA_LLM_THINK=false
KEYWORD_OLLAMA_LLM_THINK=false

# Gemini
EXTRACT_GEMINI_LLM_THINKING_CONFIG='{"thinking_budget": 0, "include_thoughts": false}'

# OpenAI 推理模型
EXTRACT_OPENAI_LLM_REASONING_EFFORT=minimal

# OpenRouter(每个角色一条 EXTRA_BODY——以下两种形态二选一)
EXTRACT_OPENAI_LLM_EXTRA_BODY='{"reasoning": {"enabled": false}}'
# vLLM 托管的 Qwen 风格模型
# EXTRACT_OPENAI_LLM_EXTRA_BODY='{"chat_template_kwargs": {"enable_thinking": false}}'

# Bedrock——字段名与合法取值属于目标模型而非 LightRAG,
# 请查该模型的 Converse API 文档。示例形态:
# EXTRACT_BEDROCK_LLM_EXTRA_FIELDS='{"reasoningConfig": {"type": "enabled", "maxReasoningEffort": "low"}}'

env.example 中同样给出了这几条 EXTRA_BODY 形态的原型注释(OpenRouter 的 reasoning.enabled 与 vLLM 部署 Qwen3 的 chat_template_kwargs.enable_thinking),可直接对照取用。

11.3 让某个角色拿不到某个提供商选项

没有“取消继承某个选项”的语法。要么用该角色模型能接受的值覆写该选项,要么从一开始就把选项保持为角色级而非全局。典型场景:本地 OpenAI 兼容端点与官方 API 共用 openai binding——

LLM_BINDING=openai
LLM_MODEL=gpt-5-mini
# 不要在这里全局设置 OPENAI_LLM_REASONING_EFFORT——本地服务器会拒绝它。
QUERY_OPENAI_LLM_REASONING_EFFORT=medium
KEYWORD_OPENAI_LLM_MAX_TOKENS=2048

12. 自行检查选项

--help 输出只列出当前所选 binding 的选项组,所以要检查哪个 binding,就显式传入哪个:

lightrag-server --llm-binding openai --help
lightrag-server --llm-binding ollama --help
lightrag-server --llm-binding gemini --help
lightrag-server --llm-binding bedrock --help
lightrag-server --embedding-binding ollama --help
lightrag-server --embedding-binding gemini --help

一次性以带注释的 .env 块形式打印所有 binding 的选项:

python -m lightrag.llm.binding_options

两种输出都源自 lightrag/llm/binding_options.py,因此永远与当前代码同步(.env 样例由 generate_dot_env_sample() 生成,test 子命令还会演示 Ollama/OpenAI 选项的解析行为)。最后重申 §1.2:生成样例中显示的取值为提供商的典型默认值,不是 LightRAG 实际发送的值——那些行被注释掉正是出于这个原因。

登录后查看全文
热门项目推荐
相关项目推荐