手把手教程:用 llm-universe 搭一个 AI 知识库助手

发布时间:2026/10/1 9:33:34
手把手教程:用 llm-universe 搭一个 AI 知识库助手 手把手教程用 llm-universe 搭一个 AI 知识库助手【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程在线阅读地址https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe上周有同事问我能不能让 AI 只根据我们自己部门的文档回答问题别再瞎编这就是 RAG检索增强生成——先让 AI 翻你的资料再回答而不是靠模型自己脑补。开源教程 llm-universe 用一个个人知识库助手项目带你完整走一遍流程你会大模型 API、搭知识库、部署问答网页只要会基础 Python几个小时内就能搭出同款。全局一张图知识库助手是怎么运转的llm-universe 不先讲理论而是直接把这个应用拆成五层最底下 LLM 层把 GPT、文心、星火、智谱的 API 统一封装数据层负责把原始文档做 Embedding把文本翻译成一串数字数字越接近代表语义越接近数据库层用 Chroma 这类向量数据库按数字相似度存和查应用层是 LangChain 检索问答链最上面服务层是 Streamlit 网页。整个课程就围绕这五层展开学完等于完整走了一遍大模型应用开发流程。图1个人知识库助手五层架构LangChain 贯穿各层把组件串起来10 分钟看到第一次问答效果项目不需要 GPU、不训练模型全部通过调用各大模型厂商的 API 完成一台普通电脑就能跑。如果你习惯网页开发可以直接用 GitHub Codespaces 在浏览器里开环境docs/C1 的 C1.md 第 1.6 节有逐步截图属于选修内容。本地路径更简单三条命令打底git clone https://gitcode.com/GitHub_Trending/ll/llm-universe cd llm-universe conda create -n llm python3.10 -y conda activate llm pip install -r requirements.txt第一行把教程拉到本地第二行建一个干净的虚拟环境不污染你机器上其他项目第三行装好 16 个依赖版本在 requirements.txt 里锁死避免我电脑能跑你电脑报错。然后把 API 密钥写进项目根目录的.env文件任选一家厂商国内用户用智谱最省心OPENAI_API_KEY你的密钥 ZHIPUAI_API_KEY你的密钥代码会自动加载 .env密钥不用写进代码里。最后运行课程最终交付物streamlit run notebook/C4 构建 RAG 应用/streamlit_app.py页面起来后左侧 Chatbot 就能提问右侧可以上传你自己的文档并点知识库文件向量化不上传时默认用仓库自带 data_base/ 里的知识库先尝到效果再说。核心能力拆解从 API 调用到 RAG 问答第一步跟大模型 API 说话各家大模型的 API 格式互不兼容SDK 也各写各的。这门课用 LangChain——相当于搭 LLM 应用的一条工具腰带——把 GPT、文心一言、讯飞星火、智谱 GLM 统一封装换模型只改实例化那几行。C2 章节依次演示原生 API 调用、封装成 LangChain LLM、封装成 FastAPI 三种姿势Prompt Engineering 也放在这一章讲透。图22018-2026 主流大模型时间线C1 章节配套图帮你快速建立模型版图第二步把你的文档变成可检索的知识库你手里的文档不能整篇丢给模型——上下文装不下检索也粗。课程用 RecursiveCharacterTextSplitter 把长文切成约 500 字符的小块块与块之间留 50 字符重叠防止一句话的语义被拦腰截断from langchain.text_splitter import RecursiveCharacterTextSplitter text_splitter RecursiveCharacterTextSplitter( chunk_size500, chunk_overlap50 ) chunks text_splitter.split_documents(documents)图3chunk_size 与 chunk_overlap 的关系重叠区避免语义被切断接着调用厂商的 Embedding API 把每块文本转向量存进 Chroma。仓库自带智谱、百度的 embedding 封装代码见 notebook/C3 目录处理长列表时自动按 64 条一批发送正好卡在厂商 API 的单次上限内不用自己写限流。第三步检索接上生成拼出 RAG 问答链知识库建好后问答链的逻辑是用户问题先向量化从 Chroma 拉出最相关的几段塞进 prompt 让大模型作答。C4 的代码里有个值得学的细节——多轮对话时不直接拿原始问题去检索而是先用 LLM 把用户结合上下文到底在问什么总结出来再查否则追问里的这个它会让检索跑偏vectordb Chroma( persist_directorydata_base/vector_db/chroma, embedding_functionembedding ) retriever vectordb.as_retriever()图4一个设计清晰的 Prompt 示例C2 章节反复打磨角色、任务、输出格式三要素三个高频坑 ⚠️ 及解法启动报 KeyError 或 API 返回 401现象代码一跑就 KeyError或请求被拒。 原因.env 没建在项目根目录或键名写法有空格。 解法确认 .env 与 requirements.txt 同级格式严格是 KEY值不加引号。pip install 极慢或超时现象装依赖卡半小时还失败。 原因默认源在海外。 解法安装命令加-i https://pypi.tuna.tsinghua.edu.cn/simple课程推荐的镜像源。多轮越聊越跑题现象第一问正常追问开始答非所问。 原因拿含代词的原句直接检索向量库里找不到对应内容。 解法照 C4 的写法加问题改写分支先用 LLM 归纳意图再检索。跑完之后接下来看什么docs/C3/C3.md向量库完整一章刚跑通 quick start 的人看重点理解块大小为什么影响召回notebook/C4 构建 RAG 应用/C4.ipynb检索问答链完整代码逐 cell 对照着读docs/C5/C5.md评估与优化应用已经跑起来、想量化效果的人看核心是找 Bad Case 并回归验证notebook/C7 高级 RAG 技巧/2. 数据处理/分块优化、向量模型选型乃至微调向量模型目标是把检索召回率往上顶的进阶内容docs/C6/案例1个人知识库助手.md完整案例拆解想脱离教程独立复刻一个自己的应用时看【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程在线阅读地址https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考