en
Feedback
AI Experience Exchange

AI Experience Exchange

Open in Telegram

Обмен опытом по AI, нейронным сетям, ChatGPT, проверка идей, примеры

Show more
951
Subscribers
+224 hours
+257 days
+7130 days
Posts Archive
Вот короткое видео на 2 минуты https://youtu.be/piCCkb1zIyw?si=ZZhieaoHBwah7Zw0

Bot Factory

Вот новый рисунок про размерности и предположение: когда мы в message добавим history, то у нас станет меньше места на чанки
Вот новый рисунок про размерности и предположение: когда мы в message добавим history, то у нас станет меньше места на чанки из Базы Знаний и на сам вопрос + промт?

📣 Chat History Я посмотрел презу, где вы много внимания уделяете памяти. Мне захотелось разделить на несколько задач: Создание памяти 1. Накопление данных текущего диалога: Процесс выполняется одновременно с текущим диалогом пользователя. Пользователь ведет диалог с Агентом. Пользователь задает вопрос. Агент возвращает ответ. Система сохраняет вопрос пользователя, полученный ответ, метку времени, ссылку на пользователя, ссылку на агента. 2. Анализ диалогов. Процесс выполняется эпизодически с заданной регулярностью (JOB). Система для каждого пользователя в разрезе агентов производит анализ накопленных данных (см.п.1) и объединяет их в чаты. Чат: это набор данных из п.1, объединённых по общему признаку. Таким признаком является пауза между соседними диалогами, например, если отсортированные по метке времени пары вопрос - ответ, имеют временной интервал больше 30 минут, то считать, что предыдущий диалог окочённым. Результат. Несколько записей из п.1 получают ссылку на одну запись чата - заголовок. 3. Назначение тем чатов. Процесс выполняется эпизодически с заданной регулярностью (JOB). Система анализирует сформированные в п.2 чаты и извлекает смысл чата из дочерних записей, назначая каждому чату тему. Результат. Сформированная в п.2 запись - заголовок чата, получает ссылку на тему. 4. Суммаризация чатов. Процесс выполняется эпизодически с заданной регулярностью (JOB). Система в разрезе тем (см.п3) по каждому чату пользователя формирует краткое резюме (саммари) чата. Сформированная в п.2 запись - заголовок чата, получает краткое саммори. Примечание. Краткое саммори будет использовано в качестве метаданных сохраненных диалогов. Использование памяти 1. Извлечение памяти в текущем диалоге. Пользователь общается с Aгентом задавая ему вопрос. Система по тексту вопроса ищет релевантные саммори чатов (см.п.4 в Создание памяти). Для найденных чатов извлекает данные сохраненных диалогов (см п.1 в Создание памяти) и передает эти данные Агенту. Агент использует полученные данные для формирования ответа в текущем диалоге.

Про автоматизацию тестирования Базы Знаний нейро - ассистента Все-таки это возможно, вот результаты эксперимента: Видео запись (17 минут): https://youtu.be/HJEWzyWe0To Нотебук: https://colab.research.google.com/drive/1vCkDHZ7bjG_EcKbShnwUUPBbgrR4MO8g?usp=sharing

Про распознание аудио с помощью OpenAi Whisper Вот в соседнем чате был пример для Wisper в colab. Я его немного для себя переделал: • Файл для Whisper должен находится на GoogleDrive в папке Whisper • Файл модели сохраняется на GoogleDrive в паку Whisper/Models - проверьте наличие папки Whisper/Models . Модель будет скачиваться только первый раз. Пользуйтесь, кому интересно: https://colab.research.google.com/drive/1mYacMUEIlCR1HMvAWZofwE7v-VC-OH_z?usp=sharing

photo content

