From aca94361d15da7c73fcfe5e4e2eed7cd84f9fb96 Mon Sep 17 00:00:00 2001 From: Spencer Gilbert Date: Mon, 28 Sep 2026 13:58:22 -0400 Subject: [PATCH] [pi] Add gufo provider over its OpenAI chat endpoint Serve qwen3.8-flash from desktop:8080 and enable it for model cycling. The endpoint needs no compat scaffolding: pi's URL auto-detection picks openai reasoning_effort, max_completion_tokens, developer role, and streamed usage, all of which gufo honors. Only supportsStrictMode is stated, since gufo compiles strict tool schemas and pi omits strict by default. All seven thinking levels work, so the opencode-go gating does not apply. Keep samplingParams clear: gufo rejects logit_bias, typical_p, tfs_z, mirostat*, dynatemp_*, xtc_*, dry_*, samplers, and draft fields with unsupported_sampling. --- pi/models.json | 33 +++++++++++++++++++++++++++++++++ pi/settings.linux.json | 1 + 2 files changed, 34 insertions(+) diff --git a/pi/models.json b/pi/models.json index e5618ef..8c5a67f 100644 --- a/pi/models.json +++ b/pi/models.json @@ -1,5 +1,38 @@ { "providers": { + "gufo": { + "baseUrl": "http://desktop:8080/v1", + "api": "openai-completions", + "apiKey": "no-key", + "models": [ + { + "id": "qwen3.8-flash", + "name": "Qwen3.8 Flash", + "reasoning": true, + "input": ["text", "image"], + "cost": { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 262144, + "maxTokens": 131072, + "thinkingLevelMap": { + "off": "off", + "minimal": "minimal", + "low": "low", + "medium": "medium", + "high": "high", + "xhigh": "xhigh", + "max": "max" + }, + "compat": { + "supportsStrictMode": true + } + } + ] + }, "qwen-token-plan": { "modelOverrides": { "qwen3.8-flash": { diff --git a/pi/settings.linux.json b/pi/settings.linux.json index e052902..95960d5 100644 --- a/pi/settings.linux.json +++ b/pi/settings.linux.json @@ -6,6 +6,7 @@ "defaultProvider": "qwen-token-plan", "defaultModel": "qwen3.8-flash", "enabledModels": [ + "gufo/**", "opencode-go/**", "qwen-token-plan/**" ], -- 2.51.2