Как сделать агентов на основе GigaChat? Подробный туториал на Python

Поділитися
Вставка
  • Опубліковано 6 вер 2024

КОМЕНТАРІ • 19

  • @46theotheo
    @46theotheo Місяць тому

    Сергей поясни пожалуйста как формируется связь между фразой на русском языке в промпте и вызовом опредеденного метода с декоратором @tool? Модель переводит фразу на английский и пытается найти тул с нужным именем?

    • @trashchenkov
      @trashchenkov  Місяць тому +1

      Тут все довольно просто. При создании инструментов нужно четко и подробно описывать, что и как инструмент делает, когда его вызывать. Эту информацию надо поместить в docstring этого инструмента (докстринги - это строки, идущие после объявления функции, класса или модуля). Обычно докстринги используются для того, чтобы человеку було понятнее, что делает та или иная функция, а здесь это пояснение для ИИ.
      Сведения в виде названий инструментов, описаний, аргументы и тип возвращаемых значений становятся частью промпта агента. При этом языковой модели не особо важно, на каком языке составлено описание. Гигачат с русским и английским точно справится.

    • @trashchenkov
      @trashchenkov  Місяць тому +1

      @tool
      def read_note(file_name: str) -> str:
      '''Возвращает содержимое заметки в ответ на заданное имя файла. \
      Если имя указано неправильно, вернет сообщение об ошибке. \
      Имя файла заметки имеет вид "Тема заметки N.txt".
      '''
      Из этих строчек сформируется специальный кусочек промпта для агента. Тут есть все, что нужно: название (как обратиться), что инструмент делает, что ему надо передать, а также что ожидается получить в ответ.

    • @46theotheo
      @46theotheo Місяць тому

      @@trashchenkov спасибо
      Я догадывался что этот docstring обязателен но нигде явно про это не упоминалось. Теперь буду знать

  • @msg942
    @msg942 3 місяці тому

    Споткнулся на "llm_with_tools = giga.bind_tools(tools)", которая вызывает ошибку: NotImplementedError. Может кто знает как исправить?

    • @trashchenkov
      @trashchenkov  3 місяці тому +1

      Проверил. Действительно, вылезает ошибка. 24 мая разработчики выпустили версию гигачейна 0.2.0. Если при установке указать более старую версию, то все нормально работает:
      !pip install -q gigachain==0.1.17

    • @46theotheo
      @46theotheo Місяць тому

      Сергей спасибо. После этого уточнения заработало

    • @46theotheo
      @46theotheo Місяць тому

      Тут была какаято проблема с зависимостями. Я снес у себя в проекте директорию venv потом заново создал venv и проинсталлил последние версии gigachain и gigachain-community. Версия gigachain при этом 0.2.6. И код с bind_tools заработал

    • @46theotheo
      @46theotheo Місяць тому

      Возможно где то сидели остатки langchain

  • @chiklfkif
    @chiklfkif 4 місяці тому

    Штука крутая,но я тестировал гигачат для генерации текстов, но сплошная беда с цензурой. Цензурят вообще все самое обсуждаемое, самое интересное. Очень жаль, надеюсь скоро будет русские нейронки без цензуры, где хотя бы слова - "Половой контакт" можно было ввести
    В общем... разочарование

    • @trashchenkov
      @trashchenkov  4 місяці тому +1

      Да, есть такая проблема. Но разработчиков можно понять, лучше перестраховаться, чем допустить генерацию недопустимого контента. Если говорить про доступ к модели по API, то попробуйте так:
      GigaChat(credentials=auth,
      model='GigaChat-preview',
      verify_ssl_certs=False,
      profanity_check=False
      )
      Параметр profanity_check отвечает за включение/отключение цензора. Должно стать получше, но некоторые темы все равно не пропускает.

    • @chiklfkif
      @chiklfkif 4 місяці тому

      @@trashchenkov Благодарю

    • @sergey_ra
      @sergey_ra 4 місяці тому

      ​​@@trashchenkovполно же других нейронок. А от Сбера, то, что Грефу принадлежит - слуге Шваба и врагу народа, укравшему все народные деньги Сбербанка и желающего народ в неведении и рабстве держать, на деньги же народа - сомнительное удовольствие и польза в пользовании😅

  • @user-dk2uc6dx8k
    @user-dk2uc6dx8k 4 місяці тому

    Не понимаю программистов-агитаторов. Зачем мне обучать языковые модели , которые не принадлежат мне? Зачем воспитывать чужих детей (их мозги, их естественные нейросети, языковые модели), если можешь воспитывать своих? Зачем мне финансировать чужую собственность (Сбербанк, Google и др.)? Спрашиваю как бизнесмен, собственник (и родитель).

    • @trashchenkov
      @trashchenkov  4 місяці тому +1

      Вопрос в общем и целом справедливый, но нужно прояснить некоторые моменты. Тогда станет понятнее, что ответы на этот вопрос могут быть разные)).
      Обучить большую языковую модель с нуля на сегодняшний день могут только крупные компании. Это дорого, требует серьезного оборудования и штат квалифицированных специалистов. На эту тему отсылаю к видео, там в начале про это Andrej Karpathy
      очень хорошо рассказывает ua-cam.com/video/zjkBMFhNj_g/v-deo.html
      Можно брать готовые языковые модели, которые опенсорсные, запускать их на собственном железе, дообучать под свои задачи, если нужно, и использовать. Так делают многие бизнесы, которые не хотят передавать свои данные сторонним компаниям. Но это тоже требует определенных ресурсов и квалификации.
      Использование доступа к готовым языковым моделям по API, как например к GigaChat, это еще одна опция. Она позволяет не брать на себя издержки по обслуживанию софта и оборудования. То есть это как бы языковая модель как услуга. Если речь не идет о работе с какими-то чувствительными данными, то это приемлемый вариант. Более того, значительная часть примеров кода может с минимальными изменениями быть использована как для доступа к моделям по API, так и к запускаемым локально моделям.
      Если возвращаться к Вашим аналогиям, то можно ездить на личном автомобиле, можно пользоваться общественным транспортом. Аналогия с детьми более сложная, но есть люди, которые работают учителями или берут приемных детей. Видимо для них есть какая-то мотивация участвовать в воспитании чужих детей)))

    • @ilyanizamov
      @ilyanizamov 4 місяці тому

      Добрый день, на ваших запросах языковая модель не обучается. А в бизнесе эти технологии имеют очень крутое применение, я допустим сейчас делаю бота, который будет общаться с клиентом в чате авито, отвечая на запросы по наличию, аналогам, доставке и оформлению заказа. В данном видео очень примитивная демонстрация возможностей.

    • @marialanti
      @marialanti Місяць тому

      Потому что мы социальные животные и в принципе ни одну серьезную задачу в одиночку выполнить не можем? И средний уровень общества влияет на нашу ежедневную жизнь и те блага и сервисы которые мы можем получить? Мы по нашей системе взаимодействия и создания нового скорее муравьи а не коты например .. один человек может очень мало получить и сделать за свою жизнь, чем если работает в команде в социуме в обществе.