目录
第1章LangChain基础知识
1.1人工智能和LLM概述
1.1.1人工智能的发展历程
1.1.2LLM的兴起
1.1.3LLM的能力和局限性
1.2LLM应用及其挑战
1.2.1LLM应用的定义和特点
1.2.2LLM应用的常见类型
1.2.3构建LLM应用面临的挑战
1.3LangChain框架简介
1.3.1LangChain的设计理念和目标
1.3.2LangChain的核心组件
1.3.3LangChain的优势
1.4LangChain的应用场景
1.4.1构建支持知识增强的LLM应用
1.4.2实现基于多轮对话的聊天机器人
1.4.3开发面向特定领域的智能助手
1.4.4集成外部工具以执行复杂任务
1.5其他LLM应用开发框架
1.5.1常见的LLM应用开发框架
1.5.2特点和局限性
1.5.3为什么选择LangChain
小结
思考题
第2章搭建LangChain的开发环境
2.1选择开发语言和工具
2.1.1Python简介及其在人工智能领域的应用
2.1.2常用的Python集成开发环境(IDE)
2.1.3本书选用的开发语言和工具
2.2安装LangChain及其依赖库
2.2.1使用pip安装LangChain
2.2.2LangChain的主要依赖库
2.2.3处理安装过程中的常见问题
2.3配置LangChain开发环境
2.3.1创建并激活Python虚拟环境
2.3.2在IDE中配置LangChain项目
2.3.3LangChain的配置文件和环境变量
2.4运行第一个LangChain程序
2.4.1问答程序示例的实现步骤
2.4.2运行程序并分析结果
2.4.3示例程序的代码解析
2.4.4本书的开发环境搭建
2.4.5常见错误及解决方法
2.5LangChain开发资源
小结
思考题
第3章LangChain的基础组件
3.1快速入门案例
3.1.1LLM链
3.1.2检索链
3.1.3对话检索链
3.1.4代理
3.2模型(Model I/O)
3.2.1简介
3.2.2提示模板
3.2.3聊天模型
3.2.4大语言模型
3.2.5输出解析器
3.3文档检索
3.3.1关键模块
3.3.2文档加载器
3.3.3文本分割器
3.3.4文本嵌入模型
3.3.5检索器
3.3.6索引
3.4代理
3.4.1核心思想
3.4.2代理类型
3.4.3工具
3.4.4案例分析
3.5链
3.6记忆
3.7回调
小结
思考题
第4章LangChain表达式语言
4.1快速入门案例
4.2LCEL简化LLM的开发
4.3Runnable接口
4.3.1简介
4.3.2输入输出模式
4.3.3Runnable接口的方法
4.3.4异步事件流
4.3.5异步中间步骤流
4.3.6并行执行
4.4LangChain中的流式处理
4.4.1Runnable接口与流式处理方法
4.4.2流式处理LLM和聊天模型
4.4.3构建支持流式处理的链
4.4.4处理不支持流式处理的组件
4.4.5事件过滤
4.4.6在自定义工具中传播回调
4.4.7使用RunnableParallel操作输入输出
4.4.8并行执行
4.5使用LangChain表达式语言完成常见的任务
4.5.1Prompt+LLM
4.5.2RAG
4.5.3对话式检索链
4.5.4多链组合
4.5.5查询SQL数据库
4.5.6代理
4.5.7使用工具
4.5.8代码编写
小结
思考题
第5章LangChain实战: 构建智能问答系统
5.1智能问答系统概述
5.1.1什么是智能问答系统
5.1.2智能问答系统的应用场景和价值
5.1.3构建智能问答系统的关键技术和挑战
5.2基于LangChain的问答系统架构
5.2.1问答系统的整体架构和流程
5.2.2LangChain在问答系统中的角色和优势
5.2.3问答系统的核心组件和功能
5.3数据准备和预处理
5.3.1构建知识库的数据来源和格式
5.3.2使用LangChain的Document Loader加载数据
5.3.3使用LangChain的Text Splitter分割文本
5.4构建知识库索引
5.4.1什么是向量数据库和嵌入
5.4.2使用LangChain的Embedding类创建嵌入
5.4.3使用LangChain的Vector Store类创建向量数据库
5.5实现问答流程
5.5.1问题理解和分析
5.5.2知识检索和答案生成
5.5.3答案过滤和排序
5.6优化和改进问答系统
5.6.1引入反馈机制和交互设计
5.6.2持续学习和知识更新
5.6.3扩展问答系统的功能和应用
小结
思考题
第6章LangChain实战: 构建智能文档助手
6.1智能文档助手概述
6.1.1什么是智能文档助手
6.1.2智能文档助手的应用场景和价值
6.1.3构建智能文档助手的关键技术和挑战
6.2基于LangChain的文档助手架构
6.2.1文档助手架构和流程
6.2.2LangChain在文档助手中的优势
6.2.3文档助手的核心功能模块
6.3文档数据的处理与分析
6.3.1支持的文档格式和数据源
6.3.2使用LangChain的Document Loader加载文档
6.3.3文档结构分析和元数据提取
6.3.4文档内容的清洗和预处理
6.4文档语义理解和信息抽取
6.4.1文档主题和关键词提取
6.4.2命名实体识别和关系抽取
6.4.3文档摘要和重点句提取
6.4.4使用LangChain的LLM类实现语义理解
6.5基于文档的问答和对话
6.5.1将文档分割为知识片段
6.5.2使用LangChain的Retriever类检索知识
6.5.3使用LangChain的LLM类生成答案
6.5.4支持多轮对话和上下文理解
6.6文档助手的智能服务
6.6.1文档智能检索和推荐
6.6.2文档自动分类和聚类
6.6.3文档知识图谱构建与可视化
6.6.4文档智能问答
小结
思考题
第7章LangChain实战: 构建知识图谱应用
7.1知识图谱技术概述
7.1.1什么是知识图谱
7.1.2构建知识图谱的关键技术
7.2基于LangChain的知识图谱构建流程
7.2.1知识图谱构建的整体流程
7.2.2LangChain在知识图谱构建中的作用
7.2.3知识图谱构建的核心步骤和组件
7.3知识抽取和实体识别
7.3.1使用LangChain的命名实体识别组件
7.3.2使用LangChain的关系抽取组件
7.3.3基于规则和fewshot的知识抽取
7.3.4基于机器学习的知识抽取方法
7.4知识融合和本体构建
7.4.1实体链接和消歧
7.4.2知识去重和冲突消解
7.4.3本体构建与知识组织
7.4.4使用LangChain的Agents实现知识融合
7.5知识存储和查询
7.5.1知识图谱的存储方式和数据库选择
7.5.2知识图谱的查询语言和接口
7.5.3使用LangChain的GraphQL接口查询知识图谱
7.5.4基于自然语言的知识图谱查询
小结
思考题
参考文献