LangChain 基础使用:从入门到实战
·
LLM 调用:最基础的玩法
LangChain 给 LLM 调用提供了统一接口:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4", api_key="your-key")
response = llm.invoke("用一句话解释什么是 LangChain")
print(response.content)
三行代码,完成第一次调用。
2. Prompt 模板:别再手动拼字符串
写 LLM 应用最烦的就是 Prompt 拼装。LangChain 的 PromptTemplate 帮你管起来:
from langchain_core.prompts import PromptTemplate
template = PromptTemplate.from_template(
"请帮我写一篇关于{topic}的{length}字简介"
)
prompt = template.invoke({"topic": "Python", "length": 200})
response = llm.invoke(prompt)
模板的好处是 Prompt 和代码分离,改 Prompt 不用动逻辑。
3. Chain:把多个步骤串起来
单个 LLM 调用的场景有限。LangChain 的价值在于把多个步骤串联成链:
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=template)
result = chain.invoke({"topic": "LangChain", "length": 300})
这就是 Chain——把输入一层层传递,最后出结果。
4. 对话历史管理
做聊天机器人必须处理历史消息。LangChain 的 ChatMessageHistory 帮你管:
from langchain_core.chat_history import InMemoryChatMessageHistory
history = InMemoryChatMessageHistory()
history.add_user_message("你好,我是小明")
history.add_ai_message("你好小明,有什么可以帮你的?")
messages = history.messages
response = llm.invoke(messages)
每次把 history 传进去,模型就能理解上下文了。
5. 输出解析:拿到结构化数据
LLM 返回的是文本,想拿结构化结果需要解析器:
from langchain_core.output_parsers import StrOutputParser
parser = StrOutputParser()
result = parser.invoke(response)
配合 Chain 用:
chain = template | llm | parser
| 这个管道操作符是 LangChain Expression Language 的核心,把组件串联起来。
6. 实战:做一个简单的读书笔记助手
来一个完整的例子:根据书名自动生成读书笔记。
from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
llm = ChatOpenAI(model="gpt-4", api_key="your-key")
template = PromptTemplate.from_template(
"你是一个读书笔记助手。请为《{book}》写一份简短笔记,"
"包括:核心观点、关键章节、读后感想。"
)
parser = StrOutputParser()
chain = template | llm | parser
result = chain.invoke({"book": "人类简史"})
print(result)
核心代码就这么点。
7. 调试技巧
开发时想看 Chain 内部发生了什么:
from langchain_core.tracers import ConsoleCallbackHandler
chain.invoke(
{"book": "思考,快与慢"},
config={"callbacks": [ConsoleCallbackHandler()]}
)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)