本文介绍了如何开发一个个人知识库Agent实现与文档、笔记的智能对话。文章详细阐述了RAG检索增强生成的工作原理和技术实现包括文档加载、向量存储、问答链的创建等。此外还介绍了多知识库管理和效果演示展示了AI Agent在知识管理方面的强大功能。通过本文读者可以掌握AI Agent开发的核心技术轻松打造自己的知识库问答系统。实战个人知识库AgentRAG项目概述个人知识库Agent能够让你与自己的文档、笔记进行对话实现真正的知识管理。功能需求文档上传支持PDF、Word、TXT等格式智能问答基于文档内容回答问题多文档管理支持多个知识库来源追溯显示答案参考的文档位置RAG原理┌─────────────────────────────────────────────────────────────┐ │ RAG 工作流程│ ├─────────────────────────────────────────────────────────────┤ ││ │索引阶段离线│ │文档→Loader→TextSplitter→Embeddings→VectorStore│ ││ │查询阶段在线│ │问题→Embeddings→VectorSearch→RetrievedDocs→ LLM │ │↓│ │生成答案│ └─────────────────────────────────────────────────────────────┘技术实现1. 环境准备pip install langchain langchain-openai \ langchain-community pypdf python-docx \ chromadb sentence-transformers2. 文档加载from langchain_community.document_loaders import( PyPDFLoader, TextLoader, Docx2txtLoader, CSVLoader ) from langchain.text_splitter importRecursiveCharacterTextSplitter classDocumentLoader: 文档加载器 staticmethod def load(file_path: str): 根据文件类型自动选择加载器 if file_path.endswith(.pdf): loader PyPDFLoader(file_path) elif file_path.endswith(.docx): loader Docx2txtLoader(file_path) elif file_path.endswith(.txt): loader TextLoader(file_path, encodingutf-8) elif file_path.endswith(.csv): loader CSVLoader(file_path) else: raiseValueError(f不支持的文件类型: {file_path}) return loader.load() staticmethod def split(documents, chunk_size500, chunk_overlap50): 分割文档 splitter RecursiveCharacterTextSplitter( chunk_sizechunk_size, chunk_overlapchunk_overlap, separators[\n\n,\n,。, ,] ) return splitter.split_documents(documents)3. 向量存储from langchain_openai importOpenAIEmbeddings from langchain_community.vectorstores importChroma from langchain.embeddings importHuggingFaceEmbeddings classVectorStoreManager: 向量存储管理器 def __init__(self, use_localFalse): if use_local: self.embeddings HuggingFaceEmbeddings( model_namesentence-transformers/all-MiniLM-L6-v2 ) else: self.embeddings OpenAIEmbeddings() def create_vectorstore(self, documents, persist_directoryNone): 创建向量存储 if persist_directory: # 持久化存储 vectorstore Chroma.from_documents( documentsdocuments, embeddingself.embeddings, persist_directorypersist_directory ) else: # 内存存储 vectorstore Chroma.from_documents( documentsdocuments, embeddingself.embeddings ) return vectorstore def load_vectorstore(self, persist_directory): 加载已有向量存储 returnChroma( persist_directorypersist_directory, embedding_functionself.embeddings )4. RAG Chainfrom langchain_openai importChatOpenAI from langchain.prompts importPromptTemplate from langchain.chains importRetrievalQA from langchain_core.runnables importRunnablePassthrough classKnowledgeBaseQA: 知识库问答系统 def __init__(self, vectorstore, model_namegpt-4): self.vectorstore vectorstore self.llm ChatOpenAI(modelmodel_name) self.retriever vectorstore.as_retriever( search_typesimilarity, search_kwargs{k:3} ) def create_chain(self): 创建问答链 prompt PromptTemplate.from_template( 你是一个专业的知识库助手。请根据以下参考文档回答用户的问题。 参考文档 {context} 问题{question} 要求 1. 只根据参考文档回答不要编造信息 2. 如果文档中没有相关信息请如实说明 3. 回答要准确、简洁 4. 如果有多个相关文档综合整理后回答 回答 ) chain ( { context: self.retriever, question:RunnablePassthrough() } | prompt | self.llm ) return chain def ask(self, question: str)- dict: 提问并返回答案及来源 # 获取相关文档 docs self.retriever.invoke(question) # 获取答案 chain self.create_chain() answer chain.invoke(question) # 整理来源信息 sources [] for i, doc in enumerate(docs,1): sources.append({ 序号: i, 内容: doc.page_content[:200]..., 来源: doc.metadata.get(source,未知) }) return{ answer: answer.content, sources: sources, references: len(docs) }5. 完整示例# 1. 加载文档 loader DocumentLoader() documents loader.load(./knowledge/我的笔记.pdf) # 2. 分割文档 chunks loader.split(documents, chunk_size500) print(f文档已分割为 {len(chunks)} 个片段) # 3. 创建向量存储 manager VectorStoreManager(use_localTrue)# 使用免费的本地模型 vectorstore manager.create_vectorstore( chunks, persist_directory./chroma_db ) # 4. 创建问答系统 qa KnowledgeBaseQA(vectorstore) # 5. 提问 result qa.ask(什么是AI Agent) print(*50) print(问题什么是AI Agent) print(*50) print(\n答案) print(result[answer]) print(f\n 参考文档数{result[references]}) print(\n来源) for source in result[sources]: print(f [{source[序号]}] {source[来源]})多知识库管理classMultiKnowledgeBase: 多知识库管理 def __init__(self): self.bases {} def create_knowledge_base(self, name: str, file_paths: list): 创建知识库 all_docs [] for path in file_paths: loader DocumentLoader() docs loader.load(path) all_docs.extend(docs) chunks DocumentLoader.split(all_docs) manager VectorStoreManager(use_localTrue) vectorstore manager.create_vectorstore(chunks) self.bases[name]KnowledgeBaseQA(vectorstore) return f知识库 {name} 创建成功包含 {len(file_paths)} 个文件 def query(self, question: str, knowledge_base: str None): 查询 if knowledge_base: return self.bases[knowledge_base].ask(question) # 全局搜索所有知识库 results [] for name, qa in self.bases.items(): result qa.ask(question) results.append({ knowledge_base: name, answer: result[answer], references: result[references] }) return results # 使用 mkb MultiKnowledgeBase() # 创建多个知识库 mkb.create_knowledge_base( 编程笔记, [./docs/python笔记.pdf,./docs/算法笔记.pdf] ) mkb.create_knowledge_base( 工作文档, [./docs/项目文档.docx,./docs/需求文档.docx] ) # 查询 result mkb.query(Python中的装饰器是什么, knowledge_base编程笔记)效果演示问题什么是AI Agent 答案 AI Agent人工智能代理是一种能够感知环境、进行推理决策、并采取行动实现目标的智能系统。 与传统的LLM不同Agent的核心特点是自主性它能够 1.规划将复杂任务分解为多个步骤 2.记忆记住上下文和历史交互 3.工具调用外部工具执行实际操作 参考文档数3 来源 [1] AI基础概念.pdf (第5页) [2]Agent技术概述.pdf (第3页) [3]深度学习入门.txt总结本文实现了✅ 多种文档格式支持✅ 文档智能分割✅ 向量语义检索✅ 带来源追溯的问答✅ 多知识库管理2026年AI行业最大的机会毫无疑问就在应用层字节跳动已有7个团队全速布局Agent大模型岗位暴增69%年薪破百万腾讯、京东、百度开放招聘技术岗80%与AI相关……如今超过60%的企业都在推进AI产品落地而真正能交付项目的大模型应用开发工程师****却极度稀缺落地AI应用绝对不是写几个prompt调几个API就能搞定的企业真正需要的是能搞定这三项核心能力的人✅RAG融入外部信息修正模型输出给模型装靠谱大脑✅Agent智能体让AI自主干活通过工具调用Tools环境交互多步推理完成复杂任务。比如做智能客服等等……✅微调针对特定任务优化让模型适配业务目前脉脉上有超过1000家企业发布大模型相关岗位人工智能岗平均月薪7.8w实习生日薪高达4000远超其他行业收入水平技术的稀缺性才是你「值钱」的关键具备AI能力的程序员比传统开发高出不止一截有的人早就转行AI方向拿到百万年薪AI浪潮正在重构程序员的核心竞争力现在入场仍是最佳时机我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】⭐️从大模型微调到AI Agent智能体搭建剖析AI技术的应用场景用实战经验落地AI技术。从GPT到最火的开源模型让你从容面对AI技术革新大模型微调掌握主流大模型如DeepSeek、Qwen等的微调技术针对特定场景优化模型性能。学习如何利用领域数据如制造、医药、金融等进行模型定制提升任务准确性和效率。RAG应用开发深入理解检索增强生成Retrieval-Augmented Generation, RAG技术构建高效的知识检索与生成系统。应用于垂类场景如法律文档分析、医疗诊断辅助、金融报告生成等实现精准信息提取与内容生成。AI Agent智能体搭建学习如何设计和开发AI Agent实现多任务协同、自主决策和复杂问题解决。构建垂类场景下的智能助手如制造业中的设备故障诊断Agent、金融领域的投资分析Agent等。如果你也有以下诉求快速链接产品/业务团队参与前沿项目构建技术壁垒从竞争者中脱颖而出避开35岁裁员危险期顺利拿下高薪岗迭代技术水平延长未来20年的新职业发展……那这节课你一定要来听因为留给普通程序员的时间真的不多了立即扫码即可免费预约「AI技术原理 实战应用 职业发展」「大模型应用开发实战公开课」还有靠谱的内推机会直聘权益完课后赠送大模型应用案例集、AI商业落地白皮书