Code Monkey home page Code Monkey logo

ai-assistant's Introduction

Разработка ИИ-ассистента для помощи в научной деятельности

Проект подготовлен командой '56' в рамках хакатона DeepHack.Agents

  • Дарья Кашина
  • Алексей Фирсов
  • Александр Иваненков

Задача

На основании возможностей, которые предоставляют GigaChat и его SDK GigaChain, разработать собственного ИИ-ассистента, помогающего в научной деятельности.

Наша идея

При работе над новым исследованием аспирантам/научным сотрудникам необходимо делать обзор уже существующих исследований. Как правило это делается при помощи баз типа Google Scholar по ключевым словам.

Здесь можно подробнее прочитать о том, как и где делается обзор исследований. Помимо Google Scholar есть такие источники как:

Из большинства источников можно получить информацию по API (за исключением Google Scholar и Scopus).

Поэтому мы решили создать ИИ-ассистента, который при помощи агента и RAG-технологии мог бы искать информацию сначала в векторной БД/по API и давать ссылки на источники, а если ответ не найден, обращался бы к LLM GigaChat. Задача реализована частично, но имея работающий MVP у нас есть возможность в дальнейшем развить его в полноценный и многофункциональный продукт.

Второстепенной задачей было оповещение о грантах и конкурсах по заданной тематике (например, с сайта fasie.ru), чтобы молодые ученые могли своевременно узнавать о событиях, связанными с их темой. Данная задача не была реализована.

Реализация

Мы создали ИИ-ассистента в виде телеграм-бота, который может отвечать на запрос пользователя через агента. Агент для ответа использует векторную БД Chroma (для MVP мы наполнили базу статьями по квантовой физике, а также выдуманной информацией из области химии, чтобы у нас была возможность проверить, что ИИ-ассистент действительно обращается в базу данных, а не к LLM), а если ответа в БД нет, обращается к LLM GigaChat. Тем самым может отвечать не только на научные, но и на общие вопросы.

Демонстрация готового продукта:

ИИ-ассистент реализован в виде бота, открывается по ссылке и запускается командой /start. Также дополнительно можно узнать, как работать с ИИ-ассистентом, используя команду /help

Установка и запуск чат-бота через терминал
  • Склонируйте репозиторий https://github.com/daria-kashina/AI-assistant.git
  • Создайте новое виртуальное окружение python3 -m venv название_окружения
  • Активируйте его source название_окружения/bin/activate (mac)
  • Установите зависимости pip install -r requirements.txt
  • Запустите чат-бота python3 -m main
Структура

Prod:
agent.py - скрипт запуска агента
database_preparation.py - скрипт для подготовки векторной БД
example.txt - текстовый файл для наполнения БД
main.py - скрипт запуска ИИ-ассистента в Telegram
requirements.txt - файл с зависимостями проекта

Файлы наработок (не используются в текущей prod-версии):
agent_diff.py - агент с попыткой добавления учета контекста диалога и поиска ближайшего подходящего ответа в векторной БД
agent_check.py - проверка agent_diff.py в терминале

ai-assistant's People

Contributors

daria-kashina avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.