马鞍山建设机械网站花都网站建设公司
文章目录
- 1. 什么是LangChain?
- 2. 核心组件
- 3. 为什么选择LangChain?
- 4. 实战案例
- 安装
- 简单chat案例
- 流式交互
- Prompt模板
- 5. 简单总结
1. 什么是LangChain?
- 定义:LangChain是一个用于构建大语言模型(LLM)应用的开发框架,支持链式调用、记忆管理、工具集成等。
- 核心功能:
- 连接LLM(如GPT-4、DeepSeek)与外部数据/工具
- 构建多步骤任务的工作流(如问答、摘要、数据分析)
- 支持对话记忆和上下文管理
2. 核心组件
- Models(模型),LangChain支持几乎所有的主流LLM
- Prompts(提示词),动态生成提示模板
- Chains(任务链),多步骤任务串联
- Memory(记忆),管理对话历史,甚至支持没有记忆能力的LLM
- Agents(智能代理),能自动选择工具执行相应的任务
3. 为什么选择LangChain?
场景 | 传统方法痛点 | LangChain解决方案 |
---|---|---|
多工具调用 | 需手动拼接API | 通过Agent自动选择工具 |
长文本处理 | 上下文丢失 | 分块+摘要链式处理 |
对话系统 | 状态管理复杂 | 内置Memory组件 |
4. 实战案例
安装
pip install langchain
pip install -U langchain-deepseek
简单chat案例
from langchain.chat_models import init_chat_model
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.prompts import ChatPromptTemplate# 这里只是示意,工程中建议使用getpass.getpass()来获取API密钥
api_key = "your DeepSeek API key"
api_base = "https://api.deepseek.com/"def simpleDemo():"""简单的Langchain使用示例"""model = init_chat_model(model="deepseek-chat",api_key=api_key,api_base=api_base,temperature=0.8,max_tokens=1024,model_provider="deepseek",)messages = [SystemMessage("Translate the following English text to Chinese"),HumanMessage("Hello, how are you?")]response = model.invoke(messages)print(response)if __name__ == "__main__":simpleDemo()
流式交互
你在使用各种LLM的时,看见LLM一个字一个字往外蹦字,是不是都惊呆了!别急,用LangChain十分容易的实现这种功能
def streamDemo():"""流式输出的Langchain使用示例"""model = init_chat_model(model="deepseek-chat",api_key=api_key,api_base=api_base,temperature=0.8,max_tokens=1024,model_provider="deepseek",)messages = [SystemMessage("Translate the following English text to Chinese"),HumanMessage("Hello, how are you?")]for token in model.stream(messages):print(token.content, end="", flush=True)print("\n\n")if __name__ == "__main__":streamDemo()
是不是代码非常简单!赶快换上你的API key体验一下吧!
Prompt模板
def promptTemplateDemo():"""使用PromptTemplate的Langchain使用示例"""model = init_chat_model(model="deepseek-chat",api_key=api_key,api_base=api_base,temperature=0.8,max_tokens=1024,model_provider="deepseek",)prompt = ChatPromptTemplate.from_messages([SystemMessage("Translate the following English text to {language}"),HumanMessage("{text}")])messages = prompt.invoke({"language": "Chinese", "text":"Hello, how are you?"})response = model.invoke(messages)print(response)if __name__ == "__main__":promptTemplateDemo()
5. 简单总结
LangChain大幅降低了LLM应用开发门槛,确实是相当简单易用。并且为我们快速替换LLM提供了非常便利的基础。