본문 바로가기
직장인 친칠라/실험실

문서 요약기 만들기

by 친칠라 2025. 1. 31.

연휴에 뭐라도 해봐야 할 것 같아서 만들어 본 문서 요약기!

챗GPT의 도움을 아주매우많이 받았다. 고마워 챗GPT...

 

기록으로 남기는 게 좋을 것 같아서 티스토리를 다시 살려봤는데 무슨 말을 어디서부터 써야 할지 잘 모르겠다.

그래도 일단 뭘 어떻게 만들었는지 나중에 다시 봐도 알 수 있도록 정리해보자...!

 

개인적으로는 10~20페이지 정도의 논문 자료를 요약할 것을 염두에 두고 만들었다. 하지만 프롬프트나 다른 설정을 좀 조정한다면 다른 분량/종류의 문서에도 사용은 가능할 것 같다.


허깅페이스 데모 :

https://huggingface.co/spaces/Cheeseorim/DocumentSummarize

 

DocumentSummarize - a Hugging Face Space by Cheeseorim

 

huggingface.co

 

 

GitHub Repository :

https://github.com/Cheeseorim/DocumentSummarize

 

GitHub - Cheeseorim/DocumentSummarize

Contribute to Cheeseorim/DocumentSummarize development by creating an account on GitHub.

github.com


 

요약 과정

pdf 문서를 넣으면 먼저 마크다운으로 변환하고, 그 변환된 문서를 LLM이 요약하도록 했다.

 

문서 변환

마크다운 변환에는 Upstage Document Parse를 이용했다. 개인적으로 적어도 한국어 문서 파싱에는 Upstage 파서가 가장 사용하기 편한 것 같다. (이것저것 직접 써보면서 내린 결론인데... 이건 기회가 되면 다른 글로 또 정리하기로... 그 사이에 최신 버전들이 나왔다면 그걸로도 해봐야 하니까... ㅎㅎ ) 또 한국어 논문을 넣어도 잘 요약되도록 만들고 싶었기 때문에 더더욱 Upstage로 결정...!

사실 LlamaIndex나 Langchain으로도 pdf 파싱이 가능하고, 그렇게 한다면 OpenAI API key만 있어도 파싱과 요약을 모두 진행할 수 있다. (지금은 Upstage API key와 OpenAI API key가 모두 필요하다.) 실제로 맨 처음에는 LlamaIndex로도 살짝 시도해 보기도 했는데, 그 짧은 테스트에서는 큰 결함은 느끼지 못했으나... 역시 한국어 문서를 잘 처리했으면 하는 희망사항이 있었기 때문에 일단 Upstage로 진행하기로 했다. 영어 문서를 주로 다룬다면 LlamaIndex나 Langchain 쪽이 간편할지도 모르겠다.

 

문서 요약

gpt-4o에게 요약을 맡겼고, 프롬프트는 다음 3가지 작업을 수행하도록 작성했다. 위에도 언급했듯이... 논문 자료 요약을 주된 작업으로 염두에 둔 프롬프트다.

 

1. 문서 정보 추출 (제목, 저자, 작성 날짜, 작성 기관)

2. 문서 구조를 파악하여 구조별 세부 요약 작성

3. 문서 전체 요약 작성

 

요약에는 변환된 마크다운 데이터의 첫 4000자만 사용한다. 사실 이건 챗GPT가 추천(?)해 준 내용이다. API 제한을 고려해서 그렇게 짜줬다는데 정말이지 이렇게 섬세할 수가 없다 (?)

 

UI

UI는 Gradio로 간단히 만들고, 허깅페이스로 데모 가능하도록 올려 두었다. Streamlit으로도 UI 만들기가 가능하다고 봤는데 나중에 직접 써보면서 비교해봐야겠다. 일단은 개인적으로 Gradio가 좀 더 친숙하기도 하고 챗GPT에 물어보니(...) 빠르게 사용해보기에는 Gradio가 훨씬 간단해 보여서 Gradio로 진행했다.

 


몇몇 국문과 박사과정생들에게 보내봤는데 반응들이 나쁘지 않아서 뿌듯했다...!

한국어 논문 요약이 나쁘지 않게 되는 것을 확인했으므로 소기의 목적은 달성했다고 할 수 있겠다...

 

'직장인 친칠라 > 실험실' 카테고리의 다른 글

문서 요약기 업그레이드하기  (12) 2025.08.17