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

langchain如何调用模型?一文详解

👋 各位CSDN的开发者朋友们,大家好!

欢迎来到我的技术专栏!如果你正在关注人工智能的最新浪潮,或者正摩拳擦掌准备亲手打造一个属于自己的AI应用,那么恭喜你,来对地方了。在接下来的系列文章中,我将带大家深入探索一个在AI应用开发领域如日中天的开源框架——LangChain,一起解锁大语言模型(LLM)的真正潜力。

🤖 为什么我们需要关注 LangChain?

在这个大模型技术飞速发展的时代,ChatGPT、文心一言等模型已经展现出了惊人的文本生成和理解能力。但很多开发者在实际落地时往往会发现一个痛点:单纯依赖大模型本身,很难构建出功能强大且实用的生产级应用。

大模型的知识往往存在“时间截止”的限制,它不知道今天的实时天气,无法直接访问你本地的私有数据库,也不能替你发送邮件或调用外部API。如果我们只是简单地调用API,不仅提示词难以复用和维护,多步骤的复杂业务流程更是无从下手。

这时候,LangChain 就应运而生了。它被誉为AI应用开发的“瑞士军刀”,核心目标就是解决大模型与真实世界连接的核心痛点。它提供了一套标准化的模块和接口,让我们不必从零开始“造轮子”,就能轻松把大模型与外部数据、计算逻辑以及各种工具连接起来。

🧱 LangChain 能帮我们做什么?

你可以把 LangChain 想象成一套数字世界的“乐高积木”。它通过高度模块化的设计,将复杂的AI开发过程拆解成了一个个可以灵活拼搭的组件:

模型抽象(Models):它统一了各种大模型的调用接口。无论你使用的是OpenAI、DeepSeek,还是本地的开源模型,都可以像换插件一样轻松切换,无需修改业务代码。
提示工程(Prompts):提供了强大的提示词模板管理,让动态构建和优化提示词变得极其简单,大幅提升模型的输出质量。
链式调用(Chains):这是它的名字由来,也是其核心特色。我们可以将多个LLM调用或组件串联成一个连贯的处理流程,轻松实现复杂的自动化任务。
智能代理(Agents):这是目前最激动人心的能力。通过Agents,我们可以让LLM作为决策中枢,自主判断何时调用什么工具(比如搜索引擎、计算器、自定义API),从而突破模型的知识边界。
数据连接与记忆(Data Connection & Memory):它是实现RAG(检索增强生成)的基石,能让AI读取你的私有文档;同时还能在多轮对话中持久化状态,让AI真正“记住”之前说过的内容。
🚀 开启你的 Agent 开发之旅

LangChain 的出现,标志着AI应用开发进入了一个全新的范式。无论你是希望将AI能力集成到现有产品的软件工程师,还是寻求技术转型的程序员,亦或是想了解技术底层逻辑的产品经理,掌握 LangChain 都将成为你极具竞争力的技能。

在接下来的专栏中,我将拒绝枯燥的理论堆砌,坚持“真实项目驱动学习”。我们会从环境搭建开始,一步步亲手写出能调用工具的Agent,构建具备实时查询能力的智能助手,甚至探索多智能体协作等前沿话题。

让我们一起打破信息差,从入门到实战,用代码将天马行空的AI创意变为触手可及的现实!如果你准备好了,就请点个关注,我们马上发车!🚀

目录

一.直接调用模型

前置文章(初始化模型)

1.invoke(阻塞调用)

2.stream(流式调用)

二.在Agent中使用模型

1.创建智能体

2.调用智能体

①阻塞调用

②流式调用

注意


一.直接调用模型

前置文章(初始化模型)

langchain如何初始化模型?一文详解-CSDN博客

1.invoke(阻塞调用)

# 阻塞调用(invoke) response = model.invoke("什么是奥德赛时期?") print(response)

查看运行结果

2.stream(流式调用)

