【2024保姆级教程】LangChain智能体开发从入门到实战:零基础手把手打造AI对话机器人|附企业级电商客服项目源码
LangChain是一个专为构建大模型应用设计的开发框架,其模块化设计和丰富的工具链让智能体开发更高效。内置Agent模板:快速实现工具调用、多轮对话、记忆管理无缝对接主流大模型:支持OpenAI、ChatGLM、DeepSeek等灵活可扩展:通过Chains组合实现复杂业务逻辑。
·
一、LangChain是什么?为什么是智能体开发的首选?
LangChain是一个专为构建大模型应用设计的开发框架,其模块化设计和丰富的工具链让智能体开发更高效。相比传统开发,LangChain提供以下核心优势:
- 内置Agent模板:快速实现工具调用、多轮对话、记忆管理
- 无缝对接主流大模型:支持OpenAI、ChatGLM、DeepSeek等
- 灵活可扩展:通过Chains组合实现复杂业务逻辑
二、快速开始:环境搭建与基础配置
-
安装依赖:
pip install langchain langchain-openai python-dotenv在
.env文件中配置OpenAI API Key:OPENAI_API_KEY = "sk-xxx" -
初始化智能体骨架:
from langchain.agents import AgentExecutor, create_openai_tools_agent from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate llm = ChatOpenAI(model="gpt-3.5-turbo")
三、新手入门:10分钟实现聊天机器人
目标:创建一个能回答基础问题的智能体
# 1. 定义Prompt模板
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个友好的人工智能助手"),
("human", "{input}")
])
# 2. 创建基础Agent
agent = create_openai_tools_agent(llm, tools=[], prompt=prompt)
# 3. 封装执行器
agent_executor = AgentExecutor(agent=agent, tools=[], verbose=True)
# 4. 运行测试
response = agent_executor.invoke({"input": "你好!你是谁?"})
print(response["output"])
输出效果:
你好!我是一个人工智能助手,随时准备为您提供帮助。
四、进阶实战:工具调用与多轮对话
场景:让智能体调用天气API查询实时数据
-
自定义工具开发:
from langchain.tools import tool @tool def get_weather(city: str) -> str: """获取指定城市的天气信息(模拟实现)""" weather_data = { "北京": "晴,25℃", "上海": "多云,28℃" } return weather_data.get(city, "暂不支持该城市") -
构建支持工具调用的智能体:
# 初始化带工具的Agent tools = [get_weather] agent = create_openai_tools_agent(llm, tools, prompt) executor = AgentExecutor(agent=agent, tools=tools, verbose=True) # 执行复杂查询 response = executor.invoke({ "input": "北京现在天气怎么样?" }) print(response["output"]) # 输出:北京当前天气:晴,25℃ -
实现多轮对话记忆:
from langchain.memory import ConversationBufferMemory memory = ConversationBufferMemory(memory_key="chat_history") executor_with_memory = AgentExecutor( agent=agent, tools=tools, memory=memory, verbose=True ) # 连续对话测试 executor_with_memory.invoke({"input": "北京天气如何?"}) # 回答天气 executor_with_memory.invoke({"input": "那上海呢?"}) # 能关联上下文
五、企业级项目:电商客服智能体开发
需求:处理退货申请,自动调用订单查询接口
-
定义业务工具集:
@tool def search_order(order_id: str) -> dict: """模拟订单查询系统""" return { "status": "已发货", "product": "智能手表" } @tool def create_return_request(order_id: str, reason: str) -> str: """创建退货工单""" return f"退货申请已提交(订单:{order_id},原因:{reason})" -
构建专业Agent:
# 定制系统Prompt system_prompt = """你是电商客服助手,严格按照以下规则处理请求: 1. 用户提及退货时,必须先查询订单状态 2. 仅允许已发货订单提交退货申请 """ prompt = ChatPromptTemplate.from_messages([ ("system", system_prompt), ("human", "{input}"), MessagesPlaceholder(variable_name="agent_scratchpad") ]) # 创建执行器 tools = [search_order, create_return_request] agent = create_openai_tools_agent(llm, tools, prompt) executor = AgentExecutor(agent=agent, tools=tools, max_iterations=3) -
测试业务逻辑:
response = executor.invoke({ "input": "我想退货,订单号123456" }) print(response["output"]) # 输出:已查询订单123456状态为已发货,已为您提交退货申请
六、精通技巧:高级功能与性能优化
-
异步并发处理:
# 异步调用提高响应速度 async def async_query(): response = await executor.ainvoke({"input": "北京天气"}) print(response["output"]) import asyncio asyncio.run(async_query()) -
自定义工具的高级用法:
from langchain.tools import StructuredTool def complex_calculation(a: float, b: float) -> dict: """执行复杂数学计算""" return { "sum": a + b, "product": a * b } calc_tool = StructuredTool.from_function( func=complex_calculation, name="AdvancedCalculator", description="执行复杂数学运算" ) -
监控与调试:
# 启用详细日志 import langchain langchain.debug = True # 查看中间步骤 response = executor.invoke( {"input": "计算3的平方"}, return_intermediate_steps=True ) print(response["intermediate_steps"])
你的第一个智能体已上线!
通过本文,你已经掌握了从基础对话到企业级智能体的开发全流程。LangChain的强大之处在于它的灵活架构与丰富生态,无论是简单的问答机器人还是复杂的业务系统都能游刃有余。
立即动手尝试文中的代码示例,在评论区分享你的智能体作品吧!关注我的账号,获取更多大模型开发实战技巧~ 💡
资源推荐:
更多推荐


所有评论(0)