![Сергей Тращенков](/img/default-banner.jpg)
- 15
- 14 115
Сергей Тращенков
Приєднався 27 лип 2014
Привет! Меня зовут Сергей. Так сложилась судьба, что последние несколько лет я веду занятия по программированию на Python для школьников, учителей и просто взрослых людей.
На этом канале я выкладываю ролики по различным направлениям, связанным с искусственным интеллектом и программированием.
На этом канале я выкладываю ролики по различным направлениям, связанным с искусственным интеллектом и программированием.
SaluteSpeech API + GigaChat API: Как научить бота слушать и говорить, используя Python?
В этом туториале мы кратко рассмотрим, как работают модели для Speech2Text (распознавания речи) и Text2Speech (синтеза речи), а также напишем код с использованием SaluteSpeech API и GigaChat API.
Благодаря интерфейсу Gradio мы получим простого, но функционального бота, с которым можно общаться (бот будет помнить контекст диалога).
Код из видео, как всегда, есть в репозитории: github.com/trashchenkov/gigachat_tutorials
Мой канал в Telegram: t.me/gigatrash
Документация по SaluteSpeech API: developers.sber.ru/docs/ru/salutespeech/overview
В бесплатном тарифе дается:
- 100 минут аудио в месяц для распознавания,
- 200 000 символов в месяц для синтеза речи.
Благодаря интерфейсу Gradio мы получим простого, но функционального бота, с которым можно общаться (бот будет помнить контекст диалога).
Код из видео, как всегда, есть в репозитории: github.com/trashchenkov/gigachat_tutorials
Мой канал в Telegram: t.me/gigatrash
Документация по SaluteSpeech API: developers.sber.ru/docs/ru/salutespeech/overview
В бесплатном тарифе дается:
- 100 минут аудио в месяц для распознавания,
- 200 000 символов в месяц для синтеза речи.
Переглядів: 127
Відео
Langflow. Как создавать приложения с GigaChat API или Ollama из блоков?
Переглядів 331День тому
Сегодня необычный ролик, поскольку на канале собралось 500 подписчиков! Спасибо всем, кто смотрит. Мы рассмотрим low code фреймворк на базе LangChain под названием Langflow. С его помощью можно собирать агентов и просто цепочки компонентов из блоков. Каждый блок можно редактировать. Тут уже пригодятся навыки программирования на Python. С помощью программирования мы создадим компонент, чтобы под...
GigaChat API и БД. Как можно общаться с базами данных с помощью ИИ?
Переглядів 53814 днів тому
В этом туториале мы начнем разбираться с обширной и сложной темой взаимодействия большой языковой модели и БД. Как сделать так, чтобы пользователь писал свой запрос на русском языке, а языковая модель создавала SQL-запросы, которые тут же бы выполнялись? Попробуем разобраться в этом видео. Несколько замечаний по содержанию: - Использовалась БД SQLite для простоты. Проблемы с форматом даты будут...
RAG. Делаем вопросно-ответную систему с поиском по базе видеороликов
Переглядів 30321 день тому
В этом туториале я покажу, как можно сделать вопросно-ответную систему, которая будет отвечать на вопросы, основываясь на содержании ютубных видеороликов. Такая система будет выдавать не только сгенерированный ответ, но и видеоролики с таймкодами контекста, использовавшегося для генерации ответа. Код к этому ролику вы как всегда найдете в репозитории: github.com/trashchenkov/gigachat_tutorials ...
GigaChain. Как загрузить документы, чтобы ИИ отвечал по ним?
Переглядів 628Місяць тому
После каждого ролика мне приходят вопросы о том, как "скормить" разные файлы большой языковой модели. В прошлом туториале мы уже рассмотрели общую структуру RAG - вопросно-ответных систем, где ответы формируются на основе данных из внешних источников. В этот раз мы подробно поговорим о формировании такого источника из различных файлов. В библиотеках GigaChain/LangChain для этого есть специальны...
Реализация RAG на основе GigaChat. Как искать и генерировать ответы по базе знаний?
Переглядів 1,7 тис.2 місяці тому
Большие языковые модели могут генерировать тексты, содержащие ложную информацию. Это явление называют "галлюцинациями". Кроме того, знания модели ограничены тем корпусом текстов, на котором она обучалась. Чтобы преодолеть эти ограничения принято прибегать к созданию RAG (Retrieval Augmented Generation) - вопросно-ответных систем, где ответы опираются на внешний источник знаний. Обычно в роли та...
Как сделать агентов на основе GigaChat? Подробный туториал на Python
Переглядів 9972 місяці тому
Сбер недавно анонсировал новые версии больших языковых моделей GigaChat с возможностью вызывать функции. В этом туториале мы используем этот функционал для создания агентов. Основное предназначение языковых моделей - это генерация текста на основе промпта. Но что будет, если языковую модель снабдить инструментами и инструкциями, как ими пользоваться? Сможет ли она эффективно решать реальные зад...
Как подключить GigaChat API к Telegram-боту? Подробное руководство на Python
Переглядів 1,7 тис.5 місяців тому
В этом видео мы рассмотрим реализацию подключения языковой модели GigaChat к Telegram-боту через возможности библиотеки GigaChain (LangChain). Langchain можно использовать для создания приложений с применением больших языковых моделей. Сегодня мы задействуем инструменты памяти для хранения диалогов, а также цепочку ConversationChain для соединения памяти и языковой модели. Код из туториала дост...
Как общаться с GigaChat API с помощью Gigachain? (Туториал)
Переглядів 1,8 тис.5 місяців тому
Gigachain - это фреймворк на основе библиотеки Langchain для создания приложений с применением больших языковых моделей. В этом видео мы рассмотрим примеры того, как авторизоваться в GigaChat API с помощью инструментов Gigachain, а также попробуем создать диалоговые системы с пользователем, а также устроим диалог GigaChat с самим собой. Код из туториала доступен по ссылке: github.com/trashchenk...
Как начать работать с GigaChat API? Подробный туториал на Python
Переглядів 5 тис.5 місяців тому
Это видео начинает серию скринкастов по теме применения большой языковой модели GigaChat. В этом видео мы разберем процесс получения и использования ключей для авторизации в сервисе, сделаем несколько запросов к GigaChat на генерацию ответов, а также рассмотрим пример генерации картинки по текстовому запросу через GigaChat API. Блокнот из ролика можно взять из репозитория: github.com/trashchenk...
EcoAI-хакатон. Воздействие транспорта на экологическую обстановку города
Переглядів 114Рік тому
Лекция про модель детектирования объектов YOLOv4. Гугл колаб из видео: colab.research.google.com/drive/1XLGKWGn_8DA1zl3d4ROtl_kzepiLHVIO?usp=sharing
EcoAI. Создание визуальной оболочки для Углеродного калькулятора событий
Переглядів 92Рік тому
Лекция про инструмент Streamlit для быстрого создания веб-приложений в области Data Science. Ссылка на Гугл-колаб: colab.research.google.com/drive/1f9JI9xFUO0a6zSFcy4QCxa484b_Avad9?usp=sharing
Хороший материал👍 недавно пытался микрофон подключить в коллабе, в итоге плюнул на это дело, теперь попробую снова)
@@user-zy7ko2bw9q спасибо! В итоге не самый удобный способ записи получается, но работает.
@@trashchenkovбыло бы интересно разобраться с ролями в LLM, например вести диалог с моделью в роли Дяди Федора и кота Матроскина, с 2 или больше персонажами. Стилистику ответов прописать, такая функция есть в гига чате. Заставить llm не просто отвечать на вопросы , а вести диалог полноценный. Спасибо 🙏
Интересный материал 👍 пробовал озвучить ответ модели? Я делаю с помощью Silero
да, конечно. Есть большое количество вариантов для реализации Text-to-Speech. В одном из следующих видео покажу на примере SaluteSpeech API, раз уж в основе всех примеров у нас GigaChat.
спасибо!
Сергей, здравствуйте! Сейчас много используется онлайн-конструкторов Telegram-ботов (watbot, leadteh и прочие Российские), и GigaChat API туда отлично заходит и работает, но как в конструкторах можно подключить RAG? Нигде даже про это не сказано, то есть без языка Python (только на возможности API) можно ли подключить библиотеку ответов на возникающие вопросы пользователей?
Здравствуйте! я особо в отечественных no-code конструкторах не разбирался пока. Знаю, что точно RAG на GigaChat можно сделать в СберБизнесБоте. Там можно самому собирать, а можно заказать у них готовую систему под ключ (за определенную плату, разумеется). Возможно, есть и другие рабочие решения, но мне не попадались на глаза.
Так же с твоего блокнота на 3 шаге вылетает ошибка, может они поменяли свои библиотеки и теперь это не работает?
привет! надо смотреть текст ошибки. Можешь скинуть текст ошибки или скриншот мне в бота обратной связи, я проверю t.me/Fee_dback_bot
ОТличный выбор, как раз на днях начал переводить документацию по этой теме...
Полагаю, проблема плохой генерации по контексту связана с различиями в токенайзерах. Внутри гигачата используется BPE а для получения ембеддингов чанков - какой-нибудь WordPiece.
Эту теорию подтверждает резкое падение качества генерации при использовании BM25.
очень может быть. Надо будет попробовать провести векторизацию сберовской моделью.
SQL как раз и был придуман. чтобы избежать "кодирования" запросов и задавать их в декларативном виде), а тут, получается, еще одна надстройка, в результатах работы которой мы не уверены, судя по том, что выдают модели... ChatGPT, думаю, легко справится, он умеет очень сложные запросы писать
да, ChatGPT и некоторые другие модели справляются. Но GigaChat тоже со временем натренируют. Технологии развиваются быстро.
Привет! Как можно с вами связаться? Есть пара вопросов.
Привет! В описание ТГ-канала добавил ссылку на бота, можно писать туда, я отвечу.
Сергей, большое спасибо за видео и материалы на гитхаб! Присоединяюсь, что будет интересно послушать и другие лекции про ботов и GigaChat - это большой простор для экспериментов! 😄
Огромное спасибо за обучающее видео! Очень интересно было бы послушать поподробнее про создание асинхронных тг-ботов
@@anzhelikasakhautdinova6604 спасибо! Добавлю в список идей для будущих роликов)
Спасибо за видео, все очень подробно и понятно!
Чат от Сбера тупая болванка и ничего кроме "Не люблю менять тему разговора, но вот сейчас тот самый случай." Писать не способен.
Большинство языковых моделей дообучены таким образом, чтобы не отвечать на вопросы, которые нарушают какие-либо законы, этические нормы и т.д. Иногда с этим немного перегибают палку. Если вас интересуют большие языковые модели "без тормозов", то такие тоже есть, но они опенсорсные, то есть их нужно запускать либо на своем компьютере, либо арендовать подходящий сервер и запускать там. Возможно, что есть товарищи, которые запускают и дают другим доступ по API. Обычно модели без цензуры содержат слово Dolphin в своем названии.
Чат от Сбера тупая болванка и ничего кроме "Не люблю менять тему разговора, но вот сейчас тот самый случай." Писать не способен.
Большинство языковых моделей дообучены таким образом, чтобы не отвечать на вопросы, которые нарушают какие-либо законы, этические нормы и т.д. Иногда с этим немного перегибают палку. Если вас интересуют большие языковые модели "без тормозов", то такие тоже есть, но они опенсорсные, то есть их нужно запускать либо на своем компьютере, либо арендовать подходящий сервер и запускать там. Возможно, что есть товарищи, которые запускают и дают другим доступ по API. Обычно модели без цензуры содержат слово Dolphin в своем названии.
Супер, то что искал, спасибо! Тоже интересна тема как при имеющейся бд с несколькими таблицами из пользовательского текстового запроса генерировать sql запросы к нужной таблице и выводить результаты этого запроса. Тут наверно надо как-то чтобы модель знала о чем таблицы, что за поля, что за срезы и показатели в полях... Думал об этом, но как-то даже не знал с какой стороны подступиться( Если будет такое видео на канале или может просто поможете с более предметным описанием подхода - буду очень благодарен.
Да, видео будет, возможно даже следующим. В langchain/gigachain есть готовые инструменты, которые в промпт всю необходимую информацию про БД подставляют, про них расскажу. Я еще писал про курс на Deeplearning.ai: t.me/gigatrash/34 . Если дружите с английским, поизучайте.
Супер видео, тема раскрыта очень хорошо и понятно! Действительно, очень хотелось бы узнать об опенсорсных решениях и, что-то похожее на это видео, но об, упомянутой выше, RAG-системе. upd: на канале увидел что уже есть видео по RAG, пошел смотреть) мега респект
Спасибо! Опенсорс обязательно будет на канале, но неизвестно когда)
нихрена не понял, видимо видео не для новиков))
Видео предполагает владение Пайтоном.
Здравствуйте. Есть вопрос: Как прописать в коде, чтобы диалог начался и заканчивался в определённый момент, то есть при нажатии кнопки? Заранее благодарю за ответ.
Здравствуйте. Давайте уточним, что подразумевается. Вы хотите, чтобы в телеграм-боте были кнопки? Для этого есть клавиатура telebot.types.ReplyKeyboardMarkup. Но по факту кнопки в телеграме - это быстрый набор слова или предложения. То есть по нажатию кнопки боту отправляется просто текстовое сообщение. В боте может быть обработчик - если пришло такое сообщение, выполняю такие-то действия. Соответственно, надо подобную логику прописать. И я не очень понял про начало и конец диалога по кнопке. Вы хотите, чтобы стиралась память? Это можно сделать, переопределив память заново.
@@trashchenkov К сожалению, я тогда торопилась и не правильно описала проблему. То есть при нажатии кнопки ReplyKeyboardMarkup "Начать" - начинается диалог с gigachat, то есть обработка приходящих сообщений и отправка ответа. И при нажатии кнопки ReplyKeyboardMarkup "Стоп" - диалог заканчивается. У меня в итоге получается генерация и отправка только одного сообщения. Пыталась и в отдельном файле писать и функцию создавать.
@@AlexLopez-dk5mt Вы используете компоненты памяти и ConversationChain из этого туториала? Или как у Вас организована передача списка сообщений при каждом запросе? Надо где-то сохранять в переменной историю сообщений. В этом туториале история сообщений сохраняется в словаре user_conversations, который создан вне всяких функций.
@@trashchenkov Да, я использовала компоненты памяти и ConversationChain из данного туториала. Могу показать свой код чат-бота в телеграмме.
напишите в телеграме сообщение под любым постом, я свяжусь в личке.
Спасибо огромное за выпуск! Мне, как человеку без бэкграунда в AI, было очень интересно, полезно и познавательно!
Восхищаюсь. Спасибо за Ваш труд.
Споткнулся на "llm_with_tools = giga.bind_tools(tools)", которая вызывает ошибку: NotImplementedError. Может кто знает как исправить?
Проверил. Действительно, вылезает ошибка. 24 мая разработчики выпустили версию гигачейна 0.2.0. Если при установке указать более старую версию, то все нормально работает: !pip install -q gigachain==0.1.17
Если после добавления сертификатов минцифры ошибка сертификата не пропадает, поддержка Gigachat рекомендует использовать Gigachain. Второй вариант просто заглушить Warnings через (плохой вариант): import urllib3 urllib3.disable_warnings()
У Вас ослик отвечает на любые вопросы. А как сделать в чат-боте, чтобы GigaChat игнорировал все вопросы, кроме тематических? Я написал в SystemMessage(content="Не отвечай на сообщения и вопросы не про займы и кредиты! Это важно! Ты специалист по выдаче займов, кредитов. Ты отвечаешь только на сообщения и вопросы, в которых пользователь интересуется займами, кредитами. Если приходят сообщения и вопросы по другим темам, не отвечай!") Но GigaChat продолжает отвечать на любые сообщения.
Да, Гигачат порой игнорирует инструкции в системном сообщении. В следующем видео я показываю как пользоваться различными видами памяти в GigaChain/Langchain: ua-cam.com/video/cSbGMrMbYng/v-deo.html Там ближе к концу видео есть пример про доктора исторических наук, который должен отвечать только по истории. Для работы с памятью нужно составлять шаблон промпта, который подается как единый пользовательский запрос. То есть там и описание персонажа, и инструкции, и история сообщений, и текущий запрос упаковываются в одно пользовательское сообщение. И тогда отвечает нормально.
Штука крутая,но я тестировал гигачат для генерации текстов, но сплошная беда с цензурой. Цензурят вообще все самое обсуждаемое, самое интересное. Очень жаль, надеюсь скоро будет русские нейронки без цензуры, где хотя бы слова - "Половой контакт" можно было ввести В общем... разочарование
Да, есть такая проблема. Но разработчиков можно понять, лучше перестраховаться, чем допустить генерацию недопустимого контента. Если говорить про доступ к модели по API, то попробуйте так: GigaChat(credentials=auth, model='GigaChat-preview', verify_ssl_certs=False, profanity_check=False ) Параметр profanity_check отвечает за включение/отключение цензора. Должно стать получше, но некоторые темы все равно не пропускает.
@@trashchenkov Благодарю
@@trashchenkovполно же других нейронок. А от Сбера, то, что Грефу принадлежит - слуге Шваба и врагу народа, укравшему все народные деньги Сбербанка и желающего народ в неведении и рабстве держать, на деньги же народа - сомнительное удовольствие и польза в пользовании😅
Не понимаю программистов-агитаторов. Зачем мне обучать языковые модели , которые не принадлежат мне? Зачем воспитывать чужих детей (их мозги, их естественные нейросети, языковые модели), если можешь воспитывать своих? Зачем мне финансировать чужую собственность (Сбербанк, Google и др.)? Спрашиваю как бизнесмен, собственник (и родитель).
Вопрос в общем и целом справедливый, но нужно прояснить некоторые моменты. Тогда станет понятнее, что ответы на этот вопрос могут быть разные)). Обучить большую языковую модель с нуля на сегодняшний день могут только крупные компании. Это дорого, требует серьезного оборудования и штат квалифицированных специалистов. На эту тему отсылаю к видео, там в начале про это Andrej Karpathy очень хорошо рассказывает ua-cam.com/video/zjkBMFhNj_g/v-deo.html Можно брать готовые языковые модели, которые опенсорсные, запускать их на собственном железе, дообучать под свои задачи, если нужно, и использовать. Так делают многие бизнесы, которые не хотят передавать свои данные сторонним компаниям. Но это тоже требует определенных ресурсов и квалификации. Использование доступа к готовым языковым моделям по API, как например к GigaChat, это еще одна опция. Она позволяет не брать на себя издержки по обслуживанию софта и оборудования. То есть это как бы языковая модель как услуга. Если речь не идет о работе с какими-то чувствительными данными, то это приемлемый вариант. Более того, значительная часть примеров кода может с минимальными изменениями быть использована как для доступа к моделям по API, так и к запускаемым локально моделям. Если возвращаться к Вашим аналогиям, то можно ездить на личном автомобиле, можно пользоваться общественным транспортом. Аналогия с детьми более сложная, но есть люди, которые работают учителями или берут приемных детей. Видимо для них есть какая-то мотивация участвовать в воспитании чужих детей)))
Добрый день, на ваших запросах языковая модель не обучается. А в бизнесе эти технологии имеют очень крутое применение, я допустим сейчас делаю бота, который будет общаться с клиентом в чате авито, отвечая на запросы по наличию, аналогам, доставке и оформлению заказа. В данном видео очень примитивная демонстрация возможностей.
большое спасибо за качественный материал
спасибо. интересно. лайк и подписка
Спасибо большое за гайд и документацию. Максимально упростил работу с проектом)
Круто! Спасибо!
Спасибо Вам большое!
харош
А можно гигачат интегрировать в langchain и дообучить на своих данных?
Интегрировать в лангчейн можно (про это есть в последующих видео), а вот дообучать нельзя. Максимум можно в промпте передать несколько примеров того, как надо выполнять требуемое задание (такая техника называется few-shot prompting).
Добрый день! Я хочу чтобы gigachat отвечал на вопросы пользователей в телеграмм боте или на сайте моем, согласно заданному промту (Роли) как это сделать?
как вообще научить гигачат чему-то уникальному? Например как в chatgpt, там можно кинуть ему 1000 книг и сказать в промте: теперь ты берешь ответы оттуда. Есть такая возможность в гигачат?
@@user-ut1lp6di5s здравствуйте! У сбера недавно появился продукт, который делает тот функционал, о котором вы говорите: t.me/gigatrash/10 В основе должна быть RAG система, которая будет искать кусочки текста среди тысячи книг, которые наиболее подходят под вопрос. Я как-нибудь сделаю видео, где покажу как сделать простую RAG систему.
Благодарю за последовательное объяснение документации) Помогли!
Благодарю, интересно! В GigaChat API написано: Токен доступа действителен в течение 30 минут. Подскажите, если сделать чат-бота с GigaChat для Телеграм, он будет работать только в течение 30 минут?
Можно прописать в коде следующий алгоритм действия: Если получаем вместо ответа на запрос сообщение, что токен недействителен, отправляем запрос на получение нового токена, а затем повторяем наш запрос к языковой модели, используя новый токен. В следующих видео я вместо обращений через requests использую класс GigaChat из библиотеки GigaChain. Там все эти процессы автоматизированы.
Здравствуйте. Два вопроса: 1. Библиотека pyTelegramBotAPI не устарела для работы с языковыми моделями и AI? 2. Можно ли на pyTelegramBotAPI создавать юзерботов? Лайк поставил, подписался 😀
Спасибо) 1. Какой-либо проблемы с совместимостью ИИ и pyTelegramBotAPI нет. В примерах из ролика результат работы языковой модели извлекается в виде строки и передается в таком виде в API телеги. Можно еще сделать своего бота для генерации картинок Кандинским, сообщения в виде картинок pyTelegramBotAPI тоже отправлять умеет. 2. Нет, pyTelegramBotAPI принимает только токены от BotFather. Но это тоже неплохой функционал, потому что таким образом можно, к примеру, автоматически вести телеграмм канал (бот в качестве администратора). Если же все-таки касаться юзерботов (оставляем за скобками юридическую сторону вопроса), то это надо смотреть в сторону библиотеки Telethon и ее производных. Но я этим никогда не занимался, поэтому мало что могу подсказать.
@@trashchenkov Благодарю за Ваши видео и github. GigaChat показал хорошие результаты в сравнении с крупными зарубежными моделями + на русском + не надо VPN + пока бесплатно. Буду ждать Ваши последующие видео.
День добрый, подскажите, а пробовали через гигачейн делать запросы по тексту? в примерах у них указано что можно хоть книжку пихнуть, но по их же инструкции на гитхабе увы не работает, ну или я что-то не так делаю
Здравствуйте. Как я понимаю, Вы про создание RAG (Retrieval-Augmented Generation). Про это будет одно из последующих видео. RAG - это вопросно-ответные системы, которые при генерации опираются не на знания модели (которые ограничены и подвержены галлюцинациям), а на внешнюю базу знаний (обычно это векторная база данных). Для такой системы надо не одна, а две модели: помимо генератора вроде Гигачата понадобится еще эмбеддинговая модель, которая преобразует кусочки текста в векторы фиксированной длины. Суть в том, что нужно подготовить тексты. Допустим Вы берете книжку и делите ее на небольшие кусочки (чтобы можно было их как часть промпта использовать) и векторизуете эмбеддинговой моделью. Все это помещаете в векторную БД. Когда пользователь делает запрос по тексту, его запрос тоже векторизуется и сравнивается с векторами в БД. Кусочки, векторы которых самые близкие к вектору запроса передаются в промпт к генератору вместе с запросом. Тогда генератор пишет ответ на основе этих кусочков. Таким образом мы можем использовать языковую модель для работы с текстами, которые сильно больше лимита токенов модели.
Спасибо, очень полезно
Спасибо! Очень жду продолжения!
Спасибо за обратную связь. Продолжение готово)
Для друга спрашиваю: На каком тайминге промокод на оффер с 300к в наносекунду?