Skip to content

fresh-milkshake/agentic_ai_x_longevity_hackathon

Repository files navigation

header

Build License Hackathon Python English

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

Для управления зависимостями и проектом используется uv. Форматтер и линтер - ruff.

Использование

Important

Для работы проекта требуется API-ключ от USPTO PatentsView. Получить его можно здесь. Заявку одобряют в течение 1-2 дней.

Установка зависимостей

Необходимые зависимости:

Необходимо будет выбрать подходящую модель для работы с текстом. В проекте по умолчанию используется модель qwen3. Для ее скачивания необходимо выполнить команду:

ollama pull qwen3

Запуск проекта

  1. Клонируйте репозиторий:
    git clone https://github.com/fresh-milkshake/agentic_ai_x_longevity
  2. Установите Python зависимости при помощи uv (или poetry):
    uv sync

Note

Скачать uv можно при помощи pip:

pip install uv
  1. Создайте файл .env по образцу .env.example в корне проекта и добавьте в него API-ключ от USPTO:

    USPTO_API_KEY=your_api_key

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

  2. Запустите скрипт:

    uv run main.py
    

    или

    python main.py
    

    но в случае с python - необходимо убедиться что запуск происходит из виртуального окружения, в котором установлены все Python зависимости.

Запуск Gradio UI

Warning

Не все функции Gradio UI отлажены и могут работать некорректно. Для лучшего опыта рекомендуется использовать стандартный запуск проекта через uv run main.py.

В проекте используется Gradio для создания user-friendly веб-интерфейса с возможностью запуска различных этапов проекта как по отдельности, так и в едином пайплайне. Для запуска интерфейса необходимо выполнить команду:

uv run gradio-ui.py

Gradio UI Gradio UI

Запуск скрипта обзора промежуточных результатов

Для обзора промежуточных результатов в формате pickle файлов, которые создаются в процессе работы агентов, можно использовать TUI скрипт:

uv run interactive_view_pkl.py

Interactive View Interactive View

Структура проекта

├── patents/                 # Патенты (PDF)
│   └── *.pdf
├── results/                 # Результаты обработки
│   ├── intermediate/        # Промежуточные данные
│   │   └── *.pkl            # Сериализованные данные от агентов
│   ├── final/               # Финальные результаты
│   │   └── *.csv            # CSV-файлы с результатами
│   └── raw/                 # Необработанные данные
│       └── *.txt            # Текстовые версии документов
├── src/                     # Основной код
│   ├── constants            # Константы и настройки проекта
│   │   └── ...
│   ├── evaluation           # Скрипт для оценки датасета
│   │   └── ...
│   ├── filtering            # Поиск и скачивание патентов с USPTO
│   │   └── ...
│   ├── processing           # Обработка данных
│   │   ├── pipeline.py      # Основной пайплайн ИИ-агентов
│   │   └── ...
│   ├── orchestration        # Оркестратор
│   │   └── ...
│   ├── models.py            # ML-модели для агентов
│   └── utils.py             # Вспомогательные функции для агентов
├── main.py                  # Точка входа
├── gradio-ui.py             # Веб-интерфейс на Gradio
├── pyproject.toml
├── README.md                # Этот файл
├── README.eng.md
├── .env.example
└── .env

Лицензия

Проект опубликован под лицензией MIT. Для деталей см. LICENSE.

About

Прототип пайплайна для фильтрации и анализа научных публикаций и патентов на предмет данных связывания лиганда с белĸом

Topics

Resources

License

Stars

Watchers

Forks

Contributors