随着数字化时代的到来,OCR(光学字符识别)技术在各行各业中的应用越来越广泛,如金融、医疗、教育等领域。然而,图片组成的PDF文件识别一直以来都是OCR技术的难点。腾讯云OCR技术凭借其领先的识别能力,可以快速准确地识别图片PDF文件。结合openai接口,我们可以将识别结果构建成知识库,为用户提供更高效便捷的服务。本文将以滴滴出行的行程单为例,展示腾讯云OCR技术在实际应用中的优势。
腾讯云OCR技术是一款基于深度学习的图像识别技术,具有以下核心功能和优势:
高精度识别:腾讯云OCR技术采用先进的深度学习算法,能够准确识别不同场景下的文字信息。
多语言支持:支持中文、英文、日文、韩文等多种语言的识别。
强大的PDF文件识别能力:腾讯云OCR技术能够应对图片PDF文件识别的挑战,准确提取图片中的文字信息。
通过腾讯云OCR技术,我们可以轻松地识别滴滴出行的行程单,获取其中的关键信息,如行程时间、起点、终点、金额等。
在使用腾讯云 AI 文字识别之前,通过腾讯云 OCR 登录 - 腾讯云 开通文字识别服务。
服务开通成功后,腾讯云AI文字识别赠送了免费的资源包,共享1000次的免费额度,可以在资源包管理页面查看资源包使用情况。
另外,还可以在 登录 - 腾讯云 开通后付费服务,这样就不用担心资源包耗尽导致调用接口失败了,但是后付费设置每月只能变更一次。
经过使用了解到所有文字识别服务的使用情况都可以在 登录 - 腾讯云 中查看使用信息,可以从下图看到统计出当前月份的调用情况、计费情况、成功数、成功率等。
在腾讯云访问管理的 登录 - 腾讯云,我们新建一个个人密钥。
复制生成的密钥,可以 登录 - 腾讯云 可直达。
可以在 登录 - 腾讯云 中选择文字识别服务—混贴票据识别—输入参数—选择需要的语言—即可生成对应语言的 API 调用代码。
一般开发python的IDE即可,主要是依赖包的安装
import json, PyPDF2, io, base64
from pdf2image import convert_from_path
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.ocr.v20181119 import ocr_client, models
from langchain import PromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
调用高精度版通用印刷体识别API,并处理文本内容。
代码如下:
def pdf_to_text(pdf_file):
# 读取PDF文件
pdf_reader = PyPDF2.PdfReader(pdf_file)
print(pdf_reader.pages)
num_pages = len(pdf_reader.pages)
# 实例化一个认证对象
SecretId = "XXXX"
SecretKey = " XXXX"
cred = credential.Credential(SecretId, SecretKey)
httpProfile = HttpProfile()
httpProfile.endpoint = "ocr.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = ocr_client.OcrClient(cred, "ap-shanghai", clientProfile)
# 处理每一页
result_text = []
for page_num in range(num_pages):
images = convert_from_path(pdf_file, first_page=page_num+1, last_page=page_num+1)
if images:
image = images[0]
buffer = io.BytesIO()
image.save(buffer, format='JPEG')
img_base64 = base64.b64encode(buffer.getvalue()).decode('utf-8')
req = models.GeneralAccurateOCRRequest()
params = {
"ImageBase64": img_base64
}
req.from_json_string(json.dumps(params))
try:
resp = client.GeneralAccurateOCR(req)
text = "\n".join([item.DetectedText for item in resp.TextDetections])
result_text.append(text)
except TencentCloudSDKException as err:
print(f"Error in page {page_num}: {err}")
return "\n".join(result_text)
运行脚本,获取如下处理结果:
借助langchain,快速构建通用请求OpenAI的方法,代码如下:
def req_chat(question, prompt):
llm = ChatOpenAI(openai_api_key=api_key, temperature=0.5, model_name='gpt-3.5-turbo')
chain = LLMChain(llm = llm, prompt = prompt)
return chain.run(question)
def gen_ret(pdf_text, prompt_template):
prompt = PromptTemplate(
input_variables=["text"],
template=prompt_template,
)
rep = req_chat(pdf_text, prompt)
return rep
根据4.1、4.2成果,构建总结prompt,实验返回结果。prompt及调用如下:
summarize_template = """
请总结下面三个反引号引起来的内容
```{text}```
"""
pdf_text = pdf_to_text(pdf_file)
print(gen_ret(pdf_text, summarize_template))
AI返回结果如下:
从结果来看,总结的很到位
根据4.1、4.2成果,构建总结prompt,实验返回结果。prompt及调用如下:
order_template = """
从下面三个反引号引起来的内容,提取订并输出一个表格
```{text}```
"""
pdf_text = pdf_to_text(pdf_file)
print(gen_ret(pdf_text, order_template))
AI返回结果如下:
从结果来看,提取指定信息也不在话下。
通过上面实践,发现腾讯云OCR技术在图片PDF文件识别方面具有显著优势,提供了高效便捷的服务。
通过这个服务,我们将原来没办法处理的文件,快速转变成文本文件、助力我们快速构建自己的私有知识库。如果你对本方案感兴趣,欢迎和我讨论
用过AIGC后发现,你越来越离不开它。AIGC的优势在于高效生产多样化的内容,节省时间成本。使用AIGC可以提升创造力,满足不同需求,加速内容创作,拓展创意边界,助力创新发展。
日常工作,积累了不少图片组成的PDF书籍,如何快速阅读、检索这些书籍,是一个了非常大的挑战。能顺利解决,对学习、工作效率提升很大。基于这些痛点,创作了本文。
1、介绍图片PDF问题及痛点
2、介绍腾讯云OCR技术
3、快速开通的方法
4、应用实践:基于大模型的总结及信息抽取
5、总结展望
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。