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提供了非常便利的基础。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