Skip to content

Библиотека C# для работы с языковой моделью Яндекса - "YandexGPT" без использования API и авторизации.

License

Notifications You must be signed in to change notification settings

WutADude/YandexGPTWrapper

Repository files navigation

Описание

YandexGPTWrapper - это библиотека для работы с языковой моделью Яндекса "YandexGPT", позволяет легко реализовать отправку текстовых сообщений и получение текстовых ответов от языковой модели. Библиотека НЕ ТРЕБУЕТ от вас или пользователя каких-либо API ключей и т.п.

Библиотека написана на C# (.NET 7).

04.24 Работает даже после всех последних обновлений.

Примеры кода

Всё довольно просто и понятно.

Пример первый

using YandexGPTWrapper;

namespace YGPTWrapperTest
{
    internal class Program
    {
        static async Task Main(string[] args)
        {
            YaGPT yagpt = new YaGPT(); // Объявляем класс
            string answer = await yagpt.SendMessageAsync("Вопрос"); // Отправляем вопрос и получаем ответ в виде строки
            Console.WriteLine(answer); // Выводим ответ пользователю
        }
    }
}

Пример второй

Поскольку класс реализует интерфейс IDisposable мы можем сделать так.

using YandexGPTWrapper;

namespace YGPTWrapperTest
{
    internal class Program
    {
        static CancellationTokenSource _TokenSource = new CancellationTokenSource();
        static CancellationToken _CancelToken = _TokenSource.Token;

        static async Task Main(string[] args)
        {
            using (YaGPT yagpt = new YaGPT(сancelationToken:_CancelToken)) // Объявляем класс и инициализируем в нём токен отмены.
            { 
                string answer = await yagpt.SendMessageAsync("Вопрос"); // Отправляем вопрос и получаем ответ в виде строки
                Console.WriteLine(answer); // Выводим ответ пользователю
            }
        }
    }
}

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

Пример третий

Если вам нужно, можно также подписаться на события получения сообщения и отключения сокета.

using YandexGPTWrapper;

namespace YGPTWrapperTest
{
    internal class Program
    {
        static CancellationTokenSource _TokenSource = new CancellationTokenSource();
        static CancellationToken _CancelToken = _TokenSource.Token;

        static async Task Main(string[] args)
        {
            using (YaGPT yagpt = new YaGPT(сancelationToken:_CancelToken)) // Объявляем класс и инициализируем в нём токен отмены.
            {
                // Подписываемся на события получения ответа и закрытия сокета.
                yagpt.OnMessageReceived += OnMessageRecieved;
                yagpt.OnWSocketClose += OnWSocketClose;
                // Отправляем вопрос и получаем ответ в виде строки, далее выводим пользователю.
                string answer = await yagpt.SendMessageAsync("Вопрос"); 
                Console.WriteLine(answer); // Выводим ответ пользователю
            }
        }

        private static void OnMessageReceived(string? messageText) // При срабатывании события мы получаем ответ от языковой модели в формате JSON строки.
        {
            // Делаем что хотим
        }

        private static void OnWSocketClose(string? closeReason) // При срабатывании события мы получаем причину отключения от сокета.
        {
            // Делаем что хотим
        }
    }
}

Важно отметить, что строка возвращаемая из события "OnMessageReceived" - это сериализованный JSON в формате строки и десериализовать его придётся вручную, в то время как стандартный метод "SendMessageAsync" сам всё десериализует и возвращает только ответ в виде строки!

Важно

Библиотека полностью бесплатная. Библиотека реализована при помощи небольшого реверс инжиниринга работы языковой модели, из этого следует, что в библиотеке могут быть баги т.к. языковая модель активно развивается и механизм работы может меняться, а я могу не успевать за ними или вовсе не работать над ней. Как ранее описывал, БИБЛИОТЕКА НЕ ТРЕБУЕТ НИКАКИХ АВТОРИЗАЦИОННЫХ ДАННЫХ И Т.П, после объявления - готова к работе "из коробки".

About

Библиотека C# для работы с языковой моделью Яндекса - "YandexGPT" без использования API и авторизации.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages