这是一个跟随尚硅谷教程学习 LangChain 的实践项目,涵盖了从基础到实战的多个案例开发。
本教程从入门到实战,开发多个前沿项目案例,涵盖:
- 🤖 智能对话助手
- 📖 知识库问答助手
- 🌤️ 天气智能查询助理
- 等多个实战项目
通过实践这些项目,快速提升 LangChain 实战开发经验!
langchain-learn/
├── src/langchain_learn/ # 主要源代码
│ ├── chapter01-summary/ # LangChain 概述和 Hello World
│ ├── chapter02-model IO/ # Model IO 模块
│ │ ├── 01-模型的调用.ipynb
│ │ ├── 02-再谈模型的调用.ipynb
│ │ ├── 03-提示词模板之Prompt Template.ipynb
│ │ ├── 04-提示词模板之ChatPromptTemplate.ipynb
│ │ ├── 05-提示词模板之少量示例的提示词模板.ipynb
│ │ ├── 06-从文档中加载Prompt.ipynb
│ │ ├── 07-输出解析器的使用.ipynb
│ │ ├── 08-LangChain调用本地模型.ipynb
│ │ └── prompt/ # 提示词模板文件
│ ├── chapter03-Chains/ # Chains 模块
│ │ ├── 01-LCEL语法的理解.ipynb
│ │ ├── 02-传统的chain的使用.ipynb
│ │ └── 03-基于LCEL构建的Chains的类型.ipynb
│ ├── chapter04-Memory/ # Memory 模块
│ │ ├── 01-使用Memoery模块之前.ipynb
│ │ ├── 02-基础Memory模块的使用.ipynb
│ │ └── 03-其他Memory模块的使用.ipynb
│ ├── chapter05-Tools/ # Tools 模块
│ │ ├── 01-自定义工具.ipynb
│ │ ├── 02-大模型分析工具的调用.ipynb
│ │ └── a.txt
│ ├── chapter06-Agents/ # Agents 模块
│ │ ├── 01-调用工具之传统方式的使用.ipynb
│ │ ├── 02-调用工具之通用方式的使用.ipynb
│ │ ├── 03-Agent嵌入记忆之传统方式的使用.ipynb
│ │ └── 04-Agent嵌入记忆之通用方式的使用.ipynb
│ └── chapter07-Retrieval/ # Retrieval 模块
│ ├── 01-文档加载器 Document Loaders的使用.ipynb
│ ├── 02-文档拆分器 Text Splitters的使用.ipynb
│ ├── 03-文档嵌入模型Text Embedding Models的使用.ipynb
│ ├── 04-向量数据库的使用.ipynb
│ ├── 05-检索器(召回器) Retrievers的使用.ipynb
│ ├── 06-综合案例:智能对话助手.ipynb
│ ├── 07-综合案例:知识库问答助手.ipynb
│ └── asset/ # 资源文件
│ ├── chroma_db/ # 向量数据库文件
│ └── load/ # 文档加载示例文件
├── docs/ # 学习文档和资料
│ ├── 01-LangChain使用概述.pdf
│ ├── 02-LangChain使用之Model IO.pdf
│ ├── 03-LangChain使用之Chains.pdf
│ ├── 04-LangChain使用之Memory.pdf
│ ├── 05-LangChain使用之Tools.pdf
│ ├── 06-LangChain使用之Agents.pdf
│ ├── 07-LangChain使用之Retrieval.pdf
│ └── 傻妞的使用说明书.md
├── examples/ # 示例文件
│ └── 广电套餐合集.pdf
├── tests/ # 测试代码
│ ├── 01-大模型的异步调用.py
│ ├── Tests01.py
│ ├── tests02.py
│ ├── tests03.py
│ └── 项目的目录结构读取.py
├── main.py # 主程序入口
├── pyproject.toml # 项目配置
├── uv.lock # 依赖锁定文件
├── .env # 环境变量(本地配置)
├── .gitignore # Git忽略文件
└── .python-version # Python版本配置
- Python 3.x
- uv 包管理器
本项目使用 uv 进行依赖管理:
# 安装依赖
uv add <package_name>
# 或根据 pyproject.toml 安装所有依赖
uv sync在项目根目录创建或更新 .env 文件,添加所需的大模型 API Key:
OPENAI_API_KEY=your_openai_api_key_here
OTHER_API_KEY=your_other_api_key_here.env 文件已添加到 .gitignore,不会被上传到 GitHub。
- Chapter 01: LangChain 概述和 Hello World
- Chapter 02: Model IO 模块
- 模型的调用
- 提示词模板 (Prompt Template, ChatPromptTemplate)
- 输出解析器
- 本地模型调用
- Chapter 03: Chains 模块
- LCEL 语法理解
- 传统 Chain 使用
- 基于 LCEL 的 Chains 类型
- Chapter 04: Memory 模块
- 基础 Memory 使用
- 其他 Memory 模块
- Chapter 05: Tools 模块
- 自定义工具
- 大模型分析工具调用
- Chapter 06: Agents 模块
- 传统方式调用工具
- 通用方式调用工具
- Agent 嵌入记忆功能
- Chapter 07: Retrieval 模块
- 文档加载器使用
- 文档拆分器使用
- 文档嵌入模型
- 向量数据库使用
- 检索器使用
- 综合案例:智能对话助手
- 综合案例:知识库问答助手
- LangChain: 大语言模型应用开发框架
- uv: 快速的 Python 包管理器和解析器
- Jupyter Notebook: 交互式编程环境
- Python 3.x: 编程语言
- ChromaDB: 向量数据库
- 多种文档格式支持: PDF, CSV, JSON, HTML, Markdown 等
- 每个章节的代码都在
src/langchain_learn/对应的目录下 - 使用 Jupyter Notebook 打开
.ipynb文件进行交互式学习 - 参考
docs/目录下的 PDF 文档获取详细理论说明 - 在运行代码前,请确保已正确配置 API Keys
- 测试代码位于
tests/目录,可用于验证功能 - 示例文档位于
examples/目录,用于测试文档处理功能
- 包管理器:
uv - 虚拟环境:
uv自动管理 - 代码格式: 遵循 Python PEP8 规范
- 开发环境: Jupyter Notebook
项目包含多个测试文件,位于 tests/ 目录:
# 运行测试
python tests/Tests01.py
python tests/tests02.py
python tests/tests03.py本项目仅用于学习目的,遵循原教程的版权声明。
- 感谢尚硅谷提供的优质 LangChain 教程
- 感谢 LangChain 社区提供的强大框架支持
- 感谢所有开源项目的贡献者
开始你的 LangChain 学习之旅吧! 🚀