【大语言模型与智能体Agent构建】基础通识

本章我们将循序渐进,先梳理AI的发展脉络,再拆解大模型应用开发的核心技术,帮大家从基础到实战,全面掌握大模型相关知识,轻松入门大模型应用开发。

1. 人工智能的发展

AI,即人工智能(Artificial Intelligence),是一门致力于让机器模拟人类思维、学习能力与问题解决能力的前沿技术,核心是让非生命载体拥有"类人智能"。

自人类文明萌芽以来,"造物赋智"就一直是人类的美好愿景------渴望赋予非生命物体思考、判断的能力。尽管AI在近几年才成为全球关注的焦点,成为科技领域的"流量密码",但其思想的种子,早在20世纪50年代就已正式埋下,开启了长达数十年的探索之路。

回顾AI的发展历程,可清晰划分为四大浪潮,每一次浪潮都伴随着技术的突破与范式的革新:

  • 第一浪潮:规则与符号的探索(20世纪50-70年代)

    AI的诞生始于"符号主义"学派,这一阶段的研究者坚信,智能可以通过预设的逻辑规则和符号体系来复刻。他们用形式化的符号表示知识,再通过严密的推理规则进行推导,让机器完成特定任务。但现实世界的模糊性、复杂性,远超人工预设规则的覆盖范围,这类AI最终只能局限在象棋对弈、定理证明等封闭的专业领域,无法走进真实的生活场景,逐渐陷入发展瓶颈。

  • 第二浪潮:统计与学习的兴起(20世纪80年代)

    随着符号主义的局限日益凸显,AI发展迎来关键转折------从"符号主义"正式迈入"联结主义",机器学习成为推动AI发展的新引擎。这一阶段的核心变化的是:研究者不再费力编写所有规则,而是让机器从海量数据中自主发现规律、总结模式。这种范式转换,让AI从封闭的规则库走向开放的真实数据,奠定了现代AI的基础,也让AI在垃圾邮件过滤、简单推荐系统等场景中初露锋芒,逐渐摆脱"实验室产物"的标签。

  • 第三浪潮:深度神经网络的突破(21世纪初)

    进入21世纪,海量数据的爆发、GPU等高性能计算硬件的普及,为AI发展注入了新的动力。深度学习------这一基于深层神经网络的机器学习分支,将AI推向了新的高潮。深度网络能够自动提取数据的多层次抽象特征,在图像识别、语音理解、自然语言处理等领域,精度远超传统方法。它的成功,标志着AI在感知类任务上的能力首次接近乃至超越人类水平,也催生了人脸识别、智能语音助手、自动驾驶辅助等我们如今习以为常的应用。

  • 第四浪潮:大模型与生成式AI的革命(2020年代至今)

    真正让AI走进大众生活、引发全民普及风暴的,是2020年代大语言模型(简称"大模型")的崛起。这一次,技术变革的焦点从"专用型"感知智能,转向了"通用型"认知智能。借助简单的自然语言对话,任何人都能指挥AI完成写作、编程、数据分析、创意生成等复杂任务,彻底降低了AI的使用门槛。大模型不再是实验室的成果、新闻中的概念,而是成为普通人日常工作、生活中触手可及的智能伙伴,从根本上重塑了生产力与创造力模式,标志着AI真正融入人类社会结构的核心。

看到这里,很多人都会有一个疑问:这个看似无所不能的大模型,它的"大脑"里究竟在发生什么?它的"智能"到底从何而来?接下来,我们就拆解大模型智能产生的核心要素。

2. 智能产生的要素

2022年,GPT-3刚发布时,其智商水平大约相当于7岁儿童;而短短几年时间,如今最先进的大模型,智商已接近20岁成年人,甚至在部分专业领域(如代码编写、数据分析)的表现超过人类。

大模型的"智能"之所以能实现爆发式增长,核心离不开三大要素,这也是大模型具备智能的三大支柱,更是长期制约AI发展的"三座大山"------直到近十多年,这三者同时跨过技术临界点,AI的能力才真正得以显现。

影响大模型智能的核心三要素:

  • 模型算法(AI的"大脑架构")

  • 海量数据(AI的"学习素材")

  • 超级算力(AI的"运行动力")

2.1 模型算法

模型算法是大模型的"大脑架构",决定了AI的"聪明程度",也是大模型实现智能的基础。如今所有主流AI,都采用神经网络架构,而这一架构的核心,就是模拟人类大脑的神经元工作模式。

人类的大脑由数十亿个神经元细胞构成,神经元之间通过突触连接,传递信号、处理信息;AI神经网络的本质,就是对人类大脑神经元的模拟:

AI的神经元与人类神经元类似,会接收多个不同的输入信号(用x表示),经过加权求和得到初步结果,再通过激活函数处理,最终生成输出结果。但在早期,激活函数较为简单,AI只能完成简单的二分类任务,比如根据照片判断性别、根据输入判断真假,能力非常有限。

最早的神经网络可追溯到1958年,弗兰克·罗森布拉特(Frank Rosenblatt)发明了人类历史上第一个神经网络机器------感知机(Perceptrons)。

不过,早期的感知机结构极其简单,只有一个神经元,只能实现简单的二分类判断(例如根据照片区分性别),无法处理复杂的任务,这也导致神经网络的发展在随后一段时间陷入停滞。

近20年来,神经网络算法不断迭代、优化、升级:最初的神经网络多采用前馈神经网络,受限于算法设计,其理解人类语言时的上下文窗口非常有限,通常只能处理5~10个词,无法理解长文本的逻辑关系;而如今主流的Transformer神经网络模型,凭借优良的算法设计,能够并行处理大量数据,上下文窗口可达到100K级别,这也是大模型能精准理解人类语言、段落逻辑的核心原因。

当然,算法只是大模型智能的"基础",再完善的算法,没有足够的学习素材和运行动力,也无法产生真正的智能。接下来,我们看看另外两大核心要素------数据和算力。

2.2 海量数据

如果说模型算法是AI的"大脑",那么海量数据就是AI的"学习素材"。就像再聪明的人,不学习任何知识、不接触任何信息,也无法产生智慧;AI要实现智能,同样需要通过海量数据的训练,积累足够的"知识"。

上个世纪,互联网尚未普及,数据的产生、存储、传播都非常有限,能够用于AI训练的数据更是稀缺,这也直接限制了AI的发展------没有足够的学习素材,再完善的算法也无法发挥作用。

而进入现代,随着互联网、移动互联网的蓬勃发展,数据呈井喷式增长:文字、图片、视频、代码等各类数据无处不在,AI可以学习整个互联网的精华------所有的维基百科词条、无数的新闻文章、海量的书籍文献、庞大的代码仓库......这些训练数据的规模,是以万亿级词汇来计算的,为大模型的训练提供了坚实的"知识基础"。

如图所示,随着AI大模型规模的扩大,其训练所需的时长和数据量也呈指数级增长:

2.3 超级算力

超级算力是大模型的"运行动力",也是支撑大模型训练的核心保障。大模型的训练,需要处理海量数据、运行复杂的神经网络算法,其计算量堪称天文数字------通常需要成千上万的顶级GPU协同工作,不间断运行数周甚至数月,这背后不仅需要庞大的硬件投入,还需要巨大的电力消耗。

如图所示,模型训练所需的算力,已经完全超出了摩尔定律的预估,几乎每隔几个月就会翻倍增长:

这样规模的算力消耗,在上个世纪甚至本世纪初期,都是难以想象的。直到近几年,随着GPU技术的不断突破,算力规模才勉强满足大模型的训练需求,也为大模型的爆发式发展提供了可能。

总结来说,模型算法、海量数据、超级算力,三者缺一不可,共同构成了大模型智能的核心支柱。只有当这三者同时达到一定水平,大模型才能真正产生"类人智能"。

3. 大模型原理

通过前面的分析,我们已经知道,大模型产生智能的三要素是算法、数据、算力。但很多人可能会好奇:本质上来说,AI的智能都是基于各种数学计算产生的,那么大模型究竟是如何通过训练,理解人类语言、完成复杂任务的?人类的语言,又是如何转化为数学计算的?

3.1 模型的训练

前面我们提到,AI的神经网络模型,本质是对人类神经元的模拟:

你给它输入一些参数,它经过一系列数学计算,最终返回一个结果。因此,从某种意义上来说,你可以把大模型看作是一个极其复杂的"函数"。

这就像我们初中学习的一次函数:y = ax + b,这个函数有两个参数(a和b),当a和b的数值确定时,这个函数就能表示一条固定的直线;输入一个x的值,就能得到一个对应的y值。

当然,大模型这个"函数",要比一次函数复杂得多------它的参数不是2个,而是千亿甚至万亿规模:

因此,它表示的不是一条简单的直线,而是人类复杂的语言系统、知识体系,能够处理各种复杂的输入(文字、图片等),输出符合逻辑、贴合需求的结果。

模型训练的过程,本质上就是"求解模型参数"的过程,和我们求解一次函数参数的逻辑类似:已知直线上两个点的坐标,就能求出a和b的值;而大模型的训练,就是通过海量训练数据,求出模型中千亿级参数的最优值。

不过,大模型的"函数"太过复杂,参数规模高达数千亿,模拟的也不是简单的直线,它需要的"训练数据(相当于直线上的点)"也是天文数字,因此根本不可能精确计算出每一个参数的值。

所以,大模型的训练,更像是一个"不断试错、不断调整"的猜答案过程,具体步骤如下:

  • 第一步:给模型的所有参数设定一个随机值,相当于"先猜一个答案";

  • 第二步:输入一组训练数据(相当于"已知条件"),让模型进行计算,得到一个输出结果;

  • 第三步:将模型的计算结果,与预期的正确结果进行对比,判断误差大小;

  • 第四步:如果误差较大,就根据误差情况,调整模型的参数;重复第二步到第四步,直到模型的计算结果,能够与大多数训练数据吻合,此时模型的训练就完成了。

这里的输入参数和预期结果,就是我们所说的"训练数据"(相当于直线上的"点")。大语言模型的训练,就是拿海量的人类语言文字作为训练数据,不断调整模型参数,让模型的输出能够贴合人类的语言习惯、逻辑规则,实现对人类语言的理解和生成。

但新的问题又来了:人类的语言文字是抽象的,它如何转化为可计算的数学数据,参与模型的训练呢?这就需要用到"词向量"技术。

3.2 大语言模型

2003年,图灵奖得主约书亚·本吉奥(Yoshua Bengio)发表了一篇名为《A neural probabilistic language model》的论文,这篇论文开创了神经网络语言模型(Neural Network Language Model,NNLM)的先河,也首次提出了"词向量(Word Embedding)"的概念雏形------这一概念,为神经网络训练、学习自然语言,打下了坚实的基础。

词向量的核心逻辑,就是将抽象的语言文字,转化为可计算的多维向量(也就是一个浮点数数组),具体来说:

  • 每个词语,都可以通过模型运算,转化为一个多维向量(例如GPT-3采用的是12288维向量);

  • 通过训练,让模型计算出的多维向量,与文字的语义产生关联------多维空间中的不同方向、不同距离,对应不同的语义,语义越相近的词语,它们的向量距离就越近。

举个简单的例子,在经过训练后的向量空间中,"中国"和"美国"这两个词语,会对应两个不同的向量(用E(中国)、E(美国)表示):

此时,我们用E(美国) - E(中国) 得到的新向量,就可以表示"美国与中国的差异"(比如地域、文化、语言等方面的差异)。

如果我们询问大模型:"中国有什么食物与美国的汉堡类似?",大模型的计算逻辑就可以简化为:

  • 第一步:找到表示"汉堡"的向量:E(汉堡);

  • 第二步:加上表示"美国与中国差异"的向量:E(美国) - E(中国);

  • 第三步:计算得到新向量:E(汉堡) + E(美国) - E(中国);

  • 第四步:将得到的新向量反向量化(unembedding),转化为人类能理解的文字,大概率就是我们想要的答案(比如"肉夹馍")。

当然,真实情况会比这个例子复杂得多:大模型的计算会受到语句上下文、多义词、语义歧义等因素的影响,运算后可能会得到多个结果,并且会根据每个结果的可能性,形成概率分布,再通过特定的函数算法,选择一个最优结果输出。

综上,大语言模型的核心逻辑,就是将人类语言转化为可计算的多维向量坐标,然后根据上文的向量计算,推测下文的内容,实现对语言的理解和生成:

更神奇的是,人类最初训练语言模型,只是为了让它理解人类语言、完成翻译等简单任务。但当模型规模和训练数据量足够大时,它不仅能够理解和生成自然语言,还能实现推理、分析、创作等复杂能力,成为可应用于各个领域的通用人工智能(AGI)。

这种"随着数据和模型规模扩大,而涌现出各类新能力"的现象,我们称之为"泛化";而具备这种泛化能力的大规模语言模型,就是我们常说的大语言模型(Large Language Model),简称LLM。

如果大家想要进一步搞清楚大模型的原理,可以参考以下两个视频,讲解更直观、更细致:

【90分钟!清华博士带你一口气搞懂人工智能和神经网络】 https://www.bilibili.com/video/BV1atCRYsE7x/?share_source=copy_web\&vd_source=6cbf1743620562cda2be61462432b8f3

https://youtu.be/wjZofJX0v4M?si=KdMSidvs1UjY6-xW

4. 大模型应用

了解了大模型的原理和核心要素后,我们再来聊聊大家最关心的"大模型应用"------什么是大模型应用?它和大模型本身有什么区别?我们日常使用的AI产品,哪些属于大模型应用?

4.1 什么是大模型应用

要理解大模型应用,我们可以先对比"传统应用"与"大模型"的能力边界,看看两者的优劣势分别是什么:

  • 传统应用:由程序员编写固定规则(编程),计算机严格按照规则执行任务。

  • 擅长:规则清晰、流程固定的事情(如转账、下单);能够确保100%准确;行为可控、可追溯,安全性高。

  • 不擅长:没有明确规则的事情;自然语言的理解(如"给我推荐清淡的菜");模糊的判断和表达(如"帮我写一段有温度的文案")。

  • 大模型:通过海量数据训练,自主学会规律和知识,无需程序员编写所有规则。

  • 擅长:理解和生成自然语言;处理模糊问题的合理回答;总结、改写、对话、创意生成等需要"思考"的任务。

  • 不擅长:精确的计算(如复杂数学题);固定的流程和规则(如转账操作);稳定可预测的结果(如财务记账)。

而大模型应用,核心就是"扬长避短"------把传统应用和大模型的能力结合起来,让大模型负责"思考"(理解用户意图、处理模糊需求),让传统程序负责"行动"(执行固定流程、保障准确安全),两者强强联合,实现更优质的产品体验。

举个大家熟悉的"点外卖"例子,我们可以清晰地看到两者的结合:

  • 菜价展示、优惠计算、支付操作 → 传统程序(规则固定、要求精准);

  • "给我推荐点清淡的""想吃不辣的家常菜" → 大模型(理解模糊需求、匹配合适菜品);

  • 最终下单、扣钱、生成订单 → 传统程序(流程固定、保障安全)。

简单来说,大模型应用开发的真谛,就是在传统应用开发中融入AI大模型,充分利用两者的优势:既能通过AI实现更便捷的人机交互,更好地理解用户的模糊意图;又能通过传统编程,保障应用的安全性、准确性和稳定性。

我们日常接触的很多AI产品,其实都是大模型应用,而非大模型本身------比如通义千问、豆包这样的APP或聊天机器人,其背后的逻辑的也是"大模型+传统程序"的结合:

  • 收集用户输入的文本、上传的文件/图片 → 传统程序(数据采集、存储);

  • 分析和理解用户输入的问题 → 大模型(思考、推理);

  • 联网搜索与问题相关的资料 → 传统程序(接口调用、数据抓取);

  • 根据资料生成答案 → 大模型(内容生成)。

这里需要特别区分一点:大模型本身,只具备理解、推理、生成回复的核心能力;而我们平常使用的AI对话产品,除了这些核心能力,还有会话记忆、联网、文件上传、历史记录保存等功能------这些功能都不是大模型本身具备的,而是需要通过额外的传统程序开发实现的,这就是"基于大模型开发应用"的核心意义。

4.2 常见的大模型

为了让大家更清晰地区分"大模型"与"大模型应用",下面我将常见的大模型、对应的对话产品、所属公司及官方地址,整理成表格,方便大家查阅:

大模型 对话产品 公司 地址
GPT-3.5、GPT-4o ChatGPT OpenAI https://chatgpt.com/
Claude 3.5 Claude AI Anthropic https://claude.ai/chats
DeepSeek-R1 DeepSeek 深度求索 https://www.deepseek.com/
文心大模型3.5 文心一言 百度 https://yiyan.baidu.com/
星火3.5 讯飞星火 科大讯飞 https://xinghuo.xfyun.cn/desk
Qwen-Max 通义千问 阿里巴巴 https://tongyi.aliyun.com/qianwen/
Moonshoot Kimi 月之暗面 https://kimi.moonshot.cn/
Yi-Large 零一万物 零一万物 https://platform.lingyiwanwu.com/

4.3 与大模型的交互

既然大模型应用是"传统程序+大模型"的结合,那么传统程序该如何与大模型进行交互,让大模型完成"思考"任务呢?

答案很简单:调用大模型的API接口。

大模型在部署时,通常都会对外暴露基于HTTP协议的API接口------这个接口就相当于"桥梁",传统程序通过调用这个接口,向大模型发送请求(比如用户的问题),大模型处理后,通过接口返回结果(比如问题的答案),从而实现两者的交互:

当然,要实现这种交互,首先需要有一个可调用的大模型服务------要么使用第三方开放的大模型服务,要么自己部署私有大模型。接下来,我们就详细讲解大模型服务的相关知识。

5. 大模型服务

再次强调:大模型应用开发,并不是在浏览器中跟AI聊天,而是通过访问大模型对外暴露的API接口,实现传统程序与大模型的交互。因此,企业或开发者要开发大模型应用,首先需要拥有一个可访问的大模型服务,通常有两种选择:使用开放大模型服务,或部署私有大模型。

我们先对比一下两种方式的优缺点,方便大家根据自身需求选择:

  • 使用开放大模型API

  • 优点:无需自己部署和维护模型,按调用次数收费,初期投入低;上手快,无需具备专业的运维能力。

  • 缺点:依赖第三方平台,服务稳定性受平台影响;长期大量调用的话,成本较高;训练数据、用户数据存储在第三方平台,存在隐私和安全风险。

  • 部署私有大模型

  • 优点:数据完全自主掌控,隐私和安全性高;不依赖外部平台,服务稳定性可控;短期投入大,但长期大量使用的话,成本更低。

  • 缺点:初期部署成本高(需要采购高性能硬件、投入人力);后续需要专业人员维护,运维难度大。

接下来,我们分别演示两种部署方式的具体操作:一种是使用公共开放大模型服务(以DeepSeek和阿里云百炼为例),另一种是本地部署私有大模型(以Ollama工具为例)。

通常,发布大模型的官方平台、大多数云平台,都会提供开放的公共大模型服务。前面我们已经介绍过常见的大模型官方平台,这里不再赘述,重点介绍国内几个主流的云平台大模型服务:

云平台 公司 地址
DeepSeek DeepSeek https://www.deepseek.com
阿里百炼 阿里巴巴 https://bailian.console.aliyun.com
腾讯TI平台 腾讯 https://cloud.tencent.com/product/ti
千帆平台 百度 https://console.bce.baidu.com/qianfan/overview
SiliconCloud 硅基流动 https://siliconflow.cn/zh-cn/siliconcloud
火山方舟-火山引擎 字节跳动 https://www.volcengine.com/product/ark

需要注意的是,这些开放平台并不是免费的,而是按照调用时消耗的"token"来付费------token可以简单理解为"你与大模型交互时,发送和接收的文字总量",通常一个汉字约等于2个token,每百万token的费用大概在几毛到几元不等。另外,大多数平台都会给新用户赠送百万级token的免费使用权,足够大家入门学习和测试。

下面,我们分别详细讲解DeepSeek和阿里云百炼平台的使用方法,帮大家快速上手开放大模型服务。

5.1 DeepSeek模型服务

DeepSeek是深度求索公司推出的大模型,其官方平台提供了开放的API服务,操作简单,适合新手入门。

官方平台地址:https://platform.deepseek.com/

5.1.1 注册

首次访问DeepSeek平台,必须先完成注册(支持手机号、邮箱等方式注册),注册流程简单,按照页面提示操作即可:

5.1.2 充值

DeepSeek官方提供的大模型API服务是收费的,因此注册成功后,需要充值少量金额(最低1元即可),用于调用API。

注册成功后,进入平台管理页面,找到"充值"选项,点击进入充值页面:

选择合适的充值金额(新手建议先充1~10元,足够测试使用),完成支付后,即可使用DeepSeek的官方API服务。

5.1.3 创建API_KEY

由于是收费服务,为了防止账号被盗用、API被恶意调用,DeepSeek的所有API都有权限校验功能------我们需要创建一个鉴权用的API_KEY,后续调用API时,需要使用这个API_KEY进行身份验证。

操作步骤:点击平台左侧的"API Keys"选项卡,进入API_KEY管理页面。第一次进入时,页面没有API_KEY,点击"创建API key"按钮,即可生成一个新的API_KEY:

重要提醒:API_KEY只有在创建时可以查看,后续无法再次查看,因此创建时一定要妥善保管(比如复制保存到记事本),不要泄露给他人,否则可能会产生不必要的费用。

到这里,使用DeepSeek API服务的准备工作就完成了。

5.1.4 API文档

访问公共大模型,都是通过API的形式,不同平台的API规范略有差异,但基本都兼容OpenAI的规范。学习DeepSeek的官方API文档,了解如何调用其API。

在文档中,有一段调用对话API的示例代码(curl命令),我们可以通过这段代码,快速了解DeepSeek API的调用要求:

python 复制代码
curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <DeepSeek API Key>" \
  -d '{
        "model": "deepseek-chat",
        "messages": [
          {"role": "system", "content": "You are a helpful assistant."},
          {"role": "user", "content": "Hello!"}
        ],
        "stream": false
      }'

这段代码包含了调用DeepSeek大模型API的核心信息,我们拆解一下:

  • 请求URL:https://api.deepseek.com/chat/completions(DeepSeek对话API的接口地址);

  • 请求头(Header):

    • Content-Type: application/json:表示请求参数的格式是JSON;
    • Authorization: Bearer :身份验证信息,将替换成我们刚才创建的API_KEY即可。
  • 请求体(Body):JSON格式,包含调用模型的核心参数:

    • model:模型名称,DeepSeek支持deepseek-reasoner(推理模型)和deepseek-chat(对话模型)两种;
    • messages:发送给大模型的消息数组,里面可以包含多条消息,每条消息包含"role"(角色)和"content"(内容)两个属性;
  • stream:是否流式返回结果,false表示一次性返回完整结果,true表示分批次返回(适合聊天界面实时显示)。

  • 请求方式:虽然代码中没有明确说明,但由于包含请求体(Body),因此使用POST方式。

5.1.5 测试

我们可以使用任意HTTP客户端(比如Postman、Apifox,或简单的curl命令),来测试DeepSeek的API是否能正常调用。

操作要点:在HTTP请求的请求头中,添加我们创建的API_KEY,确保身份验证通过;请求体按照文档要求,填写正确的JSON参数:

发送请求后,如果能收到大模型返回的JSON格式结果,说明API调用成功。

5.2 阿里巴巴百炼模型服务

阿里云百炼是阿里巴巴推出的大模型服务平台,支持多种主流大模型(如Qwen、DeepSeek-R1等),而且新用户会赠送免费token,适合新手测试使用。

5.2.1 注册账号

第一步:注册阿里云账号,地址:https://account.aliyun.com/(支持手机号、支付宝等方式注册)。

注意:阿里云账号需要完成个人实名认证,否则后续使用百炼服务时会出现警告,无法正常调用API。

第二步:访问阿里云百炼平台,地址:https://bailian.console.aliyun.com/

首次访问时,会弹出窗口,询问是否同意开通百炼服务,点击"确认开通"即可:

如果未完成实名认证,会弹出"账户异常"提示,点击"去认证",按照页面提示完成个人实名认证即可(此处略过详细步骤)。

首次开通百炼服务,平台会赠送百万级token的免费使用权(包含多种模型),有效期3~9个月不等。大家可以在"模型控制台"→"模型用量"中,查看自己的免费额度使用情况:

由于有免费额度,我们可以跳过充值步骤,直接使用API服务。

5.2.2 申请API_KEY

和DeepSeek一样,调用阿里云百炼的API,也需要创建API_KEY进行身份验证。

操作步骤:

  1. 注册并登录阿里云百炼平台后,点击左侧菜单的"模型"选项;

  2. 在左侧菜单最下方,找到"密钥管理"选项,点击进入;

  3. 点击"创建API-KEY"按钮,弹出表单,勾选相关协议后,点击"确定";

  4. 即可生成一个新的API_KEY,后续开发中需要用到这个API_KEY,务必妥善保管,不要泄露。



5.2.3 体验模型

如果想先体验一下大模型的效果,不需要调用API,直接在百炼平台上即可操作:

点击平台左侧的"模型"选项,进入模型广场,选择任意模型,即可直接与大模型对话,体验其功能:

5.2.4 API文档

点击平台顶部的"API参考"选项,即可进入API文档页面,查看各种模型的API调用规范(兼容OpenAI规范):

5.2.5 测试

使用HTTP客户端(如Postman、Apifox),调试阿里云百炼的API,注意在请求头中添加我们创建的API_KEY,确保身份验证通过:

5.3 本地部署

很多云平台都提供了大模型一键部署功能,操作简单,此处不再赘述。我们重点讲解如何手动部署大模型------最简单的方式,就是使用Ollama工具,这是一个专门用于部署和运行大模型的工具,支持Windows、Mac、Linux等多种系统,上手难度低,适合新手。

Ollama官网地址:https://ollama.com/

5.3.1 下载安装ollama

第一步:访问Ollama官网,根据自己的操作系统(Windows、Mac、Linux),下载对应的Ollama客户端:

第二步:安装Ollama。

默认情况下,Ollama会安装在C盘的用户目录下;如果不希望安装在C盘(比如C盘空间不足),可以通过命令行方式安装,具体步骤如下:

  1. 将下载的OllamaSetup.exe文件,放在自己想要的文件夹中(比如D盘Ollama目录);

  2. 在该文件夹中,按住Shift键+鼠标右键,选择"在此处打开命令窗口"(或"在此处打开PowerShell窗口");

  3. 输入命令:OllamaSetup.exe /DIR=你要安装的目录位置(比如OllamaSetup.exe /DIR=D:\Ollama);

  4. 运行命令后,会弹出安装窗口,此时安装位置就是你设定的目录(如D:\Ollama),点击"Install"即可完成安装。

第三步:配置环境变量(可选,但推荐)。

安装完成后,建议配置一个环境变量,更改Ollama下载和部署模型的位置(默认会存在C盘,占用C盘空间)。

环境变量配置:新建系统环境变量,变量名:OLLAMA_MODELS,变量值:你想要保存模型的目录(比如D:\Ollama\Models)。

环境变量配置方式,相信学过Java的同学都很熟悉,这里不再赘述,配置完成后如图所示:

5.3.2 搜索模型

Ollama不仅是部署工具,还是一个模型管理平台,提供了很多国内外常见的大模型(如DeepSeek-R1、Qwen、Llama等),我们可以在其官网上搜索自己需要的模型。

模型搜索地址:https://ollama.com/search

举例:搜索"deepseek",可以看到排在第一位的是deepseek-r1模型:

点击进入deepseek-r1页面,会发现该模型有多个版本(不同参数规模):

这些版本的区别在于参数大小:参数越大,模型的推理能力越强,但需要的算力(CPU、GPU)也越高。其中,671b版本是最强的满血版deepseek-r1,对硬件要求极高;而7b、8b版本,对硬件要求较低,适合普通电脑部署。

需要注意的是,Ollama提供的大模型,都是量化压缩版本,相比官网的蒸馏版,体积更小,对显卡的要求更低,具体对比如图:

举例:我的电脑内存32G,显存6G,选择部署7b版本的deepseek-r1,完全可以流畅运行;8b版本也可以尝试,两者性能差别不大。

5.3.3 运行模型

选择合适的模型版本后,Ollama会给出对应的运行命令,我们只需复制命令,在命令行中运行,即可启动模型,开始与本地模型对话。

操作步骤:

  1. 复制Ollama官网中该模型的运行命令(比如deepseek-r1 7b版本的命令:ollama run deepseek-r1:7b);

  2. 打开CMD命令行(或PowerShell),粘贴命令并运行;

  3. 首次运行命令时,会自动下载模型文件,下载时长根据模型大小和网络速度而定,大概在5分钟~1小时不等,请耐心等待;

  4. 下载完成后,会自动启动模型,此时就可以在命令行中,直接与本地模型聊天了。

注意事项:

  • 首次运行需下载模型,网络速度会影响下载时长;

  • Ollama控制台是一个封装好的AI对话界面,和ChatGPT类似,具备会话记忆功能,能够记住上下文;

  • Ollama会自动提供HTTP接口,供传统程序调用,默认接口地址是:http://127.0.0.1:11434/api/chat。

另外,Ollama的命令和Docker类似,常用命令如下(方便大家管理模型):

ollama serve # 启动Ollama服务

ollama create # 从Modelfile创建模型

ollama show # 查看模型信息

ollama run # 运行模型

ollama stop # 停止运行中的模型

ollama pull # 从仓库拉取模型

ollama push # 将模型推送到仓库

ollama list # 查看本地所有模型

ollama ps # 查看正在运行的模型

ollama cp # 复制模型

ollama rm # 删除模型

ollama help # 查看帮助信息

5.3.4 测试API

Ollama在本地部署模型后,会自动开启HTTP接口,我们可以使用HTTP客户端(如Postman),测试该接口是否能正常调用,接口地址默认是:http://localhost:11434/api/chat

6. 大模型API

再次强调:大模型应用开发,核心是通过调用大模型的API接口,实现传统程序与大模型的交互,而不是在浏览器中与AI聊天。因此,要学习大模型应用开发,必须掌握大模型的API接口规范。

目前,大多数大模型的API都遵循OpenAI的接口规范------基于HTTP协议,请求路径、参数、返回值的格式基本一致,只有少量细节差异。具体的调用细节,需要查看对应大模型的官方API文档。

6.1 大模型接口规范

我们以DeepSeek官方给出的API示例为例,详细拆解大模型API的核心规范,帮大家快速掌握调用方法:

python 复制代码
curl -X POST https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <DeepSeek API Key>" \
  -d '{
          "model": "deepseek-chat",
          "messages": [
              {
                  "role": "system",
                  "content": "You are a helpful assistant."
              },
              {
                  "role": "user",
                  "content": "Hello!"
              }
          ],
          "stream": false
      }'

6.1.1 接口说明

6.1.1 接口说明

python 复制代码
{
    "model": "deepseek-chat",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ],
    "stream": false
}
  • model:模型名称,DeepSeek支持deepseek-reasoner和deepseek-chat两者模型
  • messages:发送给大模型的消息,[]是数组的意思,里面可以有多条消息。消息结构:
    • content:是消息的内容
    • role:消息的角色,有system、user、assisant三种角色
      • system:是给大模型设定一个角色,比如你让她扮演你的奶奶,让她哄你睡觉
      • user:就是用户提问的问题
      • assisant:是大模型的回答
  • stream:true,代表响应结果流式返回;false,代表响应结果一次性返回,但需要等待

注意,这里请求参数中的messages是一个消息数组,而且其中的消息要包含两个属性:

  • role:消息对应的角色
  • content:消息内容

其中System和User消息的内容,也被称为提示词(Prompt),也就是用户发送给大模型的指令。

  • System提示词,是系统指令,给大模型设定一个角色,比如你让她扮演你的奶奶,让她哄你睡觉
  • User提示词,是用户指令,也就是用户向大模型的提问或命令

6.1.2 提示词角色

通常消息的角色有三种:

角色 描述 示例
system 优先于user指令之前的指令,也就是给大模型设定角色和任务背景的系统指令 你是一个乐于助人的编程助手,你以小团团的风格来回答用户的问题。
user 终端用户输入的指令(类似于你在ChatGPT聊天框输入的内容) 写一首关于Java编程的诗
assistant 由大模型生成的消息,可能是上一轮对话生成的结果 注意,用户可能与模型产生多轮对话,每轮对话模型都会生成不同结果

其中System类型的消息非常重要!影响了后续AI会话的行为模式。

比如,我们会发现,当我们询问这些AI对话产品"你是谁"这个问题的时候,每一个AI的回答都不一样,这是怎么回事呢?

这其实是因为AI对话产品并不是直接把用户的提问发送给LLM,通常都会在user提问的前面通过System消息给模型设定好背景:

所以,当你问问题时,AI就会遵循System的设定来回答了。因此,不同的大模型由于System设定不同,回答的答案也不一样。

示例:

python 复制代码
## Role
System: 你是一家名为《黑马程序员》的职业教育培训公司的智能客服,你的名字叫小黑。请以友好、热情的方式回答用户问题。
## Example
User: 你好
Assisant: 你好,我是小黑,很高兴认识你!😊 你是想了解我们的课程信息,还是有其他关于职业培训的问题需要咨询呢?无论什么问题,我都会尽力帮你解答哦!

6.2 会话记忆问题

这里还有一个问题:

我们为什么要把历史消息都放入Messages中,形成一个数组呢?

大模型的API接口是"无状态"的,服务端不会记录用户请求的上下文。因此我们调用API接口与大模型对话时,每一次对话信息都不会保留,多次对话之间都是独立的,没有关联的。

因此大模型并不知道之前的聊天历史,也就是说大模型是没有记忆的。

测试,我询问AI一个问题:12个苹果分给3个人,每人能分几个?

AI的答案是:每人可以分到4个苹果。

我们接着问:如果是分给4个人呢?,由于AI没有记忆,它不知道我是接着上一题问的,因此不知道要分的是12个苹果,答案就有问题:

可以看到,AI完全不知道我们聊天的背景是上一次的分12个苹果。

那么,如何才能让AI具备记忆呢?

要想让大模型有记忆,必须在每次请求时,将之前所有对话的历史拼接好,传递给对话API接口。

官方文档说明:

暂时无法在飞书文档外展示此内容

要想让AI具备记忆,就必须把对话历史都添加到请求体中的messages数组中,像这样:

python 复制代码
{
    "model": "deepseek-chat",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "12个苹果分给3个人,每人能分几个?直接告诉我答案"},
      {"role": "assistant", "content": "每人可以分到4个苹果。"},
      {"role": "user", "content": "如果是分给4个人呢?"}
    ],
    "stream": false
  }

测试结果:

好了,现在我们能用图形界面的Http客户端发送http请求,调用大模型了。

但是这样还不够,如果要开发AI应用,肯定是要通过编程的方式发送Http请求,调用大模型。

6.3 开发环境准备

现在,我们已经掌握了大模型提供的API接口规范了,不过,最终我们还是要用编程的方式来访问大模型。

所以,接下来就让我们准备好开发的 环境吧。

6.3.1 安装UV

Python的环境管理方案有很多种,例如:

  • pip
  • uv
  • conda
  • ...

在后面的课程中我们会选择uv作为项目管理工具,其官网如下:

https://docs.astral.sh/uv/

还有个第三方写的中文文档:

https://uv.doczh.com/

它有非常多的优点:

具体的安装方式大家可以参考官方文档:

https://uv.doczh.com/getting-started/installation/

最简单的安装方案就是使用pip:

pip install uv

详细教程可以参考视频:

https://www.bilibili.com/video/BV1Stwfe1E7s/?spm_id_from=333.1387.search.video_card.click

6.3.2 添加镜像源

默认情况下,uv下载依赖是到国外站点:https://test.pypi.org/simple,速度很慢。推荐大家将下载的镜像源改为国内站点。

uv支持项目级配置和系统级配置两种方案,项目级优先级高,但是需要每个项目都配置,比较麻烦。推荐采用系统级配置。

系统配置方式如下:

  • Windows系统,在CMD运行如下命令:
python 复制代码
setx UV_DEFAULT_INDEX "https://pypi.tuna.tsinghua.edu.cn/simple"
  • MacOS或Linux系统:
python 复制代码
echo 'export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple' >> ~/.zshrc && source ~/.zshrc

常见的国内镜像站点有:

阿里云

https://mirrors.aliyun.com/pypi/simple/

腾讯云

https://mirrors.cloud.tencent.com/pypi/simple/

火山引擎

https://mirrors.volces.com/pypi/simple/

华为云

https://mirrors.huaweicloud.com/repository/pypi/simple/

清华大学

https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学

https://pypi.mirrors.ustc.edu.cn/simple/

6.3.3 创建项目

接下来我们就创建一个项目,我们会使用PyCharm作为开发工具,以uv作为项目管理工具。

第一步,打开PyCharm,创建Project:

为了方便大家学习,我们会使用jupyter,所以需要在项目中引入notebook依赖。

在PyCharm中,左侧有一个Terminal按钮,点击即可打开终端:

如图:

在终端中输入命令:

uv add notebook

6.3.4 测试

为了测试环境,我们创建一个notebook试试:

起名为hello:

如图:

然后在代码框中编写打印HelloWorld的代码,快捷键SHIFT + ENTER即可运行::

图片

6.4 OpenAI

OpenAI作为全球最早,也是最火的大模型公司之一,占据了先发优势。因此其制定的API规范几乎成为了大模型API的默认规范,几乎所有的大模型API都兼容OpenAI的规范。

在任何模型的官方文档中都能看到基于OpenAI提供的SDK的代码示例,例如DeepSeek:

https://api-docs.deepseek.com/zh-cn/

本节我们来学习如何使用OpenAI提供的SDK工具来访问大模型。

6.4.1 基本使用

首先,我们需要安装OpenAI的SDK,以python为例:

  • 使用pip安装:
    pip install openai
  • 使用uv安装:
    uv add openai

接下来,就可以使用SDK调用任何兼容OpenAI规范的模型了,只要将base_url和api_key设定为对应的模型提供者的url和api_key即可:

python 复制代码
from openai import OpenAI
client = OpenAI(
    api_key="sfxxxxx",
    base_url="https://api.deepseek.com"
)

print("🚀 正在调用大模型...")
response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一名友好的AI助教。"},
        {"role": "user", "content": "你好,你是谁?"}
    ],
    stream=False
)

print(response)

6.4.2 环境变量

将api_key直接写在代码中非常危险,所以通常我们都将其写入环境变量,程序运行时加载。

第一步,配置环境变量。

在项目根目录创建一个.env文件:

在其中配置自己的API_KEY,我们以Deepseek为例:

deepseek

DEEPSEEK_API_KEY=sk-1234567890

阿里云

DASHSCOPE_API_KEY=sk-1234567890

第二步,安装python-dotenv。

在项目中,我们通过python-dotenv库来读取环境变量,所以要先安装依赖。

复制代码
uv add python-dotenv

安装成功后,会在pyproject.toml中看到新添加的依赖:

python 复制代码
[project]
name = "lc-course"
version = "0.1.0"
description = "Add your description here"
requires-python = ">=3.13"
dependencies = [
    "notebook>=7.5.5",
    "openai>=2.28.0",
    "python-dotenv>=1.2.2",
]

第三步,读取环境变量。

最后,我们就可以在代码中读取环境变量了:

python 复制代码
from openai import OpenAI
from dotenv import load_dotenv
import os

# 加载环境变量
load_dotenv()

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

print("🚀 正在调用大模型...")
response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一名友好的AI助教。"},
        {"role": "user", "content": "你好,你是谁?"}
    ],
    stream=False
)

print(response)
相关推荐
GEO-optimize3 小时前
2026年上海GEO服务商实力测评与选型指南
大数据·网络·人工智能·geo
Omics Pro3 小时前
首款多模态生物推理大语言模型
人工智能·算法·语言模型·自然语言处理·数据挖掘·数据分析·aigc
泰恒3 小时前
我的项目复盘,以及踩过的雷点
人工智能·深度学习·机器学习
大强同学3 小时前
Claude Code Windows 常用快捷键/命令
人工智能
企业架构师老王3 小时前
企业级AI Agent工具功能差异深度对比:架构师视角的选型逻辑与提效实战
人工智能·ai
Ada's3 小时前
【智能体系统AgentOS】核心16:Harness
人工智能
真心喜欢你吖3 小时前
OpenClaw安装部署Mac操作系统版 - 打造你的专属AI助理
java·人工智能·macos·ai·语言模型·智能体·openclaw
JoyCong19983 小时前
OpenClaw实践玩法,简单三步搭建自动化工作流(附真香平替方案)
运维·人工智能·自动化