NuGet GigaChatLib .NET 8.0 Лицензия Apache-2.0

.NET SDK для GigaChat API

Авторизация с кэшированием токена, чат с потоковой генерацией и вызовом функций, эмбеддинги, подсчёт токенов — с готовой регистрацией через AddGigaChat().

dotnet add package GigaChatLib
Возможности

Всё, что нужно для интеграции с GigaChat

Библиотека закрывает полный жизненный цикл работы с API — от авторизации до потоковой генерации ответа.

🔐

Авторизация и кэш токена

Access-токен кэшируется и потокобезопасно обновляется в фоне (single-flight), с автоматическим повтором при 401.

Потоковая генерация

StreamCompletionAsync возвращает IAsyncEnumerable<ChatCompletionChunk> — ответ приходит по мере генерации.

🧩

Вызов функций

Полная поддержка function calling: описание функций, режимы вызова, разбор function_call в ответе.

🧠

Эмбеддинги и токены

Векторные представления текста и точный подсчёт токенов перед отправкой запроса — для контроля стоимости.

🔌

Готовая регистрация в DI

Один вызов AddGigaChat() — и все клиенты, обработчики токена и HTTP-стек настроены правильно.

🛡️

Понятные ошибки API

Любой не-2xx ответ — это GigaChatApiException с StatusCode и ErrorCode, без голых HttpRequestException.

Быстрый старт

Первый запрос — в несколько строк

Ключ авторизации (Authorization Key, Base64) выдаётся в личном кабинете GigaChat API.

Program.cs
using GigaChatLib.Clients;
using GigaChatLib.Dtos.Chat;
using GigaChatLib.Dtos.Chat.Messages;
using GigaChatLib.Enums;
using GigaChatLib.Extensions;
using Microsoft.Extensions.DependencyInjection;

var services = new ServiceCollection();
services.AddGigaChat(options =>
{
    options.AuthorizationKey = "<ваш Authorization Key>";
    options.Scope = ApiScope.GIGACHAT_API_PERS;
});

await using var provider = services.BuildServiceProvider();
var giga = provider.GetRequiredService<IGigaChatClient>();

var response = await giga.Chat.CreateCompletionAsync(new ChatCompletionRequest
{
    Model = "GigaChat",
    Messages = { new UserMessage { Content = "Привет! Расскажи о себе в двух словах." } }
});

Console.WriteLine(response.Choices[0].Message.Content);
API

Покрытие эндпоинтов

Каждый клиент доступен как свойство на IGigaChatClient.

КлиентМетодЭндпоинт
giga.ChatCreateCompletionAsync, StreamCompletionAsyncPOST /chat/completions
giga.ModelsGetModelsAsyncGET /models
giga.FilesGetFilesAsync, UploadFileAsync, DeleteFileAsync/files
giga.MonitoringGetBalanceAsyncGET /balance
giga.EmbeddingsCreateEmbeddingsAsyncPOST /embeddings
giga.TokensCountAsyncPOST /tokens/count