12 - 项目2:文档对话系统
约 195 字小于 1 分钟
LangChain
2026-03-08
项目目标
与 PDF/Word 文档智能对话。
功能特性
- ✅ 多格式文档支持
- ✅ 对话式交互
- ✅ 引用原文
- ✅ 导出对话
核心代码
\\python from langchain_community.document_loaders import PyPDFLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_openai import ChatOpenAI from langchain.memory import ConversationBufferMemory from langchain.chains import ConversationalRetrievalChain
加载文档
loader = PyPDFLoader("document.pdf") pages = loader.load()
分割文本
text_splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=200 ) texts = text_splitter.split_documents(pages)
创建向量存储
vectorstore = Chroma.from_documents(texts, OpenAIEmbeddings())
创建对话链
qa = ConversationalRetrievalChain.from_llm( llm=ChatOpenAI(), retriever=vectorstore.as_retriever(), memory=ConversationBufferMemory( memory_key="chat_history", return_messages=True ) )
对话
while True: question = input("你:") answer = qa({"question": question}) print(f"AI:{answer['answer']}") \\
本课小结
- 多轮对话支持
- 引用原文增强可信度
- 记忆管理
下一课:13 - 自动化工作流