본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 28. 05:16

Ollama + Telegram을 사용하여 AI 논문 일일 스캔 시스템을 구축한 방법

요약

Ollama와 Telegram을 활용하여 HuggingFace의 최신 AI 논문을 자동으로 수집, 번역 및 요약하여 전송하는 Python 기반 자동화 시스템 구축 방법을 소개합니다. 로컬 LLM을 사용하여 API 비용 없이 효율적인 논문 스캔 환경을 만드는 과정을 다룹니다.

핵심 포인트

  • HuggingFace API를 통한 일일 인기 논문 자동 수집
  • Ollama를 활용한 로컬 LLM 기반의 무료 번역 및 요약
  • Telegram 봇을 이용한 실시간 알림 시스템 구현
  • Python 스크립트를 활용한 10분 내 시스템 복제 가능

AI 연구를 팔로우하고 있다면, HuggingFace Papers에서 매일 새로운 논문들이 올라온다는 사실을 알고 있을 것입니다. 문제는 무엇일까요? 수십 개의 초록(Abstract)이 영어로 되어 있어, 일상생활에서 이를 일일이 수동으로 읽는 것은 불가능에 가깝다는 점입니다.

저는 이를 자동화하기로 했습니다. 그날의 논문을 검색하고, 각 초록을 Ollama를 통해 로컬 LLM(Large Language Model)으로 보내 포르투갈어로 번역한 뒤, 모든 내용을 Telegram으로 전송하는 Python 스크립트를 만들었습니다. API 비용을 지불할 필요도 없고, 클라우드 서비스도 사용하지 않습니다.

이 글에서는 이 시스템이 어떻게 작동하는지, 그리고 어떻게 10분 안에 이를 복제할 수 있는지 보여드리겠습니다.

프로젝트 기능

  1. HuggingFace API를 조회하여 그날의 인기 논문을 가져옵니다.
  2. 각 논문에 대해 초록을 Ollama(로컬에서 실행되는 LLM)로 보내 포르투갈어 번역 및 요약을 요청합니다.
  3. 제목, 저자, 업보트(Upvotes), 번역된 요약을 포함하여 메시지를 구성합니다.
  4. 각 논문을 Telegram의 개별 메시지로 전송합니다.

Telegram에서의 결과물은 다음과 같습니다:

🤖 HuggingFace Papers — 27/05/2026
llama3로 번역된 오늘의 Top 8 논문
──────────────────────────────
...

사전 요구 사항

  • Python 3.10+
  • llama3(또는 보유 중인 다른 모델)가 설치된 Ollama
  • Telegram 봇 (생성하는 데 2분 정도 소요됩니다)

프로젝트 구조

hf-digest/
├── hf_digest.py      # 메인 스크립트
├── config.py         # 설정 파일
...

코드

config.py

설정부터 시작합니다. 모든 것을 한곳에 모아 조정하기 쉽게 만들었습니다:

TELEGRAM_BOT_TOKEN = "SEU_TOKEN_AQUI"
TELEGRAM_CHAT_ID   = "SEU_CHAT_ID_AQUI"
OLLAMA_URL         = "http://localhost:11434"
...

논문 검색하기

HuggingFace API는 그날의 논문을 JSON 형식으로 반환합니다. 매우 간단합니다:

def fetch_papers() -> list[dict]:
    today = datetime.now().strftime("%Y-%m-%d")
    url = f"https://huggingface.co/api/daily_papers?date={today}"
...

Ollama를 이용한 번역

여기에 마법이 있습니다. Ollama는 localhost:11434에서 로컬 REST API (REST API)를 노출합니다. 프롬프트 (Prompt)를 보내면 모델이 응답을 반환합니다.

def translate_with_ollama(text: str) -> str:
    prompt = f"""Você é um assistente especializado em IA e ML. 
Traduza e resuma o seguinte abstract para o português brasileiro.
...

stream: False 설정은 Ollama가 응답하기 전에 모든 처리가 완료될 때까지 기다리게 합니다. 이 유스케이스 (Use case)에서는 스트리밍 (Streaming)보다 다루기가 더 쉽습니다.

Telegram으로 전송하기

Telegram 봇은 마크다운 (Markdown)을 지원하므로 메시지를 깔끔하게 서식화할 수 있습니다.

def send_telegram(text: str) -> bool:
    url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
    payload = {
...

main()에서 모두 합치기

def main():
    papers = fetch_papers()

...

5분 만에 설정하기

1. 의존성 설치

pip install requests

2. Telegram에서 봇 만들기

  • Telegram을 열고 **@botfather**를 검색합니다.
  • /newbot을 보내고 안내를 따릅니다.
  • 토큰 (Token)을 복사하여 config.py에 붙여넣습니다.

3. Chat ID 확인하기

새로 만든 봇에게 아무 메시지나 보낸 후 다음을 실행합니다:

# get_chat_id.py
import requests
from config import TELEGRAM_BOT_TOKEN
...

4. Ollama 실행 및 구동

ollama serve
python3 hf_digest.py

왜 LLM을 로컬에서 실행하나요?

번역을 위해 OpenAI 또는 Gemini API를 사용할 수도 있었습니다. 하지만 로컬에서 실행하면 몇 가지 장점이 있습니다:

  • 비용 제로 (Zero cost) — 토큰 (Token) 비용을 지불할 필요가 없습니다.
  • 개인정보 보호 (Privacy) — 초록 (Abstract) 데이터가 기기 외부로 나가지 않습니다.
  • 속도 제한 없음 (No rate limit) — 원하는 만큼 많은 논문을 처리할 수 있습니다.
  • 오프라인 작동 — 모델을 다운로드한 후에는 번역을 위해 인터넷이 필요하지 않습니다.

llama3는 기술 번역에서 매우 훌륭한 성능을 보여줍니다. 더 빠른 속도를 원한다면 phi4 또는 gemma3도 잘 작동하며 더 가볍습니다.

cron으로 자동화하기

매일 아침 수동으로 실행할 필요 없이 요약본 (Digest)을 받으려면 crontab에 추가하세요:

crontab -e
0 9 * * * cd /caminho/para/hf-digest && python3 hf_digest.py >> digest.log 2>&1

가능한 개선 사항

프로젝트를 발전시키기 위한 몇 가지 아이디어입니다:

  • 분야별 필터링: 예를 들어 NLP(자연어 처리) 또는 RL(강화학습) 논문만 받기
  • 관련성 점수 (Relevance Score): LLM(대규모 언어 모델)에게 사용자의 프로필을 기반으로 얼마나 관련성이 있는지 평가하도록 요청하기
  • 데이터베이스 저장: 읽은 논문의 로컬 히스토리(History) 저장하기
  • 웹 인터페이스: 브라우저에서 번역된 논문을 읽을 수 있는 간단한 대시보드 구축하기
  • 다른 피드 지원: arXiv 또는 Papers With Code와 직접 연결하기

전체 코드

테스트해 보시고 개선 사항이 있다면 댓글로 공유해 주세요! 설정 단계 중 궁금한 점이 있다면 언제든 질문해 주세요.

Tags: python, ai, ollama, telegram, machinelearning

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0