大家好我是小锋老师最近更新《2027版 基于LangChain的RAG与Agent智能体 开发视频教程》专辑感谢大家支持。本课程主要介绍和讲解RAGLangChain简介接入通义千万大模型Ollama简介以及安装和使用OpenAI库介绍和使用以及最重要的基于LangChain实现RAG与Agent智能体开发技术。视频教程课件源码打包下载链接https://pan.baidu.com/s/1_NzaNr0Wln6kv1rdiQnUTg提取码0000基于LangChain的RAG与Agent智能体开发 - Ollama简介以及安装和使用前面我们用阿里云百炼平台是很方便快捷有免费额度但是仅仅是部分模型有免费额度而且额度也是有限制的。所以我们还有一种本地方案 - 使用Ollama部署蒸馏模型。Ollama简介Ollama官网​https://ollama.com/​Ollama 是一个开源的本地大语言模型运行工具它让用户能够轻松地在自己的电脑上部署和使用各种大型语言模型无需联网也不需要昂贵的云服务。核心特点1. 简单易用一键安装命令行操作几条命令就能下载和运行模型类似 Docker 的使用体验2. 本地运行数据完全本地保存保护隐私无需联网随时随地可用没有 API 调用限制和费用3. 模型支持支持 Llama 3、Phi 3、Mistral、Gemma 等主流开源模型可通过 Modelfile 自定义模型支持 GGUF 格式的模型导入适用场景开发者本地测试和开发隐私敏感的数据处理离线环境使用学习和研究大模型Ollama 极大地降低了普通人使用大语言模型的门槛让任何人都能方便地在自己的电脑上体验先进的 AI 技术。Ollama蒸馏模型介绍蒸馏模型Distilled Model是通过知识蒸馏技术压缩后的小型模型Ollama 支持运行这类轻量化模型让普通电脑也能流畅运行 AI。什么是知识蒸馏知识蒸馏就像一个师生学习过程教师模型大型模型如 700 亿参数的 Llama知识丰富但运行慢学生模型小型模型如 70 亿参数学习模仿教师模型的输出结果学生模型体积小、速度快同时保持接近教师模型的性能Ollama 支持的蒸馏模型1. Llama 3.2 系列Meta1B 和 3B 参数版本适合移动设备和低配置电脑保持较好的对话能力2. Phi-3 系列微软Mini3.8B、Small7B版本微软精心挑选训练数据小尺寸但推理能力强3. Gemma 系列Google2B 和 7B 参数基于 Gemini 技术蒸馏而来开源免费商用4. Qwen 系列阿里0.5B、1.8B、4B、7B 版本中英文能力均衡适合中文场景蒸馏模型在 Ollama 中的优势性能对比以 Llama 3 为例模型参数内存需求速度适用设备原版70B140GB慢服务器蒸馏版8B~16GB快个人电脑蒸馏版3B~6GB极快笔记本/RPi实际好处普通电脑8-16GB 内存也能运行生成速度快 3-10 倍功耗低适合长时间运行硬盘空间占用小Ollama下载安装ollama下载地址​https://ollama.com/download​点击 下载即可。下载到本地后我们双击安装出现下面这个界面就说明安装好了默认界面还是很简约的提供了聊天对话框以及右侧可以选择模型我们可以搜索然后下载需要的模型这里面每个模型后面都有多少b比如4b这个b就是10亿参数4b就是40亿参数我们根据当前机器的显卡显存大小来选择具体的参数模型比如你电脑就4个G的显存那就选个4b如果是高配32G显存那基本都能跑。比如我们选择一个4b(40亿参数)的qwen模型去提问“你是谁”那么Ollama先会自动下载模型然后回答问题。下载完后就自动回答你的问题。使用OpenAI库调用Ollama本地大模型我们参考ollama对openai兼容支持的文档https://docs.ollama.com/api/openai-compatibility#openai-compatibility主要是三个地方的1base_url改成http://localhost:11434/v1/2api_key改成ollama3model换成你的ollama里你要用的模型我们把前面1讲的helloWorld.py复制一份改成ollama.py然后修改三个参数from openai import OpenAI import os client OpenAI( api_keyollama, base_urlhttp://localhost:11434/v1/ ) messages [{role: user, content: 你是谁}] completion client.chat.completions.create( modelqwen3:4b, # 您可以按需更换为其它深度思考模型 messagesmessages, extra_body{enable_thinking: True}, streamTrue ) is_answering False # 是否进入回复阶段 print(\n * 20 思考过程 * 20) for chunk in completion: delta chunk.choices[0].delta if hasattr(delta, reasoning_content) and delta.reasoning_content is not None: if not is_answering: print(delta.reasoning_content, end, flushTrue) if hasattr(delta, content) and delta.content: if not is_answering: print(\n * 20 完整回复 * 20) is_answering True print(delta.content, end, flushTrue)我们在运行下输出我们发现本地的ollama里的大模型运行速度明显比调用阿里云百炼平台接口慢多了但是本地跑不用花钱而且模型选择也多所以还是一个不错的选择。