Skip to content

Unofficial .NET Library for working with GigaChat AI(+Kandinsky) by Sber/ Неофициальная .NET библиотека для работы с GigaChat AII(+Kandinsky) от Сбера

License

Notifications You must be signed in to change notification settings

likhoded/GigaChat-.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


.NET GigaChat

GigaChat-.NET.

УстановкаВозможностиНачало работыПримеры


.NET GigaChat - это библиотека .NET для работы с ИИ от Сбера, который способен вести диалог с пользователем, писать код, создавать тексты и генерировать изображения прямо в ходе диалога.

(Preview)

Установка

Перед началом работы рекомендуем ознакомиться с документацией по API

Вы можете установить пакет, используя NuGet

NuGet\Install-Package GigaChatSDK -Version 1.0.5

Note

Пакет поддерживает .NET Standard 2.1

GitVerse

Возможности

Возможность Статус
Авторизация ✔️
Получение списка моделей ✔️
Получение ответа от модели ✔️
Эмбеддинги(векторное представление текста) ✔️
Генерация изображений ✔️
Поддержка контекста, из SDK

Note

Вы можете самостоятельно реализовать поддержку контекста, используя возможности библиотеки. В будущем планируется дополнительно добавить возможность работать с контекстом нативно, из библиотеки

Начало работы

Иницилизация:

public static GigaChat Chat = new GigaChat("Ваши авторизационные данные", IsCommercial, IgnoreTLS, SaveImage);

Получение токена:

await Chat.CreateTokenAsync());

Отправка запроса к модели

Контекстозависимая отправка запроса

await Chat.CompletionsAsync(new MessageQuery(Content)).Result;

Контекстонезависимая отправка запроса

await Chat.CompletionsAsync("[Запрос]").Result;

Создание эмбеддинга:

await Chat.EmbeddingAsync(EmbeddingRequest Request);

Получение изображения по идентификатору:

Возвращает файл изображения в бинарном представлении, в формате JPG. Для включения сохранения изображения, необходимо в окнтрукторе указать SaveImage = true. По-умолчанию изображение сохраняется в директории проекта, изменение директории в SaveDirectory.

await Chat.GetImageAsByteAsync(string fileId);

Получение списка моделей:

await Chat.ModelsAsync();

Получение списка моделей

Используется для извлечения идентификатора изображения из сообщения. В качестве аргумента передается текст сообщения.

await Chat.GetFileId(string MessageContent);

Примеры

Пример получения строки ответа из отправленного запроса с использованием контекстозависимой перегрузки метода CompletionsAsync:

Response response = Chat.CompletionsAsync(new MessageQuery(content)).Result;
string messageTextResponse = response.choices.LastOrDefault().message.content;

Пример получения строки ответа из отправленного запроса с использованием контекстонезависимой перегрузки метода CompletionsAsync:

Response response = Chat.CompletionsAsync("Расскажи о себе").Result;
string messageTextResponse = response.choices.LastOrDefault().message.content;
// content = "Я нейросетевая модель GigaChat от Сбера."

Пример получения изображения из отправленного запроса:

Response response = Chat.CompletionsAsync("Нарисуй рыжего кота с зелеными глазами").Result;
string messageTextResponse = response.choices.LastOrDefault().message.content;
if (Chat.GetFileId(messageTextResponse) != null)
{
    byte[] imageBytes = await Chat.GetImageAsByteAsync(Chat.GetFileId(messageTextResponse));
    Console.WriteLine("Идентификатор изображения: " + Chat.GetFileId(messageTextResponse));
}
else
{
    await botClient.SendTextMessageAsync(chatId, response.choices.LastOrDefault().message.content);
}

Note

Каждый метод в качестве необязательных аргументов принимает стандартные значения из документации GigaChat API

GigaChat-.NET.

InstallationFeaturesUsage


.NET GigaChat is a library .NET for working with the service from the Sber, which is able to conduct a dialogue with the user, write code, create texts and generate images directly during the dialogue.

(Preview)

Installation

Downloading and installing steps:

You can install the package using NuGet

NuGet\Install-Package GigaChatSDK -Version 1.0.5

Note

The package supports .NET Standard 2.1

Features

Opportunity Status
Authorization ✔️
Getting a list of models ✔️
Getting a response from the model ✔️
Embedding (vector representation of text) ✔️
Image generation ✔️
Context support, from the SDK

Getting started

Initialization:

public static GigaChat Chat = new GigaChat("Your authorization data", IsCommercial, IgnoreTLS, SaveImage);

Getting a token:

await Chat.CreateTokenAsync());

Sending a request to the model

Context-dependent sending of a request

await Chat.CompletionsAsync(new MessageQuery(Content)).Result;

Context-independent sending of a request

await Chat.CompletionsAsync("[Request]").Result;

Embedding creation:

await Chat.EmbeddingAsync(EmbeddingRequest Request);

Getting an image by ID:

Returns an image file in binary representation, in JPG format. To enable image saving, you must specify SaveImage = true in the window constructor. By default, the image is saved in the project directory, changing the directory to SaveDirectory.

await Chat.GetImageAsByteAsync(string fileId);

Getting a list of models:

await Chat.ModelsAsync();

Getting a list of models

Used to extract the image ID from the message. The text of the message is passed as an argument.

await Chat.GetFileId(string MessageContent);

Examples

Example of getting a response string from a sent request using a context-dependent overload of the CompletionsAsync method:

Response response = Chat.CompletionsAsync(new MessageQuery(content)).Result;
string messageTextResponse = response.choices.LastOrDefault().message.content;

Example of getting a response string from a sent request using a context-independent overload of the CompletionsAsync method:

Response response = Chat.CompletionsAsync("Tell me about yourself").Result;
string messageTextResponse = response.choices.LastOrDefault().message.content;
// content = "I am a GigaChat neural network model from Sber."

Example of getting an image from a sent request:

Response response = Chat.CompletionsAsync ("Draw a red cat with green eyes").Result;
string messageTextResponse = response.choices.LastOrDefault().message.content;
if (Chat.GetFileId(messageTextResponse) != null)
{
byte[] imageBytes = await Chat.GetImageAsByteAsync(Chat.GetFileId(messageTextResponse));
Console.WriteLine("Image ID: " + Chat.GetFileId(messageTextResponse));
}
else
{
await botClient.SendTextMessageAsync(chatId, response.choices.LastOrDefault().message.content);
}

Note

Each method takes standard values from the GigaChat API documentation as optional arguments

About

Unofficial .NET Library for working with GigaChat AI(+Kandinsky) by Sber/ Неофициальная .NET библиотека для работы с GigaChat AII(+Kandinsky) от Сбера

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages