使用 LangChain 和 Flan-T5-Small 进行文档摘要和主题提取


使用 langchain 和 flan-t5-small 进行文档摘要和主题提取

本文档提供了一个使用 LangChain 框架和开源 LLM (例如 Flan-T5-Small) 处理大型文档(超过 512 个 tokens)进行摘要和主题提取的实践教程。重点介绍如何使用 LangChain 连接私有 LLM API,并展示了代码示例,演示了如何加载、分割文档,并使用 RetrievalQA 链进行信息检索和问答。

LangChain 提供了一套强大的工具,可以帮助开发者构建基于 LLM 的应用程序。当处理大型文档时,直接将整个文档输入 LLM 可能会超出其上下文窗口的限制。因此,需要将文档分割成更小的块,并使用适当的策略来提取信息。

处理大型文档

LangChain 提供了 load_and_split() 函数,可以用于加载和分割大型文档。这个函数接受一个文档加载器作为输入,并返回一个文档块的列表。例如,可以使用 PyPDFLoader 加载 PDF 文档,然后使用 CharacterTextSplitter 将文档分割成块。

from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter

# 加载 PDF 文档
loader = PyPDFLoader("path/to/your/document.pdf")
documents = loader.load()

# 将文档分割成块
text_splitter = CharacterTextSplitter(chunk_size=512, chunk_overlap=0)
texts = text_splitter.split_documents(documents)

print(f"文档被分割成了 {len(texts)} 个块")

chunk_size 参数控制每个块的大小,chunk_overlap 参数控制块之间的重叠部分。适当的 chunk_size 和 chunk_overlap 可以提高信息检索的准确性。

使用 HuggingFaceEmbeddings 进行嵌入

为了更好地理解文档块的语义信息,需要将它们转换成向量嵌入。HuggingFaceEmbeddings 类可以用于从 Hugging Face 模型中心加载预训练的嵌入模型。

from langchain.embeddings import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(
    model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")

model_name 参数指定要使用的嵌入模型的名称。sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 是一个常用的多语言嵌入模型。

使用 FAISS 构建向量数据库

向量数据库可以用于存储和检索文档嵌入。FAISS (Facebook AI Similarity Search) 是一个高效的向量数据库。

AI建筑知识问答 AI建筑知识问答

用人工智能ChatGPT帮你解答所有建筑问题

AI建筑知识问答 172 查看详情 AI建筑知识问答
from langchain.vectorstores import FAISS

# 使用文档块和嵌入创建 FAISS 向量数据库
docsearch = FAISS.from_texts(texts, embeddings)

FAISS.from_texts() 函数接受一个文档块列表和一个嵌入模型作为输入,并返回一个 FAISS 向量数据库。

使用 HuggingFaceHub 连接私有 LLM

LangChain 可以通过 HuggingFaceHub 类连接到 Hugging Face Hub 上的 LLM。

from langchain.llms import HuggingFaceHub

llm = HuggingFaceHub(repo_id = "google/flan-t5-base",
                     model_kwargs={"temperature":0.6,"max_length": 500, "max_new_tokens": 200
                                  })

repo_id 参数指定要使用的 LLM 的名称。google/flan-t5-base 是一个常用的开源 LLM。model_kwargs 参数可以用于配置 LLM 的参数,例如 temperature 和 max_length。

使用 RetrievalQA 进行问答

RetrievalQA 链可以用于从文档中检索信息并回答问题。

from langchain.prompts import PromptTemplate
from langchain.chains.retrieval_qa.base import RetrievalQA

prompt_template = """
Compare the book given in question with others in the retriever based on genre and description.
Return a complete sentence with the full title of the book and describe the similarities between the books.

question: {question}
context: {context}
"""

prompt = PromptTemplate(template=prompt_template, input_variables=["context", "question"])
retriever=docsearch.as_retriever()
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever, chain_type_kwargs = {"prompt": prompt})
print(qa.run({"query": "Which book except 'To Kill A Mocking Bird' is similar to it?"}))

RetrievalQA.from_chain_type() 函数接受一个 LLM、一个链类型和一个检索器作为输入,并返回一个 RetrievalQA 链。 chain_type="stuff" 表示将所有检索到的文档块都传递给 LLM。retriever=docsearch.as_retriever() 将 FAISS 向量数据库转换为检索器。

总结

