我的个人语言:

模型的api调用指的是,程序通过api-key与云端部署的大模型进行单次的对话交互。

langchain框架是一种llm的开发框架。

大多数人经常使用诸如豆包、千问等app,但是这和大语言模型有很大区别。

最原始的大语言模型,大多数基于transform网络中的解码器,实现基于输入的token序列,对下一个token进行预测,再把新生成的token和输入token序列组成新的输入,预测下一个token。这种自回归生成式的模型,才是真正原始面貌的大语言模型。

像豆包,千问这类app已经经过了很多封装,准确的来说已经是智能体agent。他们拥有记忆、函数调用,rag和智能体的能力。

langchain就是一种呢能够开发llm,使得原始的大语言模型具备智能体能力的框架。比如;1、设计提示词模板,实现大模型信息抽取,固定格式回答等。2、记忆模块,通过不同的方式报错对话上下文,在每次新的问题发送前,拼接历史上下文,在输出回复前,构建新的历史对话。3、agent,通过react等框架,使得模型能够实现自主思考、决策、执行、观察的一个循环,最终得到输出。

函数调用与agent的区别就在于,举个例子,用户询问天气,模型说需要查询,于是给出查询天气参数的输出,传入查询天气的函数模块,返回天气信息给模型,模型最终给出完整答复。智能体则是函数调用加自我决策的结合,模型会在调用函数得到天气信息给出回复的基础上,观察决策是否需要继续循环得到终极版的答案。

rag:检索增强生成,对pdf等文本数据,分块,词嵌入,存储在数据库中。当用户询问相关问题时,根据相似度取出相关向量,和用户问题拼接成完整上下文,在输入模型生成回复。

修改润色:

一、基础入门:大语言模型与API调用

在讲复杂概念前,我们先明确两个基础认知:原始大语言模型的本质,以及我们如何与它交互——也就是API调用。

最原始的大语言模型,核心基于Transformer架构中的解码器,工作原理非常纯粹:接收输入的token序列后,预测下一个最可能的token,再将新生成的token与原始输入序列拼接,重复这一过程,直至生成完整响应。这种自回归生成模式,决定了原始大语言模型本质上是“文本生成器”,只具备基础的文本续写、理解能力,缺乏记忆、逻辑决策、外部交互等复杂能力。

而我们开发中常用的API调用,就是程序与云端部署的原始大语言模型(或封装后的模型服务)进行交互的核心方式。具体来说,开发者通过自身的API-Key进行身份验证,向模型服务发送HTTP请求(携带输入文本、参数配置等),模型处理后返回响应结果,整个过程属于“单次请求-响应式”的交互,不存在上下文记忆,每次调用都是独立的。

这里要特别区分:我们日常使用的豆包、千问等APP,并非原始大语言模型,而是基于原始模型封装后的完整AI应用——它们已经集成了记忆、函数调用、RAG等能力,本质上属于“智能体(Agent)”范畴,而非单纯的大语言模型。

二、核心工具:LangChain框架——让原始LLM拥有“智能体能力”

原始大语言模型的能力有限,而LangChain框架的核心价值,就是为开发者提供一套标准化工具,快速扩展原始LLM的能力,让其具备成为智能体的基础,无需从零开发复杂功能。LangChain并非替代LLM,而是作为“连接器”,将LLM与各类工具、数据、记忆模块整合,降低AI应用开发门槛。

其中,开发者最常用的两个核心功能的如下:

1. 提示词模板(Prompt Template)

原始LLM的输出质量高度依赖输入提示(Prompt),而手动编写Prompt效率低、一致性差。LangChain的提示词模板功能,允许开发者预先定义固定格式、固定逻辑的Prompt模板,将变量(如用户输入、上下文信息)动态注入模板中,实现标准化的交互。

典型应用场景:信息抽取(如从文本中提取姓名、手机号等关键信息)、固定格式输出(如生成JSON、表格、报告模板)、引导LLM遵循特定逻辑(如“作为技术顾问,用简洁的语言解答问题,不冗余”),大幅提升开发效率和输出一致性。

2. 记忆模块(Memory)

原始LLM不具备上下文记忆能力,每次API调用都是独立的,无法记住上一轮的对话内容。LangChain的记忆模块,核心作用就是“保存对话上下文”,并在每次新请求发送前,自动将历史对话上下文与当前用户问题拼接,形成完整的输入,再传递给LLM;同时,在LLM生成响应后,更新对话历史,为下一轮交互做准备。

简单来说,记忆模块让LLM拥有了“短期记忆”,实现了多轮对话的连贯性——这也是我们使用豆包、千问等APP时,能够连续对话的核心原理之一。LangChain提供了多种记忆实现方式(如会话缓冲记忆、摘要记忆等),开发者可根据需求选择。

