fix(llm): 测试连接补发自定义会话头,修 opencode zen 400
testLLM 单发路径既没往 context 挂 session id,也没把 profile 的 session_header_key 透传给 cfg,导致强制要求 x-opencode-session 的端点 (opencode zen)在"对话正常"时"点击测试"却 400 MissingSessionID。 - provider.go: TestConnection 挂一个一次性随机 session id 作头值 - server.go: testLLM 透传 session_header_key,并从已存 profile 兜底 - web: api.ts / llm page 把该字段传到 /llm/test
This commit is contained in:
1 parent
d86dd152c3
commit
399f971f41
4 files changed
+31
-11
No files matched your search
@@ -466,6 +466,12 @@ func TestConnection(ctx context.Context, c Config) (time.Duration, string, error
|
||||
// context 里找到这个 Capture 并填入每次 HTTP 尝试的状态码与 body。
|
||||
ctx, capt := llmrec.NewCapture(ctx)
|
||||
defer logTestConnection(c, capt)
|
||||
// 连接测试是一条单发路径,不经过 agentcore 的会话循环,因此没人往 context 上挂
|
||||
// session id。对配了 SessionHeaderKey 的端点(如 opencode zen 强制要求
|
||||
// x-opencode-session 头,缺了直接 400 MissingSessionID),这会导致"对话正常、
|
||||
// 点击测试却 400"的落差。这里补挂一个一次性随机 session id,让测试与真实对话走同
|
||||
// 一套发头逻辑;未配 SessionHeaderKey 的端点不读它,无副作用。
|
||||
ctx = transcript.WithSessionID(ctx, "conntest-"+transcript.NewSessionID())
|
||||
start := time.Now()
|
||||
// MaxTokens 要给足:推理模型(如 deepseek-v4-pro)在给出答案前会先产出一大段
|
||||
// 思考(实测对一句 "ping" 也能烧 ~2900 token)。若只给 32,模型会一直卡在"思考阶段"
|
||||
|
||||
Reference in new issue
Block a user