Архив рубрики ~Лента новостей~

Персональные агентские помощники: практический план создания безопасного многопользовательского чат-бота с собственным хостингом

Персональные агентские помощники: практический план создания безопасного многопользовательского чат-бота с собственным хостингом

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

Делиться

NOVOSTI

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

Другими словами: полный контроль, 100% конфиденциальность, все преимущества LLM без утечек конфиденциальной информации, затрат на токены или внешних зависимостей.

Вступление

На прошлой неделе я поставил перед собой задачу воплотить в жизнь то, о чем я думал уже некоторое время:

Как можно наделить LLM своими персональными данными, не жертвуя при этом конфиденциальностью в пользу крупных технологических компаний?

Это привело к заданию этой недели:

Создайте агентского чат-бота, оснащенного инструментами для безопасного доступа к личным заметкам пользователя, не нарушая конфиденциальности.

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

Мы построим систему в следующие этапы:

  1. Архитектура
  2. Как создать агента и снабдить его инструментами?
  3. Поток 1: Управление файлами пользователей: что происходит, когда мы отправляем файл?
  4. Поток 2: Как встраивать документы и хранить файлы?
  5. Поток 3: Что происходит, когда мы общаемся с нашим помощником-агентом?
  6. Демонстрация

1) Архитектура

Я определил три основных «потока», которые должна допускать система:

А) Управление файлами пользователей
Пользователи проходят аутентификацию через интерфейс, загружают или удаляют файлы и назначают каждый файл определенным группам, которые определяют, какие агенты пользователей могут получить к нему доступ.

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

В) Чат
Пользователь общается со своим агентом. Агент оснащён инструментами, включая инструмент семантического векторного поиска, и может искать только те документы, к которым у пользователя есть разрешение на доступ.

Для поддержки этих потоков система состоит из шести ключевых компонентов:

Приложение
Приложение Python, являющееся сердцем системы. Оно предоставляет конечные точки API для фронтенда и прослушивает сообщения, поступающие из очереди сообщений.

Внешний интерфейс
Обычно я использую Angular, но для этого прототипа я выбрал Streamlit. Он очень быстрый и простой в разработке. Конечно, эта простота использования имела и свои недостатки: я не мог реализовать всё, что хотел. Я планирую заменить этот компонент на свой любимый Angluar, но, на мой взгляд, Streamlit очень хорошо подошёл для прототипирования.

Хранилище BLOB-объектов
Этот контейнер использует Minio — высокопроизводительную распределённую систему хранения объектов с открытым исходным кодом. Конечно, это излишество для моего прототипа, но он очень прост в использовании и хорошо интегрируется с Python, так что я ни о чём не жалею.

(Векторная) База данных
Postgres обрабатывает все реляционные данные, такие как метаданные документа, пользователи, группы пользователей и текстовые фрагменты. Кроме того, Postgres предлагает расширение, которое я использую для сохранения векторных данных, таких как вложения, которые мы хотим создать. Это очень удобно для моего случая, поскольку я могу разрешить поиск по вектору в таблице, соединив её с таблицей пользователей, гарантируя, что каждый пользователь будет видеть только свои данные.

Оллама
Ollama предлагает две локальные модели: одну для встраивания и одну для чата. Модели довольно лёгкие, но их можно легко модернизировать в зависимости от доступного оборудования.

Очередь сообщений
RabbitMQ делает систему отзывчивой. Пользователям не нужно ждать, пока большие файлы будут разделены на фрагменты и внедрены. Вместо этого я сразу же возвращаюсь к работе и обрабатываю внедрение в фоновом режиме. Это также обеспечивает горизонтальную масштабируемость: несколько обработчиков могут обрабатывать файлы одновременно.

Источник: towardsdatascience.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Коротко из Telegram~ Один ролик вместо четырёх часов переобучения Чтобы научить робота новой… Архив рубрики ~Коротко из Telegram~ YouTube ужесточает контроль за «неаутентичным контентом» В этом видео детально… Архив рубрики ~Коротко из Telegram~ Роботы начнут чинить спутники — SpaceX запустила на орбиту беспилотник… Новости робототехники Андроид T800 потерял голову в поединке на ринге. В Китае прошел турнир по боям между человекоподобными роботами Новости робототехники Соучредитель Uber привлек $1,7 млрд для нового робототехнического стартапа ATOMS Архив рубрики ~Обо всем~ Заметки из окопов: взгляд вычислительного биолога на цифровую революцию в разработке лекарств. Новости робототехники Holiday Robotics собирает 105 миллионов долларов для своего колесного гуманоида ПЯТНИЦА Новости робототехники [Перевод] В Корее произошла первая в мире забастовка против использования гуманоидных роботов на производстве Архив рубрики ~Обо всем~ Оксид никеля из руды ускорил восстановление железа водородом вдвое. Твердофазный катализ восстановил смесь оксидов в сплав за одну стадию Новости робототехники Украинские беспилотники доставляют роботов непосредственно в зону боевых действий по морю и воздуху. Новости робототехники AMD представила модуль Kria для управления в кратчайшие сроки и унифицированную память для роботов. Архив рубрики ~Коротко из Telegram~ Создатель Twitter Джек Дорси выпустил аналог Discord и Slack —… Новости робототехники Роботакси Tesla движутся в обратном направлении. Архив рубрики ~Обо всем~ Вы умеете читать чужие мысли. Но наука уже 50 лет не может понять как Архив рубрики ~Коротко из Telegram~ Один ролик вместо четырёх часов переобучения Чтобы научить робота новой… Архив рубрики ~Коротко из Telegram~ YouTube ужесточает контроль за «неаутентичным контентом» В этом видео детально… Архив рубрики ~Коротко из Telegram~ Роботы начнут чинить спутники — SpaceX запустила на орбиту беспилотник… Новости робототехники Андроид T800 потерял голову в поединке на ринге. В Китае прошел турнир по боям между человекоподобными роботами Новости робототехники Соучредитель Uber привлек $1,7 млрд для нового робототехнического стартапа ATOMS Архив рубрики ~Обо всем~ Заметки из окопов: взгляд вычислительного биолога на цифровую революцию в разработке лекарств. Новости робототехники Holiday Robotics собирает 105 миллионов долларов для своего колесного гуманоида ПЯТНИЦА Новости робототехники [Перевод] В Корее произошла первая в мире забастовка против использования гуманоидных роботов на производстве Архив рубрики ~Обо всем~ Оксид никеля из руды ускорил восстановление железа водородом вдвое. Твердофазный катализ восстановил смесь оксидов в сплав за одну стадию Новости робототехники Украинские беспилотники доставляют роботов непосредственно в зону боевых действий по морю и воздуху. Новости робототехники AMD представила модуль Kria для управления в кратчайшие сроки и унифицированную память для роботов. Архив рубрики ~Коротко из Telegram~ Создатель Twitter Джек Дорси выпустил аналог Discord и Slack —… Новости робототехники Роботакси Tesla движутся в обратном направлении. Архив рубрики ~Обо всем~ Вы умеете читать чужие мысли. Но наука уже 50 лет не может понять как