除了上述两个核心功能,LangChain还集成了Agent、RAG、函数调用等工具,形成了完整的AI应用开发生态,后续我们逐一拆解。

三、易混淆点:函数调用与Agent的区别

很多开发者会将函数调用与Agent混为一谈,认为两者是一回事,实则两者有本质区别——函数调用是“工具使用能力”,而Agent是“具备决策能力的完整智能体”,前者是后者的基础组件之一。

1. 函数调用(Function Calling)

函数调用的核心是:LLM根据用户需求,判断是否需要调用外部工具(如天气查询API、数据库查询函数、文件读取工具等),并输出符合指定格式的调用参数,由程序执行工具调用,再将工具返回的结果反馈给LLM,最终由LLM整理成自然语言响应。

举个实际例子:用户询问“今天北京的天气”,原始LLM无法直接获取实时天气数据,此时会触发函数调用——输出天气查询函数的参数(如城市“北京”、日期“今天”),程序调用天气API获取数据后,将“北京今日晴,气温10-22℃”反馈给LLM,LLM再将该信息整理成自然语言回复用户。

关键点:函数调用是“被动执行”,LLM只负责判断是否调用、如何调用,不负责决策“是否需要再次调用”“调用后是否需要调整参数”,全程需要开发者预设逻辑引导。

2. Agent(智能体)

Agent的核心是“自主决策+工具使用”,是在函数调用基础上的升级——它不仅能调用外部工具,还能通过React等框架,实现“思考-决策-执行-观察”的闭环,自主判断下一步动作,无需开发者预设所有逻辑。

还是以“查询北京天气”为例:Agent接收用户需求后,会先思考“我需要获取实时天气数据,因此需要调用天气查询工具”,然后决策“调用工具需要哪些参数(城市、日期)”,执行调用后,观察工具返回的结果,判断“是否需要补充信息(如是否需要查询未来几天的天气)”,若用户没有进一步需求,则整理结果回复;若有潜在需求(如用户可能想知道穿衣建议),则会继续调用相关工具,直至给出完整、精准的响应。

总结区别:函数调用是“工具调用的能力”,是单一环节的执行;Agent是“具备自主决策的完整系统”,包含了函数调用、逻辑判断、循环优化等能力,是更高级的AI应用形态。

四、关键能力:RAG(检索增强生成)——解决LLM的核心痛点

原始LLM存在两个核心痛点:一是知识时效性差(训练数据有截止日期,无法获取最新信息);二是易产生“幻觉”(生成不存在的信息)。而RAG(Retrieval-Augmented Generation,检索增强生成),就是解决这两个痛点的核心技术,也是AI应用开发中最常用的能力之一。

RAG的核心逻辑是“先检索、再生成”,将外部知识库(如PDF、文档、网页内容等)与LLM结合,让LLM基于检索到的真实、最新数据生成响应,具体流程分为两步:

1. 知识库构建:将PDF、Word、网页等文本数据,按照一定规则进行分块(避免单块文本过长,影响检索精度),然后通过词嵌入(Embedding)技术,将每块文本转化为向量,存储到向量数据库中(如Milvus、Pinecone等);

2. 检索与生成:当用户提出相关问题时,程序先将用户问题转化为向量,在向量数据库中通过相似度匹配,检索出与问题最相关的若干文本块,将这些文本块与用户问题拼接成完整的上下文,再输入到LLM中,让LLM基于检索到的真实数据生成响应。

举个应用场景:开发一个企业知识库问答APP,将企业的员工手册、产品文档、规章制度等上传到知识库,用户询问“员工年假天数”时,RAG会检索到员工手册中关于年假的相关内容,再让LLM基于该内容生成准确回复,避免LLM因未训练过该数据而产生幻觉。

补充:LangChain已内置了RAG相关的工具,开发者无需从零实现分块、嵌入、检索等逻辑,只需配置相关参数,即可快速集成RAG能力。

五、总结:核心概念逻辑梳理

结合前文内容,我们用一句话梳理所有概念的逻辑关系,帮你快速记忆:

原始大语言模型(LLM)是基础,API调用是我们与LLM交互的方式;LangChain框架为LLM提供了提示词模板、记忆模块等工具,扩展其能力;函数调用是LLM调用外部工具的基础能力,Agent则是集成了函数调用、自主决策的完整智能体;RAG通过检索外部知识库,解决LLM的时效性和幻觉问题,是AI应用中提升响应准确性的关键。

作为AI应用开发工程师,掌握这些核心概念,能帮我们更清晰地设计开发方案,快速定位问题,提升开发效率。后续将结合实际代码案例,拆解如何基于LangChain实现API调用、Agent和RAG的集成,感兴趣的可以关注后续内容

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