云南网站开发公司找哪家,网站弹出式链接后台怎么做,银川网站建设效果,公司制作网站价格不知道大家是否有这样的感觉#xff0c;上网浏览信息#xff0c;看到好的文章就兴奋地下载了下来#xff0c;文件的名称通常是一串奇奇怪怪的字符串。过了几天就在电脑中找不着了。没有网络上搜索不到的文章#xff0c;而是在你的电脑中却找不到它们。几年下来#xff0c;… 不知道大家是否有这样的感觉上网浏览信息看到好的文章就兴奋地下载了下来文件的名称通常是一串奇奇怪怪的字符串。过了几天就在电脑中找不着了。没有网络上搜索不到的文章而是在你的电脑中却找不到它们。几年下来辛辛苦苦收集的技术文档书籍成了电脑中的垃圾堆。一个治学严谨的信息收纳狂也许会迅速地整理自己的文件夹。更换文件名分门别类地存储下载文档。但是我不会。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_urlhttps://ark.cn-beijing.volces.com/api/v3,# 从环境变量中获取您的 API Keyapi_keyos.environ.get(0102f8a9-8727-4770-b67e-d289d4592343),
)
def Summary(Text,Prompt):response LLM_client.chat.completions.create(# 指定您创建的方舟推理接入点 ID此处已帮您修改为您的推理接入点 IDmodeldoubao-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)textnumberlen(reader.pages)if number10:number10for index in range(number):text reader.pages[index].extract_text()return text
def split_text(text, chunk_size500):return [text[i:ichunk_size] for i in range(0, len(text), chunk_size)]
Chroma_client PersistentClient()
text extract_text_from_pdf(./pythonBook1.pdf)
split_docsplit_text(text,120000)
print(Slipt_doc:,len(split_doc))
split_summary[]
index0
for doc in split_doc:print(index)indexindex1#print(doc)split_summary.append(Summary(doc,为一本书写一个推荐文章下面书中的前10页请摘录本书的主要内容写作的目的方法适合的读者保持简短扼要))
summary_text
for text in split_summary: summary_text text
print(len(summary_text))
SummaryTextSummary(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_urlhttps://ark.cn-beijing.volces.com/api/v3,# 从环境变量中获取您的 API Keyapi_keyos.environ.get(0102f8a9-8727-4770-b67e-d289d4592343),
)
def Summary(Text):Prompt为一篇文章写一个摘要(Abstract)并且提取文章的标题作者名称。如果没有提及作者设置为空字符串如果文章中包含了摘要就直接提取出来。否则请生成文章的摘要。输出Json 格式。格式为{Name:Papers Name,Author:Writers NameAbstract Papers Abstract}摘要 Abstract 以中文输出。response LLM_client.chat.completions.create(# 指定您创建的方舟推理接入点 ID此处已帮您修改为您的推理接入点 IDmodeldoubao-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)textfor page in reader.pages:text page.extract_text()return text
def split_text(text, chunk_size500):return [text[i:ichunk_size] for i in range(0, len(text), chunk_size)]
Chroma_client PersistentClient()
InputFilePath./DETC.2007-35530.pdf
text extract_text_from_pdf(InputFilePath)
SummaryTextSummary(text)
#print(SummaryText)
SummaryJsonjson.loads(SummaryText)
print(SummaryJson[Name])
print(SummaryJson[Author])
print(SummaryJson[Abstract])
FilePath./SummaryJson[Name]_Abstract.txt
OutputFilePath./SummaryJson[Name].pdf
with open(FilePath, w, encodingutf-8) as f:f.write(SummaryJson[Abstract])
os.rename(InputFilePath, OutputFilePath) 结论 与传统的程序设计不同编写AI 程序先要将事情搞明白然后讲明白。有点类似于给秘书交代工作。需要有解决问题的思路。为文档写一个简介看上去很简单的问题。实际上也有许多因素需要考虑。使用大模型整理下载的内容是十分有用的工具。