Skip to content

andrejjerdna/GigaSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GigaSharp

Неофициальная библиотека по работе с нейронной сетью Gigachat от Сбера.

Регистрация в проекте:

builder.Services.AddGigaSharp(options =>
{
    options.ClientId = "YOUR_API_TOKEN";
    options.Scope = "GIGACHAT_API_PERS";
    options.MaxTokens = 220;
});

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

public sealed class GigaChatProvider : IGigaChatProvider
{
    private readonly IGigaChat _gigaChat;

    public GigaChatProvider(IGigaChat gigaChat)
    {
        _gigaChat = gigaChat;
    }
    
    public async Task SomeMethod()
    {
        var gigaChatResponse = await _gigaChat.GetResponse(
            new Message[]
            {
                Message.CreateUserMessage("Сочини стихотворение о добром человеке.")
            });

        if (gigaChatResponse.Choices.Count == 0)
        {
            throw new Exception("Что-то пошло не так...");
        }

        var choice = gigaChatResponse.Choices.First();
        
        Console.WriteLine(choice.Content);
    }
}

Генерация изображения:

public sealed class GigaChatProvider : IGigaChatProvider
{
    private readonly IGigaChat _gigaChat;
    private CancellationTokenSource _tokenSource;

    public GigaChatProvider(IGigaChat gigaChat)
    {
        _gigaChat = gigaChat;
    }
    
    public async Task<byte[]> GenerateImage()
    {
        _tokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(3));

        while (!_tokenSource.IsCancellationRequested)
        {
            try
            {
                return await _gigaChat.GetImageAsBytes("Нарисуй картинку");
            }
            catch
            {
                await Task.Delay(300);
            }
        }

        throw new Exception("Не удалось получить изображение!");
    }
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages