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

初探大模型开发:使用 LangChain 和 DeepSeek 构建简单 Demo

最近,我开始接触大模型开发,并尝试使用 LangChainDeepSeek 构建了一个简单的 Demo。通过这个 Demo,我不仅加深了对大模型的理解,还体验到了 LangChain 和 DeepSeek 的强大功能。下面,我将分享我的开发过程以及一些心得体会。


1. 什么是 LangChain?

LangChain 是一个用于构建大模型应用的框架,旨在简化与大模型(如 GPT、DeepSeek 等)的交互过程。它提供了丰富的工具和模块,帮助开发者快速构建基于大模型的应用程序,例如聊天机器人、问答系统、文本生成工具等。LangChain 的核心优势在于其灵活性和可扩展性,开发者可以轻松地将不同的模型、数据源和工具链结合在一起,构建复杂的应用。

LangChain 的主要功能包括:

  • Prompt 管理:支持动态生成和模板化提示词(Prompt),方便与大模型交互。
  • 链式调用:可以将多个任务串联起来,形成复杂的工作流。
  • 数据集成:支持与外部数据源(如数据库、API)集成,增强模型的能力。
  • 记忆功能:支持会话记忆,使模型能够在多轮对话中保持上下文。

通过 LangChain,开发者可以更高效地利用大模型的能力,而无需关注底层的复杂细节。


2. 环境准备

在开始之前,我们需要安装必要的 Python 库。以下是安装命令:

pip3 install langchain-core langchain-openai

这里我们使用 pip3 来确保安装的是 Python 3 版本的库。


3. 配置 DeepSeek API 密钥

为了使用 DeepSeek 的 API,我们需要获取并配置 API 密钥。将你的 DeepSeek API 密钥设置为环境变量:

import os

os.environ["DEEPSEEK_API_KEY"] = "your_deepseek_api_key"

这里需要自己去申请一个API Key (申请入口),deepSeek的目前没有免费的了,需要自己充值,我充了10块,完全够用。


4. 创建 LangChain 应用

接下来,我们使用 LangChain 和 DeepSeek 构建一个简单的对话应用。代码如下:

from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
import os

os.environ["DEEPSEEK_API_KEY"] = "your_deepseek_api_key"

# 配置 DeepSeek 模型
llm = ChatOpenAI(
    model_name="deepseek-chat",  # 使用 DeepSeek 的模型名称
    openai_api_key=os.getenv("DEEPSEEK_API_KEY"),
    openai_api_base="https://api.deepseek.com/v1"  # DeepSeek 的 API 地址
)

# 创建对话模板
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是世界级技术专家"),
    ("user", "{input}")
])

# 构建对话链
chain = prompt | llm

# 调用模型并获取结果
result = chain.invoke({"input": "请评价 Swift 这门语言,200 个字以内"})

# 输出结果
print(result.content)

5. 运行结果

运行上述代码后,模型会生成一段对 Swift 语言的评价。以下是我得到的输出结果:

Swift 是一门现代、安全且高效的编程语言,由苹果公司开发,主要用于 iOS、macOS
等平台的应用开发。其语法简洁清晰,支持类型推断和可选类型,减少了常见编程错误。Swift 具备强大的性能,接近 C
语言的运行速度,同时支持面向对象和函数式编程范式。其内存管理采用自动引用计数(ARC),简化了内存管理。Swift
还拥有丰富的标准库和活跃的社区支持,开发者可以快速构建高性能应用。总体而言,Swift 是一门适合现代应用开发的优秀语言。

请添加图片描述


6. 总结

LangChain 提供了简洁的接口和灵活的框架,使得构建大模型应用变得非常容易。而 DeepSeek 的模型则表现出了极高的语言理解和生成能力,能够生成高质量的内容。

如果你也对大模型开发感兴趣,不妨从这个小 Demo 开始,逐步深入学习和实践。

希望这篇博客对你有所帮助,欢迎在评论区分享你的想法和经验!


相关文章:

  • vue中js简单创建一个事件中心/中间件/eventBus
  • P1591 阶乘数码
  • BFS,DFS带图详解+蓝桥杯算法题+经典例题
  • 如何在前端发版时实现向客户端推送版本更新消息
  • Java Date 判断两个Date范围在第几季度
  • 使用 Path 对象来定义路径
  • 在Vue3中使用Echarts的示例
  • 用户行为路径分析(Google Analytics数据挖掘)
  • Linux系统移植篇(十一)Linux 内核启动流程
  • 通过Continue调用Deepseek API keys,搭建AI代码助手
  • MySQL程序
  • WPF CommunityToolkit.MVVM库的简单使用
  • vue3之写一个aichat ----vite.config.js
  • 路由器安全研究|D- Link DIR-823G v1.02 B05 复现与利用思路
  • 从零搭建 Vue 3 + Element Plus 项目实战指南
  • WPF跨平台开发探讨:借助相关技术实现多平台应用
  • mysql学习-常用sql语句
  • 解决SpringCloud整合Nacos启动报java.lang.IllegalArgumentException: illegal dataId
  • 设计C语言的单片机接口
  • Springdoc 全部注解一文解释清楚
  • GOMU超马世锦赛,男女冠军刷新世界纪录
  • 社区来电催生?多地回应:系为居民提供卫生健康服务
  • 英伟达:美国无法操纵监管机构在AI领域取胜,美企应专注创新而不是编造荒诞谣言
  • 巴菲特第60次股东大会开场点赞库克:他为伯克希尔赚的钱比我还多
  • 塞尔维亚总统因突发健康问题,中断对美国的正式访问并回国
  • 格桑花盛放上海,萨迦艺术团襄阳公园跳起藏族舞