当前位置: 首页 > news >正文

从“ollama安装模型失败“到“显卡驱动升级“记录

1、定义问题

我在执行ollama模型安装时失败了,报错如下:

D:\Ollma\ollma>ollama run deepseek-r1:1.5b pulling manifest pulling aabd4debf0c8: 100% ▕██████████████████████████████████████████████████████████▏ 1.1 GB pulling c5ad996bda6e: 100% ▕██████████████████████████████████████████████████████████▏ 556 B pulling 6e4c38e1172f: 100% ▕██████████████████████████████████████████████████████████▏ 1.1 KB pulling f4d24e9138dd: 100% ▕██████████████████████████████████████████████████████████▏ 148 B pulling a85fe2a2e58e: 100% ▕██████████████████████████████████████████████████████████▏ 487 B verifying sha256 digest writing manifest success Error: 500 Internal Server Error: llama-server process has terminated: exit status 0xc0000409: The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.: CUDA error: the provided PTX was compiled with an unsupported toolchain.------------------报错了请解决

这个报错主要是由于你的NVIDIA 显卡驱动版本与 Ollama 运行 DeepSeek-R1(通常使用 CUDA 加速)所需要的CUDA 工具链版本不匹配导致的。

具体原因在于这一句:CUDA error: the provided PTX was compiled with an unsupported toolchain(CUDA 错误:提供的 PTX 文件是由不支持的工具链编译的)。同时引发了栈溢出错误(0xc0000409)导致llama-server进程直接崩溃。

我查看了我的显卡信息,如下所示:

根据图片可知,显卡型号是NVIDIA GeForce MX230(专用显存为 4.0 GB),当前的驱动程序版本为32.0.15.5612(即英伟达官方的 556.12 版本),发布日期是 2024 年 6 月。

针对“是否支持升级”,我们需要从硬件和驱动(软件)两个维度来回答:

1. 硬件升级:不支持

  • 原因:NVIDIA GeForce MX230 是一款笔记本电脑上的入门级独立显卡。这类显卡芯片是直接焊接在笔记本主板上的(BGA 封装),无法像台式机那样拔下来更换成更新、更强的显卡

2. 驱动升级:支持,但有局限性

  • 支持升级:你的驱动是 2024 运作的版本,英伟达官方目前依然会为 Pascal 架构(包括 MX230)提供安全更新驱动(例如 582.xx 或更高版本)。你可以前往 NVIDIA 官网下载最新的笔记本显卡驱动进行安装。

  • 局限性(大模型兼容问题):MX230 属于 2019 年发布的旧架构。英伟达早已停止了对它的 “Game Ready” 性能优化,仅提供基础维护。你之前遇到的 Ollama 报错(PTX was compiled with an unsupported toolchain),正是因为 Ollama 新版本使用的 CUDA 工具链较新,而老旧显卡架构在编译指令集上产生了断层。这意味着即使你把驱动升到最新,新版 Ollama 也有可能因硬件架构过老而拒绝提供 GPU 加速。

给我的最佳建议是:不用GPU,直接使用CPU运行。方法如下:

  • 右键点击任务栏右下角的 Ollama 图标,选择Quit Ollama彻底退出。

  • 打开 Windows系统环境变量设置:

    • 在 Windows 搜索栏输入“环境变量”,选择“编辑系统环境变量”。

    • 点击“环境变量”按钮。

  • 在“用户变量”或“系统变量”中点击“新建”:

    • 变量名OLLAMA_NUM_PARALLEL(可选,设置为 1)

    • 或者更直接的(禁用GPU):新建变量名CUDA_VISIBLE_DEVICES,变量值设为-1

  • 重新启动 Ollama 软件,然后再运行ollama run deepseek-r1:1.5b


2、NVIDIA驱动更新

但我想先尝试去官网碰碰运气更新一下驱动,操作如下:

