Files
ollama/integration/reg_fast_test.go
Daniel Hiltgen 0f25c31bd5 qwen3.8: support developer instructions (#17749)
* qwen3.8: support developer instructions

Qwen3.8 does not define a developer role, while OpenAI-compatible coding agents commonly send developer instructions before user messages. Fold the leading system/developer instruction prefix into a single system turn before Qwen3.8 validation, preserving instruction precedence without changing Qwen3.5 or other renderer behavior.

Add streaming tool-call integration coverage for the native Ollama, OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages request shapes. Each case exercises prior assistant tool calls, tool results, follow-up rendering, and parsed tool-call output. Add Qwen3.8 to the release tools sweep.

Removes an unnecessary unit test that should not have been included in the original 3.8 PR.

* review comments
2026-08-14 11:30:27 -07:00

50 lines
2.1 KiB
Go

//go:build integration && fast
package integration
var (
fastNumPredictModel = "llama3.2:1b"
fastChatModels = []integrationModel{
{Name: "gemma4", MinVRAMGB: 8},
{Name: "gemma4:12b", MinVRAMGB: 16},
{Name: "qwen3.5:2b-nvfp4", MinVRAMGB: 4},
}
fastEmbedModels = []string{"qwen3-embedding"}
fastVisionTextModels = []string{"gemma4"}
fastToolsModels = []string{"qwen3.5:2b"}
fastToolsStressModels = []string{"lfm2.5"}
fastAudioModels = []string{"gemma4:e2b"}
)
func init() {
// API/basic/context/concurrency smoke cases
registerIntegrationCases(
integrationTestCase("api-generate", smol, runAPIGenerate),
integrationTestCase("api-chat", smol, runAPIChat),
integrationTestCase("api-list-models", "", runAPIListModels),
integrationTestCase("api-show-model", "llama3.2", runAPIShowModel),
integrationTestCase("generate-logprobs", smol, runAPIGenerateLogprobs),
integrationTestCase("chat-logprobs", smol, runAPIChatLogprobs),
integrationTestCase("blue-sky", smol, runBlueSky),
integrationTestCase("thinking-enabled", smol, runThinkingEnabled),
integrationTestCase("thinking-suppressed", smol, runThinkingSuppressed),
integrationModelTestCase("num-predict", fastNumPredictModel, runNumPredict),
integrationTestCase("embedding-api", "all-minilm", runAllMiniLMEmbeddings),
integrationTestCase("embed-api-truncate", "all-minilm", runAllMiniLMEmbedTruncate),
integrationTestCase("context-long-input", smol, runLongInputContext),
integrationTestCase("context-exhaustion", smol, runContextExhaustion),
integrationTestCase("generate-history", smol, runGenerateWithHistory),
integrationTestCase("concurrent-chat", smol, runConcurrentChat),
)
// Model-parametric cases
registerModelMinVRAM(fastChatModels)
registerChatCases(testModels(modelNames(fastChatModels)))
registerEmbeddingCases(testModels(fastEmbedModels))
registerVisionTextCases(testModels(fastVisionTextModels))
registerToolCases(testModels(fastToolsModels))
registerToolRouteCases(testModels(fastToolsModels))
registerToolStressCases(testModels(fastToolsStressModels))
registerAudioTranscriptionCases(testModels(fastAudioModels))
}