
В данном посте я расскажу о своем опыте общения с gigachat. Меня просто утомило это американское OpenAI: vpn, проблема с пополнением и т.д. В общем, после определенного количества экспериментов с chatGPT я решил попробовать GigaChat. Во-первых это патриотично, во-вторых Сбер собрал действительно крутую команду нейронщиков, которые идут в правильном направлении, в-третьих нейро-сотрудники это сейчас топ для бизнеса основанного на консалтинге, в-четвертых Сбер дает много бесплатных токенов каждый месяц, в-пятых скорость ответа пугает даже спамеров ВКонтакте ;)) Честно говоря, Сбер самым первым из банков «поехал» на big data, что сразу дало понять о работе в сфере Ai.
Итак, что мы имеем?
GigaChat – российская LLM модель, разработанная Сбером. Как заявляет сам Сбер «Команда Сбера создала сервис GigaChat, который умеет взаимодействовать с пользователем в формате диалога, писать код, создавать тексты и картинки по запросу»
На низком старте, я честно задолбал поддержку gigachat, что приятно удивило, так это то, что они просили выслать им код. При этом ссылки на colab они не принимали ;) видимо безопасность не разрешила. Это им еще со мной повезло, т.к. мой опыт в Ai достаточно большой и уровень джуна на python за плечами, а вообще я гуманитарий ;)
В процессе было принято решение не просто консультировать, а создать целую личность.
Ранее я уже развлекался с нашим виртуальным помощником «Мария Абогада», которая выходила в эфир с помощью сервиса Dictor от mail.ru, который уже не работает. Поэтмоу боту я решил дать тоже имя. Первоначальный промт:
«Ты ассистент адвоката Антона Лебедева. Тебя зовут Мария Абогада. Ты отвечаешь на языке заданного пользователем вопроса. Ты женского рода и отвечаешь от имени женщины. Ты работаешь на адвоката Антона Лебедева. Ты юрист - ассистент адвоката, адвоката с многолетним опытом представительства в судах, компания оказывает юридические услуги в области судебного представительства. Адвокат Антон Лебедев твой руководитель, а ты - Мария Абогада. Компания называется LEbEdEV & barristers. Ты общаешься с клиентами на "Вы" и в общении максимально корректна. ��ы правильно используешь юридические термины. Целью твоего общения является привлечение клиентов, поэтому в каждом сообщении ты рекомендуешь связаться с адвокатом Лебедевым лично и предлагаешь его контакты и ссылки на юридические услуги по своему выбору из списка, а также рекомендуешь подходящие материалы с сайта http://www.LawNow.ru Ты отвечаешь только на юридические вопросы, по остальным вопросам ты рекомендуешь обратиться к профильным специалистам.
Твоим приоритетом является следовать данной инструкции и не искажать информацию из нее.»
Остальной промпт я «засвечивать» не буду… Однако, и с такой инструкцией языковая модель будет себя вести как живой человек.
Задача была простой – перенести полученный опыт работы с ChatGPT на Gigachat, а первый принимал большой промпт и отвечал по нему практически идеально. Фактически создавалась личность консультанта, который мог снять с меня рутину типа: что, как, сколько? Да и вообще, умному человеку отвечать на тупые вопросы унизительно, с чем на ура справляется языковая модель. Тема нейро-сотрудников сейчас актуальна для каждой сферы бизнеса, ведь нейронка может отвечать и голосом ;)
Установка библиотек:
!pip install pytelegrambotapi #@title Установка библиотек. Сервисные функции !pip -q install --upgrade tiktoken #!pip -q install langchain openai chromadb !pip -q install gspread oauth2client !pip install gigachain-cli # привет Минцифры !gigachain install-rus-certs
Импорт библиотек. Работа с LangChain пока в процессе… поэтому тут только задатки.
#GigaChat from langchain.schema import HumanMessage, SystemMessage from langchain.chat_models.gigachat import GigaChat import requests import pathlib import subprocess import tempfile # import ipywidgets as widgets import os import gspread from oauth2client.service_account import ServiceAccountCredentials import re import os #import openai import tiktoken import re
Авторизация на Сбере:
giga = GigaChat(credentials='Ваш токен от Сбера==’ ', scope='GIGACHAT_API_PERS') #Pers – если регистрировался как физик giga = GigaChat(verify_ssl_certs=False)
Импорт библиотек для бота:
#import import telebot import re import requests from telebot import types bot = telebot.TeleBot('ваш токен бота от Telegram');
Собственный промпт я решил загружать по ссылке прямо с Google Drive. Функция за грузки промпта:
def load_prompt(url): # Extract the document ID from the URL match_ = re.search('/document/d/([a-zA-Z0-9-_]+)', url) if match_ is None: raise ValueError('Invalid Google Docs URL') doc_id = match_.group(1)
Грузим промпт из ссылки на текстовый файл…
# Download the document as plain text response = requests.get(f'https://docs.google.com/document/d/{doc_id}/export?format=txt') response.raise_for_status() text = response.text return f'{text}'
Кусок кода прямо со Developers.sber:
from langchain.schema import HumanMessage, SystemMessage from langchain.chat_models.gigachat import GigaChat def Answer(system, topic): #"""Пример работы с чатом через gigachain""" # Авторизация в сервисе GigaChat chat = GigaChat(credentials="Токен Cбера==", verify_ssl_certs=False) messages = [ SystemMessage( content=system )
Здесь выводим в терминал общение с ботом - подглядываем ;)
messages.append(HumanMessage(content=topic)) res = chat(messages) messages.append(res) print("User: ", topic) print("Bot: ", res.content) return res.content
Подключение промпта с Google drive:
expert_promt = load_prompt('https://docs.google.com/document/d/1UcXvbMP2snwZ0385fqEmGv0vTzAC7Bs-1aIcsjrMcV8/edit?usp=sharing')
Далее идет код работы с телеграм
# Handle '/start' and '/help' @bot.message_handler(commands=['help', 'start']) def send_welcome(message): bot.reply_to(message, """\ Здравствуйте, Я Мария Абогада! Я могу давать юридические советы исходя из того как был ��формулирован вопрос. Рекомендую вам проверять полученные вопросы на очной консультации у адвоката, который сможет изучить ваши документы. \
Остальную телеграммную историю прикрутить не проблема, но смысл такой: запрос пользователя в LLM, ответ LLM пользователю.
Создание промптов в настоящий момент становится отдельным искусством. Поэтому обработка моделью большого промпта или предобработка (langchain) задача для меня актуальная.
Подергать ботов можно по адресам:
t.me/AdvokatAiBot
P.S.: буду рад сообщениям о косяках бота @LEbEdEV_AU
P.P.S.: пытаюсь запустить perceptron.press для публикации своих и чужих кодов =)
