闲社
标题:
【技术分享】我是如何用 LangChain + OpenClaw 搭建知识库问答系统的
[打印本页]
作者:
admin
时间:
昨天 17:54
标题:
【技术分享】我是如何用 LangChain + OpenClaw 搭建知识库问答系统的
一、项目背景
公司内部文档太多,员工查找困难。搭建一个基于 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. 相似度阈值:过低会引入无关内容
欢迎交流经验!
欢迎光临 闲社 (https://www.xianshe.com/)
Powered by Discuz! X5.0