Commit graph

5844 commits

Author SHA1 Message Date
Anna Rahn
db2635b54b standardizing language referring to cloud services 2026-10-08 15:12:00 -07:00
Anna Rahn
8d978f6874
Merge branch 'main' into docs_update 2026-10-07 12:24:17 -07:00
Anna Rahn
539c4a07a5 re-ordering top nav, splitting out sample project into new PR 2026-10-07 12:15:54 -07:00
Anna Rahn
9062a9a2e6 removing repetition, fixing a typo 2026-10-07 12:11:19 -07:00
Anna Rahn
79f7e33058 changing wording 2026-10-07 12:00:49 -07:00
Eva H
468e7e5008
cmd: remove account step from CLI onboarding (#18826) 2026-10-07 13:51:57 -04:00
Anna Rahn
1f51984dc3 keeping old urls, updating model retirement page 2026-10-07 10:00:44 -07:00
Gigrise
d3c846f8b0
llama: fix clef head reads past 2GiB on windows (#18777)
The Clef head read its weights with std::ifstream::seekg. The Windows
llama-server ships with libc++ 18.1.8, where that seek truncates the
offset to 32 bits. clef-flash stores the clef.* tensors at about 9.5GB,
so the head loaded backbone bytes as its weights and every
/v1/systemone request failed with "Clef: non-finite logit". clef:27b
keeps the head and output.weight below 2GB and was unaffected.

Read with ggml_fopen and an explicit 64-bit seek instead, as read_at
in llama/compat already does.

Fixes #18769
2026-10-06 21:39:34 -07:00
Devon Rifkin
f864601538
server: proxy cloud usage and balance APIs (#18829)
Forward GET /api/usage and GET /api/balance through the local server
using the signed-in account.

Add API documentation and tests for proxying, signing, and
disabled cloud access.
2026-10-06 18:31:54 -07:00
Anna Rahn
266790cffe Merge remote-tracking branch 'origin/main' into docs_update
# Conflicts:
#	docs/api/introduction.mdx
#	docs/cloud.mdx
#	docs/docs.json
#	docs/guide/capabilities/decision.mdx
#	docs/index.mdx
#	docs/integrations/cline.mdx
#	docs/quickstart.mdx
2026-10-06 16:43:59 -07:00
Anna Rahn
8ca05a6027 reorganizing the docs folder, adding error handling to the sample project, changing wording 2026-10-06 16:35:27 -07:00
Anna Rahn
cba2a9cd52 documentation re-structuring 2026-10-06 12:28:15 -07:00
Patrick Devine
0d0720e51f
routes: fix embed 413 vs 400 routing (#18822) 2026-10-06 10:46:39 -07:00
Patrick Devine
efe43c5561
model: add multimodal embeddings (#18820)
Implements the EmbeddingGemma2Model architecture on the MLX runner: 24-layer
bidirectional text encoder with PLE, shared gemma4 vision/audio towers,
mean-pool + L2 output. /api/embed accepts per-item media via input dicts.
2026-10-06 08:08:38 -07:00
Daniel Hiltgen
8a971df3ba
mlx: fix patch for recent mlx update (#18812) 2026-10-05 18:15:59 -07:00
Daniel Hiltgen
18846f8a9b
MLX: version bump (#18720)
* MLX: version bump

* add scopes for unit tests to reduce memory usage
2026-10-05 17:41:51 -07:00
Daniel Hiltgen
ec318f4d11
llama.cpp: version update (#18761) 2026-10-05 17:38:50 -07:00
Daniel Hiltgen
1970ce82a3 Merge remote-tracking branch 'upstream/main' into release_v0.40.0 2026-10-05 17:35:11 -07:00
Daniel Hiltgen
d9dec1509d
Reduce model lookup and MLX decision request overhead (#18806)
* Reduce model lookup and MLX decision request overhead

Avoid decoding unrelated manifests when resolving existing model names.
Reuse small Metal scratch buffers between decision requests, releasing
larger working sets and clearing scratch after scoring errors.

* address comments
2026-10-05 17:34:41 -07:00
Daniel Hiltgen
cf6c9de620
mlx: mitigate high latency after GPU idle (#18807)
Carry the MLX residency-refresh patch and enable it every second in the
runner, preserving explicit environment overrides.

Fixes #18744.
2026-10-05 16:49:32 -07:00
Daniel Hiltgen
e363843b83
test: split create integration tests out (#18470)
The create tests upload blobs which can cause problems when run in parallel on multiple systems.  This change splits them out with an explicit tag to make it easier to control when they are run.
2026-10-05 15:01:48 -07:00
Dongluo Chen
ec8e5a4dcd
Merge pull request #18722 from ollama/openai-tool-array-content 2026-10-05 14:54:40 -07:00
Daniel Hiltgen
991421d4db
pull: allow RCs to pull matching min_version (#18790)
Strip off pre-release from the version string so RCs can pull
models for the same release.
2026-10-04 16:15:37 -07:00
Daniel Hiltgen
0fde06c4d2 Merge remote-tracking branch 'upstream/main' into release_v0.40.0 2026-10-04 08:48:45 -07:00
Daniel Hiltgen
195f4cdca1
mlx: match publisher tokenizer semantics (#18779)
* mlx: match publisher tokenizer semantics

Honor pretokenizer stage order, split behavior, Unicode boundaries,
added-token normalization, and ranked BPE merges. Handle empty added
tokens and empty Metaspace input consistently.

Add shared Go/Python reference cases using published tokenizers, pulling
missing models directly and failing on errors, plus focused regressions
for configuration precedence, byte fallback, and parallel encoding.

* address comments
2026-10-04 07:45:15 -07:00
Daniel Hiltgen
27a36513d2
mlx: Decision model improvements (#18776)
* reject instead of truncate on overflow

* tune route logic for faster warm runner lookup
2026-10-03 17:48:08 -07:00
Daniel Hiltgen
a00d083bb5
mlx: System one support (#18701)
* mlxrunner: restore System One scoring

Carry the MLX implementation and its tests from the original System One
commit. The API/compiler and llama-server implementation already exist on
the release branch, so retain those versions. Adapt the optional model test
to the renamed decision package and its explicit rendering/context setup.

(cherry picked from commit 26e546ddb3)

* Enable MLX System One and add regression coverage

* mlxrunner: add Laya support for System One

Import Laya checkpoints and implement bidirectional decision scoring.

* mlxrunner: release cached buffers after System One scoring

* decision: match Tev1 and Nimble publisher prompt formats

Select Tev1 prompts using renderer metadata and fix JSON formatting, with regression coverage for GGUF and MLX.

* mlx: support Clef and Clef Flash decision models

Add model import, quantization safeguards, and text/image scoring with the Clef joint decision head.

* support vision capabilities for decision models

* Make Clef scoring cancellable between prefill chunks

Preserve joint-head inputs and test cancellation, cleanup, and recovery.

* mlx: separate decision preparation and readout from forward

Let serial and batched scoring share model-owned preparation and readout
without duplicating architecture-specific logic in the runner.

* mlx: add Strands Decider support

* implement caching

---------

Co-authored-by: ParthSareen <parth.sareen@ollama.com>
2026-10-03 13:17:21 -07:00
Dong Chen
31547a6cd7 openai: split tool results with images instead of adding [img] markers
The [img] placeholders mixed internal markers into tool text: the native
llama-server path sends them as literal text, so an image-only result
gained a text part, and tool output containing [img] or [img-N] moved or
dropped image tags. api.Message cannot carry image positions without
in-band markers, so stop merging tool results that include images.

Text-only tool results, the only array form the Chat Completions spec
allows for tool messages, are still merged into one message (now with a
strings.Builder). Results with images keep the per-part split in order,
which preserves image positions, with the tool call id and name set on
every part.
2026-10-02 20:41:11 -07:00
Parth Sareen
42e911bc3d
docs: document image input for decision models (#18757) 2026-10-02 11:52:27 -07:00
Parth Sareen
e896a52a4f
docs: link to available decision models (#18758) 2026-10-02 11:51:55 -07:00
Dong Chen
bea35c8984 openai: keep image positions when merging tool result parts
Merging a tool result's parts collected its images separately from the
text, so renderers placed them all before the text: "Before: <A> After:
<B>" rendered as "<A><B>Before: After:". Write an [img] placeholder at
each image's position so renderContentWithImageTags and chatPrompt put
each image back where it was.
2026-10-01 20:19:01 -07:00
Daniel Hiltgen
b0c1ca4f75
ci: fix missing build context (#18742) 2026-10-01 18:05:01 -07:00
Daniel Hiltgen
1c345795ab Merge remote-tracking branch 'upstream/main' into release_v0.40.0 2026-10-01 16:51:30 -07:00
Jeffrey Morgan
e4c0d18eb8
models: add clef support (#18741) 2026-10-01 15:52:04 -07:00
Daniel Hiltgen
3b1999d1d9
server: report only decision capability for decision models (#18737)
Show and list now return just "decision" for models declaring it, so clients don't offer them for general chat, tools, or thinking. The show response also omits the thinking field for these models. Scheduling and serving still check the full capability set.
2026-10-01 13:49:46 -07:00
Dong Chen
77cef85de4 openai: keep empty tool results sent as an empty content array
A tool message with "content": [] produced no message at all, so the
tool call it answers had no result in the rendered prompt. Emit an empty
tool message that keeps its ToolCallID and ToolName, and skip it only
when it has no parts, call id, or name.
2026-10-01 10:59:10 -07:00
Dong Chen
de119ea47f openai: keep tool message content parts in one message
FromChatRequest splits array content into one api.Message per part. That
is intended for user content, but a tool message is a single result: the
split also dropped its tool_call_id and tool name, since those were only
copied when the message had tool_calls. Renderers that resolve tool
results by ID then see extra, unnamed results; for example, Kimi K3 fails
with "tool message 2 has no resolvable tool name" on a tool result with
two text parts, which the OpenAI spec allows.

Merge the parts of a tool message into one message with the text joined,
the images kept, and ToolCallID and ToolName set, matching how
function_call_output items are converted for /v1/responses.
2026-09-30 13:02:51 -07:00
Parth Sareen
1abe35e6e6
docs: document System One API (#18702) 2026-09-29 19:33:23 -07:00
Daniel Hiltgen
eadb68a609 Merge remote-tracking branch 'upstream/main' into release_v0.40.0
# Conflicts:
#	server/routes.go
2026-09-29 11:15:31 -07:00
Daniel Hiltgen
b3f78b7732
create: support explicit model capabilities (#18708)
Add CAPABILITY declarations to Modelfiles and an additive capabilities
field to create requests. Preserve declarations across GGUF and safetensors
creation, inheritance, and Modelfile export.

Require decision capability before scheduling System One requests instead
of matching Qwen architecture/renderer metadata. Retain main's GGUF-only
scoring restriction until the separate MLX runtime work lands.

Extracted from the capability foundation in 36d46a0c3 on system_one_mlx;
MLX scoring and manifest-list changes are intentionally separate.
2026-09-29 11:10:25 -07:00
Daniel Hiltgen
eab3d8b37f Merge remote-tracking branch 'upstream/main' into release_v0.40.0 2026-09-28 18:25:49 -07:00
Daniel Hiltgen
a8aaf9fcfa
llama.cpp: version bump b11232 (#18652) 2026-09-28 18:25:08 -07:00
Daniel Hiltgen
6bdccd24e4
MLX: version bump (#18651) 2026-09-28 18:24:48 -07:00
Parth Sareen
05a7a91dae
feat: allow ten web searches per response (#18602) 2026-09-28 14:21:25 -07:00
Daniel Hiltgen
47bbe1eebe Merge remote-tracking branch 'upstream/main' into release_v0.40.0
# Conflicts:
#	server/images.go
#	server/routes.go
2026-09-28 14:14:00 -07:00
Daniel Hiltgen
cc4069396f
mlx: bound pull stall retries and let the watchdog interrupt them (#18625)
* transfer: bound stall retries and let the watchdog interrupt them

A download that stalls could never recover. copy derived its own
cancellable context, but the request was built from the parent, so
cancelling on a stall never reached the in-flight body and the read
stayed parked. The stall watchdog could detect a stall it had no way
to stop.

Stall retries were also unbounded: they never incremented attempt, so
the retry loop had no limit, and because backoff was gated on
attempt > 0 they retried with no delay at all.

The request now owns the cancellable context and passes its cancel
down to copy, so a stall aborts the read. Stalls get their own retry
budget before counting against the limit, and backoff is keyed to
every retry rather than only the counted ones.

* move out of x/
2026-09-28 13:31:38 -07:00
Parth Sareen
ffb6f220d0
feat: add System One scoring API (#18606) 2026-09-28 13:21:01 -07:00
Daniel Hiltgen
16b4376aea
bench: use HumanEval patch prompts (#17480)
* bench: use code prompts for prompt-token runs

Replace the synthetic word-list prompt with packed HumanEval Python prompts so speculative draft models see code-like continuations.

Keep the benchmark on the chat path, and calibrate -prompt-tokens with untimed chat probes that read PromptEvalCount instead of relying on a separate token-count API.

Each request still gets a nonce prefix to avoid prefix-cache hits while timed epochs measure the chat-rendered workload.

* review comments

* use different windows for each epoch

* add OpenAI API support

* address comments
2026-09-26 07:29:54 -07:00
Daniel Hiltgen
75b952780f llama-server: prepare to remove compatibility patch
Add manifest-list storage so runner-specific manifests can coexist under one tag while preserving existing v1 tags as best-effort downgrade anchors. Show/list/copy/remove/pull/push now understand runner and digest selection and transfer referenced child manifests and layers.

Add lazy local compatibility migration for legacy Ollama GGUFs into llama.cpp-compatible children, covering the patched model families and preserving parser/renderer, templates, projectors, media metadata, split GGUFs, and MTP/draft tensors where applicable.

Extend create/import/conversion paths for the same compatibility rules, harden manifest-list combine validation, and add focused manifest, migration, transfer, and integration coverage for first-load conversion plus chat/tools/vision/audio/embedding behavior.
2026-09-24 19:25:52 -07:00
Daniel Hiltgen
7af393188d
api: deprecate typical_p (#18627)
Switch from rejecting API requests to logging a warning.  Model creation still rejects the deprecated param.

Follow up from #18448 to remove the hard API failure.
2026-09-24 15:03:28 -07:00