# PaperSumGPT
PaperSumGPT는 ChatGPT를 사용하여 긴 과학 논문 내용을 줄여주는 도구입니다. 연구자와 학생분들이 학술 논문의 요점을 빠르게 이해할 수 있기를 기원합니다!
- 몇 가지 알림 사항들
- 설치 방법
- (0) Windows 사용자분들께 (처음 사용하는 경우에만)
- (1) 리포지토리 복사하기
- (2) 설치 종속
- (3) PaperSumGPT 설치하기
- 사용법
- (1) chatgpt wrapper 실행
- (2) PaperSumGPT 실행하기
- Dependencies
- License
- 더 쉬운 방법 (ChatGPT splitter 사용)
ChatGPT 무료 사용자분들께
::2023-04-03 업데이트::
ChatGPT를 여러 계정으로 테스트한 결과 계정이 무료 사용자인지 유료 사용자인지(ChatGPT 플러스) 인지에 따라 ChatGPT 성능에 상당한 차이 가 있었습니다.
따라서, 만약 여러분이 ChatGPT 무료사용자이며, 요약해야 할 논문이 길다면 (1) 계정을 ChatGPT 플러스, 또는 (2) 입력 텍스트의 최대 길이 를 최대 7,000~8,000자
까지 입력해보시길 권장드립니다.
안타깝게도 현재 ChatGPT의 무료 버전은 입력 텍스트의 긴 컨텍스트를 이해하고 잘 저장하지 못하므로, 성공적인 결과를 기대하기가 어렵습니다. 예를 들어, 입력 텍스트와 전혀 관련이 없는 요약을 내보낸다든지, 입력 텍스트의 특정 부분만 고려한 출력을 내보내고는 합니다.
PDF 변환 기능 제거
::2023-06-21 업데이트::
PaperSumGPT는 더 이상 PDF 파일을 변환하지 않습니다. 대신, 아래 사이트들을 이용하여 PDF 파일을 텍스트로 변환하신 후, 변환된 텍스트를 PaperSumGPT에 넣어주세요.
Mac을 사용하시는 경우 (0) Windows 사용자분들께 (처음 사용하는 경우에만) 섹션을 건너뛰시면 됩니다.
Windows에는 사전에 설치된 리눅스 프로그램이 없기 때문에, 아래 지침을 따라주셔야만 정상적인 프로그램 이용이 가능합니다.
- 검색 탭에서 'Windows 기능 켜기/끄기'를 입력합니다. 그런 다음 "Windows Subsystem for Linux" 확인란을 선택합니다.
- 컴퓨터를 재부팅합니다.
- 이제 로컬 컴퓨터에 Ubuntu 를 설치합니다.
- Ubuntu를 열고 UNIX 계정과 암호를 만듭니다.
- 사용 편의를 위해 아나콘다도 설치해주세요. 터미널에 다음과 같은 명령어들을 순서대로 입력합니다.
wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
bash Anaconda3-2019.10-Linux-x86_64.sh
Enter 키로 모든 지침을 읽은 후, yes를 입력하여 라이센스에 동의합니다.
source ~/.bashrc
아래와 같이 conda를 활성화합니다.
conda activate
터미널에
(base)
가 표시되면 성공적으로 아나콘다가 설치된 것입니다.
- VcXsrv 를 로컬 컴퓨터에 설치합니다. 'VcXsrv' instra를 다운로드하여 실행합니다.
완료 버튼을 누릅니다.
Windows에서 'Xlaunch'를 열고 'Next'를 클릭합니다.
'Xlaunch'를 연 후 다음과 같은 옵션들이 체크되어 있는지 확인합니다.
- [x] Multiple windows
- [x] Start no client
- [x] Disable access control이제 터미널로 이동한 후...
- 다음 명령을 입력합니다.
sudo systemd-machine-id-setup
sudo dbus-uuidgen --ensure
cat /etc/machine-id
터미널에 긴 문자열의 숫자와 문자가 출력된다면
systemd-machine-id-setup
및dbus-uuidgen
가 잘 설치된 것입니다.이제 다음 명령을 입력하여
x11-apps
를 설치할 수 있습니다:sudo apt-get install x11-apps xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic
다음 명령들을 입력하여 환경 변수
DISPLAY
를.bashrc
파일에 추가합니다:echo "export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0 sudo /etc/init.d/dbus start &> /dev/null" >> ~/.bashrc
source ~/.bashrc
다음 명령을 입력하여 X11 GUI를 테스트합니다:
xeyes
마우스를 따라 움직이는 눈이 보인다면, X11 GUI가 성공적으로 설치된 것입니다!
이 절차들은 Windows 터미널에서
playwright
를 성공적으로 실행하기 위해 꼭 필요합니다 (ChatGPT 계정 입력 시 중요). 귀찮더라도 따라주시면 정상적인 프로그램 이용이 가능해집니다.
다음과 같이 터미널에 입력하여 이 리포지토리를 통째로 복사해주세요.
git clone https://github.com/wjgoarxiv/papersumgpt.git
cd papersumgpt/
정상적인 프로그램을 위해, install_old-repo.sh
를 실행하여 옛날 버전의 chatgpt_wrapper
를 설치해주어야 합니다. 최신 버전의 chatgpt_messages
는 현재 버전의 papersumgpt
와 호환되지 않습니다.
chmod +x *
./install_old-repo.sh
다음과 같이 터미널에 입력하여 papersumgpt
를 설치해주세요.
pip install .
papersumgpt
사용 전, chatgpt_wrapper
를 실행하여 ChatGPT 서버를 시작해주세요.
컴퓨터에 playwright
가 설치되어 있지 않다면, 다음과 같이 터미널에 입력하여 playwright
를 설치해주세요.
playwright install
nightly가 컴퓨터에 설치되고, playwright
가 실행 가능해집니다.
이제 다음과 같이 입력한 후, ChatGPT 계정을 입력해주세요.
chatgpt install
nightly 브라우저에서 ChatGPT 계정을 통해 로그인 후, chatgpt_wrapper
를 실행합니다.
chatgpt
여기까지는 기존 chatgpt_wrapper
의 기능과 동일합니다. 상세한 내용을 위해서는 chatgpt_wrapper github repository를 참고해주세요.
이제 터미널에 실행되어 있는 chatgpt_wrapper
를 종료해줍니다. 종료를 위해서는 /exit
을 입력해주세요.
이제 papersumgpt
를 사용하여 논문 요약을 진행할 준비가 되었습니다. 다음을 입력하여 papersumgpt
를 실행해주세요.
papersumgpt
아마 현재 디렉토리에 논문이 없기 때문에, 다음과 같은 에러 메시지가 출력될 것입니다.
------------------------------------------------
ERROR: There is no file in the current directory. Please check the current directory.
------------------------------------------------
프로그램이 input 파일을 인식할 수 있도록, 논문 파일을 현재 디렉토리에 놓아주세요. 이 리포지토리 내에 있는 chatgpt-a+meta+analysis+after+2.5+months.txt
를 예시 파일로 활용하겠습니다. ExampleRun/
폴더 내부를 확인해보세요. 논문 내용이 포함된 파일을 현재 디렉토리에 옮겨준 후, 다음을 입력하여 papersumgpt
를 실행해주세요.
papersumgpt
그럼 다음과 같이 논문 파일의 종류를 선택할 수 있는 메뉴가 출력될 것입니다.
INFO: Please type the number the file type that you want to use:
1. Markdown (`.md`) file
2. Plain text (`.txt`) file
텍스트 파일을 사용할 것이므로, 2번을 선택해줍니다.
------------------------------------------------
+---------------+------------------------------------------------+
| File number | File name |
|---------------+------------------------------------------------|
| 1 | ./chatgpt-a+meta+analysis+after+2.5+months.txt |
+---------------+------------------------------------------------+
------------------------------------------------
INFO: Please select the file number or press "0" to exit:
1번 파일을 선택하여 input으로 활용하겠습니다.
INFO: The file name that would be utilized is ./chatgpt-a+meta+analysis+after+2.5+months.txt
------------------------------------------------
INFO: Do you want to turn on `verbose` mode? If you turn on `verbose` mode, the program will print the intermediate results. (y/n):
verbose
모드란, 프로그램이 진행되는 과정을 모두 보여주는 모드입니다. verbose
모드를 켜면, 프로그램이 진행되는 과정을 보여주기 때문에, 프로그램이 어떻게 작동하는지 확인할 수 있습니다. verbose
모드를 켜고 싶다면, y
를 입력해주세요. verbose
모드를 끄고 싶다면, n
을 입력해주세요.
프로그램이 답변을 얻어낼 동안, 잠시 기다려보죠! ☕️
답변이 형성되는 동안, 한 가지 언급드리자면, papersumgpt
가 입/출력 하는 모든 내용은 여러분의 ChatGPT 계정에 실시간으로 반영이 됩니다. https://chat.openai.com/ 를 참고해보세요.
요약이 모두 완료되면,
INFO Choose output format (stream / txt / md):
stream
, txt
, or md
중 하나를 타이핑하여 출력할 파일의 형태를 고를 수 있습니다. 저희는 .md
파일 형식을 출력 파일 타입으로 지정하겠습니다.
INFO: Output saved to ./chatgpt-a+meta+analysis+after+2.5+months.txt_markdowned.md
때때로, ChatGPT는 완벽하지 못한 답변을 도출할 수도 있습니다. 여러분의 연구에 이 프로그램이 큰 도움이 되기를 기원합니다! 🚀
- pyfiglet - For generating ASCII art of the project name.
- tabulate - For creating clean and readable tables for the output.
- chatgpt_wrapper - An useful open-source unofficial Power CLI, Python API and Flask API that lets us interact programmatically with ChatGPT/GPT4.
This project is licensed under the MIT License.
::2023-09-15 업데이트::
papersumgpt
를 설치하지 않아도 같은 결과를 얻을 수 있습니다.
ChatGPT splitter 웹사이트 덕분에 논문의 내용을 쉽게 요약할 수 있습니다 (단, 수동으로 분할된 내용을 클릭해 붙여넣어야 합니다 :) ). 다음과 같이 진행해볼 수 있습니다.
-
PDF-to-text 변환기를 사용하여 논문 텍스트 및 내용을 변환합니다. 다음 웹사이트 중 하나를 방문해보세요.
-
변환된 텍스트 파일을 로컬 컴퓨터에
.txt
파일 형식으로 저장합니다 (.md
형태도 가능합니다). -
다음으로, ChatGPT splitter 웹사이트를 방문하고,
Upload file(s)
버튼을 클릭해줍니다 (또는Or paste your text
섹션에 텍스트 내용을 붙여넣을 수도 있습니다). -
Prompt
섹션에 다음 프롬프트를 붙여 넣어줍니다.Please, act as 'High-quality content abbreviator'. Since you have the input limits (OpenAI limited your input limit), you have to firstly take the all the inputs iteratively. To do this, I've already truncated the long inputs into each subpart. You'll now have to take the inputs iteratively. The important thing is that you should NOT answer directly or respond to the previous message. Make sure that you have to accomplish the task when all the inputs are given. I'll let you know if all the inputs are given.
-
Process
버튼을 클릭합니다! -
잘라진 텍스트는 여러 부분으로 분할됩니다.
Copy
버튼을 클릭하여 분할된 내용을 복사하고, ChatGPT에 반복적으로 붙여넣어야 합니다 (이 부분이 제일 힘든 단계입니다...) -
마지막 덩어리를 붙여넣으면, 다음과 같이 제가 준비한 최종 프롬프트 중 하나를 복사할 수 있습니다:
(1) 표 형태 출력
Now, all the inputs are given to you. You should combine and abbreviate all the inputs by fitting them into the following markdown format. The markdown format is as follows: ------ TEMPLATE STARTS ------ # **[TITLE]** (Bring the title from the foremost heading in the document. The powerful hint is that the title comes before the people who wrote the document.) ## **Introduction** ## **Methodology** ### **Apparatus** ### **Experimental procedure** ### **Computational procedure (if exists)** ### **Data analysis** ## **Results & discussion** ## **Conclusions** ## **Significance of this study** ## **Things to look out for in follow-up research** ### **Useful references to consider** ... ------ TEMPLATE ENDS ------ You have to write the outputs in a way that the readers can understand the contents easily. Don't forget to miss any important information from inputs. Detailed things that should be noticed would be included in the output (if possible, please bold them with `__BOLD__` or `**BOLD**` markdown marking for clear visibility). Consecutively, if possible, please find some useful references (including title and authors) from the Text or Markdown input file, and re-write them into `### Useful references to consider` subheader. Sort all these things into TABLE format; which will be efficient to understand what is what. Something like this: ```markdown | Sections | Abbreviated contents | | :----: | :----: | | __Title__ | [TITLE] | | __Introduction__ | [INTRODUCTION] | | __Methodology__ | [METHODOLOGY] | | __Experimental procedure__ | [EXPERIMENTAL PROCEDURE] | | __Computational procedure__ | [COMPUTATIONAL PROCEDURE] | | __Data analysis__ | [DATA ANALYSIS] | | __Results & discussion__ | [RESULTS & DISCUSSION] | | __Conclusions__ | [CONCLUSIONS] | | __Significance of this study__ | [SIGNIFICANCE OF THIS STUDY] | | __Things to look out for in follow-up research__ | [THINGS TO LOOK OUT FOR IN FOLLOW-UP RESEARCH] | | __Useful references to consider__ | [USEFUL REFERENCES TO CONSIDER] |
(2) 요약된 마크다운으로 출력
Now, all the inputs are given to you. You should combine and abbreviate all the inputs by fitting them into the following format. Note that you have to write the outputs __assuming you are making a paper sharing powerpoint presentation (ppt) for the audience__. You have to make audiences understand the content and methodology of this paper very well. Therefore, clearly abbreviate and express the important information only. Thank you for your consideration. ```markdown # **[TITLE]** (Bring the title from the foremost heading in the document. The powerful hint is that the title comes before the people who wrote the document.) ## **Introduction** ## **Methodology** ### **Apparatus** ### **Experimental procedure** ### **Computational procedure (if exists)** ### **Data analysis** ## **Results & discussion** ## **Conclusions** ## **Significance of this study** ## **Things to look out for in follow-up research** ### **Useful references to consider** ...
-
완료했습니다! 출력되는 멋진 결과를 지켜보세요! 🎉
더 많은 정보를 얻고 싶으시거나 피드백을 남기시고 싶으시면, 제 깃허브 링크 에 방문해주세요! 감사합니다.