Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

DMR provider ignores integer `provider_opts.context_size` (YAML integers decode as uint64), so the model starts at its maximum context

Đang mở Phù hợp với người mới
#4,522 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
82/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
docker, go, yaml
Lĩnh vực
backend, tooling

Hướng nghiên cứu

Bắt đầu trong pkg/model/provider/dmr/configure.go: parseContextSize gọi parseInt64Value, hàm này chấp nhận int64/int/float64/string nhưng không chấp nhận uint64 từ YAML map[string]any. Thêm uint64 (và giữ các đường string/int) để context_size: 64000 được gửi dưới dạng context-size. Kiểm tra parser số khác trong cùng file trên main để lấy mẫu. Xác nhận bằng unit test quanh parseInt64Value hoặc DMR configure nếu có; xong khi một unquoted integer đến được yêu cầu configure thay vì nil.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area/config area/providers/docker-model-runner

Versions: docker-agent v1.142.0 and v1.148.0 (linux/amd64, inside a Docker Sandbox), config version 16, provider dmr (Docker Model Runner on the host, llama.cpp backend), model huggingface.co/unsloth/qwen3.8-27b-gguf:UD-Q4_K_M (context window 262144).

What happens

With

models:
  qwen:
    provider: dmr
    base_url: http://host.docker.internal:12434/engines/v1
    model: huggingface.co/unsloth/qwen3.8-27b-gguf:UD-Q4_K_M
    provider_opts:
      context_size: 64000

the context size never reaches Model Runner, and the model runs with its maximum context (262144).

Debug log (--debug):

msg="DMR provider opts" provider_opts="map[context_size:64000 runtime_flags:[...]]"
msg="DMR provider_opts parsed" ... context_size=<nil> ...
msg="Sending model configure request" ... context_size=<nil> ...
msg="Model configure completed"

GET /engines/_configure afterwards shows no context-size for the model.

Workaround / confirmation

Quoting the value works:

    provider_opts:
      context_size: "64000"

→ Sending model configure request ... context_size=64000, and GET /engines/_configure shows "context-size":64000. Passing --ctx-size 64000 in runtime_flags also works.

Cause (from the source)

parseContextSize → parseInt64Value in pkg/model/provider/dmr/configure.go accepts int64, int, float64 and string, but not uint64. The YAML decoder yields uint64 for a positive integer in a map[string]any, so the value is dropped and parseContextSize returns nil. On main, another numeric parser in the same file already handles uint64, but parseInt64Value does not.

Expected

context_size: 64000 is sent as context-size: 64000. Also, a value that is present but cannot be parsed (and a failed configure request, which is only logged at DEBUG today) could be reported as a warning instead of silently falling back to the model's default context.

Ngôn ngữ chính
Go
Star
4.4k
Fork
508
Merge trung bình
7 giờ 2 phút
Pull request đã merge (30 ngày)
233

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

  • Có Dockerfile hoặc tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của docker/docker-agent

Tất cả issue của docker/docker-agent

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.