使用 Langchain、OpenAI 和 Streamlit 构建自己的人工智能文本摘要器
在当今快速演变的数字环境中,快速高效地浓缩大量文本的能力极具价值。本指南将引导您运用现代技术——OpenAI、Langchain和Streamlit——创建专属文本摘要工具。无论您是开发者、学生还是商务人士,此工具都能助您优化工作流程,深化对书面信息的理解。
核心要点
运用OpenAI、Langchain和Streamlit开发文本摘要应用
运用GPT 3.5语言模型实现高效摘要处理
运用Streamlit构建直观易用的网页界面。
整合Langchain社区工具优化摘要工作流。
理解文本分段对AI模型处理至关重要的原因。
将最终应用部署至Streamlit社区云平台,实现便捷访问与共享。
集成自动清除API密钥功能,提升安全性。
文本摘要应用开发
技术栈解析
要构建功能完善的文本摘要应用,扎实掌握技术栈至关重要。让我们详细解析每个组件:

- Streamlit:作为网页界面的基础框架,Streamlit提供简洁灵活的Python交互式应用开发方案。其用户友好特性支持快速原型构建与部署。
- Langchain:该框架简化了基于大型语言模型(LLM)的应用开发流程,包含文档处理、文本分割及摘要生成的专用模块。
- OpenAI:提供核心LLM引擎(具体为GPT 3.5),负责评估输入文本并生成精炼摘要。
- Tiktoken:Tiktoken通过将文本分割为小型片段,实现OpenAI模型的高效利用,使LLM能够轻松处理文本数据。
通过整合这些技术,您只需极少编码工作即可构建可靠且易用的文本摘要工具。
文本摘要生成流程
以下是文本摘要流程的分步解析:

- 输入文本:用户提供待摘要的文本内容,可以是文档、文章或其他书面材料。
- 字符文本分割器:输入文本通过 Langchain 的
CharacterTextSplitter。这是有效管理文本的关键步骤。大量文本会给AI模型带来负担,分割后可确保流畅处理。 - 分块处理:文本分割器将输入内容拆分为可处理的块状单元,同时保留字符边界以维持上下文关联性。
- 文档生成:每个文本分块被转换为Langchain
Document 对象,该对象能与Langchain的摘要功能无缝协作。 - LLM交互:
load_summarize_chain 该函数调用OpenAI LLM生成每份文档的精炼摘要,简化了与语言模型的交互流程。 - 摘要文本:最终产出的是原始文本的精简版本,以紧凑形式保留关键细节。通过调用LLM能力,将文本转化为简明扼要却信息丰富的摘要。
为什么分块对AI模型至关重要?
分块是关键步骤,因为它使AI模型能够处理更小、更易操作的信息单元。

该方法降低了文本摘要的认知与计算需求。AI模型处理小规模聚焦片段时效率更高,通常能提升性能与精度。将长文本拆解为易消化的部分,也有助于模型保持上下文关联,并聚焦于每个片段中最相关的信息。
下表阐释了为提升准确性而拆分文本的必要性:
代码实现细节
导入库文件
开发应用的首要步骤是导入所需库:Streamlit、Langchain、OpenAI和Tiktoken。

导入语法如下:
import streamlit as stfrom langchain.docstore.document import Documentfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.chains.summarize import load_summarize_chainfrom langchain.llms import OpenAI
创建 generate_response 函数
应用程序的核心是 generate_response 该函数接收用户输入文本并管理摘要生成流程。它将初始化OpenAI模型,拆分输入内容,创建文档对象,并调用 load_summarize_chain 生成最终摘要。

