

























@@ -27,18 +27,22 @@ const ensureOllamaModelPulledMock = vi.hoisted(() => vi.fn(async () => {}));
2727const buildOllamaProviderMock = vi.hoisted(() => vi.fn());
2828const queryOllamaModelShowInfoMock = vi.hoisted(() => vi.fn());
2929const buildOllamaModelDefinitionMock = vi.hoisted(() =>
30-vi.fn((modelId: string, contextWindow?: number, capabilities?: string[]) => ({
31-id: modelId,
32-name: modelId,
33-reasoning: capabilities?.includes("thinking") ?? false,
34-input: capabilities?.includes("vision") ? ["text", "image"] : ["text"],
35-cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
36-contextWindow: contextWindow ?? 8192,
37-maxTokens: 8192,
38-compat: capabilities
39- ? { supportsTools: capabilities.includes("tools"), supportsUsageInStreaming: true }
40- : { supportsUsageInStreaming: true },
41-})),
30+vi.fn((modelId: string, contextWindow?: number, capabilities?: string[]) => {
31+const normalized = modelId.trim().toLowerCase();
32+const isKnownCloudReasoningModel = /^deepseek-v4-(?:flash|pro):cloud$/.test(normalized);
33+return {
34+id: modelId,
35+name: modelId,
36+reasoning: isKnownCloudReasoningModel || (capabilities?.includes("thinking") ?? false),
37+input: capabilities?.includes("vision") ? ["text", "image"] : ["text"],
38+cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
39+contextWindow: contextWindow ?? 8192,
40+maxTokens: 8192,
41+compat: capabilities
42+ ? { supportsTools: capabilities.includes("tools"), supportsUsageInStreaming: true }
43+ : { supportsUsageInStreaming: true },
44+};
45+}),
4246);
4347const createConfiguredOllamaStreamFnMock = vi.hoisted(() =>
4448vi.fn((_params: { model: unknown; providerBaseUrl?: string }) => ({}) as never),
@@ -468,7 +472,7 @@ describe("ollama plugin", () => {
468472});
469473queryOllamaModelShowInfoMock.mockResolvedValueOnce({
470474contextWindow: 1048576,
471-capabilities: ["completion", "tools", "thinking"],
475+capabilities: ["completion", "tools"],
472476});
473477474478try {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。