如何用AI 生成論文/書籍的摘要

?????????不知道大家是否有這樣的感覺,上網瀏覽信息,看到好的文章就興奮地下載了下來,文件的名稱通常是一串奇奇怪怪的字符串。過了幾天就在電腦中找不著了。沒有網絡上搜索不到的文章,而是在你的電腦中卻找不到它們。幾年下來,辛辛苦苦收集的技術文檔,書籍成了電腦中的垃圾堆。一個治學嚴謹的信息收納狂也許會迅速地整理自己的文件夾。更換文件名,分門別類地存儲下載文檔。但是我不會。AI 出現后,是否能幫我做個電腦文件整理助手呢?我一直想做這件事情。這幾天有空,就嘗試寫一個python小程序。

麻煩存在于細節中

許多事情想想容易,一動手就發現問題沒想象的簡單。下載的文檔包括下面幾種

  • 論文

? ?網絡上下載的論文比較簡單,它在開頭包含了一個摘要,只要通過AI 大模型提取出來就可以了。我使用豆包doubao-1-5-pro-32k 最大輸入文字長度128K。普通的論文都能全部輸入。

  • 書籍

書籍的長度比較大,通常有幾百頁。也沒有書籍摘要,為了寫出圖書介紹,可以采取兩種方式,一種方式是將圖書分段(chunk_size) 逐段提取重要的內容,然后合并起來,寫摘要。另一種方法是提取前10頁的內容,做圖書的介紹,因為通常圖書的前幾頁包括了前言,目錄等,前言中作者會重點介紹圖書的主要內容,適合的讀者和如何閱讀這本書。 我嘗試了一下,好像第二種方法效果更好一點。

  • 普通的文章

? ? 普通的文章,如果不超過大模型輸入的限制,就直接丟給它,請他去歸納總結。對于超長的文章,可以分段提取段落大意,然后在總結出文章的摘要。

代碼

圖書寫簡介

