以下场景,你可能遇到过:
- 新闻文章摘要生成
- 网络内容快速阅读助手
- 多段落文本的信息提炼
- 企业报告或政策文件的自动摘要
如果想要实现自动获取指定文本的摘要,通过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,适合小规模文

2537

被折叠的 条评论
为什么被折叠?



