AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


LangChain大模型实战:图片结构化就这么简单
发布日期:2024-07-18 20:16:13 浏览次数: 2000


    前面的文章中,我们已经深入探讨了如何在Langchain框架中有效利用大型语言模型(LLM)、构建高效的Prompt模板。继此之后,本文将带领大家进一步探索这些工具的实践应用。以一张具体的入职说明图片为例,我将详细阐述如何从图片中提取文本信息、将这些文本进行结构化处理,并最终构建一个能够理解上下文的智能问答系统。整个过程都可以在配置一般的电脑上运行,让大家能实战起来。


环境搭建

实践会用到的安装包如下:

langchain==0.2.9 torch html2text paddlepaddle paddleocr

文本提取

我们使用paddleocr进行图片表格识别,这个过程会识别出格式信息和文本:

import cv2from paddleocr import PPStructure
table_engine = PPStructure(show_log=True, use_gpu=False, lang='ch')img_path = r'./2.jpg'img = cv2.imread(img_path)result = table_engine(img)html = result[0]['res']['html']print(len(html))# 2723

    提取的文本是html格式的,占据了很多无用的格式提示词,我们将它转为markdown格式,这样可以有效的减少输入长度:

import html2text
markdown = html2text.html2text(html)print(len(markdown))# 1051

定义模型

我们可以使用OpenAI的接口,模型构建代码为:

from langchain_openai import ChatOpenAIchat_model = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0.0)

也可以加载自己的模型,可参考RAG:Langchain中使用自己的LLM大模型

from langchain_huggingface import HuggingFacePipelinefrom langchain_huggingface import ChatHuggingFace
llm = HuggingFacePipeline.from_model_id(model_id="./Qwen/Qwen2-0.5B-Instruct",task="text-generation",pipeline_kwargs=dict(max_new_tokens=512,do_sample=False,),)
chat_model = ChatHuggingFace(llm=llm)

这样我们就构建好了自己的模型,后面的应用流程可以灵活配置。

要素提取

下面我们展示Qwen2-0.5B的例子,搭建LangChain问答pipeline:

from langchain_core.prompts import ChatPromptTemplate
# 创建Prompt模板chat_prompt_template = ChatPromptTemplate.from_messages([("system", "You are a helpful assistant"),("user", "根据表格内容回答下面问题:\n表格内容:\n{context}\nQuestion: {question}\nAnswer:")])
# 流程搭建chain = chat_prompt_template | chat_model.bind(skip_prompt=True)
# 问答运行res = chain.invoke({"context": markdown, "question": "姓名是什么?"})# res.content# 赵开心res = chain.invoke({"context": markdown, "question""婚姻状况?"})# res.content# 婚姻状况为未婚。

    由于0.5B的模型比较小,我们做要素问答效果比较好,如果想一次性提取,那么可以使用更大的模型。下篇文章将介绍怎么做一次性结构化提取,prompt该怎么写。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询