5 步跑通个人知识库助手:LLM Universe 大模型应用开发完整教程
5 步跑通个人知识库助手LLM Universe 大模型应用开发完整教程【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程在线阅读地址https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universeLLM Universe 是 Datawhale 出品的面向零基础的小白的大模型应用开发教程全程用 LangChain 把大模型 API、向量知识库和 RAG 问答链串成一个可部署的个人知识库助手适合会基础 Python、没有算法背景的开发者跟着五章 Notebook 顺序跑就能从零做出第一个能问答的 RAG 应用。学这门课你会先搭好环境再调通大模型 API接着把自己的文档灌进向量库用检索问答链把它们接起来最后部署上线并学会评估优化。项目自带示例数据和全部代码每一步都能复制执行不用自己凑素材。环境三步配齐conda git 依赖项目不要求 GPU个人电脑或云服务器都能跑。建环境、拉代码、装依赖下面三条命令按顺序执行会创建名为llm-universe的 Python 3.10 虚拟环境并把仓库拉到本地conda create -n llm-universe python3.10 conda activate llm-universe git clone https://gitcode.com/GitHub_Trending/ll/llm-universe cd llm-universe pip install -r requirements.txt依赖下载慢时加清华镜像源加速pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple一个必须记住的版本约定仓库 requirements.txt 锁定的 langchain 系列是 0.3.0。第一章原文明确提醒请在llm-universe环境里用课程固定的 0.3.0不要照搬 1.x 官方文档里的代码想试 1.x另建一个环境单独玩。配完环境在 VSCode 装好 Python 和 Jupyter 插件给 notebook 右上角的解释器选中llm-universe就可以开工了。第一次调用大模型 API.env 加一个请求第二章要跑通 ChatGPT、百度文心、讯飞星火、智谱 GLM 几家大模型 API选一家你能申请到 key 的跟着做即可。密钥统一放 .env所有密钥都写在项目根目录的.env文件里代码通过python-dotenv自动加载不用把 key 硬编码进脚本。以 OpenAI 为例配置好OPENAI_API_KEY后直接发请求import os from dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) from openai import OpenAI client OpenAI() completion client.chat.completions.create( modelgpt-4o, messages[{role: user, content: Hello!}], ) print(completion.choices[0].message.content)给模型的输入叫 Prompt返回的叫 Completion这两个词后面章节会反复出现。把本地文档灌进向量库加载、切块、入库第三章干一件事把你的私有文档变成可检索的向量知识库。核心概念是 Embedding——用 Embedding API 把句子变成一串数字数字距离越近语义越接近这样检索就变成了找最近邻。仓库 data_base/knowledge_db/ 直接放好了南瓜书 PDF 和提示词工程教程作为示例文档不用自己凑素材。加载与切块PDF 用PyMuPDFLoaderMarkdown 用UnstructuredMarkdownLoader切块统一用RecursiveCharacterTextSplitterloader PyMuPDFLoader(data_base/knowledge_db/pumkin_book/pumpkin_book.pdf) docs loader.load() text_splitter RecursiveCharacterTextSplitter(chunk_size500, chunk_overlap50) split_docs text_splitter.split_documents(docs)存进 Chroma 向量库切好的文本块和 Embedding 一起存进 Chroma——一个轻量的本地向量数据库数据持久化在data_base/vector_db/chromafrom langchain_community.vectorstores import Chroma vectordb Chroma.from_documents( documentssplit_docs, embeddingembedding, persist_directory../../data_base/vector_db/chroma, )加载、清洗、切块、入库四步走完本地文档就真正变成了能被语义检索的知识库。搭好 RAG 检索问答链一个管道符串起三件事C4 先用 LangChain 把 LLM 接进来再用 LCELLangChain 表达式语言用|把组件串成流水线搭检索问答链核心代码长这样retriever vectordb.as_retriever() template 使用以下上下文来回答最后的问题。如果你不知道答案就说你不知道。 {context} 问题: {input} qa_chain ( {context: retriever, input: RunnablePassthrough()} | prompt | llm | StrOutputParser() ){context}占位符会自动填入检索到的内容模型只基于这些片段作答而不是凭空发挥这就是 RAG 能明显降低幻觉的关键。C4 顺带覆盖了两个进阶能力给检索链加聊天记录、给问题加信息压缩多轮追问场景会用到。一条命令部署 Streamlit 网页C4 目录下的 streamlit_app.py 已经把向量库、提示词、问答链全部集成好了在项目根目录执行一条命令即可启动本地网页streamlit run notebook/C4 构建 RAG 应用/streamlit_app.py浏览器打开后输入你的问题它先检索知识库再把片段喂给 LLM答案当场生成。想要线上访问C4 的部署小节还介绍了把应用推到 Streamlit Community Cloud 的做法。到这里个人知识库助手的网页版就正式上线了。评估与优化让答案更靠谱C5 教你量化地评估 RAG 应用效果包括多维评估、相似度计算、大模型当裁判打分等组合手段。优化方向分两条线生成侧改进提示词结构、标明知识来源、构造思维链提升回答质量与可信度检索侧调召回和排序保证相关文档真的被找到。评估方法见 docs/C5/C5.md。基础五章学完可以继续看 C7 的数据处理专题多类型文档、分块优化、向量模型选择与微调以及 docs/C6/ 里个人知识库助手与天机两个完整应用案例的拆解。常见问题问代码运行报 import 错误是不是依赖装错了大概率是 langchain 版本问题。课程锁定 0.3.0确认你当前激活的是llm-universe环境1.x 的写法不兼容别混用。问API 调用一直失败返回认证相关的报错检查项目根目录的.env是否创建、密钥名是否和代码里os.environ取的名字完全一致例如OPENAI_API_KEY、ZHIPUAI_API_KEY值两端不要留空格。问向量库能加载但检索结果驴唇不对马嘴九成是加载向量库时用的 Embedding 和建库时不一致向量必须同族才能对上换模型后要重建向量库。问换了文档想重建知识库怎么办把data_base/vector_db/chroma目录清掉重跑 C3 的建库代码即可旧的向量数据会被覆盖。收尾LLM Universe 把大模型应用开发拆成环境、API、向量库、RAG 链、部署、评估五步闭环跑完基础五章你就有了一份完整的项目经历。下一步可以从 notebook/C7 高级 RAG 技巧/ 的进阶章节入手也可以看看 C6 案例里真实应用是怎么组装这些组件的。【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程在线阅读地址https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考