什么是LangChain?如何安装、配置?
本文介绍了LangChain框架及其应用开发实践。LangChain是一个开源的大型语言模型开发框架,提供统一模型接口、提示词管理、记忆模块等功能,支持构建智能问答、客服系统等AI应用。文章详细说明了Python环境下的安装配置方法,包括DeepSeek模型接入示例和基本聊天功能实现,并展示了多轮对话和流式输出技术。此外,还介绍了知识库助手开发流程,涵盖文档加载、文本分割、向量数据库构建和检索增强
1.什么是LangChain?
LangChain是一个用于开发大型语言模型(LLM)驱动应用程序的开源框架,主要解决在使用LLM时遇到的模型调用、提示词管理、记忆模块、外部工具调用等模块标准化问题。以下是其核心特点和功能:
-
统一模型接口
支持多种LLM(如OpenAI、Anthropic、Hugging Face等),通过统一接口调用,方便切换模型。 -
提示词模板管理
提供模板化提示词,支持变量动态替换,避免硬编码,提高提示词的复用性和可维护性。 -
记忆模块
支持多轮对话记忆,自动保存历史对话记录,使模型能理解上下文,提升交互连贯性。 -
工具调用与Agent
可集成外部工具(如搜索引擎、数据库、API等),通过Agent自动决策调用工具,实现复杂任务处理。 -
检索增强生成(RAG)
支持从文档库中检索相关信息,结合LLM生成更精准的回答,适用于知识库问答场景。 -
模块化设计
核心模块包括LLM、Prompt、Chain、Memory、Tool等,可自由组合构建复杂应用。
适用场景:智能问答、文本生成、数据分析、客服系统、教育辅助等。
版本:Python版(最成熟)、JavaScript/TypeScript版(适合前端和Node.js应用)。
LangChain通过标准化和模块化设计,降低了LLM应用开发的复杂性,适合开发者快速构建AI应用。
2.如何安装、配置?
-
本次使用python环境,请提前配置好,具体操作不再赘述,网上有大量的操作指导。
-
在这里我使用pycharm工具进行项目创建及开发。
-
通过File-new project菜单创建好空项目后,控制台执行下面的命令
pip install langchain
-
此处我访问的大模型是DeepSeek,pip的版本要升级到25.1.1哦
python.exe -m pip install --upgrade pip #升级pip版本
pip install langchain_deepseek #下载依赖
-
开始声明模型,这里注意,我看了一下langchain_deepseek的源码,只需要声明环境变量'DEEPSEEK_API_KEY'和'DEEPSEEK_API_BASE',作为你的key和模型访问接口即可。
from langchain_deepseek import ChatDeepSeek
import os
import common.api_properties # 假设此模块包含必要的API配置
# 初始化 ChatDeepSeek 模型。
# 'model' 参数从环境变量中获取,例如 'deepseek-chat' 或 'deepseek-coder'。
# 'max_tokens' 设置模型在响应中可以生成的最大token数量。
llm = ChatDeepSeek(model=os.environ['MODEL'], max_tokens=1024)
# 使用简单的问候语调用语言模型。
# 'invoke' 方法将提示发送给大型语言模型并获取响应。
response = llm.invoke("你好,很高兴认识你!")
# 打印模型的回复到控制台。
print(response)
import os
# 设置 DeepSeek API 密钥和基础 URL。
# 建议将这些敏感信息存储在环境变量中,而不是硬编码在代码中。
os.environ['DEEPSEEK_API_KEY'] = 'sk-0001159011eb43b78c412955f80551ee'
os.environ['DEEPSEEK_API_BASE'] = 'https://api.deepseek.com/'
# 设置要使用的模型名称。
os.environ['MODEL'] = 'deepseek-chat'
-
运行一下代码看看结果,模型访问成功,能够正常返回对话结果
环境准备
pip install -qU "langchain[openai]"
langchain chat
基本聊天(需要先部署好大模型服务,参见公众号第一篇文章):
from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个擅长于解决回答各种问题的AI。"),
("human", "{question}"),
])
llm = ChatOllama(base_url="http://大模型服务ip:11222端口号", model="qwen2.5:14b", temperature=0.1)
messages = prompt.format_messages(question="你是谁")
output = llm.invoke(messages)
output_parser = StrOutputParser()
output_parser.invoke(output)
流式输出:
for chunk in llm.stream(messages):
print(chunk.content, end='', flush=True)
多轮对话:
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
memory = ConversationBufferMemory()
conversation = ConversationChain(
llm=llm,
memory=memory,
verbose=True
)
response = conversation.predict(input="推荐两种早餐,简单回答即可")
print(response) # 1. 燕麦粥配水果和坚果 2. 全麦吐司配鸡蛋和鳄梨
response = conversation.predict(input="随机选择上面一种告诉我做法")
print(response) # 好的,我们来随机选一个吧。这里给你全麦吐司配鸡蛋和鳄梨的做法:xxx
langchain LCEL语法
LangChain Expression Language,LCEL是一种新的语法,Langchain的表达式语言,使得处理LangChain和代理更加简单方便,LCEL提供了异步、批处理和流处理支持,增加了LLM的并行性,提高了效率。示例:
template = """
你是一个擅长于解决回答各种问题的AI。
问题:{question}
"""
prompt = ChatPromptTemplate.from_template(template)
chain = prompt | llm | output_parser
chain.invoke({"question": "1+1等于几"})
langchain实现知识库助手
# 导入必要的库和模块
from langchain_community.document_loaders import PyMuPDFLoader # 用于从PDF文件中加载文档内容
from langchain.text_splitter import RecursiveCharacterTextSplitter # 用于将长文本分割成较小的块
from langchain_community.embeddings import HuggingFaceEmbeddings # 用于生成文本的嵌入向量
from langchain_community.vectorstores import Chroma # 用于创建和管理向量数据库
from langchain.prompts import PromptTemplate # 用于定义提示模板
from langchain.chains import RetrievalQA # 用于构建检索增强生成(RAG)链
from langchain_community.chat_models import ChatOllama # 用于与Ollama聊天模型交互
from dotenv import load_dotenv, find_dotenv # 用于加载环境变量
# 加载环境变量文件(.env),以便从文件中读取配置信息
_ = load_dotenv(find_dotenv())
# 定义向量数据库的存储路径
persist_directory = './vector_db_chroma'
# 定义嵌入模型的路径,这里使用的是多语言MiniLM模型
emb_model = "./paraphrase-multilingual-MiniLM-L12-v2"
# 初始化嵌入模型,用于将文本转换为向量表示
embedding = HuggingFaceEmbeddings(model_name=emb_model)
# 定义创建向量数据库的函数
def create_db(pdf_path):
# 初始化PDF加载器,加载指定的PDF文件
loader = PyMuPDFLoader(pdf_path)
# 加载PDF文件的所有页面内容
pdf_pages = loader.load()
# 初始化文本分割器,将长文本分割成小块
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=500, # 每块文本的最大长度为500个字符
chunk_overlap=50 # 相邻文本块之间有50个字符的重叠
)
# 将PDF页面内容分割成较小的文本块
split_docs = text_splitter.split_documents(pdf_pages)
# 使用Chroma创建向量数据库,将分割后的文档转换为向量并存储
vectordb = Chroma.from_documents(
documents=split_docs[:], # 传入所有分割后的文档
embedding=embedding, # 使用指定的嵌入模型
persist_directory=persist_directory # 指定向量数据库的存储路径
)
# 将向量数据库持久化到磁盘
vectordb.persist()
# 定义RAG(检索增强生成)函数,用于回答用户的问题
def rag(question):
# 从指定路径加载已持久化的向量数据库
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embedding)
# 根据问题进行相似性搜索,获取与问题最相关的两个文档块
sim_docs = vectordb.similarity_search(question, k=2)
# 定义提示模板,用于指导模型如何根据上下文回答问题
template = """使用以下上下文来回答最后的问题。如果你不知道答案,就说你不知道,不要试图编造答案。尽量使答案简明扼要。
{context}
问题: {question}
答案:
"""
# 初始化Ollama聊天模型,指定模型服务地址、模型名称和温度参数
llm = ChatOllama(base_url="http://大模型服务器的IP:端口号", model="qwen2.5:14b", temperature=0.1)
# 创建提示模板对象,定义输入变量和模板内容
QA_CHAIN_PROMPT = PromptTemplate(input_variables=["context","question"], template=template)
# 初始化RAG链,结合检索器、语言模型和提示模板
qa_chain = RetrievalQA.from_chain_type(
llm, # 使用指定的Ollama模型
retriever=vectordb.as_retriever(), # 使用向量数据库作为检索器
return_source_documents=True, # 返回检索到的源文档
chain_type_kwargs={"prompt": QA_CHAIN_PROMPT} # 传入提示模板
)
# 执行RAG链,传入用户的问题并获取回答
result = qa_chain({"query": question})
# 打印问题和对应的回答
print(f"\n==============\nQ: {question}\nA: {result['result']}")
# 主程序入口
if __name__ == '__main__':
# create_db("员工指南.pdf") # 取消注释以创建向量数据库,传入员工指南PDF文件
rag("公司的使命和愿景") # 调用RAG函数,查询公司的使命和愿景
3.如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
01.大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K(数据来源:BOSS直聘报告)
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
02.如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐
所有评论(0)