当前位置:   article > 正文

30行python代码就可以调用ChatGPT API总结论文的主要内容_python+gpt写文献综述

python+gpt写文献综述

阅读论文可以说是我们的日常工作之一,论文的数量太多,我们如何快速阅读归纳呢?自从ChatGPT出现以后,有很多阅读论文的服务可以使用。其实使用ChatGPT API非常简单,我们只用30行python代码就可以在本地搭建一个自己的应用。

使用 Python 和 ChatGPT API 总结论文的步骤很简单:

  • 用于 PDF 处理的 PyPDF2 和用于与 GPT-3.5-turbo 接口的 OpenAI。
  • 使用 PyPDF2 打开并阅读 PDF 文件。
  • 遍历 PDF 文档中的每一页,提取文本。
  • 使用 GPT-3.5-turbo 为每个页面的文本生成摘要。
  • 合并摘要并将最终摘要文本保存到文件中。
 import PyPDF2
 import openai
 pdf_summary_text = ""
  • 1
  • 2
  • 3

解析pdf

 pdf_file_path = "./pdfs/paper.pdf"
 pdf_file = open(pdf_file_path, 'rb')
 pdf_reader = PyPDF2.PdfReader(pdf_file)
  • 1
  • 2
  • 3

获取每一页的文本:

 for page_num in range(len(pdf_reader.pages)):
     page_text = pdf_reader.pages[page_num].extract_text().lower()
  • 1
  • 2

使用openai的api进行汇总

 response = openai.ChatCompletion.create(
     model="gpt-3.5-turbo",
     messages=[
         {"role": "system", "content": "You are a helpful research assistant."},
         {"role": "user", "content": f"Summarize this: {page_text}"},
     ],
 )
 page_summary = response["choices"][0]["message"]["content"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

合并摘要

 pdf_summary_text += page_summary + "\n"
 pdf_summary_file = pdf_file_path.replace(os.path.splitext(pdf_file_path)[1], "_summary.txt")
 with open(pdf_summary_file, "w+") as file:
     file.write(pdf_summary_text)
  • 1
  • 2
  • 3
  • 4

搞定,关闭pdf文件,回收内存

 pdf_file.close()
  • 1

完整代码如下:

 import os
 import PyPDF2
 import re
 import openai
 
 # Here I assume you are on a Jupiter Notebook and download the paper directly from the URL
 !curl -o paper.pdf https://arxiv.org/pdf/2301.00810v3.pdf?utm_source=pocket_saves
 
 # Set the string that will contain the summary     
 pdf_summary_text = ""
 # Open the PDF file
 pdf_file_path = "paper.pdf"
 # Read the PDF file using PyPDF2
 pdf_file = open(pdf_file_path, 'rb')
 pdf_reader = PyPDF2.PdfReader(pdf_file)
 # Loop through all the pages in the PDF file
 for page_num in range(len(pdf_reader.pages)):
     # Extract the text from the page
     page_text = pdf_reader.pages[page_num].extract_text().lower()
     
     response = openai.ChatCompletion.create(
                     model="gpt-3.5-turbo",
                     messages=[
                         {"role": "system", "content": "You are a helpful research assistant."},
                         {"role": "user", "content": f"Summarize this: {page_text}"},
                             ],
                                 )
     page_summary = response["choices"][0]["message"]["content"]
     pdf_summary_text+=page_summary + "\n"
     pdf_summary_file = pdf_file_path.replace(os.path.splitext(pdf_file_path)[1], "_summary.txt")
     with open(pdf_summary_file, "w+") as file:
         file.write(pdf_summary_text)
 
 pdf_file.close()
 
 with open(pdf_summary_file, "r") as file:
     print(file.read())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

需要说明的是2个事情:

1、openai的API免费调用额度是有限的,这个方法一篇论文大概在0.2-0.5美元左右,根据论文长度会有变化

2、gpt4的API我没测试,因为我还没有申请到,并且看价格那个太贵了(贵20倍)我觉得不值,但是可以试试把论文的图表一同传过去,是不是会有更好效果(不确定)

https://avoid.overfit.cn/post/914a2ba7497f467798bed72208778ad8

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/970957
推荐阅读
相关标签
  

闽ICP备14008679号