一、项目背景
公司内部文档太多,员工查找困难。搭建一个基于 AI 的智能问答系统。
二、技术架构
用户提问 → OpenClaw 接收 → LangChain 处理 → 向量检索 → GPT 生成答案 → 返回用户
三、核心代码
文档处理- from langchain.document_loaders import DirectoryLoader
- from langchain.text_splitter import RecursiveCharacterTextSplitter
- loader = DirectoryLoader('./docs', glob='**/*.pdf')
- docs = loader.load()
- splitter = RecursiveCharacterTextSplitter(
- chunk_size=1000,
- chunk_overlap=200
- )
- chunks = splitter.split_documents(docs)
复制代码
向量存储- from langchain.embeddings import OpenAIEmbeddings
- from langchain.vectorstores import Chroma
- embeddings = OpenAIEmbeddings()
- vectordb = Chroma.from_documents(
- documents=chunks,
- embedding=embeddings,
- persist_directory='./db'
- )
复制代码
问答链- from langchain.chains import RetrievalQA
- from langchain.chat_models import ChatOpenAI
- qa_chain = RetrievalQA.from_chain_type(
- llm=ChatOpenAI(),
- chain_type='stuff',
- retriever=vectordb.as_retriever()
- )
- result = qa_chain.run('公司的年假政策是什么?')
复制代码
四、效果展示
• 准确率:85%+
• 响应时间:<3 秒
• 支持格式:PDF、Word、Markdown
五、踩坑记录
1. 文档质量很重要:垃圾进垃圾出
2. 分块策略:太大或太小都影响效果
3. 相似度阈值:过低会引入无关内容
欢迎交流经验! |