本文档提供了一个使用 LangChain 和开源 LLM 处理大型文档进行摘要和主题提取的实践教程。通过加载和分割文档,使用 HuggingFaceEmbeddings 进行嵌入,使用 FAISS 构建向量数据库,以及使用 RetrievalQA 进行问答,可以有效地从大型文档中提取信息。 请注意,私有 LLM 的 API 调用方式可能略有不同,需要根据具体的 API 文档进行调整。

以上就是使用 LangChain 和 Flan-T5-Small 进行文档摘要和主题提取的详细内容,更多请关注其它相关文章!


# 信息检索  # 保暖内衣推广营销方法  # seo亚马逊霸屏  # seo的职位名称叫什么  # 沈阳推广seo优化  # seo批量更新文章  # 淘宝优惠券网站怎么推广  # 上海正规营销推广技巧  # 微商引流网站推广  # 抖音seo排名哪家合适  # 网站推广在哪好找工作  # 成块  # 成了  # go  # 要使  # 开源  # 知识问答  # 是一个  # 加载  # 文档  # google  # 多语言  # pdf  # ai  # 工具  # facebook 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 192.168.1.1路由器后台入口 192.168.1.1默认登录入口  WooCommerce 新客户订单自动添加管理员备注教程  作业帮网页版不用下载入口 在线问老师快速答疑  智学网app怎么登录忘记密码_智学网app忘记密码找回与重新登录操作方法  mysql通配符能用于日志查询吗_mysql通配符在系统日志查询中的实际使用方法  铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明  VS Code中的Tailwind CSS IntelliSense插件使用技巧  微博网页版入口链接 微博网页版在线互动平台  CodeIgniter 3 中基于 MySQL 数据高效生成动态图表教程  纯CSS实现自适应宽度与响应式布局的水平按钮组  《绿竹漫游》关闭消息通知方法  豆包AI怎样为教育场景定制答疑逻辑_为教育场景定制豆包AI答疑逻辑方案【方案】  win11怎么更改账户类型 Win11标准用户和管理员权限切换【教程】  Python项目中的条件导入:解决跨模块依赖问题  PHP odbc_fetch_array 返回值处理:如何正确访问嵌套数组元素  win11资源管理器标签页怎么用 Win11文件管理器多标签高效操作【新功能】  《美篇》取消会员自动续费方法  怎样让Windows 11的开始菜单恢复经典样式_Open-Shell工具使用指南【怀旧】  漫蛙漫画官方版直通入口 2025漫蛙漫画免注册访问说明  快递优选如何查优选物流_快递优选专属物流渠道查询与配送时效  Python中安全地将环境变量转换为整数的类型注解指南  百度地图离线地图无法加载如何解决 百度地图离线地图加载优化方法  HTML Canvas文本样式定制指南:解决外部字体加载与应用难题  mysql离线安装后如何启动_mysql离线安装完成后启动服务的方法  智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析  J*a中为什么强调组合优于继承_组合模式带来的灵活性与可维护性解析  Lar*el怎么实现全文搜索_Lar*el Scout集成Algolia教程  邦丰播放器频道搜索设置  从J*a应用程序中导出MySQL表数据的技术指南  《梦想世界:长风问剑录》药师一图流分享  钉钉任务无法提醒如何处理 钉钉任务提醒优化方法  sublime text 4如何安装_最新版sublime下载与汉化教程  阿里旺旺电脑网页版入口 阿里旺旺电脑版网页登录入口  《磁力猫》最好用的磁官网  《合金装备4》有望推出重制版!制作人发话了  J*a中逻辑运算符如何使用_逻辑与或非的基础用法讲解  照片整理的黄金法则是怎样的? 理解“收集-筛选-归档-备份”四步流程  解决异步Python机器人中同步操作的阻塞问题  键盘声音异常怎么回事_键盘异响怎么处理  在Flask应用中安全高效地更新SQLAlchemy用户数据  VBA Outlook邮件自动化:高效集成Excel数据与列标题的策略  《撕歌》会员开通方法  win11如何诊断DirectX问题 Win11运行dxdiag工具排查显卡故障【排错】  百度浏览器无法安装扩展程序_百度浏览器插件安装失败原因解析  电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】  b站怎么查看视频的码率_b站视频码率查看方法  WPS长文档分栏排版不乱方法_WPS分栏+分节符报纸排版教程  Win10输入法不见了怎么办 Win10找回语言栏图标教程  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧 

 2025-10-25

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.