Установка • Возможности • Начало работы • Примеры •
.NET GigaChat - это библиотека .NET для работы с ИИ от Сбера, который способен вести диалог с пользователем, писать код, создавать тексты и генерировать изображения прямо в ходе диалога. (Preview) |
Перед началом работы рекомендуем ознакомиться с документацией по API
Вы можете установить пакет, используя NuGet
NuGet\Install-Package GigaChatSDK -Version 1.0.5
Note
Пакет поддерживает .NET Standard 2.1
Возможность | Статус |
---|---|
Авторизация | ✔️ |
Получение списка моделей | ✔️ |
Получение ответа от модели | ✔️ |
Эмбеддинги(векторное представление текста) | ✔️ |
Генерация изображений | ✔️ |
Поддержка контекста, из 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
Installation • Features • Usage •
.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) |
You can install the package using NuGet
NuGet\Install-Package GigaChatSDK -Version 1.0.5
Note
The package supports .NET Standard 2.1
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 | ❌ |
public static GigaChat Chat = new GigaChat("Your authorization data", IsCommercial, IgnoreTLS, SaveImage);
await Chat.CreateTokenAsync());
Context-dependent sending of a request
await Chat.CompletionsAsync(new MessageQuery(Content)).Result;
Context-independent sending of a request
await Chat.CompletionsAsync("[Request]").Result;
await Chat.EmbeddingAsync(EmbeddingRequest Request);
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);
await Chat.ModelsAsync();
Used to extract the image ID from the message. The text of the message is passed as an argument.
await Chat.GetFileId(string MessageContent);
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."
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