代码如下:
def generate_response(txt):llm = OpenAI(temperature=0.7, openai_api_key=openai_api_key)text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_text(txt)docs = [Document(page_content=t) for t in texts]chain = load_summarize_chain(llm, chain_type="map_reduce", verbose=False)output_summary = chain.run(docs)return output_summary
- 实例化LLM:使用选定的温度参数和用户API密钥初始化OpenAI语言模型。温度参数影响输出内容的创造性程度。
- 文本分割:使用
CharacterTextSplitter。此操作确保文本分段保持在模型适宜的处理规模。 - 创建文档:将每个文本分段转换为
Document 对象,这是Langchain的标准输入类型。 - 加载摘要链:
load_summarize_chain 函数创建摘要链,其配置基于语言模型和首选摘要方法。 - 运行链:摘要链通过
run 方法执行,该方法处理文档并生成摘要。 - 返回输出:摘要文本作为函数结果返回。
构建 Streamlit 网页界面
Streamlit可轻松构建网页界面,包含以下组件:
- 页面配置用于设置标题。
- 文本输入框:用户可在此输入待摘要文本。
- 用于安全接收用户OpenAI API密钥的表单。
- 提交按钮,用于启动摘要处理流程。
- 结果区域,用于展示摘要输出内容。
st.set_page_config(page_title="文本摘要应用")st.title("Text Summarization App")text_input = st.text_area("Enter your text here:", height=200)with st.form('myform', clear_on_submit=True):openai_api_key = st.text_input('OpenAI API Key', type = 'password', disabled=not(openai_api_key_startwith_check))submitted = st.form_submit_button('Submit')if submitted and openai_api_key:with st.spinner('Calculating...'):raw_response = generate_response(text_input)try:st.info(raw_response)except Exception as e:st.error(e)st.subheader("How to get an OpenAI API key:")st.markdown("To use this app, you will need an OpenAI API Key. You can create a secret keyhere: ")st.markdown("[OpenAI API Keys](https://platform.openai.com/api-keys)")
文本摘要应用使用指南
文本摘要分步指南
使用文本摘要应用非常简单,只需几个步骤:
- 输入文本:将需要摘要的文本复制粘贴至输入框。可处理内容包括书籍节选、新闻报道或长篇邮件。
- 输入OpenAI API密钥:提供您的OpenAI API密钥以验证对OpenAI语言模型的请求。

