https://github.com/claromes/resumo-periodico
Telegram bot para resumos de artigos científicos com GROBID e IA generativa
https://github.com/claromes/resumo-periodico
gpt grobid research-paper telegram-bot
Last synced: 3 months ago
JSON representation
Telegram bot para resumos de artigos científicos com GROBID e IA generativa
- Host: GitHub
- URL: https://github.com/claromes/resumo-periodico
- Owner: claromes
- License: gpl-3.0
- Created: 2025-02-20T15:34:23.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-05T04:55:02.000Z (3 months ago)
- Last Synced: 2025-03-05T05:28:07.570Z (3 months ago)
- Topics: gpt, grobid, research-paper, telegram-bot
- Language: Python
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Resumo Periódico: Telegram Bot
Ferramenta experimental desenvolvida para gerar resumos de artigos científicos diretamente de arquivos PDF. Esses resumos são aproveitados no processo de curadoria da [newsletter Periódica](https://periodica.substack.com/).
O modelo de linguagem `GPT-4o mini` é utilizado em conjunto com a biblioteca de aprendizado de máquina GROBID, responsável pela extração de informações acadêmicas dos artigos.
# Funcionalidades
- resumo via comando (`/resumo`)
- somente um arquivo PDF por resumo
- controle de acesso ao chatbot via nome de usuário# Metodologia
A aplicação é desenvolvida em Python.
O bot do Telegram é executado em um container Docker e interage com o GROBID e a API da OpenAI para gerar respostas.
Outro container executa uma imagem do GROBID, com apenas modelos CRF, utilizados para segmentação e estruturação de documentos acadêmicos em elementos semânticos, como título, autores, afiliações, referências bibliográficas, etc. A [documentação do GROBID](https://grobid.readthedocs.io/en/latest/Grobid-docker/) também disponibiliza a versão completa (10GB), porém, para esta etapa experimental, usamos a [versão leve](https://hub.docker.com/r/lfoppiano/grobid/) (300MB).
O GROBID é uma biblioteca de aprendizado de máquina para extração, parsing e reestruturação de documentos brutos, como PDFs, convertendo-os para TEI (Text Encoding Initiative), um formato XML voltado para representação de textos acadêmicos e científicos de forma estruturada.
O usuário anexa um artigo em PDF, que é enviado ao servidor para processamento. O GROBID converte o conteúdo para TEI/XML e retorna o documento reestruturado. Em seguida, o código é convertido para JSON, por conta de limitações de MIME types da Assistants API (sem suporte para `application/xml`). Então, o prompt e arquivo JSON são enviados ao modelo de linguagem. A resposta gerada é retornada ao usuário.
A reestruturação do artigo ocorre apenas uma vez, após o upload do documento. O servidor não mantém o histórico de prompts nem recupera arquivos processados (PDF, TEI e JSON), embora os armazene temporariamente em diretórios organizados por data e hora.
Anteriormente, foi realizada prova de conceito do chatbot com o framework Streamlit e o modelo de linguagem `claude-3-5-haiku-20241022`. O código está disponível [aqui](https://github.com/claromes/resumo-periodico-poc).
# BotFather
O [BotFather](https://core.telegram.org/bots/features#botfather) é o serviço principal do Telegram para o registro de bots. Use-o para criar novas contas de bot e gerenciar bots existentes.
# Pré-requisitos
- Python 3.11+
- Docker Compose
- Telegram Bot Token
- OpenAI API Key
- Configuração das variáveis de ambiente```
cp .example.env .env
```# Instalação
> [!WARNING]
> Por conta de recursos limitados durante os testes, os containers são reiniciados automaticamente. Para alterar essa configuração, edite o parâmetro `mem_limit` no arquivo compose.yaml.> [!NOTE]
> Mínimo 4GiB de RAM, ideal 8GiB```
docker-compose up -d
```# Desenvolvimento
```
pre-commit install
```