# 阻塞调用(stream) stream = model.stream("你有什么建议给当下的年轻人吗?") # stream调用返回的结果是一个generator,方便我们循环获取结果 print(type(stream)) # 遍历stream结果,就是打印机的效果(一个字一个字地往外蹦) for chunk in stream: print(chunk.content, end="", flush=True)

查看运行效果

二.在Agent中使用模型

1.创建智能体

from langchain.agents import create_agent from dotenv import load_dotenv # 1. 加载项目根目录下的 .env 文件,这样就可以让Langchain自动获取.env文件中的apikey了 load_dotenv() # 2.指定Model名称,由LangChain自动初始化模型 agent = create_agent(model="deepseek-chat")

2.调用智能体

①阻塞调用

# 阻塞调用模型,需要传入一个消息列表 response = agent.invoke({ "messages": [{"role": "user", "content": "火烧是方的还是圆的?"}] }) print(response)

查看运行结果

②流式调用

for token, metadata in agent.stream( {"messages": [{"role": "user", "content": "常说的LA是哪国的哪个城市?"}]}, stream_mode="messages" ): if token.content: # Check if there's actual content print(token.content, end="", flush=True) # Print token

查看运行结果

注意

要注意,Agent的stream模式同样返回一个generator,但是其结构由stream_mode参数决定:

  • messages: 返回LLM生成的每一个片段,是一个包含token和metadata的元组(Tuple)

  • updates: 返回Agent运行过程中的每一次事件,例如与LLM的对话、工具的调用等

  • custom: 返回通过stream writer记录的每一次自定义的输出

如果是为了流式输出AI返回的结果,使用messages模式即可。

http://www.jsqmd.com/news/925081/

相关文章:

  • 电路设计入门:从零开始制作光控夜灯与数字逻辑电路
  • 量化系统难题1_复权后的日k数据_已解决
  • Arduino与伺服马达制作简易互动宠物:从原理到实践
  • VMware macOS解锁神器:3步开启苹果系统虚拟化之旅
  • 抖音音乐下载终极指南:免费开源工具实现批量处理与高效管理
  • 告别Windows字体丑!3步获取苹果苹方字体提升文档颜值
  • 2026年4月PE钢带波纹管实力厂家推荐,PE穿线管/MPP电力管/PVC排水管,PE钢带波纹管源头厂家口碑推荐 - 品牌推荐师
  • 多模态基础、图文大模型原理
  • 电路设计入门:从原理图到PCB,手把手教你制作可调光LED灯
  • Xenia Canary高级配置指南:5个核心技巧深度优化Xbox 360游戏模拟体验
  • 人民中路万家乐维修老店 咸阳专业热水器售后服务中心 - GrowthUME
  • 论文通关利器!常用的AI写作辅助网站,成稿速度破纪录
  • 基于PIR与ISD1820的120dB可定制语音报警系统设计与实现
  • AI应用的质量保障:从测试到监控的完整流程
  • 【限时解禁】Gemini韩文多音节动词时态识别盲区(独家逆向Token映射表),首批领取仅剩87份
  • 免费解锁Wand专业版:3分钟快速指南与手机远程控制教程
  • Windows Cleaner:一款智能实用的Windows系统优化工具
  • OCR + 大模型融合方案
  • 量化系统难题2_结构
  • 终极指南:如何高效获取国家中小学智慧教育平台电子课本PDF文件
  • 基于Arduino与L293D的直流电机PWM调速与光控系统设计
  • Gemini内容日历规划实战指南:从零搭建可复用、可度量、可迭代的智能排期系统
  • 基于Arduino的多传感器空气质量监测站DIY全攻略
  • 多模态 Embedding、CLIP 概念
  • Arduino对接SICK磁条传感器:CANopen协议解析与AGV磁导航实现
  • Sunshine游戏串流服务器:如何构建跨平台低延迟游戏串流系统
  • 技术分享|SQLiteGo:银河麒麟aarch64下的离线数据分析实践
  • 2026年AI论文软件实测:5款神器从初稿到定稿全周期护航
  • 创业公司如何实现持续增长
  • 20253918 2025-2026-2 《网络攻防实践》第9次作业