出于安全考虑,请求处理完成后输入框将自动清除API密钥。
- 提交:点击提交按钮启动摘要处理。
- 查看摘要文本:处理完成后,应用将显示对原始文本的清晰简洁摘要。
优缺点
优点
使阅读和吸收信息更轻松。
通过提供精炼内容减轻大脑负担。
通过快速摘要提升工作效率。
提升对复杂或长篇文本的理解能力。
缺点
需持有OpenAI API密钥并能访问其服务。
摘要过程中可能出现不准确或丢失细微细节的情况。
摘要模型自定义选项受限。
为保障安全,每次会话后必须清除API密钥。
常见问题
什么是文本摘要?
文本摘要是指在保留最重要信息的前提下缩短长篇文本的过程。
分块在文本摘要中为何重要?
分块通过将文本拆解为更小、更聚焦的片段,帮助AI模型更高效地处理长文本——既提升准确性又降低处理需求。
API密钥如何提升安全性?
使用后清除API密钥可防止敏感认证信息被存储或滥用。
如何使用GitHub仓库?
请遵循提供的说明克隆仓库,添加您的OpenAI API密钥,即可开始摘要您选择的内容。
整个流程需要多长时间?
从配置到摘要生成的整个过程通常耗时不足10分钟。
相关问题
能否使用OpenAI以外的语言模型?
可以,文本摘要应用可适配其他语言模型。您需要更新代码以连接替代模型的API,并根据需要调整文本处理步骤。请注意不同模型可能存在独特的输入要求或性能特征。
相关文章
马斯克承认 Grok 构建过程中泄露了用户代码,并承诺清除所有历史数据
埃隆·马斯克直接回应了围绕 Grok Build 的隐私争议,首先以简单的“True”(属实)确认了该事件的有效性。他承诺,此前上传至 SpaceXAI 的所有用户数据将被永久删除,并表示“不留一个字节”。这是人工智能行业首次由主要科技领袖公开承认错误并主动删除用户数据。安全研究人员的“钓鱼”测试揭示了数据泄露的具体证据此次争议源于独立人工智能安全研究人员 @cereblab 的一份报告。SpaceXAI 推出的 AI 编程助手 Grok Build 在其官方网站上声称其“优先本地运行,代码
美国股市触及历史里程碑,人工智能与航空航天巨头准备开启万亿美元时代
埃隆·马斯克、山姆·阿尔特曼和达里奥·阿莫迪,这三位科技领域的巨头,正推动其各自的企业迈向首次公开募股(IPO)。随着 SpaceX、OpenAI 和 Anthropic——这三家估值接近万亿美元的行业巨头——即将上市,2026 年被预测将成为美国历史上新股发行规模最大的一年。这一历史性的资本激增已引起全球金融界的关注,成为检验公共市场吸收如此大规模资金能力的关键压力测试。这些主要融资活动的同步启动预计将打破 2021 年创下的 1560 亿美元纪录。超级独角兽的资本博弈每家公司上市的路径
瑞典人工智能初创公司Lovable Eyes在完成主要融资轮后估值达132亿美元
随着人工智能驱动的编码工具日益普及,瑞典初创公司 Lovable 已获一轮重大融资。该公司计划筹集 30 亿美元,其估值有望升至 132 亿美元——这是去年 12 月记录的 66 亿美元的两倍。预计 Menlo Ventures 将主导此次投资。Lovable 的吸引力源于其核心的“氛围编码”(vibe coding)技术,该技术通过消除对复杂编码技能的需求来简化软件开发。用户只需以自然语言描述其需求,系统即可自动生成应用程序。这种直观的方法吸引了个人开发者、设计师和小企业,并扩展至 Work
相关专题推荐
评论 (2)
0/500
この記事を読んで、自分でもAI要約ツールを作ってみたくなりました。特にLangchainの使い方が分かりやすく説明されていて助かります。ただ、OpenAIのAPIコストが気になるな…ローカルで動く軽量モデルを使ったバージョンも紹介してほしいです。🤔
Klasse! Endlich mal eine praktische Anwendung statt nur Theorie. Die Kombination aus Langchain und Streamlit klingt vielversprechend für Prototypen. Ich frage mich, wie gut das bei sehr speziellen Fachtexten funktioniert. Würde mir wünschen, dass so Tools auch für andere Sprachen als Englisch optimiert werden. Hat jemand schon Erfahrungen damit gemacht? 😊
在当今快速演变的数字环境中,快速高效地浓缩大量文本的能力极具价值。本指南将引导您运用现代技术——OpenAI、Langchain和Streamlit——创建专属文本摘要工具。无论您是开发者、学生还是商务人士,此工具都能助您优化工作流程,深化对书面信息的理解。
核心要点
运用OpenAI、Langchain和Streamlit开发文本摘要应用
运用GPT 3.5语言模型实现高效摘要处理
运用Streamlit构建直观易用的网页界面。
整合Langchain社区工具优化摘要工作流。
理解文本分段对AI模型处理至关重要的原因。
将最终应用部署至Streamlit社区云平台,实现便捷访问与共享。
集成自动清除API密钥功能,提升安全性。
文本摘要应用开发
技术栈解析
要构建功能完善的文本摘要应用,扎实掌握技术栈至关重要。让我们详细解析每个组件:

- Streamlit:作为网页界面的基础框架,Streamlit提供简洁灵活的Python交互式应用开发方案。其用户友好特性支持快速原型构建与部署。
- Langchain:该框架简化了基于大型语言模型(LLM)的应用开发流程,包含文档处理、文本分割及摘要生成的专用模块。
- OpenAI:提供核心LLM引擎(具体为GPT 3.5),负责评估输入文本并生成精炼摘要。
- Tiktoken:Tiktoken通过将文本分割为小型片段,实现OpenAI模型的高效利用,使LLM能够轻松处理文本数据。
通过整合这些技术,您只需极少编码工作即可构建可靠且易用的文本摘要工具。
文本摘要生成流程
以下是文本摘要流程的分步解析:

- 输入文本:用户提供待摘要的文本内容,可以是文档、文章或其他书面材料。
- 字符文本分割器:输入文本通过 Langchain 的
CharacterTextSplitter。这是有效管理文本的关键步骤。大量文本会给AI模型带来负担,分割后可确保流畅处理。 - 分块处理:文本分割器将输入内容拆分为可处理的块状单元,同时保留字符边界以维持上下文关联性。
- 文档生成:每个文本分块被转换为Langchain
Document对象,该对象能与Langchain的摘要功能无缝协作。 - LLM交互:
load_summarize_chain该函数调用OpenAI LLM生成每份文档的精炼摘要,简化了与语言模型的交互流程。 - 摘要文本:最终产出的是原始文本的精简版本,以紧凑形式保留关键细节。通过调用LLM能力,将文本转化为简明扼要却信息丰富的摘要。
为什么分块对AI模型至关重要?
分块是关键步骤,因为它使AI模型能够处理更小、更易操作的信息单元。

该方法降低了文本摘要的认知与计算需求。AI模型处理小规模聚焦片段时效率更高,通常能提升性能与精度。将长文本拆解为易消化的部分,也有助于模型保持上下文关联,并聚焦于每个片段中最相关的信息。
下表阐释了为提升准确性而拆分文本的必要性:
代码实现细节
导入库文件
开发应用的首要步骤是导入所需库:Streamlit、Langchain、OpenAI和Tiktoken。

导入语法如下:
import streamlit as stfrom langchain.docstore.document import Documentfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.chains.summarize import load_summarize_chainfrom langchain.llms import OpenAI
创建 generate_response 函数
应用程序的核心是 generate_response 该函数接收用户输入文本并管理摘要生成流程。它将初始化OpenAI模型,拆分输入内容,创建文档对象,并调用 load_summarize_chain 生成最终摘要。

代码如下:
def generate_response(txt):llm = OpenAI(temperature=0.7, openai_api_key=openai_api_key)text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_text(txt)docs = [Document(page_content=t) for t in texts]chain = load_summarize_chain(llm, chain_type="map_reduce", verbose=False)output_summary = chain.run(docs)return output_summary
- 实例化LLM:使用选定的温度参数和用户API密钥初始化OpenAI语言模型。温度参数影响输出内容的创造性程度。
- 文本分割:使用
CharacterTextSplitter。此操作确保文本分段保持在模型适宜的处理规模。 - 创建文档:将每个文本分段转换为
Document对象,这是Langchain的标准输入类型。 - 加载摘要链:
load_summarize_chain函数创建摘要链,其配置基于语言模型和首选摘要方法。 - 运行链:摘要链通过
run方法执行,该方法处理文档并生成摘要。 - 返回输出:摘要文本作为函数结果返回。
构建 Streamlit 网页界面
Streamlit可轻松构建网页界面,包含以下组件:
- 页面配置用于设置标题。
- 文本输入框:用户可在此输入待摘要文本。
- 用于安全接收用户OpenAI API密钥的表单。
- 提交按钮,用于启动摘要处理流程。
- 结果区域,用于展示摘要输出内容。
st.set_page_config(page_title="文本摘要应用")st.title("Text Summarization App")text_input = st.text_area("Enter your text here:", height=200)with st.form('myform', clear_on_submit=True):openai_api_key = st.text_input('OpenAI API Key', type = 'password', disabled=not(openai_api_key_startwith_check))submitted = st.form_submit_button('Submit')if submitted and openai_api_key:with st.spinner('Calculating...'):raw_response = generate_response(text_input)try:st.info(raw_response)except Exception as e:st.error(e)st.subheader("How to get an OpenAI API key:")st.markdown("To use this app, you will need an OpenAI API Key. You can create a secret keyhere: ")st.markdown("[OpenAI API Keys](https://platform.openai.com/api-keys)")
文本摘要应用使用指南
文本摘要分步指南
使用文本摘要应用非常简单,只需几个步骤:
- 输入文本:将需要摘要的文本复制粘贴至输入框。可处理内容包括书籍节选、新闻报道或长篇邮件。
- 输入OpenAI API密钥:提供您的OpenAI API密钥以验证对OpenAI语言模型的请求。

