Mythosia.AI.Providers.Alibaba
1.2.8
dotnet add package Mythosia.AI.Providers.Alibaba --version 1.2.8
NuGet\Install-Package Mythosia.AI.Providers.Alibaba -Version 1.2.8
<PackageReference Include="Mythosia.AI.Providers.Alibaba" Version="1.2.8" />
<PackageVersion Include="Mythosia.AI.Providers.Alibaba" Version="1.2.8" />
<PackageReference Include="Mythosia.AI.Providers.Alibaba" />
paket add Mythosia.AI.Providers.Alibaba --version 1.2.8
#r "nuget: Mythosia.AI.Providers.Alibaba, 1.2.8"
#:package Mythosia.AI.Providers.Alibaba@1.2.8
#addin nuget:?package=Mythosia.AI.Providers.Alibaba&version=1.2.8
#tool nuget:?package=Mythosia.AI.Providers.Alibaba&version=1.2.8
Mythosia.AI.Providers.Alibaba
Package Summary
Mythosia.AI.Providers.Alibaba adds Alibaba Cloud / Qwen provider support for Mythosia.AI through QwenService.
It is intended for projects that want to keep using the common AIService abstraction while calling Qwen-compatible chat completion endpoints through DashScope, vLLM, or Ollama.
Features
- Qwen chat completion support through
QwenService - Streaming response support with token usage reporting (
TokenUsage) - Function calling support
- Shared
Mythosia.AIconversation and message abstractions - Thinking-mode control that is sent as configured, without model-name guessing
- Compatible endpoint handling for
DashScope,vLLM, andOllama
Installation
dotnet add package Mythosia.AI.Providers.Alibaba
Model Catalog
The provider now includes a broader built-in model catalog for Qwen 3 and Qwen 3.5 families.
service.ChangeModel(AlibabaModels.Qwen3_32B);
service.ChangeModel(AlibabaModels.Qwen3_5_27B);
service.ChangeModel(AlibabaModels.Qwen3_5_397B);
Thinking Mode Behavior
QwenService sends whatever ThinkingMode you configured, translated into the platform's request format.
| 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" |
(파라미터 생략) |
Thinking off 시 DashScope / vLLM에는 명시적으로 enable_thinking = false가 전송되어 서버 기본값에 의한 의도치 않은 thinking 활성화를 방지합니다.
모델 이름은 판단 근거가 아닙니다. 서빙 이름(vLLM --served-model-name, 별칭 등)은 운영자가 자유롭게 정하므로 모델의 능력을 나타내지 않습니다. 따라서 QwenService는 모델 ID를 검사해 "이 모델이 thinking을 지원하는지" 추측하지 않고, 지정된 ThinkingMode를 그대로 전송합니다 — 지원하지 않는 모델이라면 서버가 무시하거나 오류로 드러나는 편이, 지정이 조용히 사라지는 것보다 안전하기 때문입니다.
Request-Scoped Reasoning Control
When you are using the shared AIRequestProfile APIs from Mythosia.AI, QwenService can disable reasoning for a single call without changing the long-lived service configuration.
var answer = await service.GetCompletionAsync(
"Summarize this policy without reasoning output.",
new AIRequestProfile
{
DisableReasoning = true
});
Quick Start with vLLM
using Mythosia.AI.Providers.Alibaba;
var httpClient = new HttpClient();
var service = new QwenService("http://localhost:8000", EndpointPlatform.Vllm, httpClient)
.UseQwen3_32BModel();
var response = await service.GetCompletionAsync("Hello, Qwen!");
Console.WriteLine(response);
Quick Start with Ollama
using Mythosia.AI.Providers.Alibaba;
var httpClient = new HttpClient();
var service = new QwenService("http://localhost:11434", EndpointPlatform.Ollama, httpClient)
.UseQwen3_32BModel();
var response = await service.GetCompletionAsync("Hello, Qwen!");
Console.WriteLine(response);
Configure Thinking Mode
using Mythosia.AI.Providers.Alibaba;
var service = new QwenService("http://localhost:11434", EndpointPlatform.Ollama, httpClient)
{
ThinkingMode = QwenThinking.On
};
Using Quantized or Custom Model Names
Some Qwen deployments do not use the default public model identifier.
Examples:
- Quantized variants such as
qwen3:32b-q4_K_M - Custom deployment names from a gateway or self-hosted endpoint
- Provider-specific aliases that differ from the built-in
AlibabaModelsconstants
In those cases, keep the service configured normally and set ModelIdOverride to the exact deployed model name that your endpoint expects.
using Mythosia.AI.Providers.Alibaba;
var service = new QwenService("http://localhost:11434", EndpointPlatform.Ollama, httpClient)
{
ThinkingMode = QwenThinking.On,
ModelIdOverride = "qwen3:32b-q4_K_M"
};
var response = await service.GetCompletionAsync("Summarize this document.");
You can also combine a built-in base model selection with a different runtime model ID:
var service = new QwenService("http://localhost:8000", EndpointPlatform.Vllm, httpClient)
.UseQwen3_32BModel();
service.ModelIdOverride = "my-qwen3-32b-awq";
var response = await service.GetCompletionAsync("Explain this code.");
This is useful when:
- The displayed deployment name is different from the public Qwen model name
- You are routing through Ollama, vLLM, or a custom proxy
- You want to use a quantized build while keeping the general service configuration readable
How Model Names Behave on Ollama
When EndpointPlatform.Ollama is used, built-in model names are automatically converted to Ollama-style IDs.
Example:
qwen3-32b→qwen3:32b
If your Ollama model name is not the default converted name, set ModelIdOverride explicitly.
Streaming Example
var service = new QwenService("http://localhost:8000", EndpointPlatform.Vllm, httpClient)
.UseQwen3_32BModel();
await foreach (var chunk in service.StreamAsync("Explain transformers simply."))
{
if (!string.IsNullOrWhiteSpace(chunk.Content))
Console.Write(chunk.Content);
}
Function Calling Example
var service = new QwenService("http://localhost:8000", EndpointPlatform.Vllm, httpClient)
.UseQwen3_32BModel()
.WithFunction(
"get_weather",
"Gets the current weather for a city",
("city", "City name", true),
(string city) => $"Weather in {city}: sunny, 24°C");
var result = await service.GetCompletionAsync("What's the weather in Seoul?");
Notes
- Use
EndpointPlatform.DashScopefor Alibaba Cloud DashScope endpoints (default) - Use
EndpointPlatform.Vllmfor OpenAI-compatiblevLLMendpoints - Use
EndpointPlatform.Ollamafor local Ollama servers - Model selection can be changed with provider model constants or
ModelIdOverride - For the shared core API surface and advanced features, see the main
Mythosia.AIpackage documentation
Documentation
- Main package: GitHub Repository
- Core package docs: Mythosia.AI Core Package
- Release notes: RELEASE_NOTES.md
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Mythosia.AI (>= 6.8.0)
- TiktokenSharp (>= 1.2.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v1.2.8: Context-overflow rejections are translated through AIHttpErrorFactory, raising ContextLengthExceededException so the reactive recovery released in Mythosia.AI v6.8.0 engages for Qwen and for vLLM deployments served through this provider. QwenService owns its own HTTP error path, so recovery could not reach it otherwise. No API changes. Requires Mythosia.AI v6.8.0.