30行python代码就可以调用ChatGPT API总结论文的主要内容
Posted deephub
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30行python代码就可以调用ChatGPT API总结论文的主要内容相关的知识,希望对你有一定的参考价值。
阅读论文可以说是我们的日常工作之一,论文的数量太多,我们如何快速阅读归纳呢?自从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倍)我觉得不值,但是可以试试把论文的图表一同传过去,是不是会有更好效果(不确定)
https://avoid.overfit.cn/post/914a2ba7497f467798bed72208778ad8
a++和++a的区别
a++和++a的区别为:加1操作不同、操作期间a值不同、过程对象不同。
一、加1操作不同
1、a++:a++先执行加1操作。
2、++a:++a后执行加1操作。
二、过程对象不同
1、a++:a++的过程对象为a参数变量。
2、++a:++a的过程对象为a++表达式。
三、操作期间a值不同
1、a++:a++在操作期间的a值为原值。
2、++a:++a在操作期间的a值为原值+1。
举个例子:
1、a=1;b=a++;运算后:b=1,a=2。
2、a=1;b=++a;运算后:b=2,a=2。
以上是关于30行python代码就可以调用ChatGPT API总结论文的主要内容的主要内容,如果未能解决你的问题,请参考以下文章