出于安全考虑,请求处理完成后输入框将自动清除API密钥。
- 提交:点击提交按钮启动摘要处理。
- 查看摘要文本:处理完成后,应用将显示对原始文本的清晰简洁摘要。
优缺点
优点
使阅读和吸收信息更轻松。
通过提供精炼内容减轻大脑负担。
通过快速摘要提升工作效率。
提升对复杂或长篇文本的理解能力。
缺点
需持有OpenAI API密钥并能访问其服务。
摘要过程中可能出现不准确或丢失细微细节的情况。
摘要模型自定义选项受限。
为保障安全,每次会话后必须清除API密钥。
常见问题
什么是文本摘要?
文本摘要是指在保留最重要信息的前提下缩短长篇文本的过程。
分块在文本摘要中为何重要?
分块通过将文本拆解为更小、更聚焦的片段,帮助AI模型更高效地处理长文本——既提升准确性又降低处理需求。
API密钥如何提升安全性?
使用后清除API密钥可防止敏感认证信息被存储或滥用。
如何使用GitHub仓库?
请遵循提供的说明克隆仓库,添加您的OpenAI API密钥,即可开始摘要您选择的内容。
整个流程需要多长时间?
从配置到摘要生成的整个过程通常耗时不足10分钟。
相关问题
能否使用OpenAI以外的语言模型?
可以,文本摘要应用可适配其他语言模型。您需要更新代码以连接替代模型的API,并根据需要调整文本处理步骤。请注意不同模型可能存在独特的输入要求或性能特征。
马斯克承认 Grok 构建过程中泄露了用户代码,并承诺清除所有历史数据
埃隆·马斯克直接回应了围绕 Grok Build 的隐私争议,首先以简单的“True”(属实)确认了该事件的有效性。他承诺,此前上传至 SpaceXAI 的所有用户数据将被永久删除,并表示“不留一个字节”。这是人工智能行业首次由主要科技领袖公开承认错误并主动删除用户数据。安全研究人员的“钓鱼”测试揭示了数据泄露的具体证据此次争议源于独立人工智能安全研究人员 @cereblab 的一份报告。SpaceXAI 推出的 AI 编程助手 Grok Build 在其官方网站上声称其“优先本地运行,代码
美国股市触及历史里程碑,人工智能与航空航天巨头准备开启万亿美元时代
埃隆·马斯克、山姆·阿尔特曼和达里奥·阿莫迪,这三位科技领域的巨头,正推动其各自的企业迈向首次公开募股(IPO)。随着 SpaceX、OpenAI 和 Anthropic——这三家估值接近万亿美元的行业巨头——即将上市,2026 年被预测将成为美国历史上新股发行规模最大的一年。这一历史性的资本激增已引起全球金融界的关注,成为检验公共市场吸收如此大规模资金能力的关键压力测试。这些主要融资活动的同步启动预计将打破 2021 年创下的 1560 亿美元纪录。超级独角兽的资本博弈每家公司上市的路径
瑞典人工智能初创公司Lovable Eyes在完成主要融资轮后估值达132亿美元
随着人工智能驱动的编码工具日益普及,瑞典初创公司 Lovable 已获一轮重大融资。该公司计划筹集 30 亿美元,其估值有望升至 132 亿美元——这是去年 12 月记录的 66 亿美元的两倍。预计 Menlo Ventures 将主导此次投资。Lovable 的吸引力源于其核心的“氛围编码”(vibe coding)技术,该技术通过消除对复杂编码技能的需求来简化软件开发。用户只需以自然语言描述其需求,系统即可自动生成应用程序。这种直观的方法吸引了个人开发者、设计师和小企业,并扩展至 Work
この記事を読んで、自分でもAI要約ツールを作ってみたくなりました。特にLangchainの使い方が分かりやすく説明されていて助かります。ただ、OpenAIのAPIコストが気になるな…ローカルで動く軽量モデルを使ったバージョンも紹介してほしいです。🤔
Klasse! Endlich mal eine praktische Anwendung statt nur Theorie. Die Kombination aus Langchain und Streamlit klingt vielversprechend für Prototypen. Ich frage mich, wie gut das bei sehr speziellen Fachtexten funktioniert. Würde mir wünschen, dass so Tools auch für andere Sprachen als Englisch optimiert werden. Hat jemand schon Erfahrungen damit gemacht? 😊





首页






