1、 引言
1.1 LangChain是什么?
在深入探讨之前,我们先明确一个核心定义:LangChain是2022年10月底由哈佛大学的Harrison Chase发起的开源大语言模型应用开发框架。简单来说,它像一个"连接器",能把大语言模型(LLM)与各类工具、数据、API等组件串联起来,让开发者更高效地构建复杂的AI应用。
如果直接问AI工具对LangChain的理解,比如Claude的回答可能是:
LangChain是一个专注于大语言模型应用落地的开源框架,它的核心价值在于提供了一套标准化的组件和工作流,让开发者无需重复造轮子就能快速搭建从简单对话到复杂智能体的各类应用。它支持与主流LLM(如GPT系列、Llama、文心一言等)、数据库(向量库、关系库等)、第三方服务(邮件、日历等)的集成,通过"链(Chain)"的形式实现能力的组合与扩展。
从名称拆解来看,"Lang"直指大语言模型这一核心动力,“Chain"则强调其"连接"特性——通过将LLM与其他组件形成闭环链路,让AI从"单一文本生成"升级为"具备处理复杂任务能力的系统”。要理解这种连接的价值,我们需要先搞清楚:什么是工程?什么是AI工程?
1.2 什么是AI工程?
先回顾"工程"的经典定义:
工程是指以预设目标为导向,运用科学知识和技术手段,通过有组织的人力,将现有实体(自然或人造)转化为具有预期价值的产品的过程。
这个定义中,"目标"决定了问题边界和最终形态,"人"是价值实现的核心,"实体"是原材料,"科学与技术"是实现手段。将这一框架迁移到AI领域,"AI工程"的关键要素可解读为:
- 目标:具体的AI需求场景,如智能客服、合同分析、代码生成等;
- 人:AI开发者、算法工程师、产品团队等实施角色;
- 科学与技术:大语言模型、机器学习算法、算力支撑、工具链等;
- 实体:业务数据、知识库、历史交互记录等输入材料;
- 产品:可落地的AI应用,如对话机器人、内容生成平台等。
简单说,AI工程就是"用系统化方法让AI能力落地产生价值"的过程——而LangChain正是为这个过程提供"脚手架"的工具。
1.3 LangChain的设计逻辑
如果我们站在框架设计者的角度,要打造一个通用的AI工程工具,需要回答三个核心问题:
- 这个框架要解决什么具体问题?(对应目标与产品)
- 如何让开发者用起来更高效?(对应"人"的体验)
- 如何保证框架能适配不同场景?(对应实体、技术的扩展性)
结合LangChain的发展实践,答案已逐渐清晰:
- 目标层面:LangChain聚焦于"扩展LLM的能力边界"。如果把LLM比作"大脑",LangChain就是"手脚和神经"——帮LLM处理记忆、调用工具、连接数据,让"思考"能转化为"行动"。
- 开发者体验:通过LangChain表达式语言(LCEL)实现声明式编程,简化复杂流程的拼接(比如用
|
符号像搭积木一样组合组件)。 - 扩展性:抽象出Models(模型)、Prompts(提示词)、Indexes(索引)、Memory(记忆)、Chains(链)、Agents(智能体)六大核心组件,每个组件都可独立扩展(如Models支持接入GPT-4、Llama 3等不同模型)。
理解LLM是掌握LangChain的前提。接下来,我们从最基础的LLM API调用开始,一步步拆解LangChain如何实现AI工程的系统化构建。
2、 环境准备
搭建LangChain开发环境需要三个核心要素,这里补充一些实操细节:
-
Python环境:建议3.8及以上版本(3.10+兼容性更佳)。
- 下载地址:Python官网
- 注意:Windows用户需勾选"Add Python to PATH",避免后续路径配置问题。
-
OpenAI API密钥:需自行申请(国内用户可通过合规代理渠道获取)。
- 申请地址:OpenAI平台
- 配置方式:终端执行
export OPENAI_API_KEY="你的密钥"
(Windows用set
替代export
)。
-
安装LangChain:推荐使用最新稳定版,可附加常用集成包。
# 基础安装 pip install langchain==0.1.16 # 截至2024年5月的稳定版 # 安装OpenAI集成(含ChatOpenAI等组件) pip install langchain-openai # 可选:安装文档加载、向量库等扩展 pip install langchain-community faiss-cpu pypdf
3、 设计推演:从API到智能体的演进
架构设计中有个经典思路叫"乐高式架构"——通过标准化组件的组合,实现复杂系统的快速搭建。LangChain正是这一思路的典型实践:先抽象出最小功能单元,再通过"链"的形式组合出复杂能力。我们从最基础的LLM调用开始,逐步拆解这一过程。
3.1 基础能力:LLM API调用
LLM的核心能力是文本生成,而API是调用这一能力的入口。以OpenAI为例,其提供的文本生成接口经历了多次迭代。
3.1.1 最新接口:Chat Completion API
这是目前(2024年)最常用的接口,支持多轮对话(通过messages
参数传递历史),兼容gpt-3.5-turbo、gpt-4等模型。
import os
import requests
# 从环境变量获取密钥
api_key = os.getenv('OPENAI_API_KEY')
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
# 构造请求数据:问"什么是图计算"
data = {
'model': 'gpt-4',
'messages': [{'role': 'user', 'content': '什么是图计算?'}],
'temperature': 0.7 # 控制输出随机性(0-2,值越低越确定)
}
# 调用API
response = requests.post(
'https://api.openai.com/v1/chat/completions',
json=data,
headers=headers
)
# 解析结果
if response.status_code == 200:
answer = response.json()['choices'][0]['message']['content']
print(f"AI回答:{answer}")
else:
print(f"请求失败:{response.status_code}")
输出示例:
AI回答:图计算是一种针对图形结构数据的计算模型,通过节点(实体)和边(关系)的形式表达数据,并基于这种结构执行分析任务(如社交网络关系挖掘、路径规划等)。其核心是通过迭代更新节点状态,揭示数据间的复杂关联。
3.1.2 历史接口:Completion API
2023年7月后停止维护,仅支持gpt-3.5-turbo-instruct等旧模型,输入为纯文本而非对话格式:
data = {
'model': 'gpt-3.5-turbo-instruct',
'prompt': '什么是图计算?', # 直接传文本,无角色区分
'max_tokens': 1024 # 限制输出长度
}
response = requests.post(
'https://api.openai.com/v1/completions',
json=data,
headers=headers
)
answer = response.json()['choices'][0]['text']
除文本生成外,OpenAI还提供函数调用、嵌入(Embedding)、多模态等接口,这些都是构建复杂AI应用的基础"零件"。
3.2 对话能力:实现多轮交互
ChatGPT的爆发让"智能对话"成为AI的标志性能力,而这一能力的核心是"记忆对话历史"。通过Chat Completion API的messages
参数,我们可以手动维护对话上下文。
# 用列表存储对话历史
chat_history = []
def chat(message):
# 记录用户输入
chat_history.append({'role': 'user', 'content': message})
print(f"用户:{message}")
# 调用API
response = requests.post(
'https://api.openai.com/v1/chat/completions',
json={
'model': 'gpt-4',
'messages': chat_history,
'temperature': 0.7
},
headers=headers
)
# 记录AI回复并输出
if response.status_code == 200:
ai_reply = response.json()['choices'][0]['message']['content']
chat_history.append({'role': 'assistant', 'content': ai_reply})
print(f"AI:{ai_reply}")
else:
print(f"错误:{response.status_code}")
# 测试多轮对话
chat("什么是图计算?")
chat("刚才我问的问题是什么?") # 依赖历史上下文
输出示例:
用户:什么是图计算?
AI:图计算是一种处理图形结构数据的计算模型,通过节点和边表示数据关系,常用于分析复杂关联(如社交网络、供应链等)。
用户:刚才我问的问题是什么?
AI:你刚才问的是"什么是图计算?"
3.3 简化调用:使用SDK封装
直接调用REST API需要处理请求构造、结果解析等重复工作,而LangChain提供的SDK可以大幅简化这一过程。以langchain-openai
为例:
from langchain_openai import ChatOpenAI
# 初始化LLM对象(自动读取环境变量中的密钥)
llm = ChatOpenAI(model_name='gpt-4', temperature=0.7)
# 直接调用,无需手动构造HTTP请求
response = llm.invoke("什么是图计算?")
print(f"AI回答:{response.content}")
输出示例:
AI回答:图计算是一种针对图结构数据的计算范式,专注于挖掘节点与边之间的关联关系,广泛应用于推荐系统、欺诈检测等场景。
相比原生API,SDK的优势在于:自动处理认证、统一接口(切换模型时无需修改调用逻辑)、内置错误处理等。
3.4 数据抽象:输入输出标准化
LLM的输入(提示词)和输出(结果)本质是文本,但实际应用中往往需要格式化处理(如动态填充变量、提取结构化数据)。LangChain通过Prompt
和OutputParser
解决这一问题。
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
# 1. 定义提示词模板(支持变量填充)
prompt = ChatPromptTemplate.from_template(
"请用{language}解释什么是{concept}?"
)
# 2. 定义输出解析器(这里简单转为字符串)
output_parser = StrOutputParser()
# 3. 初始化LLM
llm = ChatOpenAI(model_name='gpt-4')
# 4. 执行流程:填充模板 → 调用LLM → 解析结果
filled_prompt = prompt.invoke({"language": "中文", "concept": "图计算"})
response = llm.invoke(filled_prompt)
answer = output_parser.invoke(response)
print(answer)
输出示例:
图计算是一种专门处理图结构数据的计算方式。在图结构中,数据被分为"节点"(代表实体)和"边"(代表实体间的关系),图计算通过分析这些节点和边,挖掘数据背后的关联规律,比如社交网络中人与人的连接、交通网络中路况的依赖关系等。
3.5 能力组合:Chain的核心价值
单独的输入、模型、输出组件虽能工作,但组合方式不够直观。LangChain的"链(Chain)"通过类似Unix管道(|
)的语法,将组件串联成可复用的流程。
3.5.1 基础链:简化调用流程
# 用|符号串联组件,形成链
chain = prompt | llm | output_parser
# 直接调用链(自动传递参数)
answer = chain.invoke({"language": "中文", "concept": "图计算"})
print(answer)
这行chain = prompt | llm | output_parser
就是LangChain的"Hello World",它清晰表达了"输入→处理→输出"的流程。
3.5.2 参数透传:简化调用格式
通过RunnablePassthrough
可以直接传递原始输入,无需显式指定变量名:
from langchain_core.runnables import RunnablePassthrough
# 定义链:将输入直接作为question变量传入prompt
chain = RunnablePassthrough() | ChatPromptTemplate.from_template("{question}") | llm | output_parser
# 直接传字符串,无需字典包装
answer = chain.invoke("什么是图计算?")
print(answer)
3.5.3 复杂流程:DAG结构的链
Chain支持分叉、合并,形成类似流程图(DAG)的复杂结构。例如,先生成一个主题,再分别分析其优缺点,最后汇总结论:
from operator import itemgetter
from langchain_core.runnables import RunnableParallel
# 1. 定义子链
# 生成主题(如"常见水果"→"苹果")
topic_chain = ChatPromptTemplate.from_template("生成一个'{input}'的具体例子") | llm | output_parser
# 分析优点
pros_chain = ChatPromptTemplate.from_template("列举{topic}的3个优点") | llm | output_parser
# 分析缺点
cons_chain = ChatPromptTemplate.from_template("列举{topic}的3个缺点") | llm | output_parser
# 汇总结论
summary_chain = ChatPromptTemplate.from_template(
"总结{topic}的优缺点:\n优点:{pros}\n缺点:{cons}"
) | llm | output_parser
# 2. 组合成DAG链
# 第一步:生成主题并传递
step1 = topic_chain | {"topic": RunnablePassthrough()}
# 第二步:并行分析优缺点,同时保留主题
step2 = step1 | RunnableParallel({
"pros": pros_chain,
"cons": cons_chain,
"topic": itemgetter("topic") # 从step1结果中提取topic
})
# 第三步:汇总
final_chain = step2 | summary_chain
# 执行
result = final_chain.invoke({"input": "常见水果"})
print(result)
输出示例:
苹果的优点包括:1. 富含维生素和膳食纤维,有益健康;2. 饱腹感强,适合减肥;3. 易储存,保质期较长。缺点包括:1. 过量食用可能导致肠胃不适;2. 表皮可能残留农药,需清洗干净;3. 部分人群对苹果过敏。
3.5.4 循环能力:LangGraph的补充
标准Chain的DAG结构不支持循环(如"反复调用工具直到完成任务"),而LangChain社区的LangGraph项目专门解决这一问题。它允许定义带条件分支、循环的工作流,特别适合构建需要多轮决策的智能体。
例如,用LangGraph实现一个"持续检索直到回答准确"的流程:
# 伪代码示意
from langgraph.graph import StateGraph, END
# 定义状态(存储问题、答案、检索结果)
class State:
question: str
answer: str = ""
context: str = ""
# 定义节点:检索相关信息
def retrieve(state):
return {"context": f"检索到关于{state.question}的信息:..."}
# 定义节点:生成回答
def generate(state):
if len(state.context) < 10: # 如果信息不足,返回需要继续检索
return {"answer": "需要更多信息"}
return {"answer": f"基于{state.context},回答:..."}
# 定义条件分支:是否需要继续检索
def should_continue(state):
return "retrieve" if state.answer == "需要更多信息" else END
# 构建图
graph = StateGraph(State)
graph.add_node("retrieve", retrieve)
graph.add_node("generate", generate)
graph.set_entry_point("retrieve")
graph.add_edge("retrieve", "generate")
graph.add_conditional_edges("generate", should_continue)
# 运行
app = graph.compile()
result = app.invoke({"question": "图计算的最新应用"})
print(result.answer)
LangGraph的设计灵感来自分布式计算框架(如Pregel),特别适合需要迭代优化的场景。
3.6 记忆能力:让AI记住上下文
LLM本身是"健忘的"(每次调用独立),要实现多轮对话需手动维护历史。LangChain的Memory
组件专门解决这一问题。
3.6.1 基础记忆:ConversationBufferMemory
from langchain.chains import LLMChain
from langchain.memory import ConversationBufferMemory
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
# 1. 定义提示词(包含历史消息占位符)
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个助手,会记住之前的对话。"),
MessagesPlaceholder(variable_name="chat_history"), # 填充历史
("human", "{question}")
])
# 2. 初始化记忆(存储在内存中)
memory = ConversationBufferMemory(
memory_key="chat_history", # 与提示词中的变量名对应
return_messages=True # 返回Message对象而非字符串
)
# 3. 创建带记忆的链
llm = ChatOpenAI(model_name='gpt-4')
chain = LLMChain(llm=llm, prompt=prompt, memory=memory)
# 4. 多轮对话
print(chain.run(question="什么是图计算?"))
print(chain.run(question="我刚才问的是什么?")) # 依赖记忆
输出示例:
图计算是一种处理图结构数据的计算模型,通过节点和边分析实体关系。
你刚才问的是"什么是图计算?"
3.6.2 更灵活的历史管理:RunnableWithMessageHistory
对于需要区分多会话(如多用户场景)的情况,RunnableWithMessageHistory
更合适,它支持通过会话ID管理不同的历史记录:
from langchain_community.chat_message_histories import ChatMessageHistory
from langchain_core.runnables.history import RunnableWithMessageHistory
# 1. 定义基础链(带历史占位符)
prompt = ChatPromptTemplate.from_messages([
("system", "你是助手,会记住对话历史。"),
MessagesPlaceholder(variable_name="history"),
("human", "{input}")
])
base_chain = prompt | llm | output_parser
# 2. 定义历史存储(按会话ID区分)
store = {} # 模拟存储:{session_id: ChatMessageHistory}
def get_history(session_id):
if session_id not in store:
store[session_id] = ChatMessageHistory()
return store[session_id]
# 3. 包装成带历史的链
chain_with_history = RunnableWithMessageHistory(
base_chain,
get_history, # 如何获取历史
input_messages_key="input", # 输入参数名
history_messages_key="history" # 历史参数名
)
# 4. 多会话测试
# 会话1
print(chain_with_history.invoke(
{"input": "我叫小明"},
config={"configurable": {"session_id": "user1"}}
))
# 会话2(不共享历史)
print(chain_with_history.invoke(
{"input": "我叫小红"},
config={"configurable": {"session_id": "user2"}}
))
# 会话1继续(记住名字)
print(chain_with_history.invoke(
{"input": "我叫什么?"},
config={"configurable": {"session_id": "user1"}}
)) # 输出:你叫小明
3.7 消除幻觉:RAG技术
LLM在专业领域常"一本正经地胡说"(幻觉),而检索增强生成(RAG)通过"先检索专业文档,再生成回答"的方式解决这一问题。简单说,RAG让AI"带着参考资料说话"。
RAG核心流程实现
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_core.documents import Document
from langchain_core.runnables import RunnableParallel
from langchain_openai import OpenAIEmbeddings
# 1. 准备文档(示例:关于蚂蚁开源图数据库TuGraph的信息)
docs = [Document(page_content="TuGraph是蚂蚁集团开源的图数据库产品,支持高并发查询和复杂图算法。")]
# 2. 文档处理
# 分割文档(适配模型上下文长度)
text_splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=20)
split_docs = text_splitter.split_documents(docs)
# 嵌入文档(转为向量,便于相似性检索)
embeddings = OpenAIEmbeddings()
vector_store = FAISS.from_documents(split_docs, embeddings)
# 创建检索器(从向量库中查相关文档)
retriever = vector_store.as_retriever()
# 3. 构建RAG链
# 基础链(无检索,可能幻觉)
chain_no_rag = ChatPromptTemplate.from_template("{input}") | llm | output_parser
# RAG链(先检索,再生成)
rag_chain = (
RunnableParallel({
"context": retriever, # 检索相关文档
"input": RunnablePassthrough() # 传递用户输入
})
| ChatPromptTemplate.from_template("基于上下文:{context}\n回答:{input}")
| llm
| output_parser
)
# 对比测试
print("无RAG回答:")
print(chain_no_rag.invoke("蚂蚁集团有开源图数据库吗?"))
print("\n有RAG回答:")
print(rag_chain.invoke("蚂蚁集团有开源图数据库吗?"))
输出示例:
无RAG回答:
据公开信息,蚂蚁集团暂未明确开源图数据库产品,其技术布局更多聚焦于闭源商业解决方案。有RAG回答:
是的,蚂蚁集团开源了图数据库产品TuGraph,它支持高并发查询和复杂图算法。
RAG关键组件解析
- DocumentLoader:加载外部文档(如PDF、网页、数据库等),LangChain支持上百种格式(
UnstructuredFileLoader
、PyPDFLoader
等)。 - TextSplitter:分割长文档(避免超出模型上下文),常用
RecursiveCharacterTextSplitter
(按标点分割,保留语义)。 - Embeddings:将文本转为向量(如OpenAI的
text-embedding-3-small
模型),向量距离越近表示语义越相似。 - VectorStore:存储向量并支持相似性检索,常用选项有FAISS(轻量本地库)、Pinecone(云端服务)、Milvus(分布式开源库)等。
- Retriever:封装检索逻辑,除基础相似性检索外,还可实现"混合检索"(结合关键词与向量)、“重排序”(优化检索结果)等高级功能。
3.8 工具调用:让AI"动手"解决问题
LLM的文本生成能力是"认知",而工具调用是"行动"——通过调用API、数据库、代码等工具,AI可以完成查询天气、分析数据、控制设备等实际任务。
OpenAI的函数调用能力是工具调用的基础:通过在请求中定义工具描述,LLM会自动判断是否需要调用工具及如何传参。
import random
from langchain_core.tools import tool
from langchain_core.output_parsers.openai_tools import JsonOutputToolsParser
# 1. 定义工具:获取城市气温(模拟随机返回)
@tool # LangChain的工具装饰器,自动生成描述
def get_temperature(city: str) -> int:
"""获取指定城市的当前气温(摄氏度)"""
return random.randint(-20, 50)
# 2. 构建工具调用链
# 绑定工具到LLM(告知LLM有哪些工具可用)
llm_with_tools = llm.bind_tools([get_temperature])
# 链:输入问题 → 调用LLM判断是否用工具 → 解析工具调用参数
tool_chain = llm_with_tools | JsonOutputToolsParser()
# 3. 测试:询问杭州气温
result = tool_chain.invoke("杭州今天的气温是多少?")
print(f"工具调用指令:{result}")
# 4. 执行工具(实际应用中需根据指令调用对应函数)
if result:
tool_name = result[0]['type']
args = result[0]['args']
if tool_name == 'get_temperature':
temp = get_temperature(**args)
print(f"执行结果:杭州当前气温是{temp}℃")
输出示例:
工具调用指令:[{‘type’: ‘get_temperature’, ‘args’: {‘city’: ‘杭州’}}]
执行结果:杭州当前气温是18℃
LangChain支持的工具生态非常丰富,除了自定义函数,还可直接集成:
- 数据库工具(
SQLDatabaseToolkit
):查询MySQL、PostgreSQL等; - 搜索工具(
SerpAPI
):调用谷歌、百度搜索; - 代码工具(
PythonREPLTool
):执行Python代码分析数据。
3.9 智能体:自主决策的AI系统
Agent是AI工程的高级形态——它能像人一样"思考":分析问题、规划步骤、调用工具、反思结果,直到完成任务。与固定流程的Chain不同,Agent的行动序列是动态生成的。
3.9.1 Agent的核心能力
- 规划:将复杂任务拆解为步骤(如"查天气→订机票→规划行程");
- 记忆:结合短期上下文和长期知识库;
- 工具使用:按需调用工具获取信息或执行操作;
- 反思:评估结果是否达标,必要时调整策略。
3.9.2 构建简单Agent
用LangChain的AgentExecutor
构建一个能查气温的智能体:
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
# 1. 定义工具(复用之前的get_temperature)
tools = [get_temperature]
# 2. 定义Agent提示词(指导Agent如何思考和使用工具)
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个助手,可调用工具获取城市气温。回答要简洁。"),
MessagesPlaceholder(variable_name="chat_history", optional=True), # 可选历史
("human", "{input}"), # 用户输入
MessagesPlaceholder(variable_name="agent_scratchpad") # Agent思考过程
])
# 3. 创建Agent
agent = create_openai_tools_agent(llm, tools, prompt)
# 4. 创建执行器(自动处理工具调用循环)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) # verbose显示思考过程
# 5. 测试
result = agent_executor.invoke({"input": "杭州今天气温多少?适合穿什么衣服?"})
print(f"最终回答:{result['output']}")
输出示例(verbose模式会显示中间步骤):
Entering new AgentExecutor chain…
Invoking:get_temperature
with{'city': '杭州'}
22
今天杭州气温22℃,建议穿薄外套或长袖T恤。
Finished chain.
最终回答:今天杭州气温22℃,建议穿薄外套或长袖T恤。
3.9.3 Agent提示词模板共享
LangChain Hub提供了大量现成的Agent提示词模板,可直接复用。例如:
from langchain import hub
# 拉取社区共享的OpenAI工具Agent模板
prompt = hub.pull("hwchase17/openai-tools-agent")
这些模板经过优化,能大幅提升Agent的决策效率。
4、 LangChain架构全景
除了上述核心组件,LangChain的完整架构还包括:
- 模型集成(Models):支持主流LLM(OpenAI、Anthropic、Google等)、语音模型、图像模型等;
- 部署工具(LangServe):将Chain/Agent封装为REST API,支持负载均衡、监控等生产级特性;
- 调试工具(LangSmith):追踪Chain执行过程、评估性能、优化提示词的平台;
- 生态集成:与向量库、数据库、云服务等第三方工具的无缝对接。
5、 尾记
作为一名长期从事数据工程和图计算的开发者,接触LangChain的最大感受是:它不仅是一个工具,更是一种"AI工程思维"的载体——通过标准化组件和灵活的组合方式,让AI能力从"实验室demo"走向"产业级应用"。
如今,“AI是否会替代程序员"的讨论不绝于耳,但更有价值的视角是:如何借助AI工具提升自身价值。就像LangChain所展示的,未来的技术工作者可能不再需要重复编写基础代码,而是专注于"定义问题、设计流程、优化系统”——这正是AI工程的核心能力。
希望这篇文章能帮你从工程视角理解LangChain,无论是用它构建应用,还是借鉴其设计思想,都能在AI时代找到自己的定位。
6、如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
7、为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。
8、大模型入门到实战全套学习大礼包
1、大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
2、大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
3、AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
4、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
5、大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
适用人群
第一阶段(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 的正确特征了。