30行Python代码就可以调用ChatGPT

发表于:2023-3-29 09:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:DeepHub IMBA

  阅读论文可以说是我们的日常工作之一,论文的数量太多,我们如何快速阅读归纳呢?自从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 = ""
  解析pdf
  pdf_file_path = "./pdfs/paper.pdf"
   pdf_file = open(pdf_file_path, 'rb')
   pdf_reader = PyPDF2.PdfReader(pdf_file)
  获取每一页的文本:
  for page_num in range(len(pdf_reader.pages)):
      page_text = pdf_reader.pages[page_num].extract_text().lower()
  使用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"]
  合并摘要:
  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文件,回收内存:
  pdf_file.close()
  完整代码如下:
  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())
  需要说明的是2个事情:
  1、openai的API免费调用额度是有限的,这个方法一篇论文大概在0.2-0.5美元左右,根据论文长度会有变化。
  2、gpt4的API我没测试,因为我还没有申请到,并且看价格那个太贵了(贵20倍)我觉得不值,但是可以试试把论文的图表一同传过去,是不是会有更好效果(不确定)。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号