Langchain - 实现网页文本自动摘要生成

以下场景,你可能遇到过:

  • 新闻文章摘要生成
  • 网络内容快速阅读助手
  • 多段落文本的信息提炼
  • 企业报告或政策文件的自动摘要

如果想要实现自动获取指定文本的摘要,通过Langchian结合AI大模型,该如何实现呢?

以下程序,通过多种方式实现了 单页网页文本的摘要功能

一.填充(Stuff) 方式 

该种方式简单地将文档连接成一个提示

示例:

功能流程:

1)网页内容
输入原始网页数据作为流程起点。

2)BS4提取正文
使用BeautifulSoup4库解析网页并提取核心文本内容,过滤无关标签(如广告、导航栏等)。

3)LLMChain构建提示+模型
将提取的文本输入语言模型链(LLMChain),结合预设提示模板生成结构化输入,调用大语言模型处理。

4)StuffDocumentsChain合并文档+生成摘要
通过文档合并链整合处理后的多段文本,生成最终摘要或分析结果。

5)打印输出结果
输出最终处理结果,可以是摘要、分析报告或其他指定格式。

1.加载配置并初始化大模型

import os
import bs4
from dotenv import load_dotenv
from langchain.chains.combine_documents.stuff import StuffDocumentsChain
from langchain.chains.llm import LLMChain
from langchain_community.document_loaders import WebBaseLoader
from langchain_core.prompts import  PromptTemplate
from langchain_openai import ChatOpenAI

load_dotenv()
llm = ChatOpenAI(
    model=os.getenv("MODEL"),
    api_key=os.getenv("OPENAI_API_KEY"),
    base_url=os.getenv("BASE_URL")
)

2.从网页加载内容并提取正文

使用 WebBaseLoader 从指定 URL 加载网页内容。
利用 BeautifulSoup 只提取 class 为 col col-1 fl 的部分,避免无关内容干扰。
docs 是一个包含网页正文内容的列表,每个元素是一个 Document 对象。

loader = WebBaseLoader(
    web_path=['http://finance.people.com.cn/n1/2025/0424/c1004-40466812.html'],
    bs_kwargs=dict(
        parse_only = bs4.SoupStrainer(class_=('col col-1 fl'))
    )
)

docs = loader.load()

3.构建提示模板

定义一个系统提示模板,告诉模型要对 {text} 内容进行摘要。
{text} 是占位符,将在运行时被实际文本替换。

prompt_template = """
针对下面的内容,写一个简洁的总结摘要:
"{text}"
简洁的总结摘要:
"""
prompt = PromptTemplate.from_template(prompt_template)

4.构建 LLM 链和文档处理链,并执行输出

使用 LLMChain 将提示模板和 LLM 组合成一个可执行的链。
使用 StuffDocumentsChain 把多个文档合并为一个字符串传入 LLM,适合小规模文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值