《前置准备学习总结:从通义千问 DashScope 云端接入到 Ollama 本地蒸馏模型部署,一文打通大模型调用的两条命脉》
一句话总结(副标题):本模块用"阿里云百炼云端调用 + Ollama 本地部署"这套双轨方案,让零基础开发者只靠 OpenAI 兼容 SDK、环境变量保护 APIKEY、以及
http://localhost:11434/v1本地接口这三件武器,就跑通了从注册实名认证、创建密钥、pip装库、改写两行代码到本地跑起 qwen3:4b 蒸馏模型的完整大模型接入闭环。
李沐深度学习191集课程全解析:模块拆解、学习路径-CSDN博客
吴恩达《面向开发者的提示词工程》-CSDN博客
吴恩达 MCP 教程(Model Context Protocol)(一)-CSDN博客
多模态大模型教程学习笔记 — ViT · CLIP · SAM · GLIP · Stable Diffusion
一、模块定位与学习目标:为什么"前置准备"要先讲六集?
在黑马程序员《大模型 RAG 与 Agent》整套课程里,"前置准备"虽然排在最前面、看起来都是装环境、点按钮的杂活,但它其实决定了后面所有章节(提示词工程、OpenAI 库基础、LangChain、RAG、Agent)能不能顺利跑起来。讲师在第一集开篇就把整个模块的底层逻辑讲透了:大模型接入只有两条路。
第一条路是本地部署:通过 Ollama 这样的框架,在自己电脑里跑千问、DeepSeek 的蒸馏模型。受限于个人电脑硬件,你跑的参数量不会太高,通常只有 1.5B、7B、8B 级别。
第二条路是云端调用:借助阿里云百炼平台,在云端直接使用满血的通义千问、DeepSeek 等大模型。云端模型基本都是满参数,使用体验非常好;虽然云模型本身要收费,但阿里云百炼提供了免费额度,学习期间完全够用、不用额外花钱。
正因如此,课程最终选择了阿里云百炼平台作为大模型接入能力的底座,Ollama 本地部署则作为"免费额度用光或平台不再送额度时"的备用方案。这六集的学习目标可以概括成下面四点:
能独立完成阿里云百炼的注册、实名认证、开通免费额度,并创建 API Key;
能用
pip install openai安装 OpenAI 官方 SDK,并基于"OpenAI 兼容"示例代码跑通对通义千问云端模型的调用;懂得用系统环境变量(
OPENAI_API_KEY与DASHSCOPE_API_KEY)保护 APIKEY,不在代码里硬编码;能在 Windows / Mac 上安装 Ollama、拉取并运行 qwen3:4b 这类蒸馏模型,并用改写两行后的 OpenAI 客户端代码直连本地 11434 端口调用。
把这四件事做完,你手里就同时握了"云端满血模型"和"本地免费模型"两个可切换的模型后端,后面学 LangChain 时换模型就只是改一个base_url和一个model名字而已。
二、按集拆解:关键概念、设计动机与课程真实代码
2.1 前置准备-01:通义千问大模型的接入——百炼平台注册与 API Key 创建这一集的核心不是写代码,而是把"身份"和"钥匙"准备好。讲师的操作路径非常清晰:
浏览器打开阿里云百炼平台(百炼控制台),右上角登录;没有账号就先注册;
新账号登录后会弹出服务协议,点击"同意";
随后会提示"账户状态异常",这是因为新账户必须完成实名认证,点击右上角"去认证",选择"个人认证",用支付宝扫码 + 刷脸即可快速完成;
认证完成后重新打开百炼网站,会弹出"免费赠送额度"的提示,点"开始体验"再点"我知道了",就能在网页对话框里先像用 DeepSeek、ChatGPT 那样直接聊天;
但作为开发者不能只靠网页,必须在左侧菜单拉到最下面找到"密钥管理",点击创建一个 API Key(APIK),选择自己的账户、业务空间一路跳过直接点"确定",复制这串钥匙。讲师反复强调:这串 APIK 就是你通过代码联网访问云端模型的钥匙,有了它代码才能远程调到百炼上的千问或 DeepSeek 模型。
关于免费额度,讲师在"工作台 → 模型用量 → 免费额度"选项卡里做了重点演示:百炼平台上有约 172 个模型额度充沛,每个模型基本都提供 100 万 token 的免费额度。也就是说,你把 qwen-plus(千问 Plus)的 100 万 token 用完了,还可以换成 qwen-max、qwen3-max,再用完继续换别的模型——"用完一个换一个",足够把整门课程学完。担心产生额外费用的同学,还可以勾选"免费额度用完即停",额度耗尽后模型自动不可用,避免误扣费。
为什么这么设计?云端满参数模型体验最好但要花钱,平台用"每模型 100 万 token 免费额度"把学习成本降到零;而 API Key 是云端鉴权的唯一凭证,所以它从第一集就是"最高机密",为第三集讲环境变量埋下伏笔。
2.2 前置准备-02:代码调用云端的大模型——三行动作跑通 DashScope 兼容接口
这一集讲师把代码调用压缩成三个主体动作:
提前准备好 APIK(上一集已完成);
通过
pip给 Python 程序安装 OpenAI 第三方库;从阿里云官网直接复制示例代码,粘贴后运行测试。
安装环节讲师演示了国内加速技巧:直接连 Python 官方源可能很慢,所以加清华镜像:
pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple为什么用 OpenAI 库去调通义千问?因为阿里云百炼提供了"OpenAI 兼容"模式。在百炼"模型服务 → 模型广场"里任选一个模型(讲师以通义千问 3 Max 为例),下方就有"API 代码示例",切到"OpenAI 兼容"选项卡,出来的代码拿来就能用。在 PyCharm 里新建工程"AI 大模型 RAG 与智能体开发",再新建 Python 文件(如"01 测试 APIK 的使用"),把示例代码粘进来即可。
课程中这一阶段为了简单,先把 APIK 直接写进代码做测试(后面第三集会改成环境变量)。对应 DashScope 兼容模式的真实写法如下:
from openai import OpenAI 初始化客户端:api_key 换成自己的百炼 APIK,base_url 是百炼兼容模式地址 client = OpenAI( api_key="sk-你的百炼APIK", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) 发起一次对话补全请求,流式地把答案打印出来 completion = client.chat.completions.create( model="qwen3-max", # 通义千问 3 Max messages=[ {"role": "system", "content": "你是一个乐于助人的助手。"}, {"role": "user", "content": "你是谁"} ] ) print(completion.choices[0].message.content)运行后,模型会流式地(一个字一个字)回答"我是通义千问……";把提问换成"你能做什么",它会介绍自己是超大规模语言模型。
模型是怎么换的?代码里关键的model字段决定用哪个模型。讲师演示了在"模型广场 / 模型用量"里复制模型名,再回填到代码:
qwen3-max(通义千问 3 Max)qwen-plus(通义千问 Plus)qwen3-vl-plus(多模态视觉模型)deepseek-v3、deepseek-r1(深度求索系列)
把model换成deepseek-v3再运行,模型会自我介绍"我是 DeepSeek,由深度求索公司开发"。这说明只要改一个字符串,同一套OpenAISDK 代码就能在百炼平台上的不同厂商模型之间无缝切换——这正是"OpenAI 兼容接口"的价值。
这里还要把一次完整调用的"三段式"心智模型讲清楚,后面无论接 LangChain 还是接 Agent 都是这个套路:第一步初始化客户端OpenAI(api_key=..., base_url=...),相当于告诉 SDK"密钥是什么、去哪个服务器要模型";第二步发起对话补全请求client.chat.completions.create(model=..., messages=[...]),messages是一个由role(system / user / assistant)和content组成的消息列表;第三步解析返回结果,答案放在completion.choices[0].message.content里。课程示例里 system 设定助手身份、user 负责提问,这个 messages 结构就是后续提示词工程和多轮历史消息的地基。
2.3 前置准备-03:使用环境变量保护 APIKEY——别把钥匙写进代码
前一集为了图快把 APIK 明文写在代码里,这一集讲师立刻点出风险:一旦代码被泄露(截图、提交 Git、发群里),别人拿到这串 key 就能登录你的账号去调模型,本质就是花你的钱、烧你的 token。解决办法是把 APIK 从代码里搬到操作系统的环境变量中,代码运行时再自动读取。
课程要求同时配置两个环境变量:
环境变量名 | 给谁用 | 说明 |
|---|---|---|
| 当前 OpenAI 官方库 | OpenAI SDK 初始化时若不显式传 |
| 后续 LangChain 等库 | LangChain 对接通义千问时默认读这个变量名,提前配好省事 |
Windows 配置(图形化):按Win + S打开搜索框,搜索"高级系统设置",打开"系统属性" → 右下角"环境变量" → 在上方"用户变量"里点"新建":变量名填OPENAI_API_KEY,变量值粘贴你的 APIK,确定;再同样新建DASHSCOPE_API_KEY,值相同。一路确定后,一定要重启电脑再打开 PyCharm 测试。
Mac配置(改文件):打开系统自带终端,执行open .zshrc(务必别打错),在文件空白处加两行(不要改动原有内容),保存:
export OPENAI_API_KEY="粘贴你的APIK" export DASHSCOPE_API_KEY="粘贴你的APIK"然后重启 PyCharm(菜单"File → Invalidate Caches / Restart"),若仍不生效就重启电脑。
配置完成后,把代码里OpenAI(api_key="...")那一行的api_key参数整行删掉:
import os from openai import OpenAI # 不再手写 api_key,SDK 会自动读取环境变量 OPENAI_API_KEY client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) completion = client.chat.completions.create( model="qwen-plus", messages=[{"role": "user", "content": "你是谁"}] ) print(completion.choices[0].message.content)此时代码里已经看不到任何密钥,右键运行却依然能正常拿到回答——说明环境变量生效了。这就是"既安全又方便":密钥只活在操作系统里,代码可以随便分享、上传。
2.4 前置准备-04:Ollama 简介——百炼的"本地版"
前面三步已经能正常做后续开发了,为什么还要讲 Ollama?讲师给的理由非常现实:未来阿里云的免费额度可能到期,或者平台不再搞免费活动,到时候继续在云端开发就要花钱。于是课程额外给了一个"被动 / 备用"方案——用 Ollama 在自己电脑里把模型跑起来,代码照常调用。本地跑"爱怎么跑就怎么跑,不花钱,只花电费"。
Ollama 的本质:一款简化大模型本地部署与运行的开源软件。开发者不需要关心底层是怎么加载权重、怎么调度显存的,只要下载安装、一条命令就能把模型跑起来。讲师给了一个非常好记的类比:Ollama 就是阿里云百炼平台的本地版——在自己电脑上部署运行大模型,由自己电脑的硬件提供算力支撑。
它支持的开源模型非常多,覆盖文本生成、代码生成、多模态推理等场景,包括课程在云端用过的通义千问(qwen3)系列和 DeepSeek 系列。想看完整列表就打开 ollama.com,左上角点"Models"即可。调用方式有两种:
命令行调用:在终端里敲
ollama run deepseek-r1,就能进入对话式交互;RESTfulAPI接口调用:模型跑起来后 Ollama 会对外提供 HTTP 接口,后面我们就是用代码走 API 调它。
2.5 前置准备-05:Win & Mac 部署 Ollama 并运行蒸馏模型
部署本身很简单:进 ollama.com 点"Download",按操作系统下载安装包即可。
Windows:下载约1.2GB的 exe 安装包,双击一路点"Install",装完会自动启动并弹出一个简洁的聊天窗口,右下角有模型选择按钮;
Mac:安装包较小(约 60 多 MB),是一个
.dmg文件,双击后把 Ollama 图标拖进"Applications"文件夹,首次打开按提示输入电脑密码授权即可。
重点:模型名里的"冒号加 B"是什么?在窗口里搜"千问 3",会看到qwen3:4b、qwen3:8b、qwen3:30b这样的名字。冒号后面的 4B / 8B / 30B 表示模型参数量。为什么本地只能跑这种带 B 的小模型?因为 Ollama 里跑的都是蒸馏模型——你可以把它理解成"大模型的学生":它学会了老师(标准大模型)的核心本领,但体积被"瘦身"了,没老师那么强,却能在个人电脑上跑起来。满血版大模型(如满血 DeepSeek)光显卡硬件就要花几十万甚至上百万元,个人电脑根本不可能跑,所以只能用蒸馏模型。
第一次提问时,Ollama 会显示"downloading model",把模型文件先下载下来——以qwen3:4b为例,模型文件约2.3GB,下完之后就能顺畅对话。讲师打开任务管理器演示:模型"思考"期间显卡(GPU)占用率直接飙升到 90% 以上,说明本地推理非常吃显卡算力,显存越大、GPU 越强,吐字(生成)速度就越快。
参数量怎么选?讲师给了一条朴素经验——"你的电脑显存有多大,就选多大参数量的模型",并在结尾总结成对照表:
你的硬件配置 | 建议可选的蒸馏模型参数量 | 说明 |
|---|---|---|
集成显卡 | 1.5B 左右 | 性能够用即可,别贪大 |
4GB 独立显卡 | 8B 以内 | 如 qwen3:4b 这类 |
8GB 独立显卡 | 14B 以内 | 如 qwen3:8b 等 |
更高端显卡 | 可尝试 30B | 效果更好但更吃资源 |
核心原则是:参数量越大效果越好,但对硬件要求越高;硬件不够时不是跑不了,而是吐字特别慢、没有体验。建议把几个参数量都下下来跑一跑,挑一个吐字速度你能接受的。课程折中选了qwen3:4b,普通游戏本或带独显的电脑跑它都比较轻松。
2.6 前置准备-06:代码调用 Ollama 的本地模型——只改两行
这一集是整个模块的"点睛之笔":想让代码调用本地 Ollama 模型,根本不用重写代码,只要把原来调百炼云端的代码改两处:
改
base_url:从指向阿里云百炼的地址,改成本地 Ollama 的 API 地址http://localhost:11434/v1;一改,代码就连不上阿里云了,而是直连本机 Ollama 提供的接口;改
model名称:从云端的deepseek-v3,改成本地已下载好的蒸馏模型名qwen3:4b。
其余代码一行都不用动:
from openai import OpenAI 第一处改动:base_url 指向本地 Ollama 第二处改动:api_key 本地随便填一个占位串即可(Ollama 不校验) client = OpenAI( base_url="http://localhost:11434/v1", api_key="ollama" ) 第三处改动:model 换成本地蒸馏模型 completion = client.chat.completions.create( model="qwen3:4b", messages=[{"role": "user", "content": "你好"}] ) print(completion.choices[0].message.content)运行前有一个硬性前提:Ollama 软件必须已经启动(就是第五集装好后那个聊天窗口要开着,它在后台常驻服务 11434 端口)。Ollama 没开,这段代码会直接报连接错误。另外这段代码不分操作系统,Windows 和 Mac 上跑的是一模一样的。
讲师最后再次强调定位:本地 Ollama 模型只是备用方案,是为了防止阿里云免费额度用光、或平台不再送免费活动时还能继续写代码;只要还有免费云端额度,就强烈推荐用云平台,因为本地蒸馏模型和云端满血模型的性能"天差地别"。
三、云端 vs 本地大模型:一张表看懂两条路怎么选
对比维度 | 阿里云百炼云端模型(通义千问 DashScope) | Ollama 本地蒸馏模型 |
|---|---|---|
模型规格 | 满参数满血模型,如 qwen3-max、deepseek-v3 | 蒸馏小模型,如 qwen3:4b / 8b,参数量 1.5B~30B |
调用地址 base_url |
|
|
是否需要 API Key | 需要,且要用环境变量保护 | 不校验, |
费用 | 每模型约 100 万 token 免费额度,超量付费 | 完全免费,只耗电脑电费 |
算力来源 | 阿里云机房 GPU,算力强、吐字快 | 自己电脑的 GPU / CPU,吃显卡占用(可飙到 90%+) |
体验与效果 | 好,满血模型回答精准 | 够用但弱于云端,硬件差时吐字慢 |
使用前提 | 注册 + 实名认证 + 创建 APIK | 安装 Ollama 并保持软件启动 |
课程中的定位 | 主力开发底座 | 免费额度耗尽后的备用方案 |
四、踩坑与环境注意事项清单
这一部分把六集里讲师反复提醒、以及新手最容易栽跟头的点集中列出,可直接照做排查。
1.APIKey 绝对不能硬编码进代码。明文写api_key="sk-xxx"一旦截图、传 Git、发群就会泄露,被人盗刷 token。正确做法是配OPENAI_API_KEY/DASHSCOPE_API_KEY环境变量,然后把代码里的api_key参数删掉,让 SDK 自动读取。
2.环境变量配完一定要"重启生效"。Windows 配完用户变量后最好重启电脑;Mac 改完.zshrc后先重启 PyCharm(Invalidate Caches / Restart),还不生效就重启电脑。很多同学"配了环境变量代码还是报缺 key",九成是没重启 IDE 或终端,进程还拿着旧的环境快照。
3.pip装库要走国内镜像。裸连 PyPI 官方源很慢,用pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple提速;建议全程用 PyCharm 新建的虚拟环境解释器,避免系统 Python 环境污染。
4.base_url和model必须成对改对。调云端时base_url是 DashScope 兼容地址、model是平台上的模型名(qwen3-max、deepseek-v3等);切本地时base_url改成http://localhost:11434/v1、model改成你本机ollama已下载的模型名(qwen3:4b)。地址和模型名错配是最常见的报错来源——比如 base_url 还指向云端,model 却填了本地的qwen3:4b,云端自然找不到这个模型。
5. 跑本地代码前先确认 Ollama 已启动。11434 这个 HTTP 服务是 Ollama 软件本体提供的,软件没开 = 服务没起,代码会连接被拒绝。
6. 首次用某个本地模型要先下载。Ollama 第一次run/ 调用时会显示 downloading model,qwen3:4b 约 2.3GB,需联网等它下完;模型文件较大、网络不好时下载会比较痛苦。
7. 参数量要匹配硬件,别盲目追大。集显选 1.5B 左右,4G 独显试 8B 以内,8G 独显试 14B 以内;跑起来后看任务管理器 GPU 占用和吐字速度,慢了就降一档参数量。
8. 流式与非流式输出的区别(提前铺垫)。课程示例里答案是"一个字一个字流出来"的,这就是流式输出(streaming);后续 OpenAI 库章节会专门讲流式与历史消息。前置阶段只要知道:同样一次请求,流式是边生成边返回、体验更像聊天,非流式是等整段生成完一次性返回,二者在 SDK 里靠stream=True之类的参数区分。
五、Ollama 常用命令清单(命令行速查)
虽然课程主要用 GUI 和代码 API,但 Ollama 的命令行是日常调试最顺手的工具,整理如下:
命令 | 作用 | 课程对应场景 |
|---|---|---|
| 下载 Windows exe / Mac dmg 安装包 | 第五集安装部署 |
| 拉取(若本地没有则自动下载)并进入对话式交互 | 命令行与千问 3 蒸馏模型聊天 |
| 仅下载模型到本地,不进入对话 | 提前把模型文件拉好(约 2.3GB) |
| 列出本机已下载的全部模型 | 确认 qwen3:4b 是否下载完成 |
| 手动启动 Ollama 的 API 服务(默认端口 11434) | 代码调用前确保服务在跑 |
HTTP | OpenAI 兼容接口地址,供 Python 代码调用 | 第六集改 base_url |
六、与后续模块的衔接:这六集到底为后面铺了什么路?
这六集不是孤立的"装环境",而是后面所有代码的地基,衔接关系非常明确:
接《OpenAI 库基础使用》模块(第 7~9 集):你已经会
from openai import OpenAI、会chat.completions.create、知道base_url和model的含义,后面三集会正式深入这个 SDK——流式输出模式、附带历史消息的多轮对话。前置阶段的代码就是后面章节的"最小可运行雏形"。接 LangChain 模块:第三集特意让你多配一个
DASHSCOPE_API_KEY,就是因为后面 LangChain 对接通义千问时默认读这个变量名。同时"换 base_url 就能在云端 / 本地之间切换"这一招,在 LangChain 里同样适用——LangChain 底层也是包了一层 OpenAI 兼容客户端。接 RAG 与 Agent 项目:整个 RAG / Agent 项目需要一个稳定可调用的大模型后端。有了百炼云端做主力、Ollama 本地做兜底,你在写提示词工程、做金融文本分类 / 信息抽取 / 匹配这些实战案例时,就不会因为额度或网络问题卡壳。
可以说,前置准备把"模型从哪来、钥匙怎么藏、代码怎么连、本地怎么备"这四件最底层的事一次性解决了,后面的提示词工程、LangChain、RAG、Agent 全都建立在这套已经跑通的调用链之上。对正在打基础的同学而言,这六集真正要内化的不是某个按钮点哪,而是一个贯穿始终的思想:"模型即服务"——不管模型住在阿里云机房还是你自己的显卡里,对代码而言都只是一个base_url加一个model名字而已。掌握了这种"用统一接口屏蔽底层差异"的思路,以后接入任意一家大模型厂商、或在云端与本地模型之间自由切换,都不再是难事。
七、面试与实战常考点小结
最后把这六集里最容易被面试官追问、也最容易在实战中踩坑的知识点浓缩成问答:
问:为什么调通义千问用的是 OpenAI 库,而不是阿里自己的 SDK?答:因为阿里云百炼提供了"OpenAI 兼容模式",
base_url指向https://dashscope.aliyuncs.com/compatible-mode/v1,请求格式和 OpenAI 完全一致,所以一套 OpenAI SDK 代码既能调 OpenAI,也能调百炼、DeepSeek,还能调本地 Ollama。问:API Key 应该怎么管理才安全?答:绝不硬编码进源码;通过操作系统环境变量(
OPENAI_API_KEY、DASHSCOPE_API_KEY)注入,代码里用os.getenv或让 SDK 自动读取;配置后重启 IDE / 系统生效;提交 Git 前用.gitignore排除密钥文件。问:什么是蒸馏模型?为什么本地只能跑它?答:蒸馏模型是学习了标准大模型核心能力后"瘦身"的小模型(如 qwen3:4b),参数量小(B 级别),个人电脑的显存 / GPU 就能跑;满血大模型需要几十万上百万元的服务器集群硬件,个人机跑不动。
问:Ollama 怎么用代码调本地模型?答:保持 Ollama 启动,把 OpenAI 客户端的
base_url改成http://localhost:11434/v1,model写成本地已下载的模型名(如qwen3:4b),api_key随便占位,其余代码不变。问:本地 Ollama 和云端百炼怎么选?答:优先云端——满血模型效果好、吐字快,百炼还有每模型 100 万 token 免费额度;本地只在免费额度耗尽或无云端可用时作为免费备用,性能与云端"天差地别"。
问:模型参数量和硬件怎么配?答:集显约 1.5B,4G 独显试 8B 以内,8G 独显试 14B 以内;原则是"显存多大选多大参数量",跑起来看吐字速度,慢了就降档。
把以上六点吃透,你就真正完成了这门 RAG 与 Agent 课程的"起跑线"准备:手里有云端满血模型可写主力代码,有本地蒸馏模型做免费兜底,知道密钥该藏在哪、代码该怎么连、报错该从base_url和model这两处先查——可以顺利进入提示词工程与 LangChain 的正式学习了。