Доработка телеграм-бота
Цена договорная
**Цена договорная**
**Проект:**
Набор нескольких однотипных Telegram-ботов на базе фреймворка для создания диалоговых систем и RAG-подхода (Retrieval Augmented Generation). Каждый чат-бот привязан к определённому сотруднику, изолирован от других чат-ботов, и помогает пользователям этого чат-бота при ответе на вопросы. Почти весь код уже готов, необходимо привлечь разработчика для доработки сложных аспектов.
**Цели проекта:**
- Обеспечить корректную работу системы чат-ботов в Telegram с использованием готового внешнего фреймворка для создания диалоговых систем.
- Корректно интегрировать работу с реляционной (PostgreSQL) и векторной базами данных.
- Обеспечить безопасность и отказоустойчивость решения.
- Настроить и документировать процесс развертывания и масштабирования системы.
- Обеспечить возможность аналитики (дашборды на базе Apache Superset).
- Помочь в подборе требований для аренды оборудования.
**Текущий статус проекта:**
- Функциональность фреймворка для создания диалоговых систем и LangChain (фреймворк для работы с большими языковыми моделями) уже реализована.
- Реализованы на базовом уровне функции для работы с PostgreSQL и векторной базой данных (всё работает, но без учёта безопасности).
- Обработка ошибок в ряде функций уже написана (требуется аудит).
- Первоначальный код, а также подробная документация по проекту будут предоставлены исполнителю.
**Задачи, требующие доработки:**
*1. Работа с реляционной базой данных (PostgreSQL)*
Что сделать:
- Аудит и при необходимости рефакторинг имеющихся функций взаимодействия с БД.
- Настроить систему безопасности (например, защита от SQL-инъекций).
- Корректно развернуть базу данных на сервере (конфигурация, оптимизация, настройка резервного копирования).
- Провести аудит функций обработки ошибок. При необходимости — доработать или переписать.
*2. Работа с векторной базой данных*
Что сделать:
- Настроить структуру размещения групп векторных БД для разных телеграм-ботов. Определить, нужна ли специальная конфигурация или достаточно текущей схемы. Возможно, каждая векторная БД будет содержаться в отдельном Docker-контейнере самого бота и тогда данная задача не актуальна - решение обсуждается с исполнителем.
- Проанализировать необходимость дополнительных мер безопасности. Предполагается, что запись в векторные БД происходит только при создании чат-бота, а не в процессе его работы.
- Определить требования к ресурсам для векторной БД, чтобы задать параметры сервера при аренде.
- Провести аудит функций обработки ошибок для векторной БД. При необходимости — доработать или переписать.
*3. Скрипт чат-ботов*
Что сделать:
- Настроить правильное развертывание бота(ов) на сервере.
- Организовать запуск Docker-контейнеров для каждого бота, подготовить инструкции и шаблоны для дальнейшего масштабирования.
- Убедиться в корректной интеграции бота с Telegram через фреймворк для создания диалоговых систем (встроенная поддержка есть, требуется проверка настроек).
*4. Работа с LLM и LangChain*
Что сделать:
- Определить необходимость асинхронности в работе с LLM через LangChain. Если она нужна — корректно её настроить.
- Проверить и при необходимости доработать уже написанные функции обработки ошибок.
*5. Работа с эмбеддингами*
Что сделать:
- Определить, нужна ли асинхронность при работе с эмбеддингами в RAG. Если нужна — настроить её.
- Проверить и при необходимости доработать функции обработки ошибок.
*6. Дашборд (Apache Superset)*
Что сделать:
- Развернуть дашборд для аналитики хотя бы одного бота, подготовить инструкцию и шаблоны для развёртывания последующих дашбордов.
- Настроить доступы к дашборду, описать процесс настройки, чтобы мы смогли самостоятельно повторить его для других ботов.
*7. Тестирование системы*
Что сделать:
- Нагрузочное тестирование бота и системы: определить, нужно ли оно. Если да, то подготовить инструкции для самостоятельного тестирования. Если нет — обосновать отсутствие необходимости.
- Тестирование системы на безопасность: проверить, чтобы ни один пользователь не смог нарушить работу системы или скомпрометировать данные. Предложить рекомендации по устранению уязвимостей.
- Проверка устойчивости системы при возникновении ошибок (сбоев Telegram, внешних сервисов). Убедиться, что при сбоях система продолжает работать или корректно восстанавливается.
- Мы сможем самостоятельно настроить и провести тесты для:
- Скрипта самого бота
- Тестирование обращений к LLM
- Работы RAG системы
- Проверки на возникающие нештатные ошибки
- Если есть дополнительные важные типы тестов (например, специфические интеграционные тесты, тесты безопасности на низком уровне), которые мы не учли, исполнитель может предложить их для обсуждения и решения о необходимости.
*8. Логирование ошибок*
Что сделать:
- Настроить логирование базовых и технических ошибок.
*9. Требования к инфраструктуре и рекомендации по аренде сервера*
Что сделать:
- Оценить текущие требования к хостингу: объем памяти, хранилища и процессорные ресурсы при наличии до 5 ботов.
- Предложить масштабируемое решение и конфигурации на случай увеличения числа ботов в будущем до 20 и более.
- Предложить оптимальные параметры арендуемого сервера (тип VPS или VDS, объем RAM, CPU, объем и тип диска, пропускная способность сети и т.д.).
- Задокументировать рекомендации для дальнейшего масштабирования.
**Навыки, необходимые разработчику**
- Уверенное владение Python.
- Готовность разобраться в части документации фреймворка для создания диалоговых систем, которая требуется для задачи.
- Готовность изучить необходимые разделы документации LangChain, которые требуются для задачи.
- Опыт работы с PostgreSQL (оптимизация, администрирование, безопасность).
- Готовность анализа работы векторных БД.
- Знание Docker (создание и настройка Docker-контейнеров).
- Навыки обеспечения безопасности.
- Опыт в настройке асинхронности в Python и интеграции с внешними API.
- Понимание принципов тестирования, умение предложить и обосновать дополнительные виды тестов при необходимости.
---
**Юридические аспекты**
- При работе над проектом будет заключен договор. Возможно заключение договора с ИП, самозанятым или физическим лицом. Шаблоны договора имеются.
---
**Организационные моменты**
- Перед началом работы будет проведен созвон для обзора текущей реализации системы.
- На созвоне определим объем предстоящих работ, приоритетные задачи и возможные задачи «на потом».
**Проект:**
Набор нескольких однотипных Telegram-ботов на базе фреймворка для создания диалоговых систем и RAG-подхода (Retrieval Augmented Generation). Каждый чат-бот привязан к определённому сотруднику, изолирован от других чат-ботов, и помогает пользователям этого чат-бота при ответе на вопросы. Почти весь код уже готов, необходимо привлечь разработчика для доработки сложных аспектов.
**Цели проекта:**
- Обеспечить корректную работу системы чат-ботов в Telegram с использованием готового внешнего фреймворка для создания диалоговых систем.
- Корректно интегрировать работу с реляционной (PostgreSQL) и векторной базами данных.
- Обеспечить безопасность и отказоустойчивость решения.
- Настроить и документировать процесс развертывания и масштабирования системы.
- Обеспечить возможность аналитики (дашборды на базе Apache Superset).
- Помочь в подборе требований для аренды оборудования.
**Текущий статус проекта:**
- Функциональность фреймворка для создания диалоговых систем и LangChain (фреймворк для работы с большими языковыми моделями) уже реализована.
- Реализованы на базовом уровне функции для работы с PostgreSQL и векторной базой данных (всё работает, но без учёта безопасности).
- Обработка ошибок в ряде функций уже написана (требуется аудит).
- Первоначальный код, а также подробная документация по проекту будут предоставлены исполнителю.
**Задачи, требующие доработки:**
*1. Работа с реляционной базой данных (PostgreSQL)*
Что сделать:
- Аудит и при необходимости рефакторинг имеющихся функций взаимодействия с БД.
- Настроить систему безопасности (например, защита от SQL-инъекций).
- Корректно развернуть базу данных на сервере (конфигурация, оптимизация, настройка резервного копирования).
- Провести аудит функций обработки ошибок. При необходимости — доработать или переписать.
*2. Работа с векторной базой данных*
Что сделать:
- Настроить структуру размещения групп векторных БД для разных телеграм-ботов. Определить, нужна ли специальная конфигурация или достаточно текущей схемы. Возможно, каждая векторная БД будет содержаться в отдельном Docker-контейнере самого бота и тогда данная задача не актуальна - решение обсуждается с исполнителем.
- Проанализировать необходимость дополнительных мер безопасности. Предполагается, что запись в векторные БД происходит только при создании чат-бота, а не в процессе его работы.
- Определить требования к ресурсам для векторной БД, чтобы задать параметры сервера при аренде.
- Провести аудит функций обработки ошибок для векторной БД. При необходимости — доработать или переписать.
*3. Скрипт чат-ботов*
Что сделать:
- Настроить правильное развертывание бота(ов) на сервере.
- Организовать запуск Docker-контейнеров для каждого бота, подготовить инструкции и шаблоны для дальнейшего масштабирования.
- Убедиться в корректной интеграции бота с Telegram через фреймворк для создания диалоговых систем (встроенная поддержка есть, требуется проверка настроек).
*4. Работа с LLM и LangChain*
Что сделать:
- Определить необходимость асинхронности в работе с LLM через LangChain. Если она нужна — корректно её настроить.
- Проверить и при необходимости доработать уже написанные функции обработки ошибок.
*5. Работа с эмбеддингами*
Что сделать:
- Определить, нужна ли асинхронность при работе с эмбеддингами в RAG. Если нужна — настроить её.
- Проверить и при необходимости доработать функции обработки ошибок.
*6. Дашборд (Apache Superset)*
Что сделать:
- Развернуть дашборд для аналитики хотя бы одного бота, подготовить инструкцию и шаблоны для развёртывания последующих дашбордов.
- Настроить доступы к дашборду, описать процесс настройки, чтобы мы смогли самостоятельно повторить его для других ботов.
*7. Тестирование системы*
Что сделать:
- Нагрузочное тестирование бота и системы: определить, нужно ли оно. Если да, то подготовить инструкции для самостоятельного тестирования. Если нет — обосновать отсутствие необходимости.
- Тестирование системы на безопасность: проверить, чтобы ни один пользователь не смог нарушить работу системы или скомпрометировать данные. Предложить рекомендации по устранению уязвимостей.
- Проверка устойчивости системы при возникновении ошибок (сбоев Telegram, внешних сервисов). Убедиться, что при сбоях система продолжает работать или корректно восстанавливается.
- Мы сможем самостоятельно настроить и провести тесты для:
- Скрипта самого бота
- Тестирование обращений к LLM
- Работы RAG системы
- Проверки на возникающие нештатные ошибки
- Если есть дополнительные важные типы тестов (например, специфические интеграционные тесты, тесты безопасности на низком уровне), которые мы не учли, исполнитель может предложить их для обсуждения и решения о необходимости.
*8. Логирование ошибок*
Что сделать:
- Настроить логирование базовых и технических ошибок.
*9. Требования к инфраструктуре и рекомендации по аренде сервера*
Что сделать:
- Оценить текущие требования к хостингу: объем памяти, хранилища и процессорные ресурсы при наличии до 5 ботов.
- Предложить масштабируемое решение и конфигурации на случай увеличения числа ботов в будущем до 20 и более.
- Предложить оптимальные параметры арендуемого сервера (тип VPS или VDS, объем RAM, CPU, объем и тип диска, пропускная способность сети и т.д.).
- Задокументировать рекомендации для дальнейшего масштабирования.
**Навыки, необходимые разработчику**
- Уверенное владение Python.
- Готовность разобраться в части документации фреймворка для создания диалоговых систем, которая требуется для задачи.
- Готовность изучить необходимые разделы документации LangChain, которые требуются для задачи.
- Опыт работы с PostgreSQL (оптимизация, администрирование, безопасность).
- Готовность анализа работы векторных БД.
- Знание Docker (создание и настройка Docker-контейнеров).
- Навыки обеспечения безопасности.
- Опыт в настройке асинхронности в Python и интеграции с внешними API.
- Понимание принципов тестирования, умение предложить и обосновать дополнительные виды тестов при необходимости.
---
**Юридические аспекты**
- При работе над проектом будет заключен договор. Возможно заключение договора с ИП, самозанятым или физическим лицом. Шаблоны договора имеются.
---
**Организационные моменты**
- Перед началом работы будет проведен созвон для обзора текущей реализации системы.
- На созвоне определим объем предстоящих работ, приоритетные задачи и возможные задачи «на потом».
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.