Ollama ignores num_ctx completely on the request.

用户通过 OpenAI 格式的 API 请求 Ollama(例如 POST http://ollama.local:11434/v1/chat/completions ),并在 JSON body 顶层直接添加 "num_ctx": 16000 。Ollama 版本为 0.30.7,环境为 Linu

Ollama ignores num_ctx completely on the request.

Ollama ignores num_ctx completely on the request.

快速结论:问题通常出现在使用 Ollama 的 OpenAI 兼容 API(例如 /v1/chat/completions)时,在请求顶层直接传入 num_ctx 参数。优先排查是否在 options 字段中嵌套传递该参数。

问题场景

用户通过 OpenAI 格式的 API 请求 Ollama(例如 POST http://ollama.local:11434/v1/chat/completions),并在 JSON body 顶层直接添加 "num_ctx": 16000。Ollama 版本为 0.30.7,环境为 Linux + Nvidia GPU。用户期望 num_ctx 应覆盖默认上下文长度,但观察到的实际上下文长度为 262144(非用户指定的 16000,也非本地模型文件中的设置)。

报错原文

2026-06-19T11:53:37-03:00 INFO Request:
POST http://ollama.local:11434/v1/chat/completions
  -d '{
  "model": "local.qwen-medium:low",
  "messages": [
    {
      "role": "user",
      "content": "How much is 2+2"
    }
  ],
  "stream": false,
  "num_ctx": 16000
}'

Every 1,0s: ollama ps
local.qwen-medium:low    aa0df067f0c6    36 GB    100% GPU     262144     4 minutes from now

原因分析

Ollama 的 OpenAI API 兼容层不支持在请求顶层直接声明 num_ctx 参数。该参数需嵌套在 options 字段内才能生效。因此,直接传入 "num_ctx": 16000 被忽略,Ollama 使用其自身决定的默认上下文长度(此处为 262144)。

环境排查

  • Ollama 版本:0.30.7(确认后请升级到最新版本测试)
  • 使用的 API 端点:/v1/chat/completions(OpenAI 兼容格式) vs /api/chat(Ollama 原生格式)
  • 确认是否已设置环境变量 OLLAMA_CONTEXT_LENGTH(该变量可生效,但客户端请求优先级应更高)

解决步骤

  1. 修改 API 请求 JSON 结构:将 "num_ctx": 16000 从顶层移到 "options" 对象内部。
  2. 示例修正后的请求体(仅显示差异部分):
    {
      "model": "local.qwen-medium:low",
      "messages": [
        {
          "role": "user",
          "content": "How much is 2+2"
        }
      ],
      "stream": false,
      "options": {
        "num_ctx": 16000
      }
    }
  3. 可优先尝试:如果当前版本低于 0.30.7,建议升级到最新版后再次测试,因为该行为可能已在后续版本中优化。
  4. 如果问题仍然存在,尝试使用 Ollama 原生 API /api/chat 并同样使用 options 字段传入 num_ctx

验证方法

重新发送修正后的 API 请求,然后运行 ollama ps 命令检查正在运行模型的 CONTEXT 列。该值应显示为您指定的 num_ctx 值(例如 16000),而不是默认的 262144。

参考来源

ollama/ollama #16814

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 9286

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注