RAG使用摘要索引报错
1、base_llm.py代码#!/usr/bin/env python # -*- coding: UTF-8 -*- from dotenv import load_dotenv from langchain_huggingface import HuggingFaceEmbeddings from langchain_openai import ChatOpenAI import os load_dotenv() llm ChatOpenAI(api_keyos.getenv(DASHSCOPE_API_KEY), base_urlos.getenv(DASHSCOPE_BASE_URL), model_nameqwen3.7-plus) # 本地embedding模型地址 # embedding_model_path rD:\LLM\Local_model\BAAI\bge-large-zh-v1___5 embedding_model_path rD:\LLM\Local_model\maidalun\bce-embedding-base_v1 # 初始化嵌入模型用于文本向量化 embeddings_model HuggingFaceEmbeddings( model_nameembedding_model_path )2、摘要索引代码#!/usr/bin/env python # -*- coding: UTF-8 -*- from base_llm import llm, embeddings_model from langchain_core.stores import InMemoryByteStore from langchain_chroma import Chroma from langchain_community.document_loaders import UnstructuredWordDocumentLoader, WebBaseLoader from langchain_text_splitters import RecursiveCharacterTextSplitter # MultiVectorRetriever 多用检索器 from langchain_classic.retrievers import MultiVectorRetriever import uuid from langchain_core.documents import Document from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate from langchain_core.runnables import RunnableMap url https://news.pku.edu.cn/mtbdnew/15ac0b3e79244efa88b03a570cbcbcaa.htm # 初始化文档加载器列表加载多个文本文件 loaders [ UnstructuredWordDocumentLoader(人事管理流程.docx), WebBaseLoader(url) ] docs [] for loader in loaders: docs.extend(loader.load()) # 分割器 text_split RecursiveCharacterTextSplitter(chunk_size1024, chunk_overlap100) docs text_split.split_documents(docs) # 创建摘要生成链 chain ( {doc: lambda x: x.page_content} | ChatPromptTemplate.from_template(总结下面的文档:\n\n{doc}) | llm | StrOutputParser() ) summ chain.batch(docs, {max_concurrency: 5}) # 存摘要之后转换成emb的内容 vector Chroma(collection_namesumm, embedding_functionembeddings_model) # 存原文档 store InMemoryByteStore() id_key doc_id # 创建多用检索器 retriever MultiVectorRetriever( vectorstorevector, byte_storestore, id_keyid_key ) # docs 长度100 生成100个随机数 doc_ids [str(uuid.uuid4()) for i in docs] # 创建摘要文档列表包含元数据 metadata可以用来关联原始文档和摘要文档会自动找到匹配关系 summary_docs [ Document(page_contents, metadata{id_key: doc_ids[i]}) for i, s in enumerate(summ) ] # 把压缩之后的内容添加到向量数据库 retriever.vectorstore.add_documents(summary_docs) # 源文档加载到内容 retriever.docstore.mset(list(zip(doc_ids, docs))) # prompt ChatPromptTemplate.from_template(根据下面的文档回答问题:\n\n{doc}\n\n问题: {question}) # # 生成问题回答链 # chain RunnableMap({ # doc: lambda x: retriever.invoke(x[question]), # question: lambda x: x[question] # }) | prompt | llm | StrOutputParser() # # # # 生成问题回答 # query 病假的请假流程? # answer chain.invoke({question: query}) # print(-------------回答--------------) # print(answer) # retrieved_docs retriever.invoke(query) # print(-------------检索到的文档--------------) # print(retrieved_docs) sub_docs retriever.vectorstore.similarity_search(病假的请假流程?) print(sub_docs) print(-------------检索到的文档--------------) print(sub_docs[0]) summ_id sub_docs[0].metadata[id_key] orig_doc retriever.docstore.mget([summ_id]) print(-------------原始文档--------------) print(orig_doc)3、执行报错内容如下C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Scripts\python.exe C:\Users\lenovo\PycharmProjects\PythonProject\rag\day07\01-摘要索引.py C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_core\utils\pydantic.py:41: UserWarning: Core Pydantic V1 functionality isnt compatible with Python 3.14 or greater. from pydantic.v1 import BaseModel as BaseModelV1 Loading weights: 100%|██████████| 199/199 [00:0000:00, 66810.73it/s] C:\Users\lenovo\PycharmProjects\PythonProject\rag\day07\01-摘要索引.py:8: DeprecationWarning: langchain-community is being sunset and is no longer actively maintained. See https://github.com/langchain-ai/langchain-community/issues/674 for details and migration guidance toward standalone integration packages. from langchain_community.document_loaders import UnstructuredWordDocumentLoader, WebBaseLoader USER_AGENT environment variable not set, consider setting it to identify your requests. [nltk_data] Error loading averaged_perceptron_tagger_eng: [WinError [nltk_data] 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应连接尝试失败。 [nltk_data] Error loading punkt_tab: [WinError 10060] [nltk_data] 由于连接方在一段时间后没有正确答复或连接的主机没有反应连接尝试失败。 Traceback (most recent call last): File C:\Users\lenovo\PycharmProjects\PythonProject\rag\day07\01-摘要索引.py, line 30, in module docs.extend(loader.load()) ~~~~~~~~~~~^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_core\document_loaders\base.py, line 43, in load return list(self.lazy_load()) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_community\document_loaders\unstructured.py, line 107, in lazy_load elements self._get_elements() File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_community\document_loaders\word_document.py, line 139, in _get_elements return partition_docx(filenameself.file_path, **self.unstructured_kwargs) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\common\metadata.py, line 161, in wrapper elements func(*args, **kwargs) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\chunking\dispatch.py, line 74, in wrapper elements func(*args, **kwargs) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\docx.py, line 182, in partition_docx return list(elements) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\docx.py, line 413, in _iter_document_elements yield from self._iter_paragraph_elements(block_item) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\docx.py, line 637, in _iter_paragraph_elements yield from self._classify_paragraph_to_element(item) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\docx.py, line 474, in _classify_paragraph_to_element TextSubCls self._parse_paragraph_text_for_element_type(paragraph) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\docx.py, line 948, in _parse_paragraph_text_for_element_type if is_possible_narrative_text(text): ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\text_type.py, line 74, in is_possible_narrative_text if exceeds_cap_ratio(text, thresholdcap_threshold): ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\text_type.py, line 282, in exceeds_cap_ratio if sentence_count(text, 3) 1: ~~~~~~~~~~~~~~^^^^^^^^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\partition\text_type.py, line 219, in sentence_count sentences sent_tokenize(text) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\nlp\tokenize.py, line 55, in sent_tokenize return list(_tokenize_for_cache(text)) ~~~~~~~~~~~~~~~~~~~^^^^^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\unstructured\nlp\tokenize.py, line 80, in _tokenize_for_cache return tuple(_sent_tokenize(text)) ~~~~~~~~~~~~~~^^^^^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\tokenize\__init__.py, line 119, in sent_tokenize tokenizer _get_punkt_tokenizer(language) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\tokenize\__init__.py, line 105, in _get_punkt_tokenizer return PunktTokenizer(language) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\tokenize\punkt.py, line 1746, in __init__ self.load_lang(lang) ~~~~~~~~~~~~~~^^^^^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\tokenize\punkt.py, line 1751, in load_lang lang_dir find(ftokenizers/punkt_tab/{lang}/) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\data.py, line 693, in find return find(modified_name, paths) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\data.py, line 679, in find return ZipFilePathPointer(p, zipentry) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\data.py, line 471, in __init__ zipfile OpenOnDemandZipFile(os.path.abspath(zipfile)) File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\data.py, line 1192, in __init__ ZipFile.__init__(self, filename) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\nltk\pathsec.py, line 265, in __init__ super().__init__(file, *args, **kwargs) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\lenovo\AppData\Local\Programs\Python\Python314\Lib\zipfile\__init__.py, line 1458, in __init__ self._RealGetContents() ~~~~~~~~~~~~~~~~~~~~~^^ File C:\Users\lenovo\AppData\Local\Programs\Python\Python314\Lib\zipfile\__init__.py, line 1525, in _RealGetContents raise BadZipFile(File is not a zip file) zipfile.BadZipFile: File is not a zip file Process finished with exit code 1

