GLM-4-9B-Chat-1M实战教程:结合LangChain构建企业知识图谱问答
GLM-4-9B-Chat-1M实战教程结合LangChain构建企业知识图谱问答1. 项目简介与环境准备今天咱们来聊聊一个特别实用的技术方案如何用GLM-4-9B-Chat-1M这个超长文本处理模型结合LangChain框架为企业搭建一个本地化的知识图谱问答系统。先说说为什么这个组合很厉害。GLM-4-9B-Chat-1M是智谱AI最新开源的模型最大的特点就是能一次性处理100万个token的超长文本——相当于一本长篇小说的长度。而且通过4-bit量化技术它只需要8GB显存就能运行完全在本地部署数据不用上传到云端特别适合企业使用。而LangChain是个很棒的框架能帮我们把大模型和各种工具连接起来构建复杂的应用。把这两个结合起来就能做一个能理解企业大量文档资料的智能问答系统。准备工作 首先确保你的环境有这些Python 3.8或更高版本至少8GB显存的GPU英伟达显卡20GB以上的磁盘空间安装必要的包pip install torch transformers langchain streamlit sentence-transformers faiss-cpu2. 快速部署GLM-4-9B-Chat-1M让我们先把这个大模型在本地跑起来。不用担心虽然模型很大但部署起来并不复杂。创建一个Python文件比如叫model_loader.py写入以下代码from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig import torch # 配置4-bit量化 quantization_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_compute_dtypetorch.float16, bnb_4bit_use_double_quantTrue, ) # 加载模型和分词器 model_name THUDM/glm-4-9b-chat-1m tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( model_name, quantization_configquantization_config, device_mapauto, trust_remote_codeTrue ) print(模型加载完成现在可以处理长达100万token的文本了)这段代码做了几件事设置了4-bit量化配置让大模型能在小显存上运行加载了GLM-4-9B-Chat-1M模型和对应的分词器自动分配模型到可用的GPU上运行这个脚本如果看到模型加载完成的提示说明你的环境已经准备好了。3. 构建知识图谱问答系统现在进入正题我们来构建企业知识图谱问答系统。这个系统的核心思想是把企业的文档资料转换成向量形式建立知识库然后用大模型来理解和回答相关问题。3.1 文档处理与向量化首先我们需要处理企业文档。创建一个knowledge_processor.py文件from langchain.document_loaders import DirectoryLoader, TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import FAISS import os def process_documents(directory_path): 处理目录下的所有文档 # 加载文档 loader DirectoryLoader(directory_path, glob**/*.txt, loader_clsTextLoader) documents loader.load() # 分割文本 text_splitter RecursiveCharacterTextSplitter( chunk_size1000, chunk_overlap200 ) chunks text_splitter.split_documents(documents) # 创建向量数据库 embeddings HuggingFaceEmbeddings( model_namesentence-transformers/all-MiniLM-L6-v2 ) vectorstore FAISS.from_documents(chunks, embeddings) vectorstore.save_local(faiss_index) return vectorstore # 使用示例 if __name__ __main__: # 假设你的文档放在./documents目录下 vector_db process_documents(./documents) print(知识库构建完成)3.2 问答系统集成接下来我们创建问答系统的主要逻辑from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate def create_qa_chain(vectorstore): 创建问答链 # 自定义提示模板 prompt_template 基于以下上下文信息请回答问题。如果无法从上下文中得到答案请说我不知道。 上下文 {context} 问题{question} 答案 PROMPT PromptTemplate( templateprompt_template, input_variables[context, question] ) # 创建检索式问答链 qa_chain RetrievalQA.from_chain_type( llmmodel, # 这里需要传入之前加载的GLM模型 chain_typestuff, retrievervectorstore.as_retriever(search_kwargs{k: 3}), chain_type_kwargs{prompt: PROMPT}, return_source_documentsTrue ) return qa_chain def ask_question(question, qa_chain): 提问函数 result qa_chain({query: question}) return result[result], result[source_documents]4. 完整应用搭建现在我们把所有部分组合起来创建一个完整的Streamlit应用。创建app.pyimport streamlit as st import os from model_loader import model, tokenizer from knowledge_processor import process_documents, create_qa_chain st.title(企业知识图谱问答系统) st.write(基于GLM-4-9B-Chat-1M和LangChain构建) # 侧边栏配置 with st.sidebar: st.header(配置) documents_dir st.text_input(文档目录路径, ./documents) if st.button(构建知识库): with st.spinner(正在处理文档...): vectorstore process_documents(documents_dir) st.session_state.vectorstore vectorstore st.success(知识库构建完成) # 主界面 if vectorstore in st.session_state: qa_chain create_qa_chain(st.session_state.vectorstore) question st.text_input(请输入您的问题) if question: with st.spinner(正在思考...): answer, sources ask_question(question, qa_chain) st.subheader(答案) st.write(answer) st.subheader(参考来源) for i, source in enumerate(sources): st.write(f来源 {i1}: {source.metadata.get(source, 未知)}) st.write(f内容片段: {source.page_content[:200]}...) else: st.info(请在侧边栏配置文档目录并构建知识库)5. 实际应用案例让我给你举几个实际的使用例子看看这个系统在企业里能做什么案例1技术文档问答假设你们公司有大量的API文档、技术手册。新员工可以直接问 我们的支付接口有哪些必填参数 系统会从所有技术文档中找出相关信息给出准确回答。案例2规章制度查询人力资源部门可以用这个系统来快速回答员工问题 年假如何申请需要哪些审批流程 系统会从员工手册、规章制度文件中提取答案。案例3项目历史查询去年第三季度我们做了哪些重要产品更新 系统能分析项目文档、会议记录、报告等总结出那个时期的重要更新。使用技巧对于复杂问题拆分成多个小问题依次提问如果答案不准确尝试用不同的方式问同一个问题系统会显示参考来源可以点击查看原始文档6. 常见问题解决在实际使用中可能会遇到一些问题这里给出解决方案问题1显存不足如果遇到CUDA out of memory错误可以尝试减小文本分块大小chunk_size减少检索文档数量search_kwargs中的k值使用更大的GPU或分布式部署问题2回答不准确检查文档预处理是否正常确保文本分割合理调整检索参数增加检索的文档数量优化提示模板给模型更明确的指令问题3处理速度慢使用更快的嵌入模型如all-MiniLM-L6-v2考虑使用GPU加速向量检索对频繁查询的问题建立缓存机制7. 总结通过这个教程我们完成了一个完整的企业知识图谱问答系统。这个系统有几个明显优势首先是完全本地化所有数据都在企业内部不用担心数据泄露问题。这对于金融、法律、医疗等对数据安全要求高的行业特别重要。其次是处理能力强GLM-4-9B-Chat-1M的100万token上下文长度意味着它能处理超长文档不需要复杂的分段处理。最后是实用性好结合LangChain框架我们可以很容易地扩展功能比如连接数据库、接入外部API等。你可以根据自己企业的实际需求对这个系统进行定制化开发。比如添加多语言支持、集成企业现有的用户系统、增加审计日志功能等。这个方案特别适合那些有大量文档资料需要管理和利用的企业能显著提高信息检索效率让知识真正流动起来。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

掌握免费英语词典API服务:高效赋能英语学习应用开发

掌握免费英语词典API服务:高效赋能英语学习应用开发

掌握免费英语词典API服务:高效赋能英语学习应用开发 【免费下载链接】freeDictionaryAPI There was no free Dictionary API on the web when I wanted one for my friend, so I created one. 项目地址: https://gitcode.com/gh_mirrors/fr/freeDictionaryAPI …

2026/7/3 10:03:05 阅读更多 →
仅内部团队流通的Seedance 2.0 鉴权Prompt黄金模板(含多租户上下文锚定、敏感操作二次确认、审计留痕强制触发指令)

仅内部团队流通的Seedance 2.0 鉴权Prompt黄金模板(含多租户上下文锚定、敏感操作二次确认、审计留痕强制触发指令)

第一章:Seedance 2.0 鉴权与 API 安全方案 提示词模板分享Seedance 2.0 引入了基于 OAuth 2.1 OpenID Connect 的细粒度鉴权体系,并融合提示词(Prompt)级访问控制机制,实现对 LLM API 调用链路的端到端安全治理。该方…

2026/5/17 6:31:45 阅读更多 →
如何用NeteaseCloudMusicFlac批量获取网易云无损音乐?完整技术指南

如何用NeteaseCloudMusicFlac批量获取网易云无损音乐?完整技术指南

如何用NeteaseCloudMusicFlac批量获取网易云无损音乐?完整技术指南 【免费下载链接】NeteaseCloudMusicFlac 根据网易云音乐的歌单, 下载flac无损音乐到本地.。 项目地址: https://gitcode.com/gh_mirrors/nete/NeteaseCloudMusicFlac NeteaseCloudMusicFlac…

2026/7/3 3:37:41 阅读更多 →

最新新闻

SRWE窗口分辨率编辑器:终极游戏截图与多屏适配解决方案

SRWE窗口分辨率编辑器:终极游戏截图与多屏适配解决方案

SRWE窗口分辨率编辑器:终极游戏截图与多屏适配解决方案 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE SRWE(Simple Runtime Window Editor)是一款功能强大的开源窗口分辨率自…

2026/7/5 2:10:33 阅读更多 →
qt的元对象系统有哪些组成,为什么要有元对象系统

qt的元对象系统有哪些组成,为什么要有元对象系统

豆包生成

2026/7/5 2:08:32 阅读更多 →
【Java毕业设计】基于 JavaWeb 的公司人事档案运维管理系统的设计与实现 企业员工信息录入与人事台账管理系统(源码+文档+远程调试,全bao定制等)

【Java毕业设计】基于 JavaWeb 的公司人事档案运维管理系统的设计与实现 企业员工信息录入与人事台账管理系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/5 2:06:32 阅读更多 →
云原生 AI 模型灰度:别把新模型一次性推给所有流量

云原生 AI 模型灰度:别把新模型一次性推给所有流量

云原生 AI 模型灰度:别把新模型一次性推给所有流量 一、模型灰度比普通服务更需要谨慎 普通服务灰度主要关注错误率、延迟和资源。AI 模型灰度还要关注答案质量、引用准确性、成本变化和用户反馈。新模型接口兼容,不代表业务效果一定更好。 模型上线如…

2026/7/5 2:06:32 阅读更多 →
2026 优质 AI 写小说软件盘点,长篇连载 AI 创作工具完整推荐

2026 优质 AI 写小说软件盘点,长篇连载 AI 创作工具完整推荐

随着人工智能技术持续落地文创领域,AI 辅助写作逐步成为网文作者、传统文学创作者、编剧以及非虚构书籍撰稿人的日常创作方式。当下市场涌现出多款主打 AI 智能写作的工具产品,各类产品在功能侧重、技术架构、服务定价、适配创作题材上分化明显&#xff…

2026/7/5 2:04:31 阅读更多 →
Python async 超时树:每个 await 都要知道自己的时间预算

Python async 超时树:每个 await 都要知道自己的时间预算

Python async 超时树:每个 await 都要知道自己的时间预算 一、深度引言与场景痛点 异步 RAG 或 Agent 服务里,一个请求会经过鉴权、检索、重排、工具调用、模型生成、日志写入。很多代码只在最外层设置总超时,例如 30 秒。问题是,…

2026/7/5 2:02:31 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