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

news2025/3/16 12:17:45

最近,我开始接触大模型开发,并尝试使用 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 开始,逐步深入学习和实践。

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2316020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】进程(1)进程概念和进程状态

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:Linux 目录 前言 一、什么是进程 二、task_struct的内容 三、Linux下进程基本操作 四、父进程和子进程 1. 用fork函数创建子进程 五、进程状态 1. 三种重…

关闭win11根据内容自动调整屏幕亮度

在win11笔记本上使用编程软件的时候,用的是深色背景,但是屏幕会慢慢变暗;等切换回明亮的桌面时,又会慢慢变亮,带来不适应的感觉。这个博客记录一下解决这个问题的办法 ps:有些人修改的是电源选项&#xff…

2021-05-23 C++百元百鸡

此是草稿,有值得优化的地方,如从公鸡先循环再母鸡再小鸡这样可以提高效率,且有输出后也可优化为公鸡母鸡小鸡初始化。 void 百元百鸡() {//缘由https://ask.csdn.net/questions/7434093?spm1005.2025.3001.5141int xj 1, mj 1, gj 1, y …

Android自动化测试工具

细解自动化测试工具 Airtest-CSDN博客 以下是几种常见的Android应用自动化测试工具: Appium:支持多种编程语言,如Java、Python、Ruby、JavaScript等。可以用于Web应用程序和原生应用程序的自动化测试,并支持iOS和Android平台。E…

【蓝桥杯】24省赛:数字串个数

思路 本质是组合数学问题: 9个数字组成10000位数字有9**10000可能 不包括3的可能8**10000 不包括7的可能8**10000 既不包括3也不包括77**10000 根据容斥原理:结果为 9 ∗ ∗ 10000 − 8 ∗ ∗ 10000 − 8 ∗ ∗ 10000 7 ∗ ∗ 10000 9**10000 - 8**10…

SpringBoot中使用kaptcha生成验证码

简介 kaptcha是谷歌开源的简单实用的验证码生成工具。通过设置参数&#xff0c;可以自定义验证码大小、颜色、显示的字符等等。 Maven引入依赖 <!-- https://mvnrepository.com/artifact/pro.fessional/kaptcha --><dependency><groupId>pro.fessional<…

蓝桥杯嵌入式赛道复习笔记1(led点亮)

前言 基础的文件创建&#xff0c;参赛资源代码的导入&#xff0c;我就不说了&#xff0c;直接说CubeMX的配置以及代码逻辑思路的书写&#xff0c;在此我也预祝大家人人拿国奖 理论讲解 原理图简介 1.由于存在PC8引脚到PC15引脚存在冲突&#xff0c;那么官方硬件给的解决方案…

六十天前端强化训练之第十七天React Hooks 入门:useState 深度解析

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、知识讲解 1. Hooks 是什么&#xff1f; 2. useState 的作用 3. 基本语法解析 4. 工作原理 5. 参数详解 a) 初始值设置方式 b) 更新函数特性 6. 注意事项 7. 类组…

芯科科技推出的BG29超小型低功耗蓝牙®无线SoC,是蓝牙应用的理想之选

具有扩大的内存和超低功耗特性的超小型BG29是互联健康设备的理想之选 低功耗无线领域内的领导性创新厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;今日宣布&#xff1a;推出全新的第二代无线开发平台产品BG29系列无线片上系统…

export、export default 和 module.exports 深度解析

文章目录 1. 模块系统概述1.1 模块系统对比1.2 模块加载流程 2. ES Modules2.1 export 使用2.2 export default 使用2.3 混合使用 3. CommonJS3.1 module.exports 使用3.2 exports 使用 4. 对比分析4.1 语法对比4.2 使用场景 5. 互操作性5.1 ES Modules 中使用 CommonJS5.2 Com…

qwen2.5-vl多机多卡分布式部署

记录一下工作中进行多机多卡部署qwen2.5-vl多模态大模型踩过的坑 第一个天坑就是官方提供的镜像qwenllm/qwenvl:2.5-cu121有问题&#xff0c;在titan显卡会抛出cuda error:no kernel image is availabe for execution on the device. 这是cuda内核与GPU不兼容的问题&#xff0c…

【红黑树】—— 我与C++的不解之缘(二十五)

前言 学习了avl树&#xff0c;现在来学习红黑树。 一、什么是红黑树 红黑树是一颗平衡二叉搜索树&#xff0c;它每一个节点增加了一个存储位表示节点的颜色&#xff0c;可以是红色或者黑色。 相比较于AVL树&#xff0c;红黑树也是一个自平衡二叉搜索树&#xff0c;但是它与AVL树…

驾驭 DeepSeek 科技之翼,翱翔现代学习新天际

在当今这个信息爆炸的时代&#xff0c;学习的方式和途径正在经历着前所未有的变革。人工智能技术的飞速发展&#xff0c;为我们的学习带来了全新的机遇和挑战。DeepSeek 作为一款强大的大语言模型&#xff0c;凭借其卓越的性能和丰富的功能&#xff0c;为现代学习注入了新的活力…

DeepSeek本地部署 (Windows+Ollama+Docker Desktop+ RAGFlow)

适用场景&#xff1a; 1、商城的小机器人自动根据实际情况回复 2、需要7*24小时运行在线回复&#xff0c;如&#xff1a;在线购物、在线咨询、在线招生等 3、无人值守环境 2025年1月&#xff0c;DeepSeek 正式发布 DeepSeek-R1 推理大模型&#xff0c;DeepSeek-R1 成本价格低…

SPI驱动(八) -- SPI_DAC设备驱动程序

文章目录 参考资料&#xff1a;一、编写设备树二、 编写驱动程序三、编写测试APP四、Makefile五、上机实验 参考资料&#xff1a; 参考资料&#xff1a; 内核头文件&#xff1a;include\linux\spi\spi.h内核文档&#xff1a;Documentation\spi\spidevDAC芯片手册&#xff1a;…

MySQL 衍生表(Derived Tables)

在SQL的查询语句select …. from …中&#xff0c;跟在from子句后面的通常是一张拥有定义的实体表&#xff0c;而有的时候我们会用子查询来扮演实体表的角色&#xff0c;这个在from子句中的子查询会返回一个结果集&#xff0c;这个结果集可以像普通的实体表一样查询、连接&…

HarmonyOS NEXT开发进阶(十二):build-profile.json5 文件解析

文章目录 一、前言二、Hvigor脚本文件三、任务与任务依赖图四、多模块管理4.1 静态配置模块 五、分模块编译六、配置多目标产物七、配置APP多目标构建产物八、定义 product 中包含的 target九、拓展阅读 一、前言 编译构建工具DevEco Hvigor&#xff08;以下简称Hvigor&#x…

深度学习笔记(37周)

目录 摘要 Abstracts 1. 介绍 2. 相关工作 3. 模型 3.1 时序段网络TSN 3.2 学习时序段网络 4. 训练结果 5. 结论 摘要 本周阅读的论文是《Temporal Segment Networks: Towards Good Practices for Deep Action Recognition》。作者主要想通过较少的训练样本&#xff…

ELK+Filebeat+Kafka+Zookeeper安装部署

1.安装zookeeper zookpeer下载地址:apache-zookeeper-3.7.1-bin.tar.gzhttps://link.csdn.net/?targethttps%3A%2F%2Fwww.apache.org%2Fdyn%2Fcloser.lua%2Fzookeeper%2Fzookeeper-3.7.1%2Fapache-zookeeper-3.7.1-bin.tar.gz%3Flogin%3Dfrom_csdn 1.1解压安装zookeeper软件…

【软考-架构】3.3、模式分解-事务并发-封锁协议

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 模式分解&#xff08;难点&#xff09;无损分解&#x1f4af;考试真题并发控制封锁协议&#x1f4af;考试真题第一题第二题 模式分解&#xff08;难点&#xff09; 保持函…