对于研究员、分析师、科学家、媒体工作者等职业来说,平常工作中需要进行大量的文本处理和智能分析。大语言模型的出现,让这一过程加速,用AI实现从复杂的非结构化和半结构化文档中,自动进行关键数据抽取和总结。
假设我们有大量的Word文档,每个文档都包含不同的内容,我们希望能够自动提取这些文档的内容,并生成相应的总结。本文就来深入探讨一下如何使用Python编程语言、python-docx库和百度千帆大模型平台的文本生成模型,将文档内容自动提取和总结,以满足这一需求。我们将逐步探讨整个过程,包括从Word文档中提取内容、将提取的内容发送给百度千帆大模型进行总结,以及如何优化和扩展这一流程。Let’s go!
前言
百度千帆大模型平台覆盖从数据管理、数据标注、模型开发、模型纳管、部署上线的AI能力研发与应用全生命周期建设和管理。接入文心大模型算法和开放第三方业内知名的模型算法,降低全流程AI开发门槛。
(千帆大模型平台控制台界面)
文本智能处理流程
第一步:Python环境配置&获取大模型API密钥
在开始之前,我们需要准备一些基本的工具和资源。首先,确保Python环境已经设置好,并安装了必要的库,包括requests和python-docx。同时我们需要在百度千帆大模型平台上注册并获取API密钥,用于对接百度千帆大模型的文本生成模型。
Python非常适合进行文本处理和自动化任务。为了运行我们的文档内容提取和总结代码,首先需要确保你的Python环境已经设置好。
安装Python
我们可以在Python官方网站上下载最新版本的Python。安装完成后,你可以通过在终端或命令提示符中运行以下命令来检查Python的版本,确保你使用的是Python 3.x 版本。
python --version |
创建虚拟环境
建议使用虚拟环境来隔离不同项目的依赖项。虚拟环境可以确保项目之间的依赖不冲突。在命令行中,使用以下命令创建一个新的虚拟环境:
python -m venv myenv |
接下来,激活虚拟环境:
-
在Linux或macOS上:
source myenv/bin/activate |
-
在Windows上:
myenv\Scripts\activate |
激活虚拟环境后,就可以在其中安装项目所需的依赖项了。
安装库
在虚拟环境中,使用以下命令安装所需的requests库:
pip install requests python-docx
我们要安装requests库,用于发送HTTP请求,以及安装python-docx库,用于处理Word文档。
获取百度千帆大模型 API密钥
Python环境配置好后,在百度千帆大模型开放平台上注册并获取API密钥。这将是连接到百度千帆大模型服务的凭证。我们需要将 API Key 和 Secret Key 保存在安全的地方,并在代码中使用它们进行身份验证。
第二步:提取文档内容
使用python-docx库读取Word文档
首先,我们准备一份 word 文档,填充一些内容。
为了展示,这里以《背影》为例。
然后我们需要编写Python代码来从Word文档中提取内容。我们使用python-docx库来处理Word文档。
from docx import Document
def extract_document_content(docx_path):
document = Document(docx_path)
content = ""for paragraph in document.paragraphs:
content += paragraph.text + "\n"return content
此段代码将打开指定的Word文档文件,并遍历文档中的所有段落,将其内容逐一提取并拼接成一个字符串。这个字符串会包含整个文档的内容。
构建总结请求
接下来,我们需要构建一个总结请求,其中包括从文档中提取的内容。这个请求将发送给百度千帆大模型的文本生成模型,以生成文档的总结。
# 构建总结文本
summary_request = "将文档内容总结一下:\n" + doc_content
我们再将提取的文档内容与一个简单的请求消息相结合,如“将文档内容总结一下”请求模型就会根据这个消息来生成总结了。
第三步:与百度千帆大模型集成
获取Access Token
在与百度千帆大模型的服务交互之前,我们需要获取一个Access Token,用于进行身份验证和授权。
import requests
import json
API_KEY = "你的API密钥"
SECRET_KEY = "你的API密钥的密钥"def get_access_token():
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
return str(requests.post(url, params=params).json().get("access_token"))
这段代码负责通过发送HTTP请求获取Access Token。你需要将你在百度千帆大模型开放平台上获得的API_KEY和SECRET_KEY替换成相应的值。
向百度千帆大模型发送总结请求
最后,我们需要将总结请求发送给百度千帆大模型的文本生成模型,以生成文档的总结。
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
payload = json.dumps({
"messages": [
{
"role": "user",
"content": summary_request
},
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
这一步我们构建了一个POST请求,将总结请求作为消息发送给百度千帆大模型的文本生成模型。这个模型就能根据请求生成文档的总结。
第四步:处理响应和结果
最后,我们需要处理从百度千帆大模型返回的响应,这个响应将包含生成的文档总结。
|
这段代码简单地将响应文本打印到控制台,以便查看生成的文档总结。我们可以看到下面这段结果了“这是一篇描述父亲背影的散文……”
最后我再贴一下完整的代码吧,供参考
from docx import Document
import requests
import json
API_KEY = "ss1SMdzO5fQsxEmApbAHbSt7"
SECRET_KEY = "rmhNcQHuKXKaIVNA5po48xURukGNq2qr"
def main():
# 从文档中提取内容
doc_content = extract_document_content('D:\\Python项目\\wendangtiqu\\背影.docx')
# 构建总结文本
summary_request = "将文档内容总结一下:\n" + doc_content
# 请求百度AI进行总结
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
payload = json.dumps({
"messages": [
{
"role": "user",
"content": summary_request
},
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
def extract_document_content(docx_path):
document = Document(docx_path)
content = ""
for paragraph in document.paragraphs:
content += paragraph.text + "\n"
return content
def get_access_token():
"""
使用 AK,SK 生成鉴权签名(Access Token)
:return: access_token,或是None(如果错误)
"""
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
return str(requests.post(url, params=params).json().get("access_token"))
if __name__ == '__main__':
main()
案例优化与扩展
本文所做的处理过程只是一个起点,大家可以进一步优化和扩展它以满足更多的文本处理需求:
- 多文档处理: 修改代码以处理多个文档,可以是一个文件夹中的多个文档,以批量生成总结。
- 多格式处理:处理多种文件类型,可以是TXT、Word、PDF、PPT等。
- 自动化工作流: 将这个流程自动化,以便定期处理文档并生成总结,无需手动干预。
- 更复杂的总结请求: 根据需要,构建更复杂的总结请求,以包括特定的总结要求,如关键词提取、重要段落识别等。
- 其他AI服务: 探索百度千帆大模型开放平台的其他服务,如自然语言处理、图像处理等,以扩展文本处理的功能。
如果大家有什么想看的处理过程,我们之后再尝试。
总结
通过这个完整的流程,我们可以实现自动提取和总结文档内容的过程。同时这个过程还可以通过进一步优化和扩展,满足各种文本处理需求,包括自动摘要、关键词提取等。百度千帆大模型的文本生成模型为这一过程提供了强大的支持,使文本智能处理变得更加容易和高效。
希望这篇博客对于理解如何使用Python和百度千帆大模型进行文本智能处理有所帮助。大家可以试着开始将这一流程应用到实际项目中,提高文本处理的效率和质量。
最近看到百度有新活动,10月17日,以“生成未来 (PROMPT THE WORLD)”为主题的Baidu World 2023将在北京首钢园举办。今天是倒计时7天
大模型改变世界,提示词 (PROMPT) 无处不在。现场,百度还将发布多款AI原生应用介绍大模型最新进展,分享如何通过AI原生思维,与企业、用户、以及合作伙伴一起,以PROMPT为始,共同抓住新机遇。有消息称当天会发布文心4.0版本,据说,此次文心4.0升级更大,尤其在逻辑推理、代码和数学等方面提升最明显。
大会当天还将举行面向企业、开发者、合作伙伴、投资人的分论坛,设置前沿AI互动体验区,全面展现百度最新成果,现在启动了社会报名,当天直播也可以观看。
给大家指个路:百度世界大会2023