Предварительные действия: В Системе созданы описания и реализация функций для LLM. Создана База Знаний. База знаний загружена и векторизована. Основной сценарий: 1. Пользователь вводит свой вопрос 2. Система собирает заданное количество релевантные вопросу пользователя чанки из Базы Знаний. 3. Система делает запрос в LLM, в запросе передается контент из п.2 и описание функций. 4. LLM формирует ответ на запрос. 5. Система анализирует полученный ответ: 5.1 Если ответ содержит finish_reason == "function_call", то Система извлекает из ответа параметры сработавшей функции и ее имя, производит вызов функции и полученный результат повторно передает в LLM 5.1.1. LLM формирует новый ответ с учетом результатов вызванной функции. 5.1.2. Система извлекает из ответа контент и возвращает его Пользователю. 5.2 Если ответ не содержит finish_reason == "function_call", то Система извлекает из ответа контент и возвращает его Пользователя.

📣 Проблема оборачивания ответа. Нужно ли в начале и конце ответа нейро-ассистента добавлять предупреждающий текст, который информирует, что с человеком общается бот? Например, такой текст «ответ сформирован автоматически, уточняйте полученную инфу у администратора». Мне кажется полезным такая обертка ответа, т.к. это снижает риск последствий, когда модель ответила неадекватно и пользователь пытается настаивать на получение привилегий, на основании полученного ответа.

📣Проблематика содержания промтов: Изначальная посылка была скрыть от пользователя, что ChatGPT использует какой-то документ. Эта посылка на сработала с Юридической базой, когда наоборот, пользователь хочет знать на основании каких документов сформирован ответ, т.е. нужна отсылка к названию используемых источников, их статей, разделов и т.д. В промте нужно описывать тематики нейро-ассистента, так, чтобы отсекать левые вопросы, типа «когда была создана вселенная». На такие вопросы система должна отвечать, что это офтоп и предлагать переформулировать вопрос или задать вопрос по теме. Существует угроза prompt injection, когда злонамеренный пользователь пытается отменить своим вопросом системный промт и заставить систему действовать по-своему.

В-третьих, есть юридическая База Знаний, структура которой зависит от исходных документов: кодексов, законов, приказов и т.д. Часто информация повторяется, разделы документов изменяются в связи с выходом дополнений и т.д.

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

Что касается Базы Знаний, то здесь можно выделить несколько подходов. Во-первых, для малого бизнеса, предоставляющего услуги или товары, удобнее всего структурировать информацию по сходству: цены, адреса, контакты, информация о компании.

С появлением первых прототипов нейро-ассистентов стало очевидно, что основа их эффективности заключается не столько в программной реализации, сколько в качественной Базе Знаний и грамотно составленных системных промтах. Похоже, это связано с тем, что для привлечения потенциального заказчика важно предоставить ему максимально понятный и доступный пример.

Добрый день! Возник вопрос про автоматизацию тестирования бота - ассистента. Думаю примерно в таком направлении. 1. Сначала при ручном тестировании собрать накопить инфу вида <вопрос, ответ, true/false>. 2. Далее при внесении изменений в Базу Знаний, промты или код бота, проводить автоматическое тестирования сравнивая «старый» и «новый» ответы. Вопрос: как сравнивать тексты ответов? Вроде похоже на similarity_search из langchain. Или перевести в embedding «старый» и «новый» ответы и вычислить какой-либо distance? какой? косинус, евклидово расстояние? Вы делали что-либо подобное? Какие идеи?

А кто-нибудь уже разобрался как использовать функции с ChatGPT? Я вот попробовал, вот результат: • видео: https://youtu.be/2gdeJIbzi80 • нотебук: https://colab.research.google.com/drive/1KjimdodrybYwQjn6I44gdJwRr7WtbSBk?usp=sharing Если есть интересные материалы на эту тему, прошу поделиться!

Вот видео (8 минут) https://youtu.be/NkjkqsLCweQ

Всем привет! Меня только сегодня добавили…но есть домашняя заготовка: после просмотра мини уроков от УИИ про дообучение ChatGPT и про TG ботов, мне захотелось соединить код из этих уроков так, чтобы дообученная Chat GPT отвечала в TG бот Вот моя запись: https://youtu.be/8rKedN9tiuo Нотебук: https://colab.research.google.com/drive/1LrWjPiEkcjqFTH1baWICCwz_7vYexQ_5?usp=sharing

Чат находится здесь: https://t.me/AiExp02