当前位置: 首页 > news >正文

LangChain入门指南:调用DeepSeek api

文章目录

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

相关文章:

  • phpexcel导出下拉框,超过255字符不显示的问题处理
  • 电脑知识 | IPv4数据报分片
  • 【torchserve】农业小模型部署
  • ExternalProject_Add 使用手册与文档详解
  • 前端页面用html2canvas下载为图片
  • 数据治理:让大数据成为真正的“金矿”
  • 从代码学习深度学习 - 序列到序列学习 GRU编解码器 PyTorch 版
  • C# 常量
  • QScrcpy源码解析(1)
  • MOP数据库中的EXPLAIN用法
  • 初识 rsync:高效同步文件的利器(含 rsync -av 详解)
  • 【GESP】C++二级练习 luogu-B3721 [语言月赛202303] Stone Gambling S
  • VR体验馆如何用小程序高效引流?3步打造线上预约+团购裂变系统
  • LeetCode 解题思路 33(Hot 100)
  • Spring集成asyncTool:实现复杂任务的优雅编排与高效执行
  • 学习需要回看笔记
  • C语言 数据结构【双向链表】动态模拟实现
  • 11. grafana的table表使用
  • [随记] 安装 docker 报错排查
  • Docker 入门指南:基础知识解析
  • app制作器软件下载/seo搜索引擎优化介绍
  • 珠海手机网站制作/seo外包上海
  • 珠海建设银行官方网站/保定百度推广优化排名
  • 大庆建设公司网站/公司产品推广文案
  • 常州 做网站/企业网站首页
  • wordpress 加速优化/新余seo