相关新闻

如何从零解析信息不全的开源项目:以智能体寻人启事为例

如何从零解析信息不全的开源项目:以智能体寻人启事为例

你打开一个项目页面,标题写着“智能体寻人启事”。第一反应可能是:这又是什么花哨的AI新概念?是让AI去找人,还是用AI生成寻人启事?点进去,发现项目描述几乎是空的,只有一个引人遐想的标题。这种…

2026/8/10 12:12:23 阅读更多 →
后端程序员看过来:3-6个月转型高薪AI应用,收藏这份实战路线图!

后端程序员看过来:3-6个月转型高薪AI应用,收藏这份实战路线图!

本文为传统后端开发者提供了一条从零基础到高薪AI应用的转型路线。文章强调,转型AI应用开发而非技术开发是关键,并提出了“后端AI集成”的复合型路线。核心内容包含避开三大转型误区:死磕底层算法、缺乏实战项目、放弃后端优势。文章详细规划…

2026/8/10 12:12:23 阅读更多 →
链接技术深度解析:从静态动态链接到现代应用实践

链接技术深度解析:从静态动态链接到现代应用实践

1. 链接技术全景解析:从基础原理到现代应用在数字世界的底层架构中,链接技术如同隐形的神经网络,将离散的信息节点编织成可交互的知识图谱。作为从业15年的系统架构师,我见证过无数因链接配置不当导致的系统故障,也亲手…