from chromadb import PersistentClient
from PyPDF2 import PdfReader
from openai import OpenAI
import osos.environ['OPENAI_API_KEY'] ="your API Key"
os.environ['OPENAI_BASE_URL'] ="https://ark.cn-beijing.volces.com/api/v3"
LLM_client = OpenAI(# 此為默認路徑,您可根據業務所在地域進行配置base_url="https://ark.cn-beijing.volces.com/api/v3",# 從環境變量中獲取您的 API Keyapi_key=os.environ.get("0102f8a9-8727-4770-b67e-d289d4592343"),
)
def Summary(Text,Prompt):response = LLM_client.chat.completions.create(# 指定您創建的方舟推理接入點 ID,此處已幫您修改為您的推理接入點 IDmodel="doubao-1-5-pro-32k-250115",messages=[{"role": "system", "content": Prompt},{"role": "user", "content": Text}])response_message = response.choices[0].message.contentreturn response_message
def extract_text_from_pdf(pdf_path):with open(pdf_path, 'rb') as file:reader = PdfReader(file)text=""number=len(reader.pages)if number>10:number=10for index in range(number):text += reader.pages[index].extract_text()return text
def split_text(text, chunk_size=500):return [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]
Chroma_client = PersistentClient()
text = extract_text_from_pdf("./pythonBook1.pdf")
split_doc=split_text(text,120000)
print("Slipt_doc:",len(split_doc))
split_summary=[]
index=0
for doc in split_doc:print(index)index=index+1#print(doc)split_summary.append(Summary(doc,"為一本書寫一個推薦文章,下面書中的前10頁,請摘錄本書的主要內容,寫作的目的,方法,適合的讀者,保持簡短扼要"))
summary_text=""    
for text in  split_summary:   summary_text += text
print(len(summary_text))
SummaryText=Summary(summary_text,"這是一本書中前10頁的分段摘錄,請依此為依據,這本書生成一個推薦文章,以中文輸出")
print(SummaryText)

論文提取摘要

from chromadb import PersistentClient
from PyPDF2 import PdfReader
from openai import OpenAI
import os
import json
os.environ['OPENAI_API_KEY'] ="your API Key"
os.environ['OPENAI_BASE_URL'] ="https://ark.cn-beijing.volces.com/api/v3"
LLM_client = OpenAI(# 此為默認路徑,您可根據業務所在地域進行配置base_url="https://ark.cn-beijing.volces.com/api/v3",# 從環境變量中獲取您的 API Keyapi_key=os.environ.get("0102f8a9-8727-4770-b67e-d289d4592343"),
)
def Summary(Text):Prompt="""為一篇文章寫一個摘要(Abstract),并且提取文章的標題,作者名稱。如果沒有提及作者,設置為空字符串如果文章中包含了摘要,就直接提取出來。否則,請生成文章的摘要。輸出Json 格式。格式為:{"Name":Paper's Name,"Author":Writer's Name"Abstract" Paper's Abstract}摘要 Abstract 以中文輸出。"""response = LLM_client.chat.completions.create(# 指定您創建的方舟推理接入點 ID,此處已幫您修改為您的推理接入點 IDmodel="doubao-1-5-pro-32k-250115",messages=[{"role": "system", "content": Prompt},{"role": "user", "content": Text}])response_message = response.choices[0].message.contentreturn response_message
def extract_text_from_pdf(pdf_path):with open(pdf_path, 'rb') as file:reader = PdfReader(file)text=""for page in reader.pages:text += page.extract_text()return text
def split_text(text, chunk_size=500):return [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]
Chroma_client = PersistentClient()
InputFilePath="./DETC.2007-35530.pdf"
text = extract_text_from_pdf(InputFilePath)
SummaryText=Summary(text)
#print(SummaryText)
SummaryJson=json.loads(SummaryText)
print(SummaryJson["Name"])
print(SummaryJson["Author"])
print(SummaryJson["Abstract"])
FilePath="./"+SummaryJson["Name"]+"_Abstract.txt"
OutputFilePath="./"+SummaryJson["Name"]+".pdf"
with open(FilePath, "w", encoding="utf-8") as f:f.write(SummaryJson["Abstract"])
os.rename(InputFilePath, OutputFilePath)  

結論

????????與傳統的程序設計不同,編寫AI 程序先要將事情搞明白,然后講明白。有點類似于給秘書交代工作。需要有解決問題的思路。為文檔寫一個簡介,看上去很簡單的問題。實際上也有許多因素需要考慮。使用大模型整理下載的內容是十分有用的工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915092.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu系統+N卡 | docker compose+ollama+dify(dify和ollama在同一容器)

1、安裝NVIDIA驅動 2、安裝docker,docker compose 3、安裝NVIDIA Container Toolkit Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit(僅 GPU 場景需要) # Configure the production repository: curl -fsSL https://…

實習手記:基于大模型的搜索引擎開發實踐

初入團隊:從理論到實踐的跨越五月份開始,我懷著忐忑又期待的心情以線上的方式加入了公司AI研發中心的搜索引擎優化小組。作為一名數據科學與大數據技術專業的學生,這是我第一次參與工業級AI項目的開發,團隊的任務是構建一個基于大…

用Python實現神經網絡(二)

#Overfitting是機器學習的主要問題。下面我們來看一下過擬合現像:import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mplimport tensorflow as tffrom scipy.optimize import curve_fit# Generic matplotlib parameters for plots and figure…

數據結構入門 (二):掙脫連續空間的束縛 —— 單向鏈表詳解

TOC(目錄) 引言:整齊的代價 在上一篇文章中,我們一起探索了數據結構大家族的第一位成員——順序表。我們了解到,順序表作為一種線性結構,其最大的特點在于邏輯順序與物理順序的一致性,即元素之間不僅存在邏輯上的前后關…

AI-視頻一致性與多幀控制在AIGC中的技術挑戰與突破!

全文目錄:開篇語前言1. 視頻中人物一致性建模的難點與現有解決方案**人物一致性建模的挑戰****現有解決方案****案例代碼:基于姿態估計的多幀一致性保持**2. 光照/紋理/姿態跨幀保持方法剖析**跨幀光照與紋理一致性****跨幀姿態一致性**3. 幀間插值與關鍵…

基于Qwen2.5-3B-Instruct的LoRA微調與推理實戰指南

前言 大語言模型(LLM)的微調是當前AI領域的熱門話題,而參數高效微調方法(如LoRA)因其低成本和高效率備受關注。本文將手把手教你如何使用Qwen2.5-3B-Instruct模型進行LoRA微調,并構建完整的推理流程。 一、環境準備 1.1 硬件要求 ? GPU: 至少16GB顯存(如…

電腦插上u盤不顯示怎么回事

對于經常使用電腦的用戶來說,U盤是一種再熟悉不過的存儲工具。不管是拷貝資料、備份文件,還是制作啟動盤,U盤都發揮著重要作用。然而,有時候你可能會遇到這樣的情況:“U盤插上電腦,燈亮了,但電腦…

2025年6月GESP(C++二級): 冪和數

2025年6月GESP(C++二級): 冪和數 題目描述 對于正整數 n n n,如果 n n n 可以表為兩個

Windows、macOS、liunx下使用qemu搭建riscv64/linux

背景 在Windows、macOS和Linux環境下使用QEMU搭建RISC-V 64位Linux系統,網絡上存在大量過時、不完整或錯誤的教程。且部分AI生成的內容“幻覺”現象嚴重,導致關鍵步驟錯誤且難以進行。為確保可靠性,本教程基于最新實測驗證,涵蓋三…

簡單使用MCP

1、說明# 測試環境服務器 CPU數量:2核 內存:4GB 磁盤:50GB# 補充 如果不想使用Docker進行操作,只需要跳過Docker相關命令操作 即:使用Ollama運行模型,使用Python來創建MCP2、安裝Docker# 安裝Docker https:…

電腦裝機軟件一鍵安裝管理器

軟件使用 現在的裝機軟件很多,主要幾種類型就是辦公、看圖、影音、下載等,如果每次裝機之后,手動一個一個去安裝,費時費力還容易安裝到全家桶。 就有人整理了網絡上常用的一系列裝機軟件純凈和諧版本,并打包到一起&a…

深度學習入門-深度學習簡介

深度學習是加深了層的深度神經網絡。只需通過疊加層,就可以創建深度網絡。1、 加深網絡將深度學習中的重要技術(構成神經網絡的各種層、學習時的有效技巧、對圖像特別有效的CNN、參數的最優化方法等)匯總起來,創建一個深度網絡&am…

Linux 下安裝DM8數據庫詳細教程

Linux 下安裝DM8數據庫詳細教程 一、環境準備 1.操作系統要求 DM 數據庫支持多種操作系統,如 Windows、Linux 等。對于 Linux 系統,確保內核版本符合要求,例如 CentOS 7 或更高版本。同時,要保證系統有足夠的磁盤空間(建議至少 10GB 以上)和內存(至少 1GB 以上)。 對…

搭建基于Gitee文檔筆記自動發布

搭建基于Gitee文檔筆記自動發布由于現在gitee不支持代理靜態頁面,并且github.io需要VPN,實際使用的話gitee更為方便。一、為服務器和個人PC添加免密push和pull 參考鏈接:https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE…

【Lua】閉包可能會導致的變量問題

先思考下面這個問題:local function counter()local count 0return function()count count 1return countend endlocal a counter() local b counter()print(a()) --> ? print(a()) --> ? print(b()) --> ? print(a()) --> ?輸出結果&#xff…

可觀測性、OpenTracing、OpenCensus、OpenTelemetry、Jaeger

監控與觀測 隨著軟件應用從單片架構向分布式微服務體系轉變,應用監控(Monitoring)和觀測(Observability)的需求也隨之提升。兩者存在相同的定義,目的都是為了發現應用程序中的問題。但還是有差別: 監控:目的是為了捕獲已知的問題…

Linux下使用原始socket收發數據包

在Linux系統中,使用非原始的socket,可以收發TCP或者UDP等網絡層數據包。如果要處理網絡層以下的數據包,比如ICMP、ARP等,或者更底層,比如鏈路層數據包,就得使用原始socket了。 創建socket 創建socket要使用…

暑期自學嵌入式——Day05補充(C語言階段)

接續上文:暑期自學嵌入式——Day05(C語言階段)-CSDN博客 主頁點關注不迷路喲。你的點贊、收藏,一鍵三連,是我持續更新的動力喲!!! 主頁: 一位搞嵌入式的 genius-CSDN博…

.NET Core EFCore零基礎快速入門簡單使用

一、什么是 Entity Framework (EF) Core Entity Framework (EF) Core 是輕量化、可擴展和跨平臺版的對象關系映射程序 (O/RM)數據訪問技術,。 它將開發人員從編寫大量 SQL 語句中解放出來。 二、EF的相關程序包 Microsoft.EntityFrameworkCore 核心程序包&#x…

AAC音頻格式

目錄 AAC音頻格式介紹 主要特點 技術優勢 常見文件擴展名 應用領域 AAC與PCM的區別與優勢對比 基本概念差異 主要技術區別 各自優勢 PCM的優勢 AAC的優勢 應用場景選擇 AAC音頻數據格式解析 1. AAC 文件格式 (1) ADIF (Audio Data Interchange Format) (2) ADT…