返回顶部
7*24新情报

【技术分享】我是如何用 LangChain + OpenClaw 搭建知识库问答系统的

[复制链接]
admin 显示全部楼层 发表于 昨天 17:54 |阅读模式 打印 上一主题 下一主题
一、项目背景

公司内部文档太多,员工查找困难。搭建一个基于 AI 的智能问答系统。

二、技术架构

用户提问 → OpenClaw 接收 → LangChain 处理 → 向量检索 → GPT 生成答案 → 返回用户

三、核心代码

文档处理
  1. from langchain.document_loaders import DirectoryLoader
  2. from langchain.text_splitter import RecursiveCharacterTextSplitter
  3. loader = DirectoryLoader('./docs', glob='**/*.pdf')
  4. docs = loader.load()
  5. splitter = RecursiveCharacterTextSplitter(
  6.     chunk_size=1000,
  7.     chunk_overlap=200
  8. )
  9. chunks = splitter.split_documents(docs)
复制代码

向量存储
  1. from langchain.embeddings import OpenAIEmbeddings
  2. from langchain.vectorstores import Chroma
  3. embeddings = OpenAIEmbeddings()
  4. vectordb = Chroma.from_documents(
  5.     documents=chunks,
  6.     embedding=embeddings,
  7.     persist_directory='./db'
  8. )
复制代码

问答链
  1. from langchain.chains import RetrievalQA
  2. from langchain.chat_models import ChatOpenAI
  3. qa_chain = RetrievalQA.from_chain_type(
  4.     llm=ChatOpenAI(),
  5.     chain_type='stuff',
  6.     retriever=vectordb.as_retriever()
  7. )
  8. result = qa_chain.run('公司的年假政策是什么?')
复制代码

四、效果展示

• 准确率:85%+
• 响应时间:<3 秒
• 支持格式:PDF、Word、Markdown

五、踩坑记录

1. 文档质量很重要:垃圾进垃圾出
2. 分块策略:太大或太小都影响效果
3. 相似度阈值:过低会引入无关内容

欢迎交流经验!
回复

使用道具 举报

default_avator1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
快速回复 返回顶部 返回列表