GigaChat.Net.AspNetCore
1.1.0
dotnet add package GigaChat.Net.AspNetCore --version 1.1.0
NuGet\Install-Package GigaChat.Net.AspNetCore -Version 1.1.0
<PackageReference Include="GigaChat.Net.AspNetCore" Version="1.1.0" />
<PackageVersion Include="GigaChat.Net.AspNetCore" Version="1.1.0" />
<PackageReference Include="GigaChat.Net.AspNetCore" />
paket add GigaChat.Net.AspNetCore --version 1.1.0
#r "nuget: GigaChat.Net.AspNetCore, 1.1.0"
#:package GigaChat.Net.AspNetCore@1.1.0
#addin nuget:?package=GigaChat.Net.AspNetCore&version=1.1.0
#tool nuget:?package=GigaChat.Net.AspNetCore&version=1.1.0
GigaChat.Net.AspNetCore
GigaChat.Net.AspNetCore - ASP.NET Core расширения для GigaChat.Net. Пакет добавляет DI-регистрацию, request context middleware и механизм передачи per-request/per-call metadata в исходящие вызовы GigaChat.
Статус проекта
Этот репозиторий ведется ИИ под контролем владельца проекта. Перенос SDK с Python библиотеки
gigachat на .NET также был выполнен ИИ.
Если при использовании SDK или ASP.NET Core интеграции вы обнаружите баг, несовместимость или неточность документации, пожалуйста, создайте GitHub Issue:
https://github.com/h0tnanny/GigaChat-Net/issues
Такие обращения будут приняты в работу и использованы для улучшения SDK.
Установка
dotnet add package GigaChat.Net.AspNetCore
Пакет зависит от GigaChat.Net и поддерживает .NET 6.0, .NET 7.0, .NET 8.0, .NET 9.0 и .NET 10.0.
Быстрый старт
using GigaChat.Net;
using GigaChat.Net.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddGigaChat(builder.Configuration);
var app = builder.Build();
app.UseGigaChatContext();
app.MapPost("/chat", async (IGigaChatClient client, ChatRequest request, CancellationToken cancellationToken) =>
{
var response = await client.ChatAsync(request.Message, cancellationToken);
return Results.Ok(response.Choices[0].Message.Content);
});
app.Run();
public sealed record ChatRequest(string Message);
appsettings.json:
{
"GigaChat": {
"Credentials": "<your_authorization_key>",
"Scope": "GIGACHAT_API_PERS",
"Model": "GigaChat",
"AllowModelOverrideFromHeader": true
}
}
Request context
UseGigaChatContext() читает trusted headers и сохраняет значения в текущем GigaChatContext. Если данные приходят не из headers, заполните контекст самостоятельно:
builder.Services.Configure<GigaChatRequestContextOptions>(options =>
{
options.ConfigureContext = (httpContext, context) =>
{
context.SessionId = httpContext.Request.Query["sessionId"].ToString();
context.ClientId = httpContext.User.FindFirst("client_id")?.Value;
};
});
Для конкретного вызова можно передать GigaChatRequestHeaders. Явно переданные значения имеют приоритет, отсутствующие значения берутся из middleware context:
await client.ChatAsync(
"Привет!",
new GigaChatRequestHeaders
{
RequestId = "request-for-this-call",
Model = "GigaChat-Pro"
},
cancellationToken);
Модель можно менять через входящий header X-GigaChat-Model, если в настройках включено AllowModelOverrideFromHeader.
Собственный HttpClient
По умолчанию пользователю не нужно вручную настраивать HttpClient. Если нужен корпоративный handler, retry policy, proxy или observability pipeline, передайте factory:
builder.Services.AddHttpClient("GigaChat", client =>
{
client.Timeout = TimeSpan.FromSeconds(60);
});
builder.Services.AddGigaChat(
builder.Configuration,
provider => provider.GetRequiredService<IHttpClientFactory>().CreateClient("GigaChat"));
Semantic Kernel в ASP.NET Core
Если ASP.NET Core приложение использует Semantic Kernel, зарегистрируйте Kernel
поверх уже настроенного IGigaChatClient. Для этого добавьте пакет
GigaChat.Net.SemanticKernel. Если приложение напрямую использует типы
Kernel, IChatCompletionService или ChatHistory, добавьте явную ссылку на
Microsoft.SemanticKernel, чтобы IDE и build tooling видели эти типы без
опоры на транзитивные зависимости.
dotnet add package GigaChat.Net.SemanticKernel
dotnet add package Microsoft.SemanticKernel
using GigaChat.Net;
using GigaChat.Net.AspNetCore;
using GigaChat.Net.SemanticKernel;
using Microsoft.Extensions.Options;
using Microsoft.SemanticKernel.ChatCompletion;
builder.Services.AddGigaChat(builder.Configuration);
builder.Services.AddGigaChatSemanticKernel(options =>
{
options.ModelIdFactory = provider => provider.GetRequiredService<IOptions<GigaChatOptions>>().Value.Model;
options.EndpointFactory = provider => provider.GetRequiredService<IOptions<GigaChatOptions>>().Value.BaseUrl;
});
app.MapPost("/semantic-kernel/chat", async (
ChatRequest request,
IChatCompletionService chat,
CancellationToken cancellationToken) =>
{
ChatHistory history =
[
new ChatMessageContent(AuthorRole.System, "Ты ASP.NET Core ассистент."),
new ChatMessageContent(AuthorRole.User, request.Message)
];
var response = await chat.GetChatMessageContentsAsync(
history,
new GigaChatPromptExecutionSettings
{
Temperature = 0.2,
MaxTokens = 700
},
cancellationToken: cancellationToken);
return Results.Ok(response[0].Content);
});
Расширенный пример с endpoints для chat, streaming, structured output,
Semantic Kernel plugins/tools и ChatCompletionAgent находится в
examples/GigaChat.AspNetCore.Example.
Документация
Полная документация и пример приложения находятся в репозитории:
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. 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 is compatible. 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 is compatible. 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 is compatible. 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 is compatible. 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. |
-
net10.0
- GigaChat.Net (>= 1.1.0)
-
net6.0
- GigaChat.Net (>= 1.1.0)
-
net7.0
- GigaChat.Net (>= 1.1.0)
-
net8.0
- GigaChat.Net (>= 1.1.0)
-
net9.0
- GigaChat.Net (>= 1.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0 | 168 | 6/18/2026 |
| 1.0.2 | 122 | 6/2/2026 |
| 1.0.2-preview.33.1 | 59 | 9/19/2026 |
| 1.0.2-preview.32.1 | 58 | 9/19/2026 |
| 1.0.2-preview.31.1 | 79 | 6/19/2026 |
| 1.0.2-preview.30.1 | 74 | 6/19/2026 |
| 1.0.2-preview.29.1 | 70 | 6/19/2026 |
| 1.0.2-preview.28.1 | 75 | 6/19/2026 |
| 1.0.2-preview.27.1 | 74 | 6/19/2026 |
| 1.0.2-preview.26.1 | 77 | 6/19/2026 |
| 1.0.2-preview.25.1 | 81 | 6/19/2026 |
| 1.0.2-preview.24.1 | 82 | 6/19/2026 |
| 1.0.2-preview.23.1 | 73 | 6/18/2026 |
| 1.0.2-preview.21.1 | 66 | 6/2/2026 |
| 1.0.1 | 116 | 6/2/2026 |
| 1.0.1-preview.20.1 | 69 | 6/2/2026 |
| 1.0.1-preview.19.1 | 71 | 6/2/2026 |
| 0.1.0-preview.semantic-kern... | 70 | 6/2/2026 |
| 0.1.0-preview.semantic-kern... | 69 | 5/31/2026 |
| 0.1.0-preview.semantic-kern... | 70 | 5/31/2026 |
Add explicit package targets for every .NET version from .NET 6 through .NET 10.