1、打开 NVIDIA 驱动下载官网,在下拉菜单中精准选择:

  • 产品类型 (Product Type)GeForce

  • 产品系列 (Product Series)GeForce MX200 Series (Notebooks)

  • 产品 (Product)GeForce MX230

  • 操作系统 (Operating System):根据你的电脑选择Windows 10 64-bitWindows 11

  • 下载类型 (Download Type):选择Game Ready 驱动程序 (GRD)(如果没有,就选默认的所有Studio

  • 语言 (Language)Chinese (Simplified)(简体中文)

2、点击右侧的View按钮,进入下载页面并把安装包下载到本地。

3、运行安装程序,记得在安装过程中选择“自定义(高级)”并勾选“执行清洁安装”

为什么这一步很重要?清洁安装会彻底卸载你原有的旧驱动,并清除残留的 CUDA PTX 缓存,这能最大概率解决报错里提到的llama-server栈溢出和工具链断层问题。

4、安装完成后重启电脑,然后再次去命令行执行ollama run deepseek-r1:1.5b

安装过程中弹窗这个路径怎么选 ?

这其实不是真正的安装路径,而是安装包的临时解压路径,直接点击 “OK” 即可。这个临时文件夹里的内容通常会自动被系统或安装程序清理掉,不会长期占用你的 C 盘空间。

这两个选项怎么选?

  • 鼠标点击勾选第二个NVIDIA 图形驱动程序

  • 点击右下角的“同意并继续(A)”按钮。

为什么这么选?

  1. 第一个选项(NVIDIA 显卡驱动程序和 NVIDIA App):会额外安装一个 NVIDIA App(用于游戏录屏、优化、串流等功能)。这个软件常驻后台不仅会占用内存和 CPU 资源,对于你目前运行大模型或进行日常科研、运维任务来说没有任何帮助,反而属于“捆绑垃圾”。

  2. 第二个选项(NVIDIA 图形驱动程序)只安装核心的纯驱动(包含大模型所需的 CUDA 核心组件)。这样安装最干净、最省资源。

  • 鼠标点击勾选自定义(C)(高级)

  • 点击右下角的“下一步(N)”按钮。

  • 重要提示:点击下一步后,会弹出一个组件列表窗口。请在那个窗口的下方,寻找一个名为“执行清洁安装” (Perform a clean installation)的复选框,务必把它勾选上,然后再点击继续安装。

  • 组件列表保持默认即可

    • 图形驱动程序是灰色强制勾选的。

    • NVIDIA App保持不要勾选(为空)。

    • PhysX 系统软件保持勾选即可。

  • 核心一步请务必用鼠标勾选下方的执行清洁安装(P)(把那个空白的正方形方框点亮)。

勾选完“执行清洁安装”之后,直接点击右下角的“下一步(N)”按钮。

接下来系统就会自动开始卸载老驱动并安装全新的582.66驱动,安装过程中屏幕可能会闪烁几次,这属于正常现象。安装完成后建议重启一下电脑,但是我没有重启电脑,我想直接在命令行里输入ollama run deepseek-r1:1.5b碰碰运气,

最后发现直接成功了!!!

可能会出现的两种结果:

  1. 直接成功:Windows 10/11 的新版驱动架构很多时候支持热加载,如果不重启就能跑通,那就最省事了。

  2. 依然报错或找不到 GPU:因为没有重启,Ollama 后台服务可能还在沿用旧驱动的缓存,或者系统还没完全识别到新驱动的 CUDA 环境。

新驱动已经完美识别并生效了!

  • 驱动程序版本成功更新为了32.0.15.8266(即官方的 582.66)。

  • 驱动程序日期也变成了2026/6/9

这意味着你的系统已经彻底加载了新驱动,确实不需要重启也能看到更新结果。


3、"全局代理"惹的祸

我重启了,并在cmd终端和ollama客户端都成功运行ollama本地模型deepseek-r1:1.5b,但是在python代码中运行还是报错,代码如下:

from langchain_ollama import ChatOllama model = ChatOllama( model="deepseek-r1:1.5b", base_url="http://localhost:11434" # 如果Ollama在本地默认端口运行,则可省略,或使用http://localhost:11434 ) print(model.invoke("介绍一下你自己"))

报错如下:

一切成功了,接下来啊帮我分析以下报错信息:{ "name": "ResponseError", "message": " (status code: 502)", "stack": "\u001b[31m---------------------------------------------------------------------------\u001b[39m\n\u001b[31mResponseError\u001b[39m Traceback (most recent call last)\n\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 8\u001b[39m\n\u001b[32m 4\u001b[39m model=\u001b[33m\"deepseek-r1:1.5b\"\u001b[39m,\n\u001b[32m 5\u001b[39m base_url=\u001b[33m\"http://localhost:11434\"\u001b[39m \u001b[38;5;66;03m# 如果Ollama在本地默认端口运行,则可省略,或使用http://localhost:11434\u001b[39;00m\n\u001b[32m 6\u001b[39m )\n\u001b[32m 7\u001b[39m \n\u001b[32m----> \u001b[39m\u001b[32m8\u001b[39m print(model.invoke(\u001b[33m\"介绍一下你自己\"\u001b[39m))\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_core\\language_models\\chat_models.py:402\u001b[39m, in \u001b[36mBaseChatModel.invoke\u001b[39m\u001b[34m(self, input, config, stop, **kwargs)\u001b[39m\n\u001b[32m 388\u001b[39m \u001b[38;5;129m@override\u001b[39m\n\u001b[32m 389\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34minvoke\u001b[39m(\n\u001b[32m 390\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 395\u001b[39m **kwargs: Any,\n\u001b[32m 396\u001b[39m ) -> AIMessage:\n\u001b[32m 397\u001b[39m config = ensure_config(config)\n\u001b[32m 398\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m cast(\n\u001b[32m 399\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mAIMessage\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 400\u001b[39m cast(\n\u001b[32m 401\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mChatGeneration\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m--> \u001b[39m\u001b[32m402\u001b[39m \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mgenerate_prompt\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 403\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m[\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_convert_input\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43minput\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m]\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 404\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 405\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mcallbacks\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mconfig\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mcallbacks\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 406\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mtags\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mconfig\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mtags\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 407\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmetadata\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mconfig\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mmetadata\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 408\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mrun_name\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mconfig\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mrun_name\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 409\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mrun_id\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mconfig\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mpop\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mrun_id\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 410\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 411\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m.generations[\u001b[32m0\u001b[39m][\u001b[32m0\u001b[39m],\n\u001b[32m 412\u001b[39m ).message,\n\u001b[32m 413\u001b[39m )\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_core\\language_models\\chat_models.py:1123\u001b[39m, in \u001b[36mBaseChatModel.generate_prompt\u001b[39m\u001b[34m(self, prompts, stop, callbacks, **kwargs)\u001b[39m\n\u001b[32m 1114\u001b[39m \u001b[38;5;129m@override\u001b[39m\n\u001b[32m 1115\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mgenerate_prompt\u001b[39m(\n\u001b[32m 1116\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 1120\u001b[39m **kwargs: Any,\n\u001b[32m 1121\u001b[39m ) -> LLMResult:\n\u001b[32m 1122\u001b[39m prompt_messages = [p.to_messages() \u001b[38;5;28;01mfor\u001b[39;00m p \u001b[38;5;129;01min\u001b[39;00m prompts]\n\u001b[32m-> \u001b[39m\u001b[32m1123\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mgenerate\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mprompt_messages\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mcallbacks\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mcallbacks\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_core\\language_models\\chat_models.py:933\u001b[39m, in \u001b[36mBaseChatModel.generate\u001b[39m\u001b[34m(self, messages, stop, callbacks, tags, metadata, run_name, run_id, **kwargs)\u001b[39m\n\u001b[32m 930\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m i, m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(input_messages):\n\u001b[32m 931\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m 932\u001b[39m results.append(\n\u001b[32m--> \u001b[39m\u001b[32m933\u001b[39m \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_generate_with_cache\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 934\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mm\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 935\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 936\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mrun_manager\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mrun_managers\u001b[39;49m\u001b[30;43m[\u001b[39;49m\u001b[30;43mi\u001b[39;49m\u001b[30;43m]\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mif\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mrun_managers\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01melse\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 937\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 938\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 939\u001b[39m )\n\u001b[32m 940\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[32m 941\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m run_managers:\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_core\\language_models\\chat_models.py:1235\u001b[39m, in \u001b[36mBaseChatModel._generate_with_cache\u001b[39m\u001b[34m(self, messages, stop, run_manager, **kwargs)\u001b[39m\n\u001b[32m 1233\u001b[39m result = generate_from_stream(\u001b[38;5;28miter\u001b[39m(chunks))\n\u001b[32m 1234\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m inspect.signature(\u001b[38;5;28mself\u001b[39m._generate).parameters.get(\u001b[33m\"\u001b[39m\u001b[33mrun_manager\u001b[39m\u001b[33m\"\u001b[39m):\n\u001b[32m-> \u001b[39m\u001b[32m1235\u001b[39m result = \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_generate\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 1236\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmessages\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mrun_manager\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mrun_manager\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\n\u001b[32m 1237\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 1238\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 1239\u001b[39m result = \u001b[38;5;28mself\u001b[39m._generate(messages, stop=stop, **kwargs)\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_ollama\\chat_models.py:1030\u001b[39m, in \u001b[36mChatOllama._generate\u001b[39m\u001b[34m(self, messages, stop, run_manager, **kwargs)\u001b[39m\n\u001b[32m 1023\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_generate\u001b[39m(\n\u001b[32m 1024\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 1025\u001b[39m messages: \u001b[38;5;28mlist\u001b[39m[BaseMessage],\n\u001b[32m (...)\u001b[39m\u001b[32m 1028\u001b[39m **kwargs: Any,\n\u001b[32m 1029\u001b[39m ) -> ChatResult:\n\u001b[32m-> \u001b[39m\u001b[32m1030\u001b[39m final_chunk = \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_chat_stream_with_aggregation\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 1031\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmessages\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mrun_manager\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mverbose\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mverbose\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\n\u001b[32m 1032\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 1033\u001b[39m generation_info = final_chunk.generation_info\n\u001b[32m 1034\u001b[39m chat_generation = ChatGeneration(\n\u001b[32m 1035\u001b[39m message=AIMessage(\n\u001b[32m 1036\u001b[39m content=final_chunk.text,\n\u001b[32m (...)\u001b[39m\u001b[32m 1043\u001b[39m generation_info=generation_info,\n\u001b[32m 1044\u001b[39m )\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_ollama\\chat_models.py:965\u001b[39m, in \u001b[36mChatOllama._chat_stream_with_aggregation\u001b[39m\u001b[34m(self, messages, stop, run_manager, verbose, **kwargs)\u001b[39m\n\u001b[32m 956\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_chat_stream_with_aggregation\u001b[39m(\n\u001b[32m 957\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 958\u001b[39m messages: \u001b[38;5;28mlist\u001b[39m[BaseMessage],\n\u001b[32m (...)\u001b[39m\u001b[32m 962\u001b[39m **kwargs: Any,\n\u001b[32m 963\u001b[39m ) -> ChatGenerationChunk:\n\u001b[32m 964\u001b[39m final_chunk = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m965\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43;01mfor\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mchunk\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01min\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_iterate_over_stream\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mmessages\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m:\u001b[39;49m\n\u001b[32m 966\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43;01mif\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mfinal_chunk\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mis\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m:\u001b[39;49m\n\u001b[32m 967\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mfinal_chunk\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mchunk\u001b[39;49m\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_ollama\\chat_models.py:1054\u001b[39m, in \u001b[36mChatOllama._iterate_over_stream\u001b[39m\u001b[34m(self, messages, stop, **kwargs)\u001b[39m\n\u001b[32m 1047\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_iterate_over_stream\u001b[39m(\n\u001b[32m 1048\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 1049\u001b[39m messages: \u001b[38;5;28mlist\u001b[39m[BaseMessage],\n\u001b[32m 1050\u001b[39m stop: \u001b[38;5;28mlist\u001b[39m[\u001b[38;5;28mstr\u001b[39m] | \u001b[38;5;28;01mNone\u001b[39;00m = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m 1051\u001b[39m **kwargs: Any,\n\u001b[32m 1052\u001b[39m ) -> Iterator[ChatGenerationChunk]:\n\u001b[32m 1053\u001b[39m reasoning = kwargs.get(\u001b[33m\"\u001b[39m\u001b[33mreasoning\u001b[39m\u001b[33m\"\u001b[39m, \u001b[38;5;28mself\u001b[39m.reasoning)\n\u001b[32m-> \u001b[39m\u001b[32m1054\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43;01mfor\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mstream_resp\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01min\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_create_chat_stream\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mmessages\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mstop\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m:\u001b[39;49m\n\u001b[32m 1055\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43;01mif\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mnot\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43misinstance\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mstream_resp\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mstr\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m:\u001b[39;49m\n\u001b[32m 1056\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mcontent\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 1057\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mstream_resp\u001b[39;49m\u001b[30;43m[\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mmessage\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m]\u001b[39;49m\u001b[30;43m[\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mcontent\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m]\u001b[39;49m\n\u001b[32m 1058\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43;01mif\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mmessage\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01min\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mstream_resp\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mand\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mcontent\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01min\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mstream_resp\u001b[39;49m\u001b[30;43m[\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mmessage\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m]\u001b[39;49m\n\u001b[32m 1059\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43;01melse\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\n\u001b[32m 1060\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\langchain_ollama\\chat_models.py:952\u001b[39m, in \u001b[36mChatOllama._create_chat_stream\u001b[39m\u001b[34m(self, messages, stop, **kwargs)\u001b[39m\n\u001b[32m 950\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m chat_params[\u001b[33m\"\u001b[39m\u001b[33mstream\u001b[39m\u001b[33m\"\u001b[39m]:\n\u001b[32m 951\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._client:\n\u001b[32m--> \u001b[39m\u001b[32m952\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m._client.chat(**chat_params)\n\u001b[32m 953\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._client:\n\u001b[32m 954\u001b[39m \u001b[38;5;28;01myield\u001b[39;00m \u001b[38;5;28mself\u001b[39m._client.chat(**chat_params)\n\n\u001b[36mFile \u001b[39m\u001b[32md:\\python\\Anaconda\\envs\\langchain1.2\\Lib\\site-packages\\ollama\\_client.py:189\u001b[39m, in \u001b[36mClient._request.<locals>.inner\u001b[39m\u001b[34m()\u001b[39m\n\u001b[32m 187\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m httpx.HTTPStatusError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[32m 188\u001b[39m e.response.read()\n\u001b[32m--> \u001b[39m\u001b[32m189\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m ResponseError(e.response.text, e.response.status_code) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 191\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m r.iter_lines():\n\u001b[32m 192\u001b[39m part = json.loads(line)\n\n\u001b[31mResponseError\u001b[39m: (status code: 502)" }

报错原因:

在终端(cmd)可以成功运行本地模型,但通过 Python 代码(LangChain / Ollama SDK)调用时返回502错误(Bad Gateway),这通常说明请求虽然发送出去了,但在中途遭遇了阻断或错误的路由。

最常见的原因是你的电脑上开启了全局代理软件。Python 的网络库(如httpx,requests)默认会读取系统的环境变量http_proxyhttps_proxy。当代码尝试连接localhost127.0.0.1时,请求被错误地发送到了代理服务器,而代理服务器无法处理本地网络请求,从而返回了502错误。

将"全局模式"改成"规则模式"后,再次运行代码即可解决!!!

http://www.jsqmd.com/news/1092494/

相关文章:

  • 3大实战技巧深度解析:如何高效使用SMUDebugTool调优AMD Ryzen处理器
  • 秩序数与宇宙收敛的数学突破
  • DSEFix:突破Windows驱动签名强制的技术利刃
  • 为什么你的ChatGPT中文版总“答非所问”?——基于BERT-Chinese-LLM对齐度评估的语义漂移诊断工具包(限时开放下载)
  • 终极指南:3种方法让Switch游戏安装变得简单高效
  • 65nm、FinFET、GaN...工艺变了,ESD失效方式也完全不同
  • 【招聘】创业科技公司招聘运营深度实操手册
  • 为什么同样叫海参,有的卖5000,有的卖1500?
  • 技术创作者如何解读VIP文章合作协议:从条款到实践
  • HarmonyOS技术精讲-应用间跳转:从零理解Want与Ability
  • 【基于Linux4.19.X内核】Linux ALSA-ASoC驱动框架(一、Machine驱动框架及部分数据结构)
  • 数字化转型的旅行业务是什么?旅行社老板打造个人IP有何重要性?
  • 2025更新!植物大战僵尸杂交版2.51安装包下载
  • 兰州大学论文插图残留AI水印遭调查,你的配图可能也藏雷!
  • GPT-4的1.8万亿参数与2%激活率真相:MoE稀疏激活原理与工程实践
  • 第二十一届全国大学生智能车竞赛盲盒任务说明
  • 揭秘FileBrowser批量下载:3个颠覆式技巧让文件管理效率翻倍
  • 10 个使用 Spring Boot 4 的开发技巧,太惊艳了!
  • Blender CAD参数化设计:7个技巧从零掌握机械精度控制
  • HS2-HF Patch专业级汉化与插件集成实战指南:三步打造进阶游戏体验
  • NoFences:为Windows桌面构建思维导图式的工作空间
  • 规则漂移是的第三代
  • 神奇弹幕:B站直播自动化的终极解决方案,让直播互动效率提升300%
  • TPIC7710EVM评估板实战指南:从硬件设计到软件调试的完整解析
  • 前后端一致AES加解密实战:原理、实现与安全增强
  • BurpSuite TLS指纹伪装实战:绕过WAF/IDS精准检测
  • 高速全差分放大器THS4504EVM实战:从PCB布局到信号完整性设计
  • 海康、大华工业相机USB3驱动冲突排查:从Halcon占用到客户端恢复
  • 3步搞定跨平台macOS下载:gibMacOS让你的Windows也能获取苹果系统
  • 【Springboot毕设全套源码+文档】基于springboot校园学生健康监测管理系统的设计与实现(丰富项目+远程调试+讲解+定制)