Telegram Bot на базе GPT-4 для работы с CSharp | C#

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
599
Благодарностей
361
Баллы
63
122830

Всем привет, открыл для себя еще одно из увлекательных направлений: разработка ботов на базе больших языковых моделей (LLM)
Мой первый проект это ассистент в виде Telegram Bot по написания С# сниппетов для ZennoPoster.

Данный бот работает на базе GPT-4 и документации ZennoPoster для C#

Ознакомиться с данным ботом можно тут:

Пока что бот работает бесплатно, но если сервис начнет просить деньги за токены, буду думать, как дальше быть.

Так же данный топик является Обратной связью. Можете писать результаты ответов бота, которые вас не устраивают, буду стараться их исправлять, чтобы бот работал, как можно лучше.
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
599
Благодарностей
361
Баллы
63
Старался сделать бота так, чтобы он давал ответы именно для C# Кубика без использования классов Program и Main, то есть скопировали код, вставили в кубик и все работает. Если вам бот выдает слишком сложные ответы с использованием классов, напишите сюда ваш запрос, буду исправлять бота.

Если честно то результат превзошел ожидания, иногда бот выдает очень интересные ответы, которые я не встречал на форуме.

Пока, что в бота загрузил всю документацию ZennoPoster по C#, но уже понимаю что это было сделано зря. Например при работе с запросами бот выдает результат по работе с устаревшим методом. В общем надо будет чистить документацию, но это буду делать на основание ваших результатов работы с ботом :-)
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
599
Благодарностей
361
Баллы
63
Понял почему бот часто выдает ерунду. Я загрузил всю документацию C#, а там есть противоречия в методах, некоторые выполняют одно и тоже(например клики), но логика работы разная, так же в документации в примерах есть ошибки, что тоже сбивает бота. Сейчас сижу вручную перебираю всю документацию, чтобы собрать хорошую доку для бота.

Для начало разберу основные объекты:
instance
project

Tab
HtmlElement
HtmlElementColection

IZennoList
ICookieContainer
ILocalVariable

Эти проработанные объекты уже должны сделать крутой результат.

Хочется добить до такого результата, чтобы ты спросил бота "зайди на сайт vk, заполни поле телефон и нажми зайти", а в ответ получить готовый сниппет, который можно вставить в кубик С# и все будет работать. Но это пока мечты)
 
Последнее редактирование:

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
599
Благодарностей
361
Баллы
63
Проработал основные объекты C#, бот действительно стал гораздо круче работать, результаты радуют. Пока что есть траблы по работе с элементами, но во всем остальном выдает хорошие ответы.

Сейчас надо еще научить бота переходить на сайт и получать верстку сайта, чтобы знать правильные пути к элементам и будет огонь :dm:
 
  • Спасибо
Реакции: CaraT и volody00

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
599
Благодарностей
361
Баллы
63
Вот так уже интересней 8-)
122894

Получил полностью рабочий сниппет, скопировал вставил и все работает)


C#:
// Переходим на сайт ВКонтакте
Tab tab = instance.ActiveTab;
tab.Navigate("https://vk.com");
tab.WaitDownloading();

// Находим поле для ввода телефона
HtmlElement phoneField = tab.FindElementByXPath("//input[@name='login']", 0);

// Если поле найдено
if (!phoneField.IsVoid)
{
    // Получаем логин из профиля
    var login = project.Profile.Login;

    // Вводим логин в поле телефона
    phoneField.SetValue(login, "SuperEmulation", false);
}
 
  • Спасибо
Реакции: volody00

deskuznetsov

Client
Регистрация
29.08.2019
Сообщения
525
Благодарностей
361
Баллы
63
Как происходит обучение? Просто в "базу знаний/память" загружаете документацию или как-то иначе?
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
599
Благодарностей
361
Баллы
63
Как происходит обучение? Просто в "базу знаний/память" загружаете документацию или как-то иначе?
Примерно так, как вы написали, но чем лучше структурирована база, тем лучше ответы + еще общий промт для бота(кто он и что он делает, а что не делает). В планах еще научиться делать рабочие процессы и собственные плагины для бота.

Я написал небольшой код, который структурированно выгружает нужные мне данные из документации.
Сейчас обучение происходит так:
- Выгружаю данные из документации
- Вручную просматриваю на наличие косяков в тексте и в коде, если примеры кода мне не нравиться, правлю как мне надо
- Загружаю в бота
- Проверяю что бот отвечает
- Если ответ не нравиться, то еще раз проверяю доку уже в самом боте в том месте где ответ не правильный, если там все норм, то правлю общий промт
 
Последнее редактирование:
  • Спасибо
Реакции: deskuznetsov

Patcher

Client
Регистрация
06.05.2011
Сообщения
74
Благодарностей
67
Баллы
18
Очень недурно. Скажите а почему именно GPT-4 (8K) а, например не Gemini 1,5 Pro? Я тестировал различные модели на этом сервисе и как мне показалось Gemini несколько более интересен в плане освоения загружаемых данных..
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
599
Благодарностей
361
Баллы
63
Очень недурно. Скажите а почему именно GPT-4 (8K) а, например не Gemini 1,5 Pro? Я тестировал различные модели на этом сервисе и как мне показалось Gemini несколько более интересен в плане освоения загружаемых данных..
Моя первая LLM была GPT, поэтому выбрал ее. Gemini пока что не пробовал и нет опыта работы с ней. (но надо будет попробовать)
Сейчас я бота переключил на GPT-4o, потому что там в LLM есть встроенная возможность посещать сайт, но в планах научиться посещать сайт через плагины или workflows
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)