一、定义
langchain是大模型应用的开发框架,简化大模型应用的开发、测试、评估、运营。不是大模型的开发、训练框架,比如想要从0-1训练一个LLM模型,使用PyTorch框架更合适。
二、用法
(1)安装新版本python,3.10+。 # 安装方法可以问元宝
(2)安装依赖包
pip install langchain
pip install langchain_core
(3)聊天机器人
from langchain.chat_models import init_chat_model
model = init_chat_model("gpt-4o-mini", model_provider="openai")
print(model.invoke("你好"))
(4)翻译小助手
# 使用chat model和prompt模版构建llm应用
from langchain.chat_models import init_chat_model
from langchain_core.messages import HumanMessage, SystemMessage
model = init_chat_model("gpt-4o-mini", model_provider="openai")
# 定义系统消息(设定GPT角色)
system_message = SystemMessage(content="你是一个专业的中英翻译助手。请将用户输入的中文文字翻译为英文,只翻译最新输入的内容,不要翻译历史内容。")
while True:
user_input = input("请输入要翻译的文字: ")
messages = [
system_message,
HumanMessage(content=user_input)
]
response = model.invoke(messages)
print(f"翻译结果: {response.content}")
提示:代码直接运行可能失败。依赖环境变量中openai的密钥。
三、适用场景
用于大模型应用的开发,比如聊天机器人(聊天+查询互联网资料+查询公司内部系统数据)、智能问答机器人(知识库搜索)、翻译小助手。
一个业务场景示例:
场景:devops领域包含发布系统,发布任务执行失败时,希望能够快速定位原因:系统问题(db故障)、业务服务自身问题(端口没有监听)。如果是业务服务问题,提供具体的报错日志(省去人工登机器找日志)。
解决方案:基于langchain框架开发一个agent,只有一个工具:根据任务链接和机器IP分析失败原因(采用规则匹配识别系统问题,收集服务启动日志后丢给大模型,让大模型总结出报错日志&可能原因)。
四、实现机制&架构
1、核心层,langchain-core
提供:基础抽象(Runnable接口(链式调用时需实现该接口,invoke函数)、提示词模版(xxPromptTemplate)、记忆管理(短期、长期记忆,基于内存、向量数据库、KV数据库)),定义组件的交互标准。
2、集成层,langchain-community
集成第三方sdk。比如openai、deepseek、混元等LLM、Hugging Face的sdk。通过model = ChatOpenAI(xx) 可以快速构建一个LLM客户端。
3、功能层,langchain
提供:链(Chains,提示词模板|LLM|输出格式化)、代理(Agents智能体,AgentExecutor)、检索器(Retrieval,RetrievalQA) 等sdk包。
4、生产层,LangServe、LangSmith
提供:LLM调用的调试、监控。记录每一次LLM调用。
注:LangGraph框架不包含在这里,其侧重解决复杂工作流编排问题,其他问题仍然用上面这些工具包处理。
五、功能模块及作用
1、模型,Models
作用:统一各LLM大模型的接口,包含文本生成(包含聊天、翻译、分类、完形填空等)、对话(聊天单独一个工具类,简化使用)、嵌入(文本转嵌入向量)等任务。
关键组件:
LLM:通用的文本生成模型(如GPT-4、Claude)。
![]()
ChatModel:对话专用模型(支持多轮对话,记忆)。
Embedding:文本向量化模型(如OpenAI Embedding、BERT、BGE)。
示例:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model_name="gpt-4-turbo") # 初始化对话模型
2、链,Chains
作用:将多个组件串联为任务流程。
关键组件:
LLMChain:基础链,直接调用LLM。
示例:
from langchain.chat_models import init_chat_model
model = init_chat_model("gpt-4o-mini", model_provider="openai")
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.output_parsers import StrOutputParser
# 创建提示模板
prompt_template = ChatPromptTemplate([
("system", "你是一个专业的中英翻译助手。请将用户输入的中文文字翻译为英文。"),
MessagesPlaceholder("msgs")
])
# 直接调用
translation_chain = prompt_template | model | StrOutputParser()
result1 = translation_chain.invoke({"msgs": [HumanMessage

最低0.47元/天 解锁文章
1692

被折叠的 条评论
为什么被折叠?



