Mythosia.AI.Providers.Alibaba - Release Notes
v3.0.2
Changed
- Completion resolves the prepared request message snapshot before request execution instead of continuing with the original caller input. This keeps captured request context and message ownership consistent with the core request pipeline.
- Rebuilds against
Mythosia.AI8.2.0 and transitivelyMythosia.AI.Abstractions4.2.0.
Compatibility
- Existing Qwen public APIs, endpoint defaults and thinking controls remain unchanged. No additional source migration is required from 3.0.x; this patch does not add provider-specific priority processing.
- The inherited core SSE path retains a known cancellation/timeout limitation with custom HTTP content that buffers a successful response during stream acquisition. A canceled Run can remain pending and block service reuse until acquisition finishes; default transport checks passed. See the streaming limitation.
v3.0.1
Changed
- Rebuilds the Qwen adapter against
Mythosia.AI8.1.0 and transitivelyMythosia.AI.Abstractions4.1.0. Inherits core request-context and stateless-summary corrections.
Compatibility
- Existing Qwen public APIs, endpoint defaults and thinking controls remain unchanged. No additional source migration is required from 3.0.0. The shared speed API does not add Qwen-specific priority processing; unsupported explicit speed selections remain rejected.
v3.0.0
This coordinated major release changes public contracts. See the v8 migration guide before upgrading the package family.
Added
Inherits pure
GetCapabilities()inspection on Qwen services and request builders. Definitions reflect endpoint mode, captured provider settings, model overrides and Ollama wire-ID mapping; custom deployment support stays Unknown when not known. UI controls and invocation validation use the shared capability definitions, with existing request validation retained. See capability inspection.Inherits the major
AIRun.Resultmigration toTask<AIRunResult>, with accumulated.Text, reported usage/sources, captured provider/requested model, actual model when reported, library rounds, and finish details. Stream observation is optional; ordinaryGetCompletionAsyncremains a string API. Existing Run string callers must read(await run.Result).Textand rebuild. See migration.AIRunResult.RequestedModelrecords the model ID actually sent: the capturedModelIdOverridewhen set, or the endpoint-specific model ID, including Ollama mapping such asqwen3-32btoqwen3:32b. A builder retains its captured override after service defaults change;Modelremains the separate server-reported model.Ordinary completion cancellation: Qwen forwards the caller token through DashScope, vLLM and Ollama HTTP requests, local tools and later rounds. The inherited completion, typed, builder and message-chain APIs accept the token. Caller cancellation is distinct from request-policy timeouts; remote generation or billing cancellation is not guaranteed. See the common contract.
Internal
Inherits the shared streaming terminal guard: later content or changed finish reasons fail the round before saving its response or executing tools. A final delta in the first terminal event and trailing usage-only events remain supported.
Qwen profile inspection shares only native mode flags with execution through the pure capability-profile hook; queries do not invoke execution preparation or serialize tool defaults.
Inherits common tool return normalization, cooperative cancellation, and error-result handling from the core service; Qwen uses the same execution contract without requiring provider-native async tool support.
Inherits
CreateRequest(...)and immutable request builders from the core service. Common and Qwen provider defaults are captured per request; existing Qwen reasoning/search capability limits and shared-conversation rules remain. See the request guide.Rebuilt against
Mythosia.AIv8.0.0 and its provider request-option capture hooks, withMythosia.AI.Abstractionsv4.0.0 as an indirect dependency.
Compatibility
- Existing source callers can omit the new completion token. Qwen endpoint behavior and Run controls remain; rebuild callers for the changed completion signatures. Claude-specific options are not added to Qwen.
v2.0.1
Fixed
- Qwen's non-streaming completion override now enters the common request-feature scope. Unsupported common reasoning or hosted-search options are validated and consumed before an HTTP request, rather than bypassing validation or leaking into a later call.
Changed
- Targets
Mythosia.AIv7.1.0 and its request-scope implementation. Qwen inherits the coreStartRunAsynccontrols for output, final results, cancellation, and disposal; existing tools continue through the common round policy.
Compatibility
- Requires
Mythosia.AIv7.1.0, which depends onMythosia.AI.Abstractionsv3.1.0. No existing Qwen public member is removed or changed. - DashScope, vLLM, and Ollama retain their provider-specific
ThinkingModeand endpoint settings. This adapter does not gain native steering, hosted search, or native asynchronous-tool support; Qwen runs reportCanSteer = false. Functions withAllowAsyncset still use ordinary execution. - Qwen remains a chat-completion provider and does not implement
IImageGenerationService. The v2.0.0 migration notes below still apply when upgrading from v1.x.
v2.0.0
This is the Alibaba provider release paired with Mythosia.AI v7. Follow the v7 migration guide before upgrading.
Changed
- Ordered function-call batches โ Qwen non-streaming and streaming paths now preserve every tool call returned in one assistant turn and send the matching ordered result batch back through the common Mythosia.AI v7 continuation contract.
- Common handler scheduling โ
FunctionCallingPolicy.ExecutionModeselects sequential compatibility behavior or bounded-parallel local handler execution;MaxConcurrencylimits parallel work while provider call order remains stable.
Removed
- Legacy image-generation overrides โ
QwenService.GenerateImageAsyncandGenerateImageUrlAsyncwere unsupported stubs inherited from the old core abstraction and have been removed with the Mythosia.AI v7 API surface. Qwen remains a chat-completion provider and does not implementIImageGenerationService.
Compatibility
- Recompiled against and requires
Mythosia.AIv7.0.0. - Breaking release for callers that referenced the removed public overrides or derived from the former single-function extraction contract.
v1.2.8
Fixed
- Context-overflow rejections reach the core's recovery.
QwenServicebuilds and throws its own HTTP failure, so it did not produce theContextLengthExceededExceptionthat Mythosia.AI v6.8.0 reacts to โ a Qwen model, or any vLLM deployment served through this provider, would have been refused for exceeding the context window and never compacted or re-sent, while every other provider recovered. The rejection now goes throughAIHttpErrorFactory, which is also where vLLM's wording is recognised.
Compatibility
- Requires
Mythosia.AIv6.8.0. No API changes.
v1.2.7
Fixed
- Thinking-off was silently dropped for models whose id does not literally contain
qwen3. The request builder gated the "thinking off" signal behind a model-name check (modelId.Contains("qwen3")), while "thinking on" was always sent. Because a served model name is chosen freely by the operator (vLLM--served-model-name, aliases), a Qwen 3 model served under any other name never receivedenable_thinking = falseโ the caller believed reasoning was disabled while the server kept its default (reasoning on). This surfaced as summarization requests emitting long reasoning traces and hitting request timeouts. enable_thinkingwas sent in the wrong shape on vLLM for models outside theqwen3.5name path. It was emitted as a top-level parameter instead ofchat_template_kwargs.enable_thinking, so vLLM never applied it. Both the on and off signals are now sent in the documented per-platform format for every model.
Changed
- Thinking parameters are now derived solely from the configured
ThinkingModeand translated per platform (DashScope / vLLM / Ollama). The provider no longer inspects the model id to infer capability โ an unsupported model is expected to ignore the parameter or surface an error, which is preferable to a directive disappearing silently.
Internal
- Removed the duplicated Qwen 3.5-specific request path and the
IsQwen35/IsQwen3ThinkingCapablename heuristics; both request paths are unified into a singleApplyThinkingParametersstep. No public API change.
Compatibility
- No API changes. Callers that set
ThinkingMode(directly or viaAIRequestProfile.DisableReasoning) will now actually have that setting reach the server; this can change model behavior where the directive was previously being dropped.
v1.2.6
Compatibility
- Recompiled for the
Mythosia.AIv6.4.0 release line. No API changes.
v1.2.5
Compatibility
- Recompiled for the
Mythosia.AIv6.3.0 release line. No API changes.
v1.2.4
Compatibility
- Recompiled for the
Mythosia.AIv6.2.0 release line. No API changes.
v1.2.3
Compatibility
- Recompiled for the
Mythosia.AIv6.1.0 release line. No API changes.
v1.2.2
Compatibility
- Recompiled against
Mythosia.AIv6.0.0. No API changes.
v1.2.1
Compatibility
- Recompiled against
Mythosia.AIv5.3.0. No API changes.
v1.2.0 - Mythosia.AI v5.2.0 Binary Compatibility
โ Compatibility
- Recompiled against
Mythosia.AIv5.2.0 (Abstractions split:AIServicenow implementsIAIService) - No API changes โ fixes
TypeLoadExceptionwhen used alongsideMythosia.AI.Abstractionsv1.0.0
๐ v1.1.0 - Mythosia.AI v5.1.0 Compatibility & Token Usage Support
Token Usage in Streaming
QwenService streaming now reports token usage (input, output, cached, reasoning tokens) on Completion events via StreamingContent.Usage, inherited from the core package.
โ Compatibility
- Compatible with
Mythosia.AIv5.1.0 - Breaking:
StreamOptions.IncludeTokenInfo/WithTokenInfo()removed in core package (see Mythosia.AI v5.1.0 release notes for migration guide)
๐ง v1.0.2 - Mythosia.AI v5.0.1 Compatibility
Streaming Architecture Alignment
- Aligned with Mythosia.AI v5.0.1 Template Method streaming refactor:
QwenServicenow overridesStreamRoundAsyncinstead ofStreamAsync, inheriting base class round-loop management,StatelessModehandling, and automatic conversation summary policy.
โ Compatibility
- Compatible with
Mythosia.AIv5.0.1 - No breaking changes
๐ v1.0.1 - Thinking Request Handling Fix
DashScope Qwen 3.5 ํ๋ผ๋ฏธํฐ ํฌ๋งท ์์
DashScope ์๋ํฌ์ธํธ์์ Qwen 3.5 thinking ํ๋ผ๋ฏธํฐ๊ฐ chat_template_kwargs.enable_thinking์ผ๋ก ์๋ชป ์ ์ก๋๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค. DashScope๋ top-level enable_thinking ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
vLLM / DashScope ์์ฒญ ๊ฒฝ๋ก ๋ถ๋ฆฌ
vLLM๊ณผ DashScope๊ฐ ๋์ผํ chat_template_kwargs ๊ฒฝ๋ก๋ฅผ ๊ณต์ ํ๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค.
| Platform | Thinking On | Thinking Off |
|---|---|---|
| DashScope | enable_thinking = true |
enable_thinking = false |
| vLLM | chat_template_kwargs.enable_thinking = true |
chat_template_kwargs.enable_thinking = false |
| Ollama | reasoning.effort = "high" |
(ํ๋ผ๋ฏธํฐ ์๋ต) |
Qwen3 ๋ชจ๋ธ thinking-off ๋ช ์ ์ ์ก
Qwen3 thinking-capable ๋ชจ๋ธ์์ ThinkingMode๊ฐ off์ผ ๋ DashScope / vLLM์ enable_thinking = false๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์กํ๋๋ก ์์ ํ์ต๋๋ค. ์ด์ ์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ต๋์ด ์๋ฒ ๊ธฐ๋ณธ๊ฐ์ผ๋ก thinking์ด ์๋์น ์๊ฒ ํ์ฑํ๋ ์ ์์์ต๋๋ค.
โ Compatibility
- Compatible with
Mythosia.AIv5.0.0 - No breaking changes
๐ v1.0.0 - Package Documentation, Qwen 3.5 Request Handling, and Request Profile Integration
NuGet Packaging Metadata and Package Docs
This release also includes the package-level documentation and NuGet metadata alignment that had previously been tracked separately.
- Added package
README.md - Added package
RELEASE_NOTES.md - Added NuGet readme metadata to the project file
- Added package tags, description, and project URL metadata
- Added packaging entries so package documentation files are included properly
Expanded AlibabaModels Catalog
The package now exposes a broader built-in Qwen model catalog through AlibabaModels.
Added coverage includes Qwen 3 and Qwen 3.5 families such as:
AlibabaModels.Qwen3_235BAlibabaModels.Qwen3_32BAlibabaModels.Qwen3_5_397BAlibabaModels.Qwen3_5_27BAlibabaModels.Qwen3_5_0_8B
This makes it easier to target newer Alibaba model variants without hardcoding IDs in application code.
Qwen 3.5 Thinking Request Handling
QwenService now applies Qwen 3.5-specific request shaping when thinking mode is enabled.
vLLMand DashScope-style requests usechat_template_kwargs.enable_thinkingOllamarequests continue to map thinking mode through reasoning parameters
This keeps thinking-mode behavior aligned with how different Qwen 3.5 endpoints expect the request payload.
AIRequestProfile.DisableReasoning Integration
With the core Mythosia.AI v5.0.0 request-profile APIs, QwenService now respects per-request reasoning disablement.
When AIRequestProfile.DisableReasoning is set, the provider temporarily turns ThinkingMode off for that call and restores the previous state afterward.
var answer = await service.GetCompletionAsync(
"Summarize this policy without reasoning output.",
new AIRequestProfile
{
DisableReasoning = true
});
โ Compatibility
- Package version advanced to
v1.0.0 - Compatible with
Mythosia.AIv5.0.0 - No breaking changes