2026/8/10 12:12:23 阅读更多 →

最新新闻

区块链与分布式数据库融合架构的金融应用实践

区块链与分布式数据库融合架构的金融应用实践

1. 企业级区块链数据库的全球化挑战 在金融科技领域,区块链技术正从单纯的加密货币载体向企业级基础设施演进。当我们将区块链与全球化数据库架构结合时,面临的核心矛盾是:区块链的"不可篡改"特性与分布式数据库的"高性能&quo…

2026/8/10 13:47:58 阅读更多 →
《孤岛惊魂6》整合版安装全攻略:从下载到稳定运行的完整避坑指南

《孤岛惊魂6》整合版安装全攻略:从下载到稳定运行的完整避坑指南

这类游戏整合包最值得先看的不是功能列表,而是能不能在你的电脑上稳定运行、安装过程会不会卡住、以及所谓的“一键安装”到底包含了哪些前置步骤。很多人看到“懒人包”、“解压即玩”就直接下载,结果遇到各种报错、闪退、存档丢失,折腾半天…

2026/8/10 13:47:58 阅读更多 →
数字3456789走红背后的网络传播机制分析

数字3456789走红背后的网络传播机制分析

1. 项目背景与现象观察 最近在多个社交平台上频繁出现一个神秘数字组合"3456789",这个看似简单的数字序列引发了广泛讨论。作为一个长期关注网络文化现象的观察者,我注意到这个数字串最早出现在某短视频平台的评论区,随后迅速蔓延至…

2026/8/10 13:47:58 阅读更多 →
Blender四边形网格重构终极指南:5分钟从三角面到完美四边形

Blender四边形网格重构终极指南:5分钟从三角面到完美四边形

Blender四边形网格重构终极指南:5分钟从三角面到完美四边形 【免费下载链接】QRemeshify A Blender extension for an easy-to-use remesher that outputs good-quality quad topology 项目地址: https://gitcode.com/gh_mirrors/qr/QRemeshify QRemeshify是…

2026/8/10 13:47:58 阅读更多 →
GetQzonehistory:三步轻松备份QQ空间历史说说的免费开源工具

GetQzonehistory:三步轻松备份QQ空间历史说说的免费开源工具

GetQzonehistory:三步轻松备份QQ空间历史说说的免费开源工具 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆日益珍贵的今天,QQ空间里那些记录青春点滴…

2026/8/10 13:47:58 阅读更多 →
光子晶体BIC与拓扑电荷计算实战指南

光子晶体BIC与拓扑电荷计算实战指南

1. 项目概述:BIC与拓扑电荷计算的物理意义在光子晶体和超材料研究中,连续谱中的束缚态(Bound states in the continuum, BIC)因其独特的物理特性成为近年来的研究热点。BIC指的是存在于辐射连续谱中却具有无限品质因数的局域态&am…

2026/8/10 13:46:58 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →