黑马程序员LangChain前置准备
第一节、课程导学一、课程定位主攻方向大模型应用层开发不研究底层模型训练、预训练核心两大板块RAG 检索增强生成、Agent 智能体项目落地。适配人群前端、后端开发者转型会 Java、JS 都能学不需要深度学习、算法基础。行业趋势传统开发叠加大模型能力是主流转型路线原有编程经验可以平滑迁移至 AI 应用开发。二、核心答疑问题只会 Java / JS能不能做大模型 AI 开发✅ 完全可以大模型应用开发本质是调用 LLM 云端 / 本地 API网络请求、架构思维和传统开发相通课程示例使用 PythonLangChain 主流生态有编程基础上手门槛低存在对应语言生态Java 可用 LangChain4j、JavaScript 有配套大模型 SDK可以使用自己熟悉的语言开发 AI 系统。三、整体学习路线按顺序前置准备模块云端大模型接入通义千问代码调用云端 LLMAPI Key 安全管理使用环境变量禁止代码硬编码密钥Ollama 本地大模型概念介绍、Windows/Mac 部署、代码调用本地模型OpenAI 库基础使用LangChain 框架基础RAG 完整系统开发知识库构建、文本切分、向量数据库、相似度检索、智能问答链路Agent 智能体工具调用、任务规划、工作流编排综合实战项目四、工程红线重点牢记禁止在源代码内明文写入 APIKEY标准规范读取系统环境变量加载密钥防止密钥泄露造成资金风险。五、学习目标独立搭建私有化知识库问答系统、Agent 智能应用具备面试LLM 应用工程师、AI 应用开发、AI 产品研发岗对应的项目经验。第二节、通义千问大模型的接入一、两种模型运行方案对比本地部署Ollama支持模型Qwen、DeepSeek 等开源模型参数规格1.5B、7B、8B、32B 等不同大小参数版本特点模型跑在自己电脑本地不依赖外网无 token 费用消耗但对电脑硬件配置有要求云端调用阿里云百炼平台支持模型Qwen通义千问、DeepSeek 等特点使用完整参数大模型新用户提供免费额度不需要本地高配机器额度耗尽后自动按量计费二、阿里云百炼平台获取 API‑Key 完整步骤访问控制台地址https://bailian.console.aliyun.com/#/home账号操作注册、登录账号完成支付宝实名认证开通模型服务点击立即开通领取新人免费 token 额度创建密钥 1进入【API 参考】→【密钥管理】 2点击【创建 API‑KEY】 3选择归属业务空间填写描述确定生成 4保存生成的 API‑Keysk‑开头只显示一次务必复制保存三、重要风险提示免费额度用完之后自动转为按量付费注意管控用量避免意外扣费平台有开关免费额度用完即停开启后额度耗尽直接停止服务不会产生额外账单新手建议打开这个开关防止超额扣费API‑Key 是调用鉴权凭证不能直接写死在源代码内后续课程会讲环境变量保护密钥四、免费额度页面说明2、免费额度阿里云百炼新人赠送免费 Token 额度有有效期到期未使用自动作废阿里云帮助...。输入 Token、输出 Token 共同消耗总额度不分开计算阿里云帮助...。仅抵扣实时推理调用微调、知识库、批量调用、缓存费用不抵扣免费额度。建议开启免费额度用完即停额度耗尽直接报错防止意外扣费阿里云帮助...。主账号、RAM 子账号共享同一套免费额度。3、两套计费系统不要混淆两套调用方式后端是同一套账号计费、同一把 sk‑xxx 密钥免费额度、按量付费全部共用。DashScope 原生 SDK 调用import dashscope读取DASHSCOPE_API_KEY。OpenAI 兼容模式调用from openai import OpenAI读取OPENAI_API_KEY配置base_url。只是接口协议不一样消耗额度、扣费规则完全一致不会重复计费。4、两个容易混淆的页面免费额度页查看各个模型剩余免费 Token、过期时间、用完即停开关只看免费资源阿里云帮助...。模型用量 / 账单页看真实调用统计、消耗明细、按量付费产生的账单免费额度耗尽后看扣费在这里。坑不要只看免费额度页调试时要去用量页面确认真实调用是否产生记录。5、调用方式① OpenAI 兼容模式推荐练习依赖库pip install openai环境变量OPENAI_API_KEY必须指定base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1优点代码可无缝切换 OpenAI 官方、其他兼容接口网上示例多适合课程练习。缺点部分阿里特有高级能力不支持。示例核心片段python运行client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 )② 百炼官方 SDKdashscope依赖库pip install dashscope环境变量DASHSCOPE_API_KEY不需要写 base_urlSDK 内部已经封装阿里服务地址。优点支持百炼全部能力图像理解、语音、缓存、微调、知识库等完整特性。缺点代码是阿里定制切换别家大模型需要大规模改代码。示例核心片段python运行resp Generation.call( modelqwen‑turbo, messages[{role:user,content:你好}] )重点总结一个 sk 密钥两个环境变量名字分别服务两套 SDK。两套调用计费 免费额度完全共用不是两套钱。练习优先用 OpenAI 兼容模式要用阿里专属能力再切 dashscope SDK。调试记得看「模型用量」页面确认调用是否真跑通同时开启用完即停避免扣费。6、练习选型建议在【模型用量】页面查看各个模型剩余免费 token 数量可以看到每个模型的额度剩余、过期时间、“免费额度用完即停” 开关阿里云百炼平台学习笔记1、API‑Key 相关账号只需要1 个 API‑Key所有模型共用同一个密钥不需要一个模型新建一个 Key。API‑Key 作用身份鉴权代表你的账号身份。切换模型方式请求中修改 model 参数模型 ID密钥不用改动。什么时候新建多个 Key多项目做权限隔离密钥泄露后轮换。学习测试只用 1 个即可。每个模型独立拥有100 万免费 Token互相不占用有效期至 2026‑11‑18。重要保护操作每个模型右侧打开免费额度用完即停开关。开启额度用尽返回 403 错误自动停止调用不会扣费。未开启免费额度耗尽后自动转按量付费产生费用。免费额度仅对华北 2北京地域生效切换其他地域免费额度失效。新人免费按量额度课程使用免费入口左侧菜单【用量 费用】→【免费额度】用于学习测试。Token Plan 包月套餐付费39/139/499 元 / 月顶部导航栏的 Token Plan 标签面向重度 Agent 开发学习不要订阅。【模型】页面课程用模型广场、模型列表、API‑Key 管理、用量 费用统计做 API 调用、RAG、微调、看免费额度都在这里。【应用‑Agent】页面专门搭建 Agent 智能体、MCP 工具、会话环境看不到模型列表、免费用量属于上层应用模块。参数api_key你的 sk‑ws‑xxx base_url平台给出 OpenAI 兼容地址修改model模型ID切换不同大模型原有 OpenAI 代码几乎不用改动。通用对话、RAG 测试优先qwen3.7‑plus数学、代码场景qwen‑math‑turbo带‑thinking 后缀为深度思考版本Token 消耗更高调试尽量少用。第三节、阿里云百炼代码调用云端大模型笔记OpenAI 兼容方式一、调用 3 个必备条件百炼平台创建好API‑Key1 个 key 全部模型共用Python 环境安装 openai 库获取平台示例代码填入参数运行1安装依赖包bash# 国内清华源加速推荐解决下载慢 pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple2获取示例代码入口模型广场 → 点开任意模型详情页 → 切换OpenAI兼容标签直接复制 Python 示例。关键 2 个参数api_key你的 sk‑ws‑xxx 密钥base_url固定地址https://dashscope.aliyuncs.com/compatible-mode/v1二、可直接运行完整测试代码流式输出python运行from openai import OpenAI client OpenAI( api_keysk-ws-你的密钥复制过来, base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 ) completion client.chat.completions.create( modelqwen3.7-plus, # 修改这里切换不同模型ID messages[ {role: system, content: 你是一个乐于助人的助手}, {role: user, content: 你能做什么} ], streamTrue # 开启流式一字一字返回效果 ) # 流式打印输出 for chunk in completion: print(chunk.choices[0].delta.content, end, flushTrue)model填模型 Code切换模型只改这个字段key、base_url 不用动streamTrue流式输出模拟打字效果关闭则一次性返回全部结果。三、开发操作流程创建 Python 项目选择好 Python 解释器建议虚拟环境pip 安装 openai 依赖复制平台 OpenAI 兼容示例代码填入自己的 api_key修改 model 为想要调用的模型 ID运行观察控制台输出结果四、重要注意点地域必须是华北 2北京免费额度才生效。提前打开每个模型的免费额度用完即停开关防止超额扣费。同一个 API‑Key切换模型仅修改modelxxx参数不用新建密钥。模型 ID 去模型详情页复制例如qwen3.7‑plus、qwen3‑max不要写模型中文名字。五、常见报错预判401 鉴权失败api‑key 复制错误注意不要带多余空格换行。403AllocationQuota.FreeTierOnly免费额度耗尽触发用完即停保护。模型不存在model 参数填错要复制模型 Code不是中文名称。流式streamTrue迭代返回 chunk不能直接无脑写choices[0]部分厂商结尾会返回空 choices 分片。delta.content有可能是None比如模型结束标记不判断直接 print 会抛异常。OpenAI 原生接口很少有空 choices但国内兼容接口阿里、讯飞、通义很容易出现这个坑做 RAG 产品必须处理上机实战from openai import OpenAI client OpenAI( api_keysk-ws-H.EPEXDED.XUxM.MEUCIQCScbv0A-waSz17SI8AAKURAoy1A3Vikw5tF5xSaA2OWwIgZlf68oK8f_9ZHU6oivt7aMeRB3zwuROK_MyZEeiQ79E, base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 ) completion client.chat.completions.create( modelqwen3.7-plus, # 修改这里切换不同模型ID messages[ {role: system, content: 你是一个乐于助人的助手}, {role: user, content: 你能做什么} ], streamTrue # 开启流式一字一字返回效果 ) # 流式打印输出 for chunk in completion: if not chunk.choices: continue content chunk.choices[0].delta.content if content is not None: print(content, end, flushTrue)调用大模型 SDK 实战经验总结一、版本坑第一个大问题不要跟着老旧教程直接写代码优先确认 SDK 版本旧教程大多基于 openai 1.x你最开始是1.12.0系统存在代理时直接抛proxies相关报错升级到3.3.0后接口写法不变但底层依赖、代理逻辑完全变了。教训装完库一定要打印版本确认python -c import openai;print(openai.__version__)不要以为安装完就等于版本正确。版本升级会带来依赖冲突警告分清「阻断报错」和「警告」升级后红色提示langchain‑openai不兼容 openai3.x这只是警告不影响原生 OpenAI 调用只是后续用 LangChain 的时候才会出事不用立刻处理。教训看到红色文字不要慌看最后一行Successfully installed真正失败不会出现这句。二、国内兼容接口的特殊坑最容易忽略工作高频踩阿里通义、讯飞、豆包兼容 OpenAI 接口不是 100% 复刻原生 OpenAI 行为会有差异。流式 streamTrue 不能无脑直接写chunk.choices[0]原生 OpenAI 几乎不会返回空的choices但国内厂商流结束时会下发一条choices []的结束分片直接取下标 0直接报IndexError: list index out of range。 ✅必须加判断if not chunk.choices: continue把空分片跳过。delta.content有可能是 None不能直接 print中间分片、结束标记分片content 会为 None直接打印代码会抛错一定要判断if content:才输出文字。经验做产品开发不能假设接口返回永远符合教程示例所有字段都要做判空、边界保护。三、基础开发层面教训流式 vs 非流式两套字段千万别记混流式 (streamTrue)增量取chunk.choices[0].delta.content非流式 (streamFalse)一次性返回完整回答取completion.choices[0].message.content很多新人写代码会混用把delta写到非流式、或者把message写到流式直接拿不到结果。print(end, flushTrue)两个参数的意义end不要每输出一块就换行实现打字机效果flushTrue强制立刻输出到控制台否则文字会存在缓冲区等到攒一大段才打印看不到实时流式效果。四、生产环境引申面试可以直接说本地跑通不等于线上没问题国内兼容接口、不同模型版本分片行为可能微调边界判空不能省。版本管理以后做项目尽量用虚拟环境避免全局库版本打架A 项目需要 openai1.xB 项目需要 openai3.x全局环境就会互相干扰。报错排查顺序 ①先看 SDK 版本 →②看 api_key、base_url 是否复制正确 →③看返回体结构打印 chunk 观察分片内容 →④补充判空逻辑。{role: system, content: 你是一个乐于助人的助手}✅这就是角色设定系统提示词 system promptmessages 里面三种 role一定要分清整个messages是一个对话历史数组由多条消息组成一共 3 种角色role: system系统角色作用给大模型定人设、定规则、背景、约束全局指令。在对话最开头放告诉模型 “你是谁该怎么说话要遵守什么规则”。json{role: system, content:你是法律AI助手回答必须引用法条输出简洁}role: user用户角色作用代表人说的话用户提问。json{role: user, content:帮我解释什么是RAG}role: assistant助手角色作用代表大模型之前输出的回答。做多轮对话的时候要把模型上一轮返回的回答塞进 messages角色设为 assistant模型才有记忆。举个完整多轮例子有记忆python运行messages [ {role: system, content: 你乐于助人说话简短}, {role: user, content:11等于几}, {role: assistant, content:等于2}, # 模型上一轮回答 {role: user, content:那再加3呢} # 用户新提问 ]关键点大模型本身没有内存记忆全部靠你手动把历史消息塞进 messages 传给它。面试常问小考点system 消息不是必须可以省略省略模型就用默认人设。不同厂商对 system 处理略有区别有些模型会把 system 合并到 user 里大部分兼容 OpenAI 接口都支持 system。system 提示词尽量放在数组最前面放在后面效果会减弱。messages 数组顺序很重要按对话时间先后排不能乱序。简单区分记忆system我命令你你要做什么样的 AI人设、规则user人类问的话assistantAI 之前说过的话第四节、环境变量保护 API‑Key 笔记面试高频1、为什么不能把 API Key 写死在代码代码里写明文api_keysk‑xxxx一旦把代码上传 git、分享给别人密钥直接泄露。别人拿到你的 sk可以直接消耗你的账号额度扣你的钱。企业开发绝对禁止密钥硬编码写死在源码。2、两个约定环境变量名字OPENAI_API_KEYopenai 官方库默认读取这个名字写OpenAI()不传api_key参数库自动去系统环境变量拿值。DASHSCOPE_API_KEY阿里 dashscope、langchain‑openai 读取这个后续 RAG、LangChain 要用。✨小技巧当你写client OpenAI(base_urlxxx)不传api_key参数SDK 内部会自动读取系统环境变量OPENAI_API_KEY。3、Windows / Mac 配置方式Windows此电脑右键 → 属性 → 高级系统设置 → 环境变量 →用户变量新建变量名OPENAI_API_KEY变量值粘贴你的 sk‑xxx 密钥保存必须重启 PyCharm / 终端不重启读不到新环境变量。Maczsh 终端现在 mac 默认 shell编辑配置文件bashopen ~/.zshrc文件末尾追加两行bashexport OPENAI_API_KEYsk-你的密钥 export DASHSCOPE_API_KEYsk-你的密钥保存后生效配置bashsource ~/.zshrcMac 同样要重启编辑器 PyCharm。4、Python 代码读取环境变量两种写法方式 1SDK 自动读取简洁推荐不写api_key参数SDK 自动读OPENAI_API_KEYpython运行from openai import OpenAI client OpenAI( base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 # api_key 省略自动从环境变量 OPENAI_API_KEY 获取 )方式 2手动 os 读取更灵活你可以自定义变量名python运行import os from openai import OpenAI api_key os.getenv(OPENAI_API_KEY) # 读取环境变量 client OpenAI( api_keyapi_key, base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 )os.getenv(变量名)拿不到返回None不会直接抛崩溃os.environ[xxx]拿不到会直接抛异常。5、本地开发替代方案以后项目常用 .env 文件课程讲系统环境变量实际开发项目大家更常用.env文件。项目根新建.env文件envOPENAI_API_KEYsk-xxxx DASHSCOPE_API_KEYsk-xxxx安装库pip install python‑dotenv代码加载.envpython运行from dotenv import load_dotenv load_dotenv() # 自动读取项目下.env文件加载到环境变量 from openai import OpenAI client OpenAI(base_urlxxx)⚠️ 重要.env一定要加到.gitignore千万不要提交到 git 仓库6、踩坑清单非常容易踩修改环境变量之后编辑器 / 终端不重启不生效很多人改完直接跑代码一直报密钥错误。Windows 新建变量不要多空格、换行密钥复制不要带多余空白字符。用户变量 vs 系统变量配置用户变量就够用不需要改系统变量。区分两个变量名OPENAI_API_KEY和DASHSCOPE_API_KEY不要搞混LangChain 会分别读取。面试简答记忆问项目中如何保护 API 密钥 答禁止硬编码写在源代码防止提交 git 泄露造成资产损失。本地开发使用.env文件 python‑dotenv并且.env加入 git 忽略。服务器 / 线上部署配置系统环境变量云平台一般提供密钥管理服务。openai SDK 会自动读取环境变量OPENAI_API_KEY。OPENAI_API_KEY 是不是必须叫这个名字不是强制写死只是行业约定俗成的环境变量名。两种情况1. 官方 openai python 库默认行为from openai import OpenAI如果你不传 api_key 参数库会自动去找环境变量名叫OPENAI_API_KEYpython运行# 不填api_key自动读取环境变量 OPENAI_API_KEY client OpenAI() 这种写法就必须环境变量叫 OPENAI_API_KEY。2. 自己随便起名字也可以环境变量名字你完全可以自定义比如叫MY_LLM_KEY但是代码里要手动指定读取python运行api_key os.getenv(MY_LLM_KEY) client OpenAI(api_keyapi_key)缺点团队代码、网上示例、课程代码几乎全部默认用OPENAI_API_KEY换名字所有示例代码你都要改一遍。结合你现在场景通义兼容 OpenAI 接口python运行client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 )✅ 建议老老实实使用名字 OPENAI_API_KEY课程复制粘贴代码不用改openai 库可以自动识别后续切换真实 OpenAI、其他兼容大模型服务不用改动变量名。重点提醒环境变量变量名是OPENAI_API_KEY变量值填的是阿里云百炼的 sk‑xxx 密钥不是 OpenAI 官方密钥。简单记变量名固定 OPENAI_API_KEY值填你手上的 key 字符串。五、Ollama 简介定位备用本地方案课程主体依旧使用阿里云百炼云端模型。 作用防止阿里云免费额度到期、活动下线保证本地依旧可以做代码开发练习。1、Ollama 是什么Ollama 是开源软件专门用来简化大语言模型的本地部署、运行。提供轻量、易扩展框架在个人电脑构建、管理本地大模型 LLM可以导入、定制开源模型屏蔽底层复杂部署细节类比理解阿里云百炼的本地版模型跑在自己电脑算力由本机硬件提供官网地址https://ollama.com2、Ollama 模型库官方模型库地址https://ollama.com/library支持大量开源模型qwen、deepseek‑r1、gemma3、phi‑4、mistral 等覆盖文本生成、代码、多模态等场景使用方式网页查看模型复制模型名称命令行下载运行3、Ollama 两种访问方式命令行交互bashollama run deepseek‑r1:1.5b下载模型完成后终端直接对话聊天。Restful API 接口ollama 启动之后本地默认地址http://127.0.0.1:11434提供 http 接口兼容 OpenAI 调用格式Python 代码可以直接调用本地模型。4、Ollama 核心总结Ollama简化大模型本地部署运行的开源软件。查询可用模型访问官方模型库https://ollama.com/library内置 qwen、deepseek‑r1 等热门开源模型。使用途径①终端命令行直接对话②本地 REST API供代码调用。注意本地模型性能受电脑内存、显卡硬件限制硬件差会运行卡顿。记忆考点2 分Ollama 和阿里云百炼区别百炼云端算力阿里提供消耗 token 额度Ollama本地算力自己电脑提供不花钱硬件决定速度。补充Ollama 也兼容 openai 库后续代码只需要修改 base_url几乎不用改动业务代码。Ollama vs CCSwitch / TraeWork / WorkBuddy都跑在本机电脑上但是底层职责完全不一样只有 Ollama 是真正跑模型推理、完全不花钱。1、各自定位Ollama✅大模型推理引擎模型真正干活的地方把模型文件下载到本机算力靠你的 CPU/GPU模型推理计算全部在本地完成。提供本地 API 服务127.0.0.1:11434给代码 / 上层工具调用。完全免费没有 token、没有订阅费下载完模型离线也能用。缺点吃硬件硬件差速度慢。CCSwitch✅API 密钥 / 多模型代理管理工具本身不跑大模型ccswitch.i...只是一个本地中转面板管理各种云端 API KeyClaude、Gemini 等。作用一键切换服务商、自动故障转移、统计 token 用量。它自己不做 AI 推理依旧要调用外部云端大模型会消耗各个平台的额度。TraeWork、WorkBuddy✅AI Agent 上层应用客户端 / 工作台是带 GUI 界面的应用层软件擅长自动执行任务、读写本地文件、做自动化工作流。本身不带模型能力必须对接后端模型可以对接云端 API要花钱买会员 / 积分也可以对接本地 Ollama 作为后端。本体软件免费但官方云模型服务大多订阅收费。2、通俗类比Ollama 发动机真正产生 AI 回答自己出力干活。CCSwitch 油路切换开关切换不同加油站各家云 API本身不产生动力。WorkBuddy / TraeWork 汽车外壳 驾驶室漂亮交互界面可以帮你完成任务但本身没有发动机需要接发动机Ollama或者外接加油站云 API。组合玩法WorkBuddy CCSwitch OllamaWorkBuddy 做界面和 Agent 任务CCSwitch 做 API 路由Ollama 提供本地模型推理。3、核心对比表格表格工具是否本地跑模型要不要花钱核心角色Ollama✅本机硬件推理❌完全免费推理引擎模型服务CCSwitch❌不跑模型只做代理❌软件免费但消耗第三方 API 额度API 管理、路由代理TraeWork❌不跑模型软件免费云模型订阅付费Agent 上层工作台WorkBuddy❌不跑模型软件免费云模型积分 / 会员付费Agent 上层工作台4、一句话总结你的疑问“是不是相似只是 ollama 不花钱”运行在本机这一点相似但职责不一样。CCSwitch、TraeWork、WorkBuddy 只是工具壳子它们自己不会生成 AI 答案最终还是依赖外部模型只有 Ollama 在本地实实在在跑大模型推理不需要外部云端真正不花钱。考试记忆点3 分Ollama推理层本地跑模型免费对外提供 API。CCSwitch代理管理层切换 API 密钥不推理。WorkBuddy/TraeWork应用 Agent 层交互界面不推理可对接 Ollama 作为后端。七、Ollama 部署与蒸馏模型 笔记1、Ollama 是什么Ollama 工具本地运行大模型支持 Windows / Mac / Linux把大模型在个人电脑跑起来。安装步骤访问 Ollama 官网下载对应系统安装包Windows直接运行OllamaSetup.exe安装Mac把.dmg内 Ollama 拖入应用程序安装时输入电脑密码配置命令行工具安装完成后后台自动启动服务两种使用方式命令行交互bashollama run 模型名称执行后自动下载模型完成后直接在终端对话。 2.图形界面内置 UI下拉选择模型一键下载、聊天。下载模型时显示Downloading model等待模型文件下载完毕才可以对话。 运行模型会大量占用显卡显存、内存任务管理器可以看到 GPU 占用上涨。2、蒸馏模型带 b 后缀4b /8b /14bb Billion十亿参数。4b40 亿参数8b80 亿参数。蒸馏模型相当于满血大模型的 “学生”。学习老师大模型的核心能力对模型瘦身压缩能力弱于原版但硬件要求大幅降低可以本地个人电脑运行。参数量越大模型智商越高但吃显存 / 内存越厉害吐字速度变慢。硬件不够会非常卡。3、显卡显存‑模型参数量选型对照表重点表格硬件推荐最大参数量集显1.5B 左右4G 显存独显8B 以内8G 显存独显14B 以内实操建议优先选qwen3:4b、qwen3:8b上手学习 RAG、Agent 项目不要一上来就跑大参数量模型电脑容易卡顿、OOM 显存溢出。4、课程实操流程总结官网下载安装 Ollama命令行 / UI 界面选择模型例如 qwen3‑4b自动下载模型权重文件下载完成即可本地对话后续 Python LangChain 代码可以调用 Ollama 本地服务做 RAG、Agent 开发。面试简答记忆点Ollama 作用简化本地大模型部署提供 http 接口可供 LangChain 调用蒸馏模型把大模型知识迁移到小模型降低硬件代价损失部分模型能力参数量 b十亿参数选模型核心看显卡显存大小。补充Ollama 默认本地地址http://localhost:11434写代码调用就是访问这个地址。前置准备‑06 代码调用 Ollama 本地模型笔记核心原理Ollama 提供OpenAI 兼容接口可以直接复用 openai python 库只修改 2 个参数不用改写业务逻辑代码即可从调用云端大模型切换成本地 Ollama 模型。需要修改两处关键参数base_url云端通义 / DeepSeekhttps://dashscope.aliyuncs.com/compatible-mode/v1Ollama 本地http://localhost:11434/v111434 是 Ollama 默认端口model 模型名称云端deepseek‑v3本地写 Ollama 拉取的模型名例如qwen3:4b必须和 ollama list 看到的模型名完全一致完整示例代码python运行from openai import OpenAI client OpenAI( base_urlhttp://localhost:11434/v1, ) completion client.chat.completions.create( modelqwen3:4b, messages[ {role: system, content: You are a helpful assistant.}, {role: user, content: 你是谁能做什么}, ], streamTrue ) # 流式打印输出 for chunk in completion: print(chunk.choices[0].delta.content, end, flushTrue)重要前提条件Ollama 程序必须已经启动运行后台服务开启端口 11434 可访问本地已经执行ollama pull qwen3:4b下载好对应模型python 环境安装好 openai 库pip install openai补充知识点调用写法、消息体 messages 格式、流式streamTrue的用法和云端 OpenAI 完全一致本地模型性能弱于云端大模型推理速度、输出质量会有差距切换不同本地模型只改model字段的模型名字即可⭐面试考点Ollama 兼容 OpenAI 接口的意义便于一套代码无缝切换云端 / 本地模型降低本地